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.

https://bitbucket.org/

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 changes

  • Don’t directly change files in the modules subdirectory - make your changes in Typescript in the src subdirectory and run tsc again.
    Note: Your IDE may automate omitting Typescript files

  • Some 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.