User Tools

Site Tools


dm_commands

DM Commands

* See also: player_commands

General notes for DM's:
Case sensitivity is important in player and map names.
Most commands using a player name will work if given a partial name that is non ambiguous.

abil

The abil command will permanently change the specified ability score of a specified player.

Usage: abil <player> <attribute> <value>

  • <player> is the specified player name that must be logged in.
  • <attribute> is one of Str, Dex, Con, Int, Wis, Pow, or Cha.
  • <value> is a number that ranges between 1 and 30 and may not exceed 30.

accountpasswd

The accountpasswd command allows a DM to reset the password of an account name (which may be different than the player character name!), to the specified <password> text in the command.

Usage: accountpasswd <account> <password>

Example:

accountpasswd oliver secret123

The account name of oliver now has the password of secret123 for logging in to the game.

addexp

The command addexp can either add or subtract a specified amount of experience to a player in the game, to any skill they have access to (i.e., praying because they have a holy symbol) or have learned (i.e., skill scroll of punching) or started with as part of their race (i.e., wraith feed for a wraith) or class (i.e., flame touch for a fireborn.)

Usage: addexp <name> <amount> <skill>

Example:

addexp Betty 500 literacy

Betty now has an additional 500 experience in her literacy skill.

Example:

addexp Judy -600 punching

Judy has now lost 600 experience in her punching skill.

banish

Usage: banish <player>

The banish command will forcefully drop the specified player's connection to the server and the named player will also have their current IP address added to the server's banish file.

Example:

banish Fred

This will prevent the named player from logging into the server from their current IP address.

This is an in-game version of the ban function meant for short-term relief of persistent problematic players and for DMs who do not have shell access.

It is probably a good idea to clear out the banish file (var/crossfire/banish_file) regularly and delete or move any entries to the etc/crossfire/ban_file if desired.

See Also : kick

create

NOTE: Creating items is rather dangerous and tends to crash the server when creating some items. It is generally safer to modify existing items with the patch command instead of the create command.

The create command allows a DM to make in-game items or items with numerous special properties (i.e., magical enchantment, graphic or face, quantity, etc.)

Usage: create [<number>] [<bonus>] <archetype> [<variable1> <value1>] [<variable2> <value2>] … [of <artifact>]

Example:

create 5 +1 sword name “Spiffy Sword” face chicken.171

This would create 5 longswords +1 named 'Spiffy Sword' that look like chickens.

Usage: create [<number>] [<archetype>] of [<archetype>] [<attribute>] [<attribute value>]

Example:

create 1 rod_heavy of spell_word_of_recall level 3 hp 100 maxhp 100

This would generate one 'heavy rod of word of recall (lvl 3)' into the inventory of the DM.

The number and bonus attributes may be left off, or the bonus itself may be left off at any time.

If a bonus is desired, the number must be specified as well.

Archetype must be specified in all cases.

Variables and values may be left off at any time, but specifying a variable requires a value also be specified.

Multipart values such as for an item name must be quoted.

Creating artifacts requires placing the artifact definition at the end of the line, as any characters after the “of” are treated as part of the artifact name, regardless of quotes.

When creating artifacts, the actual arch name must be used.

Example:

create 10 balm_generic of first aid

Creating wands/staves/scrolls/etc with specific spells is done in the same manner as an artifact.

See Also: dump
See Also: patch

debug

The debug command will either print the current level of server log debugging. Or, allow the DM to adjust the level (verbosity) of details written to the server log file.

Usage:

debug
debug <0 - 3>

Example:

debug 1

Summary:

  • debug: will simply print the current level of debugging.
  • debug 0: llevError = 0 includes server and metaserver interaction, server online status, buffer overflow alerts, character creation issues, object animation errors, and more.
  • debug 1: llevInfo = 1 includes failed connection attempts to the server, failed logins, blocked accounts trying to log in, player disconnections, errors and problems with books and scrolls, syntax errors with game objects, errors with map files, and more.
  • debug 2: llevDebug = 2 includes more logging related to player actions such as apply command and target item, lock and mark item actions, dropped items, inscribe command and actions, and more.
  • debug 3: llevMonster = 3 includes many, many details such as monster movements, pet information, object state & status, spell status, and more.

