Zon File - torilmud/docs GitHub Wiki

Zon File

This file is being retired in favor of the new .config and .tpl files

The zon (zone) file is the most important file you'll make since it decides what loads where, which mob uses which item, and who follows whom. There are also several special zone commands that allow you to remove mobs, items, and have diurnal/nocturnal mobs as well.

Important Notes on making the .zon File:

  1. Whatever you do, make SURE you comment your zone file. You can see what I mean in the example above, but in brief, make sure that after EVERY load you put in, write a comment after it to tell us (The Staff) what you are loading there.

  2. Under NO circumstances are you to use any item or mob from another zone in your zone file!!! If you want to do this, then copy the mob or item into your own .mob or .obj, and renumber it so it's in your .obj range. This is a MUST.

  3. Take care in assigning Temperature to the zone. Freezing, Heatstroke and boiling all do damage every tic to a player. Do NOT use those without a good reason. (The Arctic tundra would be freezing for example). Also realize that strong winds can be very annoying for players.

Zon File Format

Zone File Format Example Zone
#<zone number> #700
> filename: zonename.zon~ 1 > filename: batiri.zon~
<zone name>~ Jungle Village of the Batiri~
<top of zone> <life span> <reset mode> <zone flag> 70499 13 2 0
<season_patterns> <weather_flag> <mana_add> 3 0 0
<windspeed1> <wind2> <wind3> <wind4> < 2 1 0 0
<variance1> <var2> <var3> <var4> 0 0 0 0
<winddirection1> <dir2> <dir3> <dir4> 0 0 0 0
<precipitation1> <prec2> <prec3> <prec4> 6 7 0 0
<temp1> <temp2> <temp3> <temp4> 8 8 8 8
<Zone Expmod> 2 *bugged-do not use 100
* *
<command list> ****** Door Table *****
D 0 70000 0 1 * North exit from room 70000
D 0 70001 2 1 * South exit from room 70001
D 0 70008 1 1 * East exit from room 70008
****** Obj Table ******
O 0 70001 1 70092 * a humming portal of violet mist
O 0 70002 1 99220 * a humming portal of violet mist
****** Mobs Table ******
M 0 70015 1 70011 * the batiri shaman
E 1 7905 250 16 * a generic war hammer
M 0 70019 1 70077 * a lost svirfneblin miner
E 1 34212 1 250 * a miner's pick
M 0 70018 1 70077 * the kobold assassin
E 1 7910 250 16 * a generic dagger
M 0 70235 1 70412 * the batiri king
E 1 70236 1 16 * a dagger
E 1 70223 1 5 * a suit of chainmail
M 0 70237 2 70412 * a human servant
M 0 70237 2 70412 * a human servant
F 2 70412 70235 70237 * follow king
S S

The .zon file does not have a blank space at the bottom.

  • 1: Note that this line is not included in the zone file by the TE (toril editor), you MUST add this line before submission before it can be loaded into testmud.

  • 2: Not supported by TE (toril editor). Default is 100 if not set.

Zone Basics

Zone Number

The virtual number assigned to your zone, usually the number of your first room divided by 100.

Filename

> filename: zonename.zon~

New text used to aid in zone identification by the code. See above example for exact syntax. The > mark must be included.

Zone Name

Unique name for your zone, without ANSI. Example: The Kobold Village

Top of Zone

Highest vnum occurring in your zone, usually equivalent to the highest numbered room.

Life Span

When the age of the zone (measured in minutes after last reset) reaches this number, the zone is queued for reset. The zone is then reset as soon as possible (more or less), depending on the value of the RESET_MODE variable. The most common value is usually about 20 minutes.

Reset Mode

Possible values for this are:

0 Never reset the zone, effectively ignoring the life span field.
1 Reset the zone as soon as deserted by all players.
2 Reset the zone no matter who or what is in it when the life span is reached, which is by far the most common.

Zone Flags

The following flags can be set, with their values being additive:

