From 1336eaf4af7e007d49f5c7c93acd532bef5f921c Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Sun, 16 Nov 2025 10:12:39 -0800 Subject: [PATCH 01/18] hiscore: display dashes for skills with level <= 0 Jagex recently updated their hiscore backend, which now exhibits different behavior for players with unranked skills and activities. Specifically, they now return the real levels (and xp for skills) even when unranked. Without this change, bosses with 0 kills and minigames which have no score display `0` instead of the expected `--`; this change preserves the expected old behavior for those entries, while still displaying real kill counts and activity scores when they are above 0, whether the score is high enough to be ranked or not. --- .../java/net/runelite/client/plugins/hiscore/HiscorePanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java index 2fe7bef2133..9b5844b2a6d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java @@ -476,7 +476,7 @@ else if (!isSkill || exp != -1L) level = s.getLevel(); } - if (level != -1) + if (level > 0) { label.setText(pad(formatLevel(level), skill.getType())); } From ada2ec395208d749099d11d663b0a85f5ea2e276 Mon Sep 17 00:00:00 2001 From: Skretzo <53493631+Skretzo@users.noreply.github.com> Date: Sun, 16 Nov 2025 19:27:29 +0100 Subject: [PATCH 02/18] clues: fix Cam Torum pub step plane --- .../runelite/client/plugins/cluescrolls/clues/CrypticClue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java index 8e4dc48c9ba..e928e6d27a6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java @@ -1985,7 +1985,7 @@ public class CrypticClue extends ClueScroll implements NpcClueScroll, ObjectClue CrypticClue.builder() .itemId(ItemID.TRAIL_ELITE_RIDDLE_VM01) .text("With drinks and dwarves I make my way, upon my head a glass will stay.") - .location(new WorldPoint(1432, 9584, 0)) + .location(new WorldPoint(1432, 9584, 1)) .npc("Funbo") .solution("Speak to Funbo inside Cam Torum's pub.") .build(), From a94d662d3f32868423c4cdd1f165d9fc9866f769 Mon Sep 17 00:00:00 2001 From: Martin Hayward Date: Tue, 4 Nov 2025 22:25:44 +0000 Subject: [PATCH 03/18] clues: fix plane of ardy mill easy emote step --- .../runelite/client/plugins/cluescrolls/clues/EmoteClue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java index 03375252527..03e651b623f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java @@ -158,7 +158,7 @@ public class EmoteClue extends ClueScroll implements LocationClueScroll new EmoteClue(ItemID.TRAIL_CLUE_EASY_EMOTE007, "Cheer for the monks at Port Sarim. Equip a coif, steel plateskirt and a sapphire necklace.", "Port Sarim", NEAR_THE_ENTRANA_FERRY_IN_PORT_SARIM, new WorldPoint(3047, 3237, 0), CHEER, item(ItemID.COIF), item(ItemID.STEEL_PLATESKIRT), item(ItemID.SAPPHIRE_NECKLACE)), new EmoteClue(ItemID.TRAIL_CLUE_EASY_EMOTE025, "Clap in the main exam room in the Exam Centre. Equip a white apron, green gnome boots and leather gloves.", "Exam Centre", OUTSIDE_THE_DIGSITE_EXAM_CENTRE, new WorldPoint(3361, 3339, 0), CLAP, item(ItemID.WHITE_APRON), item(ItemID.GNOME_BOOTS_GREEN), item(ItemID.LEATHER_GLOVES)), new EmoteClue(ItemID.TRAIL_CLUE_EASY_EMOTE002, "Clap on the causeway to the Wizards' Tower. Equip an iron medium helmet, emerald ring and a white apron.", "Wizards' Tower", ON_THE_BRIDGE_TO_THE_MISTHALIN_WIZARDS_TOWER, new WorldPoint(3113, 3196, 0), CLAP, item(ItemID.IRON_MED_HELM), item(ItemID.EMERALD_RING), item(ItemID.WHITE_APRON)), - new EmoteClue(ItemID.TRAIL_CLUE_EASY_EMOTE014, "Clap on the top level of the mill, north of East Ardougne. Equip a blue gnome robe top, HAM robe bottom and an unenchanted tiara.", "East Ardougne", UPSTAIRS_IN_THE_ARDOUGNE_WINDMILL, new WorldPoint(2635, 3385, 3), CLAP, item(ItemID.GNOME_ROBETOP_BLUE), item(ItemID.HAM_ROBE), item(ItemID.TIARA)), + new EmoteClue(ItemID.TRAIL_CLUE_EASY_EMOTE014, "Clap on the top level of the mill, north of East Ardougne. Equip a blue gnome robe top, HAM robe bottom and an unenchanted tiara.", "East Ardougne", UPSTAIRS_IN_THE_ARDOUGNE_WINDMILL, new WorldPoint(2635, 3385, 2), CLAP, item(ItemID.GNOME_ROBETOP_BLUE), item(ItemID.HAM_ROBE), item(ItemID.TIARA)), new EmoteClue(ItemID.TRAIL_MEDIUM_EMOTE_EXP3, "Clap in Seers court house. Spin before you talk to me. Equip an adamant halberd, blue mystic robe bottom and a diamond ring.", "Seers Village", OUTSIDE_THE_SEERS_VILLAGE_COURTHOUSE, new WorldPoint(2735, 3469, 0), CLAP, SPIN, item(ItemID.ADAMANT_HALBERD), item(ItemID.MYSTIC_ROBE_BOTTOM), item(ItemID.DIAMOND_RING)), new EmoteClue(ItemID.TRAIL_CLUE_MASTER, "Clap in the magic axe hut. Beware of double agents! Equip only some flared trousers.", "Magic axe hut", OUTSIDE_THE_WILDERNESS_AXE_HUT, new WorldPoint(3191, 3960, 0), DOUBLE_AGENT_141, CLAP, item(ItemID.TRAIL_FLARED_PANTS), item(ItemID.LOCKPICK), emptySlot("Nothing else", HEAD, CAPE, AMULET, WEAPON, BODY, SHIELD, GLOVES, BOOTS, RING, AMMO)), new EmoteClue(ItemID.TRAIL_MEDIUM_EMOTE_EXP10, "Clap your hands north of Mount Karuulm Spin before you talk to me. Equip an adamant warhammer, a ring of life and a pair of mithril boots.", "Mount Karuulm", NORTH_OF_MOUNT_KARUULM, new WorldPoint(1306, 3839, 0), CLAP, SPIN, item(ItemID.ADAMNT_WARHAMMER), item(ItemID.RING_OF_LIFE), item(ItemID.MITHRIL_ARMOURED_BOOTS)), From 14ef43a33c867489b7c2e0c0d9c9528e84e3c2e0 Mon Sep 17 00:00:00 2001 From: Robert <17119716+robmonte@users.noreply.github.com> Date: Sun, 16 Nov 2025 16:20:48 -0800 Subject: [PATCH 04/18] interface styles: fix alignment of 2005 chat channel and friends icons --- .../client/plugins/interfacestyles/WidgetOffset.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java index 2362d4071c6..098b81d7f3b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/WidgetOffset.java @@ -104,6 +104,7 @@ enum WidgetOffset FIXED_2010_MUSIC_ICON(Skin.AROUND_2010, InterfaceID.Toplevel.ICON13, 209, 2, null, null), RESIZABLE_2005_QUESTS_ICON(Skin.AROUND_2005, InterfaceID.ToplevelOsrsStretch.ICON2, 71, -1, null, null), + RESIZABLE_2005_FRIENDS_CHAT_ICON(Skin.AROUND_2005, InterfaceID.ToplevelOsrsStretch.ICON7, null, 1, null, null), RESIZABLE_2005_LOGOUT_ICON(Skin.AROUND_2005, InterfaceID.ToplevelOsrsStretch.ICON10, null, null, null, null), RESIZABLE_2005_OPTIONS_ICON(Skin.AROUND_2005, InterfaceID.ToplevelOsrsStretch.ICON11, 137, null, null, null), RESIZABLE_2005_EMOTE_ICON(Skin.AROUND_2005, InterfaceID.ToplevelOsrsStretch.ICON12, 171, 2, null, null), @@ -117,6 +118,7 @@ enum WidgetOffset RESIZABLE_BOTTOM_2005_INVENTORY_ICON(Skin.AROUND_2005, InterfaceID.ToplevelPreEoc.ICON3, 98, 1, null, null), RESIZABLE_BOTTOM_2005_QUESTS_ICON(Skin.AROUND_2005, InterfaceID.ToplevelPreEoc.ICON2, 66, -1, null, null), RESIZABLE_BOTTOM_2005_EQUIPMENT_ICON(Skin.AROUND_2005, InterfaceID.ToplevelPreEoc.ICON4, 131, 3, null, null), + RESIZABLE_BOTTOM_2005_FRIENDS_CHAT_ICON(Skin.AROUND_2005, InterfaceID.ToplevelPreEoc.ICON7, null, 1, null, null), RESIZABLE_BOTTOM_2005_MUSIC_ICON(Skin.AROUND_2005, InterfaceID.ToplevelPreEoc.ICON13, null, 3, null, null), RESIZABLE_BOTTOM_2005_EMOTE_ICON(Skin.AROUND_2005, InterfaceID.ToplevelPreEoc.ICON12, 133, 1, null, null), RESIZABLE_BOTTOM_2005_STATS_ICON(Skin.AROUND_2005, InterfaceID.ToplevelPreEoc.ICON1, 32, null, null, null), @@ -141,9 +143,9 @@ enum WidgetOffset FIXED_2005_MAGIC_HIGHLIGHT(Skin.AROUND_2005, InterfaceID.Toplevel.STONE6, 209, 1, 32, 36), FIXED_2005_MAGIC_ICON(Skin.AROUND_2005, InterfaceID.Toplevel.ICON6, 206, 3, null, null), FIXED_2005_FRIENDS_CHAT_HIGHLIGHT(Skin.AROUND_2005, InterfaceID.Toplevel.STONE7, 19, null, 34, 36), - FIXED_2005_FRIENDS_CHAT_ICON(Skin.AROUND_2005, InterfaceID.Toplevel.ICON7, 22, null, null, null), + FIXED_2005_FRIENDS_CHAT_ICON(Skin.AROUND_2005, InterfaceID.Toplevel.ICON7, 22, 1, null, null), FIXED_2005_FRIENDS_HIGHLIGHT(Skin.AROUND_2005, InterfaceID.Toplevel.STONE9, 51, null, 30, 37), - FIXED_2005_FRIENDS_ICON(Skin.AROUND_2005, InterfaceID.Toplevel.ICON9, 49, -1, null, null), + FIXED_2005_FRIENDS_ICON(Skin.AROUND_2005, InterfaceID.Toplevel.ICON9, 49, null, null, null), FIXED_2005_IGNORES_HIGHLIGHT(Skin.AROUND_2005, InterfaceID.Toplevel.STONE8, 79, null, 30, 37), FIXED_2005_IGNORES_ICON(Skin.AROUND_2005, InterfaceID.Toplevel.ICON8, 78, null, null, null), FIXED_2005_LOGOUT_HIGHLIGHT(Skin.AROUND_2005, InterfaceID.Toplevel.STONE10, 107, 2, 45, 35), From 26d4793395f00ce32ee91f2e2f04fe37d7f3befd Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sat, 15 Nov 2025 20:19:17 -0700 Subject: [PATCH 05/18] cluescrolls: add sailing clues --- .../java/net/runelite/api/gameval/SpriteID.java | 2 ++ .../plugins/cluescrolls/clues/AnagramClue.java | 7 +++++++ .../cluescrolls/clues/CoordinateClue.java | 17 +++++++++++++++++ .../plugins/cluescrolls/clues/CrypticClue.java | 13 +++++++++++++ .../plugins/cluescrolls/clues/EmoteClue.java | 4 +++- .../plugins/cluescrolls/clues/emote/Emote.java | 3 ++- .../cluescrolls/clues/emote/STASHUnit.java | 2 ++ .../cluescrolls/clues/hotcold/HotColdArea.java | 1 + .../clues/hotcold/HotColdLocation.java | 4 ++++ 9 files changed, 51 insertions(+), 2 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java index 47a6b2cc378..9b4683bf9a2 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java @@ -2607,6 +2607,8 @@ public static final class Emotes public static final int SMOOTH_DANCE = _45; public static final int CRAZY_DANCE = _46; public static final int PREMIER_SHIELD = _47; + public static final int FORTIS_SALUTE = _57; + public static final int CRAB_DANCE = _56; } public static final class EmotesLocked diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java index e5b17854184..3d5aeda8465 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java @@ -900,6 +900,13 @@ public class AnagramClue extends ClueScroll implements NpcClueScroll, ObjectClue .area("Tal Teklan") .question("If a death rune costs 220 coins, an air rune costs 3 coins, and a water rune costs 4 coins, how many coins do I need to cast Water Blast 17 times?") .answer("4097") + .build(), + AnagramClue.builder() + .itemId(ItemID.TRAIL_MEDIUM_ANAGRAM_SAIL) + .text("NOT RAG") + .npc("Elder Torgan") + .location(new WorldPoint(3143, 2423, 0)) + .area("The Summer Shore") .build() ); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java index e8152fb4dbf..89f23713da9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java @@ -276,6 +276,11 @@ public class CoordinateClue extends ClueScroll implements LocationClueScroll .location(new WorldPoint(1659, 3111, 0)) .directions("Dig west of the Bazaar in Civitas illa Fortis.") .build(), + CoordinateClue.builder() + .itemId(ItemID.TRAIL_MEDIUM_SEXTANT_SAIL) + .location(new WorldPoint(3183, 2453, 0)) + .directions("Center of the Great Conch.") + .build(), // Hard CoordinateClue.builder() .itemId(ItemID.TRAIL_CLUE_HARD_SEXTANT031) @@ -593,6 +598,12 @@ public class CoordinateClue extends ClueScroll implements LocationClueScroll .directions("South of Shayziens' Wall.") .enemy(SARADOMIN_WIZARD) .build(), + CoordinateClue.builder() + .itemId(ItemID.TRAIL_HARD_SEXTANT_SAIL) + .location(new WorldPoint(1193, 2774, 0)) + .directions("On Laguna Aurorae.") + .enemy(SARADOMIN_WIZARD) + .build(), // Elite CoordinateClue.builder() .itemId(ItemID.TRAIL_ELITE_SEXTANT_EXP5) @@ -841,6 +852,12 @@ public class CoordinateClue extends ClueScroll implements LocationClueScroll .directions("South of Custodia Pass") .enemy(SARADOMIN_WIZARD) .build(), + CoordinateClue.builder() + .itemId(ItemID.TRAIL_ELITE_SEXTANT_SAIL) + .location(new WorldPoint(2081, 3184, 0)) + .directions("On Lledrith Island") + .enemy(ARMADYLEAN_OR_BANDOSIAN_GUARD) + .build(), // Master CoordinateClue.builder() .itemId(ItemID.TRAIL_CLUE_MASTER) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java index e928e6d27a6..8d2f6128568 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java @@ -2026,6 +2026,19 @@ public class CrypticClue extends ClueScroll implements NpcClueScroll, ObjectClue .location(new WorldPoint(1388, 3216, 0)) .objectId(ObjectID.TLATI_CRATE_01_DARK_CLUE) .solution("Search the crate south of the Auburn Forest.") + .build(), + CrypticClue.builder() + .itemId(ItemID.TRAIL_ELITE_RIDDLE_SAIL) + .text("Their bane awaits, but don't be going in there without permission.") + .location(new WorldPoint(3120, 2424, 0)) + .npc("Shellbane gryphon") + .solution("Kill the shellbane gryphon.") + .build(), + CrypticClue.builder() + .itemId(ItemID.TRAIL_HARD_RIDDLE_SAIL) + .text("I sit on the beach and cry for those that have passed on.") + .location(new WorldPoint(2324, 2772, 0)) + .solution("Dig on the beach of the Tear of the Soul") .build() ); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java index 03e651b623f..d70315f962c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java @@ -243,7 +243,9 @@ public class EmoteClue extends ClueScroll implements LocationClueScroll new EmoteClue(ItemID.TRAIL_CLUE_BEGINNER, "Clap at Bob's Brilliant Axes. Equip a bronze axe and leather boots.", "Lumbridge", BOB_AXES_ENTRANCE, new WorldPoint(3231, 3203, 0), CLAP, item(ItemID.BRONZE_AXE), item(ItemID.LEATHER_BOOTS)), new EmoteClue(ItemID.TRAIL_CLUE_BEGINNER, "Panic at Al Kharid mine.", "Al Kharid mine", null, new WorldPoint(3303, 3271, 0), PANIC), new EmoteClue(ItemID.TRAIL_CLUE_BEGINNER, "Spin at Flynn's Mace Shop.", "Falador", null, new WorldPoint(2950, 3387, 0), SPIN), - new EmoteClue(ItemID.TRAIL_ELITE_EMOTE_EXP17, "Salute by the Charcoal Burners. Equip a Farmer's strawhat, Shayzien platebody (5) and Pyromancer robes.", "Charcoal Burners", CHARCOAL_BURNERS, new WorldPoint(1714, 3467, 0), SALUTE, any("Farmer's strawhat", item(ItemID.TITHE_REWARD_HAT_MALE), item(ItemID.TITHE_REWARD_HAT_FEMALE)), item(ItemID.SHAYZIEN_BODY_5), item(ItemID.PYROMANCER_BOTTOM))); + new EmoteClue(ItemID.TRAIL_ELITE_EMOTE_EXP17, "Salute by the Charcoal Burners. Equip a Farmer's strawhat, Shayzien platebody (5) and Pyromancer robes.", "Charcoal Burners", CHARCOAL_BURNERS, new WorldPoint(1714, 3467, 0), SALUTE, any("Farmer's strawhat", item(ItemID.TITHE_REWARD_HAT_MALE), item(ItemID.TITHE_REWARD_HAT_FEMALE)), item(ItemID.SHAYZIEN_BODY_5), item(ItemID.PYROMANCER_BOTTOM)), + new EmoteClue(ItemID.TRAIL_EASY_EMOTE_SAIL, "Dance a jig behind the bar on the Pandemonium. Equip a right eye patch and a bronze scimitar.", "Pandemonium", PANDEMONIUM_BAR, new WorldPoint(3049, 2966, 0), JIG, item(ItemID.EYE_PATCH), item(ItemID.BRONZE_SCIMITAR)), + new EmoteClue(ItemID.TRAIL_ELITE_EMOTE_SAIL, "Do the crab dance by the monument on Wintumber Island. Equip a crab helmet and a crab claw.", "Wintumber Island", WINTUMBER_ISLAND, new WorldPoint(2069, 2608, 0), CRAB_DANCE, item(ItemID.HUNDRED_PIRATE_CRAB_SHELL_HELM), item(ItemID.HUNDRED_PIRATE_CRAB_SHELL_GAUNTLET))); private static final String UNICODE_CHECK_MARK = "\u2713"; private static final String UNICODE_BALLOT_X = "\u2717"; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/Emote.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/Emote.java index ed87bf04b1e..ccd96508d37 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/Emote.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/Emote.java @@ -58,7 +58,8 @@ public enum Emote STAMP("Stamp", SpriteID.Emotes.STAMP), FLAP("Flap", SpriteID.Emotes.FLAP), PUSH_UP("Push up", SpriteID.Emotes.PUSH_UP), - FORTIS_SALUTE("Fortis Salute", SpriteID.EmotesLocked.FORTIS_SALUTE); + CRAB_DANCE("Crab Dance", SpriteID.Emotes.CRAB_DANCE), + ; private final String name; private final int spriteId; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/STASHUnit.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/STASHUnit.java index 5a0d1fba6b3..11a9e144475 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/STASHUnit.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/STASHUnit.java @@ -147,6 +147,8 @@ public enum STASHUnit TWILIGHT_TEMPLE_MINE(ObjectID.HH_MEDIUM_EXP11, new WorldPoint(1668, 3287, 0)), ORTUS_MEETS_PROUDSPIRE(ObjectID.HH_MEDIUM_EXP12, new WorldPoint(1629, 3239, 0)), OUTSIDE_TWILIGHT_TEMPLE(ObjectID.HH_HARD_EXP7, new WorldPoint(1693, 3243, 0)), + PANDEMONIUM_BAR(ObjectID.HH_EASY_SAIL, new WorldPoint(3045, 2963, 0)), + WINTUMBER_ISLAND(ObjectID.HH_ELITE_SAIL, new WorldPoint(2072, 2608, 0)), ; private final int objectId; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdArea.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdArea.java index ea7405be365..1d62070bcf2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdArea.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdArea.java @@ -39,6 +39,7 @@ public enum HotColdArea KARAMJA("Karamja"), MISTHALIN("Misthalin"), MORYTANIA("Morytania"), + OCEAN("Ocean"), VARLAMORE("Varlamore"), WESTERN_PROVINCE("Western Province"), WILDERNESS("Wilderness"), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdLocation.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdLocation.java index 30d45cb96aa..c3694ac87cc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdLocation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdLocation.java @@ -43,6 +43,7 @@ import static net.runelite.client.plugins.cluescrolls.clues.hotcold.HotColdArea.KARAMJA; import static net.runelite.client.plugins.cluescrolls.clues.hotcold.HotColdArea.MISTHALIN; import static net.runelite.client.plugins.cluescrolls.clues.hotcold.HotColdArea.MORYTANIA; +import static net.runelite.client.plugins.cluescrolls.clues.hotcold.HotColdArea.OCEAN; import static net.runelite.client.plugins.cluescrolls.clues.hotcold.HotColdArea.VARLAMORE; import static net.runelite.client.plugins.cluescrolls.clues.hotcold.HotColdArea.WESTERN_PROVINCE; import static net.runelite.client.plugins.cluescrolls.clues.hotcold.HotColdArea.WILDERNESS; @@ -148,6 +149,9 @@ public enum HotColdLocation MORYTANIA_DRAGONTOOTH_SOUTH(MASTER, new WorldPoint(3803, 3532, 0), MORYTANIA, "Southern part of Dragontooth Island.", BRASSICAN_MAGE), MORYTANIA_SLEPE_TENTS(MASTER, new WorldPoint(3769, 3383, 0), MORYTANIA, "North-east of Slepe, near the tents.", BRASSICAN_MAGE), NORTHEAST_OF_AL_KHARID_MINE(BEGINNER, new WorldPoint(3332, 3313, 0), MISTHALIN, "Northeast of Al Kharid Mine"), + SAIL_GREAT_CONCH(MASTER, new WorldPoint(3249, 2349, 0), OCEAN, "In the south-eastern mine of the Great Conch", BRASSICAN_MAGE), + SAIL_ISLE_OF_SERPENTS(MASTER, new WorldPoint(1856, 2415, 0), OCEAN, "On the Isle of Serpents", BRASSICAN_MAGE), + SAIL_DRUMSTICK_ISLE(MASTER, new WorldPoint(2139, 3562, 0), OCEAN, "On Drumstick Isle", BRASSICAN_MAGE), VARLAMORE_BAZAAR(MASTER, new WorldPoint(1680, 3107, 0), VARLAMORE, "In the centre of the Bazaar in Civitas illa Fortis.", BRASSICAN_MAGE), VARLAMORE_LOCUS_OASIS(MASTER, new WorldPoint(1695, 2990, 0), VARLAMORE, "Amongst the trees at the Locus Oasis.", BRASSICAN_MAGE), VARLAMORE_RAINFOREST_CENTRE(MASTER, new WorldPoint(1312, 3108, 0), VARLAMORE, "In the centre of the Tlati Rainforest.", BRASSICAN_MAGE), From 40f2e52eca2622eeadf267f656d7650c7698ee17 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Mon, 17 Nov 2025 10:15:36 -0800 Subject: [PATCH 06/18] discord: remove incorrect maze random regions --- .../runelite/client/plugins/discord/DiscordGameEventType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordGameEventType.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordGameEventType.java index 55633b94a50..d62cd591ef3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordGameEventType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordGameEventType.java @@ -430,7 +430,7 @@ enum DiscordGameEventType REGION_MOUNT_QUIDAMORTEM("Mount Quidamortem", DiscordAreaType.REGIONS, 4662, 4663, 4918, 4919), REGION_MR_MORDAUTS_CLASSROOM("Mr. Mordaut's Classroom", DiscordAreaType.REGIONS, 7502), REGION_MUDSKIPPER("Mudskipper Point", DiscordAreaType.REGIONS, 11824), - REGION_MYSTERIOUS_OLD_MAN_MAZE("Mysterious Old Man's Maze", DiscordAreaType.REGIONS, 11590, 11591, 11846, 11847), + REGION_MYSTERIOUS_OLD_MAN_MAZE("Mysterious Old Man's Maze", DiscordAreaType.REGIONS, 11591), REGION_MYTHS_GUILD("Myths' Guild", DiscordAreaType.REGIONS, 9772), REGION_NATURE_ALTAR("Nature Altar", DiscordAreaType.REGIONS, 9547), REGION_NECROPOLIS("Necropolis", DiscordAreaType.REGIONS, 13098, 13353, 13354, 13609, 13610), From 4cf3349fe2a122a4989db4cf4a9964611ca1f2fb Mon Sep 17 00:00:00 2001 From: coopermor Date: Sun, 20 Jul 2025 13:44:41 -0700 Subject: [PATCH 07/18] chat commands: Add colosseum glory aliases --- .../client/plugins/chatcommands/ChatCommandsPlugin.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index c9f954b15bc..4e2bf3e1fb5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -2745,6 +2745,11 @@ private static String longBossName(String boss) case "fortis colosseum": return "Sol Heredit"; + // colosseum glory + case "glory": + case "colo glory": + return "Colosseum Glory"; + case "bird egg": case "bird eggs": case "bird's egg": From 8bbb981b82af8405c194eda5605b67cb950e5cb8 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Tue, 18 Nov 2025 11:13:45 -0700 Subject: [PATCH 08/18] Update Scripts to 2025-11-19 --- .../src/main/scripts/SkillTabBuilder.hash | 2 +- .../src/main/scripts/SkillTabBuilder.rs2asm | 43 ++++++------------- 2 files changed, 14 insertions(+), 31 deletions(-) diff --git a/runelite-client/src/main/scripts/SkillTabBuilder.hash b/runelite-client/src/main/scripts/SkillTabBuilder.hash index a18251545f4..4e65153138d 100644 --- a/runelite-client/src/main/scripts/SkillTabBuilder.hash +++ b/runelite-client/src/main/scripts/SkillTabBuilder.hash @@ -1 +1 @@ -B16A1DEB0ECE7FFCFF3FDEE125B2E507F52A54FC16AE0ADA7A2C5EC2FE7B74EC \ No newline at end of file +7E1FB617628E3936009AA63912ACE2EB254991CAEBAEF7AA35C0D3299C5DE311 \ No newline at end of file diff --git a/runelite-client/src/main/scripts/SkillTabBuilder.rs2asm b/runelite-client/src/main/scripts/SkillTabBuilder.rs2asm index 53784c75651..903667a0d33 100644 --- a/runelite-client/src/main/scripts/SkillTabBuilder.rs2asm +++ b/runelite-client/src/main/scripts/SkillTabBuilder.rs2asm @@ -444,28 +444,11 @@ LABEL382: join_string 3 ostore 3 LABEL393: - iload 0 - iconst 23 - if_icmpeq LABEL397 - jump LABEL408 -LABEL397: - sconst "" - oload 0 - sconst ":" - sconst "" - join_string 4 - ostore 2 - sconst "" - sconst "Releasing 19th November" - sconst "" - join_string 3 - ostore 3 -LABEL408: invoke 1972 iconst 1 - if_icmpeq LABEL412 - jump LABEL439 -LABEL412: + if_icmpeq LABEL397 + jump LABEL424 +LABEL397: iconst 2367 iconst -2147483644 iconst -2147483645 @@ -479,14 +462,14 @@ LABEL412: if_setonop get_varc_int 218 iload 1 - if_icmpeq LABEL427 - jump LABEL438 -LABEL427: + if_icmpeq LABEL412 + jump LABEL423 +LABEL412: get_varc_int 217 iconst -1 - if_icmpeq LABEL431 - jump LABEL438 -LABEL431: + if_icmpeq LABEL416 + jump LABEL423 +LABEL416: iload 1 iconst -1 iload 2 @@ -494,9 +477,9 @@ LABEL431: oload 3 iconst 495 invoke 2344 -LABEL438: - jump LABEL454 -LABEL439: +LABEL423: + jump LABEL439 +LABEL424: iconst 992 iconst -2147483645 iconst -1 @@ -512,5 +495,5 @@ LABEL439: if_setonmouserepeat iconst 0 set_varc_int 2 -LABEL454: +LABEL439: return From 3bf9c23db2ff653e17f9a3bc189bd0970a21a851 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Tue, 18 Nov 2025 11:13:45 -0700 Subject: [PATCH 09/18] Update Legacy ID classes to 2025-11-19 --- .../main/java/net/runelite/api/ItemID.java | 5 ++- .../src/main/java/net/runelite/api/NpcID.java | 39 ++++++++++++------- .../java/net/runelite/api/NullItemID.java | 1 + .../main/java/net/runelite/api/NullNpcID.java | 1 + .../java/net/runelite/api/NullObjectID.java | 21 +++++++++- .../main/java/net/runelite/api/ObjectID.java | 35 +++++++++++++++-- 6 files changed, 81 insertions(+), 21 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/ItemID.java b/runelite-api/src/main/java/net/runelite/api/ItemID.java index 992f39c73f3..d35518552e4 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -15001,8 +15001,8 @@ public final class ItemID public static final int CAMPHOR_PLANK = 31432; public static final int IRONWOOD_PLANK = 31435; public static final int ROSEWOOD_PLANK = 31438; - public static final int TELEPORT_BOAT_TO_ME = 31441; - public static final int TELEPORT_ME_TO_BOAT = 31443; + public static final int SUMMON_BOAT = 31441; + public static final int TELEPORT_TO_BOAT = 31443; public static final int MOUNTED_GIANT_BLUE_KRILL_31445 = 31445; public static final int MOUNTED_GIANT_BLUE_KRILL_31446 = 31446; public static final int MOUNTED_GOLDEN_HADDOCK_31447 = 31447; @@ -16017,5 +16017,6 @@ public final class ItemID public static final int CAMPHOR_LOGS = 32904; public static final int IRONWOOD_LOGS = 32907; public static final int ROSEWOOD_LOGS = 32910; + public static final int JAR_OF_FEATHERS = 32921; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NpcID.java b/runelite-api/src/main/java/net/runelite/api/NpcID.java index 87551b0e3f7..7b672f40f3c 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -17,6 +17,7 @@ public final class NpcID public static final int ABERRANT_SPECTRE_6 = 6; public static final int ABERRANT_SPECTRE_7 = 7; public static final int NECHRYAEL = 8; + public static final int SKYLARK = 9; public static final int DEATH_SPAWN = 10; public static final int NECHRYAEL_11 = 11; public static final int HUDO = 12; @@ -282,6 +283,9 @@ public final class NpcID public static final int PELICAN = 283; public static final int GULL_284 = 284; public static final int GULL_285 = 285; + public static final int EAGLE = 286; + public static final int MERCENARY = 287; + public static final int CHARTIN_CHARLES_MCATLESS = 288; public static final int GHOUL = 289; public static final int DWARF = 290; public static final int CHAOS_DWARF = 291; @@ -1381,7 +1385,7 @@ public final class NpcID public static final int DESERT_EAGLE = 1487; public static final int JUNGLE_EAGLE = 1488; public static final int POLAR_EAGLE = 1489; - public static final int EAGLE = 1490; + public static final int EAGLE_1490 = 1490; public static final int KEBBIT = 1494; public static final int CHARLIE_1495 = 1495; public static final int BOULDER = 1496; @@ -1442,6 +1446,8 @@ public final class NpcID public static final int GUARD_1551 = 1551; public static final int GUARD_1552 = 1552; public static final int CRAB_1553 = 1553; + public static final int CHARTIN_CHARLES_MCATLESS_1554 = 1554; + public static final int LUKE = 1555; public static final int FIRE_WIZARD = 1556; public static final int WATER_WIZARD = 1557; public static final int EARTH_WIZARD = 1558; @@ -3637,6 +3643,10 @@ public final class NpcID public static final int FOX = 3901; public static final int BUNNY = 3902; public static final int BUNNY_3903 = 3903; + public static final int SHIPYARD_WORKER_3904 = 3904; + public static final int SHIPYARD_WORKER_3905 = 3905; + public static final int SHIPYARD_ENGINEER = 3906; + public static final int JOE_3907 = 3907; public static final int BEAR_CUB = 3908; public static final int BEAR_CUB_3909 = 3909; public static final int UNICORN_FOAL = 3910; @@ -3982,6 +3992,8 @@ public final class NpcID public static final int OSMAN_4286 = 4286; public static final int BORDER_GUARD = 4287; public static final int BORDER_GUARD_4288 = 4288; + public static final int JOE_4289 = 4289; + public static final int CAT_4290 = 4290; public static final int HERMAN_CARANOS = 4291; public static final int FRANKLIN_CARANOS = 4292; public static final int ARNOLD_LYDSPOR = 4293; @@ -4307,7 +4319,7 @@ public final class NpcID public static final int MINE_CART_DRIVER = 4653; public static final int ROWDY_GUARD = 4654; public static final int BEDABIN_NOMAD_FIGHTER = 4655; - public static final int MERCENARY = 4656; + public static final int MERCENARY_4656 = 4656; public static final int MERCENARY_4657 = 4657; public static final int MERCENARY_4658 = 4658; public static final int MERCENARY_4659 = 4659; @@ -4380,6 +4392,8 @@ public final class NpcID public static final int MOE = 4726; public static final int LARRY_4727 = 4727; public static final int THURGO = 4733; + public static final int JOINTCHIEF_MOUSER_TO_THE_SHIPYARD_OFFICE = 4734; + public static final int JOINTCHIEF_MOUSER_TO_THE_SHIPYARD_OFFICE_4735 = 4735; public static final int SIR_VYVIN = 4736; public static final int SQUIRE_4737 = 4737; public static final int GENIE_4738 = 4738; @@ -12339,6 +12353,13 @@ public final class NpcID public static final int THE_SAGE_14799 = 14799; public static final int NEVET = 14801; public static final int NEVET_14802 = 14802; + public static final int SPOTTED_RAE = 14807; + public static final int DUCK_14808 = 14808; + public static final int GECKO = 14809; + public static final int GRUB = 14810; + public static final int RUSTY_CHEST = 14811; + public static final int TARNISHED_CHEST = 14812; + public static final int RUSTY_CHEST_14813 = 14813; public static final int SPOOKY_CHAIR = 14815; public static final int MAKO = 14816; public static final int MORA = 14817; @@ -12381,8 +12402,6 @@ public final class NpcID public static final int SHELLBANE_GRYPHON = 14860; public static final int ELDER_KELMO = 14861; public static final int ELDER_NAMA = 14863; - public static final int GULL_14864 = 14864; - public static final int GULL_14865 = 14865; public static final int HENDERSON = 14866; public static final int ONE_EYED_ROSALEE = 14867; public static final int CAPTAIN_DAWSON = 14868; @@ -12627,7 +12646,6 @@ public final class NpcID public static final int CASTAWAY_15148 = 15148; public static final int CASTAWAY_15149 = 15149; public static final int CASTAWAY_15150 = 15150; - public static final int CHARTIN_CHARLES_MCATLESS = 15151; public static final int CURRENT_DUCK = 15152; public static final int CURRENT_DUCK_15153 = 15153; public static final int MEATY_AURA_LOGIST = 15154; @@ -12654,14 +12672,6 @@ public final class NpcID public static final int DRINK_TROLL_QUEEN = 15175; public static final int DRINK_TROLL_QUEEN_15176 = 15176; public static final int SAILING_CAT = 15177; - public static final int CASTAWAY_DOG = 15178; - public static final int CASTAWAY_DOG_15179 = 15179; - public static final int CASTAWAY_DOG_15180 = 15180; - public static final int WILSON_15181 = 15181; - public static final int LOG_GIRL = 15182; - public static final int BARREL_GIRL = 15183; - public static final int BARREL_DUDE = 15184; - public static final int DEBRIS_DUDE = 15185; public static final int PUNCHING_BAG = 15191; public static final int PUNCHING_BAG_15192 = 15192; public static final int DPS_CALC = 15193; @@ -12708,7 +12718,6 @@ public final class NpcID public static final int DOLPHIN = 15234; public static final int DOLPHIN_15235 = 15235; public static final int DOLPHIN_CALF = 15236; - public static final int OCEAN_MAN_15237 = 15237; public static final int JUNIOR_JIM_15238 = 15238; public static final int JUMBO_JIM = 15239; public static final int CREW_REGISTRAR = 15245; @@ -12848,7 +12857,7 @@ public final class NpcID public static final int CHAMELEON_15416 = 15416; public static final int CHAMELEON_15417 = 15417; public static final int CHAMELEON_15418 = 15418; - public static final int GECKO = 15419; + public static final int GECKO_15419 = 15419; public static final int GECKO_15420 = 15420; public static final int GECKO_15421 = 15421; public static final int GECKO_15422 = 15422; diff --git a/runelite-api/src/main/java/net/runelite/api/NullItemID.java b/runelite-api/src/main/java/net/runelite/api/NullItemID.java index 15f19ed1f3c..1b5bfb58e7d 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java @@ -16677,5 +16677,6 @@ public final class NullItemID public static final int NULL_32918 = 32918; public static final int NULL_32919 = 32919; public static final int NULL_32920 = 32920; + public static final int NULL_32922 = 32922; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java index 29d9691edc0..35a4c0af240 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java @@ -2492,6 +2492,7 @@ public final class NullNpcID public static final int NULL_15110 = 15110; public static final int NULL_15111 = 15111; public static final int NULL_15123 = 15123; + public static final int NULL_15151 = 15151; public static final int NULL_15186 = 15186; public static final int NULL_15187 = 15187; public static final int NULL_15188 = 15188; diff --git a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java index b757747551a..cc2c7944ccf 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -30266,7 +30266,6 @@ public final class NullObjectID public static final int NULL_58523 = 58523; public static final int NULL_58524 = 58524; public static final int NULL_58526 = 58526; - public static final int NULL_58527 = 58527; public static final int NULL_58528 = 58528; public static final int NULL_58529 = 58529; public static final int NULL_58530 = 58530; @@ -31266,5 +31265,25 @@ public final class NullObjectID public static final int NULL_60459 = 60459; public static final int NULL_60460 = 60460; public static final int NULL_60480 = 60480; + public static final int NULL_60531 = 60531; + public static final int NULL_60532 = 60532; + public static final int NULL_60533 = 60533; + public static final int NULL_60534 = 60534; + public static final int NULL_60535 = 60535; + public static final int NULL_60536 = 60536; + public static final int NULL_60537 = 60537; + public static final int NULL_60538 = 60538; + public static final int NULL_60539 = 60539; + public static final int NULL_60540 = 60540; + public static final int NULL_60543 = 60543; + public static final int NULL_60544 = 60544; + public static final int NULL_60545 = 60545; + public static final int NULL_60546 = 60546; + public static final int NULL_60547 = 60547; + public static final int NULL_60548 = 60548; + public static final int NULL_60549 = 60549; + public static final int NULL_60550 = 60550; + public static final int NULL_60565 = 60565; + public static final int NULL_60569 = 60569; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/ObjectID.java b/runelite-api/src/main/java/net/runelite/api/ObjectID.java index 6e3527483ba..9814fbcbeba 100644 --- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java @@ -1401,6 +1401,7 @@ public final class ObjectID public static final int CHEST_2588 = 2588; public static final int HOLE_2589 = 2589; public static final int LADDER_2590 = 2590; + public static final int BUNK_BED = 2591; public static final int LADDER_2592 = 2592; public static final int GANGPLANK_2593 = 2593; public static final int GANGPLANK_2594 = 2594; @@ -8421,7 +8422,7 @@ public final class ObjectID public static final int CHAIR_14853 = 14853; public static final int CHEST_14854 = 14854; public static final int BED_14855 = 14855; - public static final int BUNK_BED = 14856; + public static final int BUNK_BED_14856 = 14856; public static final int TRUNK = 14857; public static final int LOCKER = 14858; public static final int SARADOMIN_STAR = 14859; @@ -28507,7 +28508,6 @@ public final class ObjectID public static final int ROCKS_58922 = 58922; public static final int NICKEL_ROCKS = 58923; public static final int ROCKS_58924 = 58924; - public static final int BARRACUDA_TRIAL_EXIT = 58925; public static final int SCOREBOARD_58926 = 58926; public static final int SCOREBOARD_58927 = 58927; public static final int SCOREBOARD_58928 = 58928; @@ -28717,7 +28717,6 @@ public final class ObjectID public static final int SAILS_59549 = 59549; public static final int SAILS_59550 = 59550; public static final int SAILS_59551 = 59551; - public static final int SAILS_59552 = 59552; public static final int SAILS_59553 = 59553; public static final int HELM = 59555; public static final int HELM_59556 = 59556; @@ -29252,5 +29251,35 @@ public final class ObjectID public static final int GANGPLANK_60523 = 60523; public static final int GANGPLANK_60524 = 60524; public static final int GANGPLANK_60525 = 60525; + public static final int TIN_BATH_60526 = 60526; + public static final int TABLE_60527 = 60527; + public static final int RED_CORAL = 60528; + public static final int RED_CORAL_60529 = 60529; + public static final int RED_CORAL_60530 = 60530; + public static final int SHELVES_60541 = 60541; + public static final int SHELVES_60542 = 60542; + public static final int HELM_60551 = 60551; + public static final int HELM_60552 = 60552; + public static final int HELM_60553 = 60553; + public static final int HELM_60554 = 60554; + public static final int HELM_60555 = 60555; + public static final int HELM_60556 = 60556; + public static final int HELM_60557 = 60557; + public static final int HELM_60558 = 60558; + public static final int HELM_60559 = 60559; + public static final int HELM_60560 = 60560; + public static final int HELM_60561 = 60561; + public static final int HELM_60562 = 60562; + public static final int HELM_60563 = 60563; + public static final int HELM_60564 = 60564; + public static final int CAT_60566 = 60566; + public static final int WORKBENCH_60567 = 60567; + public static final int BOOKCASE_60568 = 60568; + public static final int CURSED_REMAINS = 60570; + public static final int A_SINGULAR_CIRCLE = 60571; + public static final int KATANA = 60572; + public static final int SHRIMP = 60573; + public static final int HAROLD = 60574; + public static final int TENTACLE_60575 = 60575; /* This file is automatically generated. Do not edit. */ } From 19beb9b953444c88391fad85afc2de93c494706c Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Tue, 18 Nov 2025 11:13:55 -0700 Subject: [PATCH 10/18] Update GameVals to 2025-11-19 --- .../net/runelite/api/gameval/AnimationID.java | 31 +++ .../net/runelite/api/gameval/DBTableID.java | 26 ++- .../net/runelite/api/gameval/InterfaceID.java | 79 ++++---- .../java/net/runelite/api/gameval/ItemID.java | 10 +- .../java/net/runelite/api/gameval/NpcID.java | 168 ++++++++++------ .../net/runelite/api/gameval/ObjectID.java | 5 + .../net/runelite/api/gameval/ObjectID1.java | 181 ++++++++++++++++-- .../net/runelite/api/gameval/SpotanimID.java | 5 + .../net/runelite/api/gameval/SpriteID.java | 18 ++ .../net/runelite/api/gameval/VarClientID.java | 1 + .../net/runelite/api/gameval/VarbitID.java | 6 +- 11 files changed, 414 insertions(+), 116 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java index f502986dc58..2cb67272d86 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java @@ -898,6 +898,7 @@ public final class AnimationID public static final int HUMAN_JADECUTTING = 891; public static final int HUMAN_REDTOPAZCUTTING = 892; public static final int HUMAN_SHEARING = 893; + public static final int GHOST_UPDATE_TENDRILL_READY_THRALL = 894; public static final int HUMAN_FILLBUCKET_SANDPIT = 895; public static final int HUMAN_COOKING = 896; public static final int HUMAN_FIRECOOKING = 897; @@ -10792,6 +10793,7 @@ public final class AnimationID public static final int HUNTINGFOX_DEADFALL_CATCHING_SOUTH = 10789; public static final int HUNTINGFOX_DEADFALL_FULL = 10790; public static final int HUNTINGFOX_DEADFALL_CATCHINGTEST = 10791; + public static final int GHOST_UPDATE_TENDRILL_WALK_THRALL = 10792; public static final int MINNOW_FISHING_SPOT_LOCATION_LOOP = 10793; public static final int HUMAN_CRAFTING = 10794; public static final int HUMAN_COOKING_WALKMERGE_NORESTART = 10795; @@ -11097,6 +11099,7 @@ public final class AnimationID public static final int HUMAN_FLETCHING_HUNTINGBOLTS_CHISEL_SINGLE = 11098; public static final int HUMAN_CUTTING_RESTART = 11099; public static final int HUMAN_FLETCHING_SINGLE = 11100; + public static final int GHOST_UPDATE_TENDRILL_ATTACK_THRALL = 11101; public static final int HUMAN_PRAY_BLESSED_BONE_SHARDS_01 = 11102; public static final int HUMAN_PUSHUP_01 = 11103; public static final int NPC_HARPY_EAGLE_FLYING_IDLE_01 = 11104; @@ -11590,6 +11593,7 @@ public final class AnimationID public static final int WINE_JUG_SPLASH = 11592; public static final int HUMAN_WALK_B_2LOOPS = 11593; public static final int FX_BEAM_HUEY = 11594; + public static final int GHOST_UPDATE_TENDRILL_DEATH_THRALL = 11595; public static final int SPOTANIM_ZEBAK_ATTACK_ROAR_SHORT = 11596; public static final int NPC_PORCUPINE_COMBAT_MELEE = 11597; public static final int NPC_PORCUPINE_COMBAT_DEATH = 11598; @@ -11738,6 +11742,7 @@ public final class AnimationID public static final int BREWING_FILL_GLASS = 11741; public static final int BREWING_TURN_VALVE = 11742; public static final int BREWING_ADD_INGREDIENT = 11743; + public static final int GHOST_UPDATE_TENDRILL_DEFEND_THRALL = 11744; public static final int HUMAN_FISHING_CASTING_NPC = 11745; public static final int NPC_MINOTAUR_BOSS_WALK_FAST = 11746; public static final int NPC_MINOTAUR_BOSS_ATTACK_MELEE_LOUDER = 11747; @@ -13662,5 +13667,31 @@ public final class AnimationID public static final int FORESTRY_CAMPFIRE_BURNING_CAMPHOR_LOGS = 13667; public static final int FORESTRY_CAMPFIRE_BURNING_IRONWOOD_LOGS = 13668; public static final int FORESTRY_CAMPFIRE_BURNING_ROSEWOOD_LOGS = 13669; + public static final int SKELETON_UPDATE_CHAMPION_READY_THRALL = 13670; + public static final int SKELETON_UPDATE_CHAMPION_WALK_THRALL = 13671; + public static final int SKELETON_UPDATE_CHAMPION_ATTACK_THRALL = 13672; + public static final int SKELETON_UPDATE_CHAMPION_DEFEND_THRALL = 13673; + public static final int SKELETON_UPDATE_CHAMPION_DEATH_THRALL = 13674; + public static final int ZOMBIE_UPDATE_READY_NORMAL_THRALL = 13675; + public static final int ZOMBIE_UPDATE_WALK_NORMAL_THRALL = 13676; + public static final int ZOMBIE_UPDATE_WALK_LEFT_NORMAL_THRALL = 13677; + public static final int ZOMBIE_UPDATE_WALK_RIGHT_NORMAL_THRALL = 13678; + public static final int ZOMBIE_UPDATE_WALKBACKWARDS_WEAPON_THRALL = 13679; + public static final int ZOMBIE_UPDATE_DEATH_NORMAL_THRALL = 13680; + public static final int ZOMBIE_UPDATE_ATTACK_NORMAL_THRALL = 13681; + public static final int ZOMBIE_UPDATE_DEFEND_NORMAL_THRALL = 13682; + public static final int GHOST_UPDATE_THRALL_SPAWN_RAISED = 13683; + public static final int SKELETON_UPDATE_THRALL_SPAWN_RAISED = 13684; + public static final int ZOMBIE_UPDATE_THRAWL_SPAWN_RAISED = 13685; + public static final int SAILING_BOAT_SAIL_KANDARIN_3X10_DOWN_TO_FULL_TRIM = 13686; + public static final int SAILING_BOAT_SAIL_KANDARIN_3X10_HALF_TO_FULL_TRIM = 13687; + public static final int SAILING_BOAT_SAIL_KANDARIN_3X10_FULL_TRIM = 13688; + public static final int SAILING_HUMAN_SAIL_KANDARIN_3X10_FURLED_TO_DOWN = 13689; + public static final int SAILING_HUMAN_SAIL_KANDARIN_3X10_DOWN_TO_FURLED = 13690; + public static final int SAILING_HUMAN_SAIL_KANDARIN_3X10_TRIM_SAILS = 13691; + public static final int VFX_WIND_SAIL_3X10_01 = 13692; + public static final int VFX_WIND_SAIL_3X10_SPEEDBOOST01 = 13693; + public static final int HUMAN_WORKBENCH_CRAFTING_LOOP = 13694; + public static final int TURTLE_IDLE01_LOOP = 13695; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java b/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java index 48798cf0827..747de726020 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java @@ -11907,20 +11907,30 @@ public static final class SailingChartingCore */ public static final int COL_SAILING_SEA = 2; + /** + * dbrow + */ + public static final int COL_SAILING_SEA_SECONDARY = 3; + /** * boolean */ - public static final int COL_GIVE_REPEAT_XP = 3; + public static final int COL_GIVE_REPEAT_XP = 4; /** * dbtable */ - public static final int COL_CHARTING_TYPE = 4; + public static final int COL_CHARTING_TYPE = 5; /** * dbrow */ - public static final int COL_HAZARD = 5; + public static final int COL_HAZARD = 6; + + /** + * dbrow + */ + public static final int COL_REQUIRED_DOCK = 7; public static final class Row { @@ -12896,6 +12906,11 @@ public static final class SailingBoatFacilityStats */ public static final int COL_BOAT_MAX_WIND_MOTES = 33; + /** + * integer + */ + public static final int COL_BOAT_ADDITIONAL_RECOVERY_COST_PERCENTAGE = 34; + public static final class Row { public static final int SAILING_BOAT_STATS_MERMAID_BLESSING = 8091; @@ -14637,6 +14652,11 @@ public static final class SailingDock */ public static final int COL_INLINE_NAME = 2; + /** + * integer + */ + public static final int COL_LEVEL_REQUIRED = 4; + /** * graphic */ diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java b/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java index f76f14e96ea..99faf930178 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java @@ -9109,9 +9109,9 @@ public static final class LevelupDisplay public static final int WOODCUTTING = 0x00e9_0033; public static final int COMBAT = 0x00e9_0034; public static final int SAILING = 0x00e9_0035; - public static final int WOODCUTTING_MODEL0 = 0x00e9_0036; - public static final int COMBAT_MODEL0 = 0x00e9_0037; - public static final int SAILING_GRAPHIC0 = 0x00e9_0038; + public static final int SAILING_MODEL0 = 0x00e9_0036; + public static final int WOODCUTTING_MODEL0 = 0x00e9_0037; + public static final int COMBAT_MODEL0 = 0x00e9_0038; } public static final class Deadmanloot @@ -30564,22 +30564,22 @@ public static final class SailingLog public static final int FILTER_TITLE_1 = 0x03a7_001e; public static final int COMPLETION_DROPDOWN = 0x03a7_001f; public static final int FILTER_TITLE_2 = 0x03a7_0020; - public static final int OCEAN_DROPDOWN = 0x03a7_0021; + public static final int SEA_DROPDOWN = 0x03a7_0021; public static final int FILTER_TITLE_3 = 0x03a7_0022; - public static final int SEA_DROPDOWN = 0x03a7_0023; - public static final int COMPLETION = 0x03a7_0024; - public static final int COMPLETION_RECT0 = 0x03a7_0025; - public static final int COMPLETION_INNER = 0x03a7_0026; - public static final int LIST_CONTAINER = 0x03a7_0027; - public static final int INFO = 0x03a7_0028; - public static final int INFO_RECT0 = 0x03a7_0029; - public static final int INFO_INNER = 0x03a7_002a; - public static final int DROPDOWN = 0x03a7_002b; - public static final int DROPDOWN_CONTENT = 0x03a7_002c; - public static final int DROPDOWN_SCROLLER = 0x03a7_002d; - public static final int LIST_CONTAINER_RECT0 = 0x03a7_002e; - public static final int LIST = 0x03a7_002f; - public static final int LIST_SCROLLBAR = 0x03a7_0030; + public static final int COMPLETION = 0x03a7_0023; + public static final int COMPLETION_RECT0 = 0x03a7_0024; + public static final int COMPLETION_INNER = 0x03a7_0025; + public static final int LIST_CONTAINER = 0x03a7_0026; + public static final int INFO = 0x03a7_0027; + public static final int INFO_RECT0 = 0x03a7_0028; + public static final int INFO_INNER = 0x03a7_0029; + public static final int DROPDOWN = 0x03a7_002a; + public static final int DROPDOWN_CONTENT = 0x03a7_002b; + public static final int DROPDOWN_SCROLLER = 0x03a7_002c; + public static final int LIST_CONTAINER_RECT0 = 0x03a7_002d; + public static final int LIST = 0x03a7_002e; + public static final int LIST_SCROLLBAR = 0x03a7_002f; + public static final int OCEAN_DROPDOWN = 0x03a7_0030; public static final int FILTER_TITLE_4 = 0x03a7_0031; public static final int LEVEL_DROPDOWN = 0x03a7_0032; } @@ -30679,26 +30679,29 @@ public static final class SailingCustomisation public static final int FACILITY_CONTENT_RECT2 = 0x03ab_0010; public static final int FACILITY_CLICK_LAYER = 0x03ab_0011; public static final int FACILITY_CONTENT_RECT4 = 0x03ab_0012; - public static final int FACILITY_DEBUG_CLICK_LAYER = 0x03ab_0013; - public static final int FACILITY_HIGHLIGHT = 0x03ab_0014; - public static final int FACILITY_HIGHLIGHT_RECT0 = 0x03ab_0015; - public static final int FACILITY_SCROLLBAR = 0x03ab_0016; - public static final int FACILITY_SCROLLBAR_RECT0 = 0x03ab_0017; - public static final int LOADING = 0x03ab_0018; - public static final int LOADING_RECT0 = 0x03ab_0019; - public static final int POPUPS = 0x03ab_001a; - public static final int POPUPS_BACKGROUND = 0x03ab_001b; - public static final int POPUPS_CONTAINER = 0x03ab_001c; - public static final int POPUPS_CONTENT_BORDER = 0x03ab_001d; - public static final int POPUPS_CONTENT_BORDER_RECT0 = 0x03ab_001e; - public static final int POPUPS_CONTENT = 0x03ab_001f; - public static final int POPUPS_CONTENT_RECT0 = 0x03ab_0020; - public static final int POPUPS_BUTTON = 0x03ab_0021; - public static final int POPUPS_BUTTON_RECT0 = 0x03ab_0022; - public static final int POPUPS_BACKGROUND_RECT0 = 0x03ab_0023; - public static final int TOOLTIP = 0x03ab_0024; - public static final int FACILITY_CONTENT_MAIN_RECT0 = 0x03ab_0025; - public static final int FACILITY_CONTENT_BACKGROUND_RECT0 = 0x03ab_0026; + public static final int FACILITY_HIGHLIGHT = 0x03ab_0013; + public static final int FACILITY_HIGHLIGHT_RECT0 = 0x03ab_0014; + public static final int FACILITY_SCROLLBAR = 0x03ab_0015; + public static final int FACILITY_SCROLLBAR_RECT0 = 0x03ab_0016; + public static final int LOADING = 0x03ab_0017; + public static final int LOADING_RECT0 = 0x03ab_0018; + public static final int POPUPS = 0x03ab_0019; + public static final int POPUPS_BACKGROUND = 0x03ab_001a; + public static final int POPUPS_CONTAINER = 0x03ab_001b; + public static final int POPUPS_BORDER = 0x03ab_001c; + public static final int POPUPS_BORDER_RECT0 = 0x03ab_001d; + public static final int POPUPS_CONTENT_BORDER = 0x03ab_001e; + public static final int POPUPS_CONTENT_BORDER_RECT0 = 0x03ab_001f; + public static final int POPUPS_TEXT = 0x03ab_0020; + public static final int POPUPS_SCROLLBAR = 0x03ab_0021; + public static final int POPUPS_BUTTON = 0x03ab_0022; + public static final int POPUPS_BUTTON_RECT0 = 0x03ab_0023; + public static final int POPUPS_BACKGROUND_RECT0 = 0x03ab_0024; + public static final int TOOLTIP = 0x03ab_0025; + public static final int FACILITY_CONTENT_MAIN_RECT0 = 0x03ab_0026; + public static final int FACILITY_CONTENT_BACKGROUND_RECT0 = 0x03ab_0027; + public static final int POPUPS_TEXT_RECT0 = 0x03ab_0028; + public static final int POPUPS_SCROLLBAR_RECT0 = 0x03ab_0029; } public static final class Underwater diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java b/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java index f6666b7f73c..e54d576744f 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java @@ -80918,12 +80918,12 @@ public final class ItemID public static final int PLANK_ROSEWOOD = 31438; /** - * Teleport boat to me + * Summon boat */ public static final int POH_TABLET_TELEPORTBOATTOME = 31441; /** - * Teleport me to boat + * Teleport to boat */ public static final int POH_TABLET_TELEPORTMETOBOAT = 31443; @@ -86046,6 +86046,11 @@ public final class ItemID public static final int SALVAGE_TABLE_ICON_DUMMY = 32919; public static final int TRAWLING_ICON_DUMMY = 32920; + /** + * Jar of feathers + */ + public static final int JAR_OF_FEATHERS = 32921; + public static final class Cert { public static final int TWPART1 = 7; @@ -100124,6 +100129,7 @@ public static final class Placeholder public static final int CAMPHOR_LOGS = 32906; public static final int IRONWOOD_LOGS = 32909; public static final int ROSEWOOD_LOGS = 32912; + public static final int JAR_OF_FEATHERS = 32922; } /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java b/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java index 5d58c7c87fb..df29c4fce58 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java @@ -50,6 +50,11 @@ public final class NpcID */ public static final int SLAYER_NECHRYAEL = 8; + /** + * Skylark + */ + public static final int SAILING_SKYLARK = 9; + /** * Death spawn */ @@ -1386,6 +1391,21 @@ public final class NpcID */ public static final int GULL2 = 285; + /** + * Eagle + */ + public static final int CONCH_EAGLE_WINGED_LAND = 286; + + /** + * Mercenary + */ + public static final int PORT_ROBERTS_BAR_PATRON = 287; + + /** + * Chartin' Charles McAtless + */ + public static final int SAILING_CHARTING_TUTOR_1OP = 288; + /** * Ghoul */ @@ -3967,12 +3987,12 @@ public final class NpcID public static final int DRAGONSLAYER_NED_CUTSCENE = 824; /** - * Cabin boy Jenkins + * Cabin Boy Jenkins */ public static final int DRAGONSLAYER_JENKINS_THERE = 825; /** - * Cabin boy Jenkins + * Cabin Boy Jenkins */ public static final int DRAGONSLAYER_JENKINS_CUTSCENE = 826; @@ -7319,6 +7339,16 @@ public final class NpcID */ public static final int CRAB_1 = 1553; + /** + * Chartin' Charles McAtless + */ + public static final int SAILING_CHARTING_TUTOR_2OP = 1554; + + /** + * Luke + */ + public static final int SAILING_SHIPYARD_WORKER_10 = 1555; + /** * Fire wizard */ @@ -18451,6 +18481,26 @@ public final class NpcID */ public static final int VIKING_BUNNY_2 = 3903; + /** + * Shipyard Worker + */ + public static final int SAILING_SHIPYARD_WORKER_11 = 3904; + + /** + * Shipyard Worker + */ + public static final int SAILING_SHIPYARD_WORKER_12 = 3905; + + /** + * Shipyard Engineer + */ + public static final int SAILING_SHIPYARD_WORKER_13 = 3906; + + /** + * Joe + */ + public static final int SHIPYARD_DOG_NOBALL = 3907; + /** * Bear Cub */ @@ -20212,6 +20262,16 @@ public final class NpcID */ public static final int BORDERGUARD2 = 4288; + /** + * Joe + */ + public static final int SHIPYARD_DOG_BALL = 4289; + + /** + * Cat + */ + public static final int SHIPYARD_SAILING_CAT = 4290; + /** * Herman Caranos */ @@ -22247,6 +22307,16 @@ public final class NpcID */ public static final int THURGO = 4733; + /** + * Joint-Chief Mouser to the Shipyard Office + */ + public static final int SHIPYARD_CHIEF_MOUSER01 = 4734; + + /** + * Joint-Chief Mouser to the Shipyard Office + */ + public static final int SHIPYARD_CHIEF_MOUSER02 = 4735; + /** * Sir Vyvin */ @@ -64226,6 +64296,41 @@ public final class NpcID public static final int EVENTS_GUARDIAN_MELEE = 14805; public static final int HW25_CHAIR_NPC_REWARD = 14806; + /** + * Spotted Rae + */ + public static final int SHIPYARD_SPOTTED_RAE = 14807; + + /** + * Duck + */ + public static final int CURRENT_DUCK_ON_LAND = 14808; + + /** + * Gecko + */ + public static final int BUCCANEERS_HAVEN_GECKO_BASEMENT = 14809; + + /** + * Grub + */ + public static final int HAIRY_GRUB = 14810; + + /** + * Rusty chest + */ + public static final int RUSTY_PIRATE_THIEVING_CHEST_GLE = 14811; + + /** + * Tarnished chest + */ + public static final int TARNISHED_PIRATE_THIEVING_CHEST_GLE = 14812; + + /** + * Rusty chest + */ + public static final int REINFORCED_PIRATE_THIEVING_CHEST_GLE = 14813; + /** * Spooky chair */ @@ -64443,16 +64548,6 @@ public final class NpcID */ public static final int SLAYER_GRYPHON_BOSS_GUARDIAN_VIS = 14863; - /** - * Gull - */ - public static final int GRYPHON_PET_TEST = 14864; - - /** - * Gull - */ - public static final int GRYPHON_PET_DEAD_TEST = 14865; - /** * Henderson */ @@ -65713,10 +65808,6 @@ public final class NpcID * Castaway */ public static final int SAILING_CHANCE_ENCOUNTERS_RESCUE_DOG1_PASSENGER = 15150; - - /** - * Chartin' Charles McAtless - */ public static final int SAILING_CHARTING_TUTOR = 15151; /** @@ -65848,46 +65939,6 @@ public final class NpcID * Sailing cat */ public static final int SAILING_CHARTING_DRINK_CRATE_SAILING_CAT_EFFECT = 15177; - - /** - * Castaway Dog - */ - public static final int SAILING_CASTAWAY_DOG_TEST = 15178; - - /** - * Castaway Dog - */ - public static final int SAILING_CASTAWAY_DOG_WALK_TEST = 15179; - - /** - * Castaway Dog - */ - public static final int SAILING_CASTAWAY_DOG_IDLE_TEST = 15180; - - /** - * wilson - */ - public static final int SAILING_WILSON_TEST = 15181; - - /** - * log girl - */ - public static final int SAILING_LOG_WOMAN_TEST = 15182; - - /** - * barrel girl - */ - public static final int SAILING_BARREL_WOMAN_TEST = 15183; - - /** - * barrel dude - */ - public static final int SAILING_BARRELBOAT_MAN_TEST = 15184; - - /** - * debris dude - */ - public static final int SAILING_DEBRIS_MAN_TEST = 15185; public static final int BOAT_HP_NPC_TINY = 15186; public static final int BOAT_HP_NPC_SMALL = 15187; public static final int BOAT_HP_NPC_MEDIUM = 15188; @@ -66124,11 +66175,6 @@ public final class NpcID */ public static final int SAILING_DOLPHIN_BABY = 15236; - /** - * Ocean Man - */ - public static final int SAILING_OCEAN_MAN_TEST = 15237; - /** * Junior Jim */ diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID.java b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID.java index 4b38dba6dc7..f134443135d 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID.java @@ -8168,6 +8168,11 @@ public final class ObjectID extends ObjectID1 */ public static final int DRAGONSHIPLADDERTOP = 2590; + /** + * Bunk bed + */ + public static final int AKD_SHAYZIEN_BUNKBED_SMALL = 2591; + /** * Ladder */ diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java index d463cb5c760..6c1f7b8c6e8 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java @@ -71723,7 +71723,6 @@ class ObjectID1 */ public static final int TOA_ZEBAK_BUBBLES_BLUE = 58525; public static final int BGSOUND_SAILING_OCEAN_WATER_LOOP_01 = 58526; - public static final int BGSOUND_SAILING_OCEAN_WATER_LOOP_02 = 58527; public static final int BGSOUND_SAILING_COOKING_LOOP_2 = 58528; public static final int BGSOUND_SAILING_NORTHERN_OCEAN_WIND_LOOP = 58529; public static final int BGSOUND_SAILING_CLOCK = 58530; @@ -73138,11 +73137,6 @@ class ObjectID1 */ public static final int NICKELROCK1_EMPTY = 58924; - /** - * Barracuda trial exit - */ - public static final int SAILING_BT_EXIT = 58925; - /** * Scoreboard */ @@ -74605,11 +74599,6 @@ class ObjectID1 */ public static final int SAILING_BOAT_SAILS_COLOSSAL_REGULAR = 59551; - /** - * Sails - */ - public static final int DEBUG_TEST_SAILING_COLOSSAL_SAILS_DOWN = 59552; - /** * Sails */ @@ -77718,5 +77707,175 @@ class ObjectID1 * Gangplank */ public static final int SAILING_GENERIC_SHIPPLANK_OFF = 60525; + + /** + * Tin bath + */ + public static final int BATH_ALDARIN01_TIN01_SMALL1 = 60526; + + /** + * Table + */ + public static final int CIVITAS_TABLE_RICH_1_SMALL1 = 60527; + + /** + * Red Coral + */ + public static final int RED_CORAL01_1X1 = 60528; + + /** + * Red Coral + */ + public static final int RED_CORAL01_2X2 = 60529; + + /** + * Red Coral + */ + public static final int RED_CORAL01_3X2 = 60530; + public static final int BGSOUND_SAILING_STOMRY_SEAS_WATER_WIND_LOOP_01 = 60531; + public static final int BGSOUND_SAILING_UNQUIET_OCEAN_WATER_WIND_LOOP = 60532; + public static final int BGSOUND_SAILING_PROFANE_WATERS_WATER_WIND_LOOP = 60533; + public static final int BGSOUND_SAILING_FETID_WATERS_WATER_WIND_LOOP = 60534; + public static final int BGSOUND_SAILING_FETID_SWAMP_GAS = 60535; + public static final int BGSOUND_SAILING_TANGLED_KELP_WATER_WIND_LOOP = 60536; + public static final int BGSOUND_SAILING_SUNSET_OCEAN_WATER_WIND_LOOP = 60537; + public static final int BGSOUND_SAILING_SUNBAKED_SEAS_WATER_WIND_LOOP = 60538; + public static final int BGSOUND_SAILING_NORTHERN_OCEAN_ICY_SEAS_WIND = 60539; + public static final int BGSOUND_SAILING_FLECKED_WATERS_ICY_WIND = 60540; + + /** + * Shelves + */ + public static final int FAI_VARROCK_SHELVES4 = 60541; + + /** + * Shelves + */ + public static final int FAI_VARROCK_SHELVES4_MIRROR = 60542; + public static final int RANDOMSOUND_UNQUIET_OCEAN_AMB_DISTANT_CREATURE_MOANS = 60543; + public static final int RANDOMSOUND_UNQUIET_OCEAN_AMB_WATER_DROPS = 60544; + public static final int RANDOMSOUND_SUNSET_OCEAN_AMB_WAVES = 60545; + public static final int RANDOMSOUND_TANGLED_KELP_SEAWEED = 60546; + public static final int RANDOMSOUND_FLECKED_WATERS_CRYSTAL_SPARKS = 60547; + public static final int RANDOMSOUND_FLECKED_WATERS_CRYSTAL_SPARKS_02 = 60548; + public static final int RANDOMSOUND_NORTHERN_OCEAN_CREATURE_GROANS = 60549; + public static final int TORCH_DIAG = 60550; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_1X3_WOOD_UI = 60551; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_1X3_OAK_UI = 60552; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_1X3_TEAK_UI = 60553; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_1X3_MAHOGANY_UI = 60554; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_1X3_CAMPHOR_UI = 60555; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_1X3_IRONWOOD_UI = 60556; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_1X3_ROSEWOOD_UI = 60557; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_2X5_WOOD_UI = 60558; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_2X5_OAK_UI = 60559; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_2X5_TEAK_UI = 60560; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_2X5_MAHOGANY_UI = 60561; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_2X5_CAMPHOR_UI = 60562; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_2X5_IRONWOOD_UI = 60563; + + /** + * Helm + */ + public static final int SAILING_BOAT_STEERING_KANDARIN_2X5_ROSEWOOD_UI = 60564; + public static final int PAINTING_SCRONGLY01 = 60565; + + /** + * <col=ffff00>Cat</col> + */ + public static final int SHIPYARD_PILLOW_CAT = 60566; + + /** + * Workbench + */ + public static final int SHIPYARD_WORKBENCH = 60567; + + /** + * Bookcase + */ + public static final int SHIPYARD_BOOKCASE = 60568; + public static final int SHIPYARD_HEND_WAS_HERE = 60569; + + /** + * Cursed remains + */ + public static final int CURSED_REMAINS = 60570; + + /** + * A singular circle + */ + public static final int SUSPICIOUS_CIRCLE = 60571; + + /** + * Katana + */ + public static final int SAILING_KATANA = 60572; + + /** + * Shrimp + */ + public static final int SAILING_SHRIMP_RARE = 60573; + + /** + * <col=ffff00>Harold</col> + */ + public static final int SAILING_CLUE_TURTLE = 60574; + + /** + * Tentacle + */ + public static final int HAZARDOUS_WATER_PROFANE_GHOST = 60575; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/SpotanimID.java b/runelite-api/src/main/java/net/runelite/api/gameval/SpotanimID.java index 08116e7c9e4..bd72fff6a45 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/SpotanimID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/SpotanimID.java @@ -3564,5 +3564,10 @@ public final class SpotanimID public static final int VFX_STRYKEWYRM_BURROW_ATTACK01 = 3557; public static final int VFX_STRYKEWYRM_WALK_EMERGED = 3558; public static final int VFX_STRYKEWYRM_SUPERIOR_WALK_EMERGED = 3559; + public static final int SKILLCAPE_SAILING_EMOTE_SPOTANIM = 3560; + public static final int SKILLCAPE_AD_EMOTE_SPOTANIM = 3561; + public static final int VFX_WIND_SAIL_3X10_01 = 3562; + public static final int VFX_WIND_SAIL_3X10_SPEEDBOOST01 = 3563; + public static final int SHIPYARD_DOG_BALL = 3564; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java index 9b4683bf9a2..94615d9f153 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/SpriteID.java @@ -10518,6 +10518,24 @@ public static final class HealthbarBold4x4 public static final int _15 = 6855; public static final int _16 = 6856; public static final int _17 = 6857; + public static final int _18 = 7293; + public static final int _19 = 7294; + public static final int _20 = 7295; + public static final int _21 = 7296; + public static final int _22 = 7297; + public static final int _23 = 7298; + public static final int _24 = 7299; + public static final int _25 = 7300; + public static final int _26 = 7301; + public static final int _27 = 7302; + public static final int _28 = 7303; + public static final int _29 = 7304; + public static final int _30 = 7305; + public static final int _31 = 7306; + public static final int _32 = 7307; + public static final int _33 = 7308; + public static final int _34 = 7309; + public static final int _35 = 7310; } public static final class IconChevron16x16 diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarClientID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarClientID.java index 147b0c70221..0fe1e0e9c9b 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarClientID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarClientID.java @@ -1346,5 +1346,6 @@ public final class VarClientID public static final int CAMERA_ZOOM_SMALL_MAX = 1339; public static final int CAMERA_ZOOM_BIG_MIN = 1340; public static final int CAMERA_ZOOM_BIG_MAX = 1341; + public static final int SAILING_LAST_BOAT_HP = 1342; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java index d0de5efb0c9..581b2ce6c83 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java @@ -6121,6 +6121,7 @@ public final class VarbitID public static final int HALLOWED_TOME = 10361; public static final int MYQ5_PUZZLE_COMPLETED = 10365; public static final int ROUTE_HIDEOUT_NPCS = 10367; + public static final int SETTINGS_IRONMAN_CARGO_WARNING = 10385; public static final int VARLAMORE_WYRM_AGILITY_LAP_LOOTTRACKER_INCREMENTED = 10386; public static final int SLAYER_UNLOCK_VAMPYRES = 10388; public static final int SLAYER_LONGER_VAMPYRES = 10389; @@ -12672,6 +12673,7 @@ public final class VarbitID public static final int CRAB_TRAP_CROWN_JEWEL_3 = 18404; public static final int CRAB_TRAP_CROWN_JEWEL_4 = 18405; public static final int CRAB_TRAP_CROWN_JEWEL_5 = 18406; + public static final int DARKNESS_GRACE_PERIOD = 18408; public static final int SAILING_BT_IN_TRIAL = 18410; public static final int SAILING_BT_JUBBLY_JIVE_PILLAR_0_STATE_PLAYER = 18411; public static final int SAILING_BT_JUBBLY_JIVE_PILLAR_1_STATE_PLAYER = 18412; @@ -13747,7 +13749,6 @@ public final class VarbitID public static final int SAILING_CREW_FREMENNIK_VISIBILITY = 19499; public static final int SAILING_CREW_SPIRIT_ANGLER_VISIBILITY = 19500; public static final int SAILING_CREW_CAPTAIN_SIAD_VISIBILITY = 19501; - public static final int SAILING_CREW_GHOST_JENKINS_VISIBILITY = 19502; public static final int SAILING_CREW_ON_DOCK = 19503; public static final int SAILING_CREW_GENERIC_1_MET = 19504; public static final int SAILING_CREW_GENERIC_2_MET = 19505; @@ -13837,5 +13838,8 @@ public final class VarbitID public static final int SLAYER_UNLOCK_GRYPHONS = 19604; public static final int SLAYER_UNLOCK_AQUANITES = 19605; public static final int SAILING_CHARTING_DRINK_CRATE_WARNING = 19609; + public static final int SAILING_CREW_GHOST_JENKINS_VISIBILITY_CRANDOR = 19610; + public static final int SETTINGS_IRONMAN_CARGO_WARNING_TEMP = 19612; + public static final int SAILING_CREW_GHOST_JENKINS_VISIBILITY_CONTROL = 19613; /* This file is automatically generated. Do not edit. */ } From 3f40fcf611d1d250e5a9e9932ef08dc11d415d14 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sat, 15 Nov 2025 20:18:23 -0700 Subject: [PATCH 11/18] rl-client: use correct small sailing icon --- .../resources/skill_icons_small/sailing.png | Bin 219 -> 274 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/runelite-client/src/main/resources/skill_icons_small/sailing.png b/runelite-client/src/main/resources/skill_icons_small/sailing.png index fe5effd545dda85495cdd151949eb439e89442a3..089b8ff536e2b47b7cad95d122de0379ce66a978 100644 GIT binary patch delta 258 zcmcc3IEiV3L_G&H0|SGGE`KnPVk{1FcVfJGQl}osVM%xNb!1@J*w6hZkrl{SNcITw zWnidMV_;}#VPNuhukc{Xjw7QRJpLWQ$;@_BD=jeq}%ZHuCu$Ia?xWtKLa zN^d{*F5B`sa{rs2hEgZt?GGxo6*j(Ia{f*068@}nOb0F%+ARh-$-=4)5I8TO8|UaVF)s*^uaR5vK)EK~Oj wF@}rhr5j!pzclDMe|0MB;}7@J855%aFlt%x@89Mo>;`g>r>mdKI;Vst0G Date: Sat, 15 Nov 2025 20:19:49 -0700 Subject: [PATCH 12/18] skybox: cover whole ocean --- .../resources/net/runelite/client/plugins/skybox/skybox.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skybox/skybox.txt b/runelite-client/src/main/resources/net/runelite/client/plugins/skybox/skybox.txt index 829ef3659a8..b8bb31f4b7a 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/skybox/skybox.txt +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/skybox/skybox.txt @@ -61,7 +61,7 @@ bounds 18 19 60 196 b 8 #B9D6FF -R 18 39 60 64 +R 18 32 60 64 #0f0f0f r 34 75 From 7e4505b480c8d4b9cae0b8dadd19475b37ff68ea Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sat, 15 Nov 2025 20:23:08 -0700 Subject: [PATCH 13/18] timetracking: add sailing patches --- .../timetracking/farming/FarmingWorld.java | 10 + .../farming/PatchImplementation.java | 495 ++++++++++++------ .../timetracking/farming/PaymentTracker.java | 3 +- .../plugins/timetracking/farming/Produce.java | 11 + 4 files changed, 367 insertions(+), 152 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java index 670e33dd022..d7b36a2ba38 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingWorld.java @@ -74,6 +74,10 @@ class FarmingWorld new FarmingPatch("", VarbitID.FARMING_TRANSMIT_A, PatchImplementation.HOPS, NpcID.FARMING_GARDENER_HOPS_5) ), 5165, 5166, 5422, 5677, 5678); + add(new FarmingRegion("Anglers' Retreat", 9770, false, + new FarmingPatch("", VarbitID.FARMING_TRANSMIT_A, PatchImplementation.HARDWOOD_TREE, NpcID.FARMING_GARDENER_HARDWOOD_TREE_5) + )); + add(new FarmingRegion("Ardougne", 10290, false, new FarmingPatch("", VarbitID.FARMING_TRANSMIT_A, PatchImplementation.BUSH, NpcID.FARMING_GARDENER_BUSH_4) ), 10546); @@ -212,6 +216,12 @@ public boolean isInBounds(WorldPoint loc) new FarmingPatch("", VarbitID.FARMING_TRANSMIT_B, PatchImplementation.FRUIT_TREE, NpcID.FARMING_GARDENER_FRUIT_1) ), 9782, 9526, 9525); + add(new FarmingRegion("Great Conch", 12581, true, + new FarmingPatch("East", VarbitID.FARMING_TRANSMIT_A, PatchImplementation.CORAL, NpcID.TORTUGAN_CORAL_FARMER, 0), + new FarmingPatch("West", VarbitID.FARMING_TRANSMIT_B, PatchImplementation.CORAL, NpcID.TORTUGAN_CORAL_FARMER, 1), + new FarmingPatch("", VarbitID.FARMING_TRANSMIT_C, PatchImplementation.CALQUAT, NpcID.FARMING_GARDENER_CALQUAT_3) + ), 12325, 12326, 12327, 12580, 12581, 12582, 12583, 12836, 12837, 12838, 12839, 13092, 13093, 13194); + add(new FarmingRegion("Harmony", 15148, false, new FarmingPatch("", VarbitID.FARMING_TRANSMIT_A, PatchImplementation.ALLOTMENT), new FarmingPatch("", VarbitID.FARMING_TRANSMIT_B, PatchImplementation.HERB) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/PatchImplementation.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/PatchImplementation.java index 90780197e49..324a9ef59dd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/PatchImplementation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/PatchImplementation.java @@ -1522,286 +1522,311 @@ PatchState forVarbitValue(int value) if (value >= 8 && value <= 10) { // Hammerstone Hops[Harvest,Inspect,Guide] 8181,8181,8181 - return new PatchState(Produce.HAMMERSTONE, CropState.HARVESTABLE, value - 8); + return new PatchState(Produce.HAMMERSTONE, CropState.HARVESTABLE, 10 - value); } - if (value >= 11 && value <= 15) + if (value >= 11 && value <= 13) + { + // Diseased Hammerstone Hops[Cure,Inspect,Guide] 8186,8187,8188 + return new PatchState(Produce.HAMMERSTONE, CropState.DISEASED, value - 10); + } + if (value >= 14 && value <= 18) { // Asgarnian Hops[Inspect,Guide] 8154,8155,8156,8157,8158 - return new PatchState(Produce.ASGARNIAN, CropState.GROWING, value - 11); + return new PatchState(Produce.ASGARNIAN, CropState.GROWING, value - 14); } - if (value >= 16 && value <= 18) + if (value >= 19 && value <= 21) { // Asgarnian Hops[Harvest,Inspect,Guide] 8159,8159,8159 - return new PatchState(Produce.ASGARNIAN, CropState.HARVESTABLE, value - 16); + return new PatchState(Produce.ASGARNIAN, CropState.HARVESTABLE, 21 - value); } - if (value >= 19 && value <= 24) + if (value >= 22 && value <= 25) + { + // Diseased Asgarnian Hops[Cure,Inspect,Guide] 8165,8166,8167,8168 + return new PatchState(Produce.ASGARNIAN, CropState.DISEASED, value - 21); + } + if (value >= 26 && value <= 31) { // Yanillian Hops[Inspect,Guide] 8288,8289,8290,8291,8292,8293 - return new PatchState(Produce.YANILLIAN, CropState.GROWING, value - 19); + return new PatchState(Produce.YANILLIAN, CropState.GROWING, value - 26); } - if (value >= 25 && value <= 27) + if (value >= 32 && value <= 34) { // Yanillian Hops[Harvest,Inspect,Guide] 8294,8294,8294 - return new PatchState(Produce.YANILLIAN, CropState.HARVESTABLE, value - 25); + return new PatchState(Produce.YANILLIAN, CropState.HARVESTABLE, 34 - value); + } + if (value >= 35 && value <= 39) + { + // Diseased Yanillian Hops[Cure,Inspect,Guide] 8301,8302,8303,8304,8305 + return new PatchState(Produce.YANILLIAN, CropState.DISEASED, value - 34); } - if (value >= 28 && value <= 34) + if (value >= 40 && value <= 46) { // Krandorian Hops[Inspect,Guide] 8211,8212,8213,8214,8215,8216,8217 - return new PatchState(Produce.KRANDORIAN, CropState.GROWING, value - 28); + return new PatchState(Produce.KRANDORIAN, CropState.GROWING, value - 40); } - if (value >= 35 && value <= 37) + if (value >= 47 && value <= 49) { // Krandorian Hops[Harvest,Inspect,Guide] 8218,8218,8218 - return new PatchState(Produce.KRANDORIAN, CropState.HARVESTABLE, value - 35); + return new PatchState(Produce.KRANDORIAN, CropState.HARVESTABLE, 49 - value); } - if (value >= 38 && value <= 45) + if (value >= 50 && value <= 55) + { + // Diseased Krandorian Hops[Cure,Inspect,Guide] 8226,8227,8228,8229,8230,8231 + return new PatchState(Produce.KRANDORIAN, CropState.DISEASED, value - 49); + } + if (value >= 56 && value <= 63) { // Wildblood Hops[Inspect,Guide] 8257,8258,8259,8260,8261,8262,8263,8264 - return new PatchState(Produce.WILDBLOOD, CropState.GROWING, value - 38); + return new PatchState(Produce.WILDBLOOD, CropState.GROWING, value - 56); } - if (value >= 46 && value <= 48) + if (value >= 64 && value <= 66) { // Wildblood Hops[Harvest,Inspect,Guide] 8265,8265,8265 - return new PatchState(Produce.WILDBLOOD, CropState.HARVESTABLE, value - 46); + return new PatchState(Produce.WILDBLOOD, CropState.HARVESTABLE, 66 - value); + } + if (value >= 67 && value <= 73) + { + // Diseased Wildblood Hops[Cure,Inspect,Guide] 8274,8275,8276,8277,8278,8279,8280 + return new PatchState(Produce.WILDBLOOD, CropState.DISEASED, value - 66); } - if (value >= 49 && value <= 52) + if (value >= 74 && value <= 77) { // Barley[Inspect,Guide] 8192,8193,8194,8195 - return new PatchState(Produce.BARLEY, CropState.GROWING, value - 49); + return new PatchState(Produce.BARLEY, CropState.GROWING, value - 74); } - if (value >= 53 && value <= 55) + if (value >= 78 && value <= 80) { // Barley[Harvest,Inspect,Guide] 8196,8196,8196 - return new PatchState(Produce.BARLEY, CropState.HARVESTABLE, value - 53); + return new PatchState(Produce.BARLEY, CropState.HARVESTABLE, 80 - value); + } + if (value >= 81 && value <= 83) + { + // Diseased Barley[Cure,Inspect,Guide] 8201,8202,8203 + return new PatchState(Produce.BARLEY, CropState.DISEASED, value - 80); } - if (value >= 56 && value <= 60) + if (value >= 84 && value <= 88) { // Jute[Inspect,Guide] 8238,8239,8240,8241,8242 - return new PatchState(Produce.JUTE, CropState.GROWING, value - 56); + return new PatchState(Produce.JUTE, CropState.GROWING, value - 84); } - if (value >= 61 && value <= 63) + if (value >= 89 && value <= 91) { // Jute[Harvest,Inspect,Guide] 8243,8243,8243 - return new PatchState(Produce.JUTE, CropState.HARVESTABLE, value - 61); + return new PatchState(Produce.JUTE, CropState.HARVESTABLE, 91 - value); } - if (value >= 64 && value <= 67) + if (value >= 92 && value <= 95) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Diseased Jute[Cure,Inspect,Guide] 8249,8250,8251,8252 + return new PatchState(Produce.JUTE, CropState.DISEASED, value - 91); } - if (value >= 68 && value <= 71) + if (value >= 96 && value <= 98) { - // Hammerstone Hops[Inspect,Guide] 8182,8183,8184,8185 - return new PatchState(Produce.HAMMERSTONE, CropState.GROWING, value - 68); + // Flax[Inspect,Guide] 58836,58837,58838 + return new PatchState(Produce.FLAX, CropState.GROWING, value - 96); } - if (value >= 72 && value <= 74) + if (value >= 99 && value <= 101) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Flax[Harvest,Inspect,Guide] 58839,58839,58839 + return new PatchState(Produce.FLAX, CropState.HARVESTABLE, 101 - value); } - if (value >= 75 && value <= 79) + if (value >= 102 && value <= 103) { - // Asgarnian Hops[Inspect,Guide] 8160,8161,8162,8163,8164 - return new PatchState(Produce.ASGARNIAN, CropState.GROWING, value - 75); + // Diseased Flax[Cure,Inspect,Guide] 58843,58844 + return new PatchState(Produce.FLAX, CropState.DISEASED, value - 101); } - if (value >= 80 && value <= 82) + if (value >= 104 && value <= 107) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Hemp[Inspect,Guide] 58847,58848,58849,58850 + return new PatchState(Produce.HEMP, CropState.GROWING, value - 104); } - if (value >= 83 && value <= 88) + if (value >= 108 && value <= 110) { - // Yanillian Hops[Inspect,Guide] 8295,8296,8297,8298,8299,8300 - return new PatchState(Produce.YANILLIAN, CropState.GROWING, value - 83); + // Hemp[Harvest,Inspect,Guide] 58851,58851,58851 + return new PatchState(Produce.HEMP, CropState.HARVESTABLE, 110 - value); } - if (value >= 89 && value <= 91) + if (value >= 111 && value <= 113) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Diseased Hemp[Cure,Inspect,Guide] 58856,58857,58858 + return new PatchState(Produce.HEMP, CropState.DISEASED, value - 110); } - if (value >= 92 && value <= 98) + if (value >= 114 && value <= 118) { - // Krandorian Hops[Inspect,Guide] 8219,8220,8221,8222,8223,8224,8225 - return new PatchState(Produce.KRANDORIAN, CropState.GROWING, value - 92); + // Cotton[Inspect,Guide] 58862,58863,58864,58865,58866 + return new PatchState(Produce.COTTON, CropState.GROWING, value - 114); } - if (value >= 99 && value <= 101) + if (value >= 119 && value <= 121) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Cotton[Harvest,Inspect,Guide] 58867,58867,58867 + return new PatchState(Produce.COTTON, CropState.HARVESTABLE, 121 - value); } - if (value >= 102 && value <= 109) + if (value >= 122 && value <= 125) { - // Wildblood Hops[Inspect,Guide] 8266,8267,8268,8269,8270,8271,8272,8273 - return new PatchState(Produce.WILDBLOOD, CropState.GROWING, value - 102); + // Diseased Cotton[Cure,Inspect,Guide] 58873,58874,58875,58876 + return new PatchState(Produce.COTTON, CropState.DISEASED, value - 121); } - if (value >= 110 && value <= 112) + if (value >= 126 && value <= 131) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210,8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 113 && value <= 116) + if (value >= 132 && value <= 135) { - // Barley[Inspect,Guide] 8197,8198,8199,8200 - return new PatchState(Produce.BARLEY, CropState.GROWING, value - 113); + // Hammerstone Hops[Inspect,Guide] 8182,8183,8184,8185 + return new PatchState(Produce.HAMMERSTONE, CropState.GROWING, value - 132); } - if (value >= 117 && value <= 119) + if (value >= 136 && value <= 138) { // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 120 && value <= 124) + if (value >= 139 && value <= 141) { - // Jute[Inspect,Guide] 8244,8245,8246,8247,8248 - return new PatchState(Produce.JUTE, CropState.GROWING, value - 120); + // Dead Hammerstone Hops[Clear,Inspect,Guide] 8189,8190,8191 + return new PatchState(Produce.HAMMERSTONE, CropState.DEAD, value - 138); } - if (value >= 125 && value <= 132) + if (value >= 142 && value <= 146) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210,8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Asgarnian Hops[Inspect,Guide] 8160,8161,8162,8163,8164 + return new PatchState(Produce.ASGARNIAN, CropState.GROWING, value - 142); } - if (value >= 133 && value <= 135) + if (value >= 147 && value <= 149) { - // Diseased Hammerstone Hops[Cure,Inspect,Guide] 8186,8187,8188 - return new PatchState(Produce.HAMMERSTONE, CropState.DISEASED, value - 132); + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 + return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 136 && value <= 139) + if (value >= 150 && value <= 153) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Dead Asgarnian Hops[Clear,Inspect,Guide] 8169,8170,8171,8172 + return new PatchState(Produce.ASGARNIAN, CropState.DEAD, value - 149); } - if (value >= 140 && value <= 143) + if (value >= 154 && value <= 159) { - // Diseased Asgarnian Hops[Cure,Inspect,Guide] 8165,8166,8167,8168 - return new PatchState(Produce.ASGARNIAN, CropState.DISEASED, value - 139); + // Yanillian Hops[Inspect,Guide] 8295,8296,8297,8298,8299,8300 + return new PatchState(Produce.YANILLIAN, CropState.GROWING, value - 154); } - if (value >= 144 && value <= 147) + if (value >= 160 && value <= 162) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 148 && value <= 152) + if (value >= 163 && value <= 167) { - // Diseased Yanillian Hops[Cure,Inspect,Guide] 8301,8302,8303,8304,8305 - return new PatchState(Produce.YANILLIAN, CropState.DISEASED, value - 147); + // Dead Yanillian Hops[Clear,Inspect,Guide] 8306,8307,8308,8309,8310 + return new PatchState(Produce.YANILLIAN, CropState.DEAD, value - 162); } - if (value >= 153 && value <= 156) + if (value >= 168 && value <= 174) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Krandorian Hops[Inspect,Guide] 8219,8220,8221,8222,8223,8224,8225 + return new PatchState(Produce.KRANDORIAN, CropState.GROWING, value - 168); } - if (value >= 157 && value <= 162) + if (value >= 175 && value <= 177) { - // Diseased Krandorian Hops[Cure,Inspect,Guide] 8226,8227,8228,8229,8230,8231 - return new PatchState(Produce.KRANDORIAN, CropState.DISEASED, value - 156); + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 + return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 163 && value <= 166) + if (value >= 178 && value <= 183) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Dead Krandorian Hops[Clear,Inspect,Guide] 8232,8233,8234,8235,8236,8237 + return new PatchState(Produce.KRANDORIAN, CropState.DEAD, value - 177); } - if (value >= 167 && value <= 173) + if (value >= 184 && value <= 191) { - // Diseased Wildblood Hops[Cure,Inspect,Guide] 8274,8275,8276,8277,8278,8279,8280 - return new PatchState(Produce.WILDBLOOD, CropState.DISEASED, value - 166); + // Wildblood Hops[Inspect,Guide] 8266,8267,8268,8269,8270,8271,8272,8273 + return new PatchState(Produce.WILDBLOOD, CropState.GROWING, value - 184); } - if (value >= 174 && value <= 177) + if (value >= 192 && value <= 194) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 178 && value <= 180) + if (value >= 195 && value <= 201) { - // Diseased Barley[Cure,Inspect,Guide] 8201,8202,8203 - return new PatchState(Produce.BARLEY, CropState.DISEASED, value - 177); + // Dead Wildblood Hops[Clear,Inspect,Guide] 8281,8282,8283,8284,8285,8286,8287 + return new PatchState(Produce.WILDBLOOD, CropState.DEAD, value - 194); } - if (value == 181) + if (value >= 202 && value <= 205) { - // Hops Patch[Rake,Inspect,Guide] 8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Barley[Inspect,Guide] 8197,8198,8199,8200 + return new PatchState(Produce.BARLEY, CropState.GROWING, value - 202); } - if (value >= 183 && value <= 184) + if (value >= 206 && value <= 208) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210 + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 185 && value <= 188) - { - // Diseased Jute[Cure,Inspect,Guide] 8249,8250,8251,8252 - return new PatchState(Produce.JUTE, CropState.DISEASED, value - 184); - } - if (value >= 189 && value <= 196) + if (value >= 209 && value <= 211) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210,8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Dead Barley[Clear,Inspect,Guide] 8204,8205,8206 + return new PatchState(Produce.BARLEY, CropState.DEAD, value - 208); } - if (value >= 197 && value <= 199) + if (value >= 212 && value <= 216) { - // Dead Hammerstone Hops[Clear,Inspect,Guide] 8189,8190,8191 - return new PatchState(Produce.HAMMERSTONE, CropState.DEAD, value - 196); + // Jute[Inspect,Guide] 8244,8245,8246,8247,8248 + return new PatchState(Produce.JUTE, CropState.GROWING, value - 212); } - if (value >= 200 && value <= 203) + if (value >= 217 && value <= 219) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 204 && value <= 207) + if (value >= 220 && value <= 223) { - // Dead Asgarnian Hops[Clear,Inspect,Guide] 8169,8170,8171,8172 - return new PatchState(Produce.ASGARNIAN, CropState.DEAD, value - 203); + // Dead Jute[Clear,Inspect,Guide] 8253,8254,8255,8256 + return new PatchState(Produce.JUTE, CropState.DEAD, value - 219); } - if (value >= 208 && value <= 211) + if (value >= 224 && value <= 226) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Flax[Inspect,Guide] 58840,58841,58842 + return new PatchState(Produce.FLAX, CropState.GROWING, value - 224); } - if (value >= 212 && value <= 216) + if (value >= 227 && value <= 229) { - // Dead Yanillian Hops[Clear,Inspect,Guide] 8306,8307,8308,8309,8310 - return new PatchState(Produce.YANILLIAN, CropState.DEAD, value - 211); + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 + return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 217 && value <= 220) + if (value >= 230 && value <= 231) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Dead Flax[Clear,Inspect,Guide] 58845,58846 + return new PatchState(Produce.FLAX, CropState.DEAD, value - 229); } - if (value >= 221 && value <= 226) + if (value >= 232 && value <= 235) { - // Dead Krandorian Hops[Clear,Inspect,Guide] 8232,8233,8234,8235,8236,8237 - return new PatchState(Produce.KRANDORIAN, CropState.DEAD, value - 220); + // Hemp[Inspect,Guide] 58852,58853,58854,58855 + return new PatchState(Produce.HEMP, CropState.GROWING, value - 232); } - if (value >= 227 && value <= 230) + if (value >= 236 && value <= 238) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 231 && value <= 237) + if (value >= 239 && value <= 240) { - // Dead Wildblood Hops[Clear,Inspect,Guide] 8281,8282,8283,8284,8285,8286,8287 - return new PatchState(Produce.WILDBLOOD, CropState.DEAD, value - 230); + // Dead Hemp[Clear,Inspect,Guide] 58859,58860 + return new PatchState(Produce.HEMP, CropState.DEAD, value - 238); } - if (value >= 238 && value <= 241) + if (value == 241) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 - return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + // Dead Hemp[Inspect,Guide] 58861 + return new PatchState(Produce.HEMP, CropState.DEAD, 3); } - if (value >= 242 && value <= 244) + if (value >= 242 && value <= 246) { - // Dead Barley[Clear,Inspect,Guide] 8204,8205,8206 - return new PatchState(Produce.BARLEY, CropState.DEAD, value - 241); + // Cotton[Inspect,Guide] 58868,58869,58870,58871,58872 + return new PatchState(Produce.COTTON, CropState.GROWING, value - 242); } - if (value >= 245 && value <= 248) + if (value >= 247 && value <= 249) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210,8210 + // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } - if (value >= 249 && value <= 252) + if (value >= 250 && value <= 253) { - // Dead Jute[Clear,Inspect,Guide] 8253,8254,8255,8256 - return new PatchState(Produce.JUTE, CropState.DEAD, value - 248); + // Dead Cotton[Clear,Inspect,Guide] 58877,58878,58879,58880 + return new PatchState(Produce.COTTON, CropState.DEAD, value - 249); } - if (value >= 253 && value <= 255) + if (value >= 254 && value <= 255) { - // Hops Patch[Rake,Inspect,Guide] 8210,8210,8210 + // Hops Patch[Rake,Inspect,Guide] 8210,8210 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } return null; @@ -2165,9 +2190,99 @@ PatchState forVarbitValue(int value) // Dead Mahogany[Clear,Inspect,Guide] 30428,30429,30430,30431,30432,30433,30434 return new PatchState(Produce.MAHOGANY, CropState.DEAD, value - 47); } - if (value >= 55 && value <= 255) + if (value >= 55 && value <= 62) + { + // Camphor sapling,Camphor tree[Inspect,Guide] 58712,58713,58714,58715,58716,58717,58718,58719 + return new PatchState(Produce.CAMPHOR, CropState.GROWING, value - 55); + } + if (value == 63) + { + // Camphor tree[Check-health,Inspect,Guide] 58722 + return new PatchState(Produce.CAMPHOR, CropState.GROWING, Produce.CAMPHOR.getStages() - 1); + } + if (value == 64) + { + // Camphor tree[Chop down,Inspect,Guide] 58723 + return new PatchState(Produce.CAMPHOR, CropState.HARVESTABLE, 0); + } + if (value == 65) + { + // Camphor tree stump[Clear,Inspect,Guide] 58724 + return new PatchState(Produce.CAMPHOR, CropState.HARVESTABLE, 0); + } + if (value >= 66 && value <= 72) + { + // Diseased Camphor[Prune,Inspect,Guide] 58725,58726,58727,58728,58729,58730,58731 + return new PatchState(Produce.CAMPHOR, CropState.DISEASED, value - 65); + } + if (value >= 73 && value <= 79) + { + // Dead Camphor[Clear,Inspect,Guide] 58734,58735,58736,58737,58738,58739,58740 + return new PatchState(Produce.CAMPHOR, CropState.DEAD, value - 72); + } + if (value >= 80 && value <= 87) + { + // Ironwood sapling,Ironwood tree[Inspect,Guide] 58743,58744,58745,58746,58747,58748,58749,58750 + return new PatchState(Produce.IRONWOOD, CropState.GROWING, value - 80); + } + if (value == 88) + { + // Ironwood tree[Check-health,Inspect,Guide] 58753 + return new PatchState(Produce.IRONWOOD, CropState.GROWING, Produce.IRONWOOD.getStages() - 1); + } + if (value == 89) + { + // Ironwood tree[Chop down,Inspect,Guide] 58754 + return new PatchState(Produce.IRONWOOD, CropState.HARVESTABLE, 0); + } + if (value == 90) + { + // Ironwood tree stump[Clear,Inspect,Guide] 58755 + return new PatchState(Produce.IRONWOOD, CropState.HARVESTABLE, 0); + } + if (value >= 91 && value <= 97) + { + // Diseased Ironwood[Prune,Inspect,Guide] 58756,58757,58758,58759,58760,58761,58762 + return new PatchState(Produce.IRONWOOD, CropState.DISEASED, value - 90); + } + if (value >= 98 && value <= 104) + { + // Dead Ironwood[Clear,Inspect,Guide] 58765,58766,58767,58768,58769,58770,58771 + return new PatchState(Produce.IRONWOOD, CropState.DEAD, value - 97); + } + if (value >= 105 && value <= 113) + { + // Rosewood sapling,Rosewood tree[Inspect,Guide] 58774,58775,58776,58777,58778,58779,58780,58781,58782 + return new PatchState(Produce.ROSEWOOD, CropState.GROWING, value - 105); + } + if (value == 114) + { + // Rosewood tree[Check-health,Inspect,Guide] 58784 + return new PatchState(Produce.ROSEWOOD, CropState.GROWING, Produce.ROSEWOOD.getStages() - 1); + } + if (value == 115) + { + // Rosewood tree[Chop down,Inspect,Guide] 58785 + return new PatchState(Produce.ROSEWOOD, CropState.HARVESTABLE, 0); + } + if (value == 116) + { + // Rosewood tree stump[Clear,Inspect,Guide] 58786 + return new PatchState(Produce.ROSEWOOD, CropState.HARVESTABLE, 0); + } + if (value >= 117 && value <= 124) { - // Tree patch[Rake,Inspect,Guide] 30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479 + // Diseased Rosewood[Prune,Inspect,Guide] 58787,58788,58789,58790,58791,58792,58793,58794 + return new PatchState(Produce.ROSEWOOD, CropState.DISEASED, value - 116); + } + if (value >= 125 && value <= 132) + { + // Dead Rosewood[Clear,Inspect,Guide] 58796,58797,58798,58799,58800,58801,58802,58803 + return new PatchState(Produce.ROSEWOOD, CropState.DEAD, value - 124); + } + if (value >= 133 && value <= 255) + { + // Tree patch[Rake,Inspect,Guide] 30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479,30479 return new PatchState(Produce.WEEDS, CropState.GROWING, 3); } return null; @@ -2427,6 +2542,84 @@ PatchState forVarbitValue(int value) return null; } }, + CORAL(Tab.SPECIAL, "Coral", false) + { + @Override + PatchState forVarbitValue(int value) + { + if (value >= 0 && value <= 3) + { + // Coral nursery[Inspect,Guide] 58676,58676,58676,58676 + return new PatchState(Produce.WEEDS, CropState.GROWING, 3); + } + if (value >= 4 && value <= 7) + { + // Elkhorn coral[Inspect,Guide] 58677,58678,58679,58680 + return new PatchState(Produce.ELKHORN_CORAL, CropState.GROWING, value - 4); + } + if (value == 8) + { + // Elkhorn coral[Collect,Inspect,Guide] 58681 + return new PatchState(Produce.ELKHORN_CORAL, CropState.GROWING, 4); + } + if (value >= 9 && value <= 11) + { + // Diseased elkhorn coral[Prune,Inspect,Guide] 58692,58693,58694 + return new PatchState(Produce.ELKHORN_CORAL, CropState.DISEASED, value - 8); + } + if (value >= 12 && value <= 14) + { + // Dead coral[Clear,Inspect,Guide] 58701,58702,58703 + return new PatchState(Produce.ELKHORN_CORAL, CropState.DEAD, value - 11); + } + if (value >= 15 && value <= 18) + { + // Pillar coral[Inspect,Guide] 58682,58683,58684,58685 + return new PatchState(Produce.PILLAR_CORAL, CropState.GROWING, value - 15); + } + if (value == 19) + { + // Pillar coral[Collect,Inspect,Guide] 58686 + return new PatchState(Produce.PILLAR_CORAL, CropState.GROWING, 4); + } + if (value >= 20 && value <= 22) + { + // Diseased pillar coral[Prune,Inspect,Guide] 58695,58696,58697 + return new PatchState(Produce.PILLAR_CORAL, CropState.DISEASED, value - 19); + } + if (value >= 23 && value <= 25) + { + // Dead coral[Clear,Inspect,Guide] 58704,58705,58706 + return new PatchState(Produce.PILLAR_CORAL, CropState.DEAD, value - 22); + } + if (value >= 26 && value <= 29) + { + // Umbral coral[Inspect,Guide] 58687,58688,58689,58690 + return new PatchState(Produce.UMBRAL_CORAL, CropState.GROWING, value - 26); + } + if (value == 30) + { + // Umbral coral[Collect,Inspect,Guide] 58691 + return new PatchState(Produce.UMBRAL_CORAL, CropState.GROWING, 4); + } + if (value >= 31 && value <= 33) + { + // Diseased umbral coral[Prune,Inspect,Guide] 58698,58699,58700 + return new PatchState(Produce.UMBRAL_CORAL, CropState.DISEASED, value - 30); + } + if (value >= 34 && value <= 36) + { + // Dead coral[Clear,Inspect,Guide] 58707,58708,58709 + return new PatchState(Produce.UMBRAL_CORAL, CropState.DEAD, value - 33); + } + if (value >= 37 && value <= 255) + { + // Coral nursery[Inspect,Guide] 58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676,58676 + return new PatchState(Produce.WEEDS, CropState.GROWING, 0); + } + return null; + } + }, SEAWEED(Tab.SPECIAL, "Seaweed", false) { @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/PaymentTracker.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/PaymentTracker.java index dc735014245..46731a69ae6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/PaymentTracker.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/PaymentTracker.java @@ -56,7 +56,8 @@ public class PaymentTracker "That'll do nicely, sir. Leave it with me - I'll make sure
that patch grows for you.", "That'll do nicely, madam. Leave it with me - I'll make
sure that patch grows for you.", "That'll do nicely. Leave it with me - I'll make sure that
patch grows for you.", - "That'll do nicely, iknami. Leave it with me - I'll make
sure that patch grows for you." + "That'll do nicely, iknami. Leave it with me - I'll make
sure that patch grows for you.", + "Alright, leave it with me. I'll look after that nursery for
you." ); private final Client client; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/Produce.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/Produce.java index 1fe735e4788..599010335c5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/Produce.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/Produce.java @@ -69,8 +69,11 @@ public enum Produce ASGARNIAN("Asgarnian", PatchImplementation.HOPS, ItemID.ASGARNIAN_HOPS, 10, 6, 0, 3), JUTE("Jute", PatchImplementation.HOPS, ItemID.JUTE_FIBRE, 10, 6, 0, 3), YANILLIAN("Yanillian", PatchImplementation.HOPS, ItemID.YANILLIAN_HOPS, 10, 7, 0, 3), + FLAX("Flax", PatchImplementation.HOPS, ItemID.FLAX, 20, 4, 0, 3), KRANDORIAN("Krandorian", PatchImplementation.HOPS, ItemID.KRANDORIAN_HOPS, 10, 8, 0, 3), WILDBLOOD("Wildblood", PatchImplementation.HOPS, ItemID.WILDBLOOD_HOPS, 10, 9, 0, 3), + HEMP("Hemp", PatchImplementation.HOPS, ItemID.HEMP, 20, 5, 0, 3), + COTTON("Cotton", PatchImplementation.HOPS, ItemID.COTTON_BOLL, 20, 6, 0, 3), // Herb crops GUAM("Guam", PatchImplementation.HERB, ItemID.GUAM_LEAF, 20, 5, 0, 3), @@ -115,12 +118,20 @@ public enum Produce // Hardwood TEAK("Teak", PatchImplementation.HARDWOOD_TREE, ItemID.TEAK_LOGS, 640, 8), MAHOGANY("Mahogany", PatchImplementation.HARDWOOD_TREE, ItemID.MAHOGANY_LOGS, 640, 9), + CAMPHOR("Camphor", PatchImplementation.HARDWOOD_TREE, ItemID.CAMPHOR_LOGS, 640, 9), + IRONWOOD("Ironwood", PatchImplementation.HARDWOOD_TREE, ItemID.IRONWOOD_LOGS, 640, 9), + ROSEWOOD("Rosewood", PatchImplementation.HARDWOOD_TREE, ItemID.ROSEWOOD_LOGS, 640, 10), // Anima ATTAS("Attas", PatchImplementation.ANIMA, ItemID.ANIMA_ATTAS, 640, 9), IASOR("Iasor", PatchImplementation.ANIMA, ItemID.ANIMA_IASOR, 640, 9), KRONOS("Kronos", PatchImplementation.ANIMA, ItemID.ANIMA_KRONOS, 640, 9), + // Coral + ELKHORN_CORAL("Elkhorn", PatchImplementation.CORAL, ItemID.CORAL_ELKHORN, 40, 5), + PILLAR_CORAL("Pillar", PatchImplementation.CORAL, ItemID.CORAL_PILLAR, 40, 5), + UMBRAL_CORAL("Umbral", PatchImplementation.CORAL, ItemID.CORAL_UMBRAL, 40, 5), + // Special crops SEAWEED("Seaweed", PatchImplementation.SEAWEED, ItemID.GIANT_SEAWEED, 10, 5, 0, 4), GRAPE("Grape", PatchImplementation.GRAPES, ItemID.GRAPES, 5, 8, 0, 5), From d5d3d0477b371368947162e0309886900a3397d1 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sun, 16 Nov 2025 07:08:25 -0700 Subject: [PATCH 14/18] rl-client: add various sailing data --- .../runelite/client/game/AgilityShortcut.java | 14 +++++++++++-- .../net/runelite/client/game/FishingSpot.java | 20 ++++++++++++++----- .../client/plugins/fairyring/FairyRing.java | 2 ++ .../plugins/worldmap/FairyRingLocation.java | 2 ++ .../worldmap/TransportationPointLocation.java | 19 ++++++++++++++++-- 5 files changed, 48 insertions(+), 9 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/AgilityShortcut.java b/runelite-client/src/main/java/net/runelite/client/game/AgilityShortcut.java index 2cab92eeb80..ba7eac6eea8 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/AgilityShortcut.java +++ b/runelite-client/src/main/java/net/runelite/client/game/AgilityShortcut.java @@ -62,8 +62,6 @@ public enum AgilityShortcut ObjectID.FOSSIL_UNDERWATER_DEEPWATER_AGIHOLE, ObjectID.FOSSIL_UNDERWATER_CAVE_OBSTACLE3, ObjectID.FOSSIL_GALLEON_SIDE_LVL1_OBSTACLE, ObjectID.FOSSIL_GALLEON_SIDELVL1_INTERIOR_OBSTACLE, ObjectID.FOSSIL_UNDERWATER_CAVE_OBSTACLE2, ObjectID.FOSSIL_UNDERWATER_CAVE_OBSTACLE1, ObjectID.FOSSIL_UNDERWATER_DEEPWATER_HOLE, ObjectID.FOSSIL_UNDERWATER_DRIFTNET_CURTAIN, // Tree Gnome Village ObjectID.TREEGNOMELOOSERAILING, - // Burgh de Rott - ObjectID.BURGH_AGILITY_SHORTCUT_FENCE, // Taverley ObjectID.FULLSTYLE, // Asgarnian Ice Dungeon @@ -128,6 +126,7 @@ public boolean matches(Client client, TileObject object) NEMUS_RETREAT_WALL_SOUTH_WEST(24, "Broken Wall", new WorldPoint(1368, 3295, 0), ObjectID.AV_LOWWALL_CLIMB_1), NEMUS_RETREAT_WALL_EAST(24, "Broken Wall", new WorldPoint(1389, 3309, 0), ObjectID.AV_LOWWALL_CLIMB_2), EAGLES_PEAK_ROCK_CLIMB(25, "Rock Climb", new WorldPoint(2320, 3499, 0), ObjectID.EP_CLIMBING_ROCKS01), + BURGH_AGILITY_SHORTCUT_FENCE(25, "Broken Fence", new WorldPoint(3470, 3219, 0), ObjectID.BURGH_AGILITY_SHORTCUT_FENCE), FALADOR_UNDERWALL_TUNNEL(26, "Underwall Tunnel", new WorldPoint(2947, 3313, 0), ObjectID.FALADOR_SC_CASTLEWALL_SOUTH, ObjectID.FALADOR_SC_CASTLEWALL_NORTH), KOUREND_CATACOMBS_STONES_NORTH(28, "Stones", new WorldPoint(1613, 10071, 0), ObjectID.ZEAH_CATA_STEPSTONE), KOUREND_CATACOMBS_STONES_SOUTH(28, "Stones", new WorldPoint(1609, 10060, 0), ObjectID.ZEAH_CATA_STEPSTONE), @@ -193,20 +192,25 @@ public boolean matches(Client client, TileObject object) ARCEUUS_ESSENCE_MINE_BOULDER(49, "Boulder", new WorldPoint(1774, 3888, 0), ObjectID.ARCHEUUS_RUNESTONE_SHORTCUT_BOULDER), MORYTANIA_STEPPING_STONE(50, "Stepping Stone", new WorldPoint(3418, 3326, 0), ObjectID.FAIRY_ISLAND_NATURE_GROTTO_SHORTCUT), SHAMAN_CAVES_JAGGED_WALL(50, "Jagged wall", null, ObjectID.CRUMBLED_WALL), + GREAT_CONCH_CLIFF_SHORTCUT_TOWN(50, "Rock Climb", new WorldPoint(3180, 2433, 0), ObjectID.GREAT_CONCH_CLIFF_SHORTCUT_TOWN_BOTTOM, ObjectID.GREAT_CONCH_CLIFF_SHORTCUT_TOWN_TOP), VARROCK_SEWERS_PIPE_SQUEEZE(51, "Pipe Squeeze", new WorldPoint(3152, 9905, 0), ObjectID.VARROCK_DUNGEON_PIPE_SC), ARCEUUS_ESSENCE_MINE_EAST_SCRAMBLE(52, "Rock Climb", new WorldPoint(1770, 3851, 0), ObjectID.ARCHEUUS_RUNESTONE_SHORTCUT_MIDGREY_TOP, ObjectID.ARCHEUUS_RUNESTONE_SHORTCUT_MIDGREY_BOTTOM), + ANGLERS_RETREAT_SHORTCUT(52, "Rocks", new WorldPoint(2475, 2729, 0), ObjectID.ANGLERS_RETREAT_SHORTCUT), + GREAT_CONCH_CLIFF_SHORTCUT_EAST_1(52, "Rock Climb", new WorldPoint(3235, 2388, 0), ObjectID.GREAT_CONCH_CLIFF_SHORTCUT_EAST_1_BOTTOM, ObjectID.GREAT_CONCH_CLIFF_SHORTCUT_EAST_1_TOP), KARAMJA_VOLCANO_GRAPPLE_NORTH(53, "Grapple Rock", new WorldPoint(2873, 3143, 0), ObjectID.XBOWS_JUNGLETREE_KARAMJA_BASIC), KARAMJA_VOLCANO_GRAPPLE_SOUTH(53, "Grapple Rock", new WorldPoint(2874, 3128, 0), ObjectID.XBOWS_JUNGLETREE_KARAMJA_BASIC), ALDARIN_ROCKS(54, "Rocks", new WorldPoint(1340, 2916, 0), ObjectID.ALDARIN_CLIFF_SHORTCUT_TOP, ObjectID.ALDARIN_CLIFF_SHORTCUT_BOTTOM), MOTHERLODE_MINE_WALL_EAST(54, "Wall", new WorldPoint(3124, 9703, 0), ObjectID.MOTHERLODE_SHORTCUT), MOTHERLODE_MINE_WALL_WEST(54, "Wall", new WorldPoint(3118, 9702, 0), ObjectID.MOTHERLODE_SHORTCUT), MISCELLANIA_DOCK_STEPPING_STONE(55, "Stepping Stone", new WorldPoint(2572, 3862, 0), ObjectID.MISC_DIARY_STEPPINGSTONE), + GREAT_CONCH_CLIFF_SHORTCUT_SOUTHEAST_BOTTOM(55, "Rock Climb", new WorldPoint(3272, 2330, 0), ObjectID.GREAT_CONCH_CLIFF_SHORTCUT_SOUTHEAST_BOTTOM, ObjectID.GREAT_CONCH_CLIFF_SHORTCUT_SOUTHEAST_TOP), TEMPLE_OF_EYE_RUBBLE(56, "Rubble", null, ObjectID.GOTR_AGILITY_SHORTCUT_TOP, ObjectID.GOTR_AGILITY_SHORTCUT_BOTTOM), BRIMHAVEN_DUNGEON_EAST_STEPPING_STONES_NORTH(56, "Stepping Stones", new WorldPoint(2685, 9547, 0), ObjectID.KARAMJA_DUNGEON_STEPPING_STONE_END), BRIMHAVEN_DUNGEON_EAST_STEPPING_STONES_SOUTH(56, "Stepping Stones", new WorldPoint(2693, 9529, 0), ObjectID.KARAMJA_DUNGEON_STEPPING_STONE_END), ISAFDAR_FOREST_OBSTACLES(56, "Trap", null, ObjectID.REGICIDE_CROSS_OVER2, ObjectID.REGICIDE_CROSS_OVER3, ObjectID.REGICIDE_CROSS_OVER2_TYRAS_CAMP, ObjectID.REGICIDE_CROSS_OVER1_TYRAS_CAMP, ObjectID.REGICIDE_CROSS_OVER1, ObjectID.REGICIDE_PITFALL_CORNER, ObjectID.REGICIDE_PITFALL_MID, ObjectID.REGICIDE_PITFALL_SIDE, ObjectID.REGICIDE_TRAP_WOODSPRING, ObjectID.REGICIDE_ROCK1_TRAP, ObjectID.REGICIDE_TRAP_TRIPWIRE), RELEKKA_EAST_FENCE(57, "Fence", new WorldPoint(2688, 3697, 0), ObjectID.VIKING_PIKE_DEFENCE_BROKEN), YANILLE_DUNGEON_MONKEY_BARS(57, "Monkey Bars", null, ObjectID.MONKEYBARS_END2), + GREAT_CONCH_CLIFF_SHORTCUT_EAST_2(57, "Rock Climb", new WorldPoint(3256, 2397, 0), ObjectID.GREAT_CONCH_CLIFF_SHORTCUT_EAST_2_BOTTOM, ObjectID.GREAT_CONCH_CLIFF_SHORTCUT_EAST_2_TOP), PHASMATYS_ECTOPOOL_SHORTCUT(58, "Weathered Wall", null , ObjectID.ECTOPOOL_SC_WALLCLIMB, ObjectID.ECTOPOOL_SC_RAILDOWN), ELVEN_OVERPASS_CLIFF_SCRAMBLE(59, "Rocks", new WorldPoint(2345, 3300, 0), ObjectID.ELVES_OVERPASS_SC_ROCKS_TOP, ObjectID.ELVES_OVERPASS_SC_ROCKS_BOTTOM), ELVEN_OVERPASS_CLIFF_SCRAMBLE_PRIFDDINAS(59, "Rocks", new WorldPoint(3369, 6052, 0), ObjectID.ELVES_OVERPASS_SC_ROCKS_TOP, ObjectID.ELVES_OVERPASS_SC_ROCKS_BOTTOM), @@ -221,6 +225,9 @@ public boolean matches(Client client, TileObject object) SLAYER_TOWER_MEDIUM_CHAIN_FIRST(61, "Spikey Chain (Floor 1)", new WorldPoint(3421, 3550, 0), ObjectID.SLAYERTOWER_SC_CHAINBOTTOM), SLAYER_TOWER_MEDIUM_CHAIN_SECOND(61, "Spikey Chain (Floor 2)", new WorldPoint(3420, 3551, 0), ObjectID.SLAYERTOWER_SC_CHAINTOP), SLAYER_DUNGEON_CREVICE(61, "Narrow Crevice", new WorldPoint(2729, 10008, 0), ObjectID.SLAYER_DUNGEON_2_SC_WALL_CRACK), + GREAT_CONCH_STEPPING_STONE(61, "Stepping Stone", new WorldPoint(3208, 2394, 0), ObjectID.GREAT_CONCH_STEPPING_STONE), + LAGUNA_AURORAE_SHORTCUT_1(61, "Rocks", new WorldPoint(1152, 2804, 0), ObjectID.LAGUNA_AURORAE_SHORTCUT_1), + LAGUNA_AURORAE_SHORTCUT_2(61, "Rocks", new WorldPoint(1142, 2803, 0), ObjectID.LAGUNA_AURORAE_SHORTCUT_2), MOUNT_KARUULM_UPPER(62, "Rocks", new WorldPoint(1322, 3791, 0), ObjectID.MOUNT_KARUULM_SHORTCUT_ROCKS), NECROPOLIS_STEPPING_STONE_NORTH(62, "Stepping Stone", new WorldPoint(3293, 2706, 0), ObjectID.NECROPOLIS_STEPPING_STONE_2), NECROPOLIS_STEPPING_STONES_SOUTH(62, "Stepping Stones", new WorldPoint(3291, 2700, 0), ObjectID.NECROPOLIS_STEPPING_STONE_1), @@ -308,9 +315,12 @@ public boolean matches(Client client, TileObject object) ASGARNIA_ICE_DUNGEON_ADEPT_WEST(82, "Tunnel", new WorldPoint(3012, 9549, 0), ObjectID.CAVEWALL_SHORTCUT_WYVERN_WEST), ASGARNIA_ICE_DUNGEON_ADEPT_EAST(82, "Tunnel", new WorldPoint(3022, 9553, 0), ObjectID.CAVEWALL_SHORTCUT_WYVERN_EAST), COF_SHORTCUT_TOP(83, "Chain", new WorldPoint(1307, 10076, 0), new WorldPoint(1436, 10075, 2), ObjectID.COF_SHORTCUT_TOP), + GRIMSTONE_SHORTCUT_SOUTH(83, "Ledge", new WorldPoint(2901, 10454, 0), ObjectID.GRIMSTONE_SHORTCUT_SOUTH), IORWERTHS_DUNGEON_SOUTHERN_SHORTCUT_EAST(84, "Tight Gap", new WorldPoint(3241, 12420, 0), ObjectID.PRIF_SLAYER_DUNGEON_SHORTCUT_2A), IORWERTHS_DUNGEON_SOUTHERN_SHORTCUT_WEST(84, "Tight Gap", new WorldPoint(3231, 12420, 0), ObjectID.PRIF_SLAYER_DUNGEON_SHORTCUT_2B), CRANDOR_ROCK_CLIMB(84, "Rocks", new WorldPoint(2831, 3252, 0), ObjectID.CRANDOR_SHORTCUT_TOP, ObjectID.CRANDOR_SHORTCUT_BOTTOM), + DEEPFIN_CAVE_SHORTCUT(84, "Crevice", new WorldPoint(2081, 9203, 0), ObjectID.DEEPFIN_CAVE_SHORTCUT), + DEEPFIN_CAVE_SHORTCUT_ICON(84, "Crevice", new WorldPoint(2075, 9203, 0)), ELVEN_ADVANCED_CLIFF_SCRAMBLE(85, "Rocks", new WorldPoint(2337, 3253, 0), ObjectID.ELVES_OVERPASS_SC_ROCKS_TOP, ObjectID.ELVES_OVERPASS_SC_ROCKS_BOTTOM), ELVEN_ADVANCED_CLIFF_SCRAMBLE_PRIFDDINAS(85, "Rocks", new WorldPoint(3361, 6005, 0), ObjectID.ELVES_OVERPASS_SC_ROCKS_TOP, ObjectID.ELVES_OVERPASS_SC_ROCKS_BOTTOM), WATERBIRTH_ISLAND_ROCKS(85, "Rocks", new WorldPoint(2546, 3750, 0), ObjectID.DAGANNOTH_WATERBIRTH_ROCK_CLIMB_AGILITY_SHORTCUT_BOTTOM, ObjectID.DAGANNOTH_WATERBIRTH_ROCK_CLIMB_AGILITY_SHORTCUT_TOP), diff --git a/runelite-client/src/main/java/net/runelite/client/game/FishingSpot.java b/runelite-client/src/main/java/net/runelite/client/game/FishingSpot.java index c7a02b5d1a4..daf551ef08c 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/FishingSpot.java +++ b/runelite-client/src/main/java/net/runelite/client/game/FishingSpot.java @@ -41,7 +41,7 @@ public enum FishingSpot NpcID._0_23_53_SALTFISH, NpcID._0_24_53_SALTFISH, NpcID._0_26_54_SALTFISH, NpcID._0_27_59_SALTFISH, NpcID._0_39_44_SALTFISH, NpcID._0_33_43_SALTFISH, NpcID._0_27_46_SALTFISH, NpcID._0_24_51_SALTFISH, NpcID._0_21_46_SALTFISH, - NpcID._0_20_46_SALTFISH, NpcID._0_20_47_SALTFISH + NpcID._0_20_46_SALTFISH, NpcID._0_20_47_SALTFISH, NpcID._0_47_46_SALTFISH ), LOBSTER("Lobster, Swordfish, Tuna", "Lobster", ItemID.RAW_LOBSTER, NpcID._0_40_53_RAREFISH, NpcID._0_44_53_RAREFISH, NpcID._0_45_49_RAREFISH, @@ -50,7 +50,9 @@ public enum FishingSpot NpcID._0_23_53_RAREFISH, NpcID._0_26_54_RAREFISH, NpcID._0_27_59_RAREFISH, NpcID._0_38_45_RAREFISH, NpcID._0_33_52_RAREFISH, NpcID._0_34_53_RAREFISH, NpcID._0_35_46_RAREFISH, NpcID._0_49_43_RAREFISH, NpcID._0_24_46_RAREFISH, - NpcID._0_21_44_RAREFISH + NpcID._0_21_44_RAREFISH, NpcID._0_51_37_RAREFISH, NpcID._0_49_39_RAREFISH, + NpcID._0_29_46_RAREFISH, NpcID._0_38_42_RAREFISH, NpcID._0_24_43_RAREFISH, + NpcID._0_32_49_RAREFISH, NpcID._0_33_55_RAREFISH ), SHARK("Shark, Bass", "Shark", ItemID.RAW_SHARK, NpcID._0_40_53_MEMBERFISH, NpcID._0_44_53_MEMBERFISH, NpcID._0_33_51_MEMBERFISH, @@ -60,7 +62,9 @@ public enum FishingSpot NpcID._0_18_57_MEMBERFISH, NpcID._0_19_58_MEMBERFISH, NpcID._0_18_58_MEMBERFISH, NpcID._0_33_52_MEMBERFISH, NpcID._0_34_53_MEMBERFISH, NpcID._0_35_44_MEMBERFISH, NpcID._0_24_46_MEMBERFISH, NpcID._0_27_46_MEMBERFISH, NpcID._0_24_51_MEMBERFISH, - NpcID._0_19_49_MEMBERFISH + NpcID._0_19_49_MEMBERFISH, NpcID._0_47_41_MEMBERFISH, NpcID._0_49_37_MEMBERFISH, + NpcID._0_50_38_MEMBERFISH, NpcID._0_38_42_MEMBERFISH, NpcID._0_24_43_MEMBERFISH, + NpcID._0_18_43_MEMBERFISH, NpcID._0_29_53_MEMBERFISH, NpcID._0_33_55_MEMBERFISH ), MONKFISH("Monkfish", ItemID.RAW_MONKFISH, NpcID.SWAN_FISHINGSPOT @@ -73,10 +77,12 @@ public enum FishingSpot NpcID._0_24_55_FRESHFISH, NpcID._0_25_55_FRESHFISH, NpcID._0_26_56_FRESHFISH, NpcID._0_19_57_FRESHFISH, NpcID._0_24_49_FRESHFISH, NpcID._0_25_50_FRESHFISH, NpcID._0_19_53_FRESHFISH, NpcID._0_20_52_FRESHFISH, NpcID._0_21_51_FRESHFISH, - NpcID._0_22_52_FRESHFISH + NpcID._0_22_52_FRESHFISH, NpcID._0_41_73_FRESHFISH, NpcID._0_52_149_FRESHFISH, + NpcID._0_19_48_FRESHFISH, NpcID._0_20_152_FRESHFISH, NpcID._0_50_37_FRESHFISH, + NpcID._0_49_38_FRESHFISH ), LAVA_EEL("Lava eel", ItemID.LAVA_EEL, - NpcID._0_45_152_LAVAFISH, NpcID._0_47_59_LAVAFISH + NpcID._0_45_152_LAVAFISH, NpcID._0_47_59_LAVAFISH, NpcID._0_42_138_LAVAFISH ), BARB_FISH("Sturgeon, Salmon, Trout", ItemID.BRUT_STURGEON, NpcID._0_39_54_BRUT_FISHING_SPOT, NpcID._0_19_55_BRUT_FISHING_SPOT @@ -138,6 +144,10 @@ public enum FishingSpot CIVITAS_ILLA_FORTIS_PARK("House Keys", "House Keys", ItemID.VARLAMORE_THIEVING_HOUSE_KEY, NpcID.CIVITAS_PARK_FISHINGSPOT_HMM ), + SQUID("Squid", ItemID.RAW_JUMBO_SQUID, + NpcID._0_46_35_LANTERNFISH, NpcID._0_32_40_LANTERNFISH, NpcID._0_18_42_LANTERNFISH, + NpcID._0_32_57_LANTERNFISH + ), ; private static final Map SPOTS; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRing.java b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRing.java index 76b19ee07da..137ba7e8706 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRing.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRing.java @@ -72,6 +72,7 @@ public enum FairyRing CIQ("North-west of Yanille"), CIR("North-east of the Farming Guild", "mount karuulm konar"), CIS("North of the Arceuus Library"), + CJQ("The Great Conch"), CJR("Sinclair Mansion", "falo bard"), CKP("Cosmic entity's plane"), CKQ("Aldarin"), @@ -91,6 +92,7 @@ public enum FairyRing DKP("South of Musa Point"), DKR("Edgeville, Grand Exchange"), DKS("Polar Hunter area"), + DLP("Grimstone Dungeon"), DLQ("North of Nardah"), DLR("(Island) Poison Waste south of Isafdar"), DLS("Myreque hideout under The Hollows"); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/FairyRingLocation.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/FairyRingLocation.java index 082a39f1fd6..11656ab831e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/FairyRingLocation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/FairyRingLocation.java @@ -64,6 +64,7 @@ enum FairyRingLocation CIQ("CIQ", new WorldPoint(2527, 3129, 0)), CIR("CIR", new WorldPoint(1303, 3762, 0)), CIS("CIS", new WorldPoint(1636, 3869, 0)), + CJQ("CJQ", new WorldPoint(3178, 2445, 0)), CJR("CJR", new WorldPoint(2704, 3578, 0)), // CKP - Exists in game but not on World Map CKQ("CKQ", new WorldPoint(1358, 2943, 0)), @@ -81,6 +82,7 @@ enum FairyRingLocation DKP("DKP", new WorldPoint(2899, 3113, 0)), DKR("DKR", new WorldPoint(3126, 3496, 0)), DKS("DKS", new WorldPoint(2743, 3721, 0)), + DLP("DLP", new WorldPoint(2923, 10455, 0)), DLQ("DLQ", new WorldPoint(3422, 3018, 0)), DLR("DLR", new WorldPoint(2212, 3101, 0)); // DLS - Exists in game but not on World Map diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TransportationPointLocation.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TransportationPointLocation.java index 153d96b6fce..4db8f34dabf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TransportationPointLocation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TransportationPointLocation.java @@ -53,12 +53,13 @@ enum TransportationPointLocation ISLAND_OF_STONE_TO_RELLEKKA("Ship to Rellekka", new WorldPoint(2470, 3994, 0), new WorldPoint(2621, 3692, 0)), ISLAND_TO_APE_ATOLL("Ship to Ape Atoll", new WorldPoint(2891, 2726, 0), new WorldPoint(2802, 2706, 0)), JATIZSO_TO_RELLEKKA("Ship to Rellekka", new WorldPoint(2420, 3780, 0), new WorldPoint(2639, 3710, 0)), - KARAMJA_TO_PORT_SARIM("Ship to Port Sarim", new WorldPoint(2955, 3145, 0), new WorldPoint(3029, 3218, 0)), + KARAMJA_TO_PORTSARIM_PANDEMONIUM("Ship to Port Sarim/The Pandemonium", new WorldPoint(2954, 3145, 0)), KARAMJA_TO_PORT_KHAZARD("Ship to Port Khazard", new WorldPoint(2763, 2957, 0), new WorldPoint(2653, 3166, 0)), LANDSEND_TO_PORTSARIM_PORTPISCARILIUS("Ship to Port Sarim/Port Piscarilius", new WorldPoint(1503, 3398, 0)), LUNAR_ISLE_TO_PIRATES_COVE("Ship to Pirates' Cove", new WorldPoint(2137, 3899, 0), new WorldPoint(2223, 3796, 0)), MISCELLANIA_TO_RELLEKKA("Ship to Rellekka", new WorldPoint(2579, 3846, 0), new WorldPoint(2627, 3692, 0)), NEITIZNOT_TO_RELLEKKA("Ship to Rellekka", new WorldPoint(2310, 3779, 0), new WorldPoint(2639, 3710, 0)), + PANDEMONIUM_TO_PORTSARIM_MUSA("Ship to Port Sarim/Musa Point", new WorldPoint(3065, 3003, 0)), PESTCONTROL_TO_PORTSARIM("Ship to Port Sarim", new WorldPoint(2659, 2675, 0), new WorldPoint(3039, 3201, 0)), PIRATES_COVE_TO_LUNAR_ISLE("Ship to Lunar Isle", new WorldPoint(2223, 3796, 0), new WorldPoint(2137, 3899, 0)), PIRATES_COVE_TO_RELLEKKA("Ship to Rellekka", new WorldPoint(2212, 3794, 0), new WorldPoint(2620, 3695, 0)), @@ -67,7 +68,7 @@ enum TransportationPointLocation PORT_PISCARILIUS_TO_PORTSARIM_LANDSEND("Ship to Port Sarim/Land's End", new WorldPoint(1823, 3692, 0)), PORTSARIM_TO_GREAT_KOUREND("Ship to Great Kourend", new WorldPoint(3054, 3244, 0), new WorldPoint(1823, 3692, 0)), PORTSARIM_TO_ENTRANA("Ship to Entrana", new WorldPoint(3046, 3233, 0), new WorldPoint(2833, 3334, 0)), - PORTSARIM_TO_KARAMJA("Ship to Karamja", new WorldPoint(3029, 3218, 0), new WorldPoint(2955, 3144, 0)), + PORTSARIM_TO_MUSAPOINT_PANDEMONIUM("Ship to Musa Point/The Pandemonium", new WorldPoint(3029, 3218, 0)), PORTSARIM_TO_CRANDOR("Ship to Crandor", new WorldPoint(3045, 3205, 0), new WorldPoint(2839, 3261, 0)), PORTSARIM_TO_PEST_CONTROL("Ship to Pest Control", new WorldPoint(3039, 3201, 0), new WorldPoint(2659, 2675, 0)), RELLEKKA_TO_JATIZSO_NEITIZNOT("Ship to Jatizso/Neitiznot", new WorldPoint(2639, 3710, 0)), @@ -115,6 +116,15 @@ enum TransportationPointLocation SMALL_BOAT_KASTORI("Rowboat to Tal Teklan/Gloomthorn Trail", new WorldPoint(1389, 3074, 0)), OGRE_BOAT_FELDIP("Ogre Boat to Karamja", new WorldPoint(2653, 2964, 0), new WorldPoint(2757, 3085, 0)), OGRE_BOAT_KARAMJA("Ogre Boat to Feldip", new WorldPoint(2757, 3085, 0), new WorldPoint(2653, 2964, 0)), + ROW_BOAT_CONCH_NORTH("Rowboat to The Summer Short/Eastern Coast", new WorldPoint(3196, 2532, 0), new WorldPoint(3264, 2462, 0)), + ROW_BOAT_CONCH_EAST("Rowboat to The Summer Shore/Northern Coast", new WorldPoint(3264, 2462, 0), new WorldPoint(3190, 2371, 0)), + ROW_BOAT_CONCH_SUMMER_SHORE("Rowboat to The Northern Coast/Eastern Coast", new WorldPoint(3190, 2371, 0), new WorldPoint(3196, 2532, 0)), + ROW_BOAT_TEAR_OF_THE_SOUL("Rowboat to Isle of Souls", new WorldPoint(2320, 2780, 0), new WorldPoint(2291, 2796, 0)), + ROW_BOAT_ISLE_OF_SOULS("Rowboat to Tear of the Soul", new WorldPoint(2291, 2796, 0), new WorldPoint(2320, 2780, 0)), + ROW_BOAT_ANGLERS_RETREAT("Rowboat to Corsair Cove", new WorldPoint(2469, 2725, 0), new WorldPoint(2542, 2843, 0)), + ROW_BOAT_CORSAIR_COVE("Rowboat to Anglers' Retreat", new WorldPoint(2542, 2843, 0), new WorldPoint(2469, 2725, 0)), + ROW_BOAT_VATRACHOS_ISLAND("Rowboat to Stonecutter Outpost", new WorldPoint(1876, 2974, 0), new WorldPoint(1772, 2962, 0)), + ROW_BOAT_STONECUTTER_OUTPOST("Rowboat to Vatrachos Island", new WorldPoint(1772, 2962, 0), new WorldPoint(1876, 2974, 0)), //Charter ships CHARTER_ALDARIN("Charter Ship", new WorldPoint(1455, 2968, 0)), @@ -122,6 +132,7 @@ enum TransportationPointLocation CHARTER_CATHERBY("Charter Ship", new WorldPoint(2791, 3415, 0)), CHARTER_CIVITAS_ILLA_FORTIS("Charter Ship", new WorldPoint(1743, 3136, 0)), CHARTER_CORSAIR_("Charter Ship", new WorldPoint(2589, 2851, 0)), + CHARTER_DEEPFIN_POINT("Charter Ship", new WorldPoint(1943, 2753, 0)), CHARTER_KARAMJA_NORTH("Charter Ship", new WorldPoint(2954, 3158, 0)), CHARTER_KARAMJA_EAST("Charter Ship", new WorldPoint(2999, 3032, 0)), CHARTER_KHAZARD("Charter Ship", new WorldPoint(2673, 3143, 0)), @@ -129,8 +140,10 @@ enum TransportationPointLocation CHARTER_PORT_PHASMATYS("Charter Ship", new WorldPoint(3702, 3503, 0)), CHARTER_PORTSARIM("Charter Ship", new WorldPoint(3037, 3191, 0)), CHARTER_TYRAS("Charter Ship", new WorldPoint(2141, 3123, 0)), + CHARTER_PANDEMONIUM("Charter Ship", new WorldPoint(3061, 2999, 0)), CHARTER_PRIFDDINAS("Charter Ship", new WorldPoint(2156, 3331, 0)), CHARTER_PRIFDDINAS_INSTANCE("Charter Ship", new WorldPoint(3180, 6083, 0)), + CHARTER_SUMMER_SHORE("Charter Ship", new WorldPoint(3186, 2367, 0)), CHARTER_SUNSET_COAST("Charter Ship", new WorldPoint(1513, 2970, 0)), //Ferries @@ -185,6 +198,7 @@ enum TransportationPointLocation SPIRITTREE_GNOMESTRONGHOLD("Spirit Tree", new WorldPoint(2459, 3446, 0)), SPIRITTREE_GNOMEVILLAGE("Spirit Tree", new WorldPoint(2538, 3166, 0)), SPIRITTREE_GRANDEXCHANGE("Spirit Tree", new WorldPoint(3184, 3510, 0)), + SPIRITTREE_LAGUNA_AURORAE("Spirit Tree", new WorldPoint(1202, 2787, 0)), SPIRITTREE_PRIFDDINAS("Spirit Tree", new WorldPoint(3274, 6124, 0)), //Carpets @@ -232,6 +246,7 @@ enum TransportationPointLocation WILDERNESS_LEVER_ARDOUGNE("Wilderness Lever to Deserted Keep", new WorldPoint(2559, 3309, 0), new WorldPoint(3154, 3924, 0)), WILDERNESS_LEVER_EDGEVILLE("Wilderness Lever to Deserted Keep", new WorldPoint(3088, 3474, 0), new WorldPoint(3154, 3924, 0)), WILDERNESS_LEVER_WILDERNESS("Wilderness Lever to Ardougne/Edgeville", new WorldPoint(3154, 3924, 0)), + SHIPYARD_RETURN("Return Portal", new WorldPoint(2083, 2732, 0)), //Queztals QUETZAL_ALDARIN("Quetzal", new WorldPoint(1388, 2899, 0)), From 32f2f00243025b41a0d6535ec3c5514db3e02a3c Mon Sep 17 00:00:00 2001 From: Max Weber Date: Mon, 17 Nov 2025 22:24:58 -0700 Subject: [PATCH 15/18] clues: add other sailing clues --- .../runelite/client/plugins/cluescrolls/clues/EmoteClue.java | 3 ++- .../client/plugins/cluescrolls/clues/FaloTheBardClue.java | 3 ++- .../client/plugins/cluescrolls/clues/SkillChallengeClue.java | 1 + .../client/plugins/cluescrolls/clues/emote/STASHUnit.java | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java index d70315f962c..4a9b5d2d600 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/EmoteClue.java @@ -245,7 +245,8 @@ public class EmoteClue extends ClueScroll implements LocationClueScroll new EmoteClue(ItemID.TRAIL_CLUE_BEGINNER, "Spin at Flynn's Mace Shop.", "Falador", null, new WorldPoint(2950, 3387, 0), SPIN), new EmoteClue(ItemID.TRAIL_ELITE_EMOTE_EXP17, "Salute by the Charcoal Burners. Equip a Farmer's strawhat, Shayzien platebody (5) and Pyromancer robes.", "Charcoal Burners", CHARCOAL_BURNERS, new WorldPoint(1714, 3467, 0), SALUTE, any("Farmer's strawhat", item(ItemID.TITHE_REWARD_HAT_MALE), item(ItemID.TITHE_REWARD_HAT_FEMALE)), item(ItemID.SHAYZIEN_BODY_5), item(ItemID.PYROMANCER_BOTTOM)), new EmoteClue(ItemID.TRAIL_EASY_EMOTE_SAIL, "Dance a jig behind the bar on the Pandemonium. Equip a right eye patch and a bronze scimitar.", "Pandemonium", PANDEMONIUM_BAR, new WorldPoint(3049, 2966, 0), JIG, item(ItemID.EYE_PATCH), item(ItemID.BRONZE_SCIMITAR)), - new EmoteClue(ItemID.TRAIL_ELITE_EMOTE_SAIL, "Do the crab dance by the monument on Wintumber Island. Equip a crab helmet and a crab claw.", "Wintumber Island", WINTUMBER_ISLAND, new WorldPoint(2069, 2608, 0), CRAB_DANCE, item(ItemID.HUNDRED_PIRATE_CRAB_SHELL_HELM), item(ItemID.HUNDRED_PIRATE_CRAB_SHELL_GAUNTLET))); + new EmoteClue(ItemID.TRAIL_ELITE_EMOTE_SAIL, "Do the crab dance by the monument on Wintumber Island. Equip a crab helmet and a crab claw.", "Wintumber Island", WINTUMBER_ISLAND, new WorldPoint(2069, 2608, 0), CRAB_DANCE, item(ItemID.HUNDRED_PIRATE_CRAB_SHELL_HELM), item(ItemID.HUNDRED_PIRATE_CRAB_SHELL_GAUNTLET)), + new EmoteClue(ItemID.TRAIL_CLUE_MASTER, "Bow in front of the cave on Brittle Isle. Beware of double agents! Equip a Medallion of the Deep and a rosewood blowpipe.", "Brittle Isle", BRITTLE_ISLE, new WorldPoint(1946, 4074, 0), DOUBLE_AGENT_141, BOW, item(ItemID.MEDALLION_OF_THE_DEEP), item(ItemID.ROSEWOOD_BLOWPIPE))); private static final String UNICODE_CHECK_MARK = "\u2713"; private static final String UNICODE_BALLOT_X = "\u2717"; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/FaloTheBardClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/FaloTheBardClue.java index 5e5d76bc675..91b0fda61ef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/FaloTheBardClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/FaloTheBardClue.java @@ -72,7 +72,8 @@ public class FaloTheBardClue extends ClueScroll implements NpcClueScroll new FaloTheBardClue("These gloves of white won't help you fight, but aid in cooking, they just might.", item(ItemID.GAUNTLETS_OF_COOKING)), new FaloTheBardClue("They come from some time ago, from a land unto the east. Fossilised they have become, this small and gentle beast.", item(ItemID.FOSSIL_NUMULITE)), new FaloTheBardClue("To slay a dragon you must first do, before this chest piece can be put on you.", item(ItemID.RUNE_PLATEBODY)), - new FaloTheBardClue("Vampyres are agile opponents, damaged best with a weapon of many components.", any("Rod of Ivandis or Ivandis/Blisterwood flail", range(ItemID.BURGH_ROD_COMMAND_FINAL_10, ItemID.BURGH_ROD_COMMAND_FINAL_1), item(ItemID.IVANDIS_FLAIL), item(ItemID.BLISTERWOOD_FLAIL))) + new FaloTheBardClue("Vampyres are agile opponents, damaged best with a weapon of many components.", any("Rod of Ivandis or Ivandis/Blisterwood flail", range(ItemID.BURGH_ROD_COMMAND_FINAL_10, ItemID.BURGH_ROD_COMMAND_FINAL_1), item(ItemID.IVANDIS_FLAIL), item(ItemID.BLISTERWOOD_FLAIL))), + new FaloTheBardClue("You won't bring me to heel, unless you have a bright red keel.", item(ItemID.SAILING_BOAT_KEEL_PART_DRAGON)) ); private static final WorldPoint LOCATION = new WorldPoint(2689, 3550, 0); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java index b3166559c7b..8a54b658c68 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java @@ -251,6 +251,7 @@ enum ChallengeType new SkillChallengeClue("Plant a watermelon seed.", item(ItemID.RAKE), item(ItemID.DIBBER), xOfItem(ItemID.WATERMELON_SEED, 3)), new SkillChallengeClue("Activate the Chivalry prayer."), new SkillChallengeClue("Smith a tier 2 or above Shayzien platebody.", "smith a tier 2 or above shayzien platebody.", ANY_HAMMER, xOfItem(ItemID.LOVAKITE_BAR, 4)), + new SkillChallengeClue("Mine some nickel.", ANY_PICKAXE), // Master Sherlock Tasks new SkillChallengeClue("Equip an abyssal whip in front of the abyssal demons of the Slayer Tower.", true, any("Abyssal Whip", item(ItemID.ABYSSAL_WHIP), item(ItemID.ABYSSAL_WHIP_ICE), item(ItemID.ABYSSAL_WHIP_LAVA), item(ItemID.LEAGUE_3_WHIP), item(ItemID.ABYSSAL_TENTACLE), item(ItemID.LEAGUE_3_WHIP_TENTACLE))), new SkillChallengeClue("Smith a runite med helm.", ANY_HAMMER, item(ItemID.RUNITE_BAR)), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/STASHUnit.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/STASHUnit.java index 11a9e144475..1b6e95051d5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/STASHUnit.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/emote/STASHUnit.java @@ -149,6 +149,7 @@ public enum STASHUnit OUTSIDE_TWILIGHT_TEMPLE(ObjectID.HH_HARD_EXP7, new WorldPoint(1693, 3243, 0)), PANDEMONIUM_BAR(ObjectID.HH_EASY_SAIL, new WorldPoint(3045, 2963, 0)), WINTUMBER_ISLAND(ObjectID.HH_ELITE_SAIL, new WorldPoint(2072, 2608, 0)), + BRITTLE_ISLE(ObjectID.HH_MASTER_SAIL, new WorldPoint(1952, 4074, 0)), ; private final int objectId; From aa139d55b3c067b8081c57c88d6f7c97a85aabb0 Mon Sep 17 00:00:00 2001 From: RuneLite updater Date: Wed, 19 Nov 2025 07:25:20 +0000 Subject: [PATCH 16/18] Release 1.12.5 --- cache/pom.xml | 2 +- pom.xml | 4 ++-- runelite-api/pom.xml | 2 +- runelite-client/pom.xml | 2 +- runelite-jshell/pom.xml | 2 +- runelite-maven-plugin/pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cache/pom.xml b/cache/pom.xml index 00da57c4eaf..ce65a455734 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.12.5-SNAPSHOT + 1.12.5 cache diff --git a/pom.xml b/pom.xml index 74c68d66e36..09b4ebe457c 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.12.5-SNAPSHOT + 1.12.5 pom RuneLite @@ -61,7 +61,7 @@ https://github.com/runelite/runelite scm:git:git://github.com/runelite/runelite scm:git:git@github.com:runelite/runelite - HEAD + runelite-parent-1.12.5 diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 9d9a84b25d3..29ba8c8c1b0 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.12.5-SNAPSHOT + 1.12.5 runelite-api diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index 8f15c92061d..e17423a489f 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.12.5-SNAPSHOT + 1.12.5 client diff --git a/runelite-jshell/pom.xml b/runelite-jshell/pom.xml index 7a66a1a5b30..6527edb8cee 100644 --- a/runelite-jshell/pom.xml +++ b/runelite-jshell/pom.xml @@ -30,7 +30,7 @@ net.runelite runelite-parent - 1.12.5-SNAPSHOT + 1.12.5 jshell diff --git a/runelite-maven-plugin/pom.xml b/runelite-maven-plugin/pom.xml index 838c281f83a..d2b2ba7cc1e 100644 --- a/runelite-maven-plugin/pom.xml +++ b/runelite-maven-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.12.5-SNAPSHOT + 1.12.5 runelite-maven-plugin From 0d679cc57057e1554728a24199ac3a9fa6932cae Mon Sep 17 00:00:00 2001 From: RuneLite updater Date: Wed, 19 Nov 2025 07:25:24 +0000 Subject: [PATCH 17/18] Bump for 1.12.6-SNAPSHOT [ci skip] --- cache/pom.xml | 2 +- pom.xml | 4 ++-- runelite-api/pom.xml | 2 +- runelite-client/pom.xml | 2 +- runelite-jshell/pom.xml | 2 +- runelite-maven-plugin/pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cache/pom.xml b/cache/pom.xml index ce65a455734..c552b0d4eb5 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.12.5 + 1.12.6-SNAPSHOT cache diff --git a/pom.xml b/pom.xml index 09b4ebe457c..d2409bfdd0e 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.12.5 + 1.12.6-SNAPSHOT pom RuneLite @@ -61,7 +61,7 @@ https://github.com/runelite/runelite scm:git:git://github.com/runelite/runelite scm:git:git@github.com:runelite/runelite - runelite-parent-1.12.5 + HEAD diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index 29ba8c8c1b0..b6761debf14 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.12.5 + 1.12.6-SNAPSHOT runelite-api diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index e17423a489f..63f1112d455 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.12.5 + 1.12.6-SNAPSHOT client diff --git a/runelite-jshell/pom.xml b/runelite-jshell/pom.xml index 6527edb8cee..83a8f078ece 100644 --- a/runelite-jshell/pom.xml +++ b/runelite-jshell/pom.xml @@ -30,7 +30,7 @@ net.runelite runelite-parent - 1.12.5 + 1.12.6-SNAPSHOT jshell diff --git a/runelite-maven-plugin/pom.xml b/runelite-maven-plugin/pom.xml index d2b2ba7cc1e..be14df03eae 100644 --- a/runelite-maven-plugin/pom.xml +++ b/runelite-maven-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.12.5 + 1.12.6-SNAPSHOT runelite-maven-plugin From a3debc2e941c3b54357b21a1a98681b30ca6148a Mon Sep 17 00:00:00 2001 From: chsami Date: Wed, 19 Nov 2025 09:04:03 +0100 Subject: [PATCH 18/18] chore(pom): bump microbot version to 2.0.42 --- runelite-client/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index b05762dc428..fc18e0fd68f 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -41,7 +41,7 @@ nogit false false - 2.0.41 + 2.0.42 nogit