The default value is debug 1

dump

The dump command will let you see the attributes for any item in the game.

Usage: dump <object number>

To find the object number of an item you wish to view, left-click on it.

If this item is in your inventory, or you are standing over it, click on yourself and the object numbers will be displayed.

Example:

Left-click on a fountain in Scorn town square
There you see:  
  fountain (20267).
  cobbestones (20266)
  no_spells (20265).

To see all the attributes of the fountain, enter:

dump 20267

Will produce this output:

Item stacked as 1.
arch fountain
name fountain
name_pl fountain
face fountain.111
animation fountain
x 5
y 35
type 67
move_on walk
no_pick 1
client_anim_random 1
is_animated 1
end
Object is marked original

See Also: patch

dumpabove

The command dumpabove will dump the attributes of the item above the dm.

Usage: dumpabove

See Also: patch
See Also: dumpallarchtypes
See Also: dumpallmaps
See Also: dumpallobjects
See Also: dumpbelow
See Also: dumpfriendlyobjects

dumpallarchtypes

The dumpallarchtypes prints out a list of all archetypes to stderr.

Usage: dumpallarchtypes

See Also: patch
See Also: dumpabove
See Also: dumpallmaps
See Also: dumpallobjects
See Also: dumpbelow
See Also: dumpfriendlyobjects

dumpbelow

The command dumpbelow will dump the attributes of the top item you are standing over.

Usage: dumpbelow

See Also: patch
See Also: dumpabove
See Also: dumpallarchtypes
See Also: dumpallmaps
See Also: dumpallobjects
See Also: dumpfriendlyobjects

dumpallmaps

The dumpallmaps prints out map information for all active maps to stderr.

Usage: dumpallmaps

See Also: patch
See Also: dumpabove
See Also: dumpallarchtypes
See Also: dumpallobjects
See Also: dumpbelow
See Also: dumpfriendlyobjects

dumpallobjects

The dumpallobjects prints out a list of all active objects to stderr.

Usage: dumpallobjects

See Also: patch
See Also: dumpabove
See Also: dumpallarchtypes
See Also: dumpallmaps
See Also: dumpbelow
See Also: dumpfriendlyobjects

dumpfriendlyobjects

The command dumpfriendlyobjects prints out a list of all active friendly objects to stderr.

Usage: dumpfriendlyobjects

See Also: patch
See Also: dumpabove
See Also: dumpallarchtypes
See Also: dumpallmaps
See Also: dumpallobjects
See Also: dumpbelow

follow

The follow command allows a DM to follow a specified player and keeps the DM at four (4) or fewer squares away from a player (works better when hidden).

Usage:

follow <playername>

To end following just type the command 'follow' again.

See Also: invisible

free

Usage: free <tag>

The command free should ONLY be used after the remove command. Freeing an object that has not been removed will cause the game to crash. For most objects, simply removing them is sufficient and they will eventually be freed.

See Also: remove

freeze

The freeze command will prevent a player from taking any action for some amount of time, the default time is 100 ticks.

Usage:

freeze [ticks] <player>

Example:

freeze 50 George

George will be unable to move, use any communication channels, cast any spells, use any items, or interact with any nearby objects of his character for 50 game ticks.

goto

The goto command will instantly teleport you to the specified map and use that map's entrance coordinate to place you on the map.

Usage:

goto <map_path>

Example:

goto /HallOfDMs

The map path must include the full directory tree (i.e., /scorn/port/ticket_office) and is case sensitive.

hide

The hide command will prevent the DM from being seen by players.

Usage:

hide

This is done by making the DM perpetually invisible players on the server. It also results in the DM not showing up in the who command, maps command, or being reported as a player on the metaserver.

Example:

hide

All players and the DM will see: The Dungeon Master is gone… Jane leaves the game. Jane left the game.

Note that the DM can still do things that can make their presence known, eg, shout, other DM actions, etc.

To leave hidden mode, just enter 'hide' again to become visible to players.

Example:

hide

The DM will see:

You are no longer hidden from players
Jane has entered the game.
The Dungeon Master has arrived!
Your invisibility spell runs out.

