Skip to content

API Guide

MiniModes API features are designed around one rule: extension code should describe game behavior, while the engine handles ownership, platform differences, and cleanup.

FeatureUse it whenWhat MiniModes does automatically
@GameA class should be loadable as a game.Discovery, selector metadata, player bounds, display item metadata.
GameTemplateYou need a direct lifecycle.Runtime injection, participants, alive helpers, event/command binding, cleanup paths.
SettingsGameTemplateYou need configurable matches.Dialog binding, settings initialization, voting application, leader runtime edits.
Events DSLYou need to react to game actions.Platform event normalization and per-game unsubscription.
Commands DSLYou need /minimodes game ... commands.Argument parsing, validation, usage text, failure reporting.
PromptsYou need typed player text input.Parsing, retry messages, cancel words, optional movement lock.
Worlds scopeYou need isolated arenas.World acquisition, player teleport helpers, slot ownership, cleanup integration.
Resource annotationsYou ship maps or datapacks.Classpath discovery, resource registration, extraction/cache flow.
ItemDSLYou need custom or interactive items.Stable definition ids, metadata, interaction dispatch, cooldown/uses hooks.
Entity/projectile/vehicle DSLsYou spawn runtime objects.Game id scoping and platform registry cleanup.
SidebarsYou need live scoreboards.Discovery, refresh scheduling, dynamic row support, per-player rows.
OutcomesYou need winners, draws, rankings, or scores.Structured completion data for managers, rematches, and Mashup.
@MashupRunnableYour game can appear in rotation.Pace, family, weight, and cooldown metadata for the selector.