GM Commands - OpenPerpetuum/PerpetuumServer GitHub Wiki
Relevant module: https://github.com/OpenPerpetuum/PerpetuumServer/blob/Development/src/Perpetuum/Services/Channels/ChatCommands/AdminCommandHandlers.cs One thing introduced as a new feature on the OPP server is GM commands that can be handled via a chat. They work as follows:
- Your account must be Tool Admin (accLevel=14)
- You (should) create a new channel and type
#secure
At this point the channel type will be changed, people will not be able to see it or join, and you may now emit further GM commands in this channel.
The channel can be unlocked at any time with #unsecure
Also, at the moment the comma separation parser does not account for whitespace, each arg should be split by "," and NOT ", " <- the space will be included in the next arg, which may or may not fail when coerced into a type.
Note: some commands are wrapped in debug as they are never meant to be run on a live server.
Here is a list of (non-debug) commands, their arguments and brief descriptions of their function and purpose:
#shutdown,message(string),minutes(int)
- Shutsdown the server, displays the content of message
in a client-popup, and will shut the server down in minutes
#shutdowncancel
- cancels any pending shutdown
#jumpto,zoneid(int),x(int),y(int)
- jump a zone at an x, y
#moveplayer,characterID(int),zoneID(int),x(int),y(int)
- move another character to some zone, x, y
#getlockedtileproperties
- uses your Primary Lock to report tile properties
#setvisibility,state(bool)
- set yourself visible, state=true/false
#zonedrawstatmap,type(int)
- draws a map of current zone stats of some type (Note: this is a taxing request! Will generate png serverside)
#listallplayersinzone,zoneid(int)
- list players on zone, their account and character IDs, access level and position
#countofplayers
- counts of players by all zones
#addtochannel,characterID(int)
- adds a player to a secured channel
#removefromchannel,characterID(int)
- removes a player to a secured channel
#listrifts
- list all rifts by zone, location, type etc.
#flagplayernameoffensive,characterID(int),isoffensive(bool)
- flags player name for rename on next login
#renamecorp,currentCorpName(string),desiredCorpName(string),desiredCorpNick(string)
- looks up a corp by name (exact match) and changes the name and nick (max 5 characters) to the provided strings
#unlockallep,accountID(int)
- unlocks EP (from locked ep, which occurs by deleting a char)
#epbonusset,bonus(int),hours(int)
- Starts an ep bonus event
#listrelics,zoneid(int/optional)
- list relics on current zone, or provided zone by id
#savelayers,zoneid(int/optional)
- save layers for all zones, or specified zone
#zonelocklayers,zoneid(int/optional)
- lock layers from admin editing for current or specified zone
#zoneunlocklayers,zoneid(int/optional)
- unlock layers from admin editing for current or specified zone