|Map Checker Errors|
|Development -> Map Checker ErrorsMap Checker Errors
While checking your maps with the map checker program (tools/map-checker/map-checker.py), it's very likely there will be at least a couple of warnings/errors. This page documents all the possible warnings/errors you might encounter, and how to solve them.
Maps should always pass the Atrinik Map Checker with the default settings.
This is a list of the most critical errors that might cause havoc.
Map is tiled into itself
The map has one or more tiled paths referencing itself. This might be a typo, but maps cannot be tiled into themselves.
Map is tiled to another map more than once
A map cannot be referenced as a tiled map more than once. For example, you can't have the same map tiled to both the west and the east.
Player object on map
Player objects (half_elf_male, for example) cannot be placed on the map in any way. The most common workaround is to create an NPC and change its face, animation and name.
Monster is a spawn point monster (type 83) but is not inside a spawn point
A very rare error. You can fix this by placing the monster into a spawn point.
Event object has unknown plugin
Event object is referencing an unknown plugin. You can fix this by ensuring the event's plugin is (as of the time of writing) either "Python" or "Arena".
Beacon is missing name
You must give a name to the beacon, which is also its unique ID.
Beacon already exists
You cannot have more than one beacon with the same name, otherwise the server would get confused if both are loaded. The idea with beacons is that each has a unique name; thus you should pick a non-generic name that describes where, or what for, the beacon is.
Could not find archetype for def_arch command
An error in one of the .art files: def_arch line could not find the archetype it was referring to.
Invalid archetype found
The map is using an archetype that is not valid. Possibly because of old maps using archetype that was renamed/removed.
Background music not in valid format
The background music attribute is not in a valid format. Valid syntax is, for example: ocean.ogg or ocean.ogg 10 50 where 10 is how many times to loop ocean.ogg and 50 is volume adjustment.
Map is missing width/height
Should not happen. The 'width' and 'height' attributes should always be set.
Map's region is not defined in regions.reg
The map's region is not defined in regions.reg. This could be a typo, or a nonexistent region, in which case you have to make one in the regions.reg file.
Object is on a shop tile but is not unpaid
All objects on top of shop floors should be unpaid. Exceptions are unpickable objects and system objects.
Object is not a monster but is inside a spawn point
The only allowed objects inside spawn points are monsters, beacons and event objects.
Object is inside inventory of another object, but it's not allowed for that object to be inside inventory
Spawn points are not allowed to be inside inventories of other objects. Also exits and teleporters are not allowed to be inside inventories of other objects, unless that object is a creator.
Artifact with modified attributes
It is not allowed to have heavily modified artifacts on map, as it becomes difficult to update them. Thus, heavily modified artifacts should be in the .art files instead.
Monster has invalid level
Levels of monsters are currently limited from 1 to 115.
Object outside of inventory
Some objects, such as random drops and quest containers, are not allowed to be outside of inventory.
Quest container has no quest name
Quest containers must always have a name, which is effectively the quest's name. You should pick a name that is unique and not used anywhere else.
Monster has waypoint with no name
Waypoints must always be identified by custom name. This is often 'wp1' for the first waypoint, 'wp2' for the second waypoint, and so on.
Monster has waypoint with nonexistent next waypoint
The monster has a waypoint that is referring to an invalid next waypoint.
Event object is missing plugin name
The event object has no plugin name.
Map has invalid difficulty
Map's difficulty should be between 1 and 115.
(optional) Map is missing region
Map has no region set (maps with name "World" are exception).
Missing layer 1 object on tile with some objects
The tile is missing floor, which must be on layer #1. Note that floor on unreachable tiles (behind walls, for example) is an error as well.
Empty spawn point object
The spawn point object is empty.
Object has X/Y position set but is in inventory of another object
This was a past bug with Gridarta, where when manipulating objects on map in a certain way, objects would keep their X/Y even when inside inventory. It should not be a problem, as it has long been fixed.
Monster has unset level
This is unlikely to be a problem; the monster is missing any level whatsoever.
Monster is higher than lvl 9 but map's difficulty is 1
The map difficulty level should reflect how difficult it is to beat a particular map, affecting various drops.
Monster is missing a race
All monsters should have a race.
Monster is of race 'undead', but has no 'undead 1' flag
Monster's race is 'undead', but it has not been flagged as being undead creature.
Monster is outside spawn point
Monsters should always be inside spawn points no matter what.
Monster can cast spells but has 0 max mana
Monsters, like players, need mana in order to cast spells. The max base mana is affected by the monster's level, so a value of '16' usually works for most (if not all) spells.
Monster can cast spells but has unset ability usage
In order for monsters to cast spells, they need their ability usage set to some value. This decides how often they will use their abilities (spell casting, firing arrows, etc) in 1/x chance. For spell casting, a value of 2-4 is usually used.
Monster has waypoint movement enabled but no waypoints
The monster is missing waypoints, but it has had "waypoints movement" movement behavior enabled.
Archetype is a magic mirror but is not 'sys_object 1'
Magic mirrors must always be system objects and on layer 0.
Map is missing difficulty
All maps should have a difficulty set.
(optional) Map is missing background music
Map has no background music set (maps with name "World" are exception).
System object is below floor
All system objects should be above floor.
(optional) System object is not on top
All system objects should be above everything else, in other words, on top of non-system objects.
Monster can cast spells but has no ability objects
The monster is able to cast spells, but has not been given any ability objects which define what spells it can cast.
Monster has random movement enabled but no max movement range X/Y
Monsters with random movement should always define maximum movement range X/Y to prevent the monster from being able to walk infinitely wherever it wants, which is often not desirable. Values of 5 and 10 are often used.
Archetype is of type floor but doesn't have 'is_floor 1' set
All floor and shop floor archetypes must have the is_floor flag set to 1.
Empty world map has a region
Maps with the name "World" (thus, empty world maps with water) should not have a region.
More than 1 object with layer X on same tile
This is an often repeated mistake: a tile can have only one object per layer (1-7). This is by design of the map protocol, which will only send 1 object per tile to the client for display purposes.
(optional) Layer 5 object on tile with layer 2 objects
(optional) Layer 5 object on tile with layer 3 objects
(optional) Layer 5 object on tile with layer 4 objects
Likely objects on top of walls which are not supposed to be there.
Monster cannot cast spells but has ability objects
The monster is unable to cast spells, but has ability objects in its inventory.
Monster has waypoint movement disabled but has waypoints in inventory
A common error, where waypoints are given to a monster, but "waypoint movement" movement behavior is not enabled for the monster.
Magic mouth has adjacent direction set but actual facing direction is not set
The magic mouth's adjacent direction option should only be used to together with setting the magic mouth's facing direction. If the magic mouth has a direction set, the magic mouth will only activate if player is coming from that direction. If adjacent direction is also set, the two adjacent directions the magic mouth is facing also count.
Object has direction but that type of object doesn't support directions
Can happen if a new version of archetype doesn't support directions but an older version did, for which the map was made. More commonly, this used to be a Gridarta bug, where if you used the direction chooser below archetypes list, and switched to an object that didn't support directions and placed that object on the map, the object would have direction set. This bug has long since been fixed.
As of r1926