Database Editor:NPCs

From The Al`Kabor Project Wiki
Jump to navigation Jump to search

Editing NPCs[edit]

General[edit]

Edit NPC - General.png

  • NPC Name: Use underscores in place of spaces.
  • Title:
  • Levels: NPCs can spawn with a random level from a specified range if 'Max Level' is a value greater than 'Level'.
  • Race: Determines which model the NPC will display as. The 'Texture' value under Appearance will determine which skin the model will use.
  • Class: Sets the NPC's class, or if the NPC is a banker or shopkeeper.
  • Bodytype: Determines which spells or abilities that may function on the NPC.


Vitals, Stats, Resists[edit]

Edit NPC - Vitals Stats Resists.png

  • HP, Mana: These are the maximum HP and mana values for the NPC.
  • AC: This is the absolute mitigation AC value for the NPC. Only equipped inventory AC is added to this value in mitigation calculations.
To get an idea of what this value should be for a given NPC when recreating Sony's content, see this thread on EQEmulator.
Rules of thumb: (which may change as more parses are done)
  • Give common level 50+ NPCs 200 AC. (for all expansions)
  • Give raid bosses in Classic and Kunark 300 AC.
  • Give raid bosses in Velious: 300 for easy bosses, 400 for mid-difficulty bosses, and 700 for ToV dragons and Kael bosses. AoW is 900.
  • Raid bosses in Luclin have around 600 to 1100 AC.
  • Raid bosses in PoP have varying AC; some have 200ish, some 400ish, some 600ish. Time bosses are 400-700. A lot of planar minis are actually 200ish.
It's important to note that currently this value is ignored for NPCs under level 53. Lower level NPCs parsed to very uniform and predictable mitigation values, and erroneous entries here can easily create very unbalanced NPCs, so it seemed better to hardcode it. Nevertheless it's a good idea when creating lower level NPCs to put in a proper AC value. Higher level NPCs will also use a minimum of 200 AC if the database entry is lower.
When setting a value for a low level NPC, use one of these formulae:
  • For an NPC level 1 or 2: MinLevel * 3 + 2
  • For an NPC level 3 to 14: MinLevel * 3
  • For an NPC level 15 to 50: MinLevel * 4.1 - 15
  • Scalerate: This was inherited from EQEmulator's code and not used for TAKP, but still functions. For those concerned with replicating Sony's content, this should be set to zero. This will grant higher statistics for NPCs who randomly roll a higher level than the minimum level if the NPC has a level range. The scaling is not accurate to Sony's content.
Note that there is still minor NPC scaling when this value is zero, and this small amount of scaling is in-line with how Sony scaled NPCs. When scalerate is zero, NPCs that roll higher in level from the minimum will gain an extra 2 max melee damage, 20 or 100 max hp (100 in PoP), and +3 AC per level.
  • Runspeed and Walkspeed: How fast the NPC moves. Set to 0 for permarooted NPCs. The values used in TAKP's database were collected from packets. When creating new NPCs from scratch, it's a good idea to use those imported TAKP NPCs as a reference.
  • ATK: This is extra ATK added to the NPC's base ATK. ATK increases the probability that the NPC will hit for maximum damage. For the vast majority of common NPCs this value should be zero. Raid bosses generally have either 0 or 100; melee-centric bosses have more. (AoW is 200. Some PoP stuff has around that or more) Many raid bosses parsed to having no higher ATK than common NPCs in fact. (keep in mind raid bosses will end up with slightly higher offense/ATK due to level)
  • Accuracy: This is extra to-hit added to the NPC to reduce the likelihood of it missing its target. This should be zero for the vast majority of common NPCs. Raid trash and raid bosses typically have +100. Kael bosses have very large accuracy modifiers. (something like 700) Drunder Rallos has a massive modifier (like 1300-1400) but he is unique.
  • See Invis, See ITU (Invis to Undead), See Hide, See IH (Improved Hide): A zero here means the NPC does not see; a '1' here means the NPC will always see. A value from 2-99 will grant the NPC a random chance to spawn being able to see from 2 to 99%.
  • Primary Statistics (STR, AGI, etc): These are entirely unused due to not knowing how they should be implemented and will likely never be used. Ignore them.
  • Resists: These values function just like player character values. Enter a value of 1000 to make a NPC immune to a resist type.
To give you some idea of what values to put here, remember this:
Immunity to all-or-nothing spells (i.e. snares, slows, debuffs) occurs at 200 resist value, and scales linearly up to that point. This means that a NPC (and player) gains a 1% chance to resist for every 2 points of resist. Note that level advantage or disadvantage increase or decrease this threshold for most level ranges.
Immunity to direct damage spells occurs at 600 resist value. Average damage per spell reduces linearly only up to 200 resist value, then reduces less severely up to the immunity threshold of 600 resist value.
Keep this in mind for direct damage spells:
  • 50% average spell damage occurs at 150 resist value.
  • 33% average spell damage occurs at 200 resist value.
  • 20% average spell damage occurs at 250 resist value.
  • Average spell damage on targets over 300 resist value is negligible. Note most wizard lure spells have a -300 adjust, so they will do full damage using those spells on 300 resist targets.
See this thread for more information on resist functionality.


Combat[edit]

Edit NPC - Combat.png

  • Min, Max Dmg: The minimum and maximum melee damage that the NPC will hit for.
  • HP/MP Regen: This is the in-combat and out-of-combat health and mana regen per tick (6 seconds) that the NPC will regenerate for.
  • Aggro Radius: This is the distance at which the NPC will attack faction appropriate targets. Note that this is the same unit that is displayed in ShowEQ and can easily be determined using that program when recreating Sony's content. Also note that this value is virtually always a multiple of 5 on Sony's servers.
  • Assist Radius: This is the distance at which the NPC will assist allies that are calling for help. A value of zero here will make the assist radius the same as the aggro radius.
  • Attack Count: This was inherited from EQEmulator and is unused on TAKP, but still functions. This is a means to set the number of main hand attacks per round for the NPC. The 'Quad Attack' and 'Triple attack' flags should be used instead when recreating Sony content. A value of -1 ensures that it is not used.
  • Atk Delay: This is the wait period between melee combat rounds for the NPC in tenths of seconds. (i.e. 10 = 1 second)
These values should be parsed when recreating Sony's content, however follow these guidelines if that is not possible:
  • Level 1-25 NPCs should have 30 atk delay regardless of expac. Nothing should have more than 30.
  • Classic old-world NPCs should have 30 atk delay, except for planar NPCs which should have 18-20.
  • Common Kunark through Luclin NPCs start gradually getting lower than 30 atk delays at level 25.
  • Level 50 common Kunark through Luclin NPCs have around 20 atk delay.
  • Level 60 common Kunark through Luclin NPCs have around 16 atk delay.
  • 18 atk delay was common for classic raid bosses.
  • Most common PoP NPCs have 20 atk delay. Some zones like Drunder have lower.
  • Raid NPCs in Velious start getting atk delays as low as 10.
  • Luclin raid bosses often had atk delays less than 10. (Aten Ha Ra is the fastest at ~6) Slowable bosses had lower atk delays.
  • Slow Mit: Slow Mitigation. This is how much slows are mitigated, in percent. 0 means slows are unmitigated.
  • 'Mostly Successful' is a range of 1 to ~40 (cutoff point uncertain)
  • 'Partially Successful' is a range of ~40 to 80
  • 'Slightly Successful' is a range of 80-99
  • Ignore Distance: This is the distance at which NPCs will stop chasing players and go home as if they were unaggro. This should be 1000 for most zones, although certain zones had shorter distances. See this EQEmulator forum thread for a list.
  • Loot ID, Spells ID: These are the database IDs for the loot and spells the NPC has. Leave these alone and use the editor menus instead.
  • Heal Scale, Spell Scale: These are unused for TAKP and were inherited from EQEmulator. These allow you to increase or reduce how much the NPC nukes players for and heals land on it for. For non-custom servers, leave these at 100.


NPC Special Attacks/Abilities[edit]

EQEmulator and TAKP's editor has a user unfriendly way of assigning special abilities to NPCs.

Each special ability has a number associated with it. Summon is 1, Enrage is 2, Rampage is 3, etc. Special abilities are stored in the database as a single string like this: "1,1^3,1,25^5,1,10^10,1". The carrots delimit each special. The first number is the special's ID number, followed by a 1 indicating to enable it, followed by optional values; all of which are separated by commas.

That's probably still confusing, so just look at these common examples:

  • To make an NPC summon, put 1,1 in the Summon box.
  • To make an NPC enrage, put 2,1 in the Enrage box.
  • To make an NPC rampage, put 3,1,X in the Rampage box, but replace X with the percent chance to rampage in a given combat round. Flurry and AE ramp work the same way. If you omit the third value, then the default rates will be 20% per combat round.
  • To make an NPC flee at a precise health percentile, put 37,1,X in the Flee Percent box. (again, replace X with the percentile)

Rampage has three optional parameters: chance percent (default 20), max range (default 75), and max damage percent (default 100). Flurry has one optional parameter: chance percent (default 20). AoE (Wild) Rampage has three optional parameters: chance percent (default 20), max targets (default 999), and max damage percent (default 100).

Enabling the Corpse Camper ability will cause the NPC to not go home when deaggroed or how long it will loiter. The parameters work slightly differently for this: the 1 followed by the special ID number is also the max loiter time in seconds if the number is greater than 1. The optional parameter after that is the minimum loiter time. Examples: 49,600,300 (camp 5 to 10 minutes); 49,1 (camp forever)

Tunnel Vision, Leashed, Tethered, and Chase Distance are inherited from EQEmulator and not used on TAKP but may still function.


NPC Flags[edit]

  • Triple Attack: This is now hardcoded, so checking this does nothing.
  • Innate Dual Wield: This will make the NPC quad attack even without weapons.
  • Magic Attack: This is now hardcoded for level 10+ NPCs. However if you need a level 1-9 NPC to be able to hit NPCs that are non-magic melee immune, then check this.
  • Bane Attack: Allows the NPC to hit 'bane' NPCs like Seru or Emperor Ssraeshza.
  • Do Not Equip Items: This will prevent the NPC from equipping items that it spawns with or is traded. This is generally needed for certain Luclin and PoP era NPCs that shouldn't equip weapons. All Druid charmable NPCs in PoP should have this checked.
  • Ranged Attack: This will make the NPC shoot arrows at their target if the target is out of melee range.
  • Unslowable, Immune to Haste, Unmezable, Uncharmable, Unstunable, Unsnarable, Unfearable, Unpacifiable: Various immunities to certain spell effects.
  • Reverse Slow: This will haste the NPC instead of slowing it when slow spells land on it, which was a feature a handful of NPCs had in the early PoP era.
  • Immune to Dispel: Makes dispels do nothing on the NPC.
  • No Harm from Players: Prevents players from being able to attack the NPC in any way.
  • Disable Melee: Turns off the ability for the NPC to melee attack. The NPC will still continue to chase players around while aggro.
  • Use Warrior Skills: This will grant the NPC warrior level skills of Dodge, Parry, Riposte, and Bash regardless of the selected class. Many NPCs that were casters still had these abilities on Sony's servers.
  • Block handins if KOS: Used for quest NPCs. Blocks trades from players that are KOS to the NPC.
  • PC Deathblow Leaves Corpse: Forces a corpse to appear when this NPC is slain from a player's deathblow even when NPCs have done more damage to it. Loot rights are awarded to a player but exp is not. Level 55+ NPCs all have this behavior even without this checked.
  • Resist Ranged Spells: This will turn the NPC into a 'belly caster' mob that requires players to get in melee range of it to land resistable spells on it.
  • Immune to Taunt: Self explanatory, but the warrior AA of Area Taunt will be made to function still in a future commit.
  • Immune to Melee: Makes the NPC immune to all forms of melee damage.
  • Immune to Magic: Makes the NPC immune to all forms of spells, even unresistable spells.
  • Immune to Fleeing: Prevents this NPC from fleeing under any circumstances.
  • Immune to non-Magical Melee: Prevents non-magic weapons from damaging this NPC. Virtually all raid bosses should have this enabled. This was very commonly applied to high level NPCs.
  • Immune to non-Bane Melee: Makes the NPC immune from non-bane weapons, such as Seru and Emperor Ssraeshza.
  • Will Not Aggro: Prevents anything from getting on this NPC's hate list.
  • Immune to Aggro: Prevents this NPC from getting on hate lists.
  • See through Feign Death: Self explanatory.
  • Can Aggro NPCs: Allows this NPC to attack faction appropriate NPCs within its aggro radius. NPCs will not look for NPCs to attack at all if this is unchecked.
  • Does NOT buff/heal friends: Prevents NPCs from buffing or healing faction allies.
  • Always Flee: Forces the NPC to flee on low health even if allies are nearby.
  • Always Flee if Low Con: Forces the NPC to flee on low health even if allies are nearby, but only if the NPC cons green to the top hater.
  • No Loitering: Prevents the NPC from hanging around after deaggroing. This makes FD splitting impossible.
  • Allow Beneficial: Allow beneficial spells from players to land on this NPC.
  • Allow Tank: Allows NPCs to tank this NPC if a player is in melee range. Normally NPCs will ignore all NPCs/pets if any hated player is inside melee range of it.
  • Proximity Aggro: When this is checked, the NPC will continue to search for nearby targets to add to its hate list even after aggroing on something, but it will only add targets that are within melee range of it. This is common behavior for undead and old world NPCs.
  • Always Call for Help: For most NPCs, if an NPC aggros as the result of assisting another NPC, then it will not call for help even while chasing the player until the player attacks it. This flag forces the NPC to call for help in all circumstances. Enable this for raid NPCs.

Appearance[edit]

Edit NPC - Appearance.png

  • Size: Sets the NPC's size. Changing this value also changes an NPC's hit box size and its center point Z value above the floor.
  • Face, Haircolor, Hairstyle, Eyecolor, Eyecolor2, Beard, Beardcolor: Sets the NPC's visual characteristics for NPCs that have them. (i.e. humans)
  • Melee1, Melee2: Gives the NPC 'phantom' weapons that will appear in their hands but leave nothing on the corpse.
  • Armor Red, Armor Green, Armor Blue: The RGB color of the NPC's armor.
  • Light Source: Gives the NPC an innate light source.
  • Texture: NPC models may have multiple skins. This changes the NPC's skin (i.e. The Statue of Rallos Zek uses texture 1, while The Avatar of War uses texture 0)
  • Helm, Arm, Bracer, Hand, Leg, Feet, Chest Textures: Gives the NPC 'phantom' armor like melee1 and melee2 gives them phantom weapons.
  • Melee1 and Melee2 Type: Sets the attack animations for the NPC's main hand and offhand. This should be set to Hand to Hand for most NPCs.

Misc[edit]

Edit NPC - Misc.png

  • Spawn Limit: If this is non-zero, then this limits the number of these NPCs that can exist in the zone simultaneously.
  • Version:
  • Emote: This is the database ID for the emote set that this NPC will use. Ignore this and use the editor menus.
  • No Target:
  • Raid Target:
  • Encounter:
  • Enable Quest Globals:
  • NPC is Findable:
  • NPC is Trackable:
  • NPC is a Pet:
  • Corpse does not Unlock:
  • Unique by Name:
  • Underwater NPC:
  • Destructible Object:
  • Has Quest File:
  • Ignore Despawn: