Skip to content



  • Derision Update azone2 with EQG v4 support.


  • Derision Fix to set required heading when zoning.


  • cavedude (Kilelen) Added quest functions quest::checktitle(int titleset), quest::enabletitle(int titleset), and quest::removetitle(int titleset) to allow Perl to enable or remove titles for a player.

Required SQL: utils/sql/svn/1057_titles.sql


  • KLS Ad hoc task selectors should ignore tasks that are not enabled now.


  • Congdar Fixed Resist Stat Caps, Removed GetMax...() methods calculating some AA's twice.


  • KLS Added check for character deletion as pointed out by Rogean.


  • AndMetal Changed HP regen calculations to be Live-like. Basically higher level regen will be about 50% more than it is currently & FD regen should be better than standing, but less than sitting (instead of 25% of sitting regen).
  • AndMetal Races that get the HP Regen "bonus" (Iksar & Troll by default) can be customized as a bitmask via rule Character:BaseHPRegenBonusRaces(4352).
  • AndMetal Added #setallskills alias for #setallskill/#setskillall.
  • AndMetal Added '#rules get [rule]' for a single rule & '#rules values [catname]' for a category to allow real-time viewing of the rule values from the zone (not the DB).
  • AndMetal Added client HP, Mana, & Endurance regen info to #showstats/#mystats


  • KLS Exported DoSpecialAttackDamage() to perl::mob;


  • WildcardX Tweaked guilds a little to accomodate integrating BOTS.
  • WildcardX Bots can not join guilds in the same way as characters can. Bots can only be members, not officers.
  • WildcardX Deprecated the legacy BotRaids system and all #bot raid commands. Also deprecated the legacy botgroups table.
  • WildcardX Renamed the #bot group order ... series of commands into only #bot group ...



  • KLS Added discussed work around for SoF > level 75 issue from forums.
  • WildcardX Bot pets and bot pet items and bot pet buffs will now save their state to the database between zones and camps just like a character.
  • WildcardX Add SQL to create unique columns in group_id and group_leaders tables in hopes of removing the last of the seemingly random issues with groups and zoning.




  • WildcardX Bots will now persist their buffs to the database while zoning or camped.



  • WildcardX Bots can now be a group leader. A character can now make not only a group mixed with both bots and other characters, but also groups with all bots and lead by a bot the character designates. Please see #bot botgroup help for details. The legacy BotRaids logic will be removed from the server code in the next 24/48 hours. This effectivly makes bot raiding the same as before the raid system was created. Much of the existing "#bot group order" commands will also be deprecated soon.
  • WildcardX Fix for a bug with #bot botgroup add.
  • WildcardX Fix for a bug with bot group leader's record in group_id table not removing any older records.
  • WildcardX Fix for a bug that caused a bot group leader to say it is following itself.
  • WildcardX Fix for a bug that caused a zone crash when a client ungracefully disconnects from zone but zone still runs and the client had spawned bots.
  • KLS Added #globalview
  • KLS QGlobals will update instantly for the zone they're in.


  • WildcardX Fixed a number of bugs with support bots zoning. Refactored the code and eliminated the botactives table.



  • WildcardX Bots can now zone with their bot owners as long as they are in a group. Bots not in a group will camp instead of zone.



  • WildcardX A character and a bot can now recieve an ldon adventure.



  • AndMetal Added rule Combat:ProcTargetOnly(true). Allows the change from Rev 606 that limits procs to only the target to be removed. Note: AE procs can still cause stability issues if it is set to false.
  • AndMetal Fixed some "no newline at end of file" warnings.
  • AndMetal Corrected formatting/typo for some # commands.
  • AndMetal Fixed a memory leak in Client::ZonePC().
  • KLS Changed how QGlobals are tracked on the server to reduce the amount of times we query the database. I've tested it quite a bit but if you find anything wrong with the new implementation: report it.


  • Rogean #motd now updates clients instantly serverwide.


  • Rogean Fixed possible crash in Mob::CheckWillAggro();
  • Rogean Temporarily Disabled Fear MaxLevel Check causing a crash.
  • Trevius Added Quest Commands quest::playerfeature(feature, setting) and quest::npcfeature(feature, setting) * See Wiki for details on usage.
  • Trevius Added Quest Objects GetHairColor(), GetBeardColor(), GetEyeColor1(), GetEyeColor2(), GetHairStyle(), GetLuclinFace(), GetBeard(), GetDrakkinHeritage(), GetDrakkinTattoo(), and GetDrakkinDetails().


  • Rogean Direct Heal and Rune Aggro are now based off the mana cost of the spell.
  • Rogean HoT Aggro is now based off the per-tic heal amount, when the spell lands.
  • Rogean Fixed several issues with focus effects. Beneficial Hate Reduction Focus should now work.
  • Rogean Fixed AA Spell Casting Subtlety not applying to heal aggro. Also changed to correct values.


  • cavedude (Shin Noir) Implemented Wizard AA: Teleport Bind.
  • cavedude (tsowl) GMs will no longer need a key for locked portal doors.
  • cavedude (tsowl) Fix for shared and normal bank dupes.
  • cavedude (Nachyoz) Corrected a bug preventing $faction from reporting correct values.
  • cavedude (drakelord) Runes will now block stuns, provided the damage does not exceed the rune's limit.


  • gaeorn small fix to pathing code for 64bit
  • gaeorn a few changes to makefiles to clean things up


  • Rogean Small (Big?) Aggro change, melee swings now generate same aggro regardless of hit/miss/dodged.
  • Rogean Aggro Formula changed to weapon_damage + dmg bonus + elemental dmg + (if applicable) bane dmg.


  • KLS Fixed an error with Perl::Group::GetMember(index) added Perl::Raid::GetMember(index).
  • KLS Added new npc types field: 'unique_spawn_by_name'. NPC will only attempt to spawn if there isn't already a npc with it's exact name in the zone already.
  • Rogean Added World IP Logging @ Login.



  • KLS Added support for raid all loot (type 4), raids will default to this loot type now(may have some appearance issues).
  • KLS Added command #raidloot to change raid loot manually, this is needed for titanium if they want to switch from 4 to another and back to 4 since the client does not support type 4 natively.
  • KLS Added private_corpse to npctypes to dictate whether a corpse will unlock to outside people or not, by default(0) it will unlock.


  • Trevius SoF * Corrected disciplines for SoF clients so they can load up to 100 instead of being cut-off at 50 max.


  • KLS Fix for bug with AI_Start not clearing feign death.
  • KLS Worked out basics for /claim, not yet implemented but worked out all the packets needed for sof/titanium.
  • KLS Finished with /claim implementation.


  • KLS Significantly lowered karma required to talk globally if using the system.
  • KLS Fixed some small potential exploits.
  • KLS Extended anti-spam to /tell, will extend fully to universal chat server soon.
  • KLS Started work on /report but did not finish implementation yet.
  • KLS Added hotzone support.
  • KLS Finished /report implementation.


  • WildcardX BOTS Fixed a bug that made bots ghost when moving.
  • KLS More tweaks to anti-hack systems, should trigger MQWarp less often.
  • KLS Instituted a cooldown on looting items from corpses, 200ms per item looted.


  • KLS Fix for zonesummon variables influencing next zone attempt if you inner-zone first.


  • KLS Added method to enable / disable spawn2 entries from spawning, enabled by default obviously.
  • KLS Two quest methods to modify spawn2 behavior quest::enable_spawn2(spawn2_id) and quest::disable_spawn2(spawn2_id), disable will force depop whatever mob is currently spawned in that spawn2 point if any.
  • KLS quest::spawn_from_spawn2(spawn2_id), will force a spawn_2 point to spawn a npc even if disabled or it already has a npc spawned.
  • KLS Exported several new C-Objects to perl: MobList, ClientList, NPCList, CorpseList, HateEntry, HateList. Examples of how to use can be found in utils/Examples/


  • WildcardX BOTS Refactored some bots code and implemented a new feature. Players can now inspect bots and their equipment just like players inspect other players. Enjoy!
  • Trevius (Secrets) Minor fix for the new Maxlevel Scaling for NPCs to correct a HP issue if they have visible armor/weapons or buffs.
  • Trevius SoF * Updated Opcodes for Voice Macros. They now function in SoF (/vtell, /vgroup, /vraid).
  • WildcardX BOTS Cleaned up bot inventory code a little and fixed a bug that caused some items to display in incorrect slots in the inspection window.
  • WildcardX BOTS Bot bards are now holding concerts for those willing to listen...


  • WildcardX Tweaked Groups a little to allow a group to consist of both Bots and Clients, doesn't matter what order you invite either nor does it matter how many of each.
  • WildcardX BOTS A client camping out or zoning will now auto camp out all their bots and clean up any group those bots may have been in.
  • gaeorn renamed zone->map to zone->zonemap to eliminate compile warning
  • gaeorn added lots of type casting for 64bit compatibility
  • KLS Added #revoke support to /auction and UCS chat channels.
  • KLS Added rule Chat:KarmaGlobalChatLimit amount of karma needed to be able to chat in global channels below the minimum level and Chat:GlobalChatLevelLimit. By default the level is 8 and the karma amount equal to 24 hours of /played time. Meaning that unchanged someone must be >= level 8 or have more than a day of played time before they can chat in global channels.


  • WildcardX BOTS Fixed the bots illusion bug that caused a bots gender and race values to be changed to that of the illusion in the bots table.
  • WildcardX BOTS Added new bots command, "#bot giveitem". This command lets you give a NO DROP, NO TRADE item to your bot as long as its on your cursor.
  • WildcardX BOTS Added new commands, "#bot camp" and "#bot camp all". The first orders your bots to camp out if you target them. The second orders all bots you own to camp out, no need to target each.
  • Trevius Created methods for when an NPC is spawned to clean up the NPC code some.
  • WildcardX BOTS Fixed a bug caused by using #bot giveitem that didn't update the client that the iyem that was on the cursor is now gone.
  • WildcardX BOTS Fixed a bug that crash the client when trading with a bot.
  • KLS Fix for #ban
  • KLS #ban will now update the player's flag and kick them from the server.


  • WildcardX BOTS More code refactoring.
  • WildcardX BOTS Bots now appear as another client player to your client. This will lead to using your UI to perform operations like group invites/disbands and the raid UI. Perhaps even guilding your bot! (Thanks Trev for your assistance!)
  • WildcardX Fixed a bug that negatively impacted BOTS when the NPC scaling logic was introduced. This caused bots to spawn as outrageously large levels, like level 185!
  • WildcardX BOTS Bots can now be invited and disbanded from your group by simply using the group "Invite" and "Disband" buttons from the client's UI.
  • WildcardX BOTS Tweak to the bots total play time calculation to make it more accurate.
  • KLS Added #path meshtest simple to do a faster search on errant path nodes.
  • KLS Modified the accurate hazard code to make automatic path maps with more accurate info that requires less manual editing afterward.
  • cavedude (mackal) Pets will now be amiable to their owners, indifferent to all else.
  • cavedude (mackal) Added $client->KeyRingCheck() and $client->KeyRingAdd() to allow Perl to manipulate the keyring.
  • cavedude (mackal) Casting an invis spell on a player that already has a similar type invis spell will no longer drop the existing buff.
  • cavedude (mackal) Corrected message string for heal spells.
  • cavedude Added rule to determine at what HP a fleeing NPC will halt due to being snared.


  • WildcardX BOTS More code refactoring.
  • WildcardX Implemented 4 additional abstract methods in the mob object, HasRaid(), HasGroup(), GetRaid(), GetGroup(). These will be implemented as common interfaces by any class deriving from Mob.
  • WildcardX BOTS Tweaked bot logic so group channnel doesnt get spammed with every swing.
  • Trevius Minor adjustment to the flow of logic for the MaxClientsSetByStatus rule to allow it to override settings for the additional max client rules if enabled.
  • Trevius Corrected the Attack Rating portion of #showstats and #mystats
  • Trevius (Secrets) Added new quest::gmsay("message") command that will send a message to all GMs (GMs only) on the server.
  • Trevius (Secrets/Trevius) Added 2 new fields (maxlevel & scalerate) to npc_types for allowing NPCs to spawn within a range of levels and scale stats at the rate set
  • WildcardX NPC is no longer a friend class in the Mob class. Moved the class member Mob::target to Mob's private scope to ensure other classes use the Mob::GetTarget() and Mob::SetTarget() methods.
  • WildcardX BOTS Commented out code that let bots use the groups chat channel until I can fix I bug I found that causes bots to have their targets repeatedly reset to null values and back to their attacker while in combat.

