Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -10,35 +10,6 @@
import javax.inject.Inject;
import java.awt.*;

/**
* =====================================================================
* Butterfly Catcher
* Author: StonksCode
* =====================================================================
*
* Automates butterfly and moth catching for Hunter XP training.
*
* Supported species:
* - Ruby Harvest (net lvl 5 / bare lvl 15)
* - Sapphire Glacialis (net lvl 25 / bare lvl 35)
* - Snowy Knight (net lvl 35 / bare lvl 45)
* - Black Warlock (net lvl 45 / bare lvl 55)
* - Sunlight Moth (net lvl 65 / bare lvl 75)
* - Moonlight Moth (net lvl 75 / bare lvl 85)
*
* Catch modes:
* BAREHANDED — catch and release for XP; nothing enters inventory.
* BUTTERFLY_NET — equip a butterfly net or magic butterfly net before
* starting; allows catching at 10 levels lower than
* the barehanded requirement.
*
* Usage:
* 1. Stand near a spawn of your chosen species.
* 2. If using Butterfly Net mode, equip your net first.
* 3. Select your species and catch mode in the config panel.
* 4. Start the plugin — it will run indefinitely with no banking.
* =====================================================================
*/
@PluginDescriptor(
name = PluginConstants.STKS + "Butterfly Catcher",
description = "Automates butterfly and moth catching for Hunter XP. Stand near a spawn, pick your species and mode, start the plugin.",
Expand All @@ -52,7 +23,10 @@
@Slf4j
public class ButterflyCatcherPlugin extends Plugin {

public static final String version = "1.0.0";
// v1.0.1 — fix: corrected NPC IDs for Ruby Harvest (5556), Sapphire Glacialis (5555),
// and Snowy Knight (5554). Original IDs (5525/5526/5527) were wrong,
// causing those three species to never find targets and do nothing.
public static final String version = "1.0.1";

@Inject
private ButterflyCatcherConfig config;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@
* ButterflyType
*
* Defines all catchable butterflies and moths from the Hunter skill.
* Data sourced from: https://oldschool.runescape.wiki/w/Butterfly_(Hunter)
* NPC IDs verified against: https://oldschool.runescape.wiki/w/Butterfly_(Hunter)
*
* Level requirements:
* The game requires a Hunter level 10 ABOVE the net level for barehanded catching.
* This enum stores the NET level as the baseline; the script derives the
* barehanded level by adding 10.
*
* Species Net Barehanded
* ─────────────────── ──── ──────────
* Ruby Harvest 5 15
* Sapphire Glacialis 25 35
* Snowy Knight 35 45
* Black Warlock 45 55
* Sunlight Moth 65 75
* Moonlight Moth 75 85
* Species Net Barehanded NPC ID
* ─────────────────── ──── ────────── ──────
* Ruby Harvest 5 15 5556
* Sapphire Glacialis 25 35 5555
* Snowy Knight 35 45 5554
* Black Warlock 45 55 5553
* Sunlight Moth 65 75 12770
* Moonlight Moth 75 85 12771, 12772, 12773
*
* Item IDs:
* Butterfly net : 10010
Expand All @@ -32,28 +32,28 @@ public enum ButterflyType {

RUBY_HARVEST(
"Ruby Harvest",
new int[]{ 5525 },
new int[]{ 5556 }, // was 5525 (wrong — wiki confirms 5556)
5,
10012,
10009
),
SAPPHIRE_GLACIALIS(
"Sapphire Glacialis",
new int[]{ 5526 },
new int[]{ 5555 }, // was 5526 (wrong — wiki confirms 5555)
25,
10012,
10011
),
SNOWY_KNIGHT(
"Snowy Knight",
new int[]{ 5527 },
new int[]{ 5554 }, // was 5527 (wrong — wiki confirms 5554)
35,
10012,
10013
),
BLACK_WARLOCK(
"Black Warlock",
new int[]{ 5553 },
new int[]{ 5553 }, // correct
45,
10012,
10010
Expand All @@ -65,7 +65,7 @@ public enum ButterflyType {
*/
SUNLIGHT_MOTH(
"Sunlight Moth",
new int[]{ 12770 },
new int[]{ 12770 }, // correct
65,
10012,
28890
Expand All @@ -78,7 +78,7 @@ public enum ButterflyType {
*/
MOONLIGHT_MOTH(
"Moonlight Moth",
new int[]{ 12771, 12772, 12773 },
new int[]{ 12771, 12772, 12773 }, // correct
75,
10012,
28893
Expand Down
Loading