Code: https://github.com/EQMacEmu/Server/pull/449 Cavedude * Perl will no longer build by default in cmake. If you still need Perl, just change the option when cmake is run. * Fixed an issue where a NPC pet was aggroing while its owner has a reduced aggro range. * Pets will no longer seek out things to aggro, unless the target is a NPC and npc_aggro is set in npc_types for the pet. * Players will no longer receive worn off spell messages for spells their pets' cast. * Worn off spell messages will no longer occur when refreshing spells. * Bard speed movement song buffs will no longer overwrite speed movement spell buffs server side. * Detrimental spells will now properly block beneficial spells of the same effect server side. * Leaders and officers of guilds will no longer be notified of their status when logging in/zoning. * Added exceptions in CalcFocusEffect to allow the Affliction Haste line to work based on the client's internal checks. * Rain spells will now hit a maxiumium of 4 targets over the course of the spell, not including the client caster. * Cleaned up rain spell code a bit, renamed some variables. * Changed NPC resists to rain spells to match info provided by Torven on the forums. * Removed some strings our client doesn't have. * Revamped Player's Faction merged from EQEmu (Noudess) **See Link above Haynar * Pathing Optimizations * Added option to #path shownodes [around]. This will only show nodes around you at a range of 200. Useful when there are very large numbers of nodes in a zone. * When loading paths, the distances between neighbors will be recalculated. Previous path code did not update distances, when nodes were moved. So these could be off. * Distances between nodes will be pre-calculated when paths are loaded. These distances will be used to weight the nodes when calculating pathing. * Improved update path logic, to first try and cull a node on the tail, if target has moved closer, rather than recalculate entire path by default. * Fixed crashes in DetermineSpellTargets Torven * A maximum NPC chase distance of 600 has been implemented. NPCs will ignore players outside this range, but only static non-patrolling/roaming NPCs will forget the players when they return to their spawn points. * The rule 'MaxStunProcAggro' has been removed, and instead all procs with a non-damaging detrimental spell effect now have the hate from that effect capped at 400. * Spells cast from clicking inventory items is now also hate capped at 400. * AIYellForHelp() will now work on engaged NPCs. * Hate mods from items, spells and AAs will now work on detrimental spells. * The heal hate cap is now based on the target instead of the caster. * Witness hate fails are now 50%, up from 15%. * Animal NPCs will now only hate a player by 1 point for the first act done to them. * The 10 minute aggro timer implemented. NPCs will forget players who do no hate for 10 minutes. * A new hate bonus was added in the event no hate list entity is in melee range of the NPC, which scales by distance. * Atk debuffs now do 10 hate instead of scaling hate. * Scaling hate effects now stack hate with each other. (affects virtually no spells however) * All non-damaging detrimental spells cast by Bards now hate capped at 40 on NPCs level 20 or higher. * Buffs now do 9 hate; bard song buffs 2 hate. * Beneficial bard song pulses (not to be confused with ticks) will now aggro NPCs. * Taunt will now work on NPCs attacking low health targets. * Taunt no longer adds +1 hate. * Taunt now ignores temporary hate bonuses. Database: Robregen * Reduced max hits on corrupted giant in Rathe Mountain * Crag Spiders in East Karana should now drop more silks. * fixed ground spawn 'iron oxide' to pick up only 1 instead of 5. * increase aggro range for West Karana Ogres. * Added missing missing recipe for Dark Prince Regent, Teir'Dal Sovereign, and Imbued Mithril Studded. * increase spawntimer to 15 minutes for Larik Z'Vole spawngroup as well as increase his chance to spawn. Scripts: Cavedude * Removed Perl related scripts from Global folder as well as converted the one we need to Lua.