Skip to content

Built-in Commands

Operator ships a set of commands you can opt into by name. There is no all-or-nothing switch. You take the packs you want and nothing else appears.

luau
Operator.Start({ DefaultCommands = { "debug", "moderation" } })

Or directly, if you are assembling the pieces yourself:

luau
local Packs = require(game:GetService("ServerStorage").Operator).Packs

Packs.load(registry, { "debug", "moderation" }, {
	registry = registry,
	canRun = function(player, command)
		return roles:canRun(player, command)
	end,
})

canRun is only needed by help, so it can list just the commands that player is allowed to run. Naming a pack that does not exist is a loud error listing the ones that do, and nothing is registered. Loading the same pack twice collides on the registry exactly like any other duplicate command.

debug

CommandWhat it does
help [command]list the commands you can run, or show one command's signature
pingcheck the console reaches the server
jobidthis server's job id, for cross-referencing logs
playerswho is in the server, with user ids

moderation

CommandWhat it does
kick <target> [reason]remove a player from the server
ban <target> [duration] [reason]ban through Players:BanAsync; omit the duration for permanent
unban <userId>lift a ban
logs [count]open the log panel; also prints recent commands, with --player= and --failed
bring <targets>teleport players to you
goto <target>teleport yourself to a player

fun

CommandWhat it does
speed <targets> <speed>set walk speed
jump <targets> <height>set jump strength, writing whichever of JumpPower or JumpHeight is active
heal <targets>restore players to full health
gravity [value]set world gravity, or omit the value to restore the default

What is marked destructive

ban, unban and gravity carry :destructive(), so they need a confirmation round-trip before they run. With no confirm handler installed they are cancelled rather than executed.

kick is not destructive and runs without a confirmation.

Writing your own instead

The packs are ordinary commands using the same public API you would use, including the :: Builder<Args> cast, so they double as worked examples. Nothing in them is privileged. If you want a different kick, do not enable the moderation pack and register your own.

Released under the MIT Licence.