- More like a rotation maker than a bot? (cope)
- Run around and hit random mobs mode (literally a bot)
- Auto buffs for common farming-related buffs
- Auto potion (periodically or somewhat functional Auto HP-like pet skill)
- Solve rune (for spinning rune, it uses the lost ancient technique of AFK-ing in cash shop for 10 seconds)
- Platforms pathing (find a path to reach a platform)
Barely maintainableUI(please help)- Work by taking an image and send key inputs (no memory hacking)
- Not a feature but currently work best in GMS:
- Updating PNGs are required to support non-English regions
- Work with TMS/MSEA but I can't with their anti-human bot detection (Rune solving works fine)
- I hate this game
- Why do Jett gets free BOD just to be deleted?
- Map is automatically detected but must be created manually by providing a name
- The created map is saved and can be selected again later
- Any actions preset created in the detected map is saved to that map only
- Map detection can be wrong, see Troubleshooting
The arcs are only for visual and do not represent the actual moving path. However, it does represent the order of one action to another depending on rotation mode.
- Configuration is used to change key bindings, set up buffs,...
- Configuration can be created for use with different character(s) through preset
- Configuration is saved globally and not affected by the detected map
For supported buffs in the configuration, the bot relies on detecting buffs on the top-right corner. And the bot
movement depends heavily on the skill Rope Lift
to move around platforms, so make sure you set a key for it.
There are two types of action:
Move
- Moves to a location on the mapKey
- Uses a key with or without location
An action is further categorized into two:
- A normal action is an action with condition set to
Any
- A priority action is any
ErdaShowerOffCooldown
/EveryMillis
action
A priority action can override a normal action and force the player to perform the former. The normal action is not completely overriden and is only delayed until the priority action is complete.
Action Move
configurations:
Type
:Move
Position
: The required position to move toAdjust position
: Whether the actual position should be as close as possible to the specified positionCondition
: See belowWait after move
: The milliseconds to wait after moving (e.g. for looting)
Action Key
configurations:
Type
:Key
Position
: Optionally add a position to use the keyCount
: Number of times to use the keyKey
: The key to useHas link key
: Optionally enable link key (useful for combo classes)Condition
: See belowQueue to front
:- Applicable only to
EveryMillis
andErdaShowerOffCooldown
conditions - When set, this action can override other non-
Queue to front
priority action - The overriden priority action is not lost but delayed like normal action
- Useful for action such as
press attack after x milliseconds even while moving
- Cannot override linked action
- Applicable only to
Direction
: The direction to use the keyWith
:Stationary
- Performs an action only when standing on ground (for buffs)DoubleJump
- Performs an action with double jump
Wait before action
/Wait after action
:- Wait for the specified amount of millseconds after/before using the key
- Waiting is applied on each repeat of
Count
Actions added in the list below can be dragged/dropped/reordered.
There are four types of condition:
Any
- Does not do anything special and affected by rotation modeErdaShowerOffCooldown
- Runs an action only when Erda Shower is off-cooldownEveryMillis
- Runs an action everyx
millisecondsLinked
- Runs an action chained to the previous action (e.g. like a combo)
For ErdaShowerOffCooldown
condition to work, the skill Erda Shower must be assigned to
the quick slots, with Action Customization toggled on and visible on screen. The skill
should also be casted when using this condition or the actions will be re-run.
Linked key and linked action are useful for combo-oriented class such as Blaster, Cadena, Ark, Mercedes,... Animation cancel timing is specific to each class. As such, the timing is approximated and provided in the configuration, so make sure you select the appropriate one.
For linked key, there are three link types:
Before
- Uses the link key before the actual key (e.g. for Cadena, Chain Arts: Thrash is the link key)AtTheSame
- Uses the link key at the same time as the actual key (probably only Blaster skating needs this)After
- Uses the link key after the actual key (e.g. for Blaster, Weaving/Bobbing is the link key)
Note that even though AtTheSame
would send two keys simultaneously, the link key will be send first. When the configured
class is set to Blaster, the performing action has After
link type and the link key is not Space
, an extra Space
key will be sent for cancelling Bobbing/Weaving. The same effect can also be achieved through linked action.
Linked action is for linking action(s) into a chain. Linked action can be created by adding a Linked
condition action below any Any
/ErdaShowerOffCooldown
/EveryMillis
/Linked
action. The first non-Linked
action is the start of the actions chain:
Any Linked Linked Linked EveryMillis Linked Linked
▲ ▲ ▲ ▲
│ │ │ │
│ │ │ │
└────────────────────┘ └────────────────────┘
Chain Chain
Linked action cannot be overriden by any other type of actions once it has started executing regardless of whether the action is a normal or priority action.
(This feature is quite niche though...)
Rotation mode specifies how to run the actions and affects only Any
condition actions. There are three modes:
StartToEnd
- Runs actions from start to end in the order added and repeatsStartToEndThenReverse
- Runs actions from start to end in the order added and reverses (end to start)AutoMobbing
- All added actions are ignored and, instead, detects a random mob within bounds to hit
For other conditions actions:
EveryMillis
actions run out of orderErdaShowerOffCooldown
actions run in the order added same asStartToEnd
When AutoMobbing
is used:
- Setting the bounds to inside the minimap is required so that the bot will not wrongly detect out of bounds mobs
- The bounds should be the rectangle where you can move around (two edges of the map)
- While this mode ignores all
Any
condition actions, it is still possible to use other conditions - For platforms pathing, see Platforms Pathing
Platforms pathing is currently only supported for Auto Mobbing and Rune Solving. This feature exists to help
pathing around platforms with or without Rope Lift
skill. To use this feature, add all the map's platforms starting
from the ground level.
Without this feature, the bot movement is quite simple. It just moves horizontally first so the x
matches the destination
and then try to up jump, rope lift or drop down as appropriate to match the y
.
Hot keys can be used to add platforms more quickly.
There are three capture modes, the first two are similar to what you see in OBS:
BitBlt
- The default capture mode that works for GMSWindows Graphics Capture
- The alternative capture mode for Windows 10 that works for TMS/MSEABitBltArea
- Captures a fixed area on the screen- This capture mode is useful if you are running the game inside something else or want to use fixed capture area (e.g. a VM or capture card?)
- The capture area can stay behind the game but it cannot be minimized
- This mode relies on high-quality game images so the images should be clear and not blurry
- Even when the game resizes (e.g. going to cash shop), the capture area must still contain the game
- When using this capture mode, key inputs will also be affected:
- Make sure the window on top of the capture area is focused by clicking it for key inputs to work
- For example, if you have Notepad on top of the game and focused, it will send input to the Notepad instead of the game
Technical note
There is currently no way to customize key inputs sending method. And I will probably add one in the future. But you can use
BitBltArea
as a workaround that will require some effort. The capture mode will use SendInput
and send it to the top-most window of the capture area. So SetWindowsHookExW
with WH_KEYBOARD_LL
can be used to listen to the bot input and proxy it elsewhere or with a different method. dwExtraInfo
is currently set to the bot PID.
Since v0.3.0, most of the times, there wouldn't be any problem because automatic map's name is no longer detected but map detection can still be wrong sometimes. You will most likely notice it right away because it does not look "tight", well cropped or aligned with actual map in the game.
Wrong map detection can happen when:
- Moving quickly between different maps
- Other UIs overlapping
Rule of thumb is: Map detection will always try to crop the white border and make it is as tight as possbile. So before creating a new map, double-check to see if the map being displayed has white border cropped and looks similar to the one in the game.
Fix methods:
- Below the map are three buttons, two of which can be used to help troubleshooting:
Re-detect map
: Use this button to re-detect the mapDelete map
: Use this to permanently delete the map
- Move the map UI around
- When moving around different maps, it may detect previous map due to delay. Just use
Re-detect map
button for this case.
Action with EveryMillis
can lead to contention if you do not space them out properly. For example, if there are two EveryMillis
actions executed every 2 seconds, wait 1 second afterwards and one normal action, it is likely the normal action will never
get the chance to run to completion.
That said, it is quite rare.
Currently, the bot does not support Default Ratio
game resolution because most detection resources are
in Ideal Ratio
(1920x1080 with Ideal Ratio
or 1376x768 below). Default Ratio
currently only takes effect
when play in 1920x1080
or above, making the UI blurry.
This is subject to change but if you want to the bot to only walk between points then the two
points x
distance should be less than 25
.
If your mage class does not have an up jump through jump key but only through teleport, you need to set the up jump key the same as the teleport key.
If you use the bot on a newly installed Windows, make sure Visual C++ Redistributable 2015-2022 is installed.
- You can reach me by creating an issue on Github or by joining the Discord
- The Discord is just a simple messaging channel if you have quick questions related to the bot
rotation1.mp4
(This Blaster rotation was before Link Key & Link Action were added)