From b4106e29d480950915fc431ff52c32f703a2a2da Mon Sep 17 00:00:00 2001 From: Netoxic Date: Sun, 24 Aug 2025 13:36:59 -0600 Subject: [PATCH 1/5] Fixed not drinking at ferox if energy/health recovered before drinking. --- .../plugins/microbot/frosty/frostyrc/RcScript.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java index f4fe9510d86..23c66c5f93b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java @@ -48,6 +48,8 @@ public class RcScript extends Script { private final WorldPoint outsideWrathRuins = new WorldPoint(2445, 2818, 0); private final WorldPoint wrathRuinsLoc = new WorldPoint(2445, 2824, 0); + private volatile boolean forceDrinkAtFerox = false; + public static final int pureEss = 7936; public static final int feroxPool = 39651; public static final int monasteryRegion = 10290; @@ -330,8 +332,8 @@ private void handleFillPouch() { } private void handleFeroxRunEnergy() { - if (Rs2Player.getRunEnergy() < 45) { - Microbot.log("We are thirsty...let us Drink"); + if (forceDrinkAtFerox || Rs2Player.getRunEnergy() <= 15 || Rs2Player.getHealthPercentage() <= 20) { + Microbot.log("We are thirsty...let us Drink"); if (plugin.getMyWorldPoint().distanceTo(feroxPoolWp) > 5) { Microbot.log("Walking to Ferox pool"); Rs2Walker.walkTo(feroxPoolWp); @@ -344,6 +346,7 @@ private void handleFeroxRunEnergy() { } sleepUntil(() -> (!Rs2Player.isInteracting()) && !Rs2Player.isAnimating() && Rs2Player.getRunEnergy() > 90); sleepGaussian(1100, 200); + forceDrinkAtFerox = false; } } @@ -745,6 +748,10 @@ private void handleBankTeleport() { Rs2Equipment.interact(bankTeleportsId, teleport.getInteraction()); sleepUntil(() -> teleport.matchesRegion(plugin.getMyWorldPoint().getRegionID())); sleepGaussian(1100, 200); + if (teleport == Teleports.FEROX_ENCLAVE) { + forceDrinkAtFerox = true; + handleFeroxRunEnergy(); + } teleportUsed = true; break; } From 4c961bd02075039c26459058957b322c6653b991 Mon Sep 17 00:00:00 2001 From: Netoxic Date: Sun, 24 Aug 2025 13:40:08 -0600 Subject: [PATCH 2/5] Fixed getting stuck after bank teleport by checking energy/health first. --- .../client/plugins/microbot/frosty/frostyrc/RcScript.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java index 23c66c5f93b..524791c4665 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java @@ -710,6 +710,9 @@ private void handleCrafting() { Microbot.log("Crafting runes"); handleEmptyPouch(); } + + handleFeroxRunEnergy(); + state = State.BANKING; } From ef0f557b91f254cdbb190c8c7ae1c6880cca5077 Mon Sep 17 00:00:00 2001 From: Netoxic Date: Sun, 24 Aug 2025 13:40:54 -0600 Subject: [PATCH 3/5] Fixed getting stuck after break by allowing breaks after runcrafting finishes. --- .../client/plugins/microbot/frosty/frostyrc/RcScript.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java index 524791c4665..8cddc3f4135 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java @@ -713,6 +713,10 @@ private void handleCrafting() { handleFeroxRunEnergy(); + if (plugin.isBreakHandlerEnabled()) { + BreakHandlerScript.setLockState(false); + } + state = State.BANKING; } From 562f96095770b879073cb7e0848f5f341631b465 Mon Sep 17 00:00:00 2001 From: Netoxic Date: Sun, 24 Aug 2025 14:03:08 -0600 Subject: [PATCH 4/5] Faster walking to wrath ruins. --- .../client/plugins/microbot/frosty/frostyrc/RcScript.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java index 8cddc3f4135..08fbfe60cd1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java @@ -459,7 +459,12 @@ private void handleWrathWalking() { Microbot.log("Interacting with myth cape"); Rs2Inventory.interact(mythCape, "Teleport"); sleepUntil(() -> plugin.getMyWorldPoint().getRegionID() == mythicStatueRegion); - sleepGaussian(1100, 200); + sleepGaussian(600, 200); + + GameObject statue = Rs2GameObject.get("Mythic Statue"); + if (statue != null && !Rs2Player.isAnimating()) { + Rs2GameObject.interact(statue, "Teleport"); + } if (plugin.getMyWorldPoint().getRegionID() == mythicStatueRegion) { Microbot.log("Walking to Wrath ruins"); From b53660dffd8a69103159cb17c5494716fefe84f9 Mon Sep 17 00:00:00 2001 From: Netoxic Date: Sun, 24 Aug 2025 14:05:50 -0600 Subject: [PATCH 5/5] Fixed logic that bounced back to bank after already teleporting to Ferox. --- .../plugins/microbot/frosty/frostyrc/RcScript.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java index 08fbfe60cd1..1f410cef8af 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/frosty/frostyrc/RcScript.java @@ -334,6 +334,7 @@ private void handleFillPouch() { private void handleFeroxRunEnergy() { if (forceDrinkAtFerox || Rs2Player.getRunEnergy() <= 15 || Rs2Player.getHealthPercentage() <= 20) { Microbot.log("We are thirsty...let us Drink"); + forceDrinkAtFerox = true; if (plugin.getMyWorldPoint().distanceTo(feroxPoolWp) > 5) { Microbot.log("Walking to Ferox pool"); Rs2Walker.walkTo(feroxPoolWp); @@ -746,7 +747,13 @@ private void handleBankTeleport() { Rs2Tab.switchToEquipmentTab(); sleepGaussian(1300, 200); - List bankTeleport = Arrays.asList( + boolean needRefill = (forceDrinkAtFerox || Rs2Player.getRunEnergy() <= 15 || Rs2Player.getHealthPercentage() <= 20); + List bankTeleport = needRefill + ? Arrays.asList( + Teleports.FEROX_ENCLAVE, + Teleports.CRAFTING_CAPE, + Teleports.FARMING_CAPE) + : Arrays.asList( Teleports.CRAFTING_CAPE, Teleports.FARMING_CAPE, Teleports.FEROX_ENCLAVE