{
  "commands": [
    {
      "args": [
        {
          "kind": "integer",
          "max": 23,
          "min": 0,
          "name": "hour",
          "optional": false,
          "summary": "clock hour, 0-23"
        }
      ],
      "danger": true,
      "group": "world",
      "name": "time.set",
      "remote": true,
      "scoped": false,
      "summary": "Move the clock forward to the next time it reads this hour (every server, saved)",
      "usage": "time.set <hour>"
    },
    {
      "args": [
        {
          "default": 1,
          "kind": "integer",
          "max": 28,
          "min": 1,
          "name": "days",
          "optional": true,
          "summary": "dawns ahead"
        }
      ],
      "danger": true,
      "group": "world",
      "name": "time.dawn",
      "remote": true,
      "scoped": false,
      "summary": "Skip ahead to a dawn, 1 = tomorrow morning (every server, permanent)",
      "usage": "time.dawn [days]"
    },
    {
      "args": [
        {
          "kind": "enum",
          "name": "season",
          "optional": false,
          "options": [
            "Spring",
            "Summer",
            "Autumn",
            "Winter"
          ],
          "summary": "season name"
        }
      ],
      "danger": true,
      "group": "world",
      "name": "time.season",
      "remote": true,
      "scoped": false,
      "summary": "Skip ahead to the first dawn of a season (every server, permanent)",
      "usage": "time.season <season>"
    },
    {
      "args": {},
      "danger": true,
      "group": "world",
      "name": "time.reset",
      "remote": true,
      "scoped": false,
      "summary": "Put the hour back on real time; skipped farm days stay (saves are stamped with days)",
      "usage": "time.reset"
    },
    {
      "args": [
        {
          "kind": "enum",
          "name": "kind",
          "optional": false,
          "options": [
            "cloudy",
            "rain",
            "snow",
            "storm",
            "sunny"
          ],
          "summary": "weather kind"
        },
        {
          "default": 1,
          "kind": "integer",
          "max": 28,
          "min": 1,
          "name": "days",
          "optional": true,
          "summary": "in-game days"
        }
      ],
      "danger": false,
      "group": "world",
      "name": "weather.set",
      "remote": true,
      "scoped": true,
      "summary": "Force the weather from today for some days",
      "usage": "weather.set <kind> [days] [scope=server|global]"
    },
    {
      "args": {},
      "danger": false,
      "group": "world",
      "name": "weather.clear",
      "remote": true,
      "scoped": true,
      "summary": "Back to the normal forecast",
      "usage": "weather.clear [scope=server|global]"
    },
    {
      "args": [
        {
          "kind": "enum",
          "name": "event",
          "optional": false,
          "options": [
            "starfall",
            "harvest_moon",
            "fishing_derby",
            "rainmaker",
            "forager"
          ],
          "summary": "event id"
        },
        {
          "default": 48,
          "kind": "integer",
          "max": 168,
          "min": 1,
          "name": "hours",
          "optional": true,
          "summary": "real hours"
        }
      ],
      "danger": false,
      "group": "world",
      "name": "event.start",
      "remote": true,
      "scoped": true,
      "summary": "Start a live event now",
      "usage": "event.start <event> [hours] [scope=server|global]"
    },
    {
      "args": {},
      "danger": false,
      "group": "world",
      "name": "event.stop",
      "remote": true,
      "scoped": true,
      "summary": "Switch the weekend event off until it would end",
      "usage": "event.stop [scope=server|global]"
    },
    {
      "args": {},
      "danger": false,
      "group": "world",
      "name": "event.clear",
      "remote": true,
      "scoped": true,
      "summary": "Back to the normal event calendar",
      "usage": "event.clear [scope=server|global]"
    },
    {
      "args": [
        {
          "kind": "enum",
          "name": "festival",
          "optional": false,
          "options": [
            "egg_hunt",
            "crop_fair",
            "potluck",
            "lantern_night"
          ],
          "summary": "festival id"
        },
        {
          "default": 90,
          "kind": "integer",
          "max": 600,
          "min": 5,
          "name": "minutes",
          "optional": true,
          "summary": "real minutes"
        }
      ],
      "danger": false,
      "group": "world",
      "name": "festival.start",
      "remote": true,
      "scoped": true,
      "summary": "Start a festival now",
      "usage": "festival.start <festival> [minutes] [scope=server|global]"
    },
    {
      "args": {},
      "danger": false,
      "group": "world",
      "name": "festival.stop",
      "remote": true,
      "scoped": true,
      "summary": "Switch the calendar festival off for now",
      "usage": "festival.stop [scope=server|global]"
    },
    {
      "args": {},
      "danger": false,
      "group": "world",
      "name": "festival.clear",
      "remote": true,
      "scoped": true,
      "summary": "Back to the normal festival calendar",
      "usage": "festival.clear [scope=server|global]"
    },
    {
      "args": [
        {
          "default": 2,
          "kind": "integer",
          "max": 10,
          "min": 2,
          "name": "multiplier",
          "optional": true,
          "summary": "growth days per day"
        },
        {
          "default": 30,
          "kind": "integer",
          "max": 240,
          "min": 1,
          "name": "minutes",
          "optional": true,
          "summary": "real minutes"
        }
      ],
      "danger": false,
      "group": "world",
      "name": "growth.boost",
      "remote": true,
      "scoped": true,
      "summary": "Watered crops on online farms grow this many days at a time",
      "usage": "growth.boost [multiplier] [minutes] [scope=server|global]"
    },
    {
      "args": {},
      "danger": false,
      "group": "world",
      "name": "growth.clear",
      "remote": true,
      "scoped": true,
      "summary": "End the admin growth boost",
      "usage": "growth.clear [scope=server|global]"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        }
      ],
      "danger": false,
      "group": "world",
      "name": "crops.ripen",
      "remote": true,
      "scoped": false,
      "summary": "Ripen every growing crop on one player's farm",
      "usage": "crops.ripen <player>"
    },
    {
      "args": {},
      "danger": false,
      "group": "world",
      "name": "crops.ripenall",
      "remote": true,
      "scoped": false,
      "summary": "Ripen every growing crop on every farm in the server",
      "usage": "crops.ripenall"
    },
    {
      "args": [
        {
          "kind": "text",
          "max": 200,
          "name": "text",
          "optional": false,
          "summary": "message"
        }
      ],
      "danger": false,
      "group": "world",
      "name": "announce",
      "remote": true,
      "scoped": false,
      "summary": "Show a message to everyone in the server (filtered)",
      "usage": "announce <text>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "player.info",
      "remote": true,
      "scoped": false,
      "summary": "Coins, level, passes and more",
      "usage": "player.info <player>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "integer",
          "max": 1000000000,
          "min": -1000000000,
          "name": "amount",
          "optional": false,
          "summary": "coins"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "coins.add",
      "remote": true,
      "scoped": false,
      "summary": "Give coins (negative takes them, never below 0)",
      "usage": "coins.add <player> <amount>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "integer",
          "max": 100000000,
          "min": 1,
          "name": "amount",
          "optional": false,
          "summary": "XP"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "xp.add",
      "remote": true,
      "scoped": false,
      "summary": "Give farming XP (no event bonus)",
      "usage": "xp.add <player> <amount>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "item",
          "name": "item",
          "optional": false,
          "summary": "item id (Config/Items)"
        },
        {
          "default": 1,
          "kind": "integer",
          "max": 999,
          "min": 1,
          "name": "qty",
          "optional": true,
          "summary": "quantity"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "item.give",
      "remote": true,
      "scoped": false,
      "summary": "Put items in the player's bag",
      "usage": "item.give <player> <item> [qty]"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "item",
          "name": "item",
          "optional": false,
          "summary": "item id (Config/Items)"
        },
        {
          "default": 1,
          "kind": "integer",
          "max": 9999,
          "min": 1,
          "name": "qty",
          "optional": true,
          "summary": "quantity"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "item.take",
      "remote": true,
      "scoped": false,
      "summary": "Remove items from the player's bag",
      "usage": "item.take <player> <item> [qty]"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "energy.refill",
      "remote": true,
      "scoped": false,
      "summary": "Fill the player's energy",
      "usage": "energy.refill <player>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "enum",
          "name": "pass",
          "optional": false,
          "options": [
            "backpack",
            "farmhand",
            "lantern_pack",
            "cottage_pack",
            "travel_pass",
            "double_all",
            "double_coins",
            "double_crops",
            "double_ores",
            "double_materials",
            "double_fish",
            "double_animal",
            "double_forage",
            "club"
          ],
          "summary": "pass key"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "pass.grant",
      "remote": true,
      "scoped": false,
      "summary": "Unlock a game pass in game (an entitlement flag, not a Roblox purchase)",
      "usage": "pass.grant <player> <pass>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "enum",
          "name": "pass",
          "optional": false,
          "options": [
            "backpack",
            "farmhand",
            "lantern_pack",
            "cottage_pack",
            "travel_pass",
            "double_all",
            "double_coins",
            "double_crops",
            "double_ores",
            "double_materials",
            "double_fish",
            "double_animal",
            "double_forage",
            "club"
          ],
          "summary": "pass key"
        }
      ],
      "danger": true,
      "group": "player",
      "name": "pass.revoke",
      "remote": true,
      "scoped": false,
      "summary": "Take back a pass granted in game (bought passes stay)",
      "usage": "pass.revoke <player> <pass>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "enum",
          "name": "product",
          "optional": false,
          "options": [
            "sunshine",
            "energy_refill",
            "ripen_all_1",
            "ripen_all_2",
            "ripen_all_3",
            "grow_1",
            "grow_2",
            "grow_3",
            "grow_4",
            "grow_5",
            "finish_machine",
            "tool_set",
            "tool_hoe",
            "tool_watering_can",
            "tool_axe",
            "tool_pickaxe",
            "sprinkler_5",
            "quality_sprinkler_3",
            "quality_sprinkler_10",
            "copper_bar_5",
            "iron_bar_5",
            "gold_bar_3",
            "glimmer_bar_2",
            "gift_99",
            "gift_149",
            "gift_199",
            "gift_249",
            "gift_299",
            "gift_999",
            "gift_499",
            "upgrade_19",
            "upgrade_39",
            "upgrade_79",
            "upgrade_149",
            "upgrade_299",
            "upgrade_499"
          ],
          "summary": "product key"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "product.grant",
      "remote": true,
      "scoped": false,
      "summary": "Run a developer product's reward as if it was bought (no Robux)",
      "usage": "product.grant <player> <product>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "path",
          "name": "path",
          "optional": false,
          "summary": "dot path"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "data.get",
      "remote": true,
      "scoped": false,
      "summary": "Read one value of the player's save (dot path, e.g. tools.hoe)",
      "usage": "data.get <player> <path>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "kind": "path",
          "name": "path",
          "optional": false,
          "summary": "dot path"
        },
        {
          "kind": "value",
          "name": "value",
          "optional": false,
          "summary": "new value"
        }
      ],
      "danger": true,
      "group": "player",
      "name": "data.set",
      "remote": true,
      "scoped": false,
      "summary": "Change one number, text or true/false value in the save (same type only)",
      "usage": "data.set <player> <path> <value>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "player.save",
      "remote": true,
      "scoped": false,
      "summary": "Save the player's progress now",
      "usage": "player.save <player>"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        },
        {
          "default": "Removed by an admin.",
          "kind": "text",
          "max": 120,
          "name": "reason",
          "optional": true,
          "summary": "shown to them"
        }
      ],
      "danger": true,
      "group": "player",
      "name": "player.kick",
      "remote": true,
      "scoped": false,
      "summary": "Remove the player from the server (progress is saved)",
      "usage": "player.kick <player> [reason]"
    },
    {
      "args": [
        {
          "kind": "player",
          "name": "player",
          "optional": false,
          "summary": "user id or name of a player in the server"
        }
      ],
      "danger": false,
      "group": "player",
      "name": "player.goto",
      "remote": false,
      "scoped": false,
      "summary": "Teleport yourself to the player",
      "usage": "player.goto <player>"
    },
    {
      "args": {},
      "danger": false,
      "group": "server",
      "name": "server.status",
      "remote": false,
      "scoped": false,
      "summary": "World overrides, players and server id",
      "usage": "server.status"
    },
    {
      "args": {},
      "danger": false,
      "group": "server",
      "name": "log.recent",
      "remote": false,
      "scoped": false,
      "summary": "Recent admin actions on this server",
      "usage": "log.recent"
    },
    {
      "args": {},
      "danger": false,
      "group": "server",
      "name": "api.status",
      "remote": false,
      "scoped": false,
      "summary": "Whether the remote API is switched on",
      "usage": "api.status"
    },
    {
      "args": {},
      "danger": true,
      "group": "server",
      "name": "api.rotate",
      "remote": false,
      "scoped": false,
      "summary": "Make a new remote API token (shown once; the old one stops working)",
      "usage": "api.rotate"
    },
    {
      "args": {},
      "danger": true,
      "group": "server",
      "name": "api.disable",
      "remote": false,
      "scoped": false,
      "summary": "Switch the remote API off",
      "usage": "api.disable"
    }
  ],
  "version": 1
}