Required SQL: utils/sql/svn/898_npc_maxlevel_scalerate.sql


  • WildcardX BOTS Significantly modified the bots table. Removed several unnecessary columns and changed many interger columns to accept signed values. Added new columns to track dates and times for bots.
  • WildcardX BOTS Slowed bot runspeed to a more reasonable default value.
  • WildcardX BOTS Bots will now depop instead of being murdered to go away.
  • WildcardX Only a Client object will try to update its group id in the database when a group member is removed from the group.
  • WildcardX BOTS Bots will now record their total play time.
  • WildcardX Modified Group::AddMember() to be more bots friendly and removed specific bot code to do the same thing.
  • WildcardX BOTS Modified the IsBotAttackAllowed() method to prevent a bot wizard's familiar from attacking.
  • WildcardX BOTS More code refactoring. Bots will now use group message channel to communicate with the group (idea being bots may eventually be in a different zone than the group and/or client).

Optional SQL: BOTS utils/sql/svn/892_optional_bots_table_mod.sql Optional SQL: BOTS utils/sql/svn/893_optional_bots_table_mod.sql


  • WildcardX Fixed a bug that prevented COMBAT_EVENT signaling to NPC's from working correctly.
  • WildcardX Bots will now call the database a lot less regarding their inventory. They can get info about their inventory from memory during runtime.
  • WildcardX Bots appearance like face, hair, etc is now persisted to the database and used during runtime.
  • WildcardX (Taurinus) Tweaked the way bots calculate their AA's so the code isn't as long and is easier to read.
  • WildcardX A bot getting aggro will aggro its group members for them to come to the bots defense.
  • gaeorn added utils/sql/svn/botsconvert.sql to convert old schema bots and inventory to new schema. if you need to convert old bots, use this instead of bots.sql.


  • WildcardX Fixed a bug that broke cash handins with NPC's.
  • WildcardX Fixed a bug that reversed a riposte attack's target.
  • WildcardX Merged the "bots" branch into trunk and removed the prior "EQBOTS" system from trunk. Please carefully evaluate this version before making any decision to upgrade your servers.
  • Trevius Added a Distance option for quest::follow(entity_id, distance) to allow setting the distance for the NPC to follow at.


  • realityincarnate SoF * Added opcode values to avoid packet dumps of some of the more annoying unknowns
  • realityincarnate SoF * Tradeskill success messages now display the recipe name instead of %1
  • realityincarnate Added #myskills command to bring up an SoF-style skills window showing current and capped skill levels
  • realityincarnate Skills can no longer pass the cap from initial training (specifically bard meditate)


  • WildcardX Implemented a method to calculate the reciprocal heading of a specified mob object.


  • Trevius Added heading option and bool option for saving guard spot to quest::moveto(x,y,z,[h,saveguardspot?]).
  • Trevius Added rule MaxClientsSetByStatus. If True, IP Limiting will be set to the status on the account as long as the status is > MaxClientsPerIP.


  • AndMetal Small fix to quest::scribespells() to return the correct amount of scribed spells.
  • AndMetal #setaapoints/#setaapts will now consistently add the correct amount of AA points. Also added a rule AA:ExpPerPoint(23976503).
  • AndMetal Added a little bit of logging for exp (CLIENT__EXP). Disabled by default.

Optional SQL: utils/sql/svn/853_optional_rule_aaexp.sql


  • gaeorn changes to login server to compile under linux. added linux makefile for linux. converted utf16 sql files to normal ascii text.
  • KLS Fix for issue where client would stop recieving communication when recieving more than 36 nodes in a find reply. Resolved by capping the amount of nodes find can return, more than 36 will result in unable to easily find message.


  • AndMetal AGI Penalty for being encumbered now matches the Titanium client. The old formula was much higher than the client was reporting.
  • AndMetal Added InLiquid() function to the WaterMap class. Will return true if you're in Water or Lava (or both?)
  • AndMetal Converted to some more Message Strings in zone/spells.cpp.
  • AndMetal Changed GetNextAvailableSpellBookSlot() & FindSpellBookSlotBySpellID() to return a result much faster.
  • AndMetal The scribespells commands/quest functions should no longer overwrite existing spells & will use only unused book slots.
  • KLS Added #path resort nodes to facilitate with keeping the pathing nodes in order.
  • KLS Fix for crash from adding/removing nodes.
  • KLS Combat range will now check the z axis as well.


  • KLS Added a much more accurate but slower Hazard Detection algorithm for #path process that will calculate water and very spikey terrain between two points, other instances of PathManager::NoHazards untouched.
  • KLS Added #path move and #path disconnect all.


  • Derision Moved RecalcWeight to after CalcAABonuses in bonuses.cpp because valgrind complained aabonuses.packrat was used uninitialised.
  • Derision Fixed memory leak in /who all processing.
  • KLS Added functionality to #path to faciliate making .path files in game, including a very CPU intensive #path process filename which will try to create a connected path from unconnected laid out nodes.
  • KLS /find will now do a hazards check.


  • realityincarnate Added quest::factionvalue() command to give more logical faction values than the client uses (Scowling = 1, Ally = 9)


  • Trevius Added a 4th type for quest::getlevel(type) that will get the characters level2 value, which is the max level the character has ever reached.
  • Trevius Added a 3rd option for saylink() to allow the link to be different than the say message. Ex quest::saylink("bind my soul", 0, "bind your soul")


  • Trevius Corrected/Updated some minor size stuff with illusions and player races.


  • Trevius EVENT_PROXIMITY_SAY will now work whether you have a target or not.
  • Trevius Added bool option to quest::saylink() to allow them to be silent. Ex. quest::saylink("silent link",1)
  • Trevius Added quest::FlyMode() command to allow setting flymode on players via quest scripts.
  • WildcardX Fixed the build by casting this->GetTarget() as NPC in void Client::Handle_OP_ItemLinkClick method as a parameter to a EVENT_SAY call.
  • WildcardX Added the changelog file to the solution for convenience.
  • realityincarnate Spells cast from items now reduce the charges before creating spell effects (stops loregroup conflict with Gloves/Hammer of Infuse)


  • Trevius (Shendare) New object command (#object List|Add|Edit|Move|Rotate|Save|Copy|Delete|Undo) to manipulate objects in real-time from in-game in almost every possible way!


  • WildcardX (for BOTS alpha code only) Set textures to 0 to create the correct appearance of a naked bot on spawn without any equipment.
  • AndMetal Changed AA Effects to be loaded into a map instead of a static array.
  • AndMetal Changed weight in the client class to uint32 from int16 since the client uses 32 bits for the weight. This should prevent it from overflowing.
  • AndMetal Corrected Packrat from 10% per level to 1% per level per the Titanium client. It also now affects coin weight (also 1% per level) per the Titanium client.
  • AndMetal Cleaned up a few compile warnings.
  • WildcardX Advanced a couple error messages before a return statement in the EQEmuLoginServer project.


  • KLS Reimplemented pet hate scaling.
  • KLS Removed code that ports you if you're found warping.
  • WildcardX (for BOTS alpha code only) Inviting a bot to group will show the bot name without any numeric characters (ie, mob::cleanname()).
  • WildcardX (for BOTS alpha code only) Detecting pacified mobs via spell effect type instead of specific spell id's.


  • Trevius Added "featuresave" option to #npcedit that will save all currently set facial features.
  • Trevius Fixed crash for #randomfeatures if no target was selected before using it.
  • Congdar Fix EQBOTS AISpells break. Add new rules, features too much to list.
  • KLS Upped default monk melee damage, halved default monk special attack damage by a little over half.

SQL: /utils/sql/svn/773_monk_rules.sql


  • KLS SoF * Changed raid join packet encode slightly.
  • KLS SoF * Added workaround for disconnection on death for now.
  • WildcardX Fixed BOTS so the bot doesn't warp to its owner.
  • WildcardX All commands for the BOTS system can be tested now except for bot raiding and bot group raiding.


  • Trevius (Zeice) Added #mystats command as an alternative to #showstats that only shows stats for the client or it's own pet.
  • WildcardX Migrated more code from EQBOTS to BOTS. The BOT code is less buggy than last iteration and now has even more active features that can be tested but there is a known issue or two I am aware of and working to correct.
  • KLS Fix for fear not wearing off properly.
  • KLS Small tweaks to npc spell ai.
  • KLS SoF * Raids should now function properly.


  • WildcardX Migrated more code from EQBOTS to BOTS. The BOTS code can do basic functions now but its still "buggy" compared to EQBOTS until migration/integration is complete.
  • KLS Clients are no longer immune to charm.
  • KLS Added several checks for IsFeared where we were previously only checking IsStunned.
  • KLS EVENT_COMBAT should no longer be called when a NPC dies.
  • KLS Changed way AISpells was loading, did away with arbitrary 16 spell limit on npc spell lists.


  • WildcardX Migrated more code from EQBOTS to BOTS.
  • WildcardX Included StringIDs.h to the zone project file and allowed the ";" to replace the "," characters in the WORLD project file.
  • Trevius Added rule ArcheryBaseDamageBonus to allow easy adjustments to archery base damage
  • Trevius SoF * Adjusted how AAs are loaded to allow all to be fully functional. This is a temp work-around until the correct way is finalized.
  • KLS Lowered aggro backstabs generates by roughly ⅔ for a high level rogue, probably a bit less for a low level rogue.
  • KLS Backstab will now use the backstab damage field from items instead of weapon damage.
  • KLS Redid all combat skill ups, can only skill up against light blue targets or better for offensive and defensive actions, wont work against clients or NPCs who don't have aggro lists.
  • KLS Mobs will prefer targets who are not feared to targets who are feared when selecting new targets.
  • KLS Added Rule (Character, MaxFearDurationForPlayerCharacter).
  • KLS Fear will now cause PCs to run instead of just be stunned, beware.


  • Derision Fix for mobs getting stuck if their path between waypoints attempts to take them 'under the world'.


  • KLS Reworked EVENT_ATTACK to be more efficient.
  • KLS Reworked EVENT_COMBAT to be both more efficient and smoother, no longer having an arbitrary delay before it fires.
  • KLS Took out code in HateList::IsEmpty() that no longer makes any sense to me, it should be noticably faster.
  • KLS Took out old unused quest::flagnpc stuff.
  • KLS Added #netstats command, allows GM to view the network sent/recv & sent/recv per second on their target or themselves.
  • WildcardX Migrated more code from EQBOTS to BOTS and reworked BOTS to derive from NPC object instead of Mob.


  • gaeorn (drakelord) Added slow migitation. Set npc_types.slow_mitigation with the portion of slow you want mitigated: 0 = 0%, 1 = 100%, .5 = 50%, etc.
  • AndMetal AAs are now calculated in CalcBonuses for clients.
    AAs that have been converted: (Advanced) Innate STR / STA / AGI / DEX / INT / WIS / CHA, Innate Enlightenment, Natural Durability, Physical Enhancement, Planar Durability, Packrat. They should already be in the PEQ aa_effects table.
    For new AAs, you'll want to modify the StatBonuses struct in zone/mob.h. You'll also need to add a case in ApplyAABonuses in zone/bonuses.cpp to add it to aabonuses.
  • AndMetal (via Congdar) Fix for quest::traindiscs().
  • AndMetal Fixed Packrat. However, it doesn't seem to be updating correctly to the client (or we're taking too much off).
  • AndMetal Added weight to #showstats, accurate to 1 decimal point.
  • KLS NPCs will no longer try to base their attack speed off weapons they're using, the code wasn't working anyway.
  • KLS Lowered monk kick damage and damage table bonuses but added rules to govern this damage so they can be boosted up for any servers that want.
  • KLS More work on ranged damage for npcs, not yet fully implemented but quest functions can cause NPCs to ranged attack.
  • KLS Added quest::IsEffectInSpell(spell_id, effect_id), quest::IsBeneficialSpell(spell_id), quest::GetSpellResistType(spell_id), quest::GetSpellTargetType(spell_id)

Required SQL:



  • KLS Fix for AA reuse timer text.
  • KLS Added rules to replace defines: Combat:MaxRampageTargets, Combat:MaxFlurryHits
  • KLS Redid inner workings of rampage a bit to be more efficient memory wise and to hold an unlimited number of rampage targets instead of capping at 20.
  • KLS Made ranged combat stuff virtual so I can implement npc ranged attacks tomorrow.
  • KLS Added 3 perl functions for the mob scalar type: SetEntityVariable(id_num, var), GetEntityVariable(id_num) and EntityVariableExists(id_num), taking int32 for id_num and string for var. Allows someone to store as many variables on the entity being targeted as they would like.


  • KLS Berserker NPCs will now frenzy instead of kick.
  • KLS Fix for GetHateRandom() method crash if there are 0 people on the hate list.
  • KLS Repop force was broken when we went to the instancing system, it has now been fixed.
  • KLS Updated #advnpcspawn to be able to edit respawn and variance timers of spawn points in game.


  • AndMetal Added rules for Sacrifice, which also corrects the minimum level you can use it on: Spells:SacrificeMinLevel(46), Spells:SacrificeMaxLevel(69), & Spells:SacrificeItemID(9963).
  • AndMetal Switched to some more Message String IDs.
  • AndMetal quest::scribespells can now accept minimum level as a 2nd argument. Examples: quest::scribespells(60,60) will scribe just level 60 spells, quest::scribespells(75,71) will scribe spells from 71 through 75.
  • AndMetal Ditto with #scribespells, quest::traindiscs, & #traindiscs.
  • AndMetal quest::scribespells & quest::traindiscs will now return the amount of spells/disciplines that were scribed/learned (an optional way to verify success or failure).
  • AndMetal #scribespells & #traindiscs will limit the max level to whatever the rule Character:MaxLevel is set to, unless you have GM Mode turned on, in which case it's limited to 255 (uint8).
  • AndMetal Fixed a compile error introduced in Rev 729.
  • gaeorn SE_Harmony and SE_ChangeFrenzyRad effects were reversed. This is based on info from alla regarding spells post OoW that only have SE_Harmony effect (reaction radius).
  • KLS Added NPC code 'd' to make npcs be able to see through feign death attempts. (mostly implemented, still have to look into aggroing people who are feigned by proximity)
  • KLS Fixed a typo in the petition code and un-reverted the petition.h file (hi, there's a reason it was changed).
  • KLS Added mob perl object HealDamage(amount, caster = 0);

Optional SQL: utils/sql/svn/732_sacrifice_rules.sql


  • Derision Fix for mobs in pathing enabled zones fleeing at low health at full run speed.
  • Derision Made rule Map:UseClosestZ default to false. Only set true if using azone2 generated maps (specifically those for EQG zones).
  • realityincarnate Starting cities are now tracked for newly created characters.
  • realityincarnate Enabled the /setstartcity command for characters without a start city assigned.
  • realityincarnate Added $client->SetStartZone and $client->GetStartZone perl commands.
  • KLS Petitions will assign id based on character id instead of this stupid desyncing junk.
  • KLS Max NPC name length increased to 50 characters up from 30.
  • KLS Save on zone success will now commit immediately instead of possibly delaying. Hopefully will help with some of the situations where people zone to bad locations.
  • gaeorn New rule NPC:SmartLastFightingDelayMoving. When true (default), if a mob is already wandering home during a FD pull and the puller stands up and then FD again, the mob's timer to return home will not reset, but instead will return home immediately. The timer will be reset if the mob forgets about the FD puller.
  • gaeorn New rule Combat:AssistNoTargetSelf. When assisting a target without a target: true = target self (default), false = leave target as was before assist (this is the behavior on live).

Optional SQL:

utils/sql/svn/730_smart_delay_moving.sql utils/sql/svn/731_rule_assist_notarget_self.sql


  • Derision Fixed a pathing bug relating to nodes incorrectly culled from the front of a path.
  • KLS Reworked bind code a bit.
  • KLS Pets no longer get client war/berserker crit bonuses.


  • Derision Began work on pathfinding for aggro/fear and Find NPC.

The path files for the first few zones can be found at Put the .path files in your Maps directory with your .map and .wtr files.

Optional SQL:



  • KLS Specialization should now never increase the amount of mana it takes to cast a spell.
  • KLS Fix for mana preservation focus not functioning correctly.
  • KLS Fix for duration enhancement focus effects not affecting detrimental spells.
  • KLS Fix for summoning focus not reducing the cast time of nec/beast pets serverside.
  • KLS Insufficient mana serverside check will now be before any modifiers instead of after, if you don't have enough mana in your mana pool to cast a spell after modifiers but do before modifiers the spell will cost your entire mana pool.
  • KLS Added new npc code 'g', lets npcs resist spells by casters that are not in melee range.
  • WildcardX More code migration from EQBOTS to BOTS.


  • Trevius SoF * Tradeskill containers within a character inventory can now combine recipes.
  • Trevius SoF * Items with Recast Delays no longer appear as greyed out.
  • KLS More changes to archery damage.


  • Trevius Structure work for Player Profile Recast Timers and Illusions in 6.2 Client.


  • Trevius #wc (wearchange) as well as all of the facial feature commands will now retain armor tint when used.
  • Trevius Using #wc now makes temporary changes visible by all clients.
  • Trevius Decimals can now be used with the #size command instead of it only accepting whole numbers.
  • Trevius Size is now identified in the illusion struct for SoF and Titanium.
  • KLS Implemented quiver haste.
  • KLS Change to ranger stationary archery bonus. (Re: Nerfed)
  • KLS Adjusted high level ranger archery hate.
  • KLS Fix for mana reduction focus effect checking base instead of base2
  • KLS Fix for hybrids not getting mana reduction effects.

Optional SQL: /utils/sql/svn/710_tint_set_naming.sql


  • KLS /surname changes
  • KLS Implemented OP_ClearSurname
  • KLS (gaeorn) Several 64-bit compile and runtime fixes
  • KLS (gaeorn) NPC wander back rules.
  • Trevius #texture will now allow player races to retain armor tint for both PCs and NPCs.
  • realityincarnate bug fix for changing max_hp with the modifynpcstat command

Required SQL: /utils/sql/svn/704_rules.sql


  • Trevius (Rabayn) When creating recipes, it is no longer required that componentcount be on separate rows from the successcount or failcount row.
  • Trevius (takatok) AA Shield Block added.
  • Trevius (Shendare) Armor Tint on NPCs can now be set on a per-slot basis.
  • cavedude Added rules to disable/change #peqzone debuffs. Cleaned up code regarding it some.
  • Derision Fixed the BestZ stuff I broke in Rev686
  • WildcardX More work migrating EQBOTS code into BOTS.

Required SQL: /utils/sql/svn/702_aashieldblock_tint_table.sql /utils/sql/svn/703_peqzone_rule.sql


  • WildcardX Migrated more code for BOTS from database.cpp to bot.cpp.
  • AndMetal Added rule 'Zone:PEQZoneReuseTime' to adjust the reuse time on the #peqzone command. Defaults to 300 per change in Rev 612.
  • AndMetal Correction to the item link code used in quests.
  • AndMetal Cleaned up zone/StringIDs.h to make it easier to read, plus added some additional String IDs.
  • AndMetal Cleaned up fishing some.
  • AndMetal Fishing failures should now happen immediately instead of waiting for the timer to run.

Optional SQL: /utils/sql/svn/699_peqzone_rule.sql


  • KLS NPCs will no longer warp to their very first waypoint if they start on a grid, make sure they're spawned near their first waypoint!
  • KLS Added quest::SetRunning(value) (1 for run, 0 for walk) to let a NPC run when out of combat instead of walk.
  • KLS Added quest::IsRunning() return 0 for walk, 1 for run to let quest know if the npc is walking or running.

cavedude (nilbog): Added many missing pet names.

  • realityincarnate Restricted monster summoning to things more traditionally considered monsters (no boats, among others)


  • Derision Fixed some flawed database queries and a few compile warnings.
  • Derision Added command #reloadtitles to reload titles from the database.
  • Derision Added second optional argument to #title and #titlesuffix to save the title to the database if 1.
  • Derision Added second optional argument to $client->SetAATitle/SetTitleSuffix to save the title to the database.
  • realityincarnate Monster Summoning pets should work properly now.


  • Derision Removed redundant flymode on/off in water code (not needed since Rev161).
  • Trevius New fields added to the alt_vars table to allow SoF and Titanium to both use it.
  • KLS Aggro tweaks + melee spell procs wont proc off ranged attacks anymore.

Required SQL: /utils/sql/svn/687_aa_table_changes.sql


  • Derision Old corpses summoned by Expedient Recovery will no longer rebury after 5 seconds.
  • Derision Added optional duration parameter to quest::popup.
  • Trevius SoF * Adventure Merchant Selling is now functional.
  • Trevius SoF * Items with click effects now show the min level required to click them.
  • Trevius SoF * Items being sold now show the correct price that the merchant will pay for them.
  • cavedude Changed the items-0.6.0-DR2-0.6.1-DR1-convert.sql error message to stop confusing people.
  • cavedude Green con KOS NPCs will now aggro clients while sitting.
  • Derision Spells Gems now stay greyed out after zoning until their recast time is met.
  • KLS More aggro tweaks.
  • KLS Fix for zone crash from world server.
  • WildcardX Migrated more code for BOTS from database.cpp to bot.cpp.


  • Trevius SoF * The following fields now show up on items that have values set for them, but the stats are not actually used by the server yet:
     svcorruption, purity, backstabdmg, dsmitigation, heroic_str, heroic_int, heroic_wis, heroic_agi, heroic_dex, heroic_sta
     heroic_cha, heroic_mr, heroic_fr, heroic_cr, heroic_dr, heroic_pr, heroic_svcorrup, healamt, and spelldmg
  • Trevius SoF * Corrected Max Stat calculation for SoF clients over level 75.
  • Trevius Fix for compile error; should have been fixed already hint.
  • Trevius More tweaks to make illusions work better with features and armor/helm graphics
  • Trevius Added alias #rf for the #randomfeatures command. Note that the feature changes are not permanent.
  • Trevius Changed the default way of loading spells to now load from the spells_new table instead of from the spells_us.txt file.
  • Derision Implemented the Title Window.
  • KLS Aggro tweaks.
  • KLS Fixes to compile errors/warnings.

Required SQL: \utils\sql\svn\665_heroic_resists.sql Required SQL: utils/sql/svn/667_titles.sql

Recommended SQL: (This is recommended for databases that don't stay current with PEQ or are custom) UPDATE items SET backstabdmg = damage WHERE backstabdmg = 0 AND itemtype = 2;

  • Warning If you do not have a spells_new table yet, you must create one and load spells into it or zones will crash when loading in. To create the spells_new table, use the SQL from \utils\sql\svn\230_spells_table.sql After creating the table, you can import or export your spells from the spells_us.txt file by using the scripts:

The easiest way to import your spell file to the table is to move the file to your main server directory where your spells_us.txt file and your eqemu_config.xml file are. Then run the following command at a command prompt: perl

See this post for more information on importing/exporting the spell file:


  • Trevius Added new command #randomfeatures which will randomize all possible features for playable races.
  • Derision Code support for Steadfast Servant Veteran AA.
  • Derision Added entity_list::GetRandomClient accessible from Perl.
  • Dersiion Fixed infinite loop in EntityList::RadialSetLogging.
  • Derision AATimers are now sent at level 1 rather than level >= 51.
  • KLS Fix for name_filter checking.
  • KLS Name filters will now apply to surnames and will consider any name with 3 repeating characters or more invalid.
  • KLS Fix for compile error; should have been fixed already hint.


  • Derision Implemented SE_PercentXPIncrease and Resist caps.
  • Trevius Removing an Illusion should now restore all features to their original settings in most cases.
  • Trevius SoF * Adjusted Power Source code some to remove a bug with using the slot.
  • Derision Implemented SE_SummonAndResAllCorpses
  • KLS Rebalanced some spell effects aggro values.
  • KLS Hate added should now be treated correctly.
  • KLS Archery should now cause aggro.
  • KLS Added rule Aggro:PetAggroAmount to control how much hate a pet causes, 50% default.
  • KLS Bash will now cause extra hate depending on the AC of the shield you're using if any.
  • KLS Implemented resist reduction and hate reduction spell focus.
  • KLS quest::updatespawntimer will now set the respawn timer in the database.
  • KLS Stole Trevius' idea to let augments work as focus items.


  • Trevius The #nukeitem command and related quest commands is now able to remove items on the cursor and within bag slots of the cursor.
  • Trevius SoF * The Power Source Slot is now a usable slot. Items set to use slot 22 in the items table will be able to use this new slot.
  • KLS On successful completion of an adventure players should be removed from the adventure immediately instead of after 30 minutes.


  • AndMetal Rule values can be viewed and modified through the web interface. They're updated into the database only, so they won't go into effect until you restart the server.


  • realityincarnate Added /makeleader command functionality
  • realityincarnate Non-leaders can no longer kick members from the group
  • KLS Added $zoneweather perl export


  • Trevius Added rule Combat:ArcheryStationaryPenalty to allow adjustment of the Archery damage penalty for moving or rooted targets.
  • KLS Backstab tweak again.
  • KLS Added Perl *commands GetItemAt(slot), GetAugmentAt(slot, aug_slot) both returning type ItemInst usable from the Client object.
  • KLS Added Perl command: IsType() for use on the ItemInst object.

Optional SQL: \utils\sql\svn\646_archery_penalty_rule.sql


KLS(realityincarnate): Charms: Added charm item scaling with scriping support and initial work on evolving items. KLS(realityincarnate): Added perl method $client->GetModCharacterFactionLevel(FactionID) KLS(realityincarnate): Added perl method $group->GetMember(index)

  • KLS Added perl method $client->GetLDoNWins()
  • KLS Added perl method $client->GetLDoNLosses()
  • KLS Added perl method $client->GetLDoNWinsTheme(theme 1-5)
  • KLS Added perl method $client->GetLDoNLossesTheme(theme 1-5)
  • KLS Added support for item clicklevel and item clicklevel2
  • Trevius Increased spellbook from 400 to 480 in the Player Profile for use with SoF (60 page spell book)
  • Trevius SoF * Added new functions to SoF.cpp for converting Slot IDs between Titanium and SoF
  • Trevius SoF * Corrected the location of the spellbook field in the Player Profile to fix an issue with loading spells
  • WildcardX Check in of the start of what will become the new BOTS subsystem/framework. This is far from done so just continue to use the existing EQBOTS code you have been using.
  • KLS Change to dangerous item inst aug creation, hopefully addresses segfault on 64 bit linux.
  • KLS Hopefully fix for pets not giving adventure credit to players in ldon instances.


NOTE (WildcardX): This version of the server code is a little dangerous for BOT enabled servers. I do not recommend using this revision for BOT enabled servers. Most of the existing BOT code is going to be re-implemented as a "BOT" object in the server code so until I complete this architecture change the BOT code may become somewhat unstable. I apologize for the inconvience but this is necessary to allow the server code for the BOTs to be more flexible and extensible than it is now.

  • Derision Check for duplicate lore items when fishing.
  • Derision Fixed a memory leak in fishing/foraging code.
  • WildcardX Traded static integer values for the appropriate enumeration that defines group action types.
  • WildcardX A Player grouping with one or more BOTS will now correctly be set as the group leader.
  • WildcardX You can now target your BOT to disband it from the group just as you would a player. This does not call the logic that #bot group remove does, though. Keep using the BOT command for now.
  • WildcardX A group of one Player and a BOT can now request a LDoN Adventure, but doing so will crash the zone.
  • KLS Change to BS formula: moved backstab bonus to damage table. Still might be off but I have another change in mind if so.
  • KLS Fix for bug in client calcbonuses.


  • Trevius SoF * Corrected Char select Primary/Secondary slot display order.
  • Trevius SoF * Added gender to the conversion for bodytypes 66 and 67, which should resolve any remaining issues with it.
  • Derision New Universal Chat Server combining both mail and chat server functionality.
    Required to support mail, chat and friends/ignore for SoF clients.
  • WildcardX Corrected the project file for eqlaunch. This should allow eqlaunch to execute correctly for Windows XP and Windows 2003 Server.
  • WildcardX Corrected database table definition that created a bug which prevented a BOT from being created.


CREATE TABLE friends ( charid int(10) unsigned NOT NULL, type tinyint(1) unsigned NOT NULL default '1' COMMENT '1 = Friend, 0 = Ignore', name varchar(64) NOT NULL, PRIMARY KEY (charid,type,name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;



  • Derision SoF * Adventure OPCode updates


  • Trevius SoF * Added conversion for bodytypes 66 and 67 so they are now untargetable, invisible and have no showing name as they should be.
  • Congdar Bots * Implemented raid maintarget, updates to magepet and pvp. Added Sinister Strikes & Strikethrough AAs and several other updates.
  • KLS Pets will no longer gain aggro from their owners before their owners load in. Fixes both a dupe and crash issue.
  • KLS Players will no longer take damage or die before they finish loading into the game.
  • KLS Fixed a crash in /open.


  • KLS Used Cbodmer old ldon trap code as a base for ldon trap implementation. About 50% of the code for this system was his so I figured he deserves credit too.
  • Derision Added messages when Leadership Exp is toggled on/off.
  • Derision Fixed bug where group retained Leadership AA benefits of previous leader.

Required sql: 621_LDoNTraps.sql Updated titanium .conf file for ldon opcodes. Will look at other clients later.


  • Trevius Updated the new Adventure Opcodes for SoF


  • KLS Forgot to update .conf files with the merge. Please update yours if haven't.
  • KLS Added settable flavor text to adventure recruiter entries.

Required sql: 619_Adventure_Recruiter_Flavor.sql


  • KLS (takatok) Fix for agil being factored twice in to-hit calc.
  • KLS (tsowl) Reimplemented corpse reloading timer fix. Should work with burried corpses now. (Sorry it took so long to get back to).
  • KLS Finished implementing Assassinate and Rescue adventure type
  • KLS AC in calc will now not cap at 0. What this means: A level 65 hitting a level 1 will now hit for a majority of attacks at or near maximum damage, it should affect any other situations.
  • KLS Spells shouldn't cause interrupts any longer.
  • KLS LDoN theme "ALL" items should show up properly now.
  • KLS Added sanity check on adventure merchant for both lore items and trying to purchase items of one theme that has a min point requirement while not meeting that requirement.
  • KLS Rule Adventure:ItemIDToEnablePorts will now actually cause the door to ignore this rule if it is set to 0.
  • KLS Changed the evacuate work around to use zone 1 and zone 2 instead of plane zones that probably have requirements set on them.


  • realityincarnate Added EVENT_CAST to player quests
  • realityincarnate AA $quest functions: $client->GetAAPoints(), SetAAPoints(value), AddAAPoints(number), RefundAA(), GetSpentAA()
  • KLS Procs will now only occur on a player's targeted mob.
  • realityincarnate fixed a calculation error with spent AA's
  • KLS Merged instance branch to trunk.


  • KLS Redid procs a bit, spell procs should work more consistently and ppm formula should be less broken and will also take into account haste now.

Highly suggested you change your Combat:AvgProcsPerMinute rule to 2.0 if you want it to be live like.

  • Derision Group Leadership AA


ALTER TABLE group_leaders ADD assist VARCHAR( 64 ) NOT NULL , ADD marknpc VARCHAR( 64 ) NOT NULL , ADD leadershipaa TINYBLOB NOT NULL ;


INSERT INTO rule_values VALUES (1,'Character:KillsPerRaidLeadershipAA','50',''); INSERT INTO rule_values VALUES (1,'Character:KillsPerGroupLeadershipAA','50','');


  • Derision Lay Hands/Harm Touch hot buttons now remain depressed across zoning until reuse timer is up.


  • Congdar Bots * updates to bot pvp, raidexp and magepet


  • Trevius SoF * Added new opcode and structure to support the Respawn Window. It isn't fully functional yet, but most of the code is there now.
  • Congdar Bots * Fixed botraid experience distribution.


  • WildcardX Fixed a bug that displayed the name of a target being summoned in an incorrect format.
  • Angelox Bots* Weapons that proc'd rune-types were proc'ing for the whole group. 3 fighters with PGTs made you pretty much bullet-proof.


  • cavedude (gaeorn) Added a possible fix for some NPCs not always spawning.
  • Congdar Bots * Added PvP for bots.
  • WildcardX (erde) Added include for limits.h.


  • KLS Fixed dodge/parry/riposte, lowered their effectiveness from skill points slightly.
  • Congdar Bots Added new command #bot magepet [earth|water|air|fire|monster] Select the pet type you want your Mage bot to use.


  • KLS Spells with 0 spell mod will now act as if their mod was 100% or normal instead of 0% of normal.
  • KLS (Derision) Implemented discipline reuse timer's client side effects
  • Congdar New feature to choose if a key should go on the keyring or not.

required sql 564_nokeyring.sql


  • Trevius Added new quest command quest::saylink() to create itemlinks in quest text that can be clicked for a response

Recommended SQL: .\utils\sql\svn\553_saylink_table.sql


  • Angelox Bots* Bots can't stack invis-undead, invis-live, or any other invis type spell.
  • KLS Fix for NPCs jumping in place when they have the fixpathingZ rules for movement enabled.
  • KLS Traps will no longer attempt to clean up their npcs, every time a trap is destroyed so are the NPCs so it's redundant and risky.
  • Congdar Bots * Added Magician AA Elemental Durability, Fixed #bot corpse summon, AI Tweak


  • Trevius Identified hairstyle, haircolor, beard, and beardcolor in the Titanium Illusion struct so the related commands now work in Titanium.
  • KLS PvP info will only be set if the server type is set to 1 (pvp)
  • KLS Adjusted chances on dodge/parry/riposte modifiers
  • KLS Made experience con scaling into a rule.
  • KLS Added Rules: (Character, UseXPConScaling), (Character, LightBlueModifier), (Character, BlueModifier), (Character, WhiteModifier), (Character, YellowModifier), (Character, RedModifier)
  • Derision Bandolier bug fix.
  • Derision Equipped items that should confer an extra potion belt slot now do so in Titanium and the 6.2 client (was already working in SoF).
  • Angelox Bots* (Congdar) fixed Bot illusion / change form spells as to who is affected.
  • Angelox Bots* added check to Bot pacify for casting from a distance.


  • Trevius New Commands added: #face, #helm, #hair, #haircolor, #beard, #beardcolor, #heritage, #tattoo, #details
  • Trevius Adjusted the #fixmob command to use all features. The new format is "#fixmob featurename prev/next"
  • Trevius Corrected the R524 optional SQL file


  • Trevius (Shendare) Added armor tinting functionality for NPCs by setting it in the npc_types table
  • Trevius Added base support for illusions to use all facial features, but functionality still needs to be added.
  • Derision Reverted (Minimum 3% chance to proc from weapon proc buffs)
  • KLS Reduced chance to hit for min damage with AC.
  • KLS Added AC scaling by level, will put it in a rule soon.
  • KLS Enabled both petition window 'p' and pvp window 'ctrl p' on titanium/sof; neither are functional but they're enabled now and we can work on that later.
  • Congdar Bots * fix compile error and update to current combat code
  • Congdar Bots * fix pet exploit
  • KLS Added backward compatibility to older corpses.

Required SQL: .\utils\sql\svn\527_npc_armor_tint.sql


  • Trevius (Trevius/Shendare) Swapped Beardcolor and Beard in the spawn struct for Titanium and Titanium Facial Features should be finalized now.
  • Trevius SoF * Drakkin Specific Features (Heritage, Tattoo and Details) should now be fully functional for NPCs and PCs
  • Derision Minimum 3% chance to proc from weapon proc buffs (e.g. vampiric embrace, call of sky etc.)
  • Trevius Added encode for Illusion packets in Titanium so they see Drakkin as human after clicking off an illusion
  • Trevius Optional SQL for adding a notes field to the rule_values table with notes from ruletypes.h

Required SQL: .\utils\sql\svn\518_drakkin_npc_type_features.sql Optional SQL: .\utils\sql\svn\524_rule_values_notes.sql


  • Trevius More work on Facial Features for Characters. Trying to get them functioning properly without hacks before adding SoF Features.
  • Trevius SoF * Character Facial Features other than Drakkin specific ones all now work 100% in Character Select and in game.


  • Trevius SoF * (Shendare) Corrected the FaceChange Structure and added an encode to make it work
  • Trevius SoF * Identified the Drakkin related fields of the Character Select Structure
  • KLS Fix for elemental dmg not calculating correctly.


  • Trevius SoF * (Shendare) Added a temp commented out test section of code to spawn struct encode
  • Trevius SoF * (Shendare) Identified hairstyle, haircolor, flymode, drakkinheritage and drakkintattoo in the spawn struct
  • Trevius SoF * (Shendare) Changed facial feature code for getting features slightly
  • Trevius SoF * Identified beardcolor, invis, and drakkinspikes in the spawn struct
  • Trevius SoF * Updated the OP_CastSpell to convert bag slot from Titanium to SoF for potion use
  • KLS Reverted player corpse changes from 5/10 as they caused shadow rest to stop functioning.
  • KLS Fixed the /bug structure and updated the table to be more useful.

Required SQL: .\utils\sql\svn\503_bugs.sql


  • mackal Added a function to allow Perl to check augments within items.
  • cavedude Increased bind wound skill up speed some.
  • KLS Fix for potentially dangerous typo in spawn conditions code.
  • KLS Removed some non-functioning but still taking up database resources database code.
  • KLS Change to a spawn2 table query to reduce disk writes.

Suggested SQL: ALTER TABLE spawn2 DROP INDEX ZoneGroup, ADD INDEX ZoneGroup (zone);


  • KLS Fix for a add/remove raid looter across zones error.
  • KLS Changed order of split raid exp, ensures amount given to a player is always at least 1.
  • KLS (tsowl) Various Fixes


  • realityincarnate Modified quest::say to allow npcs to speak in other languages, added $langid quest variable
  • realityincarnate Made low language skill/drunkenness a bit less understandable
  • realityincarnate Duplicate lore items from foraging/ground spawns are now handled correctly
  • realityincarnate Lore items in the shared bank no longer trigger conflicts with items in individual inventories
  • KLS Fix for Group:: and Raid:: splitexp bonus calculations happening once for every person in the group / raid, resulting in very high numbers for group and non-positive numbers for raid.
  • Trevius SoF * Corrected a minor issues with new mounts where they weren't setting helm texture properly.


  • Derision Fixed a bug where a pet set to guard would appear not to stop on returning to it's guard spot after being ordered to attack.
  • Derision Fixed a bug where a mob aggroed would sometimes appear to run past it's target.


  • Trevius (Erde) The Web Tool now shows the name of the process running each Dynamic zone (example: dynamic_01)


  • Angelox Bots: Added command '#bot shrinkme' requires Shaman or Beastlord (defaults to Shaman).
  • Derision Added redux_aa2, redux_rate2 fields to aa_actions.
  • Derision Improved Hasty Exit should now reduce the reuse time of Escape.
  • Derision The reuse timer in the AA window now shows the reuse time reduced by applicable AAs.
(although if you purchase an AA that reduces the reuse time, you must camp before the reduced reuse time will be updated).


ALTER TABLE aa_actions ADD redux_aa2 MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT '0', ADD redux_rate2 TINYINT( 4 ) NOT NULL DEFAULT '0'; UPDATE aa_actions SET redux_aa2 = '886', redux_rate2 = '10' WHERE aa_actions.aaid =243 AND aa_actions.rank =0 LIMIT 1 ;


  • Trevius SoF * Melee stun/bash no longer causes you to spin
  • Trevius SoF * Spell Fizzles and Interrupts no longer cause abnormally long refresh times
  • realityincarnate Fixed lore check bug with items in lore group -1
  • KLS DoTs should no longer break roots early.
  • KLS Added Special Attack hit magical 'm' and special attack hit bane 'b', will allow the mobs affected to hit things that require magical or bane weapons to hit.


  • KLS Code block for pets getting sent into attack did not verify that other was not null, causing rare crashes the old way and a pretty common crash with it's new positioning. This has been corrected.
  • Derision Updated spell_type in altadv_vars table to reflect the shared reuse timer ID that it really is.
  • Derision AA reuse timers should now display correctly with hotkeys remaining depressed when appropriate.
  • KLS Code block for pets getting sent into attack did not verify that other was not null, causing rare crashes the old way and a pretty common crash with it's new positioning. This has been corrected.
  • KLS Added area rampage 'r' npc special attak code.
  • Congdar Bots * Added Rogue Triple Backstab AA, Enhanced #bot list, Fixed beneficial weapon procs to not effect the entire group.
  • realityincarnate Fix for SoF attunable items
  • realityincarnate Added checks for multiple items in the same lore group
  • Congdar Bots * Fix Cleric resurrect spell selection, Added zone profiles, Fixed crash with bot follow

REQUIRED SQL: utils/sql/svn/463_altadv_vars.sql


  • KLS Some optimizations for the aggro code. Added a timer for aggro checking will do it twice a second by default: lower AItarget_check_duration in features.h if aggro feels too sluggish for your tastes and recompile.
  • Derision Increased reuse_time in AA_DBAction to a uint32 to support reuse timers greater than 18 hours.
  • Derision Code support for Chaotic Jester Veteran AA.
  • Congdar Bots * Improve Cleric healing ai, fix ae break, update attack code.
  • Congdar Bots * Fix sql error for bot table
  • KLS (Secrets) min/max damage updated to int32
  • KLS Fixed a bug with accuracy tweaks and finished them up. The system should work fairly well now.
  • KLS Removal of several rules associated with the dual accuracy system and the old system for defensive and offensive accuracy bonus.
  • KLS Some warning fixes on MSVS.
  • KLS Fixed pets not getting sent into battle on attack.
  • KLS (theblaz) Pets who were previously guarding after a pet attack command will return to their guard spot; though it appears a stop moving packet is missing on the pet guard spot waypoint.
  • KLS Rampage will no longer hit the main tank unless the main tank is the only target in range.
  • KLS Swarm pets will once again disappear when their target dies.
  • KLS Added zone zone profiling stuff.


  • realityincarnate Augment Item Info.
  • realityincarnate Show helm option will now save on camping/zoning.
  • Derision Corrected a few memory leaks.
  • Derision 'Live'/Anniversary patches no longer registered.
  • Derision Fix for random client crashes when combining items in world containers (e.g. augmenting items).
  • BWStripes Fix for quest::echo.
  • erde Added long zone name support to the web interface.
  • Cripp Fix for the web interface for those using Perl 5.10.
  • Congdar Bots * randomized face/hair etc. so they don't all look the same. Fixed Bard AE songs.


  • Congdar Bots * bots can now use bows, new command '#bot archery'. Added Ranger archery AA's. Reduced chat mana spam. Tweaked spell ai. Fixed memory leak. Updated '#bot corpse summon'.
  • Derision SoF * AAs affecting stats now show the correct stats in the client.
  • Derision Tweaked base resists to match the client.
  • gatorman Fix for QuickSummoning AA (to include Call of the Hero)
  • Congdar Bots * root/snare spell ai fix


  • Trevius SoF * Added rule for setting a startzone for SoF Clients separate from where Titanium Clients are set to start. Set as Zone ID number.

optional sql: utils\sql\svn\447_sof_startzone_rule.sql


  • Derision SoF: Reading books/notes/scrolls now works.


  • Derision SoF: Ranged attack animations.
  • Derision When shooting a bow, there is no longer a superfluous 1HS animation.


  • Trevius (realityincarnate) Added new quest command quest::varlink(item_id) for putting item links into variables.
  • Derision Fix for Tradeskill combines where a LORE ingredient is returned.
  • Derision Fix for pet names containing spaces losing the space after zoning/camping.
  • Derision Fixed bug where Return Home sent players bound in Grobb to Qeynos/Unknown Zone.


  • Derision When Tribute is manually deactivated, it should stay deactivated.
  • Derision Tribute will not continually try and reactivate when you run out of tribute points.


  • Derision Added EVENT_PROXIMITY_SAY


  • Wolftousen Player Flurry rate was slightly increased
  • Wolftousen Player Flurry messages will now show up as red text, but use the same filter as NPC flurry messages
  • Wolftousen Rage Volley no longer requires you to have an thrown weapon in your ranged slot
  • Wolftousen Rage Volley now uses the proper damage calculation and is not based on the item you have in the ranged slot
  • Wolftousen Rave Volley can no longer be dodged/blocked/parried/reposted.
  • Wolftousen Procs from Buffs have been tweaked to go off more often *Wolftousen Players will now receive the "proper" bonus HP for stamina above 255.
  • Wolftousen Knight class Tactical Mastery AA was implemented and should now give the strike through message
  • renoofturks Created rule Aggro:StunAggroMod to dial in on aggro of stun based attacks.
  • cavedude Reverse DS and some DS will now cause aggro on intial cast.
  • realityincarnate Controllable boats should now work. Please see: for additonal information.
  • realityincarnate Safe fall skill up is now checked on failure.

Optional SQL:

INSERT INTO rule_values VALUES(1,'Aggro:StunAggroMod',750);


  • Derision Changed Account Session Limiting to kick off the old connection and allow the new one.
  • drakelord Rest State HP and MP Bonus
  • Derision SoF * Combat/Rest state indicator now works.
  • Derision No longer need to zone for /corpse to work.
  • Derision Fixed Bazaar bug.

Optional SQL:

INSERT INTO rule_values VALUES(1,'Character:RestRegenPercent',0); INSERT INTO rule_values VALUES(1,'Character:RestRegenTimeToActivate',30);


  • Congdar Bots * Fix release vs. debug compile for focus effects, updated bots to new attack code.


  • Trevius SoF * Corrected corpse looting slots so that the correct item is looted when there are multiple on a corpse
  • Trevius SoF * Item Links from corpse looting messages now display properly for both client versions
  • Derision Personal Tribute should now have an effect serverside, rather than just showing increased stats in the client.
  • Derision Deactivating Tribute should no longer crash the client.
  • Derision SoF * Personal Tribute should now work.


  • Trevius SoF * Commands that return itemlinks will now show the full name instead of cutting off the first 5 characters

Trevius/ Derision SoF Fix for subitem serialization.

  • Derision SoF * Corrected money update opcodes.
  • Derision SoF * Bazaar Trader mode.


  • Trevius SoF * Stopped the bogus "Deleting Item" messages from being sent to SoF Clients
  • cavedude (Congdar): You can now safely delete a key item after its been added to your keyring.
  • cavedude (realityincarnate): Added quest::MerchantSetItem and quest::MerchantCountItem to add temp items to a merchantlist. See Wiki for usage.
  • cavedude Added rule World:MinGMAntiHackStatus to manage the min status checked against the GM AntiHack list.
  • Derision Sof: Added support for regular /who


  • Derision Tradeskill recipes involving weapons as an ingredient should no longer dupe the weapon.
  • Derision Expendable items with charges are now deleted when the last charge is used.
  • Derision Tradeskill skillups now based on unmodified skill level.
  • Derision (realityincarnate): Prevent bard skillups for instruments they aren't trained in.
  • Derision (realityincarnate): Implemented SE_Hunger (e.g. for Song of Sustenance).
  • Derision (realityincarnate): Undying armor by setting RGB to 255 255 255 fixed.
  • Derision (realityincarnate): Title suffix quest command, Syntax: $client->SetTitleSuffix(title)
  • Derision (erde): cleanipc fix for GCC 4.3.2
  • Derision (BWstripes): Beastlord pets are now named SoAndSo's Warder.


  • Derision Fix for Alchemy, Poison Making and Tinkering.


  • Derision Added $client->GetClientVersion(). Returns: 1 (6.2 Client), 2 (Titanium), 3 (SoF)


  • Derision Fixed crash in chatserver.
  • Derision Fixed possible crash in QuestManager::attacknpc


  • Derision (Image): Check packet length is at least 4 bytes in EQStream::ProcessPacket
  • Derision (Image): EQStreamFactory::ReaderLoop * Assure that the incoming buffer contains an opcode to analyze.
  • Derision (Image): Sanity checks on OP_SessionResponse/OP_SessionStatRequest size in EQStream::ProcessPacket


  • Derision GM Training: SoF * Points now update correctly in the Training Window.
  • Derision GM Training: Points now update correctly in the Training Window for languages.
  • Derision GM Training: The correct amount of money is deducted from the player profile.
  • Derision SoF * Mapped findable field in Spawn struct and OP_FindPersonRequest/Reply.
  • Derision SoF * Duelling now works.
  • KLS Compile option to ignore login fatal errors in world.


  • Derision Tracking: Now works in SoF and as a side effect, Tracking 'sort by distance' works properly in 6.2 and Titanium clients.


  • Congdar Bots * Added Healing and Lifetap AA's and Focus Effect support
  • Derision SoF * Fix for incorrect animation (NPCs frozen/walking while standing still).


  • Derision SoF * OP_PetBuffWindow, OP_Charm, OP_Stun


  • Derision SoF * Tasks now work.
  • Derision SoF * OP_Sacrifice, OP_Sound, OP_OnLevelMessage, OP_PopupResponse
  • Derision Item Links in Task Descriptions are now formatted correctly based on the client version.


  • Derision 'Hack' to display Froglok/Drakkin corpses correctly.
  • Derision SoF * OP_Translocate & OP_LevelAppearance


  • Trevius SoF * Corrected Right Click item effects so they no longer fizzle
  • Trevius SoF * Right Clickable item effects with set recast delays now observe that delay properly
  • Trevius SoF * Item Effect Charges now get used and updated properly
  • Trevius SoF * Food and Drink are now consumed at the proper rates


  • Derision Implemented 'Your total time entitled on this account' in /played.


  • Trevius SoF * Fixed a fairly major crashed caused when attempting to use the 8 new bank slots, or shared bank
  • Trevius SoF * Banking is now fully functional including the 8 new bank slots, shared bank and bag slots in the bank
  • Trevius SoF * Bandolier and Potion Belt are now both functional
  • Trevius SoF * Filled in multiple missing opcodes


  • Trevius SoF * Grouping should now be fully functional
  • Trevius SoF * (Xinu) Added many missing opcodes
  • Angelox Bots* More mobs for the "#bot track rare" filter.
  • Derision Fixed memory leak in Chatserver /announce processing.


  • Trevius SoF * Tradeskill Objects/Containers and Augment Pools should now be fully functional
  • Trevius SoF * PC to PC/NPC trading should now be fully functional without bugs
  • Trevius SoF * Auto-Consume and Right Click consume of food/drink is functional
  • Trevius SoF * Right Click Effects on Items now works in most cases, but needs coding to clean it up a bit
  • Trevius SoF * Spell Interrupts are now functioning properly


  • cavedude (realityincarnate) Languages can now be taught to other players. Also implemented drunk speak.
  • cavedude (realityincarnate) Bonuses will now properly apply when switching items with bandolier.
  • cavedude (realityincarnate) Corrected some instances of Bard songs that were incorrectly requiring an instrument.
  • cavedude (Wolftousen) Fixes for Rage Volley, Blur of Axes, and Dead Aim.
  • Derision Spells that damage the caster will now do full damage.
  • Congdar Spells that summon items with charges will now summon said item fully charged.
  • Angelox Bots:Added a few more mobs to the "#bot track rare" filter.
  • Congdar Bots * Added commands #bot saveraid, #bot spawnraid, #bot groupraid

required sql: utils\sql\svn\386_bot_save_raid.sql


  • Trevius SoF * Tradeskill/Augment Combines in tradeskill containers/objects now works, but currently bugs players when they close the window.
  • Derision Fixed bug when activating a bandolier set without a required item in your inventory.
  • Trevius SoF * Identified more fields in the Spawn Struct; Face, LFG, Beard, ShowHelm and more


  • Trevius SoF * Added a few more encodes/decodes to resolve more slot change issues related to the addition of the Power Source Slot
  • Trevius SoF * Ammo now depletes properly when used. Probably some other minor issues resolved by this change as well.


  • Trevius SoF * AAs can now be trained and will update without needing to zone. Point Spent is still wrong.
  • Trevius SoF * Char Select now shows Primary and Secondary items properly.


  • Trevius SoF * PC to PC/NPC Trading now works, though canceling a trade will bug the character and require them to zone or relog
  • Trevius SoF * Players can now sell to merchants
  • Trevius SoF * Corrected a bug introduced in Revision 376 that was causing single stackable items to not be stackable


  • Trevius SoF * Buffs and debuffs now last for the correct duration.


  • Trevius SoF * Corrected Item Struct to fix the issue with non-stackable items showing up as being stackable
  • Trevius SoF * Identified an unknown field in Item Serialization as being item charges and set it accordingly so that items should now show accurate current charges.
  • Trevius/Xinu SoF Adjusted a few opcodes for more accuracy No visible change yet


  • Trevius SoF * AAs now show up in the AA window, but do not give bonuses yet.
  • Trevius SoF * Spent AA points are partially showing up, but still need work.
  • Trevius SoF * Updated some grouping structs, but grouping still isn't working just yet
  • Trevius SoF * Buffs can now be clicked off, but the duration still isn't working for them
  • cavedude Added new AA, group, and raid EXP multiplier rules. Removed the associated variables.
  • cavedude Removed the USE_RACE_CLASS_XP_MODS define as it was outdated and horribly broken.
  • cavedude Added group XP bonus. The larger the group, the higher the XP gain.
  • cavedude Added XP bonus for Warrior, Rogue, and Halfling.
  • cavedude Corrected ZEM for AAs.
  • cavedude (Thanks to mackal) Pet Affinity will no longer effect charmed pets.
  • cavedude (realityincarnate) Bard songs that require instruments will now require them.

Please note: XP gain has pretty much been overhauled. You may need tweak the multiplier rules for your server.

Optional SQL:

REPLACE INTO rule_values VALUES ('1', 'Character:ExpMultiplier', '0.5'); INSERT INTO rule_values VALUES ('1', 'Character:AAExpMultiplier', '0.5'); INSERT INTO rule_values VALUES ('1', 'Character:GroupExpMultiplier', '0.5'); INSERT INTO rule_values VALUES ('1', 'Character:RaidExpMultiplier', '0.2');


  • Angelox Fixed most (if not all) npc pet ghosting at zone safepoints.


  • cavedude (realityincarnate) Implemented Bard song Magical Monologue
  • cavedude (Theeper) Attuneable items will now save over zoning/camping and will no longer auto-loot from corpses.
  • cavedude Implemented quest::buryplayercorpse, similar syntax as quest::getplayerburriedcorpsecount. This will bury and depop the oldest of a specified player's unburried coprses. It will bury all corpses, but it only depops corpses in the same zone, or in zones that aren't currently open. Hopefully, somebody else out there can finish this one up so corpse summoners can be implemented.


  • WildcardX Begun work on LDoN expansion. Adventure Recruiter window is now operational.


  • Trevius SoF * Corrected the NewZone struct a bit, which fixed Fall Damage and Environment Damage
  • WildcardX Implemented the rogue skill, Apply Poison. Includes support for the 6.0 client, Titanium and SoF.


  • Trevius Added #define options in /zone/attack.cpp to allow an easy switch to use the old hit change code until the new code is finalized.
  • Trevius Added new rule MinRangedAttackDist for setting the Minimum Ranged Attack Distance
  • Trevius SoF * Updated the SoF opcodes, one of which corrects a false Hacker message and log entry

Optional SQL: 364_ranged_dist_rule.sql


  • KLS Fix for backwards rule in anti-spam.


  • KLS Added initial anti-spam features to global chat operations at popular request.
  • KLS Added option to turn off IP verification in chat and mail servers (for people who use internal networks and find it troublesome).
  • cavedude Added peqzone column to zone to allow or deny access to zones using #peqzone.
  • cavedude #peqzone will give you the approximate time remaining before reusing.
  • cavedude Altered merchant price structure to better match Live. Created rules to govern its behaviour. See ruletypes.h for basic explanations!
  • cavedude Added command #givemoney.
  • Trevius SoF * Corrected WearChange Struct so primary and secondary items now show properly after zoning and #wc works as well.

Required SQL: ALTER TABLE account ADD karma INT(5) UNSIGNED DEFAULT '0' NOT NULL AFTER revoked; ALTER table zone ADD column peqzone tinyint(4) NOT NULL default '1';

Optional SQL: 360_peqzone.sql


  • Trevius (Xinu) SoF * Many more Opcodes filled in from the client
  • Trevius SoF * Doors are now able to open and clickable portals now function as well
  • Trevius SoF * Armor tint from dyes is now showing properly
  • Congdar Bots: '#bot group remove' now removes any of your spawned bots, if it's a group leader then that whole group
  • KLS Changes to combat: -AC has a slightly higher chance to mitigate into a miss than before -AC is no more effective per point but the bonus ac every character and npc gets in the calculation has been effectively increased. -The accuracy falloff from level is now more variable based on defender's level, this should address the issue where at higher levels you can grind npcs that are still blue or light blue at little risk. -The base chance to hit has been increased. -Added both hit and avoidance mods for class types that are adjustable by rules. -Archery now has an accuracy penalty that is rule adjustable, with ranger buffs the penalty should make it so archery is slightly more accurate than melee at default. -Skill is now a flat 0.33% chance to miss for every point under your max skill you are. -The benefit from agility to avoidance has been decreased by roughly 33%. -Maximum chance to hit is now 95%, down from 99%.
  • KLS Bug fix in skill up with the skill up mod rule.

Recommended SQL and Optional SQL: 356_combat.sql


  • cavedude00 Removed Combat:ChanceToHitDivideBy rule. Default value is now Live Like.

Required SQL: delete from rule_values where rule_name = 'Combat:ChanceToHitDivideBy';

  • Congdar Bots: Revert svn328

Required SQl: delete from rule_values where rule_name = 'EQOffline:SpawnBotCount';

      delete from rule_values where rule_name = 'EQOffline:CreateBotCount';
      delete from rule_values where rule_name = 'EQOffline:BotQuest';
  • Congdar Bots: UN-Revert svn328 + bug fixes

(if you updated to svn354)

Required SQl: 328_bot_management.sql

Optional SQL: 328_optional_bot_management.sql


  • Trevius (Xinu) SoF * Many Opcodes filled in from the client
  • Trevius SoF * Aligned the Player Profile a bit more. Should be pretty accurate now
  • Trevius SoF * Added Drakkin race again for use of equipment. Should work correctly this time.


  • KLS SoF * Fix for ammo
  • Angelox Bots: Fixed '#bot track' command
  • Angelox Bots: Fixed broken entry in BotAI.cpp for '#bot track rare' command
  • Angelox Bots: 'Fixed #bot gate airplane' typo
  • Congdar Fix for Flash of Steel AA


  • Trevius SoF * Combat Damage message now show up in the chat window
  • Trevius SoF * GM Skill Trainers will now actually train skills
  • Angelox Bots: Added emerald, skyfire, hateplane, skyplane to command #bot gate.
  • Trevius SoF * Backed out item stat fix for SoF due to it causing the problem to happen in Titanium


  • Trevius SoF * Added Drakkin race to the source so $race and probably other race related stuff can use it.
  • Trevius SoF * Added multiple opcodes
  • Trevius SoF * Cleaned up the patch_SoF.conf file some
  • Derision SoF Enter Tutorial/Return Home buttons work Enter Tutorial directly on char creation does not.
  • Derision SoF * OP_ZonePlayerToBind (no more disconnection on death).
  • Derision SoF * Target nearest NPC (F8) now works.
  • Derision SoF * /who all now works.
  • cavedude00 SellRate column in items will now help determine an item's sell price.
  • cybernine186 Optional system to ensure GMs are logging on from a known IP.
  • Trevious SoF * Drakkin now gain stats from items and weapons now work for combat
  • Trevious SoF * Drakkin now start with Common Tongue, Dragon and Elder Dragon Languages maxed

Required SQL: utils/sql/svn/340_gm_ips.sql


  • Trevius SoF * The Item Struct should be aligned almost perfectly now.
  • Trevius SoF * Merchant Lists, Buying and Selling are now all functional
  • Trevius SoF * Looting Items and Currency from Corpses is now functional
  • Trevius SoF * Item Links are now functional
  • Trevius SoF * Combat animation is now functional
  • Trevius SoF * More opcodes added/updated
  • Trevius SoF * Titanium users will now see Drakkins (and any race over 473) as a normal Human race


  • KLS SoF * Item movement and bag support.
  • AndMetal Augments are now visible when linking items.
  • Trevius SoF * Adjusted the new Item Structure to align more fields
  • Trevius SoF * Added OP_Consume and OP_LootRequest opcodes
  • cavedude00 (AndMetal) AAs now use skill_id instead of index for prereqs.
  • cavedude00 (mackal) Implemented Improved Instrument Mastery, Improved Singing Mastery, and Echo of Taelosia AAs.
  • cavedude00 Created Combat:ChanceToHitDivideBy rule and increased default value to 1250.

Required and Optional SQL: utils/sql/svn/326_aas.sql

  • KLS SoF * Fix for item slots in bags.
  • KLS SoF Added work around for client inventory, it should no longer crash and items shouldn't fail to load. fingers crossed*
  • KLS SoF * Implemented summon item packet.
  • Congdar Bots * Expaneded BotCount Management

required sql: utils/sql/svn/328_bot_management.sql

optional sql: utils/sql/svn/328_optional_bot_management.sql


  • Derision SoF * New struct for OP_ExpansionInfo
  • Derision SoF * Character Creation now works.
  • Derision SoF * support now compiled in by default.
  • Derision Small changes to compile SoF under Windows
  • KLS SoF * initial inventory load.
  • KLS Change to streams, streams will now initialize to an unestablished state instead of closed. Prevents a race condition that would cause the client to hang on identification.
  • Trevius SoF * Identified most or all needed fields in the illusion struct for future use.
  • WildcardX Made Perl v5.10 the default for WIN32 compiles.
  • WildcardX (Angelox) Added many header declarations to make gcc v4.3 happy.


  • WildcardX Compatibility for Perl 5.10. WIN32 compiles will still need to rename perl58.lib to perl510.lib.


  • Trevius Identified the Size, Eye Color and Texture fields in the SoF spawn structure.
  • Trevius Added multiple Opcodes for SoF


  • cavedude00 Added #findzone (#fz) command to aid in getting a zone's short_name or id.
  • cavedude00 #peqzone now accepts both short_name and zoneidnumber.


  • Angelox Bots:Added command '#bot corpse summon' for Necromancer.


  • Trevius Corrected Z Coordinate on clientupdates in SoF. All Client and NPC positition structures should now be accurate
  • Trevius Corrected the Object structure in SoF. Objects should now all load in the correct location and size.
  • Trevius Added a few new Opcodes for SoF.
  • Trevius Corrected the Opcode for OP_RequestClientZoneChange * Zoning is now fully functional including zone commands


  • cavedude00 Added faction modifiers for Berserker and Froglok.
  • Derision Fixed item load failure when using MySQL 5.1.

Required SQL: ALTER TABLE faction_list ADD COLUMN mod_c16 smallint(6) NOT NULL default '0' AFTER mod_c15; ALTER TABLE faction_list ADD COLUMN mod_r330 smallint(6) NOT NULL default '0' AFTER mod_r161;


  • Trevius NPC coning is now working in SoF.
  • Trevuis NPCs and Players can now be targeted in SoF.
  • Trevius Corrected the illusion packet structure in SoF so helm change will work with the #fixmob command
  • Trevius Adjusted the #fixmob and #race commands to allow up to 586 races (the max for SoF)
  • Trevius Client Self position updates now report correct X, Y, and Heading in SoF, but still need Z corrected.
  • Trevius All other position updates (NPC or other clients) now seems to be accurate.
  • Trevius Names are now viewable over NPC and Player's heads
  • Angelox Bots: charm level problem fixed.


  • Derision Fixed ammo consumption.


  • Derision Fix for temp merchantlists where a merchant has a single item with slotid=1


  • Angelox Bots:(leslamarch) corrected the'#bot gate [combines]' typo.
  • Angelox Bots: Added '#bot dire charm'.
  • Angelox Bots: Both 'charm' and 'dire charm' will now choose from three charmer classes.
  • Angelox Bots: Added '#bot pet remove' (can't charm a mob while sporting a pet).
  • Angelox Bots: Fixed exploit where player could remove charmed mobs at will.
  • Derision Merchant lists with gaps should now not cause problems wih temporary merchant lists.
  • Derision Logging to the eventlog table for trades with NPCs is now controlled by two rules rather than the loglevel variable.

Required SQL: ALTER TABLE eventlog ADD event_nid INT NOT NULL DEFAULT '0';

Optional SQL: INSERT INTO rule_values VALUES (0, 'EventLog:RecordSellToMerchant', 'false'); INSERT INTO rule_values VALUES (0, 'EventLog:RecordBuyFromMerchant', 'false');


  • Trevius Adjusted the NewZone Structure for SoF * Players can now move and spawns appear in place
  • Trevius Adjusted the WearChange Structure for SoF * Armor shows, but need Tint to work still
  • Trevius Adjusted the Object Structure for SoF * Objects now load, but need more work
  • Trevius Added many new opcodes for SoF
  • Trevius Adjusted when SendExpZonein is sent for SoF only
  • Trevius Added new Opcode List file for SoF development purposes only

Note: You must move the patch_SoF.conf file from /utils into your server directory for the opcode updates


  • Derision Tweaks to temp merchant list window updates.
  • cavedude00 Renamed the AugSlotUnk items columns to AugSlotVisible.

Required SQL: utils/sql/svn/292_augslots.sql


  • KLS VC71 solution files.


  • Angelox Bots: Added a directory with the BOT Makefiles for Windows and Linux.


  • Derision Bazaar bug fix.
  • Angelox Bots: Added command '#bot runeme' (Enchanter Rune spells)

Optional SQL: utils/sql/svn/285_optional_bot_spell_update.sql (removes auto-runes)


  • Trevius Initial Addition of Secrets of Faydwer Patch files. Must uncomment the #define in common/patches/patches.cpp to use SoF for now.


  • Derision Fixed a buffer overflow problem.


  • cavedude00 Increased itemid limit to 120,000.
  • cavedude00 Meditate will now skill up at a more Live Like speed.


  • Derision Fixed a cause of zone crashes.
  • Congdar Worn items with charges will no longer delete when the charges are used up.


  • Derision Fixed several cases of integer overflow relating to moving large amounts of money around.
  • Angelox Bots: Added command '#bot gate', for Druid Circles or Wizard Portals (Druid Primary).
  • Angelox Bots: Changed BotCount to RULE_INT.


  • Derision Implemented voice macros (CTRL-V). Update your opcodes.
  • Derision Food and drink should no longer be auto-consumed in the Bazaar
  • Derision Added rule Spells:TranslocateTimeLimit. If >0, translocate must be accepted within this number of seconds.

Optional SQL: (Required to enable voice macro use on your server

REPLACE INTO rule_values VALUES (0, 'Chat:EnableVoiceMacros', 'true');


  • Derision Fixed makefile references for rulesys.o
  • Derision Mapped field in LogServer_Struct to allow voice macro window to be opened (needs work on Opcodes to make it functional).


  • Derision Removed code that stole all your money if you logged on with more than 1 million of any denomination of coin on your person.


  • Angelox Bots: Added rule 'EQOffline:BotCount' defaults to 5, for desired amount of bots in the group * values are 0-5 (0 means bots are disabled, max limit is 5).
  • Derision Mail/Chatchannels: Added sanity check on packet size in EQPacket::ChatDecode.
  • Derision Mail/Chatchannels: Increased stream timeout from 45 to 135 seconds.
  • Derision Mail: Use correct opcodes for sending Headers. utils/mail_opcodes.conf updated
  • Derision Chatchannels: Recognise and ignore AFK command.
  • Derision Chatchannels: Added uptime command (usage ;uptime or /chat uptime).
  • Congdar Bots: Added Lore item check to command #bot inventory remove


  • Congdar Bots: Fix compile issue under linux for Visible Gear update.
  • Angelox Bots: Updated required SQL, utils/sql/svn/250_bot_spell_update.sql (some spells were still being auto-casted)
  • Derision Chatserver: Fix for crash when multiple connections are made in quick succession.


  • Angelox Bots: Added command '#bot charm' (requires enchanter in group). Charm does not work while Chanter has pet so I added the grouped Chanters pet to '#bot group remove' (remove the pet before #bot charm).
  • Angelox Bots: '#bot sow wolf' should not affect pets anymore.
  • Derision Chatserver: Added some extra syntax error checking to prevent crashes.
  • Angelox Bots: Added Wizard class and level check to the '#bot evac' command
  • Angelox Bots: Added '#bot invis see' for see invisible

Required SQL:

DELETE FROM npc_spells_entries where (npc_spells_id >=701 and npc_spells_id <=712) AND spellid=80;

  • Congdar Fix NPC::RemoveItem(uint16 item_id) to uint32 to work with items that have id's larger than 65535. '#npcloot remove [itemid]' will now successfully remove items with larger id's from npc loot.
  • Congdar Bots: Visible gear will now show correctly when trading/equipping bots.


  • Angelox Bots: Added command '#bot endureb' (enduring breath).
  • Angelox Bots: Hopefully fixed bug where other sowers replaced primary sower (Druid).


  • Angelox Bots: remade/improved commands '#bot levitate'and '#bot invis'


  • Congdar Bots: update command #bot inventory list Now shows gear as item links. Removed (Bot) as last name during bot creation.

Optional SQL: update npc_types set lastname='' where isbot=1;counter** Fixed zoning bug where you zoned back into the same zone, but it looked like you were in the new zone.


  • Angelox Bots: Added command '#bot sow' (Druid has options)
  • Angelox Bots: Added command '#bot levitate'.
  • Angelox Bots: Added command '#bot invis' * (has options).

Required SQL: utils/sql/svn/250_bot_spell_update.sql

  • Angelox Bots: Added command '#bot resist' (has options, don't use optional sql if you don't want).

Optional SQL: utils/sql/svn/250_optional_bot_spell_update.sql


CREATE TABLE chatchannels ( name varchar(64) NOT NULL, owner varchar(64) NOT NULL, password varchar(64) NOT NULL, minstatus int(5) NOT NULL default '0', PRIMARY KEY (name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

also see utils/sql/svn/249_chatchannels.sql for suggested system channels.