1 Command reading and writing
2 ===========================
7 In normal mode, the server on start up checks for the existence of ./savefile
8 and, on success, reads all commands from it. If no savefile exists, commands
9 from ./confserver/world are read instead – and written to the file ./record.
10 Afterwards, the command "MAKE_WORLD" with the current Unix time as argument is
11 interpreted (and also written to ./record).
13 In any case, from then on, further commands are read in from ./server/in. New
14 commands must be appended to the file – which is what the client does. All
15 commands from ./server/in except meta commands are also written to ./record.
17 At the end of each turn, ./savefile is written – with a list of all god commands
18 necessary to recreate the current world state.
23 In replay mode, commands from ./record are read. If a turn number is given as an
24 argument, the file is read until the given turn is reached, or, if the turn
25 number is higher than the last turn of the recorded play, the last turn. If no
26 turn number is given as argument, the record file is replayed until turn 1 is
29 From then on, ./server/in is also read. Meta commands are interpreted normally,
30 but any player and god command merely furthers reading of ./record by one line
31 and is otherwise ignored.
36 Each command is of a single line. It consists at least of one command stringe,
37 followed by an optional argument. Argument fields are described below in square
38 brackets. Number ranges are described by the first legal number, followed by
39 " to ", followed by the last legal number. "[string]" means any text string is
40 expected, which must be enclosed in single quotes if it contains whitespaces.
41 "[char]" means a single ASCII character is expected. If one of a set of
42 pre-defined strings is expected, the legal strings are divided by pipe symbols
49 Write "PONG" line to ./server/out file.
58 Make player character wait one turn.
60 move [east|south-east|south-west|west|north-west|north-east]
61 Make player character move into direction described by argument, or attack into
62 that direction if there is an enemy.
65 Make player character pick up topmost thing it is standing on.
68 Make player character drop to the ground item of argument's position in the
69 player character's inventory.
72 Make player character use item of argument's position in player character's
79 Set world turn to argument. (Initial value: 0.)
81 PLAYER_TYPE [0 to 255]
82 Set to argument ID of thing type into which a new world's player character will
83 be generated. (Initial value: 0.)
85 SEED_RANDOMNESS [0 to 4294967296]
86 Set randomness seed to argument. (Initial value: 0.)
88 SEED_MAP [0 to 4294967296]
89 (Re-)generate map to seed of argument and map size.
91 MAKE_WORLD [0 to 4294967296]
92 Set map seed and randomness seed to argument. Remove all things. (Re-)generate
93 map. Add to map things specified in thing types table in quantity defined there
94 by START_NUMBER command, with first thing (of thing ID of 0) of type defined as
95 player type by PLAYER_TYPE command. Set world turn to 1. Activate world.
98 Deactivate world. Remove ./server/worldstate file. Remove all things. Remove
99 map. Set map edge length to argument. (Initial value: 64.)
101 WORLD_ACTIVE [0 to 255]
102 Set world activity state to argument. If 0, remove ./server/worldstate file.
103 Else, if world was so far inactive, a map exists, at least one "wait" thing
104 action is defined, and a thing of ID 0 (= a player character) that is not part
105 of any other thing's inventory, (re-)build all animate things' fields of view and
106 activate world. (Initial value: 0.)
109 Select thing action to manipulate by argument as ID. If argument is 0, change it
110 to the lowest unused thing action ID greater than 0. If action of ID does not
111 exist yet, create it with default name "wait" and default effort 1.
114 Set to argument the number of turns finishing the selected thing action takes.
116 TA_NAME {wait|move|use|drop|pick_up}
117 Set selected thing action's name (and thereby function). Legal worlds need at
118 least one action of name "wait", so if this unsets the world's only "wait"
119 action, the world is deactivated, and the ./server/worldstate file removed.
121 T_ID [-32768 to 32767]
122 Select thing to manipulate by argument as ID. If argument is <0 or >255, change
123 it to the lowest unused thing ID. If thing of ID does not exist yet, create it
124 with default position of y=0/x=0, the first thing type's ID, and that type's
125 lifepoints value. If world is active and the thing is animate, build its field
129 Set selected thing's type ID to argument.
132 Set selected thing's map row position to argument. Delete thing's field of view
133 and, if world is active, rebuild it.
136 Set selected thing's map column position to argument. Delete thing's field of
137 view and, if world is active, rebuild it.
140 Set to argument the action thing is currently performing, as identified by its
141 thing action ID, if a thing action of that ID is defined. If argument is 0, the
142 thing's command ID is set to that, implying that it is not performing any
145 T_ARGUMENT [0 to 255]
146 Set selected thing's action argument value to argument.
148 T_PROGRESS [0 to 255]
149 Set selected thing's action progress (number of turns already invested in
150 performing the action) value to argument.
152 T_LIFEPOINTS [0 to 255]
153 Set selected thing's lifepoints to argument.
156 Add thing of ID in argument to inventory of selected thing, if said thing is
157 available for carrying and not the selected thing.
159 TT_ID [-32768 to 32767]
160 Select thing type to manipulate by argument as ID. If argument is <0 or <255,
161 change it to the lowest unused thing type ID. If thing type of ID does not exist
162 yet, create it with default name "(none)", corpse ID equal to the new thing
163 type's ID, and remaining thing type attributes to 0.
165 TT_CONSUMABLE [0-255]
166 Set selected thing type's consumability value to argument – the number of
167 lifepoints earned by consuming/using things of that type.
169 TT_START_NUMBER [0-255]
170 Set selected thing type's number of things of type to spawn on successful
171 MAKE_WORLD command to argument.
173 TT_LIFEPOINTS [0-255]
174 Set selected thing type's initial lifepoints value to argument. Things of 0
175 lifepoints are considered inanimate, otherwise animate.
178 Set to argument symbol by which things of the selected type are represented on
182 Set selected thing type's name to argument. This name identifies things in the
183 game log and the inventory.
186 Set to argument the ID of the thing type that things of the selected type
187 transform into when their change changes from animate to inanimate.