For Developers
This page is the contributor- and integrator-facing entry point. The deep API reference lives in the
repo's ../docs/ folder; this page orients you and links there.
Building on Core
Core is the single, stable foundation every Neroland mod depends on. Declare it a required
dependency ordered after Core, and pin to a major range ([1.0,2.0)):
- Fabric (
fabric.mod.json):"depends": { "nerolandcore": ">=1.0.0" } - NeoForge (
neoforge.mods.toml): a required[[dependencies.<modid>]]onnerolandcore,ordering = "AFTER". - Forge (
mods.toml): the equivalent required,AFTERdependency.
Full instructions: ../docs/USING-CORE.md.
The systems and their facades
Every system is reached through a small facade; per-loader wiring is Core's job.
| You want to… | Use | Wiki | Developer doc |
|---|---|---|---|
| Require a material by tag | c:ingots/<m> / neroland:materials/<m> | Tags & Datapacks | TAGS-AND-DATAPACKS |
| Register your own config | ConfigManager.register(schema) | Configuration | CONFIG |
| Gate content on progress | ProgressionGates.isOpen(player, gate) | Progression Gates | PROGRESSION |
| Read/move money | CurrencyApi | Economy & Reputation | ECONOMY-REPUTATION |
| Adjust faction standing | ReputationApi | Economy & Reputation | ECONOMY-REPUTATION |
| Build a machine | extend AbstractMachineBlockEntity | Machines, Power & Upgrades | MACHINES-POWER-UPGRADES |
| Expose/find energy | EnergyLookup + *EnergyLookup.ENERGY | Machines, Power & Upgrades | MACHINES-POWER-UPGRADES |
| Store/expose a fluid | NeroFluidStorage / FluidBuffer + nerolandcore:fluid | Machines, Power & Upgrades | MACHINES-POWER-UPGRADES |
| Store/expose a gas | NeroGasStorage / GasBuffer / NeroGases + nerolandcore:gas | Machines, Power & Upgrades | MACHINES-POWER-UPGRADES |
| Ask "is this place off-Earth?" | SpaceTags.isSpace(level) / SpaceTags.biomeIn(...) | Space Tags & Entity Registration | SPACE-TAGS-AND-ENTITIES |
| Register mob attributes / spawn placement | EntityRegistrationSupport.get(modId) | Space Tags & Entity Registration | SPACE-TAGS-AND-ENTITIES |
| Store player data | register a PlayerDataEraser | Privacy & Data | COMPLIANCE |
Implementing a Core provider
Core defines the contracts and stores nothing for economy/reputation; your mod registers the store:
CurrencyApi.setProvider(new MyCurrencyStore())— NeroEconomy.ReputationApi.setProvider(new MyReputationStore())— NeroFactions.
API stability
Core follows semantic versioning on its public API, frozen between majors. Implementation types are
marked @ApiStatus.Internal and may change at any time — reference materials by tag and use the
facades, never the internals. See ../docs/API-STABILITY.md.
Contributing
- Resources are hand-authored in
common/src/main/resources— validate JSON after edits. - Keep
common/free of loader-specific imports; use the platform seams. - Whenever you add, change, or remove a feature, update this wiki in the same change.
- See
../AGENTS.md/../CLAUDE.mdfor the full build-and-verify rules.