Jump to content
Frequently Asked Questions
  • Are you not able to open the client? Try following our getting started guide
  • 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/Crypto gold? You can purchase vouchers from other users
  • Semper Fi

    $100 Donor
    • Posts

      1920
    • Joined

    • Last visited

    • Days Won

      4

    Reputation Activity

    1. Like
      Semper Fi reacted to holic in WindMouse - Custom Mouse Movement Algorithm   
      Hey all,
      Since DB3 officially supports custom mouse algorithms I thought I would port over a classic one: WindMouse.
      WindMouse was written by BenLand100 for SCAR some years back (maybe 10 years?) and has been used on so many damn bots throughout the years because it functions really well so it only seemed right to bring it here.
      In the source code below, there are two implementations of WindMouse:
      Point windMouse(int x, int y) Which comes directly from the SMART github with minor adjustments to work with DB3.
      Better in fixed mode.
        void windMouse2(Point point) My tweaked version from years back that supports all screen sizes.
      I've added a random point between the original and the destination point if the distance between them is large to feel more human but has a 50% chance of happening. By default my implementation is the active algorithm (as it handles all sizes), swap the comments in handleMovement to change to the original.
       
      To use it, simply add the file WindMouse.java to your project and add the following to your onStart method:
      Client.getInstance().setMouseMovementAlgorithm(new WindMouse());  
      All credits go to Benjamin J. Land a.k.a. BenLand100
      WindMouse.java:
      /** * WindMouse from SMART by Benland100 * Copyright to Benland100, (Benjamin J. Land) * * Prepped for DreamBot 3 **/ import org.dreambot.api.Client; import org.dreambot.api.input.Mouse; import org.dreambot.api.input.mouse.algorithm.MouseMovementAlgorithm; import org.dreambot.api.input.mouse.destination.AbstractMouseDestination; import org.dreambot.api.methods.Calculations; import org.dreambot.api.methods.input.mouse.MouseSettings; import java.awt.*; import static java.lang.Thread.sleep; public class WindMouse implements MouseMovementAlgorithm { private int _mouseSpeed = MouseSettings.getSpeed() > 15 ? MouseSettings.getSpeed() - 10 : 15; private int _mouseSpeedLow = Math.round(_mouseSpeed / 2); private int _mouseGravity = Calculations.random(4, 20); private int _mouseWind = Calculations.random(1, 10); @Override public boolean handleMovement(AbstractMouseDestination abstractMouseDestination) { //Get a suitable point for the mouse's destination Point suitPos = abstractMouseDestination.getSuitablePoint(); // Select which implementation of WindMouse you'd like to use // by uncommenting out the line you want to use below: //windMouse(suitPos.x, suitPos.y); //Original implementation windMouse2(suitPos); //Tweaked implementation return distance(Client.getMousePosition(), suitPos) < 2; } public static void sleep(int min, int max) { try { Thread.sleep(Calculations.random(min,max)); } catch (InterruptedException e) { log(e.getMessage()); } } public static void sleep(int ms) { try { Thread.sleep(ms); } catch (InterruptedException e) { log(e.getMessage()); } } /** * Tweaked implementation of WindMouse * Moves to a mid point on longer moves to seem a little more human-like * Remove the if statement below if you'd rather straighter movement * @param point The destination point */ public void windMouse2(Point point) { Point curPos = Client.getMousePosition(); if (distance(point, curPos) > 250 && Calculations.random(1) == 2) { Point rp = randomPoint(point, curPos); windMouse2(curPos.x, curPos.y, rp.x, rp.y, _mouseGravity, _mouseWind, _mouseSpeed, Calculations.random(5, 25)); sleep(1, 150); } windMouse2(curPos.x, curPos.y, point.x, point.y, _mouseGravity, _mouseWind, _mouseSpeed, Calculations.random(5, 25)); _mouseGravity = Calculations.random(4, 20); _mouseWind = Calculations.random(1, 10); _mouseSpeed = Calculations.random(_mouseSpeedLow, MouseSettings.getSpeed()); } /** * Tweaked implementation of WindMouse by holic * All credit to Benjamin J. Land for the original. (see below) * * @param xs The x start * @param ys The y start * @param xe The x destination * @param ye The y destination * @param gravity Strength pulling the position towards the destination * @param wind Strength pulling the position in random directions * @param targetArea Radius of area around the destination that should * trigger slowing, prevents spiraling */ private void windMouse2(double xs, double ys, double xe, double ye, double gravity, double wind, double speed, double targetArea) { double dist, veloX = 0, veloY = 0, windX = 0, windY = 0; double sqrt2 = Math.sqrt(2); double sqrt3 = Math.sqrt(3); double sqrt5 = Math.sqrt(5); int tDist = (int) distance(xs, ys, xe, ye); long t = System.currentTimeMillis() + 10000; while (!(Math.hypot((xs - xe), (ys - ye)) < 1)) { if (System.currentTimeMillis() > t) break; dist = Math.hypot((xs - xe), (ys - ye)); wind = Math.min(wind, dist); if ((dist < 1)) { dist = 1; } long d = (Math.round((Math.round(((double) (tDist))) * 0.3)) / 7); if ((d > 25)) { d = 25; } if ((d < 5)) { d = 5; } double rCnc = Calculations.random(6); if ((rCnc == 1)) { d = 2; } double maxStep = (Math.min(d, Math.round(dist))) * 1.5; if ((dist >= targetArea)) { windX = (windX / sqrt3) + ((Calculations.random((int) ((Math.round(wind) * 2) + 1)) - wind) / sqrt5); windY = (windY / sqrt3) + ((Calculations.random((int) ((Math.round(wind) * 2) + 1)) - wind) / sqrt5); } else { windX = (windX / sqrt2); windY = (windY / sqrt2); } veloX += windX + gravity * (xe - xs) / dist; veloY += windY + gravity * (ye - ys) / dist; if ((Math.hypot(veloX, veloY) > maxStep)) { maxStep = ((maxStep / 2) < 1) ? 2 : maxStep; double randomDist = (maxStep / 2) + Calculations.random((int) (Math.round(maxStep) / 2)); double veloMag = Math.sqrt(((veloX * veloX) + (veloY * veloY))); veloX = (veloX / veloMag) * randomDist; veloY = (veloY / veloMag) * randomDist; } int lastX = ((int) (Math.round(xs))); int lastY = ((int) (Math.round(ys))); xs += veloX; ys += veloY; if ((lastX != Math.round(xs)) || (lastY != Math.round(ys))) { Mouse.hop(new Point((int) Math.round(xs), (int) Math.round(ys))); } int w = Calculations.random((int) (Math.round(100 / speed))) * 6; if ((w < 5)) { w = 5; } w = (int) Math.round(w * 0.9); sleep(w); } if (((Math.round(xe) != Math.round(xs)) || (Math.round(ye) != Math.round(ys)))) { Mouse.hop(new Point(((int) (Math.round(xe))), ((int) (Math.round(ye))))); } } /** * Internal mouse movement algorithm from SMART. Do not use this without credit to either * Benjamin J. Land or BenLand100. This was originally synchronized to prevent multiple * motions and bannage but functions poorly with DB3. * * BEST USED IN FIXED MODE * * @param xs The x start * @param ys The y start * @param xe The x destination * @param ye The y destination * @param gravity Strength pulling the position towards the destination * @param wind Strength pulling the position in random directions * @param minWait Minimum relative time per step * @param maxWait Maximum relative time per step * @param maxStep Maximum size of a step, prevents out of control motion * @param targetArea Radius of area around the destination that should * trigger slowing, prevents spiraling * @result The actual end point */ private Point windMouseImpl(double xs, double ys, double xe, double ye, double gravity, double wind, double minWait, double maxWait, double maxStep, double targetArea) { final double sqrt3 = Math.sqrt(3); final double sqrt5 = Math.sqrt(5); double dist, veloX = 0, veloY = 0, windX = 0, windY = 0; while ((dist = Math.hypot(xs - xe, ys - ye)) >= 1) { wind = Math.min(wind, dist); if (dist >= targetArea) { windX = windX / sqrt3 + (2D * Math.random() - 1D) * wind / sqrt5; windY = windY / sqrt3 + (2D * Math.random() - 1D) * wind / sqrt5; } else { windX /= sqrt3; windY /= sqrt3; if (maxStep < 3) { maxStep = Math.random() * 3D + 3D; } else { maxStep /= sqrt5; } } veloX += windX + gravity * (xe - xs) / dist; veloY += windY + gravity * (ye - ys) / dist; double veloMag = Math.hypot(veloX, veloY); if (veloMag > maxStep) { double randomDist = maxStep / 2D + Math.random() * maxStep / 2D; veloX = (veloX / veloMag) * randomDist; veloY = (veloY / veloMag) * randomDist; } int lastX = ((int) (Math.round(xs))); int lastY = ((int) (Math.round(ys))); xs += veloX; ys += veloY; if ((lastX != Math.round(xs)) || (lastY != Math.round(ys))) { setMousePosition(new Point((int) Math.round(xs), (int) Math.round(ys))); } double step = Math.hypot(xs - lastX, ys - lastY); sleep((int) Math.round((maxWait - minWait) * (step / maxStep) + minWait)); } return new Point((int) xs, (int) ys); } /** * Moves the mouse from the current position to the specified position. * Approximates human movement in a way where smoothness and accuracy are * relative to speed, as it should be. * * @param x The x destination * @param y The y destination * @result The actual end point */ public Point windMouse(int x, int y) { Point c = Client.getMousePosition(); double speed = (Math.random() * 15D + 15D) / 10D; return windMouseImpl(c.x, c.y, x, y, 9D, 3D, 5D / speed, 10D / speed, 10D * speed, 8D * speed); } private void setMousePosition(Point p) { Mouse.hop(p.x, p.y); } private static double distance(double x1, double y1, double x2, double y2) { return Math.sqrt((Math.pow((Math.round(x2) - Math.round(x1)), 2) + Math.pow((Math.round(y2) - Math.round(y1)), 2))); } public double distance(Point p1, Point p2) { return Math.sqrt((p2.y - p1.y) * (p2.y - p1.y) + (p2.x - p1.x) * (p2.x - p1.x)); } public static float randomPointBetween(float corner1, float corner2) { if (corner1 == corner2) { return corner1; } float delta = corner2 - corner1; float offset = Calculations.getRandom().nextFloat() * delta; return corner1 + offset; } public Point randomPoint(Point p1, Point p2) { int randomX = (int) randomPointBetween(p1.x, p2.x); int randomY = (int) randomPointBetween(p1.y, p2.y); return new Point(randomX, randomY); } }  
      Happy botting!
    2. Like
      Semper Fi reacted to Hoodz in DreamBot 3 Progress Update - 09/16/2016   
      RIP db3 meme
    3. Like
      Semper Fi reacted to DrWoolyNipple in I am gods chosen programmer, I am the best programmer on the planet   
      God has told me that I am his chosen programmer. I have followed his instrucitons and wrote a fully sentient AI that can FROG

    4. Like
      Semper Fi reacted to EthanHatesYou in Ethan's Account Creator   
      Built it to make accounts for my PacketBot, maybe you guys will find useful.
      Github
      It's very stable, light-weight, and multi-threaded.
       
      Accounts are saved to Desktop as "New Accounts.txt"
       
      Feel free to change the way emails are generated to better suite you.
       

       
       
    5. Like
      Semper Fi reacted to Gains in Gains Cannonballer [~30k Smithing xp/h] - [~230k gp/h] - [QuickStart support] - [Low requirements]   
      Click here to receive a one-hour trial
       
      Features:
      Supports Double ammo mould. Melts each Steel bars into Cannonballs at Edgeville. Displays the current G.E. prices and profit in the console. Supports QuickStart.  
      Requirements:
      Have Dwarf Cannon quest completed. Have at least 35 Smithing.  
      Instructions:
      Have Double ammo mould or Ammo mould in inventory. Have Steel bars in inventory.  
      Estimated profit per hour (prices may be outdated, check them yourself):
      Input
      1,100 x Steel bars = 464,200 gp
      1 x Double ammo mould
      Output
      4,400 x Cannonballs = 695,200 gp
       + 231,000 gp and  + 27,500 xp
       
      Input
       550 x Steel bars = 232,100 gp
        1 x Ammo mould
      Output
       2,200 x Cannonballs = 347,600 gp
       + 115,500 gp and  + 13,750 xp
       
      Feedback:
       
      QuickStart:
      Because this script doesn't have any parameters, type null. Example: -params null  
      Click here to leave a review for the script
       
    6. Upvote
      Semper Fi reacted to Defiled in DreamBot Client Won't Open Solution   
      Hello Everyone,
      This thread has been suggested by @Infidel , due to the high amount of people experiencing this problem when first starting their botting journey.
      I've listed 2 methods you could attempt, so let's get started!
      1) Client won't open when DBLauncher.jar is clicked.
      This may be due to several reasons but most commonly it's because your computer may lack Java 8 OR It has it but your computer also has other versions installed on it and when you try to load any Java applications, the higher version (Which would be probably set to default) loads the JAR file instead of Java 8.
      So.. what should you do? 🤔🤔🤔
      First let's check the Java version installed and used on your Computer/PC! You can do that by:
      1) Opening the Command Prompt (CMD) -> Search CMD in the start menu OR Terminal for Mac.
      2) Type in 
      java -version and you'll be faced with the following details:

      If the java version doesn't output "1.8" then you could be either of these situations:
      1) You have Java 8 Installed but the system is using another version.
      2) You do not have Java 8 Installed.
      Before continuing if you are sure you do not have Java 8 installed/downloaded: click here to download JDK/JRE 8 . 
      To check whether you have Java 8 Installed or not:
      Windows:
      head over to your Java folder located in your Program Files / Program Files (64bit)

      You'll see all Java versions that are installed on your PC.
      Mac OS: (Paste this in Terminal)
      which java It'll output the current Java version installed.
       
      Now we will set the Environmental Path (To tell your system to use Java 8 )
       
      Get the Path To Your Java Installation:
       
      To fetch the Java Path:  
      Mac OS: (Terminal)
      which java Windows OS: (CMD)
      where java This gets the path of every Java Installation you have! Copy the Java 8 Path
       
       
      Setting the Environmental Path: (Assigning Java 8 as the default Java version)
      for Mac OS:
      Run the following command in your Terminal: (Make sure to change the Java version "Orange number" to the version you found in your Java folder)
      % /usr/libexec/java_home -v 1.8.0_73 --exec javac -version  
      for Windows:
      Run the following command in your Command Prompt (CMD): (Change the path (blue text) to the path of your Java Installation)
      setx -m JAVA_HOME "C:\ProgramFiles\Java\jdk1.8.0_XX"  
      Testing:
      Restart CMD/Terminal and type in
      java -version If it displays 1.8, then everything worked great!
       
      If you guys have any questions, please do leave a comment and I'll answer them to the best of my knowledge!
      Have a good one guys!
    7. Like
      Semper Fi reacted to oh okay in FREE - Rietflipper - fully automated runescape flipping with tons of features   
      Hello guys, i'm in the final stages of finishing my hobby project for the last few months which is a fully automated runescape grand exchange flipper.
       

       
       
      It has a nice interface and tons of features to optimize your flipping profit
      Feature List:
      Automatic scraping for items inbetween a certain price range Automatic removal of items which are not selling Automatic price updating after each flip Unbreakable and will run 20+ hours without problem Huge profits if used correctly Tons more...  
      I will be releasing this tool for free in the next coming weeks, if you want to be a beta tester or look into the source code you can PM me and I will gladly help you out 🙂
    8. Upvote
      Semper Fi reacted to elixr in ✨ Elixr Premium GFX Shop ✨   
      ⭐ Elixr's Premium GFX Shop ⭐
      Creating professional Avatars, Banners, script paint & much more!
      ★ AVATARS ★

         
       
      ★ BANNERS ★



       
       
      Contact me on discord for prices or more examples.
      Discord: elixr.#6666 (UID: 305519298254864385)
       
    9. Upvote
      Semper Fi reacted to GenericMeme46 in My PvP AI - genericAI   
    10. Upvote
      Semper Fi reacted to yeeter in WINDOWS | DreamBot Automated Install/Setup   
      Automating the Install and Setup Process of DreamBot
            Thought I would throw a quick tutorial together about the approach I am taking to automatically install/setup/start the initial instance(s) of DreamBot for my newest farm.  One major concern with my newest farm was time spent actually setting up VMs and bots.  My previous farms all closed up shop eventually due to horrible time management on my part.  So I am a major proponent for automation of repetitive task.  I personally am using Docker instances and have scripts similar to the ones I have posted below run on creation of the docker instance so the farm is ready to go the moment I sign into the docker instance.  
      *** Disclaimer *** Not saying this is the best way  to do it, this is just what I ended up botching together to save me 10 minutes each time I spool a new instance up. 
       
      What's it do tho?
            This will vary depending on your setup but the base command I will be showing will download the DreamBot launcher (DBLauncher.jar), run the first time setup/update, kill this launcher instance, then startup your bot instance(s).  This script is using the built in windows commands this could also be done in PowerShell, and for other operating systems that I might make guides for in the future but my primary botting environment uses Windows so Windows it is.
      Going to breakdown the script section by section then show an example put together.
       
      Creating a place to store my DreamBot things
            For consistency sake I store any data output such as screenshots, accounts, reports, heatmaps, spreadsheets etc in a folder on my desktop called "DreamBot" across all my VMs.  This is where I also store bot client launchers because I currently use multiple clients.  Just keeps everything contained and clean.  
      mkdir %HOMEPATH%\Desktop\DreamBot && cd %HOMEPATH%\Desktop\DreamBot I create the DreamBot folder to store my shit in using the mkdir %HOMEPATH%\Desktop\DreamBot this command creates the folder on the VMs desktop.  Using && to execute the following cd command to change directories to the directory I just created.  Ez Pz.
       
      Downloading the DreamBot Launcher
            The DreamBot launcher can be downloaded from this link -> https://dreambot.org/DBLauncher.jar (This can be checked by clicking the download link in the forum header).  We will be using cURL a tool built into Windows to allowing us to grab the DBLauncher.jar from DreamBots website.
       
      curl -O https://dreambot.org/DBLauncher.jar Please note that -O is an UPPERCASE O.  Using the uppercase -O will automatically name the downloaded file its original name.  While using a lowercase -o you will need to provide your own output name.  I wasted a lot of time not noticing that while debugging my initial test runs of this. 
      This will download DBLauncher.jar to whatever the current directory is pointed at (ideally the DreamBot folder on the desktop I just made).
       
      First Time Launch/Update and kill
            So now that we have DBLauncher.jar on our system we need to execute it so we can pull the latest client.jar and other DreamBot resources.  Once this is done we can use QuickStart functionality to launch bot instances via CLI or a bot manager.  We need to use the "start" command so that the launching of the DBLauncher.jar does not suspend our script.  Without the start command the remaining commands will not be executed until DBLauncher.jar is manually closed.  Using start will allow execution of the script to continue while DBLauncher.jar does its thing. 
      start java -jar DBLauncher.jar We want to assure we give the DreamBot launcher enough time to complete its setup/updates so we will call the timeout command to wait a few seconds before we kill the launcher instance.  The length of the timeout will vary depending on your setup so adjust it how you see fit.   
      timeout 5 && taskkill /f /im java.exe Using the timeout command we can wait X amount of seconds I generally just do 5.  Hopefully within those 5 seconds the DreamBot launcher did whatever it needs to do because we then kill java.exe shutting anything Java related down.  (again with probably not the best way to do this but nothing should be running on my VMs at this point so just killing Java isn't going to hurt anything else).
       
      Initial setup is complete!
            At this point DreamBot is ready for botting!  Anything after this point is just using DreamBots QuickStart feature to create bot instances.  Not going to rewrite Nezz's entire QuickStart tutorial so just take a glance at his original thread its a great tool.
       
      Signing into the client with QuickStart
            Like I said not going to redo Nezz's entire QuickStart tutorial but thought I would throw in a simple example of signing into the client once the setup is complete so you can run the command and come back to a ready to go botting environment.
      java -jar %homepath%\DreamBot/BotData/client.jar -username yourOwnUsername -password yourOwnPassword If you look into QuickStart you can do a LOOOOOT of cool things with it.  Super useful tool to abuse when you are trying to save as much time as you can running a farm. 
       
      Full command!
            You can add a lot of extra functionality to a command or script like this such as pulling resources your farm might need if you throw them on a local web server and use cURL to transfer them to the VMs during the execution of the script.  Again with there are probably sections of this that are sub-optimal or botched to all hell but it was simple and quick for me to throw together and will save me time in the future.  
      mkdir %HOMEPATH%\Desktop\DreamBot && cd %HOMEPATH%\Desktop\DreamBot && curl -O https://dreambot.org/DBLauncher.jar && start java -jar DBLauncher.jar && timeout 5 && taskkill /f /im java.exe && java -jar %homepath%\DreamBot/BotData/client.jar -username yourOwnUsername -password yourOwnPassword  
      Any questions/issues/suggestions just shoot me a message.  I do plan on making a version of this for Linux as well because at some point I would like to go back to using Linux OS's for botting.  I just had Windows server keys so I have been using them.  
      If anyone does this differently I would love to hear how you guys do this.  I start and kill docker instances a lot due to my servers being used for more than just botting so depending on resource consumption I might have to nuke some docker instances for a bit then spin them back up later or spin up new ones. 
       
       
    11. Like
      Semper Fi reacted to DaffyDubz in Lumby Goblin Slayer [FREE]   
      DaffyDubz Northern Lumby Goblin Slayer
      (Now available on SDN!)
      ABOUT:
      So this script is a small part of a much lager script I'm working on. Just getting a feel for the API and such. The idea is for training new accounts, this script will kill Goblins, eat (any) food if you have any in your inventory, and loot stack-able loot and clues if you elect to do so via the GUI. You can also set the maximum level to train as well as if you want to train Att, Str, and/or Def. I highly recommend you set up your breaks in the DB client, I personally use 2, first a small (10-30 minute) break every hour or so, and then a large (7-12 hours) sleep every 5-8 hours. (NOTE: I did receive a ban when I did not use the long break, I was using the small break [I think] and was banned after 10-12 hours straight.) Honestly, this was not intended for levels higher than 30-30-30, but I was able to achieve 40+ - 40+ - 40+ on several accounts with the mentioned breaks above, so make sure to keep it under 5-6 hours without breaks. 
       
      HOW TO USE:
      Start anywhere in F2P on Runescape Surface (Preferably in/near Lumby) with weapon/armor already equipped (Does Not Support Changing Weapon/Armor) and ANY food (if needed) in Inventory (Does Not Support Banking). Run the script and configure your settings via the GUI (see below) Select what stats to train (Prayer Not Supported) and what Loot to pickup (deselect all if you don't want to Loot) and hit START. {NOTE: It only changes the Combat Style [Att, Str, Def] every few minutes, so if you set the max to something like 15, there's a chance it will get a level higher than 15. I'll look into checking the level for max more often, but for now just set it 3-4 levels below your absolute max if you really don't want it to be over your max}
       
      RECOMMENDATIONS:
      5 Att (from dummies) Steel Scim and full Iron armor - should only need about 6-10 cooked chickens before you wont need food anymore
      On fresh account with bronze long and wooden shield - go get a full inventory of cooked chicken and do not train higher than 20-20-20 without getting better armor and weapon.
       
      POSSIBLE FUTURE FEATURES: (Definitely in the "Larger Script" mentioned above, but  most of these are unlikely in this script)
      Other locations, Loots Bones + Bury for Prayer, Banking + non stack-able loot, Changing weapons/armor, Kill Chickens/Cows + cook meat for food, World hopping, using the G.E., and much more...
      This Larger Script I keep mentioning is something I plan to use to get a small army (farm) to 60-60-60 and above in F2P, killing several different monsters in several different locations. Basically a "Play Runescape for you" script that focuses on Combat, starting with a fresh account off Tutorial Island. My free time is limited (adult-ing sucks) so don't expect it any time soon, but I hope to have it be a nice "Pure Starter" as well. 
      Yes I know this script is not extremely useful, but I wanted to get the ball rolling and get some feed back as I expand it. Plus I'm still using it and didn't want to make this spot too hot as it's the only supported location as of right now. Please provide any feedback and post some Proggies as well!
       
      GUI + PROGGIES:
      Nothing Fancy, GUI appears when script is started, Proggy appears when Script Ends.


       
      Enjoi!
       
    12. Like
      Semper Fi reacted to NovaGTX in DreamBot 3 Progress Update - 09/16/2016   
      I already have....

    13. Like
      Semper Fi reacted to Articron in DBUI - Custom GUI look & feel API   
      So I wrote a small L&F library for Java Swing and I figured it would be cool to release it, considering it's been a while since I've posted anything in the educational section  It would be cool to see those boring default GUIs disappear over time 
      I'm making this open source, and others are more than welcome to contribute to the cause because it's far from finished: DBUI Github page
      A picture of what it looks like:

      What's cool about this is that you're allowed to use this in SDN scripts, to give your scripts a bit more of that visual OOMF  
      Basically, you can incorporate this UI by just changing any JComponent's name to DreamComponent. For example: JTextField = DreamTextField, JButton = DreamButton, ....
      You can find an example called "ScriptFrame" in there too.
    ×
    ×
    • Create New...

    Important Information

    We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.