How to contribute
If you want to contribute to the project, you are more than welcome. It is usually a good idea to contact us on Discord (e.g. taranion#5388 ) to discuss what is needed. There also is the feature wishlist from our users:
https://sr6-foundry.sleekplan.app/
What you need to contribute is
Typescript (or at least Javascript) knowledge
Git knowledge
be willing to teach yourself Foundry specifics by studying foreign code
Step 1: Create a Bitbucket account
Bitbucket is comparable to Github - a plattform where you can host projects. Accounts are free.
Step 2: Forking the repository
All contribution work starts with making your own fork. The repository to fork is https://bitbucket.org/rpgframework-cloud/shadowrun6-eden/src/master/ .
Step 3: Discuss need for a branch
Depending on what you plan to do, you can either work on the master
branch or a dedicated branch for your task. As a rule of thumb: as long as your contribution is small, like fixing typos or providing a translation, you don’t need a dedicated branch.
If in doubt, use the Discord to discuss.
Step 4: Clone the repository
Wait until the branch you need is created on the server (if it is not master
)
Locate your Foundry installations FoundryVTT\Data\systems
directory and clone the repository at that location. This should create a subdirectory named shadowrun6-eden
. If you previously had the game system installed, you will already have the shadowrun6-eden
directory - delete it.
Change into the branch if needed. (If you are new to Git, try to find a good tutorial on the internet on how to do that.)
Step 5: Install the typescript compiler
We currently use 4.6.2 . Newer versions are not able to compile all dependencies.
Run tsc
in inside the shadowrun6-eden
directory. It will create a lot of files in the modules
subdirectory.
Congratulations! You are ready to go
Step 6: Work
If all went well, Foundry should start and now use your local setup.
If you changed files that are not in the
modules
subdirectory, simply reloading in Foundry should activate those changesDon’t directly change files in the
modules
subdirectory - make your changes in Typescript in thesrc
subdirectory and runtsc
again.
Note: Your IDE may automate omitting Typescript filesSome changes, e.g. to the
template.json
require a full reload of the game system, meaning “Return to Setup” and restart your game world.
Step 7: Commit your changes
Once your are done coding and want to let us review it, make sure that all changes are commited to your repository and pushed.
Ask us to give you a issue ticket. You will get a identifier like SR6FVTT-175 .
On the web page of Bitbucket of your repository, go to the “Pull Request” page and select “Create Pull Request” on the upper right side. In the first line of the notes for this PR, write down the identifier from the issue ticket.
Add “Stefan Prelle” as a reviewer - that way I will be notified that a new PR is waiting.
Foundry VTT is not very well documented. The API and datatypes are explained on their website, but there are no examples how to use them. So you often need to study code from other modules and/or use the Community Wiki for documentation-
Be aware that we are currently (January 2023) required to use the V9 datatypes, since the V10 datatypes for Typescript do not exist yet.
That means we are not yet compatible to Foundry VTT V10 yet - e.g. don’t use system
yet.