All logged-in players will see:

Jane has entered the game.
The Dungeon Master has arrived!

insert_into

Usage: insert_into <item> <item>

This will insert the 2nd item in the first. 2nd can't be a player.

invisible

The invisible command will make the DM temporarily invisible for approximately 2 ticks (or 16 seconds assuming default server configuration settings.

Usage:

invisible

Once the timer on the command expires, the DM will return to visible mode again.

kick

The kick command will cause the specified player (or all players) to be disconnected from the server. They can reconnect to the server again if desired.

This is useful for forcing a player to disconnect if they encounter a dropped link and are unable to log back in because the server still shows them as logged in.

Usage:

kick <player>

Example:

kick Leroy

If used without an argument, it will kick all players off the server except for you, the DM.

Usage:

kick

See Also: banish

learn_special_prayer

The learn_special_prayer command will permanently give the DM any specified spell that is normally granted to cult followers.

Usage:

learn_special_prayer <prayer name>

Note: the <prayer name> is the actual spell name, not the object or archetype name. So, for instance, insect plague would be used instead of spell_insect_plague.

Examples:

learn_special_prayer wave
learn_special_prayer insect plague

The DM character still has access to the granted spell even when they are not in DM mode - but still must meet the minimum casting requirements for the spell (i.e., proper level in praying, enough grace to cast the prayer, etc.)

See Also: learn_spell
See Also: nodm

learn_spell

Usage: learn_spell <spell name>

This will allow you to permanently learn a spell. <spell name> may be a partial spell name.

It is similar to learn_special_prayer except that you will retain the knowledge of this spell regardless of changing deities.

See Also: learn_special_prayer

mon_aggr

Usage: mon_aggr

This command requires the possess command to be active. But, possess command was disabled per the server ChangeLog in 801f6142b - (2004-06-06 17:15:12 +0000) Disable possess command - ryo_saeba

Toggles the aggression of the monster you are currently possessing. Not recommended to be flipped on yourself as a player.

See Also: possess

nodm

Usage: nodm

This command will return the DM to normal player status.

See Also: nowiz

nowiz

Usage: nowiz

This command will return the DM to normal player status.

See Also: nodm

overlay_save

syntax: overlay_save

This will save everything on the current map that was not originally part of it as an overlay. The overlay will then be loaded anytime the map itself is loaded. Be careful with this as EVERYTHING on the map will be saved in an overlay, such as spawned monsters and dropped objects.

patch

Using the patch command, you can radically modify the properties of objects in the game. Simply specify the object number (obtained through the dump command) to modify and the new values of its variables (or completely new variables).

Usage: patch <tag> <variable> <value>

Examples: patch 19875 nrof 10

This will change the quantity of items referenced by object number 19875 to 10

patch 49635 dam 200

This will change the damage of a weapon referenced by object number 49635 to 200

See Also: dump

plugin

Usage: plugin <plugin name>

This will load a new plugin into memory. Using this with no arguments, or invalid arguments will cause a server crash. The plugin name should be as it appears in your plugin directory. Double-check the names before using plugins.

See Also: pluglist
See Also: plugout

pluglist

syntax: pluglist

notes: this shows currently loaded plugins.

plugout

Usage: plugout <plugin name>

This will remove a loaded plugin from memory.

See Also: plugin
See Also: pluglist

possess

Usage: possess <object number>

This feature was disabled per the server ChangeLog in 801f6142b - (2004-06-06 17:15:12 +0000) Disable possess command - ryo_saeba

Take over the body of a given monster and requires the object number of the monster which is found by using the dump command.

Once the monster is possessed, it can now be controlled by the DM through their client interface and connection.

It is not suggested you try to possess another player, as bad things will undoubtably happen.

See Also: dump
See Also: mon_aggr

printlos

syntax: printlos

notes: this is used for line of sight debugging.

purge_quest_state

Usage: purge_quest_state

This command purges the quest state for the players from the server.

It does not remove said state from the disk.

It is useful to change, via .quest file editing, the status of a quest for a player.

See Also: purge_quests
See Also: quest

purge_quests

Usage: purge_quests

This command purges the quest definitions from the server memory.

It does not remove anything from the disk.

This is used to avoid restarting the server when a quest definition changes.

See Also: purge_quest_state
See Also: quest

quest

Usage: quest (player name) list|info|set

This command shows the quest status for a specified player or information on in-game quests or can change the status of a player's quest list.

Examples:

  • (player name) list: displays quests the player is currently attempting, add 'all' to show completed quests also
  • (player name) info: displays information about the specified (by number) quest
  • (player name) set (quest number) (state): set the state of the specified quest

Note: (player name) may be a partial name as long as it isn't ambiguous. The player must be online.

See Also: purge_quest_state
See Also: purge_quests

recollect

syntax: recollect

NOTE: Experimental command - use with caution

FIXME: the command is currently not documented as a help file in the game

The recollect command will cause the server to run the archetype collection process again. An example for using this command is for testing new faces by comparing old faces with new ones without rebooting the server.

Check the server logs for output related to this command since there currently is no output to the DM or through the game client in regard to running this command.

Example server log output:

Starting to collect assets from /usr/games/crossfire/share/crossfire
Finishing collecting assets from /usr/games/crossfire/share/crossfire

remove

syntax: remove <tag>

Remove will, surprisingly enough, remove the object specified by the tag supplied.

See Also: free

reset

syntax: reset <mapname> or reset . or reset full-reset <mapname> or reset full-reset .

Notes: All other characters must be off of the map at the time of reset (a message will appear showing any players on the map during the failed reset.) This will NOT reset any unique items, such as players apartments, in the case of unique items being on a map, it will cause them to be saved before the map is reset. You can also use the command in this syntax to reset the map you are currently standing on: 'reset .

How to reset a unique map

Since revision 13938 (trunk) and 13939 (branch), reset full-reset <mapname> enables to remove unique items from a map.

For a player unique map, you need to be outside the map to reset it, and give the full path (using reset full-reset . while in that map will give you that full path).

How to reset a unique map (before those revisions)

To reset a unique map, access to the server file system is needed. Make sure all items of value are retrieved from the map before implementing the reset, or they will be lost. When the map owner says all is clear, consider the example of trying to reset a python guild map (/pup_land/guilds/purple_butterfly/hallofjoining).

  • Use the reset command to reset the map path the same way you would a normal map.
    • dm
    • reset /pup_land/guilds/purple_butterfly/hallofjoining
  • Find the unique map. In this example, the server is installed in /usr/games/crossfire. The unique map is a file named similarly to the in-game map path: In this example, the server is installed in /usr/games/crossfire.v00
    • Presumably, there are cases where there might be multiple files with different numbered .vXX extension. If there is more than one, make sure to identify the one to reset.
    • For safety, make a backup of the unique map.
  • Delete the unique map.
    • rm -f /usr/games/crossfire/var/crossfire/unique-items/pup_land\@guilds\@purple_butterfly\@hallofjoining.v00
  • One server admin suggests an additional reset of the map from within the game, but, at least on one trunk server, this reports “No such map” after the server's unique map file was deleted, and therefore, may not be needed.

server_speed

Usage: server_speed <newspeed>

This command will set the tick rate of the server to <newspeed> in microseconds. The default setting is currently 120,000 microseconds (120ms). Use this command with extreme caution as you can easily “break” the default behavior of the server and cause all players to starve to death multiple times, or worse.

set_god

Usage: set_god <player> <deity>

This will change a player's deity to the deity specified.

Example:

set_god Carol Mostrai

The player named Carol is now a follower of Mostrai.

shutdown

Usage: shutdown <now|time|idle|cancel>

Shut down 'now', in 'time' minutes, when there are no active players ('idle'), or 'cancel' a pending shutdown.

Active players do not include AFK players and bots.

When using the time option in-game players will receive a notice or warning about the pending shutdown at the following time intervals (in minutes): 120, 90, 60, 45, 30, 15, 10, 5, 4, 3, 2, 1

Players logging in during the shutdown time window will also receive a notice of the pending shutdown.

spellreset

syntax: spellreset

notes: this causes the spell table to be reinitialized.

ssdumptable

syntax: ssdumptable

notes: this will print out the current hash table to stderr.

stats

Usage: stats <player>

This displays the named player's statistics. (Str, Dex, Con, Int, Wis, Pow, Cha, current h.p., current s.p., AC, Damage, EXP, Grace, Food, Maximum health points, Maximum spell points, WC)

Example: stats Darla

The command would display all stats for the player Darla.

style_info

Usage: style_info

This will print out information regarding current styles in use. The output includes Style maps load, Memory used not including objects, Style objects, and Memory for objects.

summon

Usage: summon <player>

Summoning a player will bring them immediately to your location. See 'teleport' for the reverse.

Example: summon Gabriel

This will cause the player named Gabriel to appear in front of your character - even if it is a private map, such as a personal apartment.

There is no 'reverse' summoning, except to go to a map yourself and summon the player again.

See Also: goto
See Also: teleport

swap

Usage: swap <map path>

Mark an in-memory map at the given path for swapping.

This is useful for testing things related to swapped maps without waiting for the swap timeout and for flushing unique maps.

The map is only swapped if there are no players on the map and the swapper is ready (usually within a few ticks).

teleport

Usage: teleport <player>

Teleport will bring you immediately next to the player's location. See 'summon' for the reverse.

Example: teleport Gabriel

This will cause you to appear next to the player named Gabriel - even if it is a private map, such as their personal apartment.

See Also: summon

time

Usage: time

The time command will display in-game time along with the month, day, and year.

For DMs, it also displays additional time statistics about server performance such as min, avg, and max on ticks in milliseconds for the server session.

The output also displays ticks longer than 120ms, and time (avg, max, min) on the last 100 ticks.

toggle_shout

Usage: toggle_shout <player>

The toggle_shout command will toggle the no_shout bit for the named player.

This will prevent or enable the player to use the shout channel for communication.

Example: toggle_shout Jessica

If the player named Jessica has access to the shout channel, the command will now disable her access.

If Jessica had the shout channel disabled by this command, entering the command again will re-enable shout channel access.

who

Usage: who

The who command will display all players who are currently logged in to the game and show which ones are AFK (if activated by the player), DMs, and bot accounts. The map path of all logged-in players is also shown.

When used as a DM, all of the above information is displayed in addition to the object tag of players and their total level.

wizcast

This will enable/disable your ability to cast spells and prayers anywhere as DM.

Without argument, it toggles between on and off.

For instance, with the ability set to on - the DM can cast prayers on unholy ground and spells in no_magic areas (i.e., the middle of a shop.)

wizhelp

The following commands are available to you:

dmhelp <command name>
abil <player> <attribute> <value>
accountpasswd <account> <password>
addexp <name> <amount> <skill>
banish <player>
create [<number>] [<bonus>] <archetype> [<variable1> <value1>] [<variable2> <value2>] ... [of <artifact>]
create [<number>] [<archetype>] of [<archetype>] [<attribute>] [<attribute value>]
debug or debug <0 - 3>
dumpabove
dumpallarchtypes
dumpallmaps
dumpallobjects
dumpbelow
dumpfriendlyobjects
follow <playername>
free <tag>
freeze [ticks] <player>
goto <map_path>
hide
insert_into <item> <item>
invisible
kick <player>
learn_special_prayer <prayer name>
learn_spell <spell name>
mon_aggr
nodm
nowiz
overlay_save
patch <tag> <variable> <value>
plugin <plugin name>
pluglist
plugout <plugin name>
possess <object number>
printlos
purge_quest_state
purge_quests
quest (player name) list|info|set
remove <tag>
reset <mapname>
server_speed <newspeed>
set_god <player> <deity>
shutdown <now|time|idle|cancel>
spellreset
ssdumptable
stats <player>
style_info
summon <player>
teleport <player>
time
toggle_shout <player>
who
wizcast [<on_off>]
wizpass

General notes for DMs: Case sensitivity is important in player and map names.

wizpass

Usage: wizpass

This will toggle on and off your ability to walk through walls as DM.

dm_commands.txt · Last modified: 2024/06/12 00:12 by leaf