Welcome!

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

Sign up now!

Architect [Deleted]

Status
Not open for further replies.
Joined
Jan 14, 2017
Messages
20
Able to add a variable delay? Like instead of the usual "flat" delay, maybe a range of delay? Example, delay:100ms to 8000ms (randomly pick a delay between the range). I think this would allow for a safer bot to be scripted which is tasked to do very repetitive task like say wood cutting. Logically, no one would pay 100% attention on RS and immediately or after a relatively similar delay, click on the next tree :p

So maybe 2 request if possible? The second is an upgrade to the first and I'll explain why.
1. Random delay from chosen range.
2. Allow to set Min, Average and Max delay.

The average will allow for more realistic randomisation of delay, but why?
Logically if I'm afk tasking, I'd still try to respond asap, maybe usually within 1 second after the last action, but there are times when i totally forgot and left it afk for 3mins OCCASIONALLY. (Refer to eat logic on alpha fighter, just that instead of health, it's delay here.)

Hopefully this is possible!
 
Last edited:
Joined
Feb 21, 2017
Messages
64
You're right, that technically should work. However you will still experience bugs in your code from time to time by stringing multiple Blue Actions together. I only recommend putting a Delay after a Blue Action command. The idea when writing your bot is for it to take one action every time it cycles through your state. Putting multiple actions in a row is what causes bots to get stuck.
 
 
 
Joined
Mar 23, 2018
Messages
97
I'm pretty sure the "is interface open" logic is broken within the bot.

I'm writing some more bots today, I will try and verify and pass the information on to Klik.

Able to add a variable delay? Like instead of the usual "flat" delay, maybe a range of delay? Example, delay:100ms to 8000ms (randomly pick a delay between the range). I think this would allow for a safer bot to be scripted which is tasked to do very repetitive task like say wood cutting. Logically, no one would pay 100% attention on RS and immediately or after a relatively similar delay, click on the next tree :p

So maybe 2 request if possible? The second is an upgrade to the first and I'll explain why.
1. Random delay from chosen range.
2. Allow to set Min, Average and Max delay.

The average will allow for more realistic randomisation of delay, but why?
Logically if I'm afk tasking, I'd still try to respond asap, maybe usually within 1 second after the last action, but there are times when i totally forgot and left it afk for 3mins OCCASIONALLY. (Refer to eat logic on alpha fighter, just that instead of health, it's delay here.)

Hopefully this is possible!

Without looking at Trello, I believe this is on the TODO list. I have suggested this before, but it's also not the most critical update to the bot right now. Klik will add more features like this as the bot becomes more stable.

See the only reason i have the key press and the delay is the interact with interface wasnt working for me. It would find the lectern and click it then if the key press wasnt off the same action as the interact with object it would just cycle through. It was only when i added the key press to it that it actually worked but i ran into the problem of it not delaying.

And the way i learned if/else statments was like true/false

If condition a is true do this action
else if its false do a different action.

Where as the interact with object the key press and the delay should all be on the same condition something along then lines of a then statement

If condition A is true then move to condition A.1 then once that is true move to condition A.2.

Sent from my iPhone using Tapatalk

Everyone seems to be having an issue with the "Is Interface Open" logic in the bot. This is probably why you were having that issue.

You're mostly right when it comes to If/Else as True/False. However you're looking at it from a procedural point of view. The reason why you want one action per logic decision is because you want the bot to loop through your state logic over and over until it completes the task required and switches states. So if you have nested If/Else then the logic you're looking at is:

Is 1: True, 2: True, 3:True, 4:True, 5:false (Now we do the next single step to make step 5 true)

Then on the next cycle through your bot's state will look like this:

Is 1: True, 2: True, 3: True, 4: True, 5: True, 6: False (Now we do one more single step to make step 6 true)

So if the interface is not open, then the only action you want to take is opening the interface. Then when the bot cycles through the logic tree again, it reaches the next step which is to select what you want to make, or to hit the MAKE button on the interface. This gives you a robust bot that will always work, regardless of the initial conditions or human interaction present.

As your bot stands, if you interrupt the bot by clicking elsewhere on the screen, the bot cannot easily resume without performing unnecessary actions. It also cannot tell if you are already in the middle of a process "IE opening the interface and hitting MAKE" if you string the actions together. So the bot has potential to bug out and do something strange, such as repeatedly trying to click the Lectern because it doesn't know the interface is open and currently blocking the view of the Lectern. This bug might not be major, but in specific circumstances it could cause the entire bot to stop. It can also cause your bot to act extremely "bot-like" as humans wouldn't perform an action that wasn't required by anything other than ignorance or mistake. So if your bot clicks on the Lectern multiple times, resulting in the interface window being redrawn a few times, it's likely the Jagex anti-bot systems can pick up on that.

Procedural thinking doesn't work when coding Runescape bots. The game environment can change while your bot is attempting to perform the instructions it was given, so we have to code our bots to handle this variability in the game.

This is also the same guidelines given by Runemate executives on how to code bots for Runemate. If you want to discuss this with Runemate developers in real time, I suggest joining the Runemate Slack group and heading over to #Development. Whether or not you are writing the bot in Java/Kotlin or using a Build-Your-Own bot like Architect, the design requirements are identical.

(Just don't say you're a developer in #Developer if you only "code" Build-Your-Own bots)
 
Joined
Nov 9, 2016
Messages
46
I'm pretty sure the "is interface open" logic is broken within the bot.

I will check it again. But even if it isn't I will add nodes for checking and interacting with interfaces using their IDs, which is far more accurate and efficient.

Awesome work man! Runs pretty flawless and easy UI. Keep it up!
Made a Rs3 Nature rune runner with it. It detects broken pouches and repairs them at the wizards tower. Pretty awesome that worked.

Thanks and its very impressive you were able to make such a bot, only shows that the options indeed are limitless if you have enough will power to do it :)

Able to add a variable delay? Like instead of the usual "flat" delay, maybe a range of delay? Example, delay:100ms to 8000ms (randomly pick a delay between the range). I think this would allow for a safer bot to be scripted which is tasked to do very repetitive task like say wood cutting. Logically, no one would pay 100% attention on RS and immediately or after a relatively similar delay, click on the next tree :p

So maybe 2 request if possible? The second is an upgrade to the first and I'll explain why.
1. Random delay from chosen range.
2. Allow to set Min, Average and Max delay.

The average will allow for more realistic randomisation of delay, but why?
Logically if I'm afk tasking, I'd still try to respond asap, maybe usually within 1 second after the last action, but there are times when i totally forgot and left it afk for 3mins OCCASIONALLY. (Refer to eat logic on alpha fighter, just that instead of health, it's delay here.)

Hopefully this is possible!

Thanks for the suggestion, random delays are in the TODO list for next updates. As for the min-max-avg suggestion, very interesting but seems quite advanced if my intention is to keep this bot as easy to use as possible. I will have to think how I add more flexibility like you suggested, but still keep it simple for those who don't want the ability fine tune all those variables.
 
In addition, the bot has been updated (my mistake for not changing the version), here are the changes:
  • The Press Key node has been re-designed
upload_2018-5-6_19-56-58.png
  • The status bar has had a little revamp and now is now much more readable
upload_2018-5-6_19-55-56.png
  • A button to link to pre made bots has been added - use them as templates for your bots to achieve maximum productivity with minimal investment
  • A failsafe has been added to make sure there is always only one Initial State (e.g. after you are clearing the playground, or change non-initial state to initial state)
  • The bot will now turn the camera to an object or an NPC when it decides that's needed
 
Note that the change done to the Press Key node was possible due to some new changes made to the back-end of the script and you can definitely expect more of these juicy, exciting and simple GUIs in the next updates
 


As for updates in the upcoming days:

I will be afh (away from home) for most of the week, so I won't be able to add any new features or (hopefully there are none needed) bug fixes. However, don't feel discouraged to post them as I will be looking at this thread and my PM box daily and add anything needed to my TODO, which will become relevant again in the weekend
 
Joined
Mar 23, 2018
Messages
97
I'm pumped, it will be infinitely easier for people to use special keys in the Press Key command now.


Also, it is verified there is a bug occurring with "Is Interface Visible" and it is being investigated. I understand the frustrations you might have while trying to build a bot at this time, I have those same issues while trying to write open source bots for the Google Drive. Please be patient while this bug is fixed.
 
Last edited:
Joined
Aug 27, 2016
Messages
10
Imagine yourself you are a simple machine, always executing the task you are given. You start by executing Task A (in our case, mine rock with ID 7469). You have done that successfully, so you reward yourself by continuing to the next task and sleep for 2 seconds (the Delay for 2000 millis node). After sleeping you feel refreshed and continue onto the next node, this time it is a condition - it checks whether or not you are mining. If you are mining then everything is fine and you go back to the beginning of the state. But, what if the ore has already been mined? Or what if it takes more than 2 seconds for the player to reach the rock and start mining? In this case the player isn't animating and you will proceed onto the Else branch of that If Node and try to mine the rock with ID 7468.

This is the problem with connecting multiple action one after another and why I encourage you to split your logic into as many conditions as possible. I would build your mine state using the following template:
  • Is Inventory Full:
    • Switch to State Bank
  • Else:
    • Is Player Animating:
      • Do nothing (just leave empty - or put a small delay to be mercy full on your CPU)
    • Else:
      • Is Object with ID 7469 available:
        • Interact with Object with ID 7469
      • Else:
        • Is Object with ID 7468 available:
          • Interact with Object with ID 7468
        • Else:
          • and so on...
This way you make sure only one task is executed each cycle. Of course you can add delays here and there, but be aware not to use them too much.

The logic flow makes sense, and the bot is performing the same way now as it did before (what I had set up) - the issue is telling which object can currently be mined in OSRS, this is what makes the bot sporadic.
 
Joined
Mar 23, 2018
Messages
97
The logic flow makes sense, and the bot is performing the same way now as it did before (what I had set up) - the issue is telling which object can currently be mined in OSRS, this is what makes the bot sporadic.

I really hate to suggest giving up on the idea of a miner for OSRS in Architect right now, but after thinking about it, the bug you are experiencing is not something fixable in Architect at this time. Some OSRS miners use the color attribute of the Rock object to determine whether or not it has ore in it, there are other solutions too but none of them are reproducible in Architect at this time. This may be fixable in the future, as more stability and updates will bring many new features.

You will get much better mining performance out of a dedicated OSRS mining bot.



----------------------------------------------------------------------------------------------------
Google Drive Update

Klik has established the Google Drive and we've been working hard to start filling it up with well written and reliable bots. They are all open source, so please feel free to use them as learning examples when trying to work on your own bots.

The bots currently available are:

-={Divination}=-
Harvest and Bank - Draynor - Pale Wisps​


-={Fighting}=-
Fighter - Lumbridge - Chickens​


-={Fishing}=-
Fish and Bank - Draynor - Shrimp & Anchovies​


-={Mining}=-
Mine and Drop - Anywhere - Tin Ore​


-={Woodcutting}=-
Chop and Bank - Draynor - Willow
Chop and Bank - Varrock West - Oak
Chop and Bank - Varrock West - Tree
Chop and Drop - Draynor - Willow​
 
Last edited:
Joined
Jan 14, 2017
Messages
20
@Dark57 @KliK Opps apologies, i didn't check the trello recently

Also, can i suggest an addition to "Does inventory contain" to have an item count check.
Currently, "Does inventory contain" only check if the item exist (Regardless of amount), wondering if the option to check amount too can be added too. So like "Does inventory contain > Rune bar (5 of them)".

I appreciate that the bot focuses on simplicity but I guess a lil more room for customization would really bring more benefit in terms of making this bot more complex, hence, less predictable;detectable.

For example, currently there's the fan mail disruption, and mid-smithing, i'm interrupted and if i just use "Does inventory contain >Rune bar" In the event when i have only less than 5 Rune bar, i'll not be able to smith Platebody and if the bot proceed to smith regardless, the default option for my smithing will become not platebody the next time i return with full inventory. A work around is to bank after character animation stops (meaning skip the inventory check before banking), but I've gotten a few account banned for being this "straight forward" because logically if one is smithing, you would not bank until you have less than 5 Rune bar in this scenario, hence sometimes i was banking with maybe 15 or more rune bars in my inventory (becus was being disrupted by whatever). However, after implementing check inventory for items with at least "amount", my ban rate dropped to 0.

Just speaking from past years botting experience on another platform :X
 
Joined
Nov 9, 2016
Messages
46
@Dark57 @KliK Opps apologies, i didn't check the trello recently

Also, can i suggest an addition to "Does inventory contain" to have an item count check.
Currently, "Does inventory contain" only check if the item exist (Regardless of amount), wondering if the option to check amount too can be added too. So like "Does inventory contain > Rune bar (5 of them)".

I appreciate that the bot focuses on simplicity but I guess a lil more room for customization would really bring more benefit in terms of making this bot more complex, hence, less predictable;detectable.

For example, currently there's the fan mail disruption, and mid-smithing, i'm interrupted and if i just use "Does inventory contain >Rune bar" In the event when i have only less than 5 Rune bar, i'll not be able to smith Platebody and if the bot proceed to smith regardless, the default option for my smithing will become not platebody the next time i return with full inventory. A work around is to bank after character animation stops (meaning skip the inventory check before banking), but I've gotten a few account banned for being this "straight forward" because logically if one is smithing, you would not bank until you have less than 5 Rune bar in this scenario, hence sometimes i was banking with maybe 15 or more rune bars in my inventory (becus was being disrupted by whatever). However, after implementing check inventory for items with at least "amount", my ban rate dropped to 0.

Just speaking from past years botting experience on another platform :X
Added to Trello :)
 
Joined
Feb 4, 2017
Messages
11
I made a Spirit Kyatt w. wilderness sword summoning bot (it runs to the obelisk in Piscatoris Hunter area via Spirit Kyatt and banks at Edgeville via wilderness sword); the bot also supports re-summoning when the Spirit Kyatt disappears!

I want to make it public, but it requires users to modify the pouch name and main base material. Is that fine? I have noticed that the pre-made bots do not require users to alter anything.

Another concern that I have is that since the bot for the time being only has static timers, I believe over extended use from multiple people the behavioral pattern will easily be discernible. I have seen that random delays are a planned feature -- so I hope to see that rolled out soon!

Also it would be nice if a STOP feature was added, e.g if such and such occurs then do XYZ else STOP. A stop feature would be very useful in just shutting down the bot completely after the task(s) are completed!

Anyhow, as I said in my review for your bot, I really like your work! I firmly believe this is currently the best of its kind :)

*EDIT* For those of you curious, I'm currently averaging about 600k-1m+ XP an hour with the bot I made.
 
Joined
Jan 14, 2017
Messages
20
I made a Spirit Kyatt w. wilderness sword summoning bot (it runs to the obelisk in Piscatoris Hunter area via Spirit Kyatt and banks at Edgeville via wilderness sword); the bot also supports re-summoning when the Spirit Kyatt disappears!

I want to make it public, but it requires users to modify the pouch name and main base material. Is that fine? I have noticed that the pre-made bots do not require users to alter anything.

Another concern that I have is that since the bot for the time being only has static timers, I believe over extended use from multiple people the behavioral pattern will easily be discernible. I have seen that random delays are a planned feature -- so I hope to see that rolled out soon!

Also it would be nice if a STOP feature was added, e.g if such and such occurs then do XYZ else STOP. A stop feature would be very useful in just shutting down the bot completely after the task(s) are completed!

Anyhow, as I said in my review for your bot, I really like your work! I firmly believe this is currently the best of its kind :)

