Quest Helper

repository·master·Indexed 43 days ago

https://github.com/zoinkwiz/quest-helper

A RuneLite plugin that guides players through quests with step-by-step instructions, item requirements, and visual navigation aids. It integrates with Not Enough Runes and Shortest Path plugins and provides developer utilities like the ItemCollections enum and FarmingWorld registry for spatial farming data.

Tokens
2.8K
Snippets
5
Records
8
Agent score
55%

What's inside Quest Helper

  1. Integrate with Not Enough Runes (NER)

    master

    If you have the Not Enough Runes plugin installed, you can quickly look up item requirements directly from the Quest Helper interface.

    To use:

    1. Right-click an item requirement listed in the Quest Helper sidebar.
    2. Select Go to NER... from the context menu to look up that item in the Not Enough Runes plugin.
  2. Install and use the Quest Helper plugin

    master

    The Quest Helper plugin assists in completing quests by providing quest steps, navigation, required items, and puzzle solutions.

    Installation

    1. Download the Quest Helper from the RuneLite Plugin Hub.
    2. Locate the Quest Helper icon in the RuneLite sidebar.

    Basic Usage

    1. Click the Quest Helper icon in the sidebar to view a list of incomplete quests.
    2. Select a quest to start the helper.
    3. Once active, the sidebar will display:
      • Quest requirements.
      • A list of steps to complete the quest.
    4. The interface provides visual guidance:
      • Current Step: Displayed in the top-left corner.
      • World Map: Displays an arrow pointing to the destination.
      • Minimap: Displays an arrow pointing to the location.
      • Targets: The specific object, NPC, or tile required for the step will be highlighted in-game.
  3. Integrate with Shortest Path

    master

    You can use the Shortest Path plugin to optimize navigation during quests.

    To enable:

    1. Ensure the Shortest Path plugin is installed.
    2. In the Quest Helper configuration, enable the option Use 'Shortest Path' plugin.
    3. When you start a quest, the Shortest Path plugin will automatically assist in finding the most efficient route to your destination.

    Note: You can configure teleportation methods and path aesthetics within the Shortest Path plugin's own configuration settings.

  4. Access farming world data via FarmingWorld

    master

    The FarmingWorld class serves as a central registry for farming-related spatial data in the plugin. It maps game regions and specific farming patches (like allotments, herbs, or trees) to their respective locations, varbits, and NPC identifiers.

    Developers can use this class to:

    • Retrieve all FarmingRegion objects associated with a specific WorldPoint.
    • Access a mapping of Tab types to sets of FarmingPatch objects.
    • Access the specific farmingGuildRegion.

    Note that FarmingWorld is a @Singleton and is intended to be used as a read-only data provider for determining which farming patches are active or relevant at a player's current location.

    // Example of how a consumer might use the public API
    // (Assuming access to a FarmingWorld instance)
    
    // 1. Get regions for a specific location
    Collection<FarmingRegion> regions = farmingWorld.getRegionsForLocation(playerLocation);
    
    // 2. Get all patches associated with a specific UI Tab
    Map<Tab, Set<FarmingPatch>> patchTabs = farmingWorld.getTabs();
    Set<FarmingPatch> herbPatches = patchTabs.get(Tab.HERB);
    
    // 3. Access the Farming Guild region specifically
    FarmingRegion guild = farmingWorld.getFarmingGuildRegion();
  5. Access item collections via ItemCollections enum

    master

    The ItemCollections enum provides categorized, ordered lists of ItemIDs used for quest requirements and item checking. Each enum constant represents a specific category (e.g., AXES, BOWS, ANTIPOISONS) and contains an ordered ImmutableList<Integer> of item IDs. The order is typically from highest tier/dose to lowest tier/dose.

    You can access the category name via .getName() and the list of item IDs via .getItems().

    // Example of accessing a collection
    ImmutableList<Integer> axeIds = ItemCollections.AXES.getItems();
    String categoryName = ItemCollections.AXES.getName();
  6. Use reverseOrder() to get items in reverse sequence

    master

    The reverseOrder() method returns a new List<Integer> containing the items from the collection in reverse order. This is useful when you need to iterate through a collection from the highest-tier item to the lowest-tier item.

    // Assuming an instance of an ItemCollections enum/object
    List<Integer> reversedItems = SOME_COLLECTION.reverseOrder();
  7. Reference: ItemCollections categories and item groups

    master

    The following is a reference of the available ItemCollections enum constants and the types of items they group. Note that these lists are ordered (e.g., highest tier to lowest).

    AXES("Axe", ...)
    PICKAXES("Pickaxe", ...)
    HARPOONS("Harpoon", ...)
    MACHETE("Machete", ...)
    HAMMER("Hammer", ...)
    CHISEL("Chisel", ...)
    SAW("Saw", ...)
    NAILS("Nails", ...)
    BOWS("Bows", ...)
    CROSSBOWS("Crossbows", ...)
    SWORDS("Swords", ...)
    THROWING_KNIVES("Throwing Knives", ...)
    DARTS("Darts", ...)
    THROWING_AXES("Throwing Axes", ...)
    METAL_ARROWS(...)
    ARROWS(...)
    BRUTAL_ARROWS(...)
    FIRE_ARROWS(...)
    SPECIAL_ARROWS(...)
    ARROW_TIPS(...)
    AIR_RUNE(...)
    AIR_STAFF(...)
    FIRE_RUNE(...)
    FIRE_STAFF(...)
    WATER_RUNE(...)
    WATER_STAFF(...)
    EARTH_RUNE(...)
    EARTH_STAFF(...)
    ANTIPOISONS(...)
    ANTIVENOMS(...)
    ANTIDISEASE(...)
    ANTIFIRE(...)
    PRAYER_POTIONS(...)
    RESTORE_POTIONS(...)
    SUPER_RESTORE_POTIONS(...)
    SUPER_COMBAT_POTIONS(...)
    SARADOMIN_BREWS(...)
    RUN_RESTORE_ITEMS(...)
    STAMINA_POTIONS(...)
    AGILITY_POTIONS(...)
    ANTIFIRE_POTIONS(...)
    GOOD_EATING_FOOD(...)
    FISH_FOOD(...)
    GNOME_FOOD(...)
    STEWS(...)
    PIZZAS(...)
    POTATO_FOOD(...)
    PIES(...)
    GAMES_NECKLACES(...)
    RING_OF_DUELINGS(...)
    BURNING_AMULETS(...)
    NECKLACE_OF_PASSAGES(...)
    SKILLS_NECKLACES(...)
    RING_OF_WEALTHS(...)
    COMBAT_BRACELETS(...)
    AMULET_OF_GLORIES(...)
    DIGSITE_PENDANTS(...)
    SLAYER_RINGS(...)
    PHAROAH_SCEPTRE(...)
    EXPLORERS_RINGS(...)
    LOGS_FOR_FIRE(...)
    BONES(...)
    GREEGREES(...)
    ANTIFIRE_SHIELDS(...)
    ANTI_WYVERN_SHIELDS(...)
    GHOSTSPEAK(...)
    LIGHT_SOURCES("Light_sources", ...)
    CATS(...)
    HUNTING_CATS(...)
    FLOWERS(...)
    ROD_OF_IVANDIS(...)
    SALVE_AMULET(...)
    WATERING_CANS(...)
    ENCHANTED_LYRE(...)
    SKILLCAPE(...)
    SLAYER_HELMETS(...)
    RAW_FISH(...)
    COMPOST(...)
    FAIRY_STAFF(...)
    ESSENCE_HIGH(...)
    ESSENCE_LOW(...)
    COINS(...)
    COOKING_GUILD(...)
    MINING_HELM(...)
  8. Reference: ItemCollections shared item groups

    master

    The ItemCollections class provides several predefined immutable lists of ItemIDs used for quest requirements, gear checks, and item categorization within the plugin. These collections group related items such as specific armor sets, consumables, or quest-specific tools.

    // Example of available collection categories:
    QUICKLIME_GLOVES
    BELLADONNA_GLOVES
    GRACEFUL_TOP
    GRACEFUL_LEGS
    GRACEFUL_HOOD
    GRACEFUL_CAPE
    GRACEFUL_BOOTS
    GRACEFUL_GLOVES
    QUEST_CAPE
    WALL_BEAST
    ALTAR_WEARABLE_COMMON
    AIR_ALTAR_WEARABLE
    AIR_ALTAR
    WATER_ALTAR_WEARABLE
    WATER_ALTAR
    EARTH_ALTAR_WEARABLE
    EARTH_ALTAR
    FIRE_ALTAR_WEARABLE
    FIRE_ALTAR
    MIND_ALTAR_WEARABLE
    MIND_ALTAR
    COSMIC_ALTAR_WEARABLE
    COSMIC_ALTAR
    CHAOS_ALTAR
    NATURE_ALTAR_WEARABLE
    NATURE_ALTAR
    DEATH_ALTAR
    PLUNDER_ARTEFACTS
    WATERSKIN
    GRIMY_HERB
    BLACKJACKS
    KERIS
    STUFFED_KQ_HEAD
    RECHARGEABLE_NECK_BRACELET
    IMBUABLE_SALVE_AMULET
    IMBUED_SALVE_AMULET
    NON_MAGIC_TREE_ROOT
    ARDY_CLOAKS
    TEAM_CAPE
    RUNE_AXE_BETTER
    GOD_STAFF
    SNAIL_SHELLS
    TANNABLE_HIDE
    BONEMEAL
    EAR_PROTECTION
    NOSE_PROTECTION
    ELITE_PYRE_LOGS
    SHADE_REMAINS
    AHRIM_HOOD
    AHRIM_ROBESKIRT
    AHRIM_ROBETOP
    AHRIM_STAFF
    KARIL_CROSSBOW
    KARIL_COIF
    KARIL_SKIRT
    KARIL_TOP
    DHAROK_AXE
    DHAROK_HELM
    DHAROK_BODY
    DHAROK_LEGS
    GUTHAN_WARSPEAR
    GUTHAN_HELM
    GUTHAN_BODY
    GUTHAN_SKIRT
    TORAG_HAMMERS
    TORAG_HELM
    TORAG_BODY
    TORAG_LEGS
    VERAC_FLAIL
    VERAC_BRASSARD
    VERAC_HELM
    VERAC_SKIRT
    ARCEUUS_BOOKS
    WARM_CLOTHING
    STONE_BOOTS
    FISHING_ROD
    OGRE_BRUTAL_ARROWS
    OGRE_BELLOWS
    OGRE_BOW
    TELEPORT_CRYSTAL
    NINJA_GREEGREE
    CRYSTAL_BOW
    MOUTH_PROTECTION
    VOID_HELM
    VOID_TOP
    VOID_ROBE
    GUTHIX_BALANCE_UNF
    EYE_HAT
    EYE_TOP
    EYE_BOTTOM
    CLIMBING_BOOTS
    ALLOTMENT_SEEDS
    HERB_SEEDS
    FLOWER_SEEDS
    HOPS_SEEDS
    SLASH_WEB_KNIFE
    BOAT_REPAIR_KITS
    BUSH_SEEDS
    TREE_SAPLINGS
    FRUIT_TREE_SAPLINGS
    GHOMMALS_HILT
    ARDOUGNE_CLOAK
    PROSPECTOR_HELMET