Skip to content

Contribution Guidelines

Nicholas Kreimeyer edited this page Nov 4, 2026 · 3 revisions

Contribution Guidelines

Code contributions for 4.x (Minecraft 1.20.1+) follow the CONTRIBUTING.md in the repository: development setup, building all versions and loaders with Stonecutter, code layout, code style and the pull request checklist. By contributing you agree to the license terms and the CLA: code is MIT, art (textures, models, sounds) is CC BY-NC-SA 4.0.

Art

For artistic contribution, please adhere to the following definitions:

  • The style for textures should range from primitive (as in the tier 1 base, for example) to military with dark colors, preferably gray. That of course doesn't prohibit lighter details, like "glowing" parts.
  • Textures, block models, blockstates, lang files and sounds live in src/main/resources/assets/openmodularturrets and are written by hand.

Turret models

  • Turret models are entity-style models (LayerDefinitions in Java), see TurretModelDefinitions.java. Blockbench can export this format ("Modded Entity", Mojang mappings).
  • Models are Y-down, with the base plate at the bottom; the renderer turns them to the face of the base they are mounted on.
  • Turrets are 1 block big (except the rail gun, whose model is a bit bigger) and consist of a few parts, grouped by how they are animated.

Model structure (animated parts only on some turrets), assuming the turret is on top of a turret base:

  • base: non-animated socket (kind of like a base plate attached to the turret base) on top of the turret base
  • base/holder: clamp/holder for the turret's core, rotates around the axis perpendicular to the base plate (yaw)
  • base/holder/weapon: the core of the turret, rotates with the holder plus an additional rotation up/down (pitch), sandwiched in the holder

Translations

All user-facing text goes through translation keys in assets/openmodularturrets/lang/. English (en_us.json) is the reference; new or completed translations are very welcome.

If you have more questions, feel free to contact us here, or better via CurseForge or Discord.

Clone this wiki locally