*EDIT* For those of you curious, I'm currently averaging about 600k-1m+ XP an hour with the bot I made.

Try this to stop the bot, im currently using it. "whatever thing you're doing, > Else > Delay until animating (Timeout:999999999)"

So in short, it means the bot will do nothing and wait for player to animate for 999,999,999ms before it attempts the "next" action.
 
Joined
Mar 23, 2018
Messages
97
I made a Spirit Kyatt w. wilderness sword summoning bot (it runs to the obelisk in Piscatoris Hunter area via Spirit Kyatt and banks at Edgeville via wilderness sword); the bot also supports re-summoning when the Spirit Kyatt disappears!

I want to make it public, but it requires users to modify the pouch name and main base material. Is that fine? I have noticed that the pre-made bots do not require users to alter anything.

Another concern that I have is that since the bot for the time being only has static timers, I believe over extended use from multiple people the behavioral pattern will easily be discernible. I have seen that random delays are a planned feature -- so I hope to see that rolled out soon!

Also it would be nice if a STOP feature was added, e.g if such and such occurs then do XYZ else STOP. A stop feature would be very useful in just shutting down the bot completely after the task(s) are completed!

Anyhow, as I said in my review for your bot, I really like your work! I firmly believe this is currently the best of its kind :)

*EDIT* For those of you curious, I'm currently averaging about 600k-1m+ XP an hour with the bot I made.

