Leaderboard
Popular Content
Showing content with the highest reputation on 09/23/18 in all areas
-
๐ Perfect Czar Free Trials & Demos ๐ MOST POPULAR ๐ HIGHEST QUALITY ๐ MOST TOTAL USERS ๐ LOWEST BAN-RATES ๐ 24/7 SUPPORT ๐ SINCE 2015 ๐ MANY SKILLS ๐ MOST VIEWS ๐ MOST REPLIES ๐
๐CzarScripts #1 Bots ๐ ๐ LATEST BOTS ๐ If you want a trial - just post below with the script name, you can choose multiple too. ๐ Requirements ๐ Hit 'like' ๐ on this thread4 points
-
Checkmate Decode & Dbuffed
3 points[18:55:23] Anne: i'd like to point out to both decode and debuffed that Knuckles just randomly gave out $130.00 Lel Come @ Me3 points
-
Perfect Fighter AIO
2 pointsNEW! Added Gemstone Crab! 81 Hours at Cows Brutal Black Dragon support Sulphur Nagua support Blue Dragon 99 ranged 99 Ranged at Gemstone Crab 81 Range F2p Safespotting Hill Giants Hotkey List // F1 = set cannon tile // F2 = hide paint // F3 = Set afk tile // F4 = reset afk tile // F6 = Set safespot tile // F7 = activate tile selector // F8 = Reset tile selector // F9 and F10 used by the client, EDIT: will re-assign as they are no longer used by client // F11 = Set breaks tile // F12 = Reset breaks tile User Interface Banking Tab Demo (handles everything with banking) You can copy inventory (to avoid adding individual items...), you can insert item names which have Auto-Fill (for you lazy folk!) and you can choose whether to block an item and avoid depositing it in bank, ideal for runes and ammo. Looting Tab Demo (From looting to alchemy, noted/stackable items too) You can choose whether to alch an item after looting it simply by enabling a checkbox, with a visual representation. All items are saved upon exiting the bot, for your convenience! Tasking Demo (Not to be confused with sequence mode, this is an individual task for leveling) You can set stop conditions, for example to stop the bot after looting a visage, you can have a leveling streak by changing attack styles and training all combat stats, you can have windows alert bubbles when an event occurs and an expansive layout for misc. options! Prayer Flick Demo (Just example, I made it faster after recording this GIF) There are two settings: Safe mode and efficient mode, this is safe mode: Fight Bounds Demo Allows you to setup the fight bounds easily! Simplified NPC chooser Either choose nearby (local) NPCs or enter an NPC name to find the nearest fight location! Simple interface, just click! Level Task Switch Demo (Switching to attack combat style after getting 5 defence) You can choose how often to keep levels together! e.g. switch styles every 3 levels Cannon Demo (Cannon is still experimental, beta mode!) Choose to kill npcs with a cannon, recharges at a random revolution after around 20-24 hits to make sure the cannon never goes empty too! Results Caged Ogres: How does this bot know where to find NPCs? This bot will find far-away npcs by simply typing the NPC name. All NPCs in the game, including their spawn points have been documented, the bot knows where they are. You can type 'Hill giant' while your account is in Lumbridge, and the bot will find it's way to the edgeville dungeon Hill giants area! Here is a visual representation of the spawn system in action (this is just a visual tool, map mode is not added due to it requiring too much CPU) Fight Area Example (How the bot searches for the npc 'Wolf') Walking System The script has 2 main walking options which have distinctive effects on the script. The walking system is basically a map with points and connections linking each point. It tells the script where to go, and decides the routes to take when walking to fightzones. Walking system 1 This uses a custom walking API written by myself and is constantly being updated as new fightzones are added. Pros: - Updates are instant, no waiting times - More fightzones are supported Cons: - Sometimes if an object is altered, the changes are not instant - Restarting the script too many times requires loading this webwalker each time which adds unnecessary memory (there is no way to make it only load at client startup since I don't control the client) Walking system 2 This is the default OSBot webwalking API - it is relatively new and very stable since the developers have built it, but is currently lacking certain fightzones (e.g. stronghold) and other high level requirement zones. It is perfect for normal walking (no object interactions or stairs, entrances etc) and never fails. Pros: - Stable, works perfect for normal walking - All scripters are giving code to improve the client webwalker - More efficient when restarting the script since it is loaded upon client start Cons: - No stronghold support yet - Some new/rare fightzones not supported yet - If there is a game-breaking update or an unsupported fightzone, it may take some time to add/repair (less than 24 hours usually) So which system should I choose? Whichever one suits your chosen fightzone best! There really shouldn't be any problems - the sole purpose of these options are for backup and emergency purposes, if the script ever messes up there is always the next option to select. Note: If the script ever fails, there will be immediate updates to fix the walking systems! Script Queue/Bot Manager: Script ID is 758, and the parameters will be the profile name that you saved in the fighter setup! Bug Report templates: New feature request - What is the new feature - Basic description of what the script should do - Basic actions for the script: 'Use item on item' etc. For when the script gets stuck on a tile (or continuous loop): - Which exact tile does the script get stuck on? (exact tile, not 'near the draynor village') - Plugin or normal script? - Did you try all 3 walking options? Script has a logic bug (e.g. dies while safespotting) or (cannon mode doesn't pickup arrows) - What is the bug - How did you make the bug happen - (optional) recommendation for the bug, e.g. 'make the script walk back' or something - Tried client restart? - Normal script or a plugin? - Which exact setup options are enabled? Afk mode, cannon mode, etc etc.2 points
-
Perfect Runecrafter AIO
2 pointsThe only Runecrafting bot you will need Purchase this INSANE bot here You can setup a master account (preferably your main account, can be any account) and a worker account (a throwaway bot account, or any account) will trade the master account and go to bank to get more runes etc. The main account (master) does not need to bot, and can be achieved through the normal RS client without a bot client. Supports: Air runes (1) (normal) & (abyss) Mind runes (2) (normal) & (abyss) Water runes (5) (normal) & (abyss) Earth runes (9) (normal) & (abyss) Mud runes (13) (earth altar) Lava runes (23) (fire altar) Fire runes (14) (normal) & (abyss) Body runes (20) (normal) & (abyss) Cosmic runes (27) (normal) & (abyss) Chaos runes (35) (normal) & (abyss) Astral runes (40) (normal) & (abyss) Nature runes (44) (normal) & (abyss) Law runes (54) (normal) & (abyss) Blood runes (abyss) & (zeah) Auto Arceuus Favour Solver Gets 100% arceuus favour for you Auto GE Restocking Sells runes, buys more supplies automatically Auto-equips chosen armour/robes Use Blood Essences Death Handler gets items from Death's office and repeats (Abyss) Glory mode, ferox mode, house spell/tabs Avoids pkers and hops worlds Uses mouse invokes for quicker runecrafting (stealth) Muling (BETA) will give money to your mules every X hours or profit Creates colossal pouch if you have the needle Results and screenshots2 points
-
[JSOUP] Hiscores Lookup Snippet
2 pointsimport org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; import java.util.*; public class HiScores { public static HashMap<String, Stats> find(String searchPhrase){ HashMap<String, Stats> statsHashMap = new HashMap<>(); try { //Jsoup closes the connection by its own, after the request is done Document document = Jsoup .connect("https://secure.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=" + searchPhrase.replaceAll(" ", "%20")) .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36") .timeout(3000) .get(); //Select the first table. Element table = document.select("table").get(0); //Grab our rows of td from Element table Elements rows = table.select("td"); //Iterator to remove unnecessary data Iterator<Element> elementIterator = rows.iterator(); //List holds our skill type names List<String> typesAvailable = new ArrayList<>(); while (elementIterator.hasNext()){ Element node = elementIterator.next(); String attributesString = node.attributes().toString(); String text = node.text(); //Remove unneeded elements if (attributesString.contains(" valign=\"top\"") || attributesString.contains(" align=\"left\"") || attributesString.contains(" width=") || attributesString.contains(" colspan=") || text.getBytes().length == 0 || Character.isLetter(text.charAt(0))){ //Add our skill names to the map if (attributesString.contains(" align=\"left\"") && !attributesString.contains(" valign=\"top\"")){ System.out.println("Text available: " + text); System.out.println("Type added: " + text); typesAvailable.add(text); statsHashMap.put(text, new Stats(0, 0, 0)); } System.out.println("Removed: " + node.attributes()); elementIterator.remove(); } } System.out.println("\n" + "Personal scores for: " + searchPhrase); String type, rank, level, xp; //Loop through our elements and submit innertext to statsHashMap for (int i = 0, j = 0; i < rows.size() && j < typesAvailable.size(); i += 3, j++) { //Get type from typesAvailable type = typesAvailable.get(j); //Remove commas from our innertext data rank = rows.get(i).text().replaceAll(",", ""); level = rows.get(i + 1).text().replaceAll(",", ""); xp = rows.get(i + 2).text().replaceAll(",", ""); //Debug System.out.println("Type: " + type); System.out.println("Rank: " + rank); System.out.println("Level: " + level); System.out.println("Xp: " + xp + "\n"); //Add to our stats hashmap statsHashMap.put(type, new Stats(Integer.parseInt(rank), Integer.parseInt(level), Integer.parseInt(xp))); } } catch (IOException e) { e.printStackTrace(); } return statsHashMap; } public static class Stats { private int rank; private int level; private int exp; public Stats(int rank, int level, int exp) { this.rank = rank; this.level = level; this.exp = exp; } public int getRank() { return this.rank; } public int getLevel() { return this.level; } public int getExp() { return this.exp; } } //This uses Jaunt API but does not work inside OSbot scripts! Still was fun to learn because the API can fill forms and such /*public static HashMap<String, Stats> find(String searchPhrase){ HashMap<String, Stats> statsHashMap = new HashMap<>(); try { /* API: http://jaunt-api.com/javadocs/index.html Source: http://jaunt-api.com/ Usage: Import Source as JAR Warning: Ignores Overall statistics //Jaunt useragent connection and user submit UserAgent userAgent = new UserAgent(); userAgent.setCacheEnabled(false); userAgent.visit("https://secure.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws"); userAgent.doc.apply(searchPhrase); userAgent.doc.submit("Search"); //Find table data elements and populate list Elements table = userAgent.doc.findEach("<td align=\"right\">"); List<Element> elementsList = table.toList(); List<String> typesAvailable = new ArrayList<>(); Iterator<Element> elementIterator = elementsList.iterator(); userAgent.close(); //Remove unneeded elements from our List<Element> elementsList while (elementIterator.hasNext()){ Element element = elementIterator.next(); String innerText = element.innerText(); String innerHTML = element.innerHTML(); if (innerText.getBytes().length == 0 || Character.isLetter(innerText.charAt(0))){ //Grab available types if any (e.g Attack) if (innerHTML.contains("src=")){ //Format: <img class="miniimg" src="https://www.runescape.com/img/rsp777/hiscores/skill_icon_attack1.gif"> String tableName = innerHTML.substring(innerHTML.indexOf("icon_") + 5, innerHTML.indexOf("1")); System.out.println("Added type: " + tableName); typesAvailable.add((tableName.substring(0, 1).toUpperCase() + tableName.substring(1))); } System.out.println("Removed: " + innerText); elementIterator.remove(); } } System.out.println("\n" + "Personal scores for: " + searchPhrase); String type, rank, level, xp; //Loop through our elements and submit innertext to statsHashMap for (int i = 0, j = 0; i < elementsList.size() && j < typesAvailable.size(); i += 3, j++) { //Get type from typesAvailable type = typesAvailable.get(j); //Remove commas from our innertext data rank = elementsList.get(i).innerText().replaceAll(",", ""); level = elementsList.get(i + 1).innerText().replaceAll(",", ""); xp = elementsList.get(i + 2).innerText().replaceAll(",", ""); //Debug System.out.println("Type: " + type); System.out.println("Rank: " + rank); System.out.println("Level: " + level); System.out.println("Xp: " + xp + "\n"); //Add to our stats hashmap statsHashMap.put(type, new Stats(Integer.parseInt(rank), Integer.parseInt(level), Integer.parseInt(xp))); } System.out.println("Skills map size: " + statsHashMap.size()); } catch (JauntException | IOException e) { e.printStackTrace(); } return statsHashMap; } */ }2 points
-
Question about tracking osbot PID
2 pointsHere is another example using Python: import subprocess OSBOT_PATH = "C:\\Users\\Explv\\Downloads\\OSBot 2.5.22.jar" OSBOT_USER = "" OSBOT_PASS = "" def main(): cmd = ["java", "-jar", OSBOT_PATH, "-login", OSBOT_USER + ":" + OSBOT_PASS, "-debug"] popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) prev_pids = get_java_pids() for stdout_line in iter(popen.stdout.readline, ""): print(stdout_line) if "Successfully loaded OSBot!" in stdout_line: break popen.stdout.close() new_pids = get_java_pids() current_osbot_pid = new_pids - prev_pids if len(current_osbot_pid) > 1: raise ValueError('More than one new Java PID found') print("OSBot PID is: " + next(iter(current_osbot_pid))) def get_java_pids(): pids = set() java_processes = subprocess.check_output("tasklist /FI \"IMAGENAME eq java.exe\" /NH") for java_process in java_processes.decode('utf-8').splitlines(): if len(java_process.strip()) > 0: pid = java_process.split()[1] pids.add(pid) return pids if __name__ == '__main__': main()2 points
-
Checkmate Decode & Dbuffed
2 points
-
"Or" ||
2 pointsIt's always great learning new things and being able to make your application more powerful. These operators are part of the basic set of Java operators, so most people here are confused as to why you are posting it. Here is a list of all Java operators, make sure to familiarize yourself with all of them (except bitwise). Once you master everything, then try out the bitwise operators: https://www.tutorialspoint.com/java/java_basic_operators.htm2 points
-
Perfect Agility AIO
1 pointBrought to you by the #1 most sold script series on the market. Come and see why everyone's choosing Czar Scripts! This is the most advanced Agility bot you will find anywhere. BUY NOW $9.99 NEW! Added Both Wyrm Courses! SCRIPT INSTRUCTIONS Optimal Setup for the bot: Please set the mouse zoom to far away (to the left, like below) so that more obstacles can be seen in the view, and so the script can be more stable and reliable Also, make sure to have roofs toggled off (either go to settings tab or type ::toggleroof) for optimal results1 point
-
Perfect Motherlode Miner
1 pointNEW! supports new south + east shortcuts, new hopper (upstairs), and mouse invokes!!! (just like runelite!) 'the intelligent choice' By Czar 34-99 Mining on video!! Agility Shortcut Setup Window Preview 70 hours run time https://i.imgur.com/wiF6VPO.png1 point
-
APA Script Trials
1 pointโโโโโโโโโโโโโโ PREMIUM SUITE โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ FREE / VIP+ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Sand crabs - $4,99 | Rooftop Agility - $5,99 | AIO Smither - $4,99 | AIO Cooker - $3,99 | Unicow Killer - ยฃ3,99 | Chest Thiever - ยฃ2,99 | Rock crabs - $4,99 | Rune Sudoku - $9,99 โก โ AIO Herblore - FREE & OPEN-SOURCE | Auto Alcher - FREE | Den Cooker - FREE | Gilded Altar - FREE | AIO Miner - VIP+ โก โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ What is a trial? A trial is a chance for you to give any of my scripts a test run. After following the instructions below, you will receive unrestricted access to the respective script for 24 hours starting when the trial is assigned. Your trial request will be processed when I log in. The trial lasts for 24 hours to cater for time zones, such that no matter when I start the trial, you should still get a chance to use the script. Rules: Only 1 trial per user per script. How to get a trial: 'Like' this thread AND the corresponding script thread using the button at the bottom right of the original post. Reply to this thread with the name of the script you would like a trial for. Your request will be processed as soon as I log in. If i'm taking a while, i'm probably asleep! Check back in the morning Once I process your request, you will have the script in your collection (just like any other SDN script) for 24 hours. Private scripts: Unfortunately I do not currently offer private scripts. ________________________________________ Thanks in advance and enjoy your trial! -Apaec.1 point
-
Perfect Thiever AIO
1 pointThis is an AIO (All-in-one) bot that has almost every thieving style except blackjack, ask for a free trial by liking thread or making a post! Vyres and elves are now supported! Both can make solid profit per hour, decent passive income! BIG THANK YOU TO ALL OUR SUPPORTERS! WE ARE THE MOST SOLD THIEVING BOT IN OSBOT HISTORY. MOST REPLIES, MOST USERS, LONGEST PROGGIES #1 Thiever | Most Overall Sales | Most Total Replies | Most Results | 10+ Years Maintained | 'the intelligent choice' by Czar SUPPORTS VYRES 224M made in a single sitting of 77 hours 1.1B made from elves and vyres!! ELVES SUPPORTED TOO! (NEW) 2.1m/hr, 6 crystals in 7 hrs 99 THIEVING MANY MANY TIMES, 35M EXP IN ONE BOTTING RUN!! 99 thieving in ~43k xp (12 minutes remaining)! Just got 99 proggy! Gratz to @iz0n THIEVING PET AT LVL 22 FROM TEA STALLS 11.5 HOURS, WITH PET TOO!! 610k/hr getting 99s on deadman worlds!1 point
-
Bot is up and VIP is extended 5 days!!!
Sorry for the delay the bot should be back up! Post here with any problems.1 point
-
[JSOUP] Hiscores Lookup Snippet
1 point
-
buying 07 via ppal(balance)
1 point
-
Khal AIO Agility
1 point
-
Khal AIO Agility
1 point
-
Quick 100M sale @0.70$/M
1 point
-
maxed melee staker/main
1 point1 point
- Sundays?
1 point- Sundays?
1 pointany day is just a day. might be a small peak on weekdays because of manual bans but those aren't go to be huge. Rest is just normal fluctuation tbh1 point- Explv's Dank Paint Tutorial
1 point- Question about tracking osbot PID
Actually it turns out the problem is if my PID is 5 digits the first digit is getting chopped off when i extract it ?. Now just need to figure out why lol edit: just needed to delete !PIDS:~1,-1!, and added a small sleep Thanks!1 point- APA Script Trials
1 point- Prayers, coding problem or client?
Are you using injection or mirror mode? Also try the following: public boolean set(PrayerButton prayer, boolean activate) { if (getPrayer().isActivated(prayer) == activate || !getPrayer().hasLevelFor(prayer)) { return false; } if (!getPrayer().open()) { return false; } List<RS2Widget> prayerWidgets = getWidgets().containingSprite(541, prayer.getSpriteId()); if (!prayerWidgets.isEmpty() && prayerWidgets.size() <= 1) { return prayerWidgets.get(0).interact(activate ? "Activate" : "Deactivate"); } else { warn("A problem was encountered with identifying prayer button for " + prayer.toString()); return false; } }1 point- Hello, It's Spiderman
1 point- Prayers, coding problem or client?
Ok, so that indicates that this block of code, is not working for you: if (prayerRootID == -1) { Optional<RS2Widget> prayerIconWidget = getWidgets().getAll() .stream() .filter(w -> w.getSpriteIndex1() == Sprites.PRAYER_ICON_INSIDE_TAB) .findFirst(); if (!prayerIconWidget.isPresent()) { return false; } prayerRootID = prayerIconWidget.get().getRootId(); log("Found prayer root ID: " + prayerRootID); } That's strange because it works just fine for me: [INFO][Bot #1][09/23 11:35:17 AM]: Found prayer root ID: 541 Are you running mirror mode or injection? Also I missed the following line from my original snippet: private static int prayerRootID = -1 Make sure you have that as a variable if you don't already (refer to my updated snippet in the previous comment)1 point- Prayers, coding problem or client?
A sprite is: https://en.wikipedia.org/wiki/Sprite_(computer_graphics) In this case the sprite is the little sword icon for the prayer, and the sprite ID uniquely identifies that sprite. Ok so you say the sprite ID is 129, which is correct, there must be another issue here. Here is (roughly) the OSBot Prayer.set function, with some added debug log statements. Try using this function instead of the OSBot version, and tell me what the output in the log is. Maybe we can figure out what's breaking. private static int prayerRootID = -1; public boolean set(PrayerButton prayer, boolean activate) { if (getPrayer().isActivated(prayer) == activate || !getPrayer().hasLevelFor(prayer)) { return false; } if (!getPrayer().open()) { return false; } if (prayerRootID == -1) { Optional<RS2Widget> prayerIconWidget = getWidgets().getAll() .stream() .filter(w -> w.getSpriteIndex1() == Sprites.PRAYER_ICON_INSIDE_TAB) .findFirst(); if (!prayerIconWidget.isPresent()) { return false; } prayerRootID = prayerIconWidget.get().getRootId(); log("Found prayer root ID: " + prayerRootID); } List<RS2Widget> prayerWidgets = getWidgets().containingSprite(prayerRootID, prayer.getSpriteId()); log("Found prayer button widgets: " + Arrays.toString(prayerWidgets.toArray())); if (prayerWidgets.size() == 1) { return prayerWidgets.get(0).interact(activate ? "Activate" : "Deactivate"); } else { warn("A problem was encountered with identifying prayer button for " + prayer.toString()); return false; } }1 point- Prayers, coding problem or client?
The API looks for the protect from melee prayer using the sprite ID 129. The warning is raised when either no widget with that sprite ID is found, or more than 1 widget with that sprite ID is found. I don't have 43 prayer, so I cannot determine if this sprite ID is correct. I think the sprite ID is different if the prayer is disabled (for me it's 149). What you should do is debug the widget (541, 18, 1) using the widget debugger in the client (Settings -> Options -> Widget Debugger) and look at the value of Sprite ID 1 (enabled). If you have 43 prayer, and you are able to toggle protect from melee on and off, and the sprite ID is not 129, then you should file a bug report. Either way post here what you find.1 point- Hello!
1 point- Looking for shield of arrav and heroes quest
its been 2 minutes... i dunno if a services thread is gunna pick this one up mate. @Decode @Dbuffed @Hope1 point- AIO Construction
1 pointI've been using this for a while now. 30 minutes at a time tops, no ban so far. Pretty sexy script overall.1 point- New car
1 pointi got a 2018 hyundai elantra and my car notes only 290$ a month and 120 for insurance1 point- tryna prod
1 pointEither 43 prayer todo gangs training or just yolo barb fishing... -.- Don't want a ban though!1 point- Perfect Herblore AIO
1 pointHi, Some feedback: can you mix up the starting vial when making unfinished pots, it always clicks the first vial right now, very suspicious behavior1 point- tryna prod
1 point- 85 def zulrah
1 pointlike 60-65 cause 2 day. you're probably better off to just throw it on zul yourself and likely make 100m before ban1 point- Bot is up and VIP is extended 5 days!!!
Thanks for your honesty, I appreciate it. Happy anniversary!1 point- Bot is up and VIP is extended 5 days!!!
Real life happened and it's our fault. All of the developers were busy for a few days and I didnt properly report it to them due to me working long hours at work and my anniversary for my marriage was the other day.1 point- APA Rooftop Agility
1 pointHey, OSBot is having problems following the game update a couple of days ago. Please be patient while the developers work on fixing this Apa1 point- Khal Motherlode
1 pointThe thing is that it works perfectly fine for me ... So it must be you doing something wrong here Add me on skype: Khaleesi.bot or join my discord. EDIT: The client currently is having some problems, You need to wait for the devs to update Osbot to the game update of previous thursday1 point- Check to wait till npc is dead, and the loot is showing?
I would consider it bad practice as that would be a loop within a loop, when only the main script loop is necessary. Conditional sleeps are great in preventing your bot from spam clicking stuff; which just so happens to be the best use case for them. If you're killing chickens, it's best to attack a chicken then sleep until you're either in combat or that chicken has been stolen and is in combat with someone else. If you choose to sleep during the fighting phase, you're opening yourself up to unnecessary risk. Checking your health, looking good loot, or making sure you're in a safe area will become harder to implement as you'd have to check for all those inside of your conditional sleep. Instead, the main loop cycle should be where you run these checks, not inside of a conditional sleep.1 point- F2P Quest configs
1 pointHey guys I've been writing a F2P "Do it all" script and was slowly adding in quests. I found this thread to be very useful but not have all the quest so I though I should start a similar one with the quests I am adding to my script. Below will be the list of configs for different scripts and I'll be adding more as I add them to my script. If you have any questions feel free to ask. Rune Mysteries The Restless Ghost Goblin Diplomacy1 point- Perfect Fighter AIO
1 point- Perfect Fighter AIO
1 point- Perfect Fighter AIO
1 point- Perfect Fighter AIO
1 point- Perfect Fighter AIO
1 point- Perfect Fighter AIO
1 point - Sundays?