Jump to content
Frequently Asked Questions
  • Are you not able to open the client? Make sure you have Java installed
  • Still not working? Try downloading and running JarFix
  • Help! My bot doesn't do anything! Enable fresh start in client settings and restart the client
  • How to purchase with PayPal/OSRS gold? You can purchase vouchers from other users
  • Try asking for help in the chatbox
osrs gold

Interested in advertising your business? Reach out today!


  • Content Count

  • Joined

  • Last visited

  • Days Won


Realistic last won the day on September 10

Realistic had the most liked content!

About Realistic

  • Rank

Profile Information

  • Interests
    FOSS, Linux

Recent Profile Visitors

46 profile views
  1. Hi all, I am still wrapping my head around Java and its "50+ Common design patterns!". Any advice on how to achieve my goal would be awesome. My goal : To be able to take a "Snapshot" of the players current state (Inventory, equipment, location, ECT...), take the delta from the players current state and be able to essentially say "Go to new state". Each object will have its own abstracted logic that tells the script how to obtain it (GE, fishing, woodcutting ETC...). This logic can be split up to be area specific (tutorial island), item type specific IE: cooked fish = raw fish + heat OR iron bar + hammer + smiting level + anvil (contains location) = iron dagger OR rock + pickaxe + level = ore. Current Approaches: Make item type classes, item classes, and code specific ways to obtain the items for each class. This would involve making a class with specific implementation details for each item in the game. Most general actions could be inherited. Code generic classes that will handle most item logic, add item relationships to a graph or relational DB. The main difference here would be the item relationships would be stored in a DB not code. Similar to a graph/relational DB create a vector set (like Word2Vec) that contains all the item relationships. Advantages: Having a system like this will allow extremely simple script to do complex actions with very little coding. Multiple developers could contribute and quickly add many items. Could be compiled to a JAR or be an open DB that any DreamBot developer could access to improve scripter productivity on the Dreambot platform. Any and all advice would be awesome! If anyone would like to help me create this I would love to work with some other devs from the community. If/when this system is created I am planning on posting it on GitHub for all Dreambot devs to use.
  2. I could be wrong but: There are multiple "layers". The client it's self uses ram, the JVM uses ram, the script uses ram, and the game uses ram. When I start the client on Windows 10 it uses ~300 MB. When I log into RS I start using closer to 400. This is without a script running. When I start a script it will go up a little to ~425-450 MB. And DB3 is only reporting ~100 MB used AFTER I log in. I am able to increase my ram usage to ~600 MB if I change my "Max Memory" to 1024 MB in the DB3 Launcher and ~ 200 MB reported by DB3. If I had to take another guess the higher the max memory is set the less often the Java Garbage Collector will run, so the memory will stay higher. Also, that JVM are you using? The one that comes in the Debian repos? JVM versions can change quite a bit.
  3. Woooh! Would it be correct to assume all the code that will be deprecated in Dec/Feb is currently marked in the DB3 RC1 as deprecated?
  4. I actually started doing this in a private git repo. I didn't get very far... I would love to convert my open source tutorial island script into a tutorial that includes how to walk, interact with NPCs/ GameObjects/Items/widgets, combat,TaskScripts, ect... I would start by making short tutorials about each concept, then rolling it all up and use the tut island script as a final product. I have a decent amount of Markdown experience.
  5. Awesome! Because it is an RC I am assuming the API is stable now?
  6. This might not be the best place to ask this, but is there a good way to debug/profile a JAR running in dreambot? I don't know much about Java debugging.
  7. It could either do some NLP on the Arrav CC or run two of the bots at the same time and put their respective names in a config file/have them friend each other. A simple message between them should be enough to coordinate. But that will probably be one of the latter quests I write. Thank you for brining it up
  8. Hi all, I am finishing up my first script, a free tutorial Island DreamBot3 script, and I am trying figure out what I want to make next! Would y'all want a free script that takes an account from right after tutorial island and completes all the F2P quests at the same time (except dragon slayer) in ~2-3 hours? I am basing the idea off of this EVScape vid. Let me know if this is something you would want!
  9. Ops, missed checking for the item to actually be made... Thanks. As far as I can tell isOnScreen does not check if anything is in the way. I did a bunch of testing with it , and NPC and a wall and could not get isOnScreen to return false if there was a wall in the way. Using rotate to NPC can sometimes move the camera behind an object. For instance if I do rotate to NPC with the mining tutor sometimes the camera ends up behind a stalactite and the script will just click through it. Not great
  10. Will do! I am still trying to figure out the best way to use java classes for consts like this. Ideally I would like to be able to do `item.hammer` and have it create an instance of the Item("Hammer") that I could just use. I was thinking about writing a wrapper that could handle ground and inventory items by doing this. Thoughts? Because I don't know how java primitive types work... I didn't really know that Boolean was different from boolean. I am going to change them to primitives... Good point! I will refactor it to only use static methods unless I am in a TaskNode I started writing a bunch of helper/wrapper classes when I was completely unfamiliar with the DB3 API and most of them are redundant and error prone. I will remove some of them/redo some of them in a refactor. Thank you for your feedback Pandemic!
  11. Promise low, deliver slightly less low Ah. Thanks. I missed those. I will go back and make sure all of them are in the consts file. I didn't know game object ids changed. Good to know. So if I am looking one up it should be by name? I will also add in some null checks. Thanks Question: I am working on a class that detects if an object/NPC is behind a wall or hard to see and will move the camera before interacting with it. Any suggestions? I am trying to use 3d to 2d projection using org.dreambot.api.methods.ViewportTools and some other classes. I am sure I missed something and there is an easy way to tell of something is occluded.
  12. Realistic

    Area maker

    4 years latter and this is still working well
  13. Realistic

    Random click

    When you start a script DreamBot will run some "RandomEvent" solvers. This includes disabling roofs, changing the zoom level, changing the client to fixed mode from resizable ect... It could be one of those random event solvers running. Does the screen flash red when logging in with the script/when it first starts?
  14. I finally finished it. Here is the topic with the source code. Thank you for your snippet!
  15. Hey all, I just finished making my first script! I developed it using the DB3 beta JAR. Here is the source on Github! Right now it is NOT meant for public use, but aimed at showing devs a decent, large DB3 example and getting feedback from other devs about how I can improve. It includes most things that any bot will do. I tried to follow the new DB3 best practices IE: Widgets.getClosest not getWidgets ETC... I did not use any methods that will be deprecated in DB3. That being said THIS IS NOT PERFECT. I am new to Java/Scripting and want any and all feedback! Please post a comment or open a PR/Issue on GitHub if you notice anything I did wrong, bugs, or have any suggestions. NOTE: This script is still not a 1.0 release and has some (lots of) bugs! It is also missing some features (paint), and it does some very sketchy things (Clicking through walls...). I am working on improving the utils I wrote to be more Realistic(TM) and I will be updating the repo on a regular bases. I will be pushing this to the DB script repo as a free script as soon as I am happy with it and DB3 is released. Until then, have fun looking through the code and running it from source! Read the README.md! More details about the script: I tried something kind of weird. The script extends TaskScript and using TaskNodes (standard), but I decided to use a double layered state machine. The layers are in two files: ScriptState and TaskState. The script is broken into ScriptState (each tutor), and TaskStates (each step to complete a tutor). The ScriptState keeps track of what TaskNode(tutor) should be run, and the second state machine is essentially a double linked list of jobs that need to be completed for each tutor. The actual TaskNode.execute() just runs the TaskState in each Java file. While each enum in TaskState contains its own logic that decides if it should be run, what it should do, and what task is next. This was a fun little experiment to try, and it seems to work well, At least for simple linear tasks. I am going mess around with a slight variation it in my next project. In that one the logic that tells the TaskState if it should be run will be pulled into a hash table/B-tree and the current player state will be checked vs that to decide what to do. I think Pandemic posted something along this line already. I have also started working on another git repo that contains useful snippets, DB3 vs DB2 code, and any open source DB scripts that I can find. I will be making a post about that in the next couple of days. Thank you to @holic for providing the snippet I used to generate names. See their original topic here. P.S. If you want a good laugh take a look at the GIT history and how HORRIBLE the first 3 or so iterations were. I mean it is still pretty bad, but not as bad as it used to be.
  • Create New...