DAI 3.0 · STEP-BY-STEP
Menus, Input & Keybind Gameplay
Build menus and custom-key gameplay while keeping server-side actions authoritative.
What you are building
Primary path:
Build menus and custom-key gameplay while keeping server-side actions authoritative.
data/<namespace>/menus/ + input conditionsBuild menus and custom-key gameplay while keeping server-side actions authoritative.
Step-by-step
- Create one menu/system entryMake a single button that performs a harmless action.
- Add state-driven labels/enabled rulesDisable choices that cannot succeed.
- Define input conditionPress/hold/release and custom keybinds should map to explicit ability states.
- Bridge to server executionClient input requests; server validates and executes.
- Add cooldown feedbackReady/active/cooldown must be visually distinct.
- Test overlapHold multiple buttons, open menus mid-action and rebind keys.
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.