DAI 3.0 · STEP-BY-STEP
Attributes & Modifiers
Create reusable numeric gameplay state and apply native/custom attribute modifiers without permanently overwriting other systems.
What you are building
Primary path:
Create reusable numeric gameplay state and apply native/custom attribute modifiers without permanently overwriting other systems.
data/<namespace>/dai_attributes/Create reusable numeric gameplay state and apply native/custom attribute modifiers without permanently overwriting other systems.
Step-by-step
- Name the gameplay quantityExamples: Trion, stamina, heat, shield capacity, gravity multiplier.
- Define the attributeCreate it under
dai_attributeswith sane min/default/max bounds. - Choose base vs modifier ownershipBase values belong to character/content identity; temporary equipment/environment changes should use namespaced modifiers.
- Apply modifiers by stable IDRemove only the modifier your pack owns.
- Expose feedbackShow the value in HUD/actionbar only when it helps decisions.
- Test stackingCombine multiple modifiers and verify unloading one system does not erase another system’s changes.
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.