Skip to content



  • Derision UF: Tweaked Arrow_Struct and implemented new OPCode for changing player size.


  • Derision UF: Fix for extended duration buffs not reporting correctly after first tic.


  • Derision Added a new table aa_required_level_cost to allow specifying a required level and cost for each rank of an AA.
  • Derision Implemented spell formulas required by AA versions of Harm Touch/Lay on Hands.
  • Caryatis ShowStatWindow was changed to ShowWindow and had some features added
  • Caryatis title_type = 0 for custom titles, 1 for first and last name and 2 for guild titles
  • Caryatis Implemented a limit on how low a weapon speed can be when procs are calculated to reflect the innate swing speed limit

Required SQL:


If there is no entry in this new table for a given rank of an AA, then the level (class_type) and cost_inc from altadv_vars will be used as normal.


  • Derision /corpsedrag & /corpsedrop. Optional SQL: utils/sql/svn/1784_optional_corpsedrag_rules.sql


  • Derision Underfoot: Correct OP_SwapSpell
  • Derision SoD/Underfoot: List of traders in /bazaar dropdown now works.
  • Derision Implemented Advanced Tracking AA.


  • Trevius (Orkim) Zone Short Name restriction fixes.


  • Derision HoT: OP_SendFindableNPCs
  • gaeorn bugfix for quest::movegrp to work with raids. no really, its fixed this time


  • Trevius Added an extra check for buffs while zoning to make sure it is a valid spell being applied.
  • Derision Underfoot * Fix for /dismount not dispelling horse and Group Leadership fixes (opcode changes).
  • Congdar fix for bot trading exploits


  • gaeorn fixed underfoot to properly handle new packet struct for LoadSpellSet_Struct
  • Derision Underfoot * UCS should now retain /announce setting properly.


  • gaeorn bugfix for quest::movegrp to work with raids
  • Derision UCS Support for Underfoot and later clients
  • Congdar bot item trading fixes for lore, dual wield, augmenting, inspecting


  • gaeorn fixed quest::movegrp to work with raids
  • gaeorn fixed casting group spells in a raid
  • gaeorn (vanicae) code support for tactical mastery warrior aa
  • gaeorn (vanicae) code support for touch of the divine cleric aa
  • gaeorn (vanicae) item loot messages when in a raid
  • gaeorn (Wolftousen) fixed spawn variance


  • Derision Updated HoT opcodes following patch.


  • Trevius Resolved a potential zone crash with memorizing spells.
  • Trevius Added $item1_charges, and $item1_attuned exports for all 4 turn in slots item1-item4 for EVENT_ITEM.
  • Trevius Fixed GetMinDMG() so it should work now.


  • Caryatis Fix for SpellResistChance effect.

Required SQL: utils/sql/svn/1755_required_sql_fear_resist_aas.sql


  • Caryatis Fix for Reflect Spells and Healing Adept AAs
  • Caryatis Showstats has been updated.

Required SQL: utils/sql/svn/1754_required_sql_healing_adept_aa_fix.sql

Optional SQL: utils/sql/svn/1753_optional_haste_cap_rule.sql


  • Trevius SoF+ * Stacked Potions will no longer show a factor of how many you have remaining in the potion belt.
  • Trevius Increased the max spell ID allowed in the spell book from 20000 to 50000.
  • Derision Underfoot. Corrected PP for LDoN points, Tribute and Leadership AA. Corrected offset comments/unknown names.


  • Derision Renamed Live patch to Underfoot.
  • Derision Added basic support for current live patch (HoT).
  • Caryatis Reverted Bot changes due to crash issues
  • Caryatis Reverted physical resist changes until we can find a more live-like solution
  • Caryatis Gender Illusions are now functional
  • Caryatis Implemented SE_Twinproc and Reflect spells


HoT support is limited to being able to enter a zone with spawns and items. Combat, spells, moving items around, basically anything other than zoning, spawns, initial inventory load and movement will NOT work. Note ZoneUnavailable is not implemented, so let at least one dynamic zone finish booting before attempting to enter. This support is mainly to allow people to admire HoT zones, full playable HoT support is not planned at this time.

Optional SQL for zone and zonepoint table (thanks to robregen for the collects):


For spawns etc, go to the PEQ logs repo for data collected by robregen.