You are free to post your bot in this thread, but for it to be added to the Repo it has to be approved by Klik's standards. Unfortunately we don't have written guidelines for what those standards are, but you can look at what is currently on the drive as examples. Currently there are no non-functioning bots, so the list is a little scarce. Once the Interface bug is fixed then there will be a lot more bots added.

Unfortunately Klik is mostly away this week, so we all have to be patient until then.
 
Try this to stop the bot, im currently using it. "whatever thing you're doing, > Else > Delay until animating (Timeout:999999999)"

So in short, it means the bot will do nothing and wait for player to animate for 999,999,999ms before it attempts the "next" action.

If you really wanted to "Stop" the bot, then you should use a static delay. If the bot is still running that timeout when you move the player then it will immediately resume actions. A static delay would require you to restart the bot [Stop/Start], but that is also equivalent to a stop function that turns the bot off.

The real issue is that even when you're delaying, the bot will still remain logged in as the lobby handler of Runemate continues to keep you logged in.
 
Joined
Nov 9, 2016
Messages
46
I made a Spirit Kyatt w. wilderness sword summoning bot (it runs to the obelisk in Piscatoris Hunter area via Spirit Kyatt and banks at Edgeville via wilderness sword); the bot also supports re-summoning when the Spirit Kyatt disappears!

