

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# Java Coding Standards for Minecraft Fabric Mod23## General Standards4- Use Java 21 features and syntax5- Follow Minecraft/Fabric naming conventions6- Use proper package structure: `com.example.modid` or `org.yourorg.mods.modname`7- Implement `ModInitializer` interface for main mod class89## Fabric-Specific Guidelines10- Use `net.fabricmc.api.ModInitializer` for mod entry point11- Use `org.slf4j.Logger` for logging (not `System.out.println`)12- Use `net.minecraft.util.Identifier` for resource locations13- Use `net.minecraft.recipe.Ingredient` for recipe ingredients14- Register items, blocks, and entities properly with registries1516## Code Organization17- Keep mod logic simple and focused18- Use JSON recipes when possible instead of custom Java classes19- Log initialization and important events20- Follow Minecraft's existing code patterns21- Separate client and server code appropriately22- Use interfaces for API exposure2324## Package Structure25```26com.example.mymod/27├── MyMod.java // Main mod class28├── init/ // Initialization classes29│ ├── ModItems.java30│ ├── ModBlocks.java31│ └── ModRecipes.java32├── items/ // Custom item classes33├── blocks/ // Custom block classes34├── client/ // Client-only code35└── util/ // Utility classes36```3738## Example Structure39```java40package com.example.mymod;4142import net.fabricmc.api.ModInitializer;43import org.slf4j.Logger;44import org.slf4j.LoggerFactory;4546public class MyMod implements ModInitializer {47 public static final String MOD_ID = "mymod";48 public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);4950 @Override51 public void onInitialize() {52 LOGGER.info("Initializing {} mod", MOD_ID);5354 // Initialize items, blocks, etc.55 ModItems.register();56 ModBlocks.register();57 ModRecipes.register();58 }59}60```6162## Best Practices63- Use constants for mod ID and other repeated strings64- Handle null checks and edge cases65- Document public APIs with Javadoc66- Use meaningful variable and method names67- Follow single responsibility principle68- Minimize mixin usage when possible69description:70globs:71alwaysApply: false72---73
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| survivorsunited/mods-su-compostables.cursor/rules/ci-cd-workflow.mdc · 0 | Cursor rules | setupbuildgitsecurity+3 | 63/100 | 14 days ago | |
| survivorsunited/mods-su-compostables.cursor/rules/development-workflow.mdc · 0 | Cursor rules | setupbuildteststyle+4 | 86/100 | 14 days ago | |
| survivorsunited/mods-su-compostables.cursor/rules/documentation-standards.mdc · 0 | Cursor rules | setupbuildtestlint-format+4 | 91/100 | 14 days ago | |
| survivorsunited/mods-su-compostables.cursor/rules/gradle-build-standards.mdc · 0 | Cursor rules | buildstyledependenciesdeployment | 78/100 | 14 days ago | |
| survivorsunited/mods-su-compostables.cursor/rules/proj-compostables.mdc · 0 | Cursor rules | archsecuritydeploymentagent-behaviour+1 | 66/100 | 14 days ago | |
| survivorsunited/mods-su-compostables.cursor/rules/project-overview.mdc · 0 | Cursor rules | buildarchdeploymentagent-behaviour+1 | 67/100 | 14 days ago | |
| survivorsunited/mods-su-compostables.cursor/rules/recipe-json-standards.mdc · 0 | Cursor rules | lint-formatstylearchtypes | 62/100 | 14 days ago | |
| survivorsunited/mods-su-compostables.cursor/rules/rules.mdc · 0 | Cursor rules | buildteststylearch+4 | 92/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 46 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/survivorsunited-mods-su-compostables-cursor-rules-java-coding-standards)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.