DAI 3.0 · STEP-BY-STEP

Menus, Input & Keybind Gameplay

Build menus and custom-key gameplay while keeping server-side actions authoritative.

Build from scratchTest in MinecraftMultiplayer-safe by designDAI 3.0

What you are building

Primary path: data/<namespace>/menus/ + input conditions
Build menus and custom-key gameplay while keeping server-side actions authoritative.

Step-by-step

  1. Create one menu/system entryMake a single button that performs a harmless action.
  2. Add state-driven labels/enabled rulesDisable choices that cannot succeed.
  3. Define input conditionPress/hold/release and custom keybinds should map to explicit ability states.
  4. Bridge to server executionClient input requests; server validates and executes.
  5. Add cooldown feedbackReady/active/cooldown must be visually distinct.
  6. 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.