last year by Adam
A world hopper plugin has been added to ease hopping. You can use the key combination ctrl+shift+left/right, or right click a friend or clanmates name in game and click Hop-to. There is also a plugin panel with the worlds listed which can be double clicked.
A WASD camera plugin was added which lets you use the WASD keys (or, any other keys) instead of the arrow keys to control the camera. It is off by default and needs to be enabled in the configuration panel. You must press Enter to chat when the plugin is enabled.
There are also several smaller improvements and bug fixes, including:
Adam (9): mixins: simplify acquiring client thread reference world service: split controller from service and add cache world controller: fix caching, move to scheduled method runescape-api: GameEngine doesn't extend KeyFocusListener timers plugin: don't reset freeze timers each animation Revert "player indicators plugin: Use ColorUtil functions" Add world load event cache: fix outputstream writeString to not write unicode strings runelite-client: add wasd camera plugin Heikki Jetsonen (2): DiscordPlugin: Add wintertodt Activity Cluescrolls: Added fairy ring to Kalphite Lair Entrance clue Jordan Atwood (2): time tracking plugin: Fix timers header color timers plugin: Fix SDMM normal spellbook freezes Kamiel (1): Update npc_health.json Lotto (12): runelite-api: add world switcher widget info mixins: add world hopping mixin runelite-api: expose ChatPlayer.world runelite-api: make ClanMember extend ChatPlayer runelite-api: add total level api runelite-client: add world hopper plugin runescape-api: add Protect annotation clues: allow any imbued crystal bow for emote clue clues: add fairy ring to sinclair mansion clue solution fpsindicator: fix overlay disappearing when using stretched fixed mode fpsindicator: fix overlay being cut off outside the canvas fpsindicator: remove caching of fps strings Magic fTail (2): Fix Grotesque Guardian loot tracker Actually add special case for Grotesque Guardians Max Weber (2): Make the second argument of SpriteManager::getSprite work runelite-client: Don't consume keyReleased events Sean Dewar (1): Fix Entangle timer description typo SoyChai (1): UI: Add a clear button (×) to IconTextField (#3451) SquirrelHub (2): DiscordPlugin: Add Woodcutting Guild to Activities (#4813) Add Lumber Yard Fence to Agility Plugin (#4878) Tomas Slusny (2): Fix adding of raid timer multiple times in Raids Fix FlatTextField unsafe swing access psikoi (1): Fix exp tracker UI margin incosistency takuyakanbr (2): time tracking: add empty case to overview tab time tracking: fix detection of state for seaweed patches