I want to make it public, but it requires users to modify the pouch name and main base material. Is that fine? I have noticed that the pre-made bots do not require users to alter anything.

Another concern that I have is that since the bot for the time being only has static timers, I believe over extended use from multiple people the behavioral pattern will easily be discernible. I have seen that random delays are a planned feature -- so I hope to see that rolled out soon!

Also it would be nice if a STOP feature was added, e.g if such and such occurs then do XYZ else STOP. A stop feature would be very useful in just shutting down the bot completely after the task(s) are completed!

Anyhow, as I said in my review for your bot, I really like your work! I firmly believe this is currently the best of its kind :)

*EDIT* For those of you curious, I'm currently averaging about 600k-1m+ XP an hour with the bot I made.

That's quite the achievement. All bots are appreciated and I will gladly accept them, but I want to make sure they are well written and can serve as a template for other users. You can send me the bot you made in a PM or on Slack and I will check it on the weekend :)

As for the Stop node suggestion, I have added it to the TODO. For now you can use the workarounds suggested above, but pay attention to the fact that they are workarounds and don't actually achieve fully what you want - the client will continue to run (even if you set delay to 999,999,999) and execute its failsafes - closing interfaces, logging back from the lobby, etc... I would suggest you wait for me to implement an actual node for that
 
Joined
Jan 14, 2017
Messages
20
That's quite the achievement. All bots are appreciated and I will gladly accept them, but I want to make sure they are well written and can serve as a template for other users. You can send me the bot you made in a PM or on Slack and I will check it on the weekend :)

