Commands
Commands
Section titled “Commands”ShowdownActions exposes one root command: /showdownactions. Every sub-command requires operator permission level 2.
| Command | Effect |
|---|---|
/showdownactions reload | Reload config.conf and every .conf in actions/. |
/showdownactions list | Print every registered action id, sorted. |
/showdownactions info <id> | Dump a single action’s resolved match, apply, and (if present) showdown clauses. |
/showdownactions debug on | Enable verbose [ShowdownActions] log output. Does not persist across restart. |
/showdownactions debug off | Disable verbose log output. |
The command is registered through Fabric’s CommandRegistrationCallback and is available on every world (singleplayer included) with op rights.
/showdownactions reload
Section titled “/showdownactions reload”Re-parses both config.conf and the actions/ directory. The reload pipeline:
- Re-parse
config.conf. Thedebugflag updates immediately. - Re-scan
actions/. New files are loaded, removed files are dropped, edited files replace their previous version. The new ruleset takes effect at once — in-flight battle hooks never see a half-loaded state. - Re-register each action’s Showdown condition, including in format-specific Showdown dex instances so singles, doubles, and other formats all see the updated rules.
A reload that fails on a single file logs the error and preserves the previous version of that action; the rest of the reload proceeds. After a successful reload, the command echoes the new total:
ShowdownActions reloaded - 14 action(s) registered.Battles that were already in progress keep the conditions they were registered with at battle start. New battles pick up the new rules.
/showdownactions list
Section titled “/showdownactions list”Prints every registered action id, sorted alphabetically. Useful for a quick “what’s loaded?” check.
Registered actions (3): - custom_intimidate - lycanroc_dusk - rainy_swift_swimCombine with /showdownactions info <id> (which has tab-completion against this list) to drill into a specific action.
/showdownactions info <id>
Section titled “/showdownactions info <id>”Dumps the resolved match, apply, and (if present) showdown clauses for one action. The <id> argument tab-completes against the registered ids.
Action 'lycanroc_dusk' enabled=true priority=0 target=SELF match=MatchClause(species=lycanroc, sugar=SugarPredicates(time=dusk, ...), ...) apply=ApplyClause(aspect=dusk, boosts=BoostBlock(atk=1, def=0, spa=0, spd=0, spe=1, ...), message=…)This is the resolved state — whatever ShowdownActions parsed from the file, after defaults are applied to unset fields. Useful for verifying a .conf field actually parsed the way you expected. If a sugar field shows up as null here when you set it in the file, the field name or HOCON syntax is probably wrong.
/showdownactions debug on|off
Section titled “/showdownactions debug on|off”Toggles verbose logging at runtime. When on:
- Every
(action, pokemon)evaluation is logged, including the compiled Molang and thematch/missresult. - Every Cobblemon-side effect (forced aspect, console command) is logged when it fires.
- The battle-start lifecycle logs queued volatiles, side+slot routing, and the per-battle volatile count.
- Every Showdown JS hook fire and every error is logged through an auto-applied wrapper around your hooks.
- The Showdown-side condition registration logs how many format-specific dex instances each condition was copied to.
The toggle is volatile — it does not persist across server restart. To make debug logging the default, set debug = true in config.conf and reload.
See Debug Logging for the log line grammar and Debugging and the Showdown Log for a worked example of reading a debug session.
Permission Notes
Section titled “Permission Notes”All sub-commands require operator level 2 (the standard “trusted op” level in Brigadier). There’s no LuckPerms node for the command itself; the gate is the op level check.
For per-action gating against a player’s permission, see the permission field on individual actions (Action Files). That uses fabric-permissions-api and falls through to LuckPerms when installed.