Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

Sign up now!

VisualRM [DEV]

Joined
May 13, 2018
Messages
1
I was writing a script to chop 3 oak trees east from grand exchange, and I needed a condition to check if a player is at approximate coordinates, so I used player condition - position equals maybe 8 times, to check if player is in that area. Can you implement - approximate position equals or something? Or am I missing something? Thanks. Btw very good tool. I already see high potential in it. Sry if my english is bad :)
 
Would it be possible to create good reliable blast furnace script with this tool?
 
Joined
Sep 11, 2017
Messages
1
Great thing youve got here, anyone know where i can find a list of all varbits?
Also, i cant manage to activate overhead prayers from the action bar do they have to be in a particular slot or have a specific keybind?
 
Last edited:
Niche bots at your disposal
Joined
Dec 23, 2015
Messages
1,099
I was writing a script to chop 3 oak trees east from grand exchange, and I needed a condition to check if a player is at approximate coordinates, so I used player condition - position equals maybe 8 times, to check if player is in that area. Can you implement - approximate position equals or something? Or am I missing something? Thanks. Btw very good tool. I already see high potential in it. Sry if my english is bad :)
 
Would it be possible to create good reliable blast furnace script with this tool?

You'd better use a Calculation condition and check if distance to Coordinate is < then a certain value. (Do note in the current version it is kinda bugged. But an update has been in queue for a few days now. Yes blastfurnace is certainly possible. I personally am not an OSRS player so can't be sure what it all has to do. If you have any questions on how to solve a certain problem ask ahead.

Great thing youve got here, anyone know where i can find a list of all varbits?
Also, i cant manage to activate overhead prayers from the action bar do they have to be in a particular slot or have a specific keybind?
No one has "all the varbits", as VisualRm currently does not have a method to find them you should use development toolkit and try to find them yourself by looking at changing varbits when you do an action. (e.g. after drinking a perfect juju potion check which varbit changes and to what value).
As for the overhead prayers. To use from action bar its best to have a keybind (single character, so no ctrl + or something) and have the exact name. I will test this myself tho. If you want a node to have some prayer conditions/actions please post in the issues and request section on bitbucket so I can put this on my todo (and not forget)
 
