First off, thank you for your interest in contributing to this project! It's people like you who are helping to make this project even better than it's ever been before!
These guidelines exist to ensure all developers and contributors are on the same page and to reduce conflict and friction between everyone working on the project. Please read, understand, and do your best to follow them when contributing.
We are currently looking for the following kinds of contributions:
- Bug fixes
- Documentation improvements
- Small quality of life improvements
- Spelling/grammar fixes
Specifically, we are not looking for:
- Major changes/features
- Adding/removing core mods to/from the pack
To begin making contributions to this project, you will likely want to create your own fork of this repository. This can be done via the GitHub web UI. Please see this GitHub help article for more information.
Once you have forked the repository you may make the changes you want, either in the web UI or by cloning the repository locally.
After you have made your changes, please create a pull request. Once again, see this GitHub help article for more details.
One notable thing to watch out for when modifying this mod pack is that we have
multiple difficulty "modes". These modes are located in the config-overrides
folder. Some files are copied into these folders and are used to replace files
located in the config
folder when the pack-mode-switcher.{sh,bat}
script is
run.
By default this mod pack is set to "normal" difficulty. Please double check that
any files you are working on are do not also exist inside the config-overrides
folder. If they do you will need to copy your changes over into them and adjust
them as appropriate for the difficulty setting that folder represents.
KubeJS offers a feature to automatically load resource packs & datapacks put into the kubejs/assets
and kubejs/data
folders respectively. These can get messy, so please try to follow the standards set by other items in that folder:
- Avoid sub-folders that aren't strictly necessary! For example, the Sculk Energy Core item models should not go into
kubejs/assets/kubejs/models/item/sculk_energy_cores
or similar, they just go intokubejs/assets/kubejs/models/item
. This may result in folders with many files in them! That is okay. The one exception to this rule are the contents ofkubejs/assets/kubejs/textures
. - Keep large lang files organized! one example of where this is necessary is
kubejs/assets/lang/gtceu/en_us.json
. Categories are separated and labelled as best as can be done without comments since JSON has no capacity for them. If you need to add to a large lang file, find the relevant category and add to the bottom of it, following the spacing established by other members of that category. - Do not include any redundant lang file entries! One thing that used to be a common practice was to copy mods' entire lang files into the directory used to override mods' internal resource packs and only changing the relevant entries. This clogs up things with large amounts of useless information.
- Do not leave any unused files or assets in these folders! One example is how there used to be an entire suite of Draconic Evolution-themed casings before the theming was switched to the Deep Dark instead. Those unused assets were left in the folder for months after the switch. Debug assets such as those in
kubejs\assets\kubejs\textures\block\debug
are exempt.