As for the Stop node suggestion, I have added it to the TODO. For now you can use the workarounds suggested above, but pay attention to the fact that they are workarounds and don't actually achieve fully what you want - the client will continue to run (even if you set delay to 999,999,999) and execute its failsafes - closing interfaces, logging back from the lobby, etc... I would suggest you wait for me to implement an actual node for that

Hihi. since you've mentioned, i guess this is a bug then? I've tested again (although i noticed it before) and confirmed that the bot just stop totally, including not logging back from lobby if using "Delay until animating".

To add on, after "timeout", when the bot loop again, it'll handle the lobby and log back in :)
 

Attachments

  • bug.PNG
    bug.PNG
    344.4 KB · Views: 11
Abides
Joined
Jul 12, 2015
Messages
60
Hey man, this is a wonderful project! I am currently experimenting with a few things and seem to be making good progress. I was wondering if you could add "Action Bar Dropping" (Rs3) to your Trello list? I have tried a few ways to get it to work, and I can't seem to find a way to initiate a key press and hold. Alternatively, I was thinking you could simply add a toggle to the key press condition to include a "hold for x" value.
 
Joined
Mar 3, 2018
Messages
61
Hey man, this is a wonderful project! I am currently experimenting with a few things and seem to be making good progress. I was wondering if you could add "Action Bar Dropping" (Rs3) to your Trello list? I have tried a few ways to get it to work, and I can't seem to find a way to initiate a key press and hold. Alternatively, I was thinking you could simply add a toggle to the key press condition to include a "hold for x" value.
You would be best to make a loop if x is in inventory and then have keypress x
 
