"Safe" GM commands?
Posted: 12 Nov 2013, 05:39
A TMWA dev recently raised the concern that some GM commands in TMWA might have bugs that are serious enough to crash the server itself.
The command in question was @storage. Devs then investigated the code and determined that it doesn't have the ability to crash a TMWA server, but of course that leaves the question of what other commands are safe.
On the main server, @storage was identified as a high risk command because it is so restricted (GM 80 or higher). One suggestion was that admins ask the code developers before using any GM commands that have not been "approved." I think it's better to proactively identify such catastrophic bugs so that admins of all servers can make informed decisions about what to use and permit on their servers.
The following are the commands I find that are GM 80 or higher on the main server.
setmagic
magicinfo
option
zeny
charzeny
charoption
addwarp
day
doom
doommap
night
recallall
raisemap
raise
enablenpc
disablenpc
npcmove
skillon
skilloff
lostskill
idsearch
item
produce
dropall
gvgon
gpvpon
gvgoff
gpvpoff
questskill
ignorelist
charignorelist
gstorage
effect
charmodel
agitstart
agitend
guildlvl
guild
party
guildrecall
partyrecall
guildspy
partyspy
memo
charmountpeco
disguise
undisguise
chardisguise
charundisguise
charitemlist
charstoragelist
charcartlist
charquestskill
charlostskill
model
mountpeco
kami
kamib
kickall /safe
mapexit /safe
gat
packet
mapinfo
reloaditemdb
reloadmobdb
reloadskilldb
reloadscript
reloadgmdb
storage /safe
That's the list from the server config file. Some of those commands were removed in the recent code update/rewrite. I did not cross-reference with the release notes for that, so some of the above commands can probably be marked as deleted or something. Likewise, if commands were added in the code but not to this server config, I will have missed them too.
TMWA code devs declared the following commands are safe enough to use:
Safe
@kickall
@mapexit
@storage
Note that I am not requesting that we audit the entire codebase, merely that if a GM command has the ability to "crash the server" then that should be identified, documented, and tracked.
The command in question was @storage. Devs then investigated the code and determined that it doesn't have the ability to crash a TMWA server, but of course that leaves the question of what other commands are safe.
On the main server, @storage was identified as a high risk command because it is so restricted (GM 80 or higher). One suggestion was that admins ask the code developers before using any GM commands that have not been "approved." I think it's better to proactively identify such catastrophic bugs so that admins of all servers can make informed decisions about what to use and permit on their servers.
The following are the commands I find that are GM 80 or higher on the main server.
setmagic
magicinfo
option
zeny
charzeny
charoption
addwarp
day
doom
doommap
night
recallall
raisemap
raise
enablenpc
disablenpc
npcmove
skillon
skilloff
lostskill
idsearch
item
produce
dropall
gvgon
gpvpon
gvgoff
gpvpoff
questskill
ignorelist
charignorelist
gstorage
effect
charmodel
agitstart
agitend
guildlvl
guild
party
guildrecall
partyrecall
guildspy
partyspy
memo
charmountpeco
disguise
undisguise
chardisguise
charundisguise
charitemlist
charstoragelist
charcartlist
charquestskill
charlostskill
model
mountpeco
kami
kamib
kickall /safe
mapexit /safe
gat
packet
mapinfo
reloaditemdb
reloadmobdb
reloadskilldb
reloadscript
reloadgmdb
storage /safe
That's the list from the server config file. Some of those commands were removed in the recent code update/rewrite. I did not cross-reference with the release notes for that, so some of the above commands can probably be marked as deleted or something. Likewise, if commands were added in the code but not to this server config, I will have missed them too.
TMWA code devs declared the following commands are safe enough to use:
Safe
@kickall
@mapexit
@storage
Note that I am not requesting that we audit the entire codebase, merely that if a GM command has the ability to "crash the server" then that should be identified, documented, and tracked.