Skip to content

NpcData

VersionStatus
v92Full
v90-
v86-

NpcData files define NPC templates: monsters, villagers, bosses, and other non-player characters. Each hunting zone has its own file using the naming convention NpcData_{huntingZoneId}.xml.


Entity: npcs Operations: create, update, delete, upsert Key attributes: huntingZoneId, id (composite key)


spec:
version: "1.0"
schema: v92
npcs:
create:
- huntingZoneId: 9001
id: 1001
name: "Test Monster"
shapeId: 5001
basicActionId: 1
size: medium
scale: 1.0
aiid: 100
stat:
level: 60
maxHp: 100000
atk: 5000
def: 3000
critical:
str: 30
res: 40
powRate: 1.2
spec:
version: "1.0"
schema: v92
npcs:
update:
- huntingZoneId: 9001
id: 1001
changes:
name: "Updated Monster Name"
stat:
maxHp: 150000
atk: 7500
spec:
version: "1.0"
schema: v92
npcs:
delete:
- huntingZoneId: 9001
id: 1001
spec:
version: "1.0"
schema: v92
npcs:
upsert:
- huntingZoneId: 9001
id: 1001
name: "Upserted Monster"
shapeId: 10001
basicActionId: 1
size: medium
scale: 1.0
aiid: 100
stat:
level: 65
maxHp: 120000