As for people asking basic starting guides I will quote this message I sent to someone wanting to make a thieving bot.
Guides will come in due time. Until then you should look at the public bots and try to learn from that (which is not ideal for sure).
Because a lot is still changing to the beta version of this bot I am mainly focussed on fixing bugs and implementing necessary functions. To help you out i can say that to build a bot you start by adding a "START" node. Nodes in general you can find on the left icon bar. You can use the search function to find the one you want or just browse through them.
WHen you've added the start node you need to add Condition nodes that help you decide what action node has to fire. You can find several condition nodes also in the left side column.
A node is a box with dropdownboxes where you select certain values. For values to appear you need to add variables.
To add variables go to the "Variables" tab in the right side column of the UI. Here you can name a variable to your liking and add a value and a type.
E.g. Name: Thieving npc, Value: Master farmer, Type: NPC.
E.g. Name: food, Value: Jug of Wine, Type: Sprite (or Inventory item, can't remember for sure)
E.g. Name: Thieving action, Value: Pickpocket, Type: Action
Values can often also have only part of the name
E.g. Name: Any dart, Value: dart, Type: Sprite/Inventory item
If you youse this variable in a Node and you check off the checkbox "partial name matching" this will be enough for the bot to recognize any dart type.

For the conditions you want to use for your thieving bot. You'd need a
Player condition: to check if animating (then do nothing) or not
Npc condition: to check if npc with the desired name is available or not
Inventory condition: to check if inventory is full or to check if has food.

And actions:
Interaction action: to interact with npc, to eat food, to drop items etc
Bank action: to withdraw a preset.

I recommend looking at public bots to get a feel on how to create your own logic. (Some might not work again because of continuous updates to VIsualRM
 
Any plans on adding familiar support?

Add an entry to the bitbucket issues and request so I am remembered to add support
 
Joined
May 14, 2018
Messages
5
Is there any way someone could give me a quick basic tutorial on it, or make me a bolt enchanter 1, I'd imagine it's super fast to do :)
 
Joined
Oct 26, 2016
Messages
147
Was wondering how I could make this fill the coal bag while the bank window is open

Have you ever tried Blast Furnace? Thats not possible. You need to close bank in order to fill bag, otherwise you'd simply just deposit your coal bag...
 
Niche bots at your disposal
Joined
Dec 23, 2015
Messages
1,099
Update finally release: gift for the waiting:
  • OSRS Ardougne thiever: set up your bankpreset More info here
  • RS3 AIO -Divination bot: only set your coordinate to energy spawn location (small bug where it accidently opens the interface window. See it as an exercise in the Interface node to fix it yourself (tho it occurs rarely)
  • RS3 AIO - portables: set action and raw material and get going. Add configurations as you wish with the crafting nodes
  • RS3 Trolls early combat leveler: Fill your inventory with weapons for the 3 combat styles. Assign the weapons to the correct variables and start the bot. It will train all combat stats (Attack/Magic/Ranged) to level 31
Upcoming release: v0.6.0
  • Complete overhaul off the canvas. It cause a lot of memory leaks making the bot unavailable for some people and requiring frequent restarts of the RM client. The new canvas will bring infinite size; automatic adjustment and focus on loaded bots, customizable grids etc etc.
  • Performance improvement on adding/adjusting variables and various fixes around VisualRm
  • Possibly an integrated online repository with in bot loading of bots online. No need to browse the forums anymore. The online database has been set-up and only needs filling of bots and an interface in VisualRM. Here is an alpha sneak peak:
    • QTfSscz.png
 
Joined
Oct 26, 2016
Messages
147
Update finally release: gift for the waiting:
  • OSRS Ardougne thiever: set up your bankpreset More info here
  • RS3 AIO -Divination bot: only set your coordinate to energy spawn location (small bug where it accidently opens the interface window. See it as an exercise in the Interface node to fix it yourself (tho it occurs rarely)
  • RS3 AIO - portables: set action and raw material and get going. Add configurations as you wish with the crafting nodes
  • RS3 Trolls early combat leveler: Fill your inventory with weapons for the 3 combat styles. Assign the weapons to the correct variables and start the bot. It will train all combat stats (Attack/Magic/Ranged) to level 31
Upcoming release: v0.6.0
  • Complete overhaul off the canvas. It cause a lot of memory leaks making the bot unavailable for some people and requiring frequent restarts of the RM client. The new canvas will bring infinite size; automatic adjustment and focus on loaded bots, customizable grids etc etc.
  • Performance improvement on adding/adjusting variables and various fixes around VisualRm
  • Possibly an integrated online repository with in bot loading of bots online. No need to browse the forums anymore. The online database has been set-up and only needs filling of bots and an interface in VisualRM. Here is an alpha sneak peak:
    • QTfSscz.png

Great stuff man! Looking forward to it.
 
By the way, I assume I have to check if if run energy is below a certain amount with varbits? What is the adrenaline option under status condition?

I made a very decent Air Orb runner, though all I need now is to withdraw a stamina potion and use it if under 50% run energy.
 
Niche bots at your disposal
Joined
Dec 23, 2015
Messages
1,099
Great stuff man! Looking forward to it.
 
By the way, I assume I have to check if if run energy is below a certain amount with varbits? What is the adrenaline option under status condition?

I made a very decent Air Orb runner, though all I need now is to withdraw a stamina potion and use it if under 50% run energy.
Adrenaline is RS3 only, and I think traversal automatically uses stamina potions if in inventory. If not I will add the condition (and as usual add it to the issues/suggetsions page)
 
Joined
Oct 26, 2016
Messages
147
Adrenaline is RS3 only, and I think traversal automatically uses stamina potions if in inventory. If not I will add the condition (and as usual add it to the issues/suggetsions page)

I can't always have it in inventory, as I want to withdraw it when run energy condition is met. Would be cool with a run energy/stamina potion condition for this, unless ofcourse theres already a way to achieve this?

I'll add it to your issue page nonetheless.

Edit: Solved with varbit check. Was easy enough, though a condition would still be preferred, makes it easier for sure.

For people that might need this in the future: Stamina potion varbit is 25. 0 = inactive, 1 = active.
 
Are there still issues with loading larger bots? I saved my final version of my Air Orb runner, but unable to load.

java.lang.NullPointerException
at robot.IiIiIIIIIi.super(a:25)
at robot.iIiIIiIiII.super(mc:307)
at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
at javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:103)
at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:110)
at javafx.beans.property.StringPropertyBase.access$000(StringPropertyBase.java:49)
at javafx.beans.property.StringPropertyBase$Listener.invalidated(StringPropertyBase.java:230)
at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:349)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
at javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:103)
at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:110)
at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:144)
at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:49)
at javafx.beans.property.StringProperty.setValue(StringProperty.java:65)
at robot.IIIIIiiIii.false(i:128)
at robot.IIIiiIIIII.false(cl:226)
at robot.iiiIiIIIiI.false(m:669)
at robot.iiiIiIIIiI.false(m:1043)
at robot.iiiIiIIIiI.false(m:31)
at robot.IIIiiiiIii.super(m:502)
at robot.IIIiiiiIii.handle(m:624)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3470)
at javafx.scene.Scene$ClickGenerator.access$8100(Scene.java:3398)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3766)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:417)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:937)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)

