Skip to content

NewWorldMapData

VersionStatus
v92Full
v90-
v86-

NewWorldMapData.xml defines the game world map structure: worlds, continents (map regions), guards (geographic zones), sections (sub-zones like dungeons and towns), and NPC map markers.

The hierarchy is 4 levels deep: World > Continent/Guard > Section > Npc.


Entity: newWorldMap Operations: create, update, delete, upsert File organization: SingleFile — WorldMap/NewWorldMapData.xml


spec:
version: "1.0"
schema: v92
newWorldMap:
create:
- worldId: 1
desc: "Arborea"
mapId: "map_arborea"
nameId: 100
scale: 1.0
continents:
- continentId: 1
centerPixelX: 512
centerPixelY: 384
- continentId: 2
centerPixelX: 768
centerPixelY: 512
guards:
- guardId: 10
desc: "Velika Territory"
left: 50
height: 200.0
width: 300.0
top: 100.0
sections:
- sectionId: 100
desc: "Velika Outskirts"
floor: 1
nameId: 200
type: "town"
- sectionId: 101
desc: "Sinestral Manor"
floor: 1
nameId: 201
type: "dungeon"
npcs:
- continentId: 1
desc: "Dungeon Entrance"
nameId: "1,2"
pos: "100,200,300"
type: "MARKER_enter_Dungeon"
spec:
version: "1.0"
schema: v92
newWorldMap:
update:
- worldId: 1
changes:
desc: "Arborea (Updated)"
scale: 1.5
guards:
- guardId: 10
desc: "Velika Territory (Expanded)"
width: 400.0
sections:
- sectionId: 102
desc: "New Zone"
floor: 2
nameId: 300
type: "dungeon"
spec:
version: "1.0"
schema: v92
newWorldMap:
delete:
- 1
spec:
version: "1.0"
schema: v92
newWorldMap:
upsert:
- worldId: 1
desc: "Arborea"
scale: 1.0
guards:
- guardId: 10
desc: "Velika Territory"
sections:
- sectionId: 100
desc: "Velika Outskirts"
floor: 1
nameId: 200
type: "town"

AttributeTypeSinceRequiredDescription
worldIdintv92YesWorld identifier
descstringv92YesWorld description
mapIdstringv92NoMap resource identifier
nameIdintv92NoName string reference ID
scaledecimalv92NoMap scale factor
continentslist[Continent]v92NoContinent entries. See Continent.
guardslist[Guard]v92NoGuard zone entries. See Guard.

Map region markers with pixel coordinates for positioning.

AttributeTypeSinceRequiredDescription
continentIdintv92YesContinent identifier
centerPixelXintv92YesCenter X pixel coordinate on the world map
centerPixelYintv92YesCenter Y pixel coordinate on the world map

Geographic zones within a world, containing sections.

AttributeTypeSinceRequiredDescription
guardIdintv92YesGuard zone identifier
descstringv92YesZone description
heightdecimalv92NoZone height on map
leftintv92NoLeft boundary position
mapIdstringv92NoMap resource identifier
modeintv92NoDisplay mode
nameIdintv92NoName string reference ID
topdecimalv92NoTop boundary position
visibleInMapboolv92NoWhether visible on the world map
widthdecimalv92NoZone width on map
sectionslist[Section]v92NoSection entries. See Section.

Individual zones within a guard area (dungeons, towns, etc.).

AttributeTypeSinceRequiredDescription
sectionIdintv92YesSection identifier
descstringv92YesSection description
floorintv92YesFloor number
nameIdintv92YesName string reference ID
heightdecimalv92NoSection height on map
leftdecimalv92NoLeft boundary position
mapIdstringv92NoMap resource identifier
modeintv92NoDisplay mode
rmwidthintv92NoRoom width
topdecimalv92NoTop boundary position
typeSectionTypev92NoSection type. See SectionType.
visibleInMapboolv92NoWhether visible on the map
widthdecimalv92NoSection width on map
npcslist[Npc]v92NoNPC map marker entries. See Npc.

NPC map markers displayed within a section.

AttributeTypeSinceRequiredDescription
continentIdintv92YesContinent reference for positioning
descstringv92YesMarker description
nameIdstringv92YesPacked group and local ID (format: "groupId,localId")
posstringv92YesPacked position coordinates (format: "x,y,z")
typestringv92YesMarker type (string passthrough, preserves exact casing)
showRequireQuestTaskIdintv92NoQuest task ID required for marker visibility
showRequireQuestTemplateIdintv92NoQuest template ID required for marker visibility

ValueDescription
dungeonDungeon instance zone
townTown / safe zone

WorldMap/NewWorldMapData.xml
└── NewWorldMapData
└── World (0..4)
@id (required)
@desc (required)
@mapId (optional)
@nameId (optional)
@scale (optional)
├── Continent (0..∞)
│ @id (required)
│ @centerPixelX (required)
│ @centerPixelY (required)
└── Guard (0..∞)
@id (required)
@desc (required)
@height (optional)
@left (optional)
@mapId (optional)
@mode (optional)
@nameId (optional)
@top (optional)
@visibleInMap (optional)
@width (optional)
└── Section (0..∞)
@id (required)
@desc (required)
@floor (required)
@nameId (required)
@height (optional)
@left (optional)
@mapId (optional)
@mode (optional)
@rmwidth (optional)
@top (optional)
@type (optional)
@visibleInMap (optional)
@width (optional)
└── Npc (0..∞)
@continentId (required)
@desc (required)
@nameId (required)
@pos (required)
@type (required)
@showRequireQuestTaskId (optional)
@showRequireQuestTemplateId (optional)

  • Continent and NPC management: Continents and NPCs use a create/clear list pattern. On upsert, the entire list is replaced — individual continent or NPC entries cannot be updated independently.
  • Guard and Section management: Guards and Sections are keyed by id and support individual CRUD operations. Updates target specific guards/sections within a world.
  • NPC type is a string: The type attribute on NPC markers is a raw string passthrough, not an enum. Mixed-casing values like MARKER_enter_Dungeon are preserved exactly as written.
  • NPC nameId and pos are packed strings: nameId uses the format "groupId,localId" and pos uses "x,y,z" — these are not numeric values.
  • World limit: The XSD constrains a maximum of 4 World entries per file.
  • Update with guards: When updating guards, provide the guardId to identify which guard to update. Only non-null fields are modified. Sections within an update guard block use the create pattern (added, not merged).