From The Mana World
(sorry for the many updates, there is much to do here and I'm getting help from o11c on IRC in between those changes)
m (Text replacement - "Legacy" to "Classic")
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Status_green}}
{{Status_green}}
{{Status Under Construction|This page is outdated but still can be used as a reference. It is mainly copied from the [[http://eathena.ws/wiki/index.php?title=Custom_Mobs eathena.ws "Custom Mobs" wiki page]]. Feel free to join our [[https://webchat.freenode.net/?channels=#themanaworld IRC development channel]] for further information}}
{{Category Classicplayerinfo}}
{{Status Under Construction|Please note that this page is still under contruction. You can use it as reference, but note the red marked comments for unclear points.}}




=Server side=
This page shows how monsters are designed. Therefore two main points are relevant:


* '''server-data''' which defines stats like HP and DEF, but also the behavior or walk and attack speed of the mob
* and '''client-data''' which includes everything the client shows while playing like the graphic of a mob itself or sparkling particle effects and a file naming the authors of a graphic.


==[https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/db/mob_db.txt mob_db]==
You'll find the mob_db under following path: '''[https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/db/mob_db.txt tmwa-server-data/world/map/db/mob_db.txt]'''


=[https://github.com/themanaworld/tmwa-server-data server-data]=
The required files in server-data list all kind of numbers that don't have anything to do with how a mob looks like (this is in client-data).


The mob_db has following structure:
Only two files are relevant for this: the appropriate '''mob_db''' and '''mob_points.txt'''.
 
Additionally you can look at how other mobs are created as a reference.
 
 
==mob_db==
* Path: '''[https://github.com/themanaworld/tmwa-server-data/tree/master/world/map/db tmwa-server-data/world/map/db]'''
 
In this folder you will see the following files:
* [https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/db/0_19_mob_db.txt 0_19_mob_db.txt]
* [https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/db/20_39_mob_db.txt 20_39_mob_db.txt]
* [https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/db/40_59_mob_db.txt 40_59_mob_db.txt]
* [https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/db/60_79_mob_db.txt 60_79_mob_db.txt]
* [https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/db/80_99_mob_db.txt 80_99_mob_db.txt]
* [https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/db/over_100_mob_db.txt over_100_mob_db.txt]
 
All information about stats like mob name, HP, DEF, but also walking and attack speed are listed in these mob_db.txt files. The numbers represent the level of the mobs listed in the files. So if you want to add a mob with level 75 you choose ''60_79_mob_db.txt''.
 
 
The mob_db.txt files have following structure:


<pre>
<pre>
ID,Name,JName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,
//ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK,
Race,Element,Mode,Speed,ADelay,aMotion,dMotion,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,
Range2, Range3, Scale, Race, Element, Mode, Speed, Adelay, Amotion, Dmotion, Drop1id, Drop1per, Drop2id,
Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,
Drop2%, Drop3id, Drop3%, Drop4id, Drop4%, Drop5id, Drop5%, Drop6id, Drop6%, Drop7id, Drop7%, Drop8id, Drop8%,
DropCardid,DropCardper,MEXP,ExpPer,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per
Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per, MVP2id, MVP2per, MVP3id, MVP3per, mutationcount, mutationstrength
</pre>
</pre>


'''Note:''' In this wiki page it shows four lines, while it's one single line in the mob_db itself.
'''Note:''' In this wiki page it shows four lines, while it's one single line in the mob_db itself.


The columns mean:
* '''<u>ID</u>''': ID of the mob. It's not sure if the maximum possible number of IDs is 1,000 or 10,000.
* '''<u>ID</u>''': ID of the mob. It's not sure if the maximum possible number of IDs is 1,000 or 10,000.
* '''<u>Name</u>''': This first name is the DB name. When you use @spawn/@summon and you know the name of the mob, but not the ID, type this name instead. Try making the normal name the same as this so you wont get confused.  
* '''<u>Name</u>''': This first name is the DB name. When you use @spawn/@summon and you know the name of the mob, but not the ID, type this name instead. Try making the normal name the same as this so you wont get confused.  
* '''<u>JName</u>''': This is the name the server shows. Actually it's always the same as '''<u>Name</u>'''.
* '''<u>JName</u>''': This is the name the server shows. Actually it's always the same as '''<u>Name</u>'''.
* '''<u>LV</u>''': Level of the mob.
* '''<u>LV</u>''': Level of the mob. It is added to DEX for "to hit" and to AGI for "flee".
* '''<u>HP</u>''': HP of the mob.
* '''<u>HP</u>''': HP of the mob. Note that maximum is 65535 HP, if you enter more it starts from 0 again (e.g. 80000 HP will be 14464 HP then).
* '''<u>SP</u>''': SP of the mob.
* '''<u>SP</u>''': SP of the mob, but currently unused (even though e.g. Luvia has 60 SP which have no effect). Please leave "0" here.
* '''<u>EXP</u>''': EXP granted by the mob, but this is calculated automatically. There are a few exceptions though.
* '''<u>EXP</u>''': EXP granted by the mob, but this is calculated automatically. There are a few exceptions though.
* '''<u>JEXP</u>''': Job EXP granted by the mob. They are calculated by a tool. ''<span style="color:#ad1818">Note: Adding tool info.</span>''
* '''<u>JEXP</u>''': Job EXP granted by the mob. They are calculated by a tool.
* '''<u>Range1</u>''': Range of the mob attack. If set to 1 or 2, it will melee. 3 or more than 3 will set it to ranged.
* '''<u>Range1</u>''': Range of the mob attack. If set to 1 or 2, it will melee. 3 or more than 3 will set it to ranged.
* '''<u>ATK1</u>''': Minimum attack of the mob.
* '''<u>ATK1</u>''': Minimum attack of the mob.
Line 34: Line 58:
* '''<u>DEF</u>''': Defence of the mob in % against melee and ranged attacks.
* '''<u>DEF</u>''': Defence of the mob in % against melee and ranged attacks.
* '''<u>MDEF</u>''': Magic Defence of the mob in %.
* '''<u>MDEF</u>''': Magic Defence of the mob in %.
* '''<u>STR</u>''': Strength of the mob. It's not sure what it does and what's the difference to '''<u>ATK1</u>''' and '''<u>ATK2</u>'''.
* '''<u>STR</u>''': Strength of the mob. It increases the minimum/maximum attack of the mob on a one-to-one basis.
* '''<u>AGI</u>''': Agility of the mob. This also defines the mob flee rate.
* '''<u>AGI</u>''': Agility of the mob. This also defines the mob flee rate.
* '''<u>VIT</u>''': Vitality of the mob. It's not sure what it does and what's the difference to '''<u>VIT</u>'''.
* '''<u>VIT</u>''': Vitality of the mob. 80% of this value is removed from damage taken after '''<u>DEF</u>''' is applied.
* '''<u>INT</u>''': Intelligence of the mob. This also defines its Magic Attack.
* '''<u>INT</u>''': Intelligence of the mob. This also defines its Magic Attack.
* '''<u>DEX</u>''': Dexterity of the mob. This also defines its hit rate.
* '''<u>DEX</u>''': Dexterity of the mob. This also defines its hit rate.
* '''<u>LUK</u>''': Luck of the mob. This also defines its perfect dodge/lucky flee/perfect flee/lucky dodge rate. ''<span style="color:#ad1818">Note: What are perfect dodge, lucky flee and perfect flee?</span>''
* '''<u>LUK</u>''': Luck of the mob. This also defines its perfect dodge/lucky flee/perfect flee/lucky dodge rate (those are various combat chances shown in client as "miss" and "dodge").
* '''<u>Range 2</u>''': Currently unused. It's said to be the maximum range for skills.
* '''<u>Range2</u>''': Currently unused. It's said to be the maximum range for skills. Please leave "1" here.
* '''<u>Range 3</u>''': Currently unused. It's said to be the sight limit for mobs. If set to 1000 or beyond, mobs will follow you all over the map.
* '''<u>Range3</u>''': Currently unused. It's said to be the sight limit for mobs. If set to 1000 or beyond, mobs will follow you all over the map. Please leave "1" here.
* '''<u>Scale</u>''': "0" if its small, "1" if its medium and "2" if its large. ''<span style="color:#ad1818">Note: What is the effect of this then?</span>''
* '''<u>Scale</u>''': Currently unused. Please leave "1" here.
* '''<u>Race</u>''': Defines the mob's race, see below:
* '''<u>Race</u>''': Defines the mob's race, see below:
** "0" = formless
** "0" = formless
Line 73: Line 97:
<pre>Those are the basic numbers:
<pre>Those are the basic numbers:
canMove:        1
canMove:        1
looter:        2
looter:        2 (picks up drops if not aggravated)
aggressive:    4
aggressive:    4
assist:        8
assist:        8 (helps another mob of its kind that got aggravated)
castsensor:    16
castsensor:    16 (currently without any effect)
Boss:          32
Boss:          32 (effect unknown)
plant:        64
plant:        64 (infinite defense)
canAttack:    128
canAttack:    128
detector:    256 (currently without any effect)
detector:    256 (currently without any effect)
Line 92: Line 116:
Peaceful looter:              131    128 for canAttack + 2 for looter + 1 for canMove                        Example: Yellow Slime   
Peaceful looter:              131    128 for canAttack + 2 for looter + 1 for canMove                        Example: Yellow Slime   
Aggressive looter:            135    128 for canAttack + 4 for aggressive + 2 for looter + 1 for canMove    Example: Red Slime
Aggressive looter:            135    128 for canAttack + 4 for aggressive + 2 for looter + 1 for canMove    Example: Red Slime
Boss mob:                    165    133 (128+4+1) for standard aggressive mob + 32 for Boss                Example: Reaper
</pre>
</pre>
''<span style="color:#ad1818">-------------------------------------------------------------------- (updated until here)</span>''
* '''<u>Speed</u>''': Walking speed of the mob. "1" is the fastest, "1000" is the lowest. "100" is the normal walking speed.
* '''<u>Speed</u>''': Walking speed of the mob. 1 is the fastest, 1000 is the lowest. 100 is the normal walking speed.
* '''<u>Adelay</u>''': Attack Delay, also known as ASPD. This defines how fast the mob hits. The lower the faster, but making it too low will cause lag when several mobs attack.
* '''<u>ADelay</u>''': ADelay= Attack Delay, also known as ASPD. This one will change the aspd of the mob. The lower the faster, but don't make it too low or it will lag when mobbed by several of these.
* '''<u>Amotion</u>''': Attack animation motion. Lower this value and the mob's attack will be displayed in higher fps (making it shorter, too).
* '''<u>aMotion</u>''': Attack animation motion. Lower this value and the mob's attack will be displayed in higher fps (making it shorter, too) (Thanks to Wallex for this)
* '''<u>Dmotion</u>''': Damage animation motion, same as Amotion but used to display the "I am hit" animation. Coincidentally, this same value is used to determine how long it is before the mob/player can move again. Endure is dMotion = "0".
* '''<u>dMotion</u>''': Damage animation motion, same as aMotion but used to display the "I am hit" animation. Coincidentally, this same value is used to determine how long it is before the mob/player can move again. Endure is dMotion = 0, obviously.(thanks to Wallex for this one)
* '''<u>Drop1id</u>''': The ID of an item the mob can drop.
* '''<u>Drop1per</u>''': The drop rate of '''<u>Drop1ID</u>'''. "10000" = 100%, "1000" = 10%, "100" = 1", "10" = 0.1%, "1" = 0.01%, etc.
* Same counts for '''<u>Drop2ID</u>''' & '''<u>Drop2per</u>''', '''<u>Drop3ID</u>''' & '''<u>Drop3per</u>''', etc.
* '''<u>Item1</u>''': Currently unused. Please leave "0" here.
* '''<u>Item2</u>''': Currently unused. Please leave "0" here.
* '''<u>MEXP</u>''': Currently unused. Please leave "0" here.
* '''<u>ExpPer</u>''': Currently unused. Please leave "0" here.
* '''<u>MVP1id</u>''': Currently unused. Please leave "0" here.
* '''<u>MVP1per</u>''': Currently unused. Please leave "0" here.
* Same counts for '''<u>MVP2id</u>''' & '''<u>MVP2per</u>''' and '''<u>MVP3id</u>''' & '''<u>MVP3per</u>'''.
* '''<u>mutationcount</u>''': Defines how many attributes can increase. Those attributes can be LV, HP, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Speed, Adelay, HP (double chance to modify hp, no chance to modify base EXP).
* '''<u>mutationstrength</u>''': Defines how much attributes can increase, e.g. "50" = 50%.
 
==mob_points.txt==
* Path: '''[https://github.com/themanaworld/tmwa-server-data/blob/master/world/map/npc/functions/mob_points.txt tmwa-server-data/world/map/npc/functions/mob_points.txt]'''
 
 
At the top ~120 lines (number will increase with each new mob) all mobs are listed that give monster points for [[Aidan And Ishi's Monster Points]]. Usually there is a line saying "// Add more here", showing that new entries should be added above. Please ignore the lower part in this file as it's used to define which mobs [[Sagatha]] considers as good or evil.
 
 
'''Note:''' Currently the array is full which means that no new mobs can be added here. Please better ask if you can add a mob here or if there is some other solution.
 
 
=[https://github.com/themanaworld/tmwa-client-data client-data]=
As mentioned at the top of this page client-data includes everything the client shows while playing and a file naming the authors and licenses of graphics.


From now on, the following fields are for drops and drops rate. Remember that these are in percentages, it means 100 = 100%


* '''<u>Drop1ID</u>''': The Item ID of the drop goes here
This escpecially means '''graphics''' like monster sprites, '''XML files''' that define how the graphics are used (e.g. using a certain part of a graphic when a mob attacks but another part when it dies), '''accessories''' that can be put on a mob (e.g. a Reinboo is nothing else than a Mouboo with several accessories like Antlers), '''particle effects''' like the Demonic Mouboo's black smoke and the '''monster.xml''' that puts all those pieces together and defines the mob's name shown by the client.
* '''<u>Drop1per</u>''': the rate of being dropped goes here
Same counts for '''<u>Drop2ID</u>''' & '''<u>Drop2per</u>''', '''<u>Drop3ID</u>''' & '''<u>Drop3per</u>''', etc.




As an add, there are a field for Drop Card:


<br>'''<u>DropCardid</u>''': ID of a card or item. You can make this mob drop another mob's card, even.
==Graphics (sprites) and license.txt==
<br>'''<u>DropCardper</u>''': The chance of the card being dropped goes ere.
* Path: '''[https://github.com/themanaworld/tmwa-client-data/tree/master/graphics/sprites/monsters tmwa-client-data/graphics/sprites/monsters]'''


MVP exp: This exp is a percentage of the exp the monster gives.
* Path: '''[https://github.com/themanaworld/tmwa-client-data/license.txt tmwa-client-data/license.txt]'''


<br>'''<u>MEXP</u>''': The MVP exp the mob gives when it is defeated (to the player who got the MVP reward)
<br>'''<u>ExpPer</u>''': I'm not sure bout this one, but I think it takes a certain percentage of the exp you earn from the kill and adds it to the MVP exp. Someone correct me if I'm wrong, please.


Now, these correspond to MVP drop rates. I'm not sure if the mode for these drops to work are 171 or 181; I haven't tested it. I think they have to be either 171 or 181 so the server will recognize them as MVPs:
Please save finished graphics as .png with transparent background and name the license of them (dual licensing [http://creativecommons.org/licenses/by-sa/3.0/ CC BY-SA 3.0] and [http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html GPLv2] are required - if you have questions please ask in our [https://web.libera.chat/?channels=#themanaworld-dev IRC development channel]).


<br>'''<u>MVP1id</u>''': The Item ID of the MVP drop goes here
<br>'''<u>MVP1per</u>''': The rate of being dropped goes here


Same counts for '''<u>MVP2id</u>''' & '''<u>MVP2per</u>''' and '''<u>MVP3id</u>''' & '''<u>MVP3per</u>'''.
'''Note:''' This is the only point of monster design pure pixel artists have to take care of as they're "job" is only creating graphics, not making monster design. Everything else can be done by content developers or other contributors.




==mob_points.txt==
The content developer who creates a pull request for the mob will add the author and license(s) in license.txt.
''(follows)''




=Client side=
==XML files for the monster sprites==
* Path: '''[https://github.com/themanaworld/tmwa-client-data/tree/master/graphics/sprites/monsters tmwa-client-data/graphics/sprites/monsters]'''
This is the same path as the graphics/sprites of mobs as they belong together.




==Graphics and license.txt==
These XML files define which part of a sprite is used for which movement of a mob.
''(follows)''




==XML==
''(more information will follow)''
''(follows)''




==Optional: accessories and particle effects==
==Optional: accessories and particle effects==
''(follows)''
* Path: '''[https://github.com/themanaworld/tmwa-client-data/tree/master/graphics/sprites/monsters/accessories tmwa-client-data/graphics/sprites/monsters/accessories]'''
 
* Path: '''[https://github.com/themanaworld/tmwa-client-data/tree/master/graphics/particles tmwa-client-data/graphics/particles]'''
Both graphics and XML files of accessories or particle effects are saved under the appropriate path.
 
 
Sometimes accessories and/or particle effects are used for creating a new mob. For example the Demonics Mouboo uses Antlers as accessory and a black smoke particle effect.
 
 
''(more information will follow)''




==monsters.xml==
==monsters.xml==
''(follows)''
* Path: '''[https://github.com/themanaworld/tmwa-client-data/blob/master/monsters.xml tmwa-client-data/monsters.xml]'''
 
In monsters.xml all pieces of a mob are put together so the client knows which files it should use for which mob. This includes the monster sprite, sfx, accessories and particle effects. Also it defines the mob's ID which is a different one than in the mob_db in server-data. For examples, descriptions and further information please check and compare with other entries in the monsters.xml and visit the [http://manaplus.org/monsters.xml wiki page of Manaplus].
 
[[Category:Development]]

Latest revision as of 22:29, 30 December 2022

This article is for reference purpose

The features described in this article are already implemented in the game. The article should describe how a certain aspect of the game currently works. You may of course edit this article to improve the description of the circumstances. Your opinions or improvement suggestions about the described aspects themself are of course appreciated, too. But please put these on the discussion page of this article to keep facts and fiction separated.

This article contains information for players or people interested in playing on the Classic server. If you are looking for information for The Mana World, go here The Mana World.
See also the Classic Portal


Construction-worker.png
This article is currently under construction.
Please note that this page is still under contruction. You can use it as reference, but note the red marked comments for unclear points.



This page shows how monsters are designed. Therefore two main points are relevant:

  • server-data which defines stats like HP and DEF, but also the behavior or walk and attack speed of the mob
  • and client-data which includes everything the client shows while playing like the graphic of a mob itself or sparkling particle effects and a file naming the authors of a graphic.


server-data

The required files in server-data list all kind of numbers that don't have anything to do with how a mob looks like (this is in client-data).

Only two files are relevant for this: the appropriate mob_db and mob_points.txt.

Additionally you can look at how other mobs are created as a reference.


mob_db

In this folder you will see the following files:

All information about stats like mob name, HP, DEF, but also walking and attack speed are listed in these mob_db.txt files. The numbers represent the level of the mobs listed in the files. So if you want to add a mob with level 75 you choose 60_79_mob_db.txt.


The mob_db.txt files have following structure:

//ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK,
Range2, Range3, Scale, Race, Element, Mode, Speed, Adelay, Amotion, Dmotion, Drop1id, Drop1per, Drop2id,
Drop2%, Drop3id, Drop3%, Drop4id, Drop4%, Drop5id, Drop5%, Drop6id, Drop6%, Drop7id, Drop7%, Drop8id, Drop8%,
Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per, MVP2id, MVP2per, MVP3id, MVP3per, mutationcount, mutationstrength

Note: In this wiki page it shows four lines, while it's one single line in the mob_db itself.


The columns mean:

  • ID: ID of the mob. It's not sure if the maximum possible number of IDs is 1,000 or 10,000.
  • Name: This first name is the DB name. When you use @spawn/@summon and you know the name of the mob, but not the ID, type this name instead. Try making the normal name the same as this so you wont get confused.
  • JName: This is the name the server shows. Actually it's always the same as Name.
  • LV: Level of the mob. It is added to DEX for "to hit" and to AGI for "flee".
  • HP: HP of the mob. Note that maximum is 65535 HP, if you enter more it starts from 0 again (e.g. 80000 HP will be 14464 HP then).
  • SP: SP of the mob, but currently unused (even though e.g. Luvia has 60 SP which have no effect). Please leave "0" here.
  • EXP: EXP granted by the mob, but this is calculated automatically. There are a few exceptions though.
  • JEXP: Job EXP granted by the mob. They are calculated by a tool.
  • Range1: Range of the mob attack. If set to 1 or 2, it will melee. 3 or more than 3 will set it to ranged.
  • ATK1: Minimum attack of the mob.
  • ATK2: Maximum attack of the mob. If no maximum attack defined here, the minimum attack will count as the absolute attack.
  • DEF: Defence of the mob in % against melee and ranged attacks.
  • MDEF: Magic Defence of the mob in %.
  • STR: Strength of the mob. It increases the minimum/maximum attack of the mob on a one-to-one basis.
  • AGI: Agility of the mob. This also defines the mob flee rate.
  • VIT: Vitality of the mob. 80% of this value is removed from damage taken after DEF is applied.
  • INT: Intelligence of the mob. This also defines its Magic Attack.
  • DEX: Dexterity of the mob. This also defines its hit rate.
  • LUK: Luck of the mob. This also defines its perfect dodge/lucky flee/perfect flee/lucky dodge rate (those are various combat chances shown in client as "miss" and "dodge").
  • Range2: Currently unused. It's said to be the maximum range for skills. Please leave "1" here.
  • Range3: Currently unused. It's said to be the sight limit for mobs. If set to 1000 or beyond, mobs will follow you all over the map. Please leave "1" here.
  • Scale: Currently unused. Please leave "1" here.
  • Race: Defines the mob's race, see below:
    • "0" = formless
    • "1" = undead
    • "2" = animal
    • "3" = plant
    • "4" = insect
    • "5" = fish
    • "6" = demon
    • "7" = demihuman
    • "8" = angel
    • "9" = dragon
  • Element: Defines the mob's element and the level of this element. The element number has 2 digits: xy, x = level of the element and y = element, see below:
    • x = "2" for element level 1
    • x = "4" for element level 2
    • x = "6" for element level 3
    • x = "8" for element level 4
    • y = "0" for neutral element
    • y = "1" for water element
    • y = "2" for earth element
    • y = "3" for fire element
    • y = "4" for wind element
    • y = "5" for poison element
    • y = "6" for holy element
    • y = "7" for shadow element
    • y = "8" for ghost element
    • y = "9" for undead element

-> e.g. for a level 3 fire mob grab the "6" for the element level 3 and the "3" for the fire element -> Element = 63.

  • Mode: This defines the mob's behavior, see below:
Those are the basic numbers:
canMove:        1
looter:         2 (picks up drops if not aggravated)
aggressive:     4
assist:         8 (helps another mob of its kind that got aggravated)
castsensor:    16 (currently without any effect)
Boss:          32 (effect unknown)
plant:         64 (infinite defense)
canAttack:    128
detector:     256 (currently without any effect)
changetarget: 512 (currently without any effect)

You add them up to make mob, e.g those:

Plant:                         64     64 for plant (can't attack (128) and can't move (1))                   Example: Mauve Plant, Cobalt Plant, etc.
Immobile, peaceful mob:       128    128 for canAttack (but not aggressive (4) and not able to move (1))     Example: Pink Flower
Standard, peaceful mob:       129    128 for canAttack + 1 for canMove                                       Example: Fluffy
Standard, aggressive mob:     133    128 for canAttack + 4 for aggressive + 1 for canMove                    Example: Snake
Peaceful, assisting mob:      137    128 for canAttack + 8 for assist + 1 for canMove                        Example: Moggun
Peaceful looter:              131    128 for canAttack + 2 for looter + 1 for canMove                        Example: Yellow Slime  
Aggressive looter:            135    128 for canAttack + 4 for aggressive + 2 for looter + 1 for canMove     Example: Red Slime
Boss mob:                     165    133 (128+4+1) for standard aggressive mob + 32 for Boss                 Example: Reaper
  • Speed: Walking speed of the mob. "1" is the fastest, "1000" is the lowest. "100" is the normal walking speed.
  • Adelay: Attack Delay, also known as ASPD. This defines how fast the mob hits. The lower the faster, but making it too low will cause lag when several mobs attack.
  • Amotion: Attack animation motion. Lower this value and the mob's attack will be displayed in higher fps (making it shorter, too).
  • Dmotion: Damage animation motion, same as Amotion but used to display the "I am hit" animation. Coincidentally, this same value is used to determine how long it is before the mob/player can move again. Endure is dMotion = "0".
  • Drop1id: The ID of an item the mob can drop.
  • Drop1per: The drop rate of Drop1ID. "10000" = 100%, "1000" = 10%, "100" = 1", "10" = 0.1%, "1" = 0.01%, etc.
  • Same counts for Drop2ID & Drop2per, Drop3ID & Drop3per, etc.
  • Item1: Currently unused. Please leave "0" here.
  • Item2: Currently unused. Please leave "0" here.
  • MEXP: Currently unused. Please leave "0" here.
  • ExpPer: Currently unused. Please leave "0" here.
  • MVP1id: Currently unused. Please leave "0" here.
  • MVP1per: Currently unused. Please leave "0" here.
  • Same counts for MVP2id & MVP2per and MVP3id & MVP3per.
  • mutationcount: Defines how many attributes can increase. Those attributes can be LV, HP, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Speed, Adelay, HP (double chance to modify hp, no chance to modify base EXP).
  • mutationstrength: Defines how much attributes can increase, e.g. "50" = 50%.

mob_points.txt


At the top ~120 lines (number will increase with each new mob) all mobs are listed that give monster points for Aidan And Ishi's Monster Points. Usually there is a line saying "// Add more here", showing that new entries should be added above. Please ignore the lower part in this file as it's used to define which mobs Sagatha considers as good or evil.


Note: Currently the array is full which means that no new mobs can be added here. Please better ask if you can add a mob here or if there is some other solution.


client-data

As mentioned at the top of this page client-data includes everything the client shows while playing and a file naming the authors and licenses of graphics.


This escpecially means graphics like monster sprites, XML files that define how the graphics are used (e.g. using a certain part of a graphic when a mob attacks but another part when it dies), accessories that can be put on a mob (e.g. a Reinboo is nothing else than a Mouboo with several accessories like Antlers), particle effects like the Demonic Mouboo's black smoke and the monster.xml that puts all those pieces together and defines the mob's name shown by the client.


Graphics (sprites) and license.txt


Please save finished graphics as .png with transparent background and name the license of them (dual licensing CC BY-SA 3.0 and GPLv2 are required - if you have questions please ask in our IRC development channel).


Note: This is the only point of monster design pure pixel artists have to take care of as they're "job" is only creating graphics, not making monster design. Everything else can be done by content developers or other contributors.


The content developer who creates a pull request for the mob will add the author and license(s) in license.txt.


XML files for the monster sprites

This is the same path as the graphics/sprites of mobs as they belong together.


These XML files define which part of a sprite is used for which movement of a mob.


(more information will follow)


Optional: accessories and particle effects

Both graphics and XML files of accessories or particle effects are saved under the appropriate path.


Sometimes accessories and/or particle effects are used for creating a new mob. For example the Demonics Mouboo uses Antlers as accessory and a black smoke particle effect.


(more information will follow)


monsters.xml

In monsters.xml all pieces of a mob are put together so the client knows which files it should use for which mob. This includes the monster sprite, sfx, accessories and particle effects. Also it defines the mob's ID which is a different one than in the mob_db in server-data. For examples, descriptions and further information please check and compare with other entries in the monsters.xml and visit the wiki page of Manaplus.