home · contact · privacy
Allow greater TT_PROLIFERATE values.
[plomrogue] / SERVER_COMMANDS
1 Command reading and writing
2 ===========================
3
4 Normal mode
5 -----------
6
7 In normal mode, the server on start up checks for the existence of ./save and,
8 on success, reads all commands from it. If no save file exists, commands from
9 ./confserver/world are read instead – and written to the file ./record_save.
10 Afterwards, the command "MAKE_WORLD" with the current Unix time as argument is
11 interpreted (and also written to ./record_save).
12
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
16 ./record_save.
17
18 Every fifteen seconds, if any turns have passed, ./save is written – with a list
19 of all god commands necessary to recreate the current world state. On each world
20 state change, ./server/worldstate is updated and a message "WORLD_UPDATED"
21 written to ./server/out.
22
23 Replay mode
24 -----------
25
26 In replay mode, commands from ./record_save are read. If a turn number is given
27 as an argument, the file is read until the given turn is reached, or, if the
28 turn number is higher than the last turn of the recorded play, the last turn. If
29 no turn number is given as argument, the record file is replayed until turn 1 is
30 reached. Meta commands in ./record_save are not understood.
31
32 From then on, ./server/in is also read. Meta commands sent by the client are
33 interpreted normally, but any player and god command merely furthers reading of
34 ./record_save by one line and is otherwise ignored.
35
36 Command list
37 ============
38
39 Each command is of a single line. It consists at least of one command stringe,
40 in some cases followed by an obligatory argument. Argument fields are described
41 below in square brackets. Number ranges are described by the first legal number,
42 followed by " to ", followed by the last legal number. "[string]" means any text
43 string is expected, which must be enclosed in single quotes if it contains
44 whitespaces. "[char]" means a single ASCII character is expected. If one of a
45 set of pre-defined strings is expected, the legal strings are divided by pipe
46 symbols ("|").
47
48 Meta commands
49 -------------
50
51 PING
52 Write "PONG" line to ./server/out file.
53
54 QUIT
55 Shut down server.
56
57 THINGS_HERE [0 to 255] [0 to 255]
58 If world exists, write line-by-line list of things visible or in memory at y
59 position of first argument, x position of second argument of map into
60 ./server/out file, enclosed by two lines "THINGS_HERE START" and
61 "THINGS_HERE END".
62
63 Player commands
64 ---------------
65
66 ai
67 Do what the AI would do.
68
69 wait
70 Make player character wait one turn.
71
72 move [east|south-east|south-west|west|north-west|north-east]
73 Make player character move into direction described by argument, or attack into
74 that direction if there is an enemy.
75
76 pick_up
77 Make player character pick up topmost thing it is standing on.
78
79 drop [0 to 255]
80 Make player character drop to the ground item of argument's position in the
81 player character's inventory.
82
83 use [0 to 255]
84 Make player character use item of argument's position in player character's
85 inventory.
86
87 God commands
88 ------------
89
90 TURN [0 to 65535]
91 Set world turn to argument. (Initial value: 0.)
92
93 PLAYER_TYPE [0 to 255]
94 Set to argument ID of thing type into which a new world's player character will
95 be generated. (Initial value: 0.)
96
97 SEED_RANDOMNESS [0 to 4294967295]
98 Set randomness seed to argument. (Initial value: 0.)
99
100 SEED_MAP [0 to 4294967295]
101 (Re-)generate map to seed of argument and map size.
102
103 MAKE_WORLD [0 to 4294967295]
104 Set map seed and randomness seed to argument. Remove all things. (Re-)generate
105 map. Add to map things specified in thing types table in quantity defined there
106 by START_NUMBER command, with first thing (of thing ID of 0) of type defined as
107 player type by PLAYER_TYPE command. Set world turn to 1. Activate world. Answer
108 with 'NEW_WORLD' message in ./server/out file.
109
110 MAP_LENGTH [1 to 256]
111 Deactivate world. Remove ./server/worldstate file. Remove all things. Remove
112 map. Set map edge length to argument. (Initial value: 64.)
113
114 WORLD_ACTIVE [0|1]
115 Set world activity state to argument. If 0, remove ./server/worldstate file.
116 Else, if world was so far inactive, a map exists, at least one "wait" thing
117 action is defined, and a thing of ID 0 (= a player character) that is not part
118 of any other thing's inventory, (re-)build all animate things' fields of view,
119 and activate world. (Initial value: 0.)
120
121 TA_ID [0 to infinity]
122 Select thing action to manipulate by argument as ID. If argument is 0, change it
123 to the lowest unused thing action ID greater than 0. If action of ID does not
124 exist yet, create it with default name "wait" and default effort 1.
125
126 TA_EFFORT [0 to 255]
127 Set to argument the number of turns finishing the selected thing action takes.
128
129 TA_NAME [wait|move|use|drop|pick_up]
130 Set selected thing action's name (and thereby function, equal to player
131 command). Legal worlds need at least one action of name "wait", so if this
132 unsets the world's only "wait" action, the world is deactivated, and the
133 ./server/worldstate file removed.
134
135 T_ID [-1 to infinity]
136 Select thing to manipulate by argument as ID. If argument is <0, change it to
137 the lowest unused thing ID. If thing of ID does not exist yet, create it with
138 default position of y=0/x=0, the first thing type's ID, and that type's
139 lifepoints value; if world is active and the thing is animate, build its field
140 of view.
141
142 T_TYPE [0 to 255]
143 Set selected thing's type ID to argument, if the respective ThingType exists.
144
145 T_POSY [0 to 255]
146 Set selected thing's map row position to argument. Delete thing's field of view
147 and, if world is active, rebuild it.
148
149 T_POSX [0 to 255]
150 Set selected thing's map column position to argument. Delete thing's field of
151 view and, if world is active, rebuild it.
152
153 T_COMMAND [0 to 255]
154 Set to argument the action thing is currently performing, as identified by its
155 thing action ID, if a thing action of that ID is defined. If argument is 0, the
156 thing's command ID is set to that, implying that it is not performing any
157 action.
158
159 T_ARGUMENT [0 to 255]
160 Set selected thing's action argument value to argument.
161
162 T_PROGRESS [0 to 255]
163 Set selected thing's action progress (number of turns already invested in
164 performing the action) value to argument.
165
166 T_LIFEPOINTS [0 to 255]
167 Set selected thing's lifepoints to argument.
168
169 T_SATIATION [-32768 to 32767]
170 Set selected thing's satiation score. If above zero, and thing's lifepoints are
171 below its thing type's initial lifepoints, there is a 1/32 chance each turn of
172 waiting action that the thing's lifepoints will rise. For values affecting the
173 thing's lifepoints negatively, see note on TT_LIFEPOINTS.
174
175 T_CARRIES [0 to 255]
176 Add thing of ID in argument to inventory of selected thing, if said thing is
177 available for carrying and not the selected thing.
178
179 T_MEMMAP [0 to 255] [string]
180 Set part of selected thing's memory of the game map to string argument: the line
181 of the argument's number.
182
183 T_MEMDEPTHMAP [0 to 255] [string]
184 Set part of selected thing's game map memory depth map to string argument: the
185 line of the argument's number.
186
187 T_MEMTHING [0 to 255] [0 to 255] [0 to 255]
188 Add to selected thing's memory of things on map thing of ID of first argument,
189 y position of second argument and x position of third argument.
190
191 TT_ID [-1 to infinity]
192 Select thing type to manipulate by argument as ID. If argument is < 0, change it
193 to the lowest unused thing type ID. If thing type of ID does not exist yet,
194 create it with default name "(none)", corpse ID equal to the new thing type's
195 ID, symbol "?", and remaining thing type attributes to 0.
196
197 TT_CONSUMABLE [0-65535]
198 Set selected thing type's consumability value to argument – the number of
199 .satiation score points earned by consuming/using things of that type.
200
201 TT_START_NUMBER [0-255]
202 Set selected thing type's number of things of type to spawn on successful
203 MAKE_WORLD command to argument.
204
205 TT_LIFEPOINTS [0-255]
206 Set selected thing type's initial lifepoints value to argument. Things of 0
207 lifepoints are considered inanimate, otherwise animate. This value also sets the
208 degree to which the selected type's things suffer from under- or over-satiation:
209 If 0, not at all. Else, it defines a stomach size value of 32767 divided by it.
210 Each turn a thing of the given type may then suffer a lifepoint decrement to the
211 chance of the rounded down quotient of its satiation score's absolute value by
212 its stomach size value, then again divided by the latter. (This means that the
213 change is always zero when the absolute value of the satiation score is lower
214 than the stomach size value.)
215
216 TT_SYMBOL [char]
217 Set to argument symbol by which things of the selected type are represented on
218 the map.
219
220 TT_NAME [string]
221 Set selected thing type's name to argument. This name identifies things in the
222 game log and the inventory.
223
224 TT_CORPSE_ID [0-255]
225 Set to argument the ID of the thing type that things of the selected type
226 transform into when their state changes from animate to inanimate.
227
228 TT_PROLIFERATE [0 to 65535]
229 If non-zero, there is a chance of 1 divided by the given value each turn for any
230 thing of the selected type to emit an offspring to a random neighbor cell if one
231 is available that is passable and not inhabited by a thing of the same same type
232 or, if the proliferating thing is animate, any other animate thing.
233
234 Unexplained 7DRL additions
235 ---------------------------
236
237 GOD_MOOD [-32768 to 32767]
238
239 GOD_FAVOR [-32768 to 32767]
240
241 SLIPPERS [0 to infinity]