Flag Name Bit Value Comments
SILENT 1 Entire zone is silent
SAFE 2 Entire zone is safe
HOMETOWN 4 Zone is a hometown
NO_TELEPORT 16
NO_MAGIC 32
NO_RECALL 64
NO_SUMMON 128
NEWBIE_RECALL 256 (RESTRICTED USE) allows -20 to recall to scardale
EVERMEET 512 For zones located on evermeet
HIGH_CIRCLE_TELE 1024 (summon, dimension door, dimensional fold and teleport won't work)
NO_CAMP 2048 (RESTRICTED USE) Voiding or camping here will send players to a safe room
NO_CLAIR 4096 Can't use clairvoyance on players inside this zone

Zone Expmod

Not currently functional

This value will boost the experience gained from your zone. It will default to 100 if not set and it is completely optional.

Weather Flags

Season Patterns

ONE_SEASON 1 <------------1------------>
TWO_SEASONS_EQUAL 2 <-----1------><-----2----->
TWO_SEASONS_FIRST_LONG 3 <-------1-------><---2---->
TWO_SEASONS_SECOND_LONG 4 <---1----><------2-------->
THREE_SEASONS_EQUAL 5 <---1---><---2---><---3--->
FOUR_SEASONS_EQUAL 6 <--1--><--2--><--3--><--4-->
FOUR_SEASONS_EVEN_LONG 7 <-1-><---2---><-3-><---4--->
FOUR_SEASONS_ODD_LONG 8 <---1---><-2-><---3---><-4->

Weather Flag

The cumulative values for this line's flag are:

NO_MOON_EVER 1
NO_SUN_EVER 2
NON_CONTROLLABLE WEATHER 4
WHOLE_ZONE_INDOORS 8

Mana Add

Not used anymore - doesn't do squat - leave as zero


Wind Speed

<windspeed1> <wind2> <wind3> <wind4>

Enter one of the following for all four.

SEASON_CALM 1
SEASON_BREEZY 2
SEASON_UNSETTLED 3
SEASON_WINDY 4
SEASON_CHINOOK 5
SEASON_VIOLENT 6
SEASON_HURRICANE 7

Wind Variance

<variance1> <var2> <var3> <var4>

0 Wind can change directions
1 Wind cannot change directions

Wind Direction

<winddirection1> <dir2> <dir3> <dir4>

North 0
East 1
South 2
West 3
Values apply at the start of the season.

Precipitation

<precipitation1> <prec2> <prec3> <prec4>

SEASON_NO_PRECIP_EVER 1
SEASON_ARID 2
SEASON_DRY 3
SEASON_LOW_PRECIP 4
SEASON_AVG_PRECIP 5
SEASON_HIGH_PRECIP 6
SEASON_STORMY 7
SEASON_TORRENT 8
SEASON_CONSTANT_PRECIP 9 (Interesting if it's cold enough to snow)

Temperature

<temp1> <temp2> <temp3> <temp4>

SEASON_FROSTBITE 1 HP Loss per tick?
SEASON_NIPPY 2
SEASON_FREEZING 3
SEASON_COLD 4
SEASON_COOL 5
SEASON_MILD 6
SEASON_WARM 7
SEASON_HOT 8
SEASON_SWELTER 9
SEASON_HEATSTROKE 10 HP loss per tick
SEASON_BOILING 11 HP Loss per tick

Zone Descriptions

Zone descriptions may now be added to your zones. These can be seen by players using the world info <keywords> command within the game. If you wish to add a description to your zone, please see this page here.

Zone Commands

This is the real body of the zone file, it sets where doors are and what state they're in, what mobs load, objects, who to equip, locked chests, rare loads etc. The other files are like the ingredients for your zone, the zone file puts them all together.

The commands that are used in the zone file are M, O, G, E, D, P, F, R, X, T, B, C and L.

Mob Zone Commands

M (load a mobile)

Format:

M if-flag [mobile nr] max existing [room nr] [rare percentage (optional)]

mobile nr and room nr should be self-explanatory. The max existing parameter specifies the maximum permissible number of existing units. In other words: If you only want one manifestation of a given monster, you just specify the number '1'. If the max number is about to be exceeded, the command won't be executed. An if-flag of 0 means it happens regardless, an if-flag of 1 means it happens only if the line above it does.


G (give object to mobile)

Format:

G if-flag [object nr] max existing [rare percentage (optional)]

Loads an object, and gives it to the last monster referenced (ie. a mobile loaded by the previous M-command). E and G are dependent on the last command so if you give or equip an item to an npc with a rareload of 10% and then follow with another E or G command with an if-flag of 1, that command will not happen unless the 10% rare happens. This can get confusing when you have a rare load after a rare after a rare and link them with 1 if-flags.


E (object to equipment list of mobile)

Format:

E if-flag [object nr] max existing [equipment position] [rare percentage (optional)]

Loads object and places it in the Equipment list of the last monster referenced. Note that it is NOT necessary to precede this command with a 'G' command. See the note above for the G command about if-flags and loading/giving items to npcs.

Equipment Positions
WEAR_LIGHT 0 WEAR_FEET 8 WIELD_PRIMARY 16
WEAR_FINGER_R 1 WEAR_HANDS 9 WIELD_SECOND 17
WEAR_FINGER_L 2 WEAR_ARMS 10 HOLD 18
WEAR_NECK_1 3 WEAR_SHIELD 11 WEAR_EYES 19
WEAR_NECK_2 4 WEAR_ABOUT 12 WEAR_FACE 20
WEAR_BODY 5 WEAR_WAIST 13 WEAR_EARRING_R 21
WEAR_HEAD 6 WEAR_WRIST_R 14 WEAR_EARRING_L 22
WEAR_LEGS 7 WEAR_WRIST_L 15 WEAR_QUIVER 23
WEAR_INSIGNIA 24
WEAR_TAIL 25
WEAR_COMPONENT_BAG 26

Note they are DIFFERENT than the wear flags for objects.


F (follow command for grouping mobiles)

Format:

F [follow-type] [room_nr] [leader_nr] [follower_nr]

This command tells the follower_nr to group with the leader_nr and to look in room_nr for both follower and leader. (Follower and leader are both mob vnums.) The type of follower created depends on the follow flag:

  • 0: Follower will follow the last loaded leader in the room. e.g. Joe Schmoe (3200) wants to group with Jane(3201), Joe will be the leader and they are in room 3205. F 0 3205 3200 3201
  • 1: Follower will pair up with another previously ungrouped leader. (This should rarely be used.) e.g. You have a room with 6 goblins and 6 wargs. You want each goblin to have its own warg pet. If the room is 7463, the wargs are 7432, goblins 7532. You would issue 6 of these commands: F 1 7463 7532 7432
  • 2: All mobiles of type follower_nr in the room_nr will follow the first leader_nr or a previously grouped leader_nr mobile. e.g. You have twelve Skeletons and Six zombies that are the minute-men for a Necromancers army. If they are in room 12423, the Necro is 12425, the zombies 12873, and skeletons 12732, you would issue these commands:
F 2 12423 12425 12873 * all zombies follow necro 
F 2 12423 12425 12732 * all skeletons follow him
  • 3: This acts VERY similar to type 1 except the Leader mobile will MOUNT the follower. The follower should have a ACT_MOUNT action flag set. This command is independent of mobile loading, and should be used AFTER the mobile has been loaded in the room.
  • NOTE: if a zone reset occurs and either the follower or the leader has been killed and both are in the room designated by follow, then they will re-follow.
    • ALSO, the follower should be tagged ACT_SENT (sentinel) if you don't want the follower to wander away from the leader.
    • Grouped hunters will not hunt until their leader is dead. Instead, grouped mobs will now hunt as a group if the leader is a hunter. If not, the group will not hunt until the leader is dead, at which point they will all split up and hunt individually.

X (remove mob from room)

Format:

X if-flag [room vnum] [mob vnum] [combat toggle]

    1. Specify -1 as the room number, and the X command will remove ALL instances of the specified mob vnum currently in the game. Needless to say, be VERY careful with this! Don't make mobs removed with X scavengers, and be wary of making them quest mobs - when this command executes, the mobs and all of their items will disappear for good. Also, with the -1 option, the mobs will echo a short message to their rooms to the effect of "[mobname] slowly fades away..."
    1. If you want the X command to ignore mobs in combat, place a '1' at the end of the command. Otherwise it can be omitted.

Object Zone Commands

O (load an object)

Format:

O if-flag [object_nr] max existing [room_nr]

Load an object and place it in a room. Same if-flag as for M.

P (put object in object)

Format:

P if-flag [object_nr1] max existing [object_nr2] [rare/quantity]

Loads object1 and places it in object2.

new if the rare/quantity number is NEGATIVE, then this line specifies how many objects are loaded. this is extremely useful with arrows and quivers..

Examples:

P 0 101 50 102 -17 * Put 17 of 101.obj in 102.obj

P 0 101 50 102 17 * Put 1 of 101.obj in 102.obj 17% of the time.

R (remove object from room)

Format:

R if-flag [room_nr] [object_nr] [rare_pct (optional)]

The remove command is perhaps the most powerful command available to an area maker's use. This command is very simple. When the zone reloads, the game checks to see if a certain item is in a certain location. If it is, it removes the item from the room.

  • Note: -1 is not supported as a room value, this command will ONLY remove items from a specific room.
  • Note2: This command will remove all of the specified item from the given room, not just one if several loaded into the room.

The key to this command, lies in linking it to a conditional command that follows. Here is an example from Griffon's Nest:

R 0 10690 10637 * removes an obsidian shard from the room 
M 1 10773 1 10690 * the Elemental Spirit 

The game checks in room 10690 (An Elemental Shrine) for object 10637 (an obsidian shard). If it is there, it removes the object. The following command loads mob 10773 (the Elemental Spirit) into that room. However, the command which loads the mob has a 1 for the conditional flag, and thus will only happen if the preceding command is executed. Net effect: the game checks for an obsidian shard lying on the ground in An Elemental Shrine, removes it if it is there, and also load the mob the Elemental Spirit. If an obsidian shard is never left on the floor of that room, the Elemental Spirit never loads. Now, the above example is a pretty simple one. Once I began thinking about it, I realized many evil ideas were possible.

  1. Punish players for killing a mob they shouldn't kill. Load an untakeable object into the mobs inventory. Have the game check for that item on the floor of the room where the mob is sentinel. If the game finds the object there, load several doors locked and closed (and unpickable, too). They won't do that again after waiting for a crash or a moonwell to get them out.

  2. Create a labyrinth-like zone where the quests tell players which objects to leave where. Those objects load more quest mobs, that do same, with players also having to keep wandering mobs from coming through and messing up their carefully placed items. Such a zone would probably need a 1 or 2 min lifetime, making it even more evil to get just right.

  3. Create sequences of items players must leave in locations all over the game world, in order to make a certain item or mob appear.

    Example:

    R 0 XX001 YY001 
    R 1 XX002 YY002 
    R 1 XX003 YY003 
    R 1 XX004 YY004 
    M 1 XX001 1 YY100 
    

    Players would have to put all four objects in the correct location, and the game would remove them in sequence. If you mess up, you have to start all over again with the objects, that worked...

  4. Combine the R command with a percentage command like used with rare mobs:

    R 0 XX001 YY001 
    M 1 XX001 YY001 20 
    

    After getting the right item in the right place, the mobs still only shows up 20% of the time.

  5. Generally, create more puzzles to go with your quests, where items need to be left certain places at certain times to generate an effect. Remember that any load command could be linked to the R command: doors open or closed (changing from normal to secret doesn't seem to work), mobs, items, placing an item on a mob.

Now, why else would it be a good idea to have this command in your zones? Just like rare mobs, it makes getting the rewards that much harder. As we all have noticed, TorilMUD's a little eq heavy right now. If all the best equipment came from rare mobs and quests like these, we'd find the game less overdone with super-powerful items. Furthermore, from your own self- interest, you want players to go to your zones. They won't if there's no spanky eq for them to get. Using commands like these lets you justify better items without destroying balance in the game. -Uthgar

Door Zone Commands

D (set state of door)

Format:

D if-flag [room nr] [exit nr] [state]

exit nr being:

Direction #
North 0
East 1
South 2
West 3
Up 4
Down 5

State being one of:

0 Open
1 Closed
2 Closed and locked
add 4 secret door
add 8 blocked exit
add 16 trapped exit

This command controls the opening and closing of doors within your zone.

Example: D 0 19101 3 5 * in room 19101 the western exit is a secret closed door

Misc tips

  • You may use rareload mobs and if flags to create doors that randomly open/close.

Special Zone Commands

J (jump lines)

Format:

J if-flag [ # of lines to jump] [jump label (optional)]

This command has two modes: If the last command did NOT execute and the if-flag is set to 0, it will jump x number of commands. If the last command DID execute and the if-flag is set to 1, it will jump x number of commands. The jump label is completely optional, however, when used it will make your life exponentially easier.

  • NOTE ALWAYS comment your jumps. This is especially important when you don't use a jump label as Jump tends to 'eat up' the next line.

Example without jump labels:

M 0 2001 0 2055 33 * load m2001 at boot in r2055 33% of the time
J 1 3 * skip 3 lines if the above loaded
M 0 2001 0 2055 50 * load m2001 at boot in r2055 50% of the time if the load above didn't happen
J 1 1 * skip 1 line if the above loaded
M 0 2001 0 2055 * load m2001 at boot in r2055 100% of the time if the above two loads didn't happen

L (label for jump)

Format:

L if-flag [jump label]

The L command does nothing by itself, but when coupled with a J command it will allow someone to jump to a spot without having to count lines or worry about adding additional loads and disrupting jumps. Do not reuse label numbers within a single zone file.

  • NOTE: You can only jump forward in the .zon file.

Example from J command above, but with a jump label:

M 0 2001 0 2055 33
J 1 0 1 * skip to label 1 if above loaded
M 0 2002 0 2055 50
J 1 0 1 * skip to label 1 if above loaded
M 0 2003 0 2055
L 0 1 * label 1

C (choice)

Format:

C if-flag [numchoices]

This is used to select one of the next commands randomly. It only supports an even distribution, however, you can tip the balance by adding more than one instance of the same load within the choice's range. Choice works with the M E and O zone commands.

Example 1:

You want to load a mob with one of 3 random badges

M 0 3090 0 3050
C 0 3 * choose one of the following three badges
E 1 3001 99 24 *random badge 1
E 1 3002 99 24 *random badge 2
E 1 3003 99 24 * random badge 3
E 1 3040 99 16 *sword always loads

Example 2:

You want to load 1 of 2 mobs randomly

C 0 2 * chose a mob to load along with their equipment
M 0 3091 0 3050 * load swordmaster
E 1 3040 99 16 *sword
M 0 3092 0 3050 * load archer
E 1 3044 99 23 *quiver

Example 3:

You want to load an object in 1 of 5 rooms randomly

C 0 5 * pick a room
O 0 3033 99 3051
O 0 3033 99 3052
O 0 3033 99 3053
O 0 3033 99 3054
O 0 3033 99 3055

B (repeat block)

Format:

B if-flag [numrepeat]

cmds

B 0 0 * Endblock

This command is used to repeat commands or groups of commands a set number of times without having to actually type them.

NOTE Don't forget to end the block by closing it with B 0 0

ATTENTION: Until this message is removed, you MUST add a comment to the end of your blocks to prevent the next line from being 'eaten' it should be done in this way: B 0 0 * Endblock

Example:

This will load 10 guards with longswords and shield each

B 0 10 * load 10 guards
M 0 4090 0 4050
E 1 4012 0 16 *sword
E 1 4014 0 12 *shield
B 0 0 * end guard loads

T (set time interval for subsequent commands)

Format:

T if-flag [hour] [day] [weekday] [month]

Specify a time range in game hours and this command will return true if the current hour falls within the range. You may also specify a day and a month. Link other zon commands to this one to create time based zone events. You can now specify 1 hour, 1 day, 1 weekday, 1 month. Any combination of these time fields can be used to specify a vague or exact time.

  • Valid days are 1 - 35.
  • Valid times are 0-23 (0 is midnight, 23 is 11pm). If you want to omit the hour, place a -1 in its field. Any combination of hours/day/month is valid - ie, it's perfectly possible to create a command that is only activated at midnight, on Saturday, of the 9th month of the year, or a command that only activates on Wednesday of the 8th month of the year at any time of day, etc etc ad infinitium. A valid list of months and weekdays and their numerical values can be found below.

Uses for this command:

  • This command is best used within a zon with a 1-minute reset. If this is inconvenient for your zone (it usually is), attach it to another zone with a 1-minute reset (ie: the day/night zones) Note that for day/month only commands, any zone with a reset less than 24 minutes will work just fine. -Note that when you use this command to determine only a vague time (month, weekday, etc) it will be checked every minute of that month/day if you have a reset of 1. So the best solution is to link an object load with a max of 1 to the time command, and then link the actual time-based zon commands to said obj. Use a 2nd T command to remove the obj when the time period is over.

EXAMPLE1:

These commands will load a single mob once every wednesday, whenever the zon is reset. This could be used with a zone reset of anything less than 23 (a full day), and frees you from having to specify an hour. So the total effect is to load a mob at a random time on wednesdays only. :)

*** Activation chain **** 
T 0 -1 0 4 0 *** 4 = Wednesday 
O 1 91100 1 91101 *** Load obj 91100 in a distro room
M 1 91704 1 91700 *** Load mob 91704
*** Deactivation chain *** 
T 0 -1 0 5 0 *** 5 = Thursday 
R 1 91101 91100 *** Remove obj 91100 from room 
  • Create a zon with a special set of mobs at night. For instance, set a time command for midnight, then link a bunch of mob loads to it (vampires?). Set another time command for 6am, and link the X command with the -1 room option to remove all of those nocturnal mobs.

EXAMPLE2:

This loads a mob at 10pm, and removes it at 6am, again, assuming the zone has a 1 minute reset time:

T 0 20 0 0 *** 20 = 10pm
M 1 40409 1 40403 *** Load mob 40409 in room
T 0 6 0 0 *** 6 = 6am
X 1 -1 40409 1 *** If line above happens, then remove mob
  • Make a quest mob that is only around at a certain time of day.
  • Make a quest that forces the players to do something at a certain time. For example, one could make the Forka quest in GC only work if the players drop the materials on the ground at midnight. If they drop it at a different time, remove the items and load something else!

WEEKDAYS:

the Day of the Moon 1
the Day of the Bull 2
the Day of the Deception 3
the Day of Thunder 4
the Day of Freedom 5
the day of the Great Gods 6
the Day of the Sun 7

MONTHS:

Month of Hammer (the Deepwinter) 1 Month of Alturiak (the Claws of the Cold) 2
Month of Ches (of the Sunsets) 3 Month of Tarsakh (of the Storms) 4
Month of Mirtul (the Melting) 5 Month of Bestanth (the Renewal) 6
Month of Kythorn (the Time of Flowers) 7 Month of Flamerule (Summertide) 8
Month of Eleasias (Highsun) 9 Month of Vinthar (of the Harvest) 10
Month of Eleint (the Fading) 11 Month of Marpenoth (Leafall) 12
Month of Uktar (the Rotting) 13 Month of Nightal (the Drawing Down) 14
Month of Mithrian (the Wanting) 15 Month of Horthos (of the Abandoned) 16
Month of Annaxes (the Breath of Frost) 17

If Flags & Max Loads

If Flag

The if flag determines if your command should be executed.

E and G are dependent on the last command so if you give or equip an item to an npc with a rareload of 10% and then follow with another E or G command with an if-flag of 1, that command will not happen unless the 10% rare happens. This can get confusing when you have a rare load after a rare after a rare and link them with 1 if-flags.

0 - a zero indicates the command will execute. 1 - a one indicates the command will execute IF the previous command executed.

Example:

M 0 11701 4 11970 
M 1 11702 1 11970 <- this mob will only load if the mob above it loaded

Max Existing

Also known as maxload, the max existing value determines how many objects/mobs etc can load in the game. It can prevent commands from executing. For example if you try to load 5 warriors in the same room, but with a maxload of 4, then when you try to load the 5th, the game will NOT execute the 5th command because it exceeds the maxload limit of 4.

M 0 11701 4 11970
M 0 11701 4 11970
M 0 11701 4 11970
M 0 11701 4 11970
M 0 11701 4 11970 <- This won't load because exceeds the maxload of 4

ALL of the existing items are taken into account, those in your zone, out of your zone and on PCs. So if you have a rare sword that loads 1/2 way through boot with a maxload of 1, but a PC has one and is online (or their storage is currently open), then that sword will NOT load because there's already 1 in game.

Negative Maxload

You can also use negative numbers. These count the number of items in the ROOM, not the entire game. You can use this to effectively control repoping of mobs. Lets pretend we have 4 guards who load 1 each at the corner of a castle.

M 0 51501 4 51501
M 0 51501 4 51502
M 0 51501 4 51503
M 0 51501 4 51504

Now at boot they'd load once each at each corner. But what if the PCs kill only 1 of them before boot. On zone-reset only the FIRST mob would load, in r51501, and the rest would be aborted due to max-load violation. So if the mob in 51503 was killed, on reset you'd have 2 mobs in 51501, 1 in 51502, 0 in 51503, and 1 in 51504.

To fix this you could use the negative value as follows,

M 0 51501 -1 51501
M 0 51501 -1 51502
M 0 51501 -1 51503
M 0 51501 -1 51504

This way every room would always reload to 1 mob.

  • Note - This can be trouble if your mobs wander as every time the zone checks for the mob in that room and doesn't find it will result in the mob loading again.

Maxload Zero

Finally you can set the maxload to 0, which means load at boot, and only at boot. This overrides any kind of maxload, it's a great way to setup equipment if you don't want PCs to farm it.

⚠️ **GitHub.com Fallback** ⚠️