Forum Replies Created
-
AuthorPosts
-
Yes, this feature has been requested, along with other improvements: Fishing wishlist
Some of them have already been implemented and additional options for advanced fishing are planned in the future.Thank you for your request!
- Nop, i don’t see errors in the log but i’ll try in few hours
- Less than 10 but i’m not full and i keep 5 empty slots to avoid the inventory full message cast from the game
Thank you very much. We now have an idea of what might be causing this problem. We will try to address it in the next version.
In the meantime, please use the workaround of activating deliverCollectables() twice in a row.
We apologize for temporary inconvenience.How do i avoid having miqobot using ley lines on black mage. I tried unselecting using heals and buffs and it still drops the ley lines.
At the moment there are four possible options:
- If you don’t wish Miqobot to use a certain ability, you can remove it from your hotbar.
- If you still wish to be able to use it yourself, you can put it in a macro and hide it behind a different icon.
- If you need to see the cooldown as well, you can put it on a separate hotbar and tell Miqobot to ignore it via Advanced Settings – Ignore Hotbar.
- Alternatively, you can place it on a Cross Hotbar. Cross Hotbars are not evaluated by Miqobot.
If neither of these methods work for you, then we don’t have any other suggestions.
New dungeons support is already at maximum priority in our development plans for Endwalker.
But these dungeons do not exist yet. It is physically impossible to start working on them before the expansion is released.
So we are not sure what you expect us to do with additional requests regarding this feature.I would assume is that at some point the actual text in any given menu that is displayed to the player would be detectable by Miqo in some form right?
It’s not detectable. And this is the main problem.
If it was, we would have already implemented this function a long time ago.I’m suggesting that at some point the text, such as ‘Limsa Lominsa’ in the teleport menu, exists somewhere in the data that Miqo takes from the game.
The text data stored in the Teleport window looks like this:
hingashikuganekugane100othardthe ruby seatamamizu333the ruby seaonokoro357yanxianamai445yanxia...
You are correct, it is detectable in some form. But this form is useless for any kind of decision making.
Besides the fact that this data doesn’t have any line breaks, it also has no indication of whether a certain piece of text is selectable. For example, “Hingashi” and “Othard” are group names which should be removed from the list of selectable options beforehand. And for the rest of text, there is no information of where that data is located on the screen. In order to select “The Ruby Sea”, do we have to move cursor at line #2, #6, or #9?How is Miqo able to identify ‘Limsa Lominsa’, or even better, something like ‘The Crystarium’ which is pages and pages down the menu, if Miqo isn’t simply ‘searching’ for the term within the teleportation menu?
By reading the internal data structures.
Here is the structure that Miqobot reads when accessing the Teleport window.6F 00 00 00 64 00 00 00 74 02 00 00 00 00 00 00 01 65 58 02 69 00 00 00 4D 01 00 00 65 02 00 00
This is an example of a data stream mentioned earlier. It’s not even located in the Teleport window, this data is stored in a dynamic memory container which is populated by another part of the game client.
By grouping and decoding the stream chunks correctly, Miqobot is capable of identifying a numerical aetheryte ID and a numerical zone ID, which are then converted to the correct line index to select. And when you type “teleport(Limsa Lominsa)” in Scenario Engine, Miqobot uses a hardcoded database of all possible teleport locations which link the text data to numerical IDs.On top of that, please remember that Miqobot must be functional in all 4 game languages.
So when you type “teleport(リムサ・ロミンサ:下甲板層)”, she uses the same database to convert a Japanese name into the same numerical ID and select “Limsa Lominsa” in any language. This conversion does not work for all features, of course, but we are doing our best to make it work where possible.If you are still not convinced, here is a simple example.
Imagine we collect a few samples of Rarefied Gyr Abanian Mineral Water and deliver them to a collectable appraiser.
When we open the Collectables Exchange window, the game shows us this:The item we wish to deliver is level 61. But it doesn’t even appear on the screen to begin with.
In order to access it, we have to scroll the list down, click on “Lv. 61-70” group, then scroll down again, and only then we will see it.But if you activate deliverCollectables() from a scenario, you may notice that Miqobot does not check every possible group every time the window is opened. She knows exactly what items we have and what groups must be clicked in order to access them.
- When there are no items to deliver, Miqobot simply closes the window.
- When there are items not visible on the screen, she goes directly to required groups and selects the necessary lines.
Without reading the internal data structures, such behavior would be impossible. Miqobot would have to painfully scroll through every line and analyze every single word and number on the screen in order to identify if there is anything to deliver at all. So instead of staring at empty window for a few seconds, she would be stuck for 3-5 minutes verifying each possible option without doing anything useful.
And please believe us that the data structure for Collectables Exchange window is so complex that it took our developers several days to reverse engineer it and then several days more to implement UI navigation algorithms.
Considering that deliverCollectables() contains 3 different features each of which has underwent over 10 iterations of improvements and bugfixes, you are in fact tapping into 2 months of development every time you use this function.
All for a short sequence of steps to click the correct buttons.I only have a loose understanding of programming but I’m curious what’s stopping you from creating an internal index of dialogue options
The non-linearity of internal data structures.
What you see on the game screen is only a visual representation of the actual data. It is generated by the graphics algorithm via multiple processing stages. Even if it looks like a simple list of options on the screen, it may in fact be an associative container based on red-black tree implementation. It may not even have a container but be a procedurally generated data stream that doesn’t have any structures behind it.
Miqobot is not capable of reading the text directly from the screen, if this is what your question is about.
This would require Optical Character Recognition algorithms, but this technology is extremely slow and would not be able to perform in a dynamic environment such as the video game.
Therefore accessing and analyzing internal data structures directly in the game memory is the only way to implement gameplay automation.RE: my download, switching browser fixed the issue 🙂 I am not sure what the problem was with my normal browser.
All right, thank you for reporting that you’ve managed to find a workaround.
And quick question since Eulmore collectables were mentioned, does deliverCollectibles() work with the turn-in vendors outside of Firmament (since it’s a different interface)?
Yes, as it is stated in the documentation, deliverCollectables() includes several algorithms and supports the following UI layouts:
– Rowena’s House of Splendors
– Ishgard Restoration
– Diadem Resource InspectionHello, I am trying to download the new version, but the file is 0KB and cannot run. I turned off my antivirus and am still having the problem. Has anyone else encountered this?
We would like to know the answer as well.
We have investigated this issue, but unfortunately we couldn’t reproduce it or identify the reasons that could be causing it. If you discover any additional information, please let us know.miqo slays the resplendent expert recipes as is
so thats neat, saves you guys some work
Thank you so much for the quick update regarding the GCD queueing! It’s good on most classes, but on min-SkS MCH, it really messed up the drills.
Thank you for your feedback very much.
Seems like i’m having issues when i want to deliver collectables like in Eulmore.
I tried many times since the 5.5 and the bot just stop delivering collectables at some point.PS : i’m not full of scripts, everything is fine.
Thank you for reporting. We will try to reproduce your issue in our labs and see what we can do.
Would you be able to give us some more information?- How often do you encounter this problem?
- Have you managed to notice what happens in the game at this moment?
- If you activate deliverCollectables() twice in a row, does the issue occur the second time?
Sometimes Miqo wastes Barrage on Burst Shot, and I’m assuming it’s because of my ping numbers (320+ ms, RIP), just wanted to make sure it’s a ping problem and not something tied to the queing algorithm.
Thank you for reporting.
We will investigate the rotation behavior under high latency conditions.To answer your question, Refulgent Arrow has the maximum priority under the effect of Barrage, but if the icon does not activate in time due to network delay, Miqobot will not stop the rotation and wait for it to happen.
GCD queueing algorithm causes weaponskills to be triggered approximately 100 ms in advance, but it does not change the logic of the rotation. If this argument does not convince you, please feel free to disable it in Assist Mode settings.Yes, this feature is already planned as a part of Scenario Engine updates: Upcoming Features
However, there is no framework that is capable of interacting with arbitrary game windows. Each of the functions you mentioned (deliverGCGear(), deliverCollectables(), teleport(), recipe()) incorporates a separate algorithm which is compatible only with one specific game window. These algorithms will not work for anything else.
In addition to that, the function deliverCollectables() includes 3 different algorithms in order to support 3 different UI layouts:
– Rowena’s House of Splendors
– Ishgard Restoration
– Diadem Resource Inspection
If it looks simple from the outside, it doesn’t mean there is a simple piece of code behind it.Each game window is completely different, they have distinct memory structures and UI layouts, and each of them requires a custom sequence of keybinds. A simple generic algorithm for this problem does not exist.
Even if we implement this feature in the form of a single function, we will have to research all possible game windows separately and implement different algorithms for each of them. The amount of work will be the same as implementing multiple functions.So yes, your feature request is accepted.
But please don’t expect it to be a generic function that will support everything, because it’s not possible.Yes, the issue with Samurai rotation has already been addressed.
Please refer to the main status thread for details:
Shadowbringers – Miqobot StatusYes, full details will be available in the patch notes for Miqobot v1.3.43.
They are currently being prepared and will be posted in the main status thread at a later date:
Shadowbringers – Miqobot StatusWe have managed to reproduce your issue with the Samurai rotation. Our previous assumption about it being caused by a missing keybind is incorrect.
This is a critical bug in the rotation algorithm. Unfortunately, it can not be fixed without a new version release. But we are already working on a solution and planning to address it soon.
We apologize for inconvenience.Our Tech Support can analyze your keybinds and hotbar configuration in order to identify the problem.
Please contact us directly and we will do our best to help you:
https://miqobot.com/#supportYes, Samurai rotation has a special ability that can cause this behavior.
When Kaeshi: Goken or Kaeshi: Setsugekka proc becomes available, it becomes the maximum priority action to activate next. If Miqobot can not trigger it due to a missing keybind or any other reason, it will cause the rotation to stop. -
AuthorPosts