Joined
Mar 23, 2018
Messages
97
Hihi. since you've mentioned, i guess this is a bug then? I've tested again (although i noticed it before) and confirmed that the bot just stop totally, including not logging back from lobby if using "Delay until animating".

To add on, after "timeout", when the bot loop again, it'll handle the lobby and log back in :)

That sounds like a bug with Runemate, the Lobby Handler should be taking care of that anyways.

Hey man, this is a wonderful project! I am currently experimenting with a few things and seem to be making good progress. I was wondering if you could add "Action Bar Dropping" (Rs3) to your Trello list? I have tried a few ways to get it to work, and I can't seem to find a way to initiate a key press and hold. Alternatively, I was thinking you could simply add a toggle to the key press condition to include a "hold for x" value.

Actionbar dropping is not supported right now. It's a good idea, but implementation is another thing. Klik is purposely delaying certain features if they will over-complicate things until a way to uncomplicate them comes around. I think it's more likely to be automatic, where the "Drop Item" action checks and sees if "Item" is on your actionbars. If not, then it proceeds to Interact>Drop your inventory.
 
Joined
Nov 9, 2016
Messages
46
Don't you hate cluttering your playground with so many nodes you can't even figure out what you were trying to do? me too. That's why in the next update you will have the ability to minimize and maximize nodes:

Animated GIF - Find & Share on GIPHY

In addition, as suggested by several users, the Does Inventory Contain node will be updated with some new neat features:

2018-05-10 21_13_26-RuneMate.png

2018-05-10 21_13_34-RuneMate.png

2018-05-10 21_13_42-RuneMate.png

You can expect this with many more features in the next update, which should be coming out this weekend
 
Status
Not open for further replies.
Top