PropertyTypeSinceDescription
huntingZoneIdintv92Hunting zone identifier (used for file partitioning)
idintv92Unique template identifier within the zone
PropertyTypeSinceDescription
namestringv92Internal NPC name
shapeIdintv92Visual model/shape reference
basicActionIdintv92Default animation/action set
sizeNpcSizev92Size category. See NpcSize.
scaledecimalv92Visual scale multiplier
aiidintv92AI behavior reference
categorystringv92NPC category classification
classstringv92NPC class classification
descstringv92Internal description
racestringv92NPC race classification
speciesIdintv92Species classification ID
PropertyTypeSinceDescription
npcTypeNpcTypev92Special NPC type. See NpcType.
balanceTypeNpcBalanceTypev92Combat balance category. See NpcBalanceType.
genderNpcGenderv92NPC gender. See NpcGender.
playStyleNpcPlayStylev92Combat/behavior style. See NpcPlayStyle.
resourceTypeNpcResourceTypev92Resource loading type. See NpcResourceType.
servantTypeServantTypev92Servant classification. See ServantType.
huntingStylestringv92Hunting behavior pattern
elitestringv92Elite status marker
PropertyTypeSinceDescription
allyShapeIdintv92Shape when allied
deathShapeIdintv92Shape on death
enemyShapeIdintv92Shape when hostile
resourcestringv92Resource path
resourceSizestringv92Resource size category
PropertyTypeSinceDescription
appearQuestIdstringv92Quest ID that makes NPC appear
appearQuestTaskIdstringv92Task ID that makes NPC appear
hideQuestIdstringv92Quest ID that hides NPC
hideQuestIdIdintv92Alternate hide quest ID
hideQuestTaskIdstringv92Task ID that hides NPC
guideEffectIdstringv92Visual guide effect reference
PropertyTypeSinceDescription
lifeTimestringv92NPC lifetime duration
lifeTime20SecMsgintv92Message at 20 seconds remaining
maxSpawnCountintv92Maximum simultaneous spawns
spawnAbnormalityIdstringv92Abnormality applied on spawn
spawnScriptIdstringv92Script executed on spawn
despawnScriptIdstringv92Script executed on despawn
pcDespawnScriptIdstringv92Player-triggered despawn script
spawnFadeInTimedecimalv92Spawn visual fade-in duration
despawnFadeInTimedecimalv92Despawn visual fade duration
visibleSpawnEffectboolv92Show spawn visual effect
PropertyTypeSinceDescription
parentIdstringv92Parent template reference
shareIdstringv92Shared data reference
partyMemberstringv92Party member configuration
linkedSkillIdintv92Linked skill reference
PropertyTypeSinceDescription
isAggressiveMonsterboolv92Attacks on sight
isPreemptiveStrikeboolv92Can initiate combat
aggroResetAggressivelyboolv92Aggressive aggro reset
aggroResetIfNoOneInReturnDistanceboolv92Reset aggro when no targets nearby
cancelBehaviorWhenLeaveSpawnAreaboolv92Cancel behavior outside spawn area
cancelBehaviorWhenLeaveSpawnAreaDistanceintv92Distance threshold for cancellation
combatAbnormalityIdintv92Abnormality applied in combat
combatAbnormalityStartTimeintv92Delay before combat abnormality
returnToSpawnPosboolv92Return to spawn on reset
PropertyTypeSinceDescription
invinciblestringv92Invincibility configuration
invincibleTermsstringv92Invincibility conditions
invincibleVillagerboolv92Is invincible villager
isInvincibleSpiritboolv92Is invincible spirit
catchBackImmuneboolv92Immune to catch from behind
forceCatchBackDirstringv92Force catch direction
PropertyTypeSinceDescription
adjustZboolv92Adjust vertical position
cannotPassThroughboolv92Blocks movement
collideOnMovestringv92Collision on movement
isFlyingNpcboolv92Can fly
isNotLocationOnFloorboolv92Not bound to floor
judgeByCylinderboolv92Use cylinder collision
pathFindingFailFlagboolv92Path finding failure handling
pushedByNpcboolv92Can be pushed by other NPCs
stopAtDestinationboolv92Stop when reaching destination
stopOnIdleInDungeonboolv92Stop when idle in dungeon
smoothTurnTimedecimalv92Turn smoothing duration
dontTurnstringv92Disable turning
PropertyTypeSinceDescription
cameraPenetratableboolv92Camera can pass through
forceDisplayMarkerboolv92Force display map marker
invisibleboolv92Is invisible
noNamePlateboolv92Hide name plate
showAggroTargetstringv92Show aggro target indicator
showBalloonAlwaysboolv92Always show speech balloon
showHpGaugeboolv92Show HP gauge
showMapboolv92Show on map
showMapIconIdintv92Map icon reference
showMapMaxLevelintv92Max level to show on map
showMapMinLevelintv92Min level to show on map
showShorttermTargetstringv92Show short-term target
showTargetInfoboolv92Show target information
questCameraOffboolv92Disable quest camera
PropertyTypeSinceDescription
villagerboolv92Is villager NPC
questVillagerstringv92Quest villager configuration
isNamedboolv92Is named/boss NPC
isFreeNamedstringv92Free named configuration
isObjectNpcstringv92Is object NPC
isObstacleNpcboolv92Is obstacle NPC
isSpiritboolv92Is spirit entity
isRepairableSpiritboolv92Spirit can be repaired
isSubNpcboolv92Is sub/child NPC
isHomunculusboolv92Is homunculus
isVehicleExboolv92Is extended vehicle
isIgnoreSelectboolv92Cannot be selected
ignoreCommandboolv92Ignores commands
PropertyTypeSinceDescription
expRewardToAllboolv92Share EXP with all participants
itemRewardToAllboolv92Share items with all participants
rewardPriorityByDealingboolv92Reward priority by damage dealt
rewardPriorityByLastKillboolv92Reward priority by last hit
rewardRankingintv92Reward ranking tier
dropRadiusintv92Item drop spread radius
PropertyTypeSinceDescription
recoverHpIntervalintv92HP recovery interval (ms)
recoverHpRatiodecimalv92HP recovery ratio
canRepairTimeintv92Time until repairable
decreaseCoolTimeintv92Cooldown reduction
PropertyTypeSinceDescription
unionIdintv92Union faction ID
unionClassRestrictionintv92Union class restriction
unionEliteboolv92Is union elite
unionEliteRestrictionintv92Union elite restriction
unionEnchantAdjustmentdecimalv92Union enchant modifier
unionGuardboolv92Is union guard
isUnionEventboolv92Part of union event
isPublicQuestNpcboolv92Part of public quest
isTerritoryBroadcasterboolv92Broadcasts to territory
isWideBroadcasterstringv92Wide area broadcaster
isLightPartystringv92Light party configuration
PropertyTypeSinceDescription
mountAbnormalityintv92Mount abnormality ID
PropertyTypeSinceDescription
preserveAbnormalityIdstringv92Abnormalities to preserve
hideAbnormalityFailMessageboolv92Hide abnormality fail messages
applySizePassivityboolv92Apply size-based passivity
disableLevelPenaltyboolv92Disable level penalty
useAutoTurnTimeboolv92Use automatic turn timing
isSoloAdjustboolv92Apply solo difficulty adjustment
isNotAchievementTargetboolv92Excluded from achievements
lifeTimeForceWhenCombatStateboolv92Force lifetime in combat
reflectRangeintv92Reflect range
permitstringv92Permission configuration
PropertyTypeSinceDescription
villagerVolumeActiveRangestringv92Interaction active range
villagerVolumeHalfHeightstringv92Interaction half height
villagerVolumeInteractionDiststringv92Interaction distance
villagerVolumeOffsetstringv92Volume offset

Combat statistics for the NPC.