Optional SQL:



  • Trevius The Rule, NPC:ReturnNonQuestNoDropItems, will now also return items that have been Attuned to a character as well as normal NO DROP items if set to true.
  • Trevius Fixed an issue with tradeskill auto-combines.
  • Caryatis Fix for SpellResistChance, Hit-limited focus effects(eg Gift of Mana) & SpellDamageShield(no longer will trigger on beneficial spells).
  • Caryatis Showstats window will not show mana fields if the class does not use mana(to preserve the already shaky alignment).
  • Caryatis (bad_captain) Removed the level bonus granted to standing mana regen, it was not like live and diminished the need to sit or use a horse considerably.
  • Caryatis (bad_captain) Bots have been updated, see forums for complete details(new command: #bot showstats).
  • Caryatis (Secrets) Haste values can exceed 127%(ie Can o' Whoop Ass).

Optional SQL: utils/sql/svn/1746_optional_sql_bot_manaregen


  • JJ Updated waypoint handling to properly account for aggro and quest engagements. NPCs will no longer skip waypoints when distracted from their grid path when resuming wandering.


  • Caryatis Implemented SE_SkillDamageAmount & SE_Amnesia(silence vs disciplines), SE_CripplingBlow
  • Caryatis Updated Silence so that is no longer prevents the use of disciplines(like live)


  • Caryatis Fix for discs being resisted too much, beneficial spells and resurrection effects will no longer be resistable.
  • Caryatis Fix for CriticalHitChance being calculated incorrectly, leading to massively increased crit rates.
  • Caryatis Fix for Healrate effect
  • Caryatis Implemented ManaAbsorbPercentDamage, ReduceSkillTimer, HpToMana and LimitSpellGroup effects.
  • Caryatis Updated DamageModifier effect to be more robust.

Required SQL: utils/sql/svn/1737_required_sql_rule_and_aa_update

Optional SQL: utils/sql/svn/1736_optional_sql_feral_swipe


  • Derision Underfoot: Buff removal should now work correctly.
  • Derision Underfoot: Fixed Pet Buff window.
  • Trevius Fixed quest::setnextinchpevent().
  • Trevius Added Player EVENT_GROUP_CHANGE that exports variables $grouped and $raided when changes in group or raid status are made
  • Trevius Added Perl Client MarkCompassLoc(x, y, z) and ClearCompassMark().
  • Trevius Minor rewrite to EVENT_HP again to use less variables.


  • Derision Corrected OP_Track for Underfoot/June 8 2010 Client.
  • Derision Corrected FindPersonRequest_Struct for Underfoot/June 8 2010 Client.
  • Derision Buying AAs seems to work better now for Underfoot/June 8 2010 Client.
  • Derision Most Pet commands should now work for Underfoot/June 8 2010 Client.
  • Caryatis Corruption resist is now fully functional
  • Caryatis Showstats has been updated.
  • Caryatis Implemented SpellOnKill and CriticalDamageMob effects.
  • Caryatis Fix for CriticalSpellChance

Required SQL: utils/sql/svn/1723_required_sql_corruption.sql

Optional SQL: utils/sql/svn/1723_optional_sql_new_stats_window_rule.sql


  • Caryatis Added support for HealAmt, SpellDmg, Clairvoyance, DS Mitigation, SE_SpellDamageShield, SE_SpellDamage
  • Caryatis Heroics fully supported now(points in brackets are how many Heroics to achieve a gain)
  • Caryatis hInt = For int-based casters, increases mana pool, mana regen(25), and the maximum amount of mana regen a character can have(25).
  • Caryatis hWis = For wis-based casters, increases mana pool, mana regen(25), and the maximum amount of mana regen a character can have(25).
  • Caryatis hStr = Increases endurance pool, endurance regen(25), and the maximum amount of endurance regen a character can have(25). Also increases damage done by melee attacks(10) and improves the bonus granted to armor class while using a shield(2).
  • Caryatis hSta = Increases hit point pool, hit point regen(25), and the maximum amount of hit point regen a character can have(25). Also increases endurance pool, endurance regen(25), and the maximum amount of endurance regen a character can have(25).
  • Caryatis hAgi = Increases endurance pool, endurance regen(25), and the maximum amount of endurance regen a character can have(25). Also increases the chance to dodge an attack(25), grants a bonus to defense skill(10).
  • Caryatis hDex = Increases endurance pool, endurance regen(25), and the maximum amount of endurance regen a character can have(25). Also increases damage done by ranged attacks(1), improves chance to successfully assassinate or headshot(10), and improves the chance to riposte, block, and parry incoming attacks(25).
  • Caryatis hCha = Improves reaction rolls with some NPCs(25) and increases the amount of faction you gain or lose when faction is adjusted(5).
  • Caryatis AA Focus revamped to support new effects
  • Caryatis Disciplines will no longer be dispelled

Optional SQL: utils/sql/svn/1719_optional_triggerOnCastAAs.sql


  • Caryatis Implemented MaxHPChange, SkillDmgTaken, Endurance Pool and Stun Resist.

Optional SQL: utils/sql/svn/1717_optional_rule_bash_stun_chance.sql


  • Congdar Fixed OP_InterruptCast for newer clients(SoF, SoD, Live). You'll now see Npc's and other players cast interrupted message properly.


  • Trevius Fixed an issue with EVENT_HP that was sending $hpevent with a value of -1 in certain cases.


  • Trevius Added new Perl Client GetAAExp() quest object.
  • Trevius Corrected the level based Experience quest command and task reward functionality to not affect AA Experience.


  • KLS Added NPC::AddAISpell() and NPC::RemoveAISpell() to perl NPC object.
  • KLS Added field to limit AAs based on account creation time.
  • KLS Implemented fade on meditate field for spells like the higher yaulp spells (it will fade just before a regen tic).
  • JJ Cleaned up Win32 build locations, moved eqlaunch into build folder, and set project dependencies to guarantee build order in Windows.


  • Trevius Added optional slot_id field to Client SummonItem(item_id, charges, attune, aug1, aug2, aug3, aug4, aug5, slot_id) * Default is slot 30 (cursor).


  • Trevius Added Perl Item IsAttuned() and GetCharges() quest commands.
  • Trevius Added Attune and Aug fields to Client SummonItem(item_id, charges, attune, aug1, aug2, aug3, aug4, aug5)


  • Trevius NPCs can now load a file from the /quests/zone_short_name/ of the zone they are in.


  • Trevius Added Race 502 Boats to be a controllable boat race.


  • Trevius Added Perl Client AddLevelBasedExp(exp_percentage, max_level=0) command to add experience as a percentage of the client's current level up to the max level entered.
  • Trevius Level based experience percentage rewards for tasks can now be set using a negative value of the max level * 100 + experience percent (IE. -510 for 10% exp up to level 5).


  • Trevius Object model names can now use up to 32 characters.
  • Trevius Zone short names can now use up to 32 characters.
  • Trevius Added extra checks before AIYellForHelp call is made to prevent potential issues.
  • Secrets Added Perl Client GetIP() and NPC GetMinDMG() commands.
  • KLS Adjust procs: only check once per round now instead of once per hit, this will result in lower proc rates especially for dual wielding classes but this is how it should behave. Adjust your proc per minute rule up if you desire higher proc rates under this change.
  • KLS Directional Cone Spells; still needs a little work as it isn't 100% accurate but it works enough that there's no point in me sitting on it.

Required SQL: utils/sql/svn/1696_modify_zone_and_object_tables.sql


  • Derision Fixed bug in SoD+ tracking.
  • JJ Removed redundant namespace usage.


  • Derision Players disconnected with the Respawn Window up will now return to bind.
  • Derision Players rezzed in an instance via the Respawn Window will no longer zone.
  • Derision Implemented Blocked Buffs.
  • Derision Fixed Blocked Buff spam every time you zone.
  • Derision Implemented OP_ClearBlockedBuffs.


  • Derision Fixed crash in combat logging when a player was DoTted, zoned and then died from the DoT.
  • Derision Spells should no longer land on players with the Respawn Window up (e.g. AE DoTs, Evac spells).
  • Derision The client should now ummem spells on death when the Respawn Window is in use.


  • WildcardX Updated bots.sql to catch a couple database object changes that affected bots over the last months.


  • Derision Only one Rez confirmation box is allowed to be up at a time (per character).
  • Derision Enabled Respawn Window for SoF and later clients. Rule disabled by default.
  • Derision Respawn Window only pops-up if a corpse is left (so #gm off to test it).

Optional SQL (and to enable it):



  • Congdar Remove obsolete bot code, fix compile warning


  • Congdar Bots can now equip multi slot items in the desired slot. The first available empty slot will get the item.
  • Congdar Bots now check Lore and Dual Wield with the new multi slot item code.


  • JJ Fix to prevent NPCs using death animation from facing target during EVENT_SAY and EVENT_ITEM
  • Derision Fix for missing tradeskill objects etc in SoF and later clients.
  • Derision Reverted stun resist changes.


  • Derision /guildstatus now works for SoD and UF.
  • Caryatis Spells with a Melee Lifetap effect now cap the heal at the percentage specified in the spell data.
  • Caryatis Work on stun resists.
  • Vanicae Fix for potential world crash in online guild-member processing.


  • Vanicae Fix for guild management window updates
  • wheeljack Fix for missing tradeskill favorites
  • Vanicae Tribute Focus, SE_DivineSave, SE_Flurry, SE_Accuracy
  • wheeljack Fix for losing items in world containers
  • pfyon quest::createBot()
  • Derision None potions that are potion belt enabled (mod rods etc) should now work from the potion belt when they are inside a bag.
  • Derision Recast timers should now be honoured for clicky items with a single charge (e.g. Modulating Rod).
  • gaeorn more fixes for newer gcc/glib


  • gaeorn fixes for new stricter version of gcc/glib


  • JJ ChannelMessageSend in Client now cleans the "from" name to allow NPCs to be used as the message sender.


  • Trevius Added to Perl Mob: SetSlotTint(material_slot, red_tint, green_tint, blue_tint).
  • Trevius Added to Perl Mob: WearChange(material_slot, texture, color).
  • Trevius Added to Perl Mob: GetArmorTint(material_slot).
  • Trevius Changed EVENT_COMBAT to now export the normal client variables when combat state changes to 1.


  • Derision Fixed potential buffer overrun in item_struct. NOTE: Linux users may have to increase shmmax.
  • Trevius Added to Perl Mob: SetGlobal(varname, newvalue, options, duration, other=NULL).
  • Trevius Added to Perl Mob: TarGlobal(varname, value, duration, npcid, charid, zoneid).
  • Trevius Added to Perl Mob: DelGlobal(varname).


  • Trevius Added new Perl Mob quest object GetItemStat(itemid, stat).
  • Trevius Added new Perl Client quest object NPCSpawn(target_npc, option, respawntime=1200) to do create, add, update, remove, and deletes just like #npcspawn.
  • Trevius Fixed a potential crash while augmenting items.
  • Trevius Fixed a crash caused by using tradeskill container objects created with the CreateGroundObjectFromModel() quest command.
  • Trevius Added an optional decay time setting for quest::creategroundobjectfrommodel(modelname, x, y, z, heading, [type], [decay_time]).
  • Trevius Decay time is now optional for quest::creategroundobject(itemid, x, y, z, heading, [decaytime]) (default is not to decay at all).


  • JJ Updated PP comments/unknowns to match size changes over time


  • gaeorn mana updates for group should be sent to SoD clients when in raid now


  • Trevius EVENT_TARGET_CHANGE now also works for player scripts.
  • Trevius Added new EVENT_ITEM_CLICK for SoF+ clients. File naming format is: /quests/items/ (I.E. /quests/items/
  • Trevius Effect Name overrides (SoF+) for the following item table fields: clickname, procname, wornname, focusname, or scrollname.
  • Trevius Added to Perl Object: SetEntityVariable(id, var), EntityVariableExists(id), and GetEntityVariable(id).
  • Trevius Added Rule UseRaceClassExpBonuses to allow choosing whether to use the Racial and Class Experience Bonuses (Default: True).

OPTIONAL SQL: utils/sql/svn/1625_optional_rule_class_race_exp_bonus.sql


  • Derision Fixed crash when a mob died to a DoT in a zone where buff timers are suspended.


  • Derision Spells/Songs with a Locate Corpse effect now work in SoD and later clients.
  • Derision Spells/Songs with a Sense Undead/Summoned/Animal effect now work in SoD and later clients.
  • Trevius Exported Perl Mob SetCurrentWP(waypoint), Perl NPC SetSaveWaypoint(waypoint), and Perl Client GetTotalSecondsPlayed().
  • Trevius Changed grid from int32 to sint32 since grid pausing requires negative values.


  • Derision Elemental Draw should now work for SoD.


  • Derision Added check for invalid neighbour nodes on loading .path files.
  • wheeljack Fixed Bazaar search for items with focus effects.
  • wheeljack Buff Timer Suspension.
  • wheeljack Tradeskill messages for missing components.


ALTER TABLE zone ADD suspendbuffs tinyint(1) unsigned NOT NULL DEFAULT 0; UPDATE zone SET suspendbuffs = 1 WHERE short_name IN ('guildlobby', 'guildhall');


  • Trevius Exported the following to Perl Mob: GetWaypointX(), GetWaypointY(), GetWaypointZ(), GetWaypointH(), GetWaypointPause(), and GetWaypointID().


  • Trevius Exported SpellFinished(spell_id, spell_target = this, mana_cost = 0) to Perl Mob.


  • Trevius (Secrets) Added quest::creategroundobjectfrommodel(modelname, x, y, z, heading, [type]) command.
  • Trevius (Secrets) quest::creategroundobject(itemid, x, y, z, heading) now returns object ID.
  • Trevius (Secrets) Added Object List Iteration functions GetObjectByDBID(id), GetObjectByID(id), GetObjectList().
  • Trevius (Secrets) exported Objects to Perl with the following *commands
  IsGroundSpawn(), Close(), Delete(reset_state=false), StartDecay(), DeleteItem(index), IsObject(),
  Save(), SetID(set_id), ClearUser(), DBID(), GetID(), GetX(), GetY(), GetZ(), GetHeading(), VarSave(),
  GetType(), SetType(type), GetIcon(), SetIcon(icon), GetItemID(), SetItemID(itemid), SetLocation(x, y, z),
  SetX(XPos), SetY(YPos), SetZ(ZPos), SetHeading(heading), SetModelName(name), GetModelName(), Repop(), Depop().


  • Trevius (Caryatis) Added the following Spell Effects:
  SE_SympatheticProc, SE_ImprovedSpellEffect, SE_SpellVulnerability, SE_SpellTrigger
  SE_InterruptCasting, SE_CastOnWearoff, SE_ApplyEffect, SE_BossSpellTrigger, SE_Twincast
  SE_HealRate, SE_SkillDamageTaken, SE_EffectOnFade, SE_MaxHPChange, and SE_EndurancePool.


  • gaeorn fix for foraging


  • JJ Added events for tradeskill failure and success.
  • JJ Added quest flag for tradeskills to be handled by perl. Required SQL in the utils folder.


  • Trevius Hopefully fixed the issue for SoF+ clients alcohol consumption causing item loss.


  • Derision Azone2 * Fixed crash processing fungalforest and possibly other Underfoot V4 .eqg zones.
  • Derision Azone2 * Culled placeable shrooms to reduce fungalforest .map from ~80 to ~20MB.


  • Trevius Live * Environmental damage is now functional on this client.


  • gaeorn fixed confusing and likely flawed logic in GetZoneForage()


  • Trevius Fix to prevent a potential item loss bug.
  • Trevius Fix for Nimbus Particle Effects to make them appear properly.
  • JJ Added $oncursor as an export to the parser.
  • JJ Added ability for NPCs to use heading in waypoint table. Added option to use heading when adding waypoints in game (-h switch). NPCs will use in-stride heading if the default heading (-1) is used. Optional SQL included in the utils folder.


  • Trevius EVENT_CLICKDOOR should now always show the correct door ID from the $doorid export.
  • Trevius Doors with IDs higher than 126 should now work.
  • Trevius Added perm_effect and client fields to SpellEffect(effect, [duration, finish_delay, zone_wide, unk20, perm_effect, client]).


  • KLS Instances can use spawn conditions now, requires SQL change in required sql folder. Also updating will wipe all current spawn condition variables so you'll want to make sure they're set in the new table. (ps instance_id=0 for base zones!)
  • KLS Added expedition expire warning to dynamic zones that aren't LDoNs, requires conf change for SoF/SoD.


  • gaeorn replaced calls to rand() with calls to MakeRandomInt()


  • KLS Added command #maxskills to max your skills instead of having to #setskill everything for testing.
  • KLS Implemented partial melee and spell runes.
  • KLS Right click tome learning in sof/sod.
  • KLS Adjusted AC; should now be more sensitive to changes in gear as well as implemented softcaps.


  • Trevius Stopped NPCs from sending an appearance packet for each WP they arrive at or depart from.


  • Trevius Nimbus particle effects now show correctly from spells/clickies.
  • Trevius Removed the ability to stack the same Nimbus particle effect repeatedly.
  • Trevius Existing Nimbus particle effects are now sent to players as they zone in.
  • Trevius EVENT_SPAWN should work better for more quest commands now. Please report any bugs/issues with this change.
  • Trevius SoF/SoD/Live * Stand state appearances are now set in the spawn struct.

REQUIRED SQL: utils/sql/svn/1548_nimbuseffect_required.sql


  • gaeorn fixed possible bug with unlocking cursed containers in LDoN
  • Trevius SoF/SoD/Live * Corrected the item structures to allow summonedflag setting to show on items.
  • Trevius SoD/Live * Identified Clairvoyance and added it to load from the DB to be shown on items.
  • Trevius SoD * Possible fix for empty corpse looting bugging clients.
  • gaeorn fixed another issue with the integer transformation for the RNG where it was not converting from a double float properly


  • Secrets Characters with HPs higher than 30k will no longer be set back to 30k current health when zoning.
  • gaeorn fixed integer transformation for RNG as it previously would only return the high value of the low to high range if the RNG returned exactly 0xffffffff
  • Trevius The following item fields now load from the database: EliteMaterial LDoNSellBackRate ScriptFileID ExpendableArrow QuestItemFlag.
  • Trevius Identified some unknown fields in the database from 13th floor findings, and removed multiple unused fields.
  • Trevius The summonedflag field is copied from UNK109 field.

REQUIRED SQL: utils/sql/svn/1542_items_table_cleanup.sql


  • gaeorn modified method of transforming RNG output into a range of integers. this should improve the equalization of the distribution of the returned random numbers


  • Trevius Added new Perl Mob quest object SpellEffect(effect, [duration, finish_delay, zone_wide, unk20, unk26]) for sending a spell paticle effects without casting a spell.
  • gaeorn replaced random number generator with the first one on this page:


  • Trevius Added new quest::resettaskactivity(task, activity) command for resetting a task activity done count to 0.


  • gaeorn compile fixes for linux


  • KLS Added spell quests. Spell quests reside in {EQEMU_DIR}/quests/spells/ and are in the format of {spell_id}.pl. (ex: C:/eqemu/quests/spells/ for greater heal)
  • KLS Spell quests allow the overriding of specific spell effect. If a spell quest and sub exists then a spell's effect aside from buff duration and knockback is not used and instead the script is executed.
  • KLS Two acceptable subs for spell quests: EVENT_SPELL_EFFECT_CLIENT and EVENT_SPELL_EFFECT_NPC and has a special export of $caster_id.


  • Trevius Unreverted the revert from R1502 and added a fix for the tradeskill container combine issue.
  • Trevius Fixed a crash when using NukeItem on the Power Source slot for a Titanium client.


  • KLS Many changes..
  • KLS Rewrote much of the adventure subsystem; moved from zone based calculations to world based.
  • KLS Implemented adventure leaderboard (sort by # kills only)
  • KLS Custom merchant (Adventure/PvP/Discord) purchases should attempt to put the item in a player's inventory before the cursor.
  • KLS Corpses should move to an adventure GY if possible on the end of an adventure.
  • KLS Adventures should always award points to zoning/offline players when they reconnect now.
  • KLS Collect adventures will populate the zone with enough dropped items always automatically now, relying on drop rates is now out of the picture.
  • KLS Mech. treasure chests will now be affectable by spells and destroyable; at least until we figure out the spawn structure on SoF and beyond to enable them correctly with rogue skills.
  • KLS Addressed an issue that made chests slightly harder to open than they were intended to be.
  • KLS Addressed a few issues with raids not being duplicated along with groups in the code. This should be apparent in the spell code.
  • KLS Added a default ruleset to the zone table and added a version to the zone table. Version will default to 0 if non is found (base zone).
  • KLS OP_MoveItem will ignore requests from a slot to the same slot.
  • KLS Lowered the quick loot timer significantly, hopefully loot all works better.
  • KLS Several memory leak and exploit fixes.
  • KLS This could all probably use a bit more testing that I was able to give it as one person, I believe I got most if not all the crash bugs though!


  • Trevius Exported ModifyNPCStat(identifier, newValue) to Perl NPC.
  • Trevius Added a check for destroying items to ensure the source slot is the cursor.
  • Trevius Moved the SwapItem() check to verify the source and destination slots are both valid before doing anything else.
  • Trevius The client will now be updated to delete an item if the server does not see an item in that slot while moving items around.


  • Trevius Added new Perl Mob quest object CameraEffect(duration, intensity, singleclient). Duration is in ms, intensity is from 0 to 10, and singleclient can be set to a client.


  • Trevius Live * Corrected the end of the Item Structure.


  • Trevius Live * Updated more Live Opcodes. The list should be about 95%+ accurate now. Live Client is very playable now.
  • Trevius Increased the race max to 667 for #race and #fixmob race to match Live's current race count.


  • Trevius Added new Perl Mob quest object QuestReward(client, silver, gold, platinum) that awards money to the client and makes the quest completed sound.
  • Trevius Added 2 new optional fields to Perl Client quest object MaxSkill(skillid, [class, level]).
  • Trevius Minor corrections for SetSkill(skill_num, value) and AddSkill(skillid, value) to set skill values to int16 instead of int8.


  • Trevius Live * Updated Player Profile and Spell Buff Structs to allow the May 12th Live patched client to enter the game.
  • Trevius Live * Updated about 50% of the opcodes so most basic stuff should be functional.
  • Derision Live * Encoded OP_GroundSpawn plus updated OP_ClickObject/OP_ClickObjectAction.
  • Derision Added Live to the list of clients reported by #cvs.


  • Trevius SoD * Coin no longer adds weight for this client server-side, since the client itself no longer adds coin weight
  • Trevius SoD * Heroic Stats should now add the correct amount of HP/Endurance/Mana to match the client in most cases.
  • Trevius The scribespell and traindisc commands and quest commands should sort Disciplines properly once again.


  • Derision Guild invitations to a player already in receipt of an invitation will now be rejected.
  • Derision Fixed quest::pvp("off")
  • gaeorn fixed a couple issues with the login server code.


  • Trevius SoD * Heroic Stats/Resists now increase the cap server-side as they should.


  • Derision Live * Added an encode for OP_ChannelMessage
  • Derision Live * Encoded OP_GuildsList and corrected OP_GuildUpdateURLAndChannel.
  • Derision Live * Door and Group OPCodes. Set OP_GroundSpawn=0x00000 until an encode can be done for it (was causing crashes, particularly in PoK).


  • Derision Guild Bank fix.

Trevius(Derision): Added special handling for certain types of opcodes to correct an issue on the Live client.

  • Trevius SoF/SoD * Type 5 clicky items can no longer be used if the character does not meet the race/class requirements of the item.
  • Trevius Live * Can now log into the game with new character fine, but some existing characters cause zoning loops.
  • Derision Live * Added a Decode for OP_ChannelMessage
  • Derision Live * Corrected OP_Camp, OP_MoveItem and OP_ItemPacket.
  • Derision Live * Corrected: OP_SetChatServer2, OP_MemorizeSpell, OP_CastSpell, OP_Death, OP_Animation, OP_SenseHeading
  • Derision Live * Corrected: OP_Damage, OP_TargetCommand, OP_MobHealth, OP_DeleteSpawn, OP_AutoAttack, OP_AutoAttack2
  • Derision Live * Corrected: OP_SaveOnZoneReq, OP_Track, OP_TrackTarget (Tracking messages not yet working, probably due to Filter opcode).
  • Derision Live * LogServer_Struct.
  • Derision Live * Corrected OP_FormattedMessage and padded out ServerFilter_Struc to match live. OP_WhoAllResponse.


Trevius(Derision): Fixed a potential crash related to Saylinks and Antispam code.

  • Trevius Live * Initial update to the Live patch files. Can only get to a blank character select at this point.


  • Trevius SoF/SoD * Resolved an issue that was preventing some AAs from being able to be trained properly.
  • Derision Updating a character's Alt or Banker flag no longer resends the entire guild member list.
  • joligario quest::givecash cleaned up.
  • Congdar SoF: Fix starting city for freeport characters.


  • Derision The facility to flag 'Alts' in the Guild Management Window now works for those clients that support it.
  • Derision The facility to specify a Guild chat channel and URL now work for those clients that support it.
  • Derision SoD * Item links for Task rewards now display correctly in the task window.

REQUIRED SQL: utils/sql/svn/1451_guilds.sql


  • Derision The Guild Management Window should now reflect the true online status and zone of members at all times.
  • Derision Added a command, #cvs (Client Version Summary) to display connected client version counts.

OPTIONAL SQL: utils/sql/svn/1450_cvs.sql


  • Trevius Added new Perl NPC quest object GetSwarmTarget() to get the ID of a swarm pet's set target.
  • Trevius Added new Perl NPC quest object SetSwarmTarget(target_id) to set the ID of a swarm pet's target.
  • Derision Group member locations are now always updated in entity_list.SendPositionUpdates (for SoD group member location on map).
  • Derision Certain detrimental spells will still allow the player to enter a rested state.

REQUIRED SQL: utils/sql/svn/1446_allowrest_required.sql

OPTIONAL SQL: (Read the comments in it before executing) utils/sql/svn/1446_allowrest_optional.sql


  • Trevius Fixed a bug that would cause clients in an existing trade to get bugged if another client tried to trade with them during their existing trade.
  • Trevius Added new Perl Mob quest object MakeTempPet(spell_id, [name=NULL, duration=0, target=NULL]).
  • Trevius Added new Perl NPC quest object GetSwarmOwner() to get the ID of a swarm pet's owner.
  • Trevius Hide will now break if you move when not sneaking, even if you have invisibility on.
  • Derision Fixed bug in Guild Bank.
  • gaeorn reverted my change from 4/24 as it did not work.


  • gaeorn fixed tables to avoid login server hang if ServerTagDescription in tblWorldServerRegistration is null

Optional SQL: utils/sql/svn/1436_login_server_table_fix.sql


  • Trevius Attempting to trade with a player who is already in a trade will now give the "I'm busy right now" message for all clients.
  • Derision Applied slot conversion so Apply Poison should now work in SoF.
  • gaeorn login server now creates db entries for unregistered servers to keep same id across sessions
  • Derision Fixed a cash amount display bug when the two participants in a Barter transaction are using different clients.


  • Trevius SoD/SoF * Clicky items with charges can no longer be cast if they have 0 charges left.
  • Secrets Mana can now exceed 32k without rolling over to 0.


  • Trevius SoD/SoF * Failing a clicky item cast in certain scenarios should no longer cause the client to get bugged where the spells won't refresh.
  • Trevius SoD/SoF * Cast bars from clicky items now use the cast time from the item, not from the spell.
  • Trevius SoD * Potions in the potion belt can now be used even if they are inside bags.


  • Derision Fixed azone2 to handle missing model files (no longer crashes on oldfieldofbone.eqg)


  • gaeorn possible fix for long standing reconnect to login server problem if login server connection is down for an extended period of time.
  • Trevius SoD * Added AA support for Harm Touch and Lay on Hands to replace the innate skills of the PAL/SK classes.

Optional SQL: utils/sql/svn/1410_optional_sod_aas_ht_and_loh.sql


  • cavedude Added Drakking to faction_list, updated wolf form and Skeleton.

REQUIRED SQL: ALTER TABLE faction_list ADD COLUMN mod_r42 smallint(6) NOT NULL default '0' AFTER mod_r14; ALTER TABLE faction_list ADD COLUMN mod_r367 smallint(6) NOT NULL default '0' AFTER mod_r330; ALTER TABLE faction_list ADD COLUMN mod_r522 smallint(6) NOT NULL default '0' AFTER mod_r367; UPDATE faction_list SET mod_r367 = mod_r60; UPDATE faction_list SET mod_r42 = mod_r120; ALTER TABLE faction_list DROP COLUMN mod_r60; ALTER TABLE faction_list DROP COLUMN mod_r120;


  • Trevius Added the following to Client Perl; GetEndurance(), GetMaxEndurance(), GetEnduranceRatio(), SetEndurance(amount).
  • Trevius SoD * Size fix for player races.
  • Trevius SoD * Manual consumption of food/drink works and deletes the consumed item.
  • Trevius SoD * Consumption of alcohol now gives a chance for skilling up tolerance and also deletes the consumed item.


  • Trevius SoD * The Mana and Endurance formulas are as close as I can get them for now.
  • Trevius SoD * NPC default size is now 6 if the database is set to 0.
  • Trevius It is no longer possible for current Endurance to be higher than max Endurance.
  • Trevius Corrected a mistake pointed out by Rogean that was sending an unnecessary packet when clients were moving.


  • gaeorn bug fix so login server does not send world local_ip if option local_network is not set in login.ini


  • Trevius SoD * Added HP formulas for the SoD client, and a new rule to enable them for SoD clients only.

Optional SQL: utils/sql/svn/1394_optional_rule_sod_hp_mana_end.sql


  • gaeorn fixed login server auto-reconnect

cavedude (Leere): Tradeskill recipe learning

  • Congdar fix windows compile: warning C4405: 'crc32' : identifier is reserved word
  • Congdar fix windows compile: warning C4554: '>>' : check operator precedence for possible error; use parentheses to clarify precedence
  • Congdar fix windows compile: warning C4800: 'char *' : forcing value to bool 'true' or 'false' (performance warning)

Required SQL: utils/sql/svn/1392_recipe_learning.sql


  • KLS (Leere) Melody Fix.
  • KLS Other merges from spell branch, some more to come. Tell me if there are any crashes I only tested it for about 25 minutes.


cavedude (Leere): Increased the number of tradeskill favorites that can be stored client side to 500. cavedude (Leere): Fixed avgcoin. cavedude (renoofturks): Fixes to SK harm touch.

  • cavedude Lowered snare movement speed when fleeing to 41% or higher to allow "Snare" to prevent movement at all levels.
  • gaeorn multiple login server support in world. protocol to update login server account information from within game. "trusted" field for world accounts in loginserver to limit where account updates can come from. in eqemu_config.xml, use to specify first of multiple login servers. increment the number to specify additional login servers. NOTE: be sure to replace the entry or you will be limited to just one login server. MULTIPLE LOGIN SERVERS WILL NOT WORK WITH MINILOGIN.

Required SQL for loginserver tables: alter table tblWorldServerRegistration add ServerTrusted integer NOT NULL after ServerAdminID;


  • Derision SoD * /who , /whotarget now work.
  • Derision Corpses summoned in Shadowrest should no longer decay before you can finish looting them.


  • Derision SoD * Corpses should now vanish instantly rather than decay when using /hidecorpse.
  • Derision SoD * Players can now see other players buffs in their target window.
  • Derision SoD Tracking Player filter now works.
  • Trevius SoD * Added Primary/Secondary weapon textures into the spawn struct for non-playable races.


  • Trevius SoD * Identified showhelm in the spawn struct.
  • Trevius SoD * Corrected Face in the Player Profile. Frogloks and Vah Shir now show matching head and body correctly.
  • Trevius SoD * Added Mana and Endurance update packets for clients.


  • Derision SoD * Tracking Auto-refresh should no longer fail with Recovery timer not met.
  • Derision SoD * Previously memmed spells are now unmemmed when loading a spell set.
  • Derision SoD * Added Slot conversion to ApplyPoison_Struct (Apply poison should work as well as Titanium).
  • Derision AllButSoD * Fixed bug in Barter code.


  • Derision SoD * Players may now be tracked and fixed a bug where tracking would not work when switching tracking targets without cancelling tracking.
  • Derision SoD * Initial work on /hidecorpse serverside support. All but /hidecorpse looted should work.


  • Derision SoD * Loot All now works.


  • Derision SoD * Group member (client or bot) mana and endurance should update correctly in the group window.
  • Derision SoD * Altered SpawnStruct encode to send colors for all playable races (including corpses and NPCs).
  • Derision SoD * Group Main Assist may be assigned via the Group Window. As the group leader cannot explicitly assign it to himself, use /grouproles set 2
  • Leere A moving mob that becomes mezzed will no longer appear to continue moving.
  • Fourier Added location to the output of #listnpc.


  • Trevius SoF/SoD * Total Spent AA Points now show correctly for these 2 clients.
  • Trevius Froglok characters now default to size 5 instead of 7. This corrects size issues when using illusions.
  • Derision SoD * Bazaar Trader Mode/Bazaar Search should now work correctly.
  • Derision SoD * Found the helm field in the spawn struct.
  • Derision SoD * Implemented new packets for sending the list of findable NPCs to the client.
  • Derision SoD * Flymode and Titles in the spawn struct.


  • Derision SoD * Group Leadership AA should mostly work (Main Assist is no longer a GLAA and Health Awareness seems intermittent).
  • joligario Pet behavious change.
  • Trevius SoF/SoD * Added clicky item checks to match previous clients. All clicky item hacker entries should now be actual hack attempts.
  • Trevius Added an extra hacker check for clicking a must equip effect without having it equipped.
  • Trevius SoD * Removed the opcodes for the Pet Buff Window until the structure is updated. Prevents pet classes from crashing when pets are buffed.
  • Derision SoD * Pet Buff Window now works.
  • Derision SoD * Fixed OnLevelMessage struct (popup windows).
  • Derision SoD * Fixed Barter mode.
  • Congdar (Taurinus) Drakkin bots


  • Derision SoD * Tracking
  • Derision SoD * Fixed price bug when buying from merchants.
  • Trevius SoD * Spell books now display all scribed spells (was previously hiding the first 9 slots).
  • Trevius SoD * Stopped the Barter error that was reporting when logging in due to an incorrect opcode.


  • Derision SoD * Groups should be as functional as previous clients, except Group Leadership AA doesn't work.
  • Derision SoD * Fixed items being incorrectly flagged as No Trade/Copied


  • Trevius SoD * Corrected the opcode for Mob Health Updates so they update properly.
  • Trevius SoD * Added a few new Opcodes and Structures for SoD packets that aren't used yet.


  • Derision SoD * Fixed client animation/runspeed glitch.
  • Derision All Clients * Player position updates to other players should be more accurate.
  • Trevius Updated #race and #fixmob commands to allow up to race 626 which is the total for the SoD client.
  • Derision SoD * Very preliminary work on groups. You can form a group, but nothing else.


  • Trevius SoD * A couple more Opcode updates.
  • Trevius SoD * Some group structures work, but grouping is still not functional.
  • Derision SoD * Fixed random client crashes due to spawn packets and invisible mobs should now be invisible.
  • Derision SoD * Did a basic Encode on OP_WhoAllResponse. Still needs work for various flags (LD/Trader/Buyer) etc.


  • Trevius SoD * Finished updated Opcodes and they should now be caught up with what we have in SoF.
  • Trevius SoD * Updated Item Struct and now 1 inventory item can load correctly.
  • Trevius SoD * Updated Position Update packet structures.
  • Trevius SoD * Character Inventory now fully loads.
  • Trevius SoD * AAs now load and appear to function properly.
  • Derision SoD * Spawns work, sometimes. Client will crash randomly sometimes when receiving spawns
  • Derision SoD * Added SoD.cpp to .vcproj files
  • Derision SoD * Found showname field in Spawn Struct.
  • Derision SoD * Identified equip_chest2 field in Spawn Struct.
  • Trevius SoD * Looting now works.
  • Trevius SoD * Commands that display item links now show links correctly.


  • Trevius SoD * Updated PlayerProfile_Struct and CharacterSelectEntry_Struct
  • Trevius SoD * Updated Spawn_Struct and the encode (hackish for now), but can get in game with it!


  • Trevius SoD * Updated the NewZone struct and encode


  • Trevius SoD * Initial addition of the Seeds of Destruction patch files. Note: The SoD Client is not functional at all yet, but work has begun!


  • Derision Implemented the Guild Bank.

REQUIRED SQL: utils/sql/svn/1293_guild_bank.sql


  • cavedude Added $client->UpdateGroupAAs(), exported GetGroupPoints() and GetRaidPoints() to Perl.


  • cavedude Added $client->GetLDoNPointsTheme() Perl function.
  • Trevius Added new EVENT_TARGET_CHANGE perl event. It triggers when an NPC target changes or is removed. It exports $hastarget which is 0 if no target and 1 if there is a target.
  • Trevius Exported new quest objects to Perl Mob * SetRace(race), SetGender(gender), and SetTexture(texture).
  • Trevius Exported to Perl Mob * SendIllusion(race,[gender,texture,helmtexture,face,hairstyle,haircolor,beard,beardcolor,drakkin_heritage,drakkin_tattoo,drakkin_details,size]).
  • Trevius Added rule: Character:DeathExpLossMaxLevel * Any level greater than this will no longer lose experience. Default is 255 (disabled).

Optional SQL: utils/sql/svn/1290_optional_exp_loss_rule.sql


  • Trevius Added 3 new Perl Entity commands * GetMobByID(id), GetNPCByID(id), and GetNPCByNPCTypeID(npc_id).
  • Congdar Bots: Fixed picklock and summon corpse


  • Trevius Saylinks should no longer cause zone crashes if used outside of EVENTs. They should function from anywhere now.


  • Trevius Added new SetFlyMode(0|1|2|3) Perl Mob command.
  • Trevius NPCs in flymode 1 or 2 will no longer use BestZ when pathing to waypoints.
  • Trevius Added new optional single client argument to SendAppearanceEffect(effect1, effect2, effect3, effect4, effect5, client) to allow sending the effect only to specific players.


  • joligario Fixed some spelling mistakes.


  • Congdar bots can now equip items with augments. required sql: \utils\sql\svn\1280_bot_augs.sql
  • Congdar new bot command '#bot augmentitem' Allows you to augment items for your other bot classes. Your must have the Augmentation Sealer window filled.


  • Derision Begging should no longer bug the client. Still needs some work around chance/amount/skillups etc.


  • Derision Fix for temporary items on merchants appearing to increase in price.
  • Leere Refinement to above and fix for purchase price of stacked items != displayed price * quantity.


  • Trevius Inspecting SoF players is now possible.
  • Derision A mob corpse will now be left even if a Bot's pet does the most damage.


  • Trevius Added functionality to the EQEmu Web Tool to show IP information based on account searches.
  • Derision Set Message Type for spells wearing off, experience and leadership messages so they aren't classed as 'Other' by the client chat filters.
  • Derision Removed -fpermissive from zone/makefile so invalid type conversions should now cause an error rather than a warning for Linux compiles.


  • Trevius Added 2 new optional arguments to quest::gmsay(text, [color, send_to_world?]) * allows changing color and sending to world or just zone.
  • Trevius Normal Saylinks should now work without requiring a target for proximity says. Silent saylinks still require a target.
  • Trevius Added a check for valid slots when moving items from 1 slot to another.
  • Trevius NPCs using 2 Hand Pierce weapon models can be set to skill 99 in the prim_melee_type field of the npc_types table to show the correct attack animations and messages.


  • Derision Fix for crash in Mob::DetermineSpellTargets.
  • Congdar fixed bot right-click inspect window title bar shows player name instead of target bot name.


  • Secrets Added new Perl::Client command, ReadBook(Book Text, Type), to allow sending a book/scroll to clients via quests. Type 0 = scroll, type 1 = book.
  • Trevius GMs with #gm on should now be able to /target NPCs across the zone again.
  • joligario Fixed typo relating to Pet pursuit speed in MobAI.cpp
  • joligario Manual WP Add fix.
  • joligario Fixed duplicate declaration of command_wp in command.h


  • Derision SoF: TRADER/BUYER will now be displayed as appropriate in /who for SoF clients.


  • Trevius Added new Perl::Mob quest object SendAppearanceEffect(effect1, effect2, effect3, effect4, effect5) which can send up to 5 particle effects at once.
  • realityincarnate spells requiring dragon/giant targets will now work on velious raid targets


  • Trevius Added 2 new fields (prim_melee_type and sec_melee_type) to the npc_types table to allow setting attack animations/messages to go with weapon models (Default is 28 * Hand to Hand)
  • Trevius Added Perl Quest Objects; GetPrimSkill(), GetSecSkill(), SetPrimSkill(skill_type), SetSecSkill(skill_type) for altering the above setting temporarily.

Required SQL: utils/sql/svn/1259_npc_skill_types.sql


  • Trevius Added new quest::untraindiscs() command to untrain all disciplines
  • Trevius Added Client Perl Objects UntrainDisc(slot) and UntrainDiscAll() to untrain either just 1 discipline slot or all disciplines
  • Trevius Added functionality to quest::traindisc() to allow it to use the spell_globals table and system
  • Trevius Added in code to prevent a zone crash related to group/raids using group recourse spells as a temporary fix until the Spells branch goes live


  • Gaeorn (iRFNA) Fixed flaw in IsPureNukeSpell() logic. Fixes bug where bots were healing enemies.
  • Derision Added default value to suspendeduntil column in utils/sql/svn/1195_account_suspendeduntil.sql


  • Derision Reverted cross-zone group invites from Rev1086


  • Trevius Added an account status setting option to the database page of the EQEmu Web Tool.


  • Richardo Added options wep1 and wep2 to #npcedit to allow changing primary and secondary weapon models.


  • Trevius Renamed BoolNPCSpecAtks() to HasNPCSpecialAtk() to fit better into the proper naming format and to make more sense.
  • Derision Added $client quest methods to get current PVP point and crystal counts and to award PVP points and crystals.
  • Derision Mapped out the part of the player profile used for recording recent PVP kills.


  • Trevius Exported new BoolNPCSpecAtks() to Perl::Mob. This can be used to check if an NPC has certain special attacks set.
  • Derision Added support for purchasing from Discord Merchant (Class 59).
  • Derision Added support for purchasing from Norrath's Keepers and Dark Reign Merchants (Classes 67 and 68).
  • Derision Added commands #setpvppoints and #setcrystals
  • Derision EVENT_POPUPRESPONSE is now passed to


  • cybernine186 Implemented the #suspend command.

Required SQL: utils/sql/svn/1195_account_suspendeduntil.sql


  • gaeorn added EQEmuLoginServer/EQCryptoAPI.h (contents from a EQEmu forum post by KLS)


  • Rabayn Fixed reference to freed memory in Doors::HandleClick.
  • Derision Anti Kill-Stealing fix.


  • Trevius Suspend Minion AA now requires level 62 or greater to use it.
  • Secrets Implemented quest::voicetell(PlayerName, MacroNumber, RaceNumber, GenderNumer).


  • Trevius Exported new ProjectileAnim(mob, item_id, [IsArrow?, speed, angle, tilt, arc]) command to perl::mob.
  • Trevius Added the following to perl::NPC * GetSpawnPointX(), GetSpawnPointY(), GetSpawnPointZ(), GetSpawnPointH(), GetGuardPointX(), GetGuardPointY(), and GetGuardPointZ()
  • Derision Leadership abilities should now work correctly for groups with 1 Player + Bots.


  • Trevius Exported CheckLoSToLoc(x, y, z, [mob_size]) to perl::mob.
  • Trevius Exported FindGroundZ(x, y, [z_offset]) to perl::mob.


  • Trevius Exported CheckLoS() to perl::mob.
  • Trevius Added SoF Decode/Encode for OP_InspectAnswer. SoF clients can now inspect Titanium clients and everything shows up properly. SoF clients still cannot be inspected at all by either client.
  • Derision Fix for armor not showing to other player's after looting your corpse.
  • Derision Call of the Hero should no longer transfer aggro to the caster.
  • LeftRoad Implemented /pet leader command.
  • Derision Fix for item loss when going Linkdead with items in the trade window.
  • Derision /getguildmotd now works.
  • Derision Fixed Bazaar search filter for Endurance, Attack, HP & Mana Regen, Haste and Damage Shield.


  • Trevius Added NPC:ReturnNonQuestNoDropItems rule to enable/disable a new feature that allows all NO DROP items to be returned if turned into a non-item-quest NPC (no EVENT_ITEM).
  • Trevius Removed a possible exploit with quest turn-ins.
  • Derision Added check for spell target type SummonedPet (e.g. Elemental Draw).
  • Derision Implemented /searchcorpse GM command.
  • Derision Reset Trade Accepted state if money is added to a trade.
  • Derision Shrunk/Grown players/mobs will now appear the correct size to new players entering the zone.
  • Derision OP_GuildMemberList for SoF (used to populate Guild Management Window Roster.
  • Derision OP_GuildDemote for SoF.
  • Derision OP_GuildPublicNote for SoF.
  • Derision Corrected message produced when trying to use Suspend Minion on a charmed pet.

Optional SQL: utils/sql/svn/1144_optional_rule_return_nodrop


  • Trevius Adjusted quest::wearchange(slot, texture) so it will now show the weapon slot changes to players who zone in after the change has already happened.
  • Derision Implemented Secondary Forte AA.


  • Trevius/Andmetal Added new Spell Globals system. Adding spells to the new spell_globals table with a qglobal name and value there will require characters to have the matching qglobal in the quest_globals table in order to scribe spells via the quest::scribespells command. Note: Only integers can be used for values currently.
  • Trevius Added EnableSpellGlobals rule to enable/disable the new Spell Globals system.
  • Trevius Minor change to how NPC loot tables are handled for selecting drops. This should make actual drop rates a bit closer to how they are set in the database.
  • WildcardX Implemented a new client animation rate to server-side speed ratio for bots to make bot movement as precise and natural looking as possible. It is possible all other Mob's could benefit from this same tuning if anyone wants to try it on their server.
  • WildcardX (Frumph) Implemented a new set of #bot commands to customize bot appearances within the game!
  • WildcardX (Frumph) Fixed so bot spell casters don't ghost while casting a spell with a long cast time and bot casters don't sit while a spell is being casted.
  • WildcardX Fixed bot casters from doing rapidly and repeatidly going from sit to stand and back to sit during buff casting.

Required SQL: utils/sql/svn/1136_spell_globals.sql


  • Trevius Added quest::wearchange(slot, texture) to allow any slot to be changed to any texture/weapon model. This works just like the #wc , command.
  • blmille2 Implemented Calliav line of spells.
  • Derision Reverted flawed change to client_packet.cpp.


  • WildcardX Tweaked bot spell healing ai to improve general group healing.
  • WildcardX Fixed a zone crash caused by adding an non-existent mob to a bot's hate list.
  • blmille2 Implemented Suspend Minion and Persistent Minion AA.
  • garim12 Mastery of the Past AA Ranger/Beastlord version fix.
  • WildcardX Added new command, #distance to return the in game distance between you and your target.
  • WildcardX Bot casters will now stay in ange to cast heals and other spells during combat.


  • WildcardX Potential bug fix for #bot camp zone crash bug. Continued work on bot animations. (thanks much to Frumph and Secrets for their assistance)
  • joligario New EVENT_WAYPOINT_ARRIVE and EVENT_WAYPOINT_DEPART. The old EVENT_WAYPOINT will be removed shortly, so be sure to replace all occurences of EVENT_WAYPOINT with EVENT_WAYPOINT_DEPART in all your current scripts.
  • joligario Faction values of zero are no longer written to the faction_values table.
  • WildcardX Smoothed out bot melee animations. Another attempt at isolating the #bot camp zone crash bug.


  • WildcardX More bot ai refactoring that is focused on making the bot movements more smooth and accurate. Still a lingering issue when bots fight a mob that has a giant body type.
  • WildcardX Bots in melee range of their target will now seperate themselves some so they won't appear so much on top of each other in combat. "Tank" classes will always be closer than "DPS" classes.
  • WildcardX Fixed a issue with bot pet hitpoints not persisting correctly to the database and an issue that prevented the client from getting all HP updates for bots and their pets.


  • Derision Added check in Handle_ApplyPoison to verify the specified inventory slot contains a poison in case the player moved items around after beginning to apply the poison.
  • Derision Fixed a bug where Mend would not report failures for skill levels below 75.


  • WildcardX Refactored the general bot ai logic. It appears I have bots properly showing their run animations and bots will now stand before they cast a spell. Because I touched soo much bot ai code, this rev should be evaluated fully before implementing on a public play server. I may decide to revert this rev of the bot code if it proves too unstable.


  • WildcardX Fixed a bug in the EQEmuLoginServer that resulted in the server not processing login requests because the application's connection to its MySQL database engine was closed. I have implemented an auto reconnect feature of the MySQL client api.
  • WildcardX Cleaned up a couple compiler warnings for EQEmuLoginServer.
  • WildcardX Refactored some code that worked fine on a Windows OS, but was incompatible with a Linux OS. New code is compatible with both operating systems.


  • WildcardX Implemented auto melee or archery weapon selection for the bot ranger if the bot ranger is level 61 or better and the bot owner toggled the #bot archery command. After toggeling once, the bot then decides on archery or melee until the #bot archery command is toggled again or the bot zones or camps.
  • WildcardX Fixed a bug that prevented bots from being created on systems running MySQL on a linux OS. Windows MySQL servers were unaffected.
  • WildcardX Enchanter bots will no longer cast any illusions as part of "buffing". In the near future, I will implement a new #bot command to cast illusions instead.
  • WildcardX Fixed a bug that prevent enchanter bots from casting any damage over time or nuke spells against their target.
  • WildcardX Fixed a bug that caused bots to "ghost" as they followed their client owner.


  • WildcardX Implemented a bot spellcasting ai overhaul that improves upon the existing ai and creates a framework to expand additional ai enchancements around for bot coders. NOTE: Please evaluate this version of bots BEFORE you replace your existing server as this is still a work in progress.
  • WildcardX Implemented bot wizard nuke spell selection for the new bot spellcasting ai.
  • WildcardX Fixed various bugs to now allow any characters except the bot owner to give bot commands or spawn the bot. Also fixed #bot mana command to filter out non-caster bots.


  • Derision /invite can now be used to invite a player in another zone into a regular group.


  • Derision Changed Client::GroupInvite2 to use the Invitee name passed in the OP_GroupInvite packet rather than the player's target.


  • WildcardX Fixed a bug that allowed a bot to be created with the same name as an existing player character. This would cause said bot to not zone with other bots the group.
  • WildcardX Added new bot command, #bot mana. This will give a mana report for all spawned bots in the zone. Bot mana report spamming is now disabled.


  • WildcardX Fixed a EQEmuLoginServer crash that can happen as the result of a null reference in the database code.
  • WildcardX Fixed a bug with bot archery. The command shouldn't crash the zone and the bot should correctly display the bow only.


  • WildcardX Fixed a bug that prevented Bot casters from casting if a mob becomes enraged.
  • WildcardX Changed #bot list and #bot spawn commands to use bot name instead of the bot table id
  • WildcardX Added new commands to save, load, delete and view bot groups. See the #bot botgroup help command to view them.
  • WildcardX Fixed SQL syntax issues with database scripts for bots.
  • WildcardX Fixed a bug that may have made it difficult to add bots to bot only groups.



  • WildcardX Fixed the EQEmuLoginServer project file, fixed a crash caused by referencing a NULL object and made a couple improvements to error handling.
  • Derision Fix for quest::depopall related crash.
  • WildcardX Improved healing for Bots inspired by contribtions from Bad_Captain! Bot healers won't let a HoT spell block them from casting a heal spell when in combat.
  • WildcardX Bot pets will now seek to engage their target's from behind when their Bot master's are fighting the same mob from in front.