Skip to content

Contribute

Alex edited this page Dec 4, 2025 · 10 revisions

We welcome contributions from anyone for any feature related to Hypixel Skyblock. Please feel free to ask any questions you may have.

Code Style

For code style, try to follow the Fabric Development Guidelines. We will enforce TitleCase for classes, SCREAMING_SNAKE_CASE for static final fields except for specific exceptions, and camelCase for methods and all other fields.

Code Cleanup

Please run Code Cleanup and Import Optimization before submitting a PR.
By default, on IntelliJ:

  • Code Cleanup is Command + Option + L (Mac) or Control + Alt + L (Windows/Linux)
  • Optimize Import is Control + Option + O (Mac) or Control + Alt + O (Windows/Linux)

Spotless

We use Spotless to enforce certain code styling. If your build fails, you can have it automatically fix your code by running spotlessApply through Gradle.

Documentation

We require Javadocs and comments for your classes and methods, except for getters/setters, boilerplate, and other simple methods. Also, try to include implementation details and document legal and illegal values for parameters and return values (such as nullability annotations). For examples of well-documented classes, see TooltipAdder, DungeonManager, ItemUtils, and RenderHelper.

Annotations

Appropriate annotations are also welcome, such as @org.jetbrains.annotations.Nullable, @Language("RegExp"), or @Translatable.

Mixin

Prefer fabric events over any mixins. Prefer mixin extras over invasive mixins such as redirects.

Config

Remember to add configuration to your feature!

How do I add a config option?

  • You need to add a field to the best-fitting config, like DungeonsConfig for a Dungeons feature.
  • Then, add an entry to the respective category, DungeonsCategory.
  • You will also need to add the English localization to en_us.json.
    • New entries should be placed in alphabetical order based on the translation key. Spotless can re-order it for you!
  • Try to keep the config and category files (config class, category class) in the same order to minimize confusion.

Testing

Please test your features thoroughly before submitting a PR!
Screenshots or showcases would also accelerate the review process of your PR and are strongly suggested.
Please note clearly in the PR if it has not been tested.

Unit tests are also strongly encouraged. Note that you can create unit tests for methods containing Minecraft classes. See ItemUtilsTest for an example.


Thank you for contributing to Skyblocker, and hope you have fun!

Clone this wiki locally