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
  • Try asking for help in the chatbox
  • Access the graphical output stream of running client


    Bot Tom Frag
     Share

    Recommended Posts

    Is there a way to actually access the raw data being rendered of the client itself? Like instead of an getClient().getCanvasImage() which gets a static image, have something like getClient().getGraphicalOutput() which would be the stream of data that gets rendered to the screen? Ideally I want to send the OSRS client output itself to a server for remote viewing. I looked in the docs but didn't see anything yet (still searching).

    I assume the Dreambot GUI application itself is rendered/handled within Swing or JavaFX, which I can't access from within a script. But can we access the graphical output stream of the running OSRS client itself maybe?

    Thanks.

    Link to comment
    Share on other sites

    11 hours ago, Nuclear Nezz said:

    I'm not sure I know what you mean.

    @Nuclear NezzMy fault, I don't have the strongest grasp on display pipelines/technology and their vocabulary.

    Maybe if I explain what I'm trying to build it will make more sense. I basically want to be able to hit a url, and from there view any of my bots running on my farm.
    Example: http://mybotfarm.ml/watch?botID=1
    Hitting this link brings me to a stream where I can see my bot running in real-time (just the game client itself). Of course I could just VNC view the whole remote server's desktop, but if I have multiple clients running on each server, then I can't relly specify the specific bot I want to watch, and the clients have to be launched side by side so they're all visible at once. not to mention I'd have to switch to the right tab on each client to display each running account.

    So in my mind the best way to do this is to get the physical PixelMap that's being output to some kind of renderer to be displayed.

    I think that I've found some kind of solution, @Hashtag mentioned in this post that you can grab viewport pixels, and with that I could probably build my own graphical stream. I'm just worried this will be janky and it may mess with a running script's behaviour or response time (since I'm pulling the viewport data once every script loop). I'll be testing this out but I figured I'd post incase anyone has any better ideas or has done this before.

     

    Link to comment
    Share on other sites

    22 hours ago, Bot Tom Frag said:

    @Nuclear NezzMy fault, I don't have the strongest grasp on display pipelines/technology and their vocabulary.

    Maybe if I explain what I'm trying to build it will make more sense. I basically want to be able to hit a url, and from there view any of my bots running on my farm.
    Example: http://mybotfarm.ml/watch?botID=1
    Hitting this link brings me to a stream where I can see my bot running in real-time (just the game client itself). Of course I could just VNC view the whole remote server's desktop, but if I have multiple clients running on each server, then I can't relly specify the specific bot I want to watch, and the clients have to be launched side by side so they're all visible at once. not to mention I'd have to switch to the right tab on each client to display each running account.

    So in my mind the best way to do this is to get the physical PixelMap that's being output to some kind of renderer to be displayed.

    I think that I've found some kind of solution, @Hashtag mentioned in this post that you can grab viewport pixels, and with that I could probably build my own graphical stream. I'm just worried this will be janky and it may mess with a running script's behaviour or response time (since I'm pulling the viewport data once every script loop). I'll be testing this out but I figured I'd post incase anyone has any better ideas or has done this before.

     

    I mean at that point you might as well just use the image. Is there a reason the image doesn't work for you?
    Just re-send the image every second, you'll be able to see an up to date video of your bots, and if something is wrong you vnc to it for a more responsive video.

    Link to comment
    Share on other sites

    Yeah, I'm just worried it might be janky, inefficient or affect scripts since it's on the same set of resources as the script itself. But I'm gonna try both see which one works best and post with a solution. Thanks.

    Link to comment
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
     Share

    ×
    ×
    • 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.