PropertyTypeSinceDescription
levelintv92NPC level
maxHpstringv92Maximum hit points
atkstringv92Attack power
defstringv92Defense rating
expstringv92Experience reward
runSpeedstringv92Running speed
walkSpeedstringv92Walking speed
epExpstringv92EP experience
ignoreDefaultEpExpstringv92Ignore default EP experience
magicalAttackintv92Magical attack power
magicalDefenceintv92Magical defense rating
physicalAttackintv92Physical attack power
physicalDefenceintv92Physical defense rating

Critical hit statistics.

PropertyTypeSinceDescription
strdecimalv92Critical strength
resdecimalv92Critical resistance
powRatedecimalv92Critical power rate
magicalPowRatedecimalv92Magical critical power rate
physicalPowRatedecimalv92Physical critical power rate

The following nested elements are supported but have complex internal structures:

ElementDescription
criticalAdjustCritical hit adjustments
aggroAggro/threat configuration
angerRage/anger mechanics
reactionReaction behavior
stackPointStack point mechanics
abnormalityAbnormality configuration
abnormalityResistanceOverrideResistance overrides
namePlateName plate configuration
skillListAvailable skills
balanceRefBalance reference data
npcOnlyNPC-only data
hitDropItemItems dropped on hit
onlyBeShotByThisSkillSkill restrictions
objectNpcAiParamObject NPC AI parameters
eventNpcAiParamEvent NPC AI parameters
altAnimationAlternative animations
stringString references
battleFieldOnlyBattlefield-specific data
shaderShader configuration
deathEffectDeath effect configuration
emoticonEmoticon configuration
ownerAbnormalityOwner abnormality data
maxDistanceSummonMax summon distance
battleArgBattle arguments
npcSpawnWhenDieNPCs spawned on death
seatListSeat configuration
vehicleExExtended vehicle data
skillControlListSkill control list
abnormalityControlAbnormality control
logLogging configuration
spawnSkillSkills used on spawn
repeatSkillRepeating skills
balloonSpeech balloon configuration
moveSettingMovement settings
altAnimAlternative animation data

ValueDescription
MediumStandard size (default)
LargeLarge NPCs like bosses
SmallSmall NPCs like critters
NoneNo size/invisible
ValueDescription
MaleMale gender (default)
FemaleFemale gender
ValueDescription
JumpGearJump gear NPC
CompetitionCompetition NPC
FieldBossField boss NPC
GuildTowerGuild tower NPC
ValueDescription
NoneNo specific play style (default)
BasicBasic combat style
GiantGiant combat style for large bosses
ZarcoZarco combat style
ZarcoBossZarco boss variant
CreatureCreature combat style
ServantServant combat style for pets/partners
ValueDescription
MediumMedium resource type (default)
LargeLarge resource type
SmallSmall resource type
ObjectObject resource type
ValueDescription
PetPet servant type (default)
PartnerPartner servant type
ValueDescription
NoneNo balancing applied
SoloBasicSolo basic encounter
SoloTrashSolo trash mob
SoloFullTrashSolo full trash mob
SoloEliteSolo elite encounter
SoloNamedSolo named encounter
SoloBossSolo boss encounter
DungeonBasicDungeon basic encounter
DungeonTrash1Dungeon trash tier 1
DungeonTrash2Dungeon trash tier 2
DungeonNamedBasicDungeon named basic
DungeonNamedBossDungeon named boss
DungeonMidBossDungeon mid-boss
DungeonBossDungeon boss
FieldBossBasicField boss basic
FieldBossMidField boss mid-tier
FieldBossBossField boss main
RaidBasicRaid basic encounter
RaidTrashRaid trash mob
RaidBossRaid boss
GuildWarBasicGuild war basic
GuildWarTowerGuild war tower
CivilWarBasicCivil war basic
BattleGroundBasicBattleground basic
BattleGroundBossBattleground boss
SpecialEventSpecial event NPC

NpcData files use a zone-partitioned structure:

NpcData_{huntingZoneId}.xml
└── NpcData (huntingZoneId)
└── Template (id) [multiple]
├── Attributes (name, shapeId, size, ...)
├── Stat (level, maxHp, atk, def, ...)
├── Critical (str, res, powRate, ...)
└── [Other nested elements]

  • Zone partitioning: NPCs are stored in zone-specific files. The huntingZoneId determines which file is modified. Creating an NPC in zone 9001 creates/modifies NpcData_9001.xml.

  • Composite key: NPCs are identified by both huntingZoneId AND id. Two NPCs in different zones can share the same id.

  • Enum casing: Enum values are case-insensitive in YAML (Medium, medium, MEDIUM all work), but XML output uses PascalCase.

  • String vs int fields: Some numeric fields like maxHp, atk, def are stored as strings in the XML schema to support expression syntax. Use string values in YAML.

  • Upsert behavior: The upsert operation creates the NPC if it doesn’t exist, or updates it if it does. Useful for ensuring an NPC exists with specific values.