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​
#========================================================
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]
#========================================================
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 examplezts3e
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​
Use that id in conststring.dat
to get race name (or check the list at the bottom)
List of races
raceType | raceSubType | Label (from conststring.dat or my description) |
---|---|---|
0 | 0 | low level plants |
0 | 0 | low level plants |
0 | 1 | low level animals |
0 | 2 | low level monsters |
1 | 0 | high level plants |
1 | 1 | high level animals |
1 | 2 | high level monsters |
2 | 0 | kovolt |
2 | 1 | bushtail |
2 | 2 | catsy |
3 | 0 | human |
3 | 2 | neutral |
3 | 3 | demon |
4 | 0 | angel |
5 | 0 | low level undead |
5 | 1 | high level undead |
6 | 0 | low level spirit (a5.1 mobs) |
8 | 0 | fixed trap (these traps on raids that hit you from nowhere, etc.) |
8 | 1 | energy ball (sp3a bombs, mini-clones from hongbi&cheongbi) |
8 | 2 | cannon ball (rainbow battle crystals) |
8 | 3 | talkable npc (like TS sign, ML sign, SP stones) |
8 | 4 | generic, a lot of different ones here |
8 | 5 | teleporters |
8 | 6 | quest mob spawner |
8 | 7 | collectibles (like ice flowers) |
8 | 8 | a5 quest collectibles (or something, idk) |
You can easy search monsters by race there: https://itempicker.atlagaming.eu/monsters
Obtaining race icon ID​
Icons are located in the NSipData.NOS
file
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 you4
: 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>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:
Pink Jelly (Vnum: 82) have iconID =
81
.
8000 + 81 = 8081
Icon can be found in
NSipData.NOS
as file named 8081
spawnMobOrColor / amountOrItem​
Meaning depends on the hostility value. Check the table below.
Condition | hostility value is 0 - 19999 | hostility value is 20000 - ... |
---|---|---|
Friendly option name | Colors | Spawn monsters |
Behaviour |
|
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 |
|
|
spriteSize​
Bonus (positive or negative) sprite size percentage (value -10
would result in 90% sprite size)
- Score Board (Vnum: 915)
have
10
which means +10% for the size - Twisted Ice Worm (Vnum: 764)
90
-> +90% - Valakus' Egg (Vnum: 2016)
-50
-> -50%
cellSize​
Bonus cell size for AoE spells (used for big bosses like Hatus or Caligor)
- Wounded Asgobas (Vnum: 1462)
cellSize=
4
- Lord Hatus (Vnum: 577)
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
option | bitFlags | comment |
---|---|---|
cantWalk | bitFlags & 1 | this mob can't walk |
canCollect | bitFlags & 2 | this mob can be collected (ice flowers etc.) but only if it has any Drops, and is placed as NPC, not a mob |
cantDebuff | bitFlags & 4 | this mob can't be debuffed |
canCatch | bitFlags & 8 | this mob can be caught |
disappearAfterSeconds | bitFlags & 16 | this mob will disappear after realHP/10 seconds |
disappearAfterHitting | bitFlags & 32 | this mob will disappear after its first hit (mini-inferno) |
hasMode | bitFlags & 64 | this mob has MODE |
disappearAfterSecondsMana | bitFlags & 128 | this mob will disappear after realMP/10 seconds |
onDefenseOnlyOnce | bitFlags & 256 | this mob's "during defense" CARD will trigger only once |
hasDash | bitFlags & 512 | this mob uses a dash |
canRegenMp | bitFlags & 1024 | (this mob will regenerate HP over time) |
cantVoke | bitFlags & 2048 | this mob can't be moved by vokes, repels etc. |
bitFlags & 4096 | always 0? | |
bitFlags & 8192 | always 0? | |
bitFlags & 16384 | always 0? | |
bitFlags & 32768 | always 0? | |
bitFlags & 65536 | always 0? | |
bitFlags & 131072 | always 0? | |
bitFlags & 262144 | always 0? | |
bitFlags & 524288 | always 0? | |
bitFlags & 1048576 | always 0? | |
bitFlags & 2097152 | always 0? | |
bitFlags & 4194304 | always 0? | |
bitFlags & 8388608 | always 0? | |
bitFlags & 16777216 | always 0? | |
bitFlags & 33554432 | always 0? | |
bitFlags & 67108864 | always 0? | |
bitFlags & 134217728 | always 0? | |
dontDrainHpAfterSeconds | bitFlags & 268435456 | this mob won't lose HP but will stil disappear after realHP/10 seconds (?) |
bitFlags & 536870912 | unknown, almost boss-ish | |
bitFlags & 1073741824 | unknown, boss-ish | |
cantTargetInfo | bitFlags & 2147483648 | you can't see this mob's target info (selection window in top of the screen, with HP and MP) |
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)​
val | Name | Description |
---|---|---|
val1 | tries | max tries before cooldown |
val2 | timerTime | collection cooldown (in seconds) |
val3 | needItem | if not 0, this npc require an item with VNUM amountOrItem to be collected |
val4 | collectTime | collection duration (dance duration) |
val5 | ||
Example mobs |
If: raceType
== 8 && raceSubType
== 5: (teleporters)​
val | Name | Description |
---|---|---|
val1 | itemVnum | required item VNUM to use this teleporter |
val2 | amount | amount of the item required |
val3 | remove | if true, the item will be removed after teleporting |
val4 | not used | |
val5 | ||
Example mobs |
All diffrent cases:​
It can actually be used for the above cases too, if (for example) you somehow manage to get Ice Flower as a pet 👀.
val | Name | Description |
---|---|---|
val1 | melee/HP factor | increases HP and melee ddefens&attack |
val2 | Ranged/Dodge factor | increases dodges, hitrate and ranged defense&attack |
val3 | Magic/MP factor | increases MP and magic defense&attack |
val4 | some mobs have it, looks like some lvl threshold? | |
val5 |
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
Field | Description |
---|---|
attType |
|
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 Basically there is ( |
castTime | deciseconds (so value 100 would be 10 seconds) |
cooldown | deciseconds (so value 100 would be 10 seconds) |
dashSpeed | tells how fast a dash visuals should be |
unknown4 |
WINFO​
WINFO {attType} {unknown5} {grade}
Mob's weapon (attack)
Field | Description |
---|---|
attType | 0 - melee, 1 - ranged, 2 - magic (same as in ZSKILL) |
unknown5 | |
grade | upgrade |
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
Field | Description |
---|---|
vnum | skill's vnum |
chance | chance to use this skill instead of basic attack |
force | if 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
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:
- After 1st attack (ibrahim's defense, grenigas' rage, not used anywhere else)
- After dying (peas, mandras, etc.)
- unknown, not visible anywhere
- unknown, not visible anywhere
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
Field | Description |
---|---|
Bcard (x5) | BCard definition |
alwaysActive | means that the MODE is enabled by default |
limiter | If |
hpThreshold/itemVnum |
|
modeRangeTreshold | Read about limiter value above |
c_modeVnum | MODE'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/ Used by Midgard monsters and Fafnir boss. |
- 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
Field | Description |
---|---|
itemVNUM | item Vnum |
chance | number bettwen 0 and 100000. (1000 is 1%, 1 is 0.001%) |
amount | item amount |