The client is offline due to RuneScape update. You may see instance errors but this is due to the update and not actual instance errors. This should be resolved soon. Join our Discord for more information.

Quest varps/varpbits



  • How to get this data:

    https://archive.runestats.com/osrs/types/177-7/structs.txt

    https://github.com/RuneStar/cs2-scripts/blob/master/scripts/[proc,questlist_progress].cs2

    Example and description of cs2:

    if (%var130 = 4) {
    			return(2);
    		}
    		if (%var130 = 0) {
    			return(1);
    		}
    		return(0);
    

    return(0) = not started - red
    return(1) = started - yellow
    return(2) = finished - green

    %var130 = 4

    var130 is the stored varp for the quest to determine its stage for that player
    it'll update the text on the interface like crossing out steps completed, etc.

    F2P

    public enum FreeQuest implements IQuest{
    
        BLACK_KNIGHTS_FORTRESS(299, 130, 4),
    
        COOKS_ASSISTANT(300, 29, 2),
    
        THE_CORSAIR_CURSE(301, 6071, 60),
    
        DEMON_SLAYER(302, 2561, 3),
    
        DORICS_QUEST(303, 31, 100),
    
        DRAGON_SLAYER(304, 176, 10),
    
        ERNEST_THE_CHICKEN(305, 32, 3),
    
        GOBLIN_DIPLOMACY(306, 2378, 6),
    
        IMP_CATCHER(307, 160, 2),
    
        THE_KNIGHTS_SWORD(308, 122, 7),
    
        MISTHALIN_MYSTERY(309, 3468, 135),
    
        PIRATES_TREASURE(310, 71, 4),
    
        PRINCE_ALI_RESCUE(311, 273, 110),
    
        THE_RESTLESS_GHOST(312, 107, 5),
    
        ROMEO_AND_JULIET(313, 144, 100),
    
        RUNE_MYSTERIES(314, 63, 6, RuneMysteries.class),
    
        SHEEP_SHEARER(315, 179, 21),
    
        SHIELD_OF_ARRAV(316, 145, 7),//146 = 4? TODO
    
        VAMPIRE_SLAYER(317, 178, 3),
    
        WITCHS_POTION(318, 67, 3),
    
        X_MARKS_THE_SPOT(-1, -1, -1),//TODO:! not in current struct dump.
    
        ;
    
        private final int id;
    
        private final int varpbit;
    
        private final int stages;
    
        private final Class quest;
    
        FreeQuest(int id, int varpbit, int stages) {
            this.id = id;
            this.varpbit = varpbit;
            this.stages = stages;
            this.quest = DefaultQuest.class;
        }
    
        private static final Map<Integer, IQuest> quests = new HashMap<>();
    
        public static Map<Integer, IQuest> getQuests() {
            return quests;
        }
    
        public Quest getQuest() {
            try {
                return (Quest) quest.newInstance();
            } catch (InstantiationException | IllegalAccessException e) {
                e.printStackTrace();
            }
            return null;
        }
    
        static {
            Arrays.stream(MembersQuest.values()).forEach(quest -> quests.putIfAbsent(quest.getVarpbit(), quest));
        }
    
    }
    
    

    Members:

    public enum MembersQuest implements IQuest {
    
        DEFAULT_QUEST(-1, -1, -1, DefaultQuest.class),
    
        ANIMAL_MAGNETISM(331, 3185, 240, DefaultQuest.class),
    
        ANOTHER_SLICE_OF_HAM(332, 3550, 11, DefaultQuest.class),
    
        THE_ASCENT_OF_ARCEUUS(542, 7856, 14, DefaultQuest.class),
    
        BETWEEN_A_ROCK(333, 299, 109, DefaultQuest.class),
    
        BIG_CHOMPY_BIRD_HUNTING(334, 293, 65, DefaultQuest.class),
    
        BIOHAZARD(335, 68, 16, DefaultQuest.class),
    
        BONE_VOYAGE(366, 5795, 50, DefaultQuest.class),
    
        CABIN_FEVER(336, 655, 130, DefaultQuest.class),
    
        CLIENT_OF_KOUREND(443, 5619, 7, DefaultQuest.class),
    
        CLOCK_TOWER(337, 10, 8, DefaultQuest.class),
    
        COLD_WAR(338, 3293, 135, DefaultQuest.class),
    
        CONTACT(339, 3274, 130, DefaultQuest.class),
    
        CREATURE_OF_FENKENSTRAIN(340, 399, 6, DefaultQuest.class),
    
        DARKNESS_OF_HALLOWVALE(341, 2573, 320, DefaultQuest.class),
    
        DEATH_PLATEAU(342, 314, 80),
    
        DEATH_TO_THE_DORGESHUUN(343, 2258, 13),
    
        THE_DEPTHS_OF_DESPAIR(344, 6027, 11),
    
        DESERT_TREASURE(345, 358, 15, DesertTreasure.class),
    
        DEVIOUS_MINDS(346,1465, 80),
    
        THE_DIG_SITE(347, 131, 9),
    
        DRAGON_SLAYER_II(348, 6104, 215),
    
        DREAM_MENTOR(349, 3618, 28),
    
        DRUIDIC_RITUAL(350, 80, 4),
    
        DWARF_CANNON(351, 0, 10),
    
        EADGARS_RUSE(352, 335, 110),
    
        EAGLES_PEAK(353, 2780, 40),
    
        ELEMENTAL_WORKSHOP_I(354, 299, 20),
    
        ELEMENTAL_WORKSHOP_II(355, 2639, 11),
    
        ENAKHRAS_LAMENT(356, 1560, 69),
    
        ENLIGHTENED_JOURNEY(357, 2866, 200),
    
        THE_EYES_OF_GLOUPHRIE(358, 2497, 60),
    
        FAIRYTALE_I(359, 1803, 90),
    
        FAIRYTALE_II(360, 2326, 80),
    
        FAMILY_CREST(361, 148, 11),
    
        THE_FEUD(362, 334, 27),
    
        FIGHT_ARENA(363, 17, 13),
    
        FISHING_CONTEST(364, 11, 5),
    
        FORGETTABLE_TALE(365, 822, 140),
    
        THE_FORSAKEN_TOWER(543, 7796, 11),
    
        THE_FREMENNIK_ISLES(367, 3311, 340),
    
        THE_FREMENNIK_TRIALS(368, 347, 9),
    
        GARDEN_OF_TRANQUILITY(369, 961, 60),
    
        GERTRUDES_CAT(370, 180, 5),
    
        GHOSTS_AHOY(371, 217, 7),
    
        THE_GIANT_DWARF(372, 571, 49),
    
        THE_GOLEM(373, 346, 9),
    
        THE_GRAND_TREE(374, 150, 160),
    
        THE_GREAT_BRAIN_ROBBERY(375, 980, 129),
    
        GRIM_TALES(376, 2783, 60),
    
        THE_HAND_IN_THE_SAND(377, 1527, 159),
    
        HAUNTED_MINE(378, 382, 11),
    
        HAZEEL_CULT(379, 223, 9),
    
        HEROES_QUEST(380, 188, 15),
    
        HOLY_GRAIL(381, 5, 10),
    
        HORROR_FROM_THE_DEEP(382, 34, 9, HorrorFromTheDeep.class),
    
        ICTHLARINS_LITTLE_HELPER(383, 418, 25),
    
        IN_AID_OF_THE_MYREQUE(384, 1990, 420),
    
        IN_SEARCH_OF_THE_MYREQUE(385, 387, 100),
    
        JUNGLE_POTION(386, 175, 11),
    
        KINGS_RANSOM(387, 3888, 90),
    
        LEGENDS_QUEST(388, 139, 75),
    
        LOST_CITY(389, 147, 6),
    
        THE_LOST_TRIBE(390, 532, 11),
    
        LUNAR_DIPLOMACY(391, 2448, 190),
    
        MAKING_FRIENDS_WITH_MY_ARM(392, 6528, 200),
    
        MAKING_HISTORY(393, 1383, 3),
    
        MERLINS_CRYSTAL(394, 14, 7),
    
        MONKS_FRIEND(397, 30, 80),
    
        MONKEY_MADNESS_I(395, 365, 8),
    
        MONKEY_MADNESS_II(396, 5027, 190),
    
        MOUNTAIN_DAUGHTER(398, 260, 69),
    
        MOURNINGS_END_I(399, 517, 7),
    
        MOURNINGS_END_II(400, 1103, 59),
    
        MURDER_MYSTERY(401, 192, 2),
    
        MY_ARMS_BIG_ADVENTURE(402, 2790, 310),
    
        NATURE_SPIRIT(403, 307, 110),
    
        OBSERVATORY_QUEST(404, 112, 6),
    
        OLAFS_QUEST(405, 3534, 80),
    
        ONE_SMALL_FAVOUR(406, 416, 275),
    
        PLAGUE_CITY(407, 165, 28),
    
        PRIEST_IN_PERIL(408, 302, 59),
    
        THE_QUEEN_OF_THIEVES(409, 6037, 13),
    
        RAG_AND_BONE_MAN(410, 714, 4),
    
        RAG_AND_BONE_MAN_II(411, 715, 6),
    
        RATCATCHERS(412, 1404, 126),
    
        RECIPE_FOR_DISASTER(413, 1850, 5),
    
        RECRUITMENT_DRIVE(414, 657, 1),
    
        REGICIDE(415, 328, 14),
    
        ROVING_ELVES(416, 402, 5),
    
        ROYAL_TROUBLE(417, 2140, 20),
    
        RUM_DEAL(418, 600, 18),
    
        SCORPIAN_CATCHER(419, 76, 6),
    
        SEA_SLUG(420, 159, 12),
    
        SHADES_OF_MORTTON(421, 339, 85),
    
        SHADOW_OF_THE_STORM(422, 1372, 124),
    
        SHEEP_HERDER(423, 60, 3),
    
        SHILO_VILLAGE(424, 116, 14),
    
        THE_SLUG_MENACE(425, 2610, 14),
    
        A_SOULS_BANE(426, 2011, 12),
    
        SPIRITS_OF_THE_ELID(427, 1444, 59),
    
        SWAN_SONG(428, 2098, 200),
    
        TAI_BWO_WANNAI_TRIO(429, 320, 6),
    
        A_TAIL_OF_TWO_CATS(430, 1028, 70),
    
        TALE_OF_THE_RIGHTEOUS(431, 6358, 17),
    
        A_TASTE_OF_HOPE(432, 6396, 165),
    
        TEARS_OF_GUTHIX(433, 451, 1),
    
        TEMPLE_OF_IKOV(434, 26, 80),//VAR 26 = 90 TOO?
    
        THRONE_OF_MISCELLANIA(435, 359, 99),
    
        THE_TOURIST_TRAP(436, 197, 30),
    
        TOWER_OF_LIFE(437, 3337, 18),
    
        TREE_GNOME_VILLAGE(438, 111, 9),
    
        TRIBAL_TOTEM(439, 200, 5),
    
        TROLL_ROMANCE(440, 385, 44),
    
        TROLL_STRONGHOLD(441, 317, 50),
    
        UNDERGROUND_PASS(442, 161, 10),
    
        WANTED(444, 1051, 11),
    
        WATCHTOWER(445, 212, 12),
    
        WATERFALL_QUEST(446, 65, 10),
    
        WHAT_LIES_BELOW(447, 3523, 149),
    
        WITCHES_HOUSE(448, 226, 7),
    
        ZOGRE_FLESH_EATERS(449, 487, 12),
    
        ;
    
        private final int id;
    
        private final int varpbit;
    
        private final int stages;
    
        private final Class quest;
    
        MembersQuest(int id, int varpbit, int stages) {
            this.id = id;
            this.varpbit = varpbit;
            this.stages = stages;
            this.quest = DefaultQuest.class;
        }
    
        private static final Map<Integer, IQuest> quests = new HashMap<>();
    
        public static Map<Integer, IQuest> getQuests() {
            return quests;
        }
    
        public Quest getQuest() {
            try {
                return (Quest) quest.newInstance();
            } catch (InstantiationException | IllegalAccessException e) {
                e.printStackTrace();
            }
            return null;
        }
    
        static {
            Arrays.stream(MembersQuest.values()).forEach(quest -> quests.putIfAbsent(quest.getVarpbit(), quest));
        }
    
    }
    
    

    Mini:

    public enum MiniQuest implements IQuest {
    
        ALFRED_GRIMHANDS_BARCRAWL(322, 77, 2),//76 = 6
    
        ARCHITECTURAL_ALLIANCE(320, 4982, 3),
    
        BEAR_YOUR_SOUL(321, 5078, 3),
    
        CURSE_OF_THE_EMPTY_LORD(323, 821, 1),
    
        ENCHANTED_KEY(324, 1391, 2047),
    
        ENTER_THE_ABYSS(319, 492, 4),
    
        FAMILY_PEST(329, 5347, 3),
    
        THE_GENERALS_SHADOW(325, 3330, 30),
    
        LAIR_OF_TARN_RAZORLOR(328, 3290, 3),
    
        THE_MAGE_ARENA(327, 267, 8),
    
        THE_MAGE_ARENA_II(330, 6067, 4),
    
        SKIPPY_AND_THE_MOGRES(326, 1344, 3)
    
        ;
    
        private final int id;
    
        private final int varpbit;
    
        private final int stages;
    
        private final Class quest;
    
        MiniQuest(int id, int varpbit, int stages) {
            this.id = id;
            this.varpbit = varpbit;
            this.stages = stages;
            this.quest = DefaultQuest.class;
        }
    
        private static final Map<Integer, IQuest> quests = new HashMap<>();
    
        public static Map<Integer, IQuest> getQuests() {
            return quests;
        }
    
        public Quest getQuest() {
            try {
                return (Quest) quest.newInstance();
            } catch (InstantiationException | IllegalAccessException e) {
                e.printStackTrace();
            }
            return null;
        }
    
        static {
            Arrays.stream(MembersQuest.values()).forEach(quest -> quests.putIfAbsent(quest.getVarpbit(), quest));
        }
    
    }
    


  • huge props for this

    hopefully we see some more quest scripts due to this!



  • I love you.


 

43
Online

17.4k
Users

1.5k
Topics

19.5k
Posts