+ {{ page.date | date: '%d-%B-%Y' }}
+
+
+
+
Greetings Explorers
+
Highlights of this release include achievement diary reworks, many bug and stability fixes, slayer expansion, optimisations and more.
+
Full list of changes in Gielinor:
+- Part 1 of achievement diary rewrite, the following diaries have been partially or totally rewritten
+
+Lumbridge Beginner
+Lumbridge Easy
+Lumbridge Medium
+Falador Easy
+Falador Hard
+Fremennik Easy
+Fremennik Medium
+Karamja Easy
+Karamja Medium
+Karamja Hard
+Seers' Village Easy
+Seers' Village Medium
+Varrock Easy
+Varrock Medium
+- Items with destroy option can no longer be sold to stores
+Items that cannot be traded can no longer be sold to stores
+- Results of ::ge command now sorted by item name
+- Converted clue scroll rewards to JSON weighted tables
+- Fixed the duplicated sound effects when cutting trees
+- Improved POH lecterns
+
+More authentic animations
+More authentic tick timing
+Fixed off-by-one that resulted in spurious full inventory errors
+Made lecterns take rune-providing staves into account
+Made the buttons light up based on the lectern tier
+Converted TeleTabInterface from a Plugin to a Listener
+- Build process now fetches latest const lib when required
+- Changed guard NPCs in Yanille watchtower to the authentic watchmen NPCs
+- Refactored mining
+
+Converted to content API
+Corrected the prospecting text of gem rocks
+Corrected the full-inventory text when mining gem rocks
+- Converted SummoningTabPlugin to SummoningTabListener
+Implemented "Dismiss now" for familiars
+- Equipping an item into an occupied equipment slot now places the swapped item into the inventory slot of the item being equipped
+- Added ability to define custom varbits via JSON
+Fixed the bank note/unnote and insert/swap toggle buttons not persisting between logins
+- Fixed hardcoded database credentials in unit tests
+- Reworked commands
+
+::commands now very pretty, paged and documents each command user has access to including privilege required
+Command definitions now support adding documentation in-place.
+Adds new command to hot-reload JSON while server is running (::reloadjson)
+- Added additional safety when cleaning up cutscene attributes
+- Moved demon slayer cutscene trigger to its own MapArea
+- Fixed bug that could cause bank to throw index out of bounds and vanish items when rearranging tabs with completely full bank
+- Fixed seemingly random server crashes caused by ArrayIndexOutOfBoundsException on unsafe type during threaded operations by synchronizing add/remove logic for PulseRunner.TASKS
+- Added the missing sound effect for when a tree is felled after a successful woodcutting attempt
+
+Sound can be heard by other players nearby
+- Fixed the long missing Lumbridge Achivement Diary store-browsing task
+- Fixed an exception thrown by the equipment interface
+- Converted EnchantedGemPlugin to Listener
+Converted EnchantedGemDialogue to DialogueFile
+- Reworked grand exchange offer processing
+
+Now much more efficient
+Offers will appear to complete almost instantaneously
+Players can no longer hoard bot offers as they will only be allocated at time of offer placement
+- Fixed incorrect banker NPC look-up behavior for bank booths
+Banker interactions are now properly restricted for Ultimate Ironmen
+Added theme-appropriate banker NPCs to booths at Void Knights' Outpost Island
+Added missing Canifis banker NPCs
+Fixed incorrect handling of Arnold Lydspor banking-related logic
+Added Arnold Lydspor dialogue
+Consolidated banker NPC listener logic into BankerNPC class itself
+Added ContentAPI call to check if a node offers an interaction option
+- Fixed exception thrown by an interaction with Ahab's beer
+- Fixed exception occurring when an NPC has no jobs that can be assigned to the player
+Fixed an issue that caused killing jobs not to work without relogging first
+- Fixed a bug where an NPC could not attack an entity that was already set as their target
+Fixed a regression that prevents some NPCs from walking back to their spawn point
+Fixed a longstanding issue that didn't properly reset NPCs who wandered too far out of their natural movement radius (now disables combat + walks them back to their spawn point + fully heals them)
+- Fixed bug where trying to buy-x too many items from a shop would not fill available inventory slots
+- Rewrote animal magnetism cutscene in the new cutscene system
+
+Fixes bug where the player could not progress
+- Fixed Rock Golem random event not spawning for low level players
+- Fixed an issue where lighting a lantern (or other light source) inside a dark area wouldn't be recognised
+- Rewrote enchanted jewellery
+
+Fixes the funny bug that gets you stuck as a tiny person when teleporting sometimes
+- Fixed exception thrown when invalid fairy ring codes are entered
+Fixed unhandled hairdresser button that lead to OOB exception
+Fixed oversight in ::loc that causes exceptions to be thrown in headless environments
+- Increased server stability
+Fixed NPE in IoEventHandler
+Fixed NPEs in PacketWriteQueue
+Reworked PacketWriteQueue slightly so that instead of breaking at first null packet we continue past it and pop the whole queue along the way
+- Refactored item note/unnote on bank booth handling
+QoL - only applies to bank booth, not banker NPCs
+Added server config world.bank_booth_note_enabled (enabled by default) to toggle the QoL globally
+Added server config world.bank_booth_note_uim (enabled by default) to toggle the QoL on ultimate ironmen only
+- ContentAPI methods now all take 2nd bank into account
+- Fixed a bug where NPCs couldn't be attacked against walls
+- Made wilderness NPCs immune to aggression tolerance
+Unified wilderness and standard death code, wilderness death code now only rolls the extra loot drops
+Fixed a bug that would cause revenant/player combat levels to sometimes be calculated incorrectly
+- Set user join date in database again on account creation
+- Fixed shield of arrav progression getting stuck, can now talk to tramp if you haven't joined a gang
+- Fremennik Easy Diary is now completable and Fremennik sea boots 1 can now be obtained
+PickUpEvent Event Hook created, for events that need to fire when player picks up a specific item
+All currently implemented Diary tasks where the player must pick up items have been converted to use the new PickUpEvent event hook
+New zone created for the windswept tree (highest tree in the Fremennik area task) for its diary task
+Rough dialogue created for obtaining your completed diary reward from Council Worker
+- Slayer expansion
+Sumona (NPC ID 7880) now implemented as a Slayer Master
+Sumona slayer task pool created, 1:1 with the task weights on the RSWiki
+Sumona NPC spawn added
+All slayer master task pools have been re-ordered alphabetically to match both live game wiki's task ordering
+Slayer task pools have been audited to ensure weights are correct
+Unimplemented tasks added to task tables but disabled
+Elves now added as a Slayer task, players can find them at Elf Camp and Lletya
+Elf slayer task added to task pool of Chaeldar and Duradel (as well as the new Sumona pool)
+Added Fremennik easy diary NPCs
+- Disabled aggression tolerance for GWD minion NPCs
+- New server config option to preload the world map on boot, removes lag caused by lazy loading (server.preload_map = true)
+Cached region clipping flags for faster lookups
+Minor optimizations to setAttribute codepath which avoids unnecessary checks
+Fixed a bug that would allow entities to attack through walls
+Fixed two separate bugs that would cause odd behavior attacking large entities from certain angles
+Removed unnecessary schema from global.sql
+Ensured that all but the `members` and `worlds` tables could be safely dropped out of the DB
+Better automatic handling for creating the default server account and creating the default server clan
+Fixed bugs related to interfaces flagged as uncloseable that would cause stack overflows
+Fixed premature home teleport while in tutorial
+Fixed getting stuck by going back up ladder in tutorial
+Fixed bug that prevented bots from taking damage
+Fixed a bug where players would not be in the default clan after completion of the tutorial
+Green Dragon bots reintroduced, no longer buy any items (these bots sell loot from green dragons in the wilderness on the GE)
+- Teleblock now persists across login sessions
+- Added support for many common variations of the jagex coordinate format for admin command ::tele, including:
+regionX_regionY
+plane_regionX_regionY
+regionX_regionY_localX_localY
+plane_regionX_regionY_localX_localY
+- Fixed tree spirit random event not spawning for some players
+- ::rolldrops admin/testing command now clears container between invocations
+- Implemented pelting of rotten tomatoes
+Added ability to define listeners for Player interactions and usewith interactions
+Added ability to flag listeners instant (no path walking) execution
+- Add slayer task content API functions in preparation for coming work
+- Rewrote entire banking system (aside from dialogue), converted to listener system
+- Fixed many issues with login
+Reconnecting to an existing session can no longer cause an account wipe
+Player saves can no longer be saved unless they've already been parsed
+Sessions now have their most recent ping properly set
+Sessions can now recover from a hypothetical scenario where the session's player reference becomes null but the player is still in-game
+Players now disconnected properly if no packets have been received from the client in the last 20 seconds
+- Reduced revenant spawn burst size to stop them getting stuck
+Fixed unit test NPE
+New admin command clearrevs to clear revenants
+- GE offer notification system now supports opt-in privacy to remove username from messages
+Opt-in to GE privacy with new in-game command ::geprivacy on
+Removed discord GE offer update notifications (only new buy/sell offers shown)
+Limited in-game GE notifications to player offers only
+
+
+