linktree Atrinik.org - Multiplayer Online Role Playing Game
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.

Critical Errors

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.

High Errors

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.

Medium Errors

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.

Low Errors

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.

Warnings

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