Database Editor:NPCs

From The Al`Kabor Project Wiki
Revision as of 19:40, 21 May 2016 by Torven (talk | contribs) (→‎Misc)
Jump to navigation Jump to search

Editing NPCs

General

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 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, Kunark and Velious 400 AC.
  • Give raid bosses in Luclin 900 AC.
  • Give raid bosses in PoP 600 AC. (some bosses, like Rallos Zek, should have more)
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 NPCs, this value should be zero. Raid bosses should have something like 0-200. Even many raid bosses parsed to having no higher ATK than common NPCs. (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. Very few NPCs should have a non-zero value here, even raid bosses. The only known NPCs with Accuracy that have been discovered were the Kael raid bosses.
  • 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 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

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 type and the numbers following the commas are optional values that augment how the special functions-- for example, the probability that the NPC will rampage in a given combat round.

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)

There are additional options that can be specified, but most are not applicable to a faithful recreation of Sony's content. See this EQEmu wiki entry for more information.

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


NPC Flags

  • Triple Attack: This grants an NPC a 10% chance to execute a third attack on a successful double attack of the main hand. When creating accurate classic content, all level 60+ warrior and monk NPCs should have this enabled, but nothing else. It's important to know that this can and should be used with 'Quad Attack' if the NPC should quad, and will result in rare five attack rounds when combined. This is accurate behavior to classic EQ. See this thread for more information.
  • Quad Attack: This will grant the NPC innate dual wield even when not wielding weapons.
  • Dual Wield: This (for now) has the exact same functionality as Quad Attack. All NPCs were given the ability to dual wield if two weapons ended up in their inventories, making this flag obsolete. This will likely be removed in the future and should not be used.
  • Magic Attack: Allows the NPC to hit magical targets. (such as willowisps) All NPCs level 10 and higher should have this checked.
  • Bane Attack: Allows the NPC to hit 'bane' NPCs like Seru or Emperor Ssraeshza.
  • Ranged Attack: This will make the NPC shoot arrows at their target if the target is out of melee range.
  • Unslowable, Unmezable, Uncharmable, Unstunable, Unsnarable, Unfearable, Unpacifiable: Various immunities to certain spell effects.
  • 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.
  • 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 NPC - Appearance.png


Misc

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:

Editing NPC Faction