Admin Post A little three year anniversary treat: Adam and Eppy have been working together, going over and testing different area's of the server. Needless to say they have found some code we just didn't need or use anymore from previous developers which we all think has been the cause of some of the weird spikes in the last while. This actually dates back to about a year and a half so it will be exciting to see the save times drop, and a much needed server performance boost. Next restart the optimizations will be in place, here are the notes. Server Optimizations -Removed MoveSpawner class. We didn't use it but it called an initialize at load that started a timer that ticks every minute. When the timer ticked, it would iterate through the entire world items list looking for objects of its type. -Removed Fast Movement move implementation. It accounts for a large amount of CPU usage. -All AI has had its wandering function slow down. Prior to this, it was ticking once per 0.005 seconds. We have made it so it will only process a wander every 1 to 10 seconds. This will have no impact on other creature AI functionality. -Removed approximately 4 million items, bringing the overall item count from 12 million to 8 million. -Removed approximately 60k mobiles from the world. -Removed some event subscriptions. We had some event subscriptions to frequent such as on move or on speech that were uneeded. -Decreased portal spawn points stored in memory. -Removed snapshot system. This stored different versions of your skills, bank ect for different maps. It was part of a system that never came to fruition but was still saving to every player mobile. -Optimized speech LOS check. -Reworked speed packet throttle code and added packet throttle for resync packets. -Fixed an issue with mobile noteriety that caused it to check uneeded processor heavy functions on every step, click ect -Temporarily removed location conquests invocation to rework them. -Lowered Speech log max entries per mobile from 10k to 100. -Reworked unique name check. It was iterating through the entire world mobile list even after it had found that a name was not unique. -Made it so animal names do not have to be unique. Every rename packet sent would iterate through the entire world mobile list. -Removed a class that hooked into the packet for world items. Whenever an item would come on screen, it would add a lot of extra uneeded processing. This would happen for every item on screen and would fire for every mobile. -Added a check to avoid uneeded processing for pvp battle checks. Pretty much whenever any action such as clicking, attacking, casting, movement ect occurred, it would iterate through the battles list to see if who you were attacking is a participant in a battle and if they are on the opposing team. This occurred even when you were outside of an event.