S9SourceNine Labs / CMAPI Docs 1.0
CMAPI / Reference

Command catalog

How CMAPI categorizes, searches, and validates live commands.

View source ↗
CMAPI 1.0.0Standalone runtimeWindows x64Tested with Planet Crafter 2.008

CMAPI command catalog

CMAPI 1.0.0 builds its catalog from the commands actually registered in the running game. Disabled commands do not appear, failed mods leave no entries, and each canonical command appears once even when aliases are available.

Player commands

Use commands or help to open the complete categorized catalog:

commands
help

Pass any text to commands to search command names, aliases, categories, descriptions, usage syntax, provider names, and provider Unique IDs:

commands gameplay
commands trainer
commands backup
commands tokens
commands CMAPI Test Mod
commands SourceNine

Use help <command> for full metadata. Aliases resolve to their canonical entry, so help give_tokens explains give_money and lists give_tokens as an alias.

CMAPI's built-in categories are System, Diagnostics, Mods, Updates, Players, Save Safety, Gameplay, Trainer, Content, Environment, and Interface. Mods can add readable categories of their own. Every mod-provided catalog row ends with its provider in brackets.

Developer metadata

Existing mods can keep using the simple overloads:

CSHARP
helper.ConsoleCommands.Add(
    "hello_crafter",
    "Prints a greeting.",
    "hello_crafter <name>",
    OnHello
);

That command appears in Mods. To choose a category or add aliases, use ConsoleCommandOptions:

CSHARP
helper.ConsoleCommands.Add(
    "hello_crafter",
    "Prints a greeting.",
    new ConsoleCommandOptions(
        "hello_crafter <name>",
        "Social",
        "hello",
        "greet"
    ),
    OnHello
);

Keep categories short and player-facing. Prefer a stable feature noun such as Weather, Building, or Testing, not a version number. Descriptions should start with a verb and explain the effect in one sentence. Usage should show required values as <value> and optional values as [value].

Canonical names and aliases share one global, case-insensitive namespace. They must start with a lower-case letter and use only lower-case letters, numbers, underscores, or hyphens. CMAPI rejects collisions before the command becomes available. Removing a command—or rolling back a mod whose Entry fails—also removes all its aliases.