Log also attached.
 

Attachments

  • 20180516004039_VisualRM [Beta].txt
    2.8 KB · Views: 7
Joined
Mar 26, 2018
Messages
57
@tyb51 is it a way to disable camera turning?
edit: is it possible for you to make a construction bot that build flotsam pranwbroker with mahogany planks? :)
 
Last edited:
Joined
Oct 31, 2017
Messages
7
I have created a very primitive (OSRS) bot for running the agility course in Pollniveach and wanted to add support for alching between obstacles.
I have spent a fair amount of time trying various options and looking at the open source bots in the first post but couldn't find anything similar.

I was under the assumption that it would rely on the Interface action but couldn't figure out how to use it at all to open the Magic panel.


Also my bot is very simple, relying on Player location conditions determining the next action. This means the bot breaks if I want to pick up Marks of grace or an NPC gets dismissed on the way to to an obstacle. I tried to modify the existing OSRS agility bot for my needs but since Pollniveach contains game objects that can be accessed out of order (i.e. after jumping to a tree, the Game Object condition for jumping to that tree still resolves to true and the bot will click it even though you cannot go back around the course).
I cannot just change the order of the game object conditions either as they will return success at the wrong times and try and skip obstacles.
Is there some kind of way of providing a sequence of events / preventing a condition from being evaluated? Possibly with the use of checkpoints or through booleans perhaps?
 
Niche bots at your disposal
Joined
Dec 23, 2015
Messages
1,099
Are there still issues with loading larger bots? I saved my final version of my Air Orb runner, but unable to load.

Log also attached.

The NPE's seem to be on my end. Can you send me the bot via PM so I can test myself. It seems to be both the special interaction class and the ChatDialogClass which is giving the error

@tyb51 is it a way to disable camera turning?
edit: is it possible for you to make a construction bot that build flotsam pranwbroker with mahogany planks? :)
Why do you want to disable the camera? I can but problem is that stuff becomes to complicated for you as you'll have to manually check if the object is visible. The fact that it turns means the client thinks it is not visible. Add the suggestion to the issues/Requests page as a minor thing. I will certainly add it when other problems get solved as other people requested it too.
As for the construction bot, I currently don't have an account that can do that. Add it to the Request page.

