ProjectEQ
A fan-based EverQuest Emulator Project
-
Dragons of Norrath ReleaseThe Beginning [IMG] The Dragons of Norrath expansion was announced on January 11, 2005, and went live on February 15, 2005. The initial expansion announcement may be found here. The initial patch message may be found here. Download < PEQ Patch Files v11 > HERE What's Going On [IMG] [IMG] A series of events has transpired across the world of Norrath and the familiar faces of Firiona Vie and her nemesis Lanys T`Vyl return to find themselves at the forefront of these events. Unbeknownst...
-
Plane of Time Revamp Now LiveOverdue but not overdone. Plane of Time has received a much needed overhaul to be in line with accuracy of the event mechanics and to utilize the newer Dynamic Zone system that hgtw implemented a few years ago. This also closes up a few exploits that existed with the older implementation of the Plane of Time. Full DZ Support with Proper checks for each stage Phase 1 has proper shadowed bosses if you return after 12 hours to continue and are required to complete phase 1 again. These bosses...
-
DZ / Expedition System Go LiveI am excited to announce that @ 1AM CST, the server will be going down to install the DZ / Expedition system that has been under heavy development by @hg (ProjectEQ community member) for over half a year and has gone through extensive testing on the ProjectEQ Sandbox Test server. The server should be down for 30 minutes maximum EDIT: We are now live! The DZ / Expedition system was introduced originally during Gates of Discord and then back ported into earlier content such as Plane of Time....
-
PEQ Server Migration and UpdateAs noted in previous threads; ProjectEQ has undergone a server migration, a hardware upgrade as well as an entire tech stack upgrade. ProjectEQ now entirely runs on containerized technology This will help us in preparation for some future plans to be announced within the next few months Highlights No more server reboots, we will be keeping the server online as long as need (or until we need to reset or reload content) Zone times should be much faster Server response times overall should...
-
Navmesh Live!PEQ now has Navmesh pathing Live from Classic expansion all the way through PoP. Pathing behavior should be far more intelligent, NPC's will round corners, go up stairs, go through a door versus making a straight line path to the player. Imagine the NPC is now aware of the terrain, it will use the terrain tiles to make decisions on the shortest path to its destination (the player or target it is engaged to) Navigation mesh technology is used in most modern game engines, KLS has put in...
-
Dragons of Norrath Under DevelopmentIn case anyone was wondering, YES, we are currently working on the Dragons of Norrath expansion! Right now we are very much in the data gathering phase. If you've thought about getting involved in the continued development and expansion of this server, nows the time! We are looking for anyone willing to run the DoN group missions on live or test server and write up/parse the details of the mission. If your information is beneficial to the creation of the expansion, you will be awarded...
-
Magelo Signatures EnabledHey everyone! As you've noticed we've done some housekeeping lately with the website. Quick update regarding Magelo, the signature feature is now turned on and can be used in forum signatures etc. Magelo Signature Builder: http://projecteq.net/magelo/signaturebuilder.php [IMG] If you need help or have questions, respond to this thread and one of the PEQ Team can help you out!
-
Join us on DiscordJoin us on the Discord app to chat or report issues. #peq-public channel Use the link on the left to get started
I will be doing some server housekeeping later tonight and servers will be going down for roughly an hour or two while I make a series of moves and upgrades. It could get done much faster but expect longer.
See changelog for details
[22.32.0] - 11/6/2023
Bots
Crash
Fixes
Spells
[22.31.3] - 10/31/2023
Bug
Fixes
Fixes
Fixes
Crash
Linux
Perl
Trading
[22.30.2] - 10/26/2023
Fixes
Revert Perl regression in #3648 causing scripts to not reliably initialize on zone bootup. @Akkadius 2023-10-26
[22.30.1] - 10/24/2023
Fixes
API
Commands
[22.29.1] - 10/21/2023
DB
Feature
Perl
Rules
[22.28.1] - 10/20/2023
Build
Bots
Crash
[22.32.0] - 11/6/2023
Bots
Crash
Fixes
- Add IsTGBCompatibleSpell() to package.add (#3675) @Kinglykrab 2023-11-04
- Fix Perl__worldwideremovetask package (#3670) @Kinglykrab 2023-11-04
- Revert " Fix Killed XYZH support in EVENT_DEATH in Perl. " (Revert "[Bug Fix] Fix Killed XYZH support in EVENT_DEATH in Perl. (#3591)" #3682) (#3591) @fryguy503 2023-11-06
CRASH
- Compatibility fix for GCC 13 (#3677) @joligario 2023-11-05
- Cleanup Spire Parsing for crosszonemoveplayerbycharid (#3674) @Kinglykrab 2023-11-04
- Cleanup Spire Parsing for crosszonemoveplayerbyexpeditionid (#3671) @Kinglykrab 2023-11-04
- Cleanup Spire Parsing for crosszonemoveplayerbygroupid (#3673) @Kinglykrab 2023-11-04
- Cleanup Spire Parsing for crosszonemoveplayerbyguildid (#3672) @Kinglykrab 2023-11-04
- Add GetBaseRaceName() to Perl and Lua (#3668) @joligario 2023-11-01
- Add details to Lua event dispatch errors (#3679) @hgtw 2023-11-06
Spells
[22.31.3] - 10/31/2023
Bug
- Force raids off content database (#3665) @joligario 2023-10-31
Fixes
- Fix issue with blocked spells not loading properly @Akkadius 2023-10-31
- Convert Loot Messages to Error Logs (#3663) @Kinglykrab 2023-10-31
Fixes
- Hotfix issue with beacon spells crashing @Akkadius 2023-10-31
Fixes
- Hotfix issue with blocked spells not loading properly @Akkadius 2023-10-31
Crash
- Fix crash when client pointer does not exist during #hotfix (#3661) @Akkadius 2023-10-29
- Fix spell in AESpell related to beacons (#3659) @Akkadius 2023-10-29
Linux
Perl
Trading
[22.30.2] - 10/26/2023
Fixes
Revert Perl regression in #3648 causing scripts to not reliably initialize on zone bootup. @Akkadius 2023-10-26
[22.30.1] - 10/24/2023
Fixes
- Fix empty InsertMany in bot starting items. (#3653) @Kinglykrab 2023-10-24
API
Commands
- Move #suspend from content database (#3651) @joligario 2023-10-24
- Fix Bot Starting Items SQL (#3649) @Kinglykrab 2023-10-23
- Implement eqemu-perl for Linux (#3652) @Akkadius 2023-10-24
- Reload perl quests on zone bootup (#3648) @hgtw 2023-10-24
[22.29.1] - 10/21/2023
DB
- Fix manifest for blocked spells (#3646) @joligario 2023-10-21
- Fix issue with subcommand settings not working (#3643) @Kinglykrab 2023-10-21
- Hotfix command without hotfix name (#3644) @joligario 2023-10-21
- Verifying mail keys when none exist (#3645) @joligario 2023-10-21
Feature
- Add Expansion and Content Flag support to Blocked Spells (#3638) @Kinglykrab 2023-10-20
Perl
Rules
[22.28.1] - 10/20/2023
Build
- Perl Linux build fix
Bots
- Adjust Bot Movement Speed (#3615) @Kinglykrab 2023-10-14
- Fix bot removal on zone, regression from [Crash] Fix dangling pointer crash observed in SendHPPacketsFrom #3611 (#3631) @Akkadius 2023-10-16
- Fix Crash with #summon (#3618) @Kinglykrab 2023-10-14
- Fix crash in Mob::ShowBuffs (#3632) @Akkadius 2023-10-16
- Resolve crash when assigning empty raid note. (#3628) @Aeadoin 2023-10-15
- Add Extra Kick Classes (#3613) @Kinglykrab 2023-10-11
- Add Immune to Assassinate Special Ability (#3622) @Kinglykrab 2023-10-14
- Add Immune to Headshot Special Ability (#3624) @Kinglykrab 2023-10-14
- Update Raid Functions for Titanium and Underfoot (#3524) @neckkola 2023-10-14
- Fix #cast defaulting to cast time (#3617) @Kinglykrab 2023-10-14
- Fix SendIllusion Spire parsing (#3623) @Kinglykrab 2023-10-14
- Add GrantAllAAPoints() to Perl/Lua and Modify #grantaa (#3616) @Kinglykrab 2023-10-14
- Add target ID and spell exports to events (#3620) @Kinglykrab 2023-10-15
- Update 13th Floor importer (#3630) @joligario 2023-10-16
- Update 13th Floor script for legacy research tome bagtypes (#3621) @joligario 2023-10-14
Crash
- Bot member zoned crash fix (#3607) @Akkadius 2023-10-07
- Fix #summon crash (#3608) @Akkadius 2023-10-07
- Fix CanUseAlternateAdvancementRank crash (#3609) @Akkadius 2023-10-07
- Fix crash in #movechar (#3612) @Akkadius 2023-10-07
- Fix crash in CastSpell Quest API input cast (#3610) @Akkadius 2023-10-07
- Fix dangling pointer crash observed in SendHPPacketsFrom (#3611) @Akkadius 2023-10-07
- Fix rarer crash with File::Makedir (#3606) @Akkadius 2023-10-07
- Add Validation to #find, #set, and #show args (#3598) @Kinglykrab 2023-09-18
- Ensure Linux builds report failures @Akkadius 2023-10-03
- Fix #show group_info Popup (#3605) @Kinglykrab 2023-10-04
- Fix swarm pet names to use '_' instead of ' ' (#3601) @noudess 2023-09-19
- Invis vs. Undead/Animal Breaks Charm for Pets (#3587) @crdunwel 2023-09-19
- Change pathing log messages from Error to Pathing. (#3604) @joligario 2023-09-29
- Add Caster ID Parameter to FindBuff in Perl/Lua (#3590) @Kinglykrab 2023-09-29
Get ready for the spooktacular season coming up!
Please report any bugs and we will fix them as soon as possible.
Please report any bugs and we will fix them as soon as possible.
The Beginning
The Dragons of Norrath expansion was announced on January 11, 2005, and went live on February 15, 2005. The initial expansion announcement may be found here. The initial patch message may be found here.
Download < PEQ Patch Files v11 > HERE
What's Going On
A Breakdown of Static Zones
Developers Diary on Dragons of Norrath
It's here! Finally! After roughly 5 too long years of development, blockers, struggles, we eventually and finally accomplished what felt so massive and impossible when we started. The major blocker being a massive new system that needed to be implemented, Shared Tasks (amongst many other blockers and challenges). At the time PEQ didn't even have Dynamic Zones or Expeditions and used not so great workarounds to implement both. Today, we have Shared Tasks which also use Dynamic Zones, Expeditions also use Dynamic zones and a tremendous amount of time in effort went into all of them. Combined, the effort(s) were well over 1-2 years worth of work alone to implement all of the above said systems.
Content Framing
We also had a major obstacle of collecting base content for the making of the zones. Years ago Drogerin started by hand placing NPC's in the Nest. Manually setting their appearance, size, texture, movement etc. While Drogerin's work ethic was unreal and I had no doubt he would literally do all of the zone by hand, we needed a better way to frame the zones in. Same could be said for Huffin who were both working hard at making Dragons of Norrath happen even though the challenges ahead were monumental.
Content Collection
Historically, we framed zones through packet collection tools where we would at least capture NPC spawns, appearances, doors, objects and all of their respective locations. While data collection tools are a massive help for framing a zone, we still needed to do a LOT of work grooming the content. For example, grids still need to be groomed, loot needs to be done entirely manually, factions, quests, merchants, scripts, updates, task data, task implementation, respawn times, quest interaction, sequencing, flagging. None of that is talking about the major systems we needed to implement to bolt on-top of it all and the massive investments in tooling to make developing it all simple.
Content Import
We worked with Maudigan from mqemulator.net to build a data collection tool using MQ2 cleverly called TakeADump which will dump doors, ground items, merchant lists, npcs, zone data, zone points to dumps which can then be translated using a tool we wrote called Monocle to import directly into our data models. You can see this video where I import dumps collected from both Drogerin and Huffin by going into every instance and task on live. This was already 4 years ago and this was our first major hurdle completed. The same tool was able to be used for other expansions and content as well.
After importing the roughly framed content, lots of work went into parsing by Drogerin and Huffin to tune major NPC encounters, loot, grids, framing the scripting for events independent of all of a major component, tasks. Shared Tasks were still the missing but giant elephant in the room that needed to be tackled. Years went on as various developers attempted to start an interpretation of the system, but got walled by its complexity and and enormity of the project and it sat, multiple times.
Shared Tasks
In 2021, I decided I was going to move a lot of my other projects to the background to start prioritizing getting Shared Tasks moving since it had lost all momentum multiple times by the several different folks who attempted it. I scoped out the project and started my plans for how I was going to tackle the behemoth. I put together a design doc which shaped the rough idea of how the project were to be executed and what was needed to be done. It also required heavy cleanup of the existing Task code to even consider how we were going to bolt on a wildly complex system on top of it and keep it simple and intuitive enough for other developers to maintain and content creators to consume.
After scoping out the project, it took some convincing but I was able to get @hg who was a massive help and co-contributor to making Shared Tasks possible. If you don't know HG he was a player on PEQ and one day decided to take a stab at Expeditions and Dynamic Zones and beautifully executed them. I really enjoyed working with someone so brilliant, easy to work with as we tackled the monstrosity that was Shared Tasks. We formulated our plans, iterated on them, learned from it, iterated our plans some more, went on code binges on each parts of our implementations and found ourselves burnt out many a time, only to pick ourselves back up to keep going. Hitting a project like this for as long as we did was a difficult, stale, lengthy process and having each other to keep synergy going was key.
ProjectEQ Expansions
There's been a lot of work behind the scenes over the years to enable the server technologically the capability of classifying content and data to be within an era. Classifying data is still an ongoing effort and whilst not perfect, we are and have been making massive strides in this area.
ProjectEQ is the foundational database that is used in every EverQuest Emulator server installation and is the open source "source of truth" for Live-like content. While being the defacto standard, that does not mean that it is perfect, in many ways is far from it. Many projects have forked from it and made significant improvements to various eras of the EverQuest experience. The emulator community as a whole continues to make lots of progress here, sometimes other projects have to take the foreground for a while until we can get back to certain workstreams.
Some servers have areas of content that is far true to era in ways and with the technology to more easily move a server between eras and content settings, it allows us to move between settings in a matter of small settings changes rather than huge one-way, non-reversible data changes which is how ProjectEQ and all servers have operated until recent years. We have strong members of the community who have been helping contribute back their changes into ProjectEQ content that is more true to era as we progress both forward in expansions and also backwards. We continue to improve our technology, tooling, processes here and we're finally starting to see the first major shift on the current PEQ Production server.
PEQ Server Era Changes
ProjectEQ has for the longest time been considered in no specific era or expansion. It is a mish-mash of current and past, with no sensible boundaries. We use an EverQuest client in the Rain of Fear era while most of the players are playing through Omens of War expansion. Some zones have items, spells, from an era far past Omens of War and even playable character races.
PEQ will be shifting from no expansion or (all expansions) into the current expansion context with the release of Dragons of Norrath. That means that while things won't be perfect, we can start to think of a lot of our data from the lens of the current era and make changes, tweaks from the perspective of the era. It also allows us to classify things in earlier expansions and later expansions which will make the ProjectEQ database more fluid for anyone who installs their own server to chose what experience they want to play on as we the project matures.
While we realize that making this change, it will inevitably take things away that players have been used to utilizing and benefiting from that is out of era. Taking things away is not fun from the player perspective and changes that do so should be attempted to be done as sensibly as we can. We are going to try our best to grandfather out of era features and things where it makes sense such as quality of life client features out of era and doesn't impact the experience tremendously.
Other servers that use PEQ can choose to be more strict about their era experiences while we will try to stay mostly true to form, we can certainly make small exclusions here and there where it does make sense. Some of that we will leave up to player feedback on the forums as to what should be done with things that may have been undecided on and we can make a call. It also doesn't mean that when PEQ has other variants of servers out for player use, some rule-sets can't be more stricter in some sense as well to be even truer to the era changes through progression.
In general, if players feel something should be changed. Please utilize the forums to report and make the case for what you feel should be changed.
Special Thanks
None of this would be possible if it wasn't for a ton of work by very few individuals.
Changelog Notes
Era-Related Changes
AA's
To provide feedback on Dragons of Norrath or anything content related. Feel free to use the forums, you also can use the new /bug functionality. We will be using /bug more to triage issues in-game.
The Dragons of Norrath expansion was announced on January 11, 2005, and went live on February 15, 2005. The initial expansion announcement may be found here. The initial patch message may be found here.
Download < PEQ Patch Files v11 > HERE
What's Going On
- A series of events has transpired across the world of Norrath and the familiar faces of Firiona Vie and her nemesis Lanys T`Vyl return to find themselves at the forefront of these events. Unbeknownst to them, a dark influence has seeped into the world of Norrath causing new tensions to arise and conflicts to intensify as the dawn of a new age emerges. The Age of War is upon the people of Norrath and heroes return in this ultimate, unending battle between good and evil.
- A gnome mining expedition has managed to dig their way through the northern mountains in Lavastorm. They came upon the dragon nesting grounds, a previously unexplored part of northeastern Antonica which is full of Nest dragons, dragonkin and goblins; and thriving with wildlife.
- The Guild Hall is your guild's own instanced zone, including guild bank, a portal to many druid/wizard destinations, and buff stoppage.
- The Guild Lobby (now available to everyone) is a place for guilds to recruit and for players to summon their corpses.
- New Models: Dragons, Stone Sentinels, Kirins, Drakes, Spiders, Pumas, Dervishes.
- New AAs retrieved through Dragons of Norrath progression.
- In order to progress through this expansion, you would be advised to pick a faction and stick with it. You have two to choose from: The good-aligned Norrath's Keepers or the evil-aligned Dark Reign. Neither faction has any effect on any other zones in EverQuest.
- Both factions have camps set up in the network of caves in Lavastorm's north. In addition to these two camps, there is a group of Wayfarers to the south-southeast of the caves who also offer tasks.
- Completing tasks (both groups and raids) yields X amount of Radiant Crystals or Ebon Crystals, which can be used to purchase items and augmentations from adventure merchants Tatsujiro the Serene (for the Norrath's Keepers) and Xeib Darkskies (for the Dark Reign).
- Faction is gained by completing tasks and turning in the token you receive after each task. These tokens are LORE, so you need to make the turn-in after each task completed for maximum faction gains.
- Norrath's Keepers Tokens are turned in to Tatsujiro the Serene.
- Dark Reign Tokens are turned in to Xeib Darkskies.
A Breakdown of Static Zones
- Guild Lobby (all levels; entered through the Plane of Knowledge)
- Guild Hall (all levels; entered through the Guild Lobby; must be guilded)
- The Broodlands (40th-60th level; entered through the northern caves of Lavastorm)
- Lavaspinner's Lair (45th-60th level; entered through the Broodlands)
- Tirranun's Delve (45th-65th level; entered through Lavaspinner's Lair)
- Stillmoon Temple (55th-65th level; entered through the Broodlands)
- The Ascent (60th-70th level; entered through Stillmoon Temple)
- Thundercrest Isles (60th-70th level; entered through the Broodlands)
- The Accursed Nest (70th level; entered through the dropdown in the rocks centered in the Broodlands lake)
- Lavaspinner's Lair (instanced) (missions available for 60th-70th level; multiple entrances through the Broodlands)
- Tirranun's Delve (instanced) (missions available for 60th-70th level; multiple entrances through the Broodlands)
- Stillmoon Temple (instanced) (missions available for 60th-70th level; multiple entrances through the Broodlands)
- The Ascent (instanced) (missions available for 60th-70th level; multiple entrances through the Broodlands)
- Thundercrest Isles (instanced) (missions available for 60th-70th level; multiple entrances through the Broodlands)
- The Accursed Nest (instanced) (missions available for 70th-75th level; multiple entrances through the Broodlands)
- The Broodlands are entered through the cave system in Lavastorm's north.
Developers Diary on Dragons of Norrath
It's here! Finally! After roughly 5 too long years of development, blockers, struggles, we eventually and finally accomplished what felt so massive and impossible when we started. The major blocker being a massive new system that needed to be implemented, Shared Tasks (amongst many other blockers and challenges). At the time PEQ didn't even have Dynamic Zones or Expeditions and used not so great workarounds to implement both. Today, we have Shared Tasks which also use Dynamic Zones, Expeditions also use Dynamic zones and a tremendous amount of time in effort went into all of them. Combined, the effort(s) were well over 1-2 years worth of work alone to implement all of the above said systems.
Content Framing
We also had a major obstacle of collecting base content for the making of the zones. Years ago Drogerin started by hand placing NPC's in the Nest. Manually setting their appearance, size, texture, movement etc. While Drogerin's work ethic was unreal and I had no doubt he would literally do all of the zone by hand, we needed a better way to frame the zones in. Same could be said for Huffin who were both working hard at making Dragons of Norrath happen even though the challenges ahead were monumental.
Content Collection
Historically, we framed zones through packet collection tools where we would at least capture NPC spawns, appearances, doors, objects and all of their respective locations. While data collection tools are a massive help for framing a zone, we still needed to do a LOT of work grooming the content. For example, grids still need to be groomed, loot needs to be done entirely manually, factions, quests, merchants, scripts, updates, task data, task implementation, respawn times, quest interaction, sequencing, flagging. None of that is talking about the major systems we needed to implement to bolt on-top of it all and the massive investments in tooling to make developing it all simple.
Content Import
We worked with Maudigan from mqemulator.net to build a data collection tool using MQ2 cleverly called TakeADump which will dump doors, ground items, merchant lists, npcs, zone data, zone points to dumps which can then be translated using a tool we wrote called Monocle to import directly into our data models. You can see this video where I import dumps collected from both Drogerin and Huffin by going into every instance and task on live. This was already 4 years ago and this was our first major hurdle completed. The same tool was able to be used for other expansions and content as well.
After importing the roughly framed content, lots of work went into parsing by Drogerin and Huffin to tune major NPC encounters, loot, grids, framing the scripting for events independent of all of a major component, tasks. Shared Tasks were still the missing but giant elephant in the room that needed to be tackled. Years went on as various developers attempted to start an interpretation of the system, but got walled by its complexity and and enormity of the project and it sat, multiple times.
Shared Tasks
In 2021, I decided I was going to move a lot of my other projects to the background to start prioritizing getting Shared Tasks moving since it had lost all momentum multiple times by the several different folks who attempted it. I scoped out the project and started my plans for how I was going to tackle the behemoth. I put together a design doc which shaped the rough idea of how the project were to be executed and what was needed to be done. It also required heavy cleanup of the existing Task code to even consider how we were going to bolt on a wildly complex system on top of it and keep it simple and intuitive enough for other developers to maintain and content creators to consume.
After scoping out the project, it took some convincing but I was able to get @hg who was a massive help and co-contributor to making Shared Tasks possible. If you don't know HG he was a player on PEQ and one day decided to take a stab at Expeditions and Dynamic Zones and beautifully executed them. I really enjoyed working with someone so brilliant, easy to work with as we tackled the monstrosity that was Shared Tasks. We formulated our plans, iterated on them, learned from it, iterated our plans some more, went on code binges on each parts of our implementations and found ourselves burnt out many a time, only to pick ourselves back up to keep going. Hitting a project like this for as long as we did was a difficult, stale, lengthy process and having each other to keep synergy going was key.
ProjectEQ Expansions
There's been a lot of work behind the scenes over the years to enable the server technologically the capability of classifying content and data to be within an era. Classifying data is still an ongoing effort and whilst not perfect, we are and have been making massive strides in this area.
ProjectEQ is the foundational database that is used in every EverQuest Emulator server installation and is the open source "source of truth" for Live-like content. While being the defacto standard, that does not mean that it is perfect, in many ways is far from it. Many projects have forked from it and made significant improvements to various eras of the EverQuest experience. The emulator community as a whole continues to make lots of progress here, sometimes other projects have to take the foreground for a while until we can get back to certain workstreams.
Some servers have areas of content that is far true to era in ways and with the technology to more easily move a server between eras and content settings, it allows us to move between settings in a matter of small settings changes rather than huge one-way, non-reversible data changes which is how ProjectEQ and all servers have operated until recent years. We have strong members of the community who have been helping contribute back their changes into ProjectEQ content that is more true to era as we progress both forward in expansions and also backwards. We continue to improve our technology, tooling, processes here and we're finally starting to see the first major shift on the current PEQ Production server.
PEQ Server Era Changes
ProjectEQ has for the longest time been considered in no specific era or expansion. It is a mish-mash of current and past, with no sensible boundaries. We use an EverQuest client in the Rain of Fear era while most of the players are playing through Omens of War expansion. Some zones have items, spells, from an era far past Omens of War and even playable character races.
PEQ will be shifting from no expansion or (all expansions) into the current expansion context with the release of Dragons of Norrath. That means that while things won't be perfect, we can start to think of a lot of our data from the lens of the current era and make changes, tweaks from the perspective of the era. It also allows us to classify things in earlier expansions and later expansions which will make the ProjectEQ database more fluid for anyone who installs their own server to chose what experience they want to play on as we the project matures.
While we realize that making this change, it will inevitably take things away that players have been used to utilizing and benefiting from that is out of era. Taking things away is not fun from the player perspective and changes that do so should be attempted to be done as sensibly as we can. We are going to try our best to grandfather out of era features and things where it makes sense such as quality of life client features out of era and doesn't impact the experience tremendously.
Other servers that use PEQ can choose to be more strict about their era experiences while we will try to stay mostly true to form, we can certainly make small exclusions here and there where it does make sense. Some of that we will leave up to player feedback on the forums as to what should be done with things that may have been undecided on and we can make a call. It also doesn't mean that when PEQ has other variants of servers out for player use, some rule-sets can't be more stricter in some sense as well to be even truer to the era changes through progression.
In general, if players feel something should be changed. Please utilize the forums to report and make the case for what you feel should be changed.
Special Thanks
None of this would be possible if it wasn't for a ton of work by very few individuals.
- @huffin for his unrelenting dedication to PEQ. PEQ most certainly wouldn't be what it is today without his help. Massive contributor to content. He is always tweaking, tuning, fixing, correcting silently behind the scenes and does so without much thanks. I and the community are forever grateful for his selfless contributions and incredible hard work.
- @Drogerin for his huge contributions during the early phases of Dragons of Norrath. Drogerin was a huge help to the PEQ community helping out in all ways content. Huffin and Drogerin worked closely together on many things.
- @huffin and @Drogerin worked together closely during the early days of Dragons of Norrath, collecting zones, tuning encounters, building boss event scripts, parsing, scaling zones, applying pathing.
- @joligario for being a long-time champion of PEQ. Always helpful on the forums, being the sole maintainer of the PEQ editor enabling content developers to do more for the community, fixing broken scripts, helping players and so much more.
- @hg for being the silent hero who if it weren't for him, I wouldn't be writing this right now. He was instrumental in building Expeditions, Dynamic Zones, Shared Tasks, building out all of the Dragons of Norrath progression, sequencing, framing in all of the tasks and all of the missions for Dragons of Norrath.
- @robregen a long time PEQ veteran who went to build the The Al`kabor Project for years and is now coming back with all of his content learnings to help make PEQ better. Robregen is an amazing person who has selflessly helped so many people in the community.
- @Trust for continuing to take his learnings from running Wayfarers Haven (a variant of The Al`Kabor Project) and continuing to give back and also make PEQ better. Trust has been a valuable member of the emulator community and has done many things to improve PEQ from his work on Wayfarers. I'm sure he will certainly help Dragons of Norrath as well once his project is exposed to the expansion as well
Changelog Notes
Era-Related Changes
AA's
- Akkadius AA's are now era contextual. Only the AA's that were available during Dragons of Norrath will be loaded and available. There is no grandfathering here. Veteran AA's will remain as they were.
- Huffin Spells acquired for Dragons of Norrath through the Plane of Knowledge library prior to the expansion will no longer be scribed on characters and will need to be acquired through the means of the expansion content.
- Akkadius Drakkins are no longer able to be created during character select. If you had a Drakkin created prior to this change you are grandfathered in and still will be able to play said character.
- Akkadius Consolidated Guild Hall versions to the current era. No longer will clients be bouncing between different versions. (Make sure you download patch files)
- Akkadius Consolidated doors between Guild Hall and Guild Lobby to be consistent and not different based on client versions
- Robregen Added the pre-SoD era Guardians and set the appropriate min and max expansion flag.
- Robregen Added the pre-VoA era Spell Merchants and set the min and max expansion flag.
- Robregen Aligned the Bazaar and Guild Lobby to set more appropriate to live and set those doors to appropriate min and max expansion flag.
- Robregen Set the Crescent Portal to correct expansion.
- Robregen Fixed headings to Class Tome Merchant NPC.
- Akkadius No longer will players be able to zone to out of era zones. Zones that were not available during Dragons of Norrath will not be available to zone to regardless of the client you have. If there are challenges due to v1/v2 versions of zones that players run into, we will fix and come up with a remediation plan to address it. If you have spells that bring you to out of era zones, you will be prevented from zoning.
- Akkadius If you are camped in a zone that is out of era, you will be brought in era.
- Akkadius If you are bound in a zone that is out of era, you will be brought in era.
To provide feedback on Dragons of Norrath or anything content related. Feel free to use the forums, you also can use the new /bug functionality. We will be using /bug more to triage issues in-game.
See below for release notes in this server code update.
[22.21.2] - 07/19/2023
Databuckets
[22.21.1] - 07/18/2023
Bug
Data Buckets
Fixes
Quest API
[22.20.1] - 07/15/2023
Database
Bots
Bots
Commands
Cleanup/Feature
Feature
Quest API
Code
Fixes
Database
[22.15.1] - 06/19/2023
Schema
Code
Fixes
Backups
Binaries
CI
CLI
Feature
Quest API
Targeting
Telnet
Targeting
[22.13.0] - 06/12/2023
Code
Logging
Quest API
[22.12.0] - 05/29/2023
Code
Messages
Performance
Quest API
Code
Fixes
Messages
Quest API
Backups
Bots
Cleanuo
[22.9.1] - 04/03/2023
Code
[22.21.2] - 07/19/2023
Databuckets
[22.21.1] - 07/18/2023
Bug
- Show Petition and Show Petition_Info fix (#3503) @fryguy503 2023-07-18
- Remove arbitrary teleport blocking in Tutorial and Load zones (#3506) @Valorith 2023-07-19
- Fix issue with expired databuckets not being expired and returned properly (#3504) @Akkadius 2023-07-18
- #set title_suffix Argument Position (#3505) @kinglykrab 2023-07-18
Data Buckets
Fixes
- Fix rule check and add rule for pickpocket command (#3492) @tuday2 2023-07-16
Quest API
- Add SetLDoNPoints() to Perl/Lua (#3496) @kinglykrab 2023-07-16
[22.20.1] - 07/15/2023
Database
- Fix database manifest entry for #3443 @neckkola 2023-07-15
Bots
- Remove orphaned commands related to botgroup (#3489) @tuday2 2023-07-09
- Consolidate #set-like commands into a singular #set command (#3486) @kinglykrab 2023-07-15
- Add Support for item textures higher than 65,535 (#3494) @kinglykrab 2023-07-14
- Update raid features (#3443) @neckkola 2023-07-13
- Fix Tradeskill Combines with augmented items (#3490) @kinglykrab 2023-07-15
- Fix charmed pets to follow when charmed. (#3488) @noudess 2023-07-08
- Update bot naming check and add more explanation (#3491) @tuday2 2023-07-13
- Add Mob/Entity type check methods to Perl/Lua (#3493) @kinglykrab 2023-07-13
Bots
- Add Pickpocket Command (#3484) @tuday2 2023-07-08
- Move #find item summon links to front (#3483) @kinglykrab 2023-07-05
- Remove LoadItemDBFieldNames() from common/misc.cpp and common/misc.h (#3473) @kinglykrab 2023-07-04
- Add #itemsearch alias to #find aliases (#3485) @kinglykrab 2023-07-08
- Consolidate #show commands into a singular #show command (#3478) @kinglykrab 2023-07-08
- Fix _PutItem having a slot_id of -1 on mobs with no items (#3474) @kinglykrab 2023-07-04
- Add Skills:TrivialTradeskillCombinesNoFail Rule (#3481) @JasXSL 2023-07-05
Commands
- Add #emotesearch to #find command (#3480) @kinglykrab 2023-07-04
- Cleanup #copycharacter Command (#3479) @kinglykrab 2023-07-04
- Add chatchannel_reserved_names to a new manifest (#3482) @kinglykrab 2023-07-04
- Fix issue in zone store of returning reference to local variable (#3477) @kinglykrab 2023-07-04
Cleanup/Feature
- Add support for bots to #showstats/#mystats (#3427) @kinglykrab 2023-07-01
- Remove LoadItemDBFieldNames() from common/misc.cpp and common/misc.h (#3473) @kinglykrab 2023-07-04
- Remove handle_npc_single_npc from zone/lua_parser_events.cpp and zone/lua_parser_events.h (#3467) @kinglykrab 2023-07-03
Feature
- Add Strings::BeginsWith() and Strings::EndsWith() (#3471) @kinglykrab 2023-07-03
- Add check for underscores in botcreate command (#3458) @tuday2 2023-06-29
- EVENT_LANGUAGE_SKILL_UP in Lua was using EVENT_SKILL_UP logic (#3466) @kinglykrab 2023-07-03
- Fix _PutItem having a slot_id of -1 on mobs with no items (#3474) @kinglykrab 2023-07-04
- Fix data type of GetAggroCount() (#3470) @kinglykrab 2023-07-03
Quest API
- Add ClearAccountFlag() and GetAccountFlags() to Perl/Lua (#3469) @kinglykrab 2023-07-03
- Add GetClassAbbreviation() and GetRaceAbbreviation() to Perl/Lua (#3463) @kinglykrab 2023-07-02
- Add GetClassPlural() and GetRacePlural() to Perl/Lua (#3468) @kinglykrab 2023-07-03
- Add GetCloseMobList() and CalculateDistance() overload to Perl/Lua (#3455) @kinglykrab 2023-07-02
- Add Hate Entry Methods to Perl (#3459) @kinglykrab 2023-07-02
- Add ItemData Class to Perl (#3465) @kinglykrab 2023-07-02
- Add Spawn2 Class to Perl (#3456) @kinglykrab 2023-07-02
- Add StatBonuses Class to Perl (#3460) @kinglykrab 2023-07-02
- Add missing Item Methods to Perl/Lua. (#3464) @kinglykrab 2023-07-02
Code
- Default skill type to Hand to Hand in #npcedit meleetype (#3422) @kinglykrab 2023-06-19
- Delete common/worldconn.cpp (#3436) @kinglykrab 2023-06-24
- Remove DatabaseCastAccepted() from zone/npc.cpp and zone/npc.h (#3449) @kinglykrab 2023-06-24
- Remove GetACAvoid() from zone/merc.h (#3447) @kinglykrab 2023-06-25
- Remove GetACMit() from zone/merc.h (#3446) @kinglykrab 2023-06-24
- Remove _ClearWaypints() from zone/npc.h (#3445) @kinglykrab 2023-06-24
- Remove acmod() from zone/merc.h (#3448) @kinglykrab 2023-06-24
- Remove command_packetprofile from zone/command.h (#3432) @kinglykrab 2023-06-24
- Remove command_showpetspell in zone/command.h (#3430) @kinglykrab 2023-06-24
- Remove command_unlock from zone/command.h (#3431) @kinglykrab 2023-06-24
- Add #finddeity Command (#3435) @kinglykrab 2023-06-26
- Add #findlanguage Command (#3434) @kinglykrab 2023-06-25
- Add #showspells Command (#3429) @kinglykrab 2023-06-24
- Add missing subcommands to #npcedit (#3423) @kinglykrab 2023-06-19
- Cleanup #showbuffs Command (#3439) @kinglykrab 2023-06-26
- Cleanup #shownpcgloballoot and #showzonegloballoot Commands (#3440) @kinglykrab 2023-06-24
- Cleanup #viewcurrencies Command (#3441) @kinglykrab 2023-06-25
- Consolidate #findX commands to a singular #find Command (#3452) @kinglykrab 2023-06-28
- Consolidate #merchant_close_shop and #merchant_open_shop to #merchantshop (#3433) @kinglykrab 2023-06-24
- Delete #showbonusstats Command (#3437) @kinglykrab 2023-06-24
- Delete #spellinfo Command (#3438) @kinglykrab 2023-06-24
- Fix database version checking edge case issue (#3428) @Akkadius 2023-06-22
- Fix multi-statement error reporting (#3425) @Akkadius 2023-06-19
- Implement native database migrations in server (#2857) @Akkadius 2023-06-19
- Fix NPC Item Stat Bonuses (#3444) @kinglykrab 2023-06-26
- Fix error in 023_01_21_bots_raid_members.sql (#3453) @mibastian 2023-06-28
- Fix possible crash with #npcedit weapon (#3421) @kinglykrab 2023-06-19
- Merchant Open Flag set only for regular Merchants (#3454) @kinglykrab 2023-06-27
- Update new location of database updates (#3424) @joligario 2023-06-19
- Add ClientPetsUserOwnerNameInLastName rule (#3442) @kinglykrab 2023-06-25
Fixes
- Fix improper condition in Water LOS checks (#3426) @kinglykrab 2023-06-19
Database
[22.15.1] - 06/19/2023
Schema
- Add chatchannel_reserved_names table to database_schema.h
Code
- Default skill type to Hand to Hand in #npcedit meleetype (#3422) @kinglykrab 2023-06-19
- Add missing subcommands to #npcedit (#3423) @kinglykrab 2023-06-19
Fixes
- Fix possible crash with #npcedit weapon (#3421) @kinglykrab 2023-06-19
Backups
Binaries
CI
CLI
- Add bots:enable and bots:disable commands (#3415) @Akkadius 2023-06-17
- Add mercs:enable and mercs:disable commands (#3416) @Akkadius 2023-06-18
- Console menu validation fixes (#3413) @Akkadius 2023-06-17
Feature
- Add Water Line of Sight Checks (#3408) @nytmyr 2023-06-17
Quest API
- Add convert_money_to_string() to Perl/Lua (#3418) @kinglykrab 2023-06-18
Targeting
Telnet
- Add cross zone/world wide cast and move functionality to Telnet (#3409) @kinglykrab 2023-06-17
Targeting
[22.13.0] - 06/12/2023
Code
- Add GMFind_Struct to packet structures (#3402) @kinglykrab 2023-06-12
- Remove CHECK_LOS_STEP from zone/common.h (#3398) @kinglykrab 2023-06-12
- Remove CheckCoordLosNoZLeaps() from zone/entity.cpp and zone/entity.h (#3384) @kinglykrab 2023-06-12
- Remove CountTempPets() from zone/entity.cpp and zone/entity.h (#3390) @kinglykrab 2023-06-12
- Remove Evade() from zone/entity.cpp and zone/entity.h (#3394) @kinglykrab 2023-06-12
- Remove GateAllClients() from zone/entity.cpp and zone/entity.h (#3391) @kinglykrab 2023-06-12
- Remove GetClient(ip, port) from zone/entity.h (#3386) @kinglykrab 2023-06-12
- Remove GetClientCount() from zone/entity.cpp and zone/entity.h (#3392) @kinglykrab 2023-06-12
- Remove GetGroupByBot(), GetRaidByMob(), and GetRaidByLeaderName() from zone/entity.cpp and zone/entity.h (#3387) @kinglykrab 2023-06-12
- Remove InteractiveChat() and TakenAction() from zone/npc.h (#3382) @kinglykrab 2023-06-12
- Remove LimitCheckBoth() from zone/entity.cpp and zone/entity.h (#3393) @kinglykrab 2023-06-12
- Remove NPC::AddCash() from npc.cpp/npc.h (#3380) @kinglykrab 2023-06-09
- Remove RemoveMob() and RemoveRaid() from zone/entity.cpp and zone/entity.h (#3389) @kinglykrab 2023-06-12
- Remove SPECIALIZE_MANA_REDUCE from zone/common.h (#3400) @kinglykrab 2023-06-12
- Remove SendAATimer() from zone/entity.h (#3388) @kinglykrab 2023-06-12
- Remove WriteEntityIDs() from zone/entity.cpp and zone/entity.h (#3395) @kinglykrab 2023-06-12
- Remove _BECOMENPCPET() and _NPCPET() from zone/common.h (#3399) @kinglykrab 2023-06-12
- Remove pDBAsyncWorkID from zone/entity.h (#3385) @kinglykrab 2023-06-12
- Remove struct DynamicZoneSafeReturn from zone/entity.h (#3396) @kinglykrab 2023-06-12
- Remove struct TradeEntity from zone/common.h (#3397) @kinglykrab 2023-06-12
- Assign #opcode to a #reload alias (#3401) @kinglykrab 2023-06-12
Logging
Quest API
- Add GetEXPForLevel() to Perl/Lua (#3403) @kinglykrab 2023-06-12
- Add SendChannelMessage() to Perl/Lua (#3378) @kinglykrab 2023-06-04
- Add several spell methods to Perl/Lua (#3379) @kinglykrab 2023-06-12
[22.12.0] - 05/29/2023
Code
- Cleanup #setskill and #setskillall Commands (#3367) @kinglykrab 2023-05-25
- Delete message.h (#3348) @kinglykrab 2023-05-17
- Fix #spawn command NPCs having 0 health (#3371) @kinglykrab 2023-05-21
- Remove CalcPetHp from spdat.h (#3364) @kinglykrab 2023-05-25
- Remove CountNPC() and QueueManaged() from entity.cpp/entity.h (#3346) @kinglykrab 2023-05-17
- Remove DumpMerchantList() from zone.cpp/zone.h (#3343) @kinglykrab 2023-05-17
- Remove GetDamageReceived() and GetHealReceived() from combat_record.cpp/combat_record.h (#3358) @kinglykrab 2023-05-17
- Remove GetEscapingEntOnHateList() from hate_list.cpp/hate_list.h (#3353) @kinglykrab 2023-05-17
- Remove GetMaxRank() from aa_ability.cpp/aa_ability.h (#3347) @kinglykrab 2023-05-25
- Remove IsEntityInFrenzyMode() from hate_list.cpp/hate_list.h (#3352) @kinglykrab 2023-05-17
- Remove IsRaid() from raids.h (#3361) @kinglykrab 2023-05-25
- Remove LoadSpawn2() and PopulateZoneSpawnListClose() from spawn2.cpp/zonedb.h (#3344) @kinglykrab 2023-05-25
- Remove SetGraveyard() from zone.cpp/zone.h (#3354) @kinglykrab 2023-05-17
- Remove SetTradeCash() from trading.cpp/common.h (#3356) @kinglykrab 2023-05-17
- Remove TraderUpdate() from trading.cpp/client.h (#3357) @kinglykrab 2023-05-17
- Remove TypeToSkill() from tradeskills.cpp/object.h (#3355) @kinglykrab 2023-05-17
- Remove Z_AGGRO from spdat.h (#3365) @kinglykrab 2023-05-25
- Remove numMembers from raids.h (#3362) @kinglykrab 2023-05-25
- Set GetAugmentType() to int again (#3335) @kinglykrab 2023-05-08
- Add #findcurrency Command (#3368) @kinglykrab 2023-05-25
- Add entity variable command (#3345) @kinglykrab 2023-05-25
- Cleanup #setanim (#3350) @kinglykrab 2023-05-25
- Intoxication setter/getter for source, getter for Perl/Lua (#3330) @JasXSL 2023-05-03
- #augmentitem bypasses augment restrictions (#3332) @kinglykrab 2023-05-07
- Fix Heroic INT/WIS Bonuses (#3341) @RekkasGit 2023-05-15
- Fix duplicate messages in #npcedit (#3372) @kinglykrab 2023-05-21
- Fix issue with Group Pointers/Member roles (#3374) @Aeadoin 2023-05-25
- Fix mob item bonus calc (#3334) @Akkadius 2023-05-07
- Fix typos in #zheader (#3370) @kinglykrab 2023-05-21
- Mob scaling issue with min dmg set to zero while max dmg is not (#3351) @RekkasGit 2023-05-20
- NPC Armor Upgrade to a slot not handled correctly (#3366) @noudess 2023-05-20
- ReloadQuests() on Zone::Init() to avoid cached global quests/plugins (#3333) @kinglykrab 2023-05-07
- Revert " ReloadQuests() on Zone::Init() to avoid cached global quests/plugins " (#3333) @Akkadius 2023-05-08
Messages
Performance
- Character bind is now bulk saved (#3338) @Akkadius 2023-05-09
- Character buffs now save in bulk (#3336) @Akkadius 2023-05-09
- Character pet bulk saving (#3337) @Akkadius 2023-05-09
- Character tribute is now bulk saved (#3340) @kinglykrab 2023-05-25
- Mail key is now cached during player load (#3339) @Akkadius 2023-05-09
Quest API
- Add GetHateListClosest(), GetHateListClosestBot(), GetHateListClosestClient(), and GetHateListClosestNPC() methods/overloads to Perl/Lua (#3359) @RekkasGit 2023-05-16
- Add GetPet() to Perl (#3309) @kinglykrab 2023-05-08
- Add Memorize and Scribe Spell Events to Perl/Lua (#3363) @kinglykrab 2023-05-25
- Add zone data methods to Perl/Lua (#3342) @kinglykrab 2023-05-24
- Cleanup The Darkened Sea Quest Methods Names (#3369) @kinglykrab 2023-05-21
- Add World:MaximumQuestErrors Rule (#3349) @kinglykrab 2023-05-21
- ResurrectionEffectBlock to prevent/allow/move buffs. (#3288) @nytmyr 2023-05-08
Code
- Add check for owner in quest:ausetimer() (#3304) @kinglykrab 2023-04-23
- Add check for owner in quest::resumetimer() (#3305) @kinglykrab 2023-04-23
- Add initiator/owner checks to various methods in questmgr.cpp (#3306) @kinglykrab 2023-04-23
- Fix possible nullptr in quest::addloot() (#3303) @kinglykrab 2023-04-23
- Remove GetClassHPFactor() from zone/client_mods.cpp and zone/client.h (#3313) @kinglykrab 2023-04-30
- Remove GetClassHPFactor() from zone/merc.h (#3314) @kinglykrab 2023-04-30
- Remove pDontCastBefore_casting_spell from zone/npc.h (#3311) @kinglykrab 2023-04-30
- Remove unused code in zone/pets.cpp (#3310) @kinglykrab 2023-04-30
- Remove unused methods in zone/bot.cpp and zone/bot.h (#3315) @kinglykrab 2023-04-30
- Remove unused methods in zone/client.cpp and zone/client.h (#3312) @kinglykrab 2023-04-30
- Remove unused variable in common/crash.cpp (#3308) @kinglykrab 2023-04-30
- Use default ctor/dtor in oriented_bounding_box.h (#3307) @kinglykrab 2023-04-30
- quest::createBot() unnecessary check against nullptr (#3302) @kinglykrab 2023-04-23
- quest::setallskill() had always true condition. (#3301) @kinglykrab 2023-04-30
- Fix UCS crash that occurs during log reloading (#3324) @Akkadius 2023-04-30
- Fix possible dereference of nullptr in Client::CalcHPRegen (#3316) @Aeadoin 2023-04-23
- Fix possible nullptr in Client::GetCharMaxLevelFromQGlobal() (#3317) @kinglykrab 2023-04-23
Fixes
- Fix issue with NPCs no longer using some armor. (#3318) @noudess 2023-04-24
- Fix issue with spawning Mercs (#3327) @Aeadoin 2023-04-29
- Possible issues with SummonItem in Client::QuestReward() methods (#3325) @kinglykrab 2023-04-27
Messages
Quest API
- Add GetDefaultRaceSize() overloads to Perl/Lua (#3320) @kinglykrab 2023-04-30
- Add HasSpellEffect() to Perl/Lua (#3319) @kinglykrab 2023-04-30
Backups
Bots
Cleanuo
- Only define row if we have results in Database::GetCharacterID() (#3199) @kinglykrab 2023-04-05
- Add missing breaks and returns in bonuses.cpp (#3231) @kinglykrab 2023-04-05
- Breaks in wrong spot in cases in spell_effects.cpp (#3297) @kinglykrab 2023-04-22
- Cleanup always true/false statements in shareddb.cpp (#3189) @kinglykrab 2023-04-05
- Cleanup cheap-to-copy reference to use value instead in eq_stream_ident.cpp/eq_stream_ident.h (#3209) @kinglykrab 2023-04-05
- Cleanup discord.cpp and discord_manager.cpp (#3205) @kinglykrab 2023-04-05
- Cleanup duplicate conditions in negate bonuses in bonuses.cpp (#3226) @kinglykrab 2023-04-05
- Cleanup item_instance.cpp always true statements and reassigning of same values (#3187) @kinglykrab 2023-04-05
- Cleanup macros in features.h (#3185) @kinglykrab 2023-04-05
- Cleanup string -> char* -> string conversions in bot_command.cpp (#3252) @kinglykrab 2023-04-05
- Cleanup unnecessary condition in Client::SendAlternateCurrencyValue() (#3266) @kinglykrab 2023-04-05
- Cleanup zone/zoning.cpp (#3289) @kinglykrab 2023-04-14
- Combine similar cases in Client::InitInnates() (#3260) @kinglykrab 2023-04-05
- Convert equipable_slot_list to std::vector from std::list in bot_command.cpp (#3253) @kinglykrab 2023-04-05
- Delete embxs.cpp/embxs.h (#3284) @kinglykrab 2023-04-14
- Delete unused strings in bot_command.cpp (#3251) @kinglykrab 2023-04-05
- Fix GetLastName() length check in Client::SendWindow() (#3263) @kinglykrab 2023-04-05
- Fix always false conditions in Client::IncStats() (#3256) @kinglykrab 2023-04-05
- Fix check for !this in Client::SendHPUpdateMarquee() (#3257) @kinglykrab 2023-04-05
- Fix filter condition in attack.cpp (#3218) @kinglykrab 2023-04-05
- Fix ornamentation augment icons in inspect requests (#3264) @kinglykrab 2023-04-05
- Fix possible nullptr inst in GetSharedBank() (#3190) @kinglykrab 2023-04-08
- Fix possible overflows in Client::AddPlatinum() and Client::TakePlatinum() (#3255) @kinglykrab 2023-04-05
- Fix shared_tasks.cpp/shared_tasks.cpp variable named same as class member (#3192) @kinglykrab 2023-04-05
- Fix skill_used being used as boolean in Mob::CommonDamage() (#3220) @kinglykrab 2023-04-05
- Identical conditions right beside each other in aa.cpp (#3213) @kinglykrab 2023-04-05
- Move unreachable code in ApplySpellsBonuses() (#3229) @kinglykrab 2023-04-05
- Move variable definition to more relevant scope in DatabaseDumpService:ump() (#3200) @kinglykrab 2023-04-05
- Multiple cases with same outcome in GetDiscordPayloadFromEvent() (#3184) @kinglykrab 2023-04-05
- Remove ExportVarComplex() from embparser.cpp/embparser.h (#3282) @kinglykrab 2023-04-14
- Remove GetQGlobal() from qglobals.cpp/qglobals.h (#3285) @kinglykrab 2023-04-14
- Remove IsFullHP from mob.cpp/mob.h (#3277) @kinglykrab 2023-04-14
- Remove IsMeleeDmg() from skills.cpp/skills.h (#3279) @kinglykrab 2023-04-14
- Remove _GetMovementSpeed() from mob.h (#3276) @kinglykrab 2023-04-14
- Remove always true condition in Strings::Commify() (#3193) @kinglykrab 2023-04-05
- Remove always true conditions and unreachable code in Client::SendMercPersonalInfo() (#3258) @kinglykrab 2023-04-05
- Remove always true statement in say_link.cpp (#3188) @kinglykrab 2023-04-05
- Remove always true statements in task_client_state.cpp (#3292) @kinglykrab 2023-04-14
- Remove always true/false conditions from bot.cpp (#3237) @kinglykrab 2023-04-05
- Remove bool return from GetSharedPlatinum() (#3191) @kinglykrab 2023-04-05
- Remove extra assignment of current_endurance in Client ctor (#3261) @kinglykrab 2023-04-05
- Remove extraneous check for NegateAttacks in SE_NegateAttacks (#3228) @kinglykrab 2023-04-05
- Remove extraneous parentheses around math in Mob::ApplySpellsBonuses() (#3227) @kinglykrab 2023-04-05
- Remove getd(), geti(), InUse(), lasterr(), my_get_sv(), and VarExists() in embperl.cpp/embperl.h (#3283) @kinglykrab 2023-04-15
- Remove item_timers from questmgr.cpp/questmgr.h (#3286) @kinglykrab 2023-04-14
- Remove pendinggroup from mob.h (#3278) @kinglykrab 2023-04-14
- Remove position_same_update_count from client.cpp/client.h (#3280) @kinglykrab 2023-04-14
- Remove unnecessary break in while loop in Mob::AddToHateList() (#3219) @kinglykrab 2023-04-05
- Remove unnecessary check for IsStackable() in DeleteItem() (#3186) @kinglykrab 2023-04-05
- Remove unnecessary condition and cleanup variable name in tasks.cpp (#3293) @kinglykrab 2023-04-14
- Remove unnecessary conditions in Client::Consume() (#3265) @kinglykrab 2023-04-05
- Remove unnecessary conditions in Client::FilteredMessageCheck() (#3262) @kinglykrab 2023-04-05
- Remove unnecessary conditions in Client::SendFactionMessage() (#3267) @kinglykrab 2023-04-05
- Remove unnecessary setting of reuse variable in Bot:oClassAttacks() (#3233) @kinglykrab 2023-04-05
- Remove unused SetConfigFile in common/eqemu_config.h (#3208) @kinglykrab 2023-04-05
- Remove unused code in eq_packet.cpp/eq_packet.h (#3183) @kinglykrab 2023-04-05
- Remove unused ctor and use default dtor in xtargetautohaters.h (#3290) @kinglykrab 2023-04-14
- Remove unused macros in common/types.h (#3194) @kinglykrab 2023-04-05
- Remove unused variable in Database::CopyCharacter() (#3197) @kinglykrab 2023-04-05
- Remove unused variables and use reference in task_manager.cpp (#3291) @kinglykrab 2023-04-14
- SE_AttackSpeed3 effect_value is always less than 0 (#3222) @kinglykrab 2023-04-05
- SE_StrikeThrough and SE_StrikeThrough2 are the same in bonuses.cpp (#3223) @kinglykrab 2023-04-05
- Set bonuses to use spell ID instead of boolean (#3230) @kinglykrab 2023-04-05
- Use .clear() and .empty() instead of comparing to empty string or setting to empty string in CheckDatabaseConvertPPBlob() (#3201) @kinglykrab 2023-04-05
- Use .clear() instead of setting string to empty in eqemu_command_handler.cpp (#3195) @kinglykrab 2023-04-05
- Use .empty() in Client::ScribeSpells() and Client::LearnDisciplines() (#3259) @kinglykrab 2023-04-05
- Use constant reference and check for empty string properly in dbcore.cpp (#3203) @kinglykrab 2023-04-05
- Use default ctor instead of an empty ctor. (#3206) @kinglykrab 2023-04-05
- Use default dtor instead of empty dtor for EQTime in eqtime.cpp/eqtime.h (#3210) @kinglykrab 2023-04-05
- Use variable for c->GetTarget() instead of calling multiple times in bot_command.cpp (#3254) @kinglykrab 2023-04-05
- Use variable for character instead of a loop (#3268) @kinglykrab 2023-04-05
- Utilize .empty() instead of checking for an empty string in Database::ReserveName() (#3198) @kinglykrab 2023-04-05
- Utilize IsTaunting(), SetPetPower(), SetPetType(), and SetTaunting() (#3275) @kinglykrab 2023-04-15
- Validate for nullptrs in bot.cpp (#3232) @kinglykrab 2023-04-05
- other is always defined in these cases in attack.cpp (#3217) @kinglykrab 2023-04-05
- results variable is assigned but never used in SaveCharacterCreate() (#3180) @kinglykrab 2023-04-05
- Add additional raid integrity checks on Bot Spawn. (#3295) @Aeadoin 2023-04-16
- Fix crash with uninitialized item instance, and Bot timeout (#3296) @Aeadoin 2023-04-15
- Resolve crash due to uninitialized pointer. (#3271) @Aeadoin 2023-04-08
- Make ornamentations work with any augment type (#3281) @kinglykrab 2023-04-16
- Camping was causing player to leave raid, causing unexpected behavior (#3299) @Aeadoin 2023-04-22
- Resolve loading of inventory (#3272) @Aeadoin 2023-04-08
- Add ApplySpellRaid() and SetSpellDurationRaid() to Bots in Perl/Lua (#3274) @kinglykrab 2023-04-09
- Add GetBuffSpellIDs() to Perl/Lua (#3273) @kinglykrab 2023-04-09
- Fix LDoN Methods in Perl/Lua (#3287) @kinglykrab 2023-04-10
- Optional summoning when already in melee range (#3204) @trentdm 2023-04-08
[22.9.1] - 04/03/2023
Code
- Add client pointer validation to Zone::GetClosestZonePoint() (#3173) @kinglykrab 2023-04-01
- Change level to bot_level in Bot:oClassAttacks() to not overlap member variable (#3239)...
Inktuta Revamp
Uqua Revamp
The zone is still not 100% due to the inability to add proper entity based traps, but one that system is implemented I can resolve the last bit of inaccuracies.
- DZ Based
- Requires Cyno dead to request
- 2 hour lockout on request
- All fights revamped
- Noqufiel is a completely re-written and different fight based on actual facts vs online guide garbage
- Bonus Loot scripting functions (Can be looked up online how to specify the bonus loot item you want)
- DZ's will lock at a specific point and prevent players from being added.
- DZ requirements are Minimum 18 players, Maximum 54 players.
Uqua Revamp
- DZ Based
- Gas Chambers are re-written to be accurate and are very unforgiving, they work correctly per lives experience.
- Anti Event skipping is in place (On live you cannot easily bypass doors as you can on the RoF2 and earlier clients)
- Vrex fight has proper mechanics and flavor (including the npc's that act as the 3 minute timer by laying down in order each minute)
- If you leave the construct up, and disregard the flavor warnings saying to make sure to kill it first, you will get a lockout time and no loot/key (This is live like)
- DZ's will lock at a specific point and prevent players from being added.
- This also includes a primals door update
- DZ requirements are Minimum 18 players, Maximum 54 players.
The zone is still not 100% due to the inability to add proper entity based traps, but one that system is implemented I can resolve the last bit of inaccuracies.
Changelog
Crash
Fixes
Crash
Fixes
- Account for bad data in Tradeskill Recipe Entries (#2991) (Aeadoin) 2023-02-25
- Fix DoAnim quest method default speed (#3016) (Kinglykrab) 2023-03-01
- Fix for Discipline Loading from Database causing issues with slot_ids (#3008) (Aeadoin) 2023-02-28
- Fix for Lore Components where component is returned. (#3005) (Aeadoin) 2023-02-27
- Fix issue where quest saylink responses would occur before the NPC's response (#3010) (Akkadius) 2023-03-01
Fixes
Quest API
- Correct Mend reuse time and add reduction support. (#2972) (nytmyr) 2023-02-23
- Fix Beneficial Target of Target procs (#2987) (Aeadoin) 2023-02-24
- Fix for undefined MySQL library behavior. (#2834) (KimLS) 2023-02-25
- Improve roambox logic (#2983) (Akkadius) 2023-02-24
- More z-clip improvements, Wurm and Spectral Iksar race adjustments (#2988) (Akkadius) 2023-02-25
- Smoother pathing z-correction (#2982) (Akkadius) 2023-02-24
Quest API
- Add IsAutoAttackEnabled() to Perl/Lua (#2979) (Kinglykrab) 2023-02-23
- Add IsAutoFireEnabled() to Perl/Lua (#2978) (Kinglykrab) 2023-02-23
- Fix EVENT_TIMER crash when entity is no longer available (#2986) (Akkadius) 2023-02-24
- Add support for zone ID and instance version to NPC Scaling (#2968) (Kinglykrab) 2023-02-25
Changelog
Below is Plane of Valor, before and after
- Improvements to general pathing
- Mobs should clip into the ground far less
- Recovery from clipping should also work much better
- Anguish
- Ruined City of Dranik
- Highkeep
- Muramite Proving Grounds
- Riftseekers
- Tipt
- Wall of Slaughter
- Plane of Valor
Below is Plane of Valor, before and after
Thanks for weathering the turbulence of updates recently. We appreciate you all
Double Experience through 2/27/2023
Double Experience through 2/27/2023
Changelog
- Issues related to players having problems with various hand-in NPC's should now be resolved (#2945) (#1373)
- Issues related to Gates of Discord instances / raids should now be resolved (#2947)
- Groundspawns will now properly do lore checks and no longer desynchronize the client
- Groundspawns now appear properly on the ground instead of up in the air (#2930)
- Clients dropping items should no longer crash zones (#2939)
- Translocations work again (#2897)
- Tradeskills now check for lore (#2932)
- Plane of Mischief teleportation doors/pictures work properly again
- Sanctus Seru teleportation clicks are now working properly again
See below for changelog
AA
Appveyor
Bots
Code
Doors
Mercs
Pathing
Quest API
Tasks
Websocket
Windows
Zone Flags
AA
Appveyor
- Remove bots preprocessor (Akkadius) 2023-01-20
Bots
- Add Additional HeroicAgi/Dex Modifiers. (#2838) (Aeadoin) 2023-02-07
- Add Additional HeroicStr modifiers. (#2837) (Aeadoin) 2023-02-07
- Add Bot Command Reloading (#2773) (Kinglykrab) 2023-01-22
- Add EVENT_UNEQUIP_ITEM_BOT & EVENT_EQUIP_ITEM_BOT (#2796) (Aeadoin) 2023-01-27
- Add GetAugmentIDsBySlotID & AddItem with table ref Methods. (#2805) (Aeadoin) 2023-01-29
- Add GetBotOwnerByBotID Method (#2715) (Aeadoin) 2023-01-11
- Add IsBot() to methods in attack.cpp where applicable. (#2840) (Aeadoin) 2023-02-09
- Add Lore Check for Augments. (#2874) (Aeadoin) 2023-02-12
- Add Override methods for GetMax Buffs/Songs/Total slots (#2801) (Aeadoin) 2023-01-27
- Add Pet Power Support for Temp Pets. (#2853) (Aeadoin) 2023-02-11
- Add Support for AA bonuses that were missing. (#2764) (Aeadoin) 2023-01-20
- Add Support for TryTriggerOnCastFocusEffect (#2864) (Aeadoin) 2023-02-13
- Add TotalDominationBonus modifiers. (#2852) (Aeadoin) 2023-02-09
- Add Virtual Override for Bot::Attack (#2771) (Aeadoin) 2023-01-20
- Cleanup and remove preprocessors. (#2757) (Kinglykrab) 2023-01-20
- Cleanup various Bot Spell Focus methods (#2649) (Aeadoin) 2022-12-16
- Fix Bot Spell Type "In Combat Buffs" (#2711) (Aeadoin) 2023-01-08
- Fix Slow Query in QueryNameAvailablity (#2781) (Aeadoin) 2023-01-22
- Post pre-processor fixes (#2770) (Akkadius) 2023-01-20
- Restrict Bot Groups from spawning while Feigned. (#2761) (Aeadoin) 2023-01-19
- ST_AreaClientOnly spells to land on Bots (#2849) (Aeadoin) 2023-02-09
- Update ResistSpell to use temp_level_diff client formula (#2851) (Aeadoin) 2023-02-09
- ^create and ^viewcombos popup messages fix. (#2797) (Kinglykrab) 2023-01-26
- Fixing % based mob see invis (#2802) (fryguy503) 2023-01-29
- #reload aa will now refresh the AA table properly for every client when changes are made (#2814) (Natedog2012) 2023-01-31
- #reload static should now properly fill the entity_lists for… (#2815) (Natedog2012) 2023-01-31
- Arithmetic on different enums is deprecated (#2752) (mackal) 2023-01-17
- Enable C++20 + Fixes + FMT 9.1 (#2664) (Akkadius) 2022-12-21
Code
- Add IsOfClientBot() virtual method. (#2845) (Aeadoin) 2023-02-07
- Removed vscode setting (#2753) (xackery) 2023-01-17
- Cleanup #door Command. (#2783) (Kinglykrab) 2023-01-24
- Cleanup magic numbers (#2662) (Aeadoin) 2022-12-20
- Make use of std::abs where possible. (#2739) (Kinglykrab) 2023-01-15
- Merge Client::Attack and Bot::Attack into Mob::Attack (#2756) (Aeadoin) 2023-01-20
- Remove Unused Mod Hooks (#2856) (Kinglykrab) 2023-02-13
- Remove unused basic_functions.h (#2729) (Kinglykrab) 2023-01-13
- Remove unused maxskill.h. (#2728) (Kinglykrab) 2023-01-13
- #list now searches without case sensitivity (#2825) (Akkadius) 2023-02-06
- #reload level_mods could cause Non-Booted zones to crash. (#2670) (Aeadoin) 2022-12-24
- Add #findcharacter Command. (#2692) (Kinglykrab) 2023-01-03
- Add #setanon Command (#2690) (Kinglykrab) 2023-01-03
- Cleanup #appearanceeffects Command. (#2777) (Kinglykrab) 2023-01-22
- Cleanup #guild Command (#2693) (Kinglykrab) 2023-01-04
- Fix Flymode Command Help Prompt (#2669) (Aeadoin) 2022-12-23
- Remove #guildapprove, #guildcreate, and #guildlist Commands (#2775) (Kinglykrab) 2023-01-22
- Remove #undyeme Command. (#2776) (Kinglykrab) 2023-01-22
- Remove extraneous else from #weather (#2819) (Kinglykrab) 2023-02-01
- Fix Bot Crash in Bot::Bot Constructor. (#2868) (Aeadoin) 2023-02-12
- Fix Crash in FindType (#2867) (Aeadoin) 2023-02-13
- Fix IsUnderwaterOnly crash where npc data references can be stale (#2830) (Akkadius) 2023-02-06
- Fix command crash with #npcedit weapon when second weapon not passed ni (#2829) (Akkadius) 2023-02-06
- Fix crash in Mob::CommonDamage when attacker was null (#2872) (Aeadoin) 2023-02-13
- Fix crash in bot command botdyearmor (#2832) (Akkadius) 2023-02-06
- Fix crash issue with log formatting during character creation (#2798) (Akkadius) 2023-01-27
- Fix issue where long short names overflow file_name (Akkadius) 2023-02-09
- Fix potential crash in Mob::CommonDamage (#2848) (Aeadoin) 2023-02-09
- Fix rarer world crash issue where scheduler database was not available (#2789) (Akkadius) 2023-01-24
- Add Windows MySQL path auto detection for users where the path is not found (#2836) (Akkadius) 2023-02-06
Doors
- Have NPCs trigger double doors (#2821) (Akkadius) 2023-02-06
- Remove door dev tools spam on client controlled doors (#2824) (Akkadius) 2023-02-06
- Add "Keeps Sold Items" Flag to NPCs (#2671) (Kinglykrab) 2022-12-25
- Add Experience Gain Toggle. (#2676) (Kinglykrab) 2022-12-30
- Add IsOfClientBotMerc() virtual method. (#2843) (Aeadoin) 2023-02-07
- Add Min/Max Status to Merchants (#2806) (Kinglykrab) 2023-01-29
- Add Rule to Disable Group EXP Modifier. (#2741) (Kinglykrab) 2023-01-15
- ResetItemCooldown added to lua/perl and fix item re-cast times to show properly (#2793) (Natedog2012) 2023-01-26
- #npcstats command displaying incorrect faction (#2710) (noudess) 2023-01-08
- #scribespells triggered error on mysql keyword rank (#2779) (noudess) 2023-01-21
- Add Complete Heal Spell back to IsCompleteHealSpell Method (#2722) (Aeadoin) 2023-01-11
- Add omitted function call in UCS (#2768) (Valorith) 2023-01-20
- AltCurrencySelectItemReply_Struct was not handled correctly. (#2702) (Aeadoin) 2023-01-04
- BuffLevelRestrictions were restricting group buffs if mob targeted (#2809) (noudess) 2023-01-29
- EVENT_ENTER_AREA/EVENT_LEAVE_AREA. (#2698) (Kinglykrab) 2023-01-02
- Fix #door Save (#2699) (Kinglykrab) 2023-01-02
- Fix #findaa and GetAAName(). (#2774) (Kinglykrab) 2023-01-22
- Fix #zone 0. (#2691) (Kinglykrab) 2023-01-01
- Fix Aug Clicks where item has no click effect. (#2725) (Aeadoin) 2023-01-12
- Fix Bot "Failed to Load" Messages. (#2719) (Kinglykrab) 2023-01-11
- Fix Bot Group Loading (#2780) (Aeadoin) 2023-01-22
- Fix CheckNumHitsRemaining() with 1H Blunt (#2846) (Kinglykrab) 2023-02-07
- Fix Group XP not working. (#2748) (Aeadoin) 2023-01-17
- Fix NPC Reference in EVENT_SPAWN (#2712) (Kinglykrab) 2023-01-08
- Fix NPC ghosting at safe coordinates (#2823) (Akkadius) 2023-02-06
- Fix ST_TargetsTarget Spells with Restrictions (#2746) (Aeadoin) 2023-01-15
- Fix botgrouplist to display unique entries. (#2785) (Aeadoin) 2023-01-23
- Fix bots equipping augments. (#2772) (Kinglykrab) 2023-01-22
- Fix does_augment_fit_slot method. (#2817) (Aeadoin) 2023-02-01
- Fix for interrupting item casts to no longer lock the client if cast time of item greater than 0 (#2921) (Natedog2012) 2023-02-13
- Fix issue with Bot::LoadAndSpawnAllZonedBots. (#2733) (Kinglykrab) 2023-01-15
- Fix luamod GetExperienceForKill return value (Cole-SoD) 2023-01-12
- Fix nullptr spell in BCSpells::Load() (#2790) (Kinglykrab) 2023-01-24
- Fix scenario where dereferenced object could be null. (#2784) (Aeadoin) 2023-01-23
- Fixed message on promote/demote permissions check. (#2700) (Valorith) 2023-01-02
- Handle_OP_AugmentItem could cause Zone crash (#2750) (Aeadoin) 2023-01-17
- HasPet() Zone Crashes (#2744) (Aeadoin) 2023-01-15
- Move EVENT_SPAWN for adding NPCs back to original spot, also add NPCs… (#2749) (Natedog2012) 2023-01-17
- NPC Constructor was passing hp_regen_per_second out of order to Mob(). (#2681) (Aeadoin) 2022-12-29
- Remove duplicate logic in GetActSpellHealing reducing HOT criticals (#2786) (Kinglykrab) 2023-01-24
- Resolve Warning due to Virtual Mob Method GetInv() (#2650) (Aeadoin) 2022-12-19
- Resolve XP Calculation Bug introduced w/ recent Rule addition (#2703) (Valorith) 2023-01-07
- Resolve issue with max buff count being 25 in ROF2. (#2800) (Kinglykrab) 2023-01-28
- Zone Flags Regression (#2760) (Akkadius) 2023-01-19
- Add CMake Files to .gitignore (#2792) (Kinglykrab) 2023-01-25
- Add Clangd Generated Files to .gitignore (#2684) (Aeadoin) 2022-12-31
- Blocks are nested too deeply. (#2689) (Kinglykrab) 2023-01-01
- Compiling fails on FMT 9.1 with Bots (#2665) (Aeadoin) 2022-12-21
- Corrected misnamed Database Query file for Experience Toggle (#2683) (Aeadoin) 2022-12-31
- Fix HP_EVENT regression (#2927) (Akkadius) 2023-02-14
- Fix door click crash issue if destination zone doesn't exist (Akkadius) 2023-01-20
- Fix issue with EVENT_HP firing regression from #2904 (#2924) (Akkadius) 2023-02-14
- Login Server failing to compile on Windows. (#2758) (Aeadoin) 2023-01-19
- Lua Parser Needs Lua_ItemInst (#2696) (Kinglykrab) 2023-01-01
- Make sure we have a proper split size before assuming we can split it (Akkadius) 2023-01-20
- Post revert build fix for https://github.com/EQEmu/Server/commit/54050924d81d1f83268fe01f9c2b36fe10626601 (Akkadius) 2023-02-01
- Remove appveyor fetch bots (Akkadius) 2023-01-21
- Resolve Zone Crashing when grouped with Bots. (#2747) (Aeadoin) 2023-01-16
- Add raw opcode when emu translated opcode is not found (OP_Unknown) via (C->S) (#2847) (Akkadius) 2023-02-08
- Force crash logs to always be on regardless of setting (#2762) (Akkadius) 2023-01-20
- Implement Player Event Logging system (#2833) (Akkadius) 2023-02-13
- Improvements to GM Say Logging (#2765) (Akkadius) 2023-01-20
- Logging Improvements (#2755) (Akkadius) 2023-01-18
- Remove function prefixes (#2766) (Akkadius) 2023-01-20
- Reset stream so we don't bold the whole line (Akkadius) 2023-01-18
Mercs
- Add Mercenary Support (#2745) (Kinglykrab) 2023-01-17
Pathing
- Improvements to handling tight corridors pathing, clipping detection and recovery (#2826) (Akkadius) 2023-02-06
Quest API
- (Performance) Check equip or scale item events exist before export and execute (#2898) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_AA_BUY or EVENT_AA_GAIN exist before export and execute (#2892) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_AGGRO, EVENT_ATTACK, or EVENT_COMBAT exist before export and execute (#2901) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_COMBINE, EVENT_COMBINE_SUCCESS, EVENT_COMBINE_FAILURE, or EVENT_COMBINE_VALIDATE exist before export and execute (#2896) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_DEATH, EVENT_DEATH_COMPLETE, or EVENT_DEATH_ZONE exist before export and execute (#2909) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_ENVIRONMENTAL_DAMAGE exists before export and execute (#2899) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_FEIGN_DEATH exists before export and execute (#2916) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_ITEM_TICK or EVENT_WEAPON_PROC exist before export and execute (#2914) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_LANGUAGE_SKILL_UP, EVENT_SKILL_UP, or EVENT_USE_SKILL exist before export and execute (#2894) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_PAYLOAD or EVENT_SIGNAL exist before export and execute (#2902) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_SLAY exists before export and execute (#2910) (Kinglykrab) 2023-02-13
- (Performance) Check event EVENT_WAYPOINT_ARRIVE or EVENT_WAYPOINT_DEPART exist before export and execute (#2905) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_AGGRO_SAY, EVENT_SAY, and EVENT_PROXIMITY_SAY (#2882) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_BOT_CREATE (#2886) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_CLICK_DOOR and EVENT_CLICK_OBJECT (#2880) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_DESPAWN and EVENT_DESPAWN_ZONE (#2887) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_DISCOVER_ITEM (#2912) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_DUEL_LOSE and EVENT_DUEL_WIN (#2915) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_ENTER_ZONE and EVENT_ZONE (#2900) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_GM_COMMAND (#2890) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_GROUP_CHANGE (#2884) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_HP (#2904) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_KILLED_MERIT (#2911) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_LEVEL_UP and EVENT_LEVEL_DOWN (#2889) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_POPUP_RESPONSE (#2881) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_RESPAWN (#2917) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_TICK (#2919) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_TIMER (#2903) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_TRADE (#2906) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_UNHANDLED_OPCODE (#2918) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute EVENT_WARP (#2907) (Kinglykrab) 2023-02-13
- (Performance) Check event exists before export and execute area events (#2888) (Kinglykrab) 2023-02-13
- (Performance) Check merchant events exist before export and execute (#2893) (Kinglykrab) 2023-02-13
- (Performance) Check spell or cast events exist before export and execute (#2897) (Kinglykrab) 2023-02-13
- (Performance) Check task events exist before export and execute (#2883) (Kinglykrab) 2023-02-13
- Add $target export to EVENT_INSPECT in Perl (#2891) (Kinglykrab) 2023-02-13
- Add Additional XP Events EVENT_AA_EXP_GAIN, EVENT_EXP_GAIN (#2865) (Valorith) 2023-02-13
- Add Augment Slot Type/Visible to GetItemStat (#2686) (Kinglykrab) 2023-01-01
- Add Augment Slot support to does_augment_fit (#2813) (Kinglykrab) 2023-01-31
- Add Bot Methods to Lua. (#2731) (Kinglykrab) 2023-01-14
- Add Bot::Camp() to Perl/Lua. (#2718) (Kinglykrab) 2023-01-11
- Add BuffCount() Overloads to Perl/Lua. (#2679) (Kinglykrab) 2022-12-29
- Add CampAllBots() to Perl/Lua. (#2732) (Kinglykrab) 2023-01-14
- Add Charges/Augment/Attuned Support to Varlink. (#2685) (Kinglykrab) 2023-01-01
- Add Client Augment Events to Perl/Lua. (#2735) (Kinglykrab) 2023-01-15
- Add Despawn Events to Perl/Lua. (#2707) (Kinglykrab) 2023-01-07
- Add DoAugmentSlotsMatch() to Perl/Lua. (#2687) (Kinglykrab) 2023-01-01
- Add DoesAugmentFit() to Perl/Lua. (#2688) (Kinglykrab) 2023-01-01
- Add Door Methods to Perl/Lua. (#2724) (Kinglykrab) 2023-01-12
- Add EVENT_BOT_CREATE to Perl/Lua (#2713) (Kinglykrab) 2023-01-09
- Add EVENT_DAMAGE_GIVEN and EVENT_DAMAGE_TAKEN to Perl/Lua. (#2804) (Kinglykrab) 2023-01-29
- Add EVENT_DESTROY_ITEM_CLIENT to Perl/Lua. (#2871) (Kinglykrab) 2023-02-13
- Add EVENT_DROP_ITEM_CLIENT to Perl/Lua (#2869) (Kinglykrab) 2023-02-13
- Add EVENT_ITEM_CLICK_CLIENT and EVENT_ITEM_CLICK_CAST_CLIENT to Perl/Lua. (#2810) (Kinglykrab) 2023-01-30
- Add EVENT_TASKACCEPTED to Player scope (#2822) (Valorith) 2023-02-06
- Add GetAugmentIDsBySlotID() to Perl/Lua. (#2673) (Kinglykrab) 2022-12-25
- Add GetItemCooldown to return the time remaining on items… (#2811) (Natedog2012) 2023-01-30
- Add GetLeader() and GetLeaderName() to Perl/Lua. (#2701) (Valorith) 2023-01-04
- Add IsAttackAllowed() to Perl/Lua. (#2672) (Kinglykrab) 2022-12-25
- Add LDoN Methods to Perl/Lua (#2799) (Kinglykrab) 2023-01-29
- Add Override Parameters to ScaleNPC() in Perl/Lua. (#2816) (Kinglykrab) 2023-02-01
- Add Recipe-based methods to Perl/Lua. (#2844) (Kinglykrab) 2023-02-08
- Add SendPath() to Perl/Lua. (#2740) (Kinglykrab) 2023-01-15
- Add SignalAllBotsByOwnerName() to Perl/Lua. (#2730) (Kinglykrab) 2023-01-13
- Add option to Ignore Mods to CalcEXP (#2704) (Aeadoin) 2023-01-06
- Add rule AlternateAugmentationSealer for using a different bagtype (#2831) (Natedog2012) 2023-02-06
- Cleanup Proximity Events (#2697) (Kinglykrab) 2023-01-02
- Cleanup string copies and push_backs. (#2807) (Kinglykrab) 2023-01-29
- Default ScaleNPC to always scale. (#2818) (Kinglykrab) 2023-02-06
- Export $door to EVENT_CLICKDOOR in Perl (#2861) (Kinglykrab) 2023-02-11
- Export $hate_entity to EVENT_HATE_LIST in Perl (#2885) (Kinglykrab) 2023-02-13
- Export $item and $augment to augment events in Perl (#2895) (Kinglykrab) 2023-02-13
- Export $item and $corpse to EVENT_LOOT and EVENT_LOOT_ZONE in Perl (#2878) (Kinglykrab) 2023-02-13
- Export $item to Client/Bot Equip Events in Perl (#2860) (Kinglykrab) 2023-02-11
- Export $item to EVENT_DISCOVER_ITEM in Perl (#2863) (Kinglykrab) 2023-02-11
- Export $item to EVENT_PLAYER_PICKUP in Perl. (#2875) (Kinglykrab) 2023-02-13
- Export $item to Fishing and Forage Events in Perl (#2876) (Kinglykrab) 2023-02-13
- Export $killed_npc to EVENT_NPC_SLAY to Perl (#2879) (Kinglykrab) 2023-02-13
- Export $object to EVENT_CLICK_OBJECT in Perl (#2862) (Kinglykrab) 2023-02-11
- Export $spawned to EVENT_SPAWN_ZONE in Perl (#2877) (Kinglykrab) 2023-02-13
- Export target to EVENT_TARGET_CHANGE in Perl/Lua. (#2870) (Kinglykrab) 2023-02-13
- Export targets to EVENT_CONSIDER and EVENT_CONSIDER_CORPSE (#2908) (Kinglykrab) 2023-02-13
- Optionally parse EVENT_CONNECT and EVENT_DISCONNECT (#2913) (Kinglykrab) 2023-02-13
- Optionally parse EVENT_TEST_BUFF (#2920) (Kinglykrab) 2023-02-13
- Revert " Cleanup string copies and push_backs. " (#2807) (Akkadius) 2023-02-01
- Add Backstab Rules (#2666) (Valorith) 2022-12-21
- Add Group/Raid Experience Rules (#2850) (Kinglykrab) 2023-02-13
- Add LDoN Loot Count Modifier Rule (#2694) (Kinglykrab) 2023-01-03
- Add ManaOnDeath and EndurOnDeath (#2661) (fryguy503) 2022-12-20
- Add rule for NPC Level Based Buff Restrictions. (#2708) (noudess) 2023-01-15
- Add rule to allow players to permanently save chat channels to database, up to a limit. (#2706) (Valorith) 2023-01-19
- Add rule to ignore name filter on chat channel creation. (#2820) (Valorith) 2023-02-06
- Added rule to bypass level based haste caps (#2835) (jcr4990) 2023-02-06
- Change TradeskillUp Rules to be Floats (#2674) (Aeadoin) 2022-12-25
- Fix rule updates that affected bot booting checks (#2841) (Akkadius) 2023-02-06
- Rule to allow cap on % XP gain per kill (#2667) (Valorith) 2022-12-25
Tasks
Websocket
Windows
Zone Flags
It's finally here. We're going to start doing Alpha/Beta testing in the coming weeks.
Stay tuned for more detailed information.
In the meantime, I'm looking to start building interest of who is interested in participating in testing? The testing will not be occurring on the Live server.
Please share and look forward to hearing from you
Stay tuned for more detailed information.
In the meantime, I'm looking to start building interest of who is interested in participating in testing? The testing will not be occurring on the Live server.
Please share and look forward to hearing from you
Overdue but not overdone. Plane of Time has received a much needed overhaul to be in line with accuracy of the event mechanics and to utilize the newer Dynamic Zone system that hgtw implemented a few years ago. This also closes up a few exploits that existed with the older implementation of the Plane of Time.
- Full DZ Support with Proper checks for each stage
- Phase 1 has proper shadowed bosses if you return after 12 hours to continue and are required to complete phase 1 again. These bosses drop no loot per lives setup.
- Per live there is a 45s pre-spawn wait on each of the 5 Phase 1 trials
- Each Phase 1 section has a 18 player limit, any additional players will cause a random player in that area to be kicked to PoTimeA
- Phase 2 is time gated by the RP of the bosses walking and pausing at each "wave". They require no activation in each section unlike phase 1
- Once you enter Phase 4, zoning in will bring you directly to phase 4 with no way to re-enter phase 1-3
- Once you enter Phase 5, zoning in will bring you directly to phase 5 with no way to re-enter phase 1-4
- God Portals will become active once the respective god is killed.
- DZ requirements are Minimum 18 players, Maximum 72 players.
- When the egg is killed, the RP Event will start and cannot be stopped. There is not much time before the entire raid is ported out at that point.
- If you end your dz and return with a fresh dz you will not be granted any of your bonus time from the previous phase. You will be granted the standard phase time.
Page 2 of 5
XenPorta 2 PRO
© Jason Axelrod from 8WAYRUN