Skip to main content

monster.dat

That file contains list of all monsters configuration. This file format is simillar to Item.dat (both files can be edit using simple text file editors).

Format​

monster.dat
#========================================================
VNUM {monsterVnum}
NAME {monsterCodeName}
LEVEL {monsterLevel}
RACE {raceType} {raceSubType} {monsterHeroLevel}
ATTRIB {monsterElement} {monsterElementRate} {monsterResistanceFire} {monsterResistanceWater} {monsterResistanceLight} {monsterResistanceDark}
HP/MP {monsterMaxHpBonus} {monsterMaxMpBonus}
EXP {monsterXpBonus} {monsterJobXpBonus}
PREATT {hostility} {groupAttack} {seekRange} {movementSpeed} {respTime}
SETTING {iconID} {spawnMobOrColor} {amountOrItem} {spriteSize} {cellSize} {unknown0, always 0}
ETC {flags} {unknown1} {isPercentileDmg} {canOnlyBeDmgedByJajamaruLastSkill} {unknown2, always 0} {visibleOnMinimapAsGreenDot} {unknown3} {isValhallaPartner}
PETINFO {val1} {val2} {val3} {val4} {val5}
EFF {effIdOnAttack} {effIdConstantly} {effIdOnDeath}
ZSKILL {attType} {range} {hitChance} {castTime} {cooldown} {dashSpeed} {unknown4}
WINFO {attType} {unknown5} {grade}
WEAPON {lvl} {range} {dmgMin} {dmgMax} {hitRate} {critChance} {critDmg}
AINFO {defType} {grade}
ARMOR {lvl} {meleeDef} {rangedDef} {magicDef} {dodge}
SKILL {vnum} {chance} {force} [4 times the same thing]
PARTNER 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BASIC {BCardVNUM} {EffectVal_1} {EffectVal_2} {BCardSub} {Target} [9 times the same thing]
CARD {BCardVNUM} {EffectVal_1} {EffectVal_2} {BCardSub} {Target} [3 times the same thing]
MODE {BCardVNUM} {EffectVal_1} {EffectVal_2} {BCardSub} {Target} [4 times the same thing] {alwaysActive} {limiter} {hpThreshold/itemVnum} {modeRangeTreshold} {c_modeVnum} {cellMinRange} {midgard}
ITEM {itemVNUM} {chance} {amount} [19 times the same thing]
#========================================================
warning

Its important to remember that values are separated by tabs, not spaces.

Visual Studio Code replaces tabs with spaces by default. Thats why recommended is to use Notepad++ or other text editor who will not replace tabs with spaces.

VNUM​

	VNUM	{monsterVnum}

Monster VNum (You can create multiple monsters with the same model. For example Fox with id: 0, 1, 2) |

NAME​

	NAME	{monsterCodeName}
  • {monsterCodeName} contains the key for translation. For example zts3e is a key for translation.
  • Translations can be found in _code_<lang>_<filetype>.txt files (for example _code_en_monster.txt).
  • If you will specify wrong zts value (translation) it will display that zts value (for example zts3e) in game.
  • Simillar to Item.dat Name

LEVEL​

	LEVEL	{monsterLevel}

self-explanatory

RACE​

	RACE	{raceType}	{raceSubType}	{monsterHeroLevel}

Get race name ID​

raceId=300+raceType×10+raceSubType+7\text{raceId} = 300 + \text{raceType} \times 10 + \text{raceSubType} + 7

Use that id in conststring.dat to get race name (or check the list at the bottom)

List of races
raceTyperaceSubTypeLabel (from conststring.dat or my description)
00low level plants
00low level plants
01low level animals
02low level monsters
10high level plants
11high level animals
12high level monsters
20kovolt
21bushtail
22catsy
30human
32neutral
33demon
40angel
50low level undead
51high level undead
60low level spirit (a5.1 mobs)
80fixed trap (these traps on raids that hit you from nowhere, etc.)
81energy ball (sp3a bombs, mini-clones from hongbi&cheongbi)
82cannon ball (rainbow battle crystals)
83talkable npc (like TS sign, ML sign, SP stones)
84generic, a lot of different ones here
85teleporters
86quest mob spawner
87collectibles (like ice flowers)
88a5 quest collectibles (or something, idk)

You can easy search monsters by race there: https://itempicker.atlagaming.eu/monsters

Obtaining race icon ID​

raceIconId=18000+raceType×50+raceSubType\text{raceIconId} = 18000 + \text{raceType} \times 50 + \text{raceSubType}

Icons are located in the NSipData.NOS file

warning

Monsters with raceType == 8 MUST NEVER BE ABLE TO USE BASIC ATTACKS (they can use skills if they have any), and MUSTNOT BE TARGETABLE BY AoE's.

ATTRIB​

	ATTRIB	{monsterElement}	{monsterElementRate}	{monsterResistanceFire}	{monsterResistanceWater}	{monsterResistanceLight}	{monsterResistanceDark}

HP/MP​

	HP/MP	{monsterMaxHpBonus}	{monsterMaxMpBonus}

EXP​

	EXP	{monsterXpBonus}	{monsterJobXpBonus}

PREATT​

	PREATT	{hostility}	{groupAttack}	{seekRange}	{movementSpeed}	{respTime}

hostility​

  • 1: Attacks when it sees you
  • 4: Attacks pets (nosmate trainers)
  • 23: Attacks devils (guardians in a4)
  • 24: Attacks angels (guardians in a4)
  • 100: Attacks if you are not wearing Phantom's Amulet Phantom's Amulet
  • >20000: Atttacks while doing quest with VNUM (hostility-20000) (hostility 25278 would be quest 5278)

groupAttack​

  • If 1: with others (when a mob attacks you, his allies will also attack you if you're in their seek range (kovolts))
  • If 5: with group (if you attack this mobs, his allies will also attack you if you're in their seek range (wolves, pigeons))

seekRange​

movementSpeed​

respTime​

Is in deciseconds (so value 100 would be 10 seconds)

SETTING​

	SETTING	{iconID}	{spawnMobOrColor}	{amountOrItem}	{spriteSize}	{cellSize}	{unknown0, always 0}

iconID​

Contains monster icon id. Icon can be found in NSipData.NOS using this formula:

iconFilename=8000+iconID\text{iconFilename} = 8000 + \text{iconID}
Example

Pink Jelly Pink Jelly (Vnum: 82) have iconID = 81.

8000 + 81 = 8081

Icon Pink Jelly can be found in NSipData.NOS as file named 8081

spawnMobOrColor / amountOrItem​

Meaning depends on the hostility value. Check the table below.

Conditionhostility value is 0 - 19999hostility value is 20000 - ...
Friendly option nameColorsSpawn monsters
Behaviour
  • This mob can have a custom color (if spawnMobOrColor is not 0)
  • It's an int representation of the RGBA color (value -12477399 in hex is 0xff419c29, and so the RGBA is #ff419c29 (0xff red, 0x41 green, 0x9c blue, 0x29 alpha))
  • You can use our Color calculator to get color int value
  • This mob spawns amountOrItem amount of mob (vnum: spawnMobOrColor)
tip

Most monsters in this category give the impression that they are used to configure various elements of the game. In fact, they are never visible to the player. They dont have sprites and dont have icon.

Examples
  • Invisible Jelly Invisible Jelly
  • Invisible Dust King Invisible Dust King
  • Angry Chicken Angry Chicken
  • Laboratory Observer (Vnum: 857) Laboratory Observer spawns 3 Mobs: Gaunt Zombie Guard (Vnum: 299) Gaunt Zombie Guard

spriteSize​

Bonus (positive or negative) sprite size percentage (value -10 would result in 90% sprite size)

Examples
  • Score Board (Vnum: 915) Score Board have 10 which means +10% for the size
  • Twisted Ice Worm (Vnum: 764) Twisted Ice Worm 90 -> +90%
  • Valakus' Egg (Vnum: 2016) Valakus' Egg -50 -> -50%

cellSize​

Bonus cell size for AoE spells (used for big bosses like Hatus or Caligor)

Examples
  • Wounded Asgobas (Vnum: 1462) Wounded Asgobas cellSize=4
  • Lord Hatus (Vnum: 577) Lord Hatus cellSize=5

ETC​

	ETC	{flags}	{unknown1}	{isPercentileDmg}	{canOnlyBeDmgedByJajamaruLastSkill}	{unknown2, always 0}	{visibleOnMinimapAsGreenDot}	{unknown3}	{isValhallaPartner}

flags​

Flags are stored as an integer and calculated using bitwise operations. If you want to dive deeper into what's happening behind the curtains, check the Wikipedia and MDN articles on the topic.

Table with bitflags documentation
optionbitFlagscomment
cantWalkbitFlags & 1this mob can't walk
canCollectbitFlags & 2this mob can be collected (ice flowers etc.) but only if it has any Drops, and is placed as NPC, not a mob
cantDebuffbitFlags & 4this mob can't be debuffed
canCatchbitFlags & 8this mob can be caught
disappearAfterSecondsbitFlags & 16this mob will disappear after realHP/10 seconds
disappearAfterHittingbitFlags & 32this mob will disappear after its first hit (mini-inferno)
hasModebitFlags & 64this mob has MODE
disappearAfterSecondsManabitFlags & 128this mob will disappear after realMP/10 seconds
onDefenseOnlyOncebitFlags & 256this mob's "during defense" CARD will trigger only once
hasDashbitFlags & 512this mob uses a dash
canRegenMpbitFlags & 1024(this mob will regenerate HP over time)
cantVokebitFlags & 2048this mob can't be moved by vokes, repels etc.
bitFlags & 4096always 0?
bitFlags & 8192always 0?
bitFlags & 16384always 0?
bitFlags & 32768always 0?
bitFlags & 65536always 0?
bitFlags & 131072always 0?
bitFlags & 262144always 0?
bitFlags & 524288always 0?
bitFlags & 1048576always 0?
bitFlags & 2097152always 0?
bitFlags & 4194304always 0?
bitFlags & 8388608always 0?
bitFlags & 16777216always 0?
bitFlags & 33554432always 0?
bitFlags & 67108864always 0?
bitFlags & 134217728always 0?
dontDrainHpAfterSecondsbitFlags & 268435456this mob won't lose HP but will stil disappear after realHP/10 seconds (?)
bitFlags & 536870912unknown, almost boss-ish
bitFlags & 1073741824unknown, boss-ish
cantTargetInfobitFlags & 2147483648you can't see this mob's target info (selection window in top of the screen, with HP and MP)
Options calculator


Bit flags:

isPercentileDmg​

If 1, this mob takes percentage damage, like Chicken King, Giant Snowman, winter sealed vessel mobs etc.

canOnlyBeDmgedByJajamaruLastSkill​

Used for Namaju, if 1, this mob then can only be damaged by jajamaru's last skill

visibleOnMinimapAsGreenDot​

Example:

  • Giant Chick (Vnum: 588)
  • Thousand-Year-Old Mandra (Vnum: 589)

isValhallaPartner​

Example:

  • Par (Vnum: 1491)
  • Frigg (Vnum: 2617)
  • Jennifer (Vnum: 2640)

PETINFO​

	PETINFO	{val1}	{val2}	{val3}	{val4}	{val5}

If: raceType == 8 && raceSubType == 7: (collectable NPC)​

valNameDescription
val1triesmax tries before cooldown
val2timerTimecollection cooldown (in seconds)
val3needItemif not 0, this npc require an item with VNUM amountOrItem to be collected
val4collectTimecollection duration (dance duration)
val5
Example mobsFragrant Grass Well Ice Flower Cheese Chunk

If: raceType == 8 && raceSubType == 5: (teleporters)​

valNameDescription
val1itemVnumrequired item VNUM to use this teleporter
val2amountamount of the item required
val3removeif true, the item will be removed after teleporting
val4not used
val5
Example mobsTeleportation Stone Tree Stump Kovolt Statue Magic Branch

All diffrent cases:​

tip

It can actually be used for the above cases too, if (for example) you somehow manage to get Ice Flower as a pet 👀.

valNameDescription
val1melee/HP factorincreases HP and melee ddefens&attack
val2Ranged/Dodge factorincreases dodges, hitrate and ranged defense&attack
val3Magic/MP factorincreases MP and magic defense&attack
val4some mobs have it, looks like some lvl threshold?
val5
note

This is taken into consideration when calculating pets (nosmates/partners) stats. The algorithms are quite large and have different cases for every race, so I'm not gonna put them here now (I dont have it, you can help us here).

These factors are like "bonuses". If a pet has 15 melee/HP factor value, it will have much more HP than the same copied mob but with 0 melee/HP factor. Can't be negative

EFF​

	EFF	{effIdOnAttack}	{effIdConstantly}	{effIdOnDeath}

ZSKILL​

	ZSKILL	{attType}	{range}	{hitChance}	{castTime}	{cooldown}	{dashSpeed}	{unknown4}

Contains information about basic attack and some informations

FieldDescription
attType
  • 0 - melee
  • 1 - ranged
  • 2 - magic
range
hitChance

Every time a mob tries to attack you, it checks this value (you multiply the value by 20 to get the percentage, so 2 would be 40% and 5 would be 100%) and rolls with its chance if it should attack.

Basically there is (hitChance * 20)% chance for the mob to attack you.

castTimedeciseconds (so value 100 would be 10 seconds)
cooldowndeciseconds (so value 100 would be 10 seconds)
dashSpeedtells how fast a dash visuals should be
unknown4

WINFO​

	WINFO	{attType}	{unknown5}	{grade}

Mob's weapon (attack)

FieldDescription
attType0 - melee, 1 - ranged, 2 - magic (same as in ZSKILL)
unknown5
gradeupgrade
Example
	WINFO	2	0	10

would be: ranged +10

WEAPON​

	WEAPON	{lvl}	{range}	{dmgMin}	{dmgMax}	{hitRate}	{critChance}	{critDmg}

Mob's weapon. It adds these stats to the mob like it was wearing a weapon with these values.

Except range that defines basic attack's range.

AINFO​

	AINFO	{defType}	{grade}

Mob's armor. It adds these stats to the mob like it was wearing a armor with these values. (Simillar to WINFO)

ARMOR​

	ARMOR	{lvl}	{meleeDef}	{rangedDef}	{magicDef}	{dodge}

Mob's armor. It adds these stats to the mob like it was wearing a armor with these values. (Simillar to WEAPON)

SKILL​

	SKILL	{vnum}	{chance}	{force}	[4 times the same thing]

List of skills that a mob can use

FieldDescription
vnumskill's vnum
chancechance to use this skill instead of basic attack
forceif 1 or 2 (1 is only used for Mother Cuby and 1000yo Ginseng, no idea what's the difference), this skill will be used instead of basic attack when not on cooldown. So a mob with one skill with this enabled will use it whenever it comes off cooldown. Used a lot for raid bosses

PARTNER​

	PARTNER	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0

No idea. All monsters have there 0. Maybe it's a leftover from an old version of the game.

BASIC​

	BASIC	{BCardVNUM}	{EffectVal_1}	{EffectVal_2}	{BCardSub}	{Target}	[9 times the same thing]

See definition in Item.dat BUFF

warning

Monsters with raceType == 8 MUST NEVER BE ABLE TO USE BASIC ATTACKS (they can use skills if they have any), and MUSTNOT BE TARGETABLE BY AoE's.

CARD​

	CARD	{BCardVNUM}	{EffectVal_1}	{EffectVal_2}	{BCardSub}	{Target}	[3 times the same thing]

CARD is simillar to BASIC. Also contains BCard's (read more: Item.dat BUFF) but this BCard only triggers depending on position (in CARD) it is located:

  1. After 1st attack (ibrahim's defense, grenigas' rage, not used anywhere else)
  2. After dying (peas, mandras, etc.)
  3. unknown, not visible anywhere
  4. unknown, not visible anywhere
Example

Mandra (Vnum: 19) have this CARD:

	CARD	0	0	0	0	0	27	120	0	0	1	0	0	0	0	0	0	0	0	0	0

which means: After die use BCard 27 120 0 0 1 (because its 2nd BCard in CARD)

MODE​

	MODE	{BCardVNUM}	{EffectVal_1}	{EffectVal_2}	{BCardSub}	{Target}	[4 times the same thing]	{alwaysActive}	{limiter}	{hpThreshold/itemVnum}	{modeRangeTreshold}	{c_modeVnum}	{cellMinRange}	{midgard}

Mob can go into different "mode". Only useable if flag hasMode is true (read more about flags here)

If the MODE is active, all 5 BCards are activated

FieldDescription
Bcard (x5)

BCard definition {BCardVNUM} {EffectVal_1} {EffectVal_2} {BCardSub} {Target}. Read more here

alwaysActivemeans that the MODE is enabled by default
limiter

If limiter == 1​

The MODE triggers only if the trigger is in modeRangeTreshold cells.

Example

For Turtle you have to be in 3 cells range to hide himself

If limiter == 2​

To toggle MODE, there has to be killed at least modeRangeTreshold mobs on the map.

Important

This check holds after revival (zombie), but only for this mob. This causes the Zombies in official servers to have the MODE activated after a maintenance, but once someone kills all mobs on the map, they will never regain their MODE until the next maintenance. If someone only kills half of the map, only this half of the map would not have MODE anymore.

Also, if someone was to spawn 2nd Ginseng boss in the raid, both would be burried. But if this someone spawned him after people killed all 7 pots, the Ginseng would spawn unburried.

hpThreshold/itemVnum

alwaysActive == 0​

This is treated as HP threshold for toggling MODE. If the values is 50, the MODE will toggle on 50% HP or less.

Example

Turtle will toggle mode when HP is lower than 30%

alwaysActive == 1​

This is item VNUM, but i'm not sure how it works, it's something for a5 quests only

modeRangeTresholdRead about limiter value above
c_modeVnumMODE's c_mode's... VNUM
cellMinRange

It defines minimum range for skills. If the skill range is less than this, this skill can not hit the mob (like warriors can't hit flying fire drakes).

Used by LoD mobs - dragons.

midgard

If not 0, each hit to mob takes 1/midgard of maximum mob's HP.

Used by Midgard monsters and Fafnir boss.

Examples
  • Turtle: it can hide inside it's shell if his HP is low
  • Ginseng boss: can be burried untill some mobs are killed in the bossroom
  • Larvas: roll up and speed if their's HP is low

Or just to use c_mode for a mob (some a5 mobs use it)

ITEM​

	ITEM	{itemVNUM}	{chance}	{amount}	[19 times the same thing]

List of drops from the mob

FieldDescription
itemVNUMitem Vnum
chancenumber bettwen 0 and 100000. (1000 is 1%, 1 is 0.001%)
amountitem amount