I have created a very primitive (OSRS) bot for running the agility course in Pollniveach and wanted to add support for alching between obstacles.
I have spent a fair amount of time trying various options and looking at the open source bots in the first post but couldn't find anything similar.

I was under the assumption that it would rely on the Interface action but couldn't figure out how to use it at all to open the Magic panel.
Also my bot is very simple, relying on Player location conditions determining the next action. This means the bot breaks if I want to pick up Marks of grace or an NPC gets dismissed on the way to to an obstacle. I tried to modify the existing OSRS agility bot for my needs but since Pollniveach contains game objects that can be accessed out of order (i.e. after jumping to a tree, the Game Object condition for jumping to that tree still resolves to true and the bot will click it even though you cannot go back around the course).
I cannot just change the order of the game object conditions either as they will return success at the wrong times and try and skip obstacles.
Is there some kind of way of providing a sequence of events / preventing a condition from being evaluated? Possibly with the use of checkpoints or through booleans perhaps?

To alch you should use the special interaction node. "Use Magic on Inventory item". As for the issue with it trying to use previous obstacles (if i understand correctly), you can see I have multiple GameObject conditions after each other. They are positioned in such a way that it first looks for the obstacle names you want to use in places where it would try to go back, and only after look for the obstacle names it now wrongly takes to go back where it can't. (on OSRS) this doesn't have any repercussion on performance as VisualRM has internal caching. Also make sure you have the query options enabled and use surroundings reachable (in stead of just reachable) in both the conditions and the actions.
 
Joined
Dec 30, 2017
Messages
9
Hey ! All the times I tried to use this script, it just freezes on loading... :/
Btw, @tyb51, I'm thinking in making a crystallise gres bot with this, do you think is doable ?
Thanks, and great work :D
 
Joined
Oct 31, 2017
Messages
7
To alch you should use the special interaction node. "Use Magic on Inventory item". As for the issue with it trying to use previous obstacles (if i understand correctly), you can see I have multiple GameObject conditions after each other. They are positioned in such a way that it first looks for the obstacle names you want to use in places where it would try to go back, and only after look for the obstacle names it now wrongly takes to go back where it can't. (on OSRS) this doesn't have any repercussion on performance as VisualRM has internal caching. Also make sure you have the query options enabled and use surroundings reachable (in stead of just reachable) in both the conditions and the actions.

Thank @tyb51, I will try these changes later on. I must have missed the surroundings reachable option when playing around with it. I found that the reachable didn't help at all.


I aslo wanted to say thanks for this bot, it is certainly the best one I have seen in terms of interface along with capabilities. Has the UI inspiration come from Blender? It works in exactly the same way as the node editor in that.
 
Last edited:
Niche bots at your disposal
Joined
Dec 23, 2015
Messages
1,099
Hey ! All the times I tried to use this script, it just freezes on loading... :/
Btw, @tyb51, I'm thinking in making a crystallise gres bot with this, do you think is doable ?
Thanks, and great work :D

I made a crystalize Woodcutting bot so it it do-able. Take a look at that bot which is available on the first page. AS for freezing on loading, I've been working hard on a overhaul of the UI so these freezes don't occur for some people. You'll have to wait for the next update.

Thank @tyb51, I will try these changes later on. I must have missed the surroundings reachable option when playing around with it. I found that the reachable didn't help at all.

I aslo wanted to say thanks for this bot, it is certainly the best one I have seen in terms of interface along with capabilities. Has the UI inspiration come from Blender? It works in exactly the same way as the node editor in that.

Just to be sure, I mean the surroundingsreachable option in the Query builder (by clicking on the node and looking in the inspector tab).
Not from blender, but node based editors in general
 
Joined
Oct 26, 2016
Messages
147
The NPE's seem to be on my end. Can you send me the bot via PM so I can test myself. It seems to be both the special interaction class and the ChatDialogClass which is giving the error
.

Sure, I've sent you the bot via PM. Thanks!
 
Top