DAI 3.0 · STEP-BY-STEP
Custom Blocks
Build native/custom blocks with states, luminance, collision/shape, interactions and lifecycle callbacks.
What you are building
Primary path:
Build native/custom blocks with states, luminance, collision/shape, interactions and lifecycle callbacks.
data/<namespace>/dai_blocks/Build native/custom blocks with states, luminance, collision/shape, interactions and lifecycle callbacks.
Step-by-step
- Define one blockCreate a stable definition under
dai_blocksand decide whether it needs native registry behavior or a vanilla carrier. - Author physical behaviorSpecify the properties that affect gameplay: shape, solidity/collision, light, redstone/state behavior and lifecycle hooks.
- Add placement acquisitionGive the matching block item or place the block through a trusted server function.
- Wire callbacksUse place/break/use/neighbor/lifecycle events to call your gameplay functions.
- Add presentationCreate blockstate/model/texture assets only after the collision and interaction behavior works.
- Test edge casesPlace against every face, piston/redstone-test it if applicable, break it in survival/adventure and reload the world.
Definition of done
- The feature still works after save/reload.
- Server state is authoritative; presentation mirrors it.
- Invalid input cannot duplicate rewards or bypass costs.
- Two players can use the system without sharing unintended temporary state.
- Any optional resource pack can be disabled without breaking datapack logic.
Next integration
Once this feature works alone, connect it to a complete loop instead of adding more isolated content. Use the complete-game tracks to see where it belongs in ACMS, Space Between Blocks, MineTrigger or Hollow Spiral.