Skip to content

Combat Scripting Documentation and Examples

Steve Tu edited this page Dec 29, 2022 · 20 revisions

Last updated September 12, 2022

Combat Scripting Documentation and Examples

So you want to create your own combat script to use in specific situations like in certain quests and raids? Then you have come to the right place!

You can make your own custom combat scripts in order to tell the program specifically what to do during Combat Mode. This comes with the expectation that the user knows the details of the mission that they selected to farm in.

// Basic Example

Turn 1:
    // Commands for Turn 1 go here.
    character1.useSkill(2).useSkill(1)
    character3.useSkill(2)
    summon(6)
    targetEnemy(2)
    character1.useSkill(3)
    character3.useSkill(3).target(1)
end

Turn 5:
    # Commands for Turn 5 go here.
    summon(5)
    reload
end

Turn 10:
    quickSummon
    exit
end

Script Structure + Execution

  • # or // are recognized as comments in the scripts and will not interfere with the flow of the application.

  • Turn #: "Turn" followed by a number indicates what turn number the Combat Mode needs to be at in order to execute the following commands in the block that is closed off by the keyword, end.

  • end Closes the "Turn" block and signals to the program that the commands encapsulated by the keyword, Turn #:, should be taken in that turn only. It does this by attacking to end the current turn.

  • When every command in the script is done executing, the bot will switch over to Full/Semi Auto. During this time if the current battle allows it (if it is considered a Raid-like battle where reloading the page does not navigate the user back to the Quest Screen), the bot will also reload the page when Full/Semi Autoing to speed up combat.

  • Bot keeps an internal Turn number and does not take into account changes from game mechanics like Akasha advancing the Turn number.

Combat Commands

The following are the supported keywords that you can use to craft your own combat script.

Keywords are case-insensitive. Just make sure to not misspell them.

Commands marked with the (*) are allowed to be put outside the "Turn" block.

Character

  • character# Choose the target character in positions 1, 2, 3 or 4 that will perform the action following after it on the same line.

    • character#.useSkill(#) The targeted character will use their skill in positions 1, 2, 3 or 4.

    • character#.useSkill(#).useSkill(#)... The targeted character will use their skills in order from left to right. So in the example above, character 4 will use their 4th skill, then their 3rd skill, and finally their 1st skill.

    • character#.useSkill(#).target(#) Choose the targeted character at positions 1, 2, 3, 4, 5 or 6 starting from left to right, top to bottom. Useful for characters like Noa and Andira.

    • character#.useSkill(#).wait(#) After executing the skill, wait X amount of seconds to potentially compensate for lag and long skill animations. Can be used together with the .target(#) like this: character#.useSkill(#).target(#).wait(#)

    • character#.useSkill(#).attack After executing the skill, skip the process of clicking the Back button to reset back to its default state and just click the Attack button. This will end the Turn and move on to the next Turn block, if any are left.

Summon

  • summon(#) Invoke the summon in positions 1, 2, 3, 4, 5 or 6.

    • summon(#).wait(#) After invoking the summon, wait X amount of seconds to potentially compensate for lag and long summon animations.

    • summon(#).attack After invoking the summon, skip the process of clicking the Back button to reset back to its default state and just click the Attack button. This will end the Turn and move on to the next Turn block, if any are left.

  • quickSummon Invoke your summon that is set to be your "Quick Summon".

    • quickSummon.wait(#) After invoking the quick summon, wait X amount of seconds to potentially compensate for lag and long summon animations.
    • quickSummon.attack After invoking the quick summon, skip the process of clicking the Back button to reset back to its default state and just click the Attack button. This will end the Turn and move on to the next Turn block, if any are left.

Targeting

  • targetEnemy(#) Choose the targeted enemy at positions 1, 2 or 3 on the screen. Useful for farming Xuanwu during ROTB by selecting the 2nd target.

Full/Semi Auto

  • enableFullAuto (*) Enables Full Auto for the rest of the fight. Note that every command after enableFullAuto will be ignored as the program will let the game's logic take over from here. The program will now wait until the user reaches the Quest Results Screen or the party is wiped. In the event that it failed to enable Full Auto, it will fallback to enabling Semi Auto instead.

  • enableSemiAuto (*) Enables Semi Auto for the rest of the fight. The same logic that applies to enableFullAuto applies for this command as well. In the event that it failed to enable Semi Auto, it will fallback to enabling Full Auto instead.

  • repeatManualAttackAndReload (*) Bypasses the bot's automatic attempt at enabling Full/Semi Auto at the end of reading the combat script and will proceed to manually press the Attack button and reload (if the mission supports it) until combat ends. This command can be placed both inside the Turn block or outside.

Raid-like Commands

  • reload This command will press the "Attack" button and will wait until the "Cancel" button to disappear. Once it does or after a few seconds has passed, bot will reload the page. Be warned that using this command in a non-Raid-like battle will put the bot back to the Quest Screen completely interrupting Combat Mode. You can tell a battle is Raid-like if you reload the page and you are not booted out of Combat.

  • exit Signal the program to leave the Raid without retreating. Used commonly while farming multiple Raids at the same time.

  • requestBackup Requests backup without Twitter.

  • tweetBackup Requests backup via Twitter.

Item Commands

  • useGreenPotion.target(#) This command will use a Green Potion on the targeted character at positions 1, 2, 3, 4, 5 or 6 starting from left to right, top to bottom.

  • useBluePotion This command will use a Blue Potion.

  • useFullElixir This command will use a Full Elixir.

  • useSupportPotion This command will use a Support Potion.

  • useClarityHerb.target(#) This command will use a Clarity Herb on the targeted character at positions 1, 2, 3, 4, 5 or 6 starting from left to right, top to bottom.

  • useRevivalPotion This command will use a Revival Potion.

Misc Commands

  • back Bot clicks the Back button to move to the next wave. This expedites farming VH Slimes where the MC awakens Purity Blade on Turn 1, hits the Back button, then Sarasa uses her 3rd skill to end the battle. Note: "back" advances the internal Turn Number by 1 so any further commands needs to be placed in the next subsequent Turn block.

  • attackback Bot presses the Attack button and then the Back button right afterwards. This will advance the Turn number by 1. Useful to farm Fragments from Elemental Treasure Quests if you can kill the wave with just 1 auto-attack per wave.

Common Use Cases

  • I want to one-punch raids in Turn 1 and then leave in order to continue looking for more Raids.
Turn 2:
    exit
end
  • I want to execute character actions only on certain turns.
Turn 1:
    character2.useSkill(1)
    summon(6)
    character4.useSkill(2)
end

// The program will now keep clicking the "Attack" button until it reaches Turn 7.

Turn 7:
    character2.useSkill(4)
end

// Again, the program will now keep clicking the "Attack" button until it reaches Turn 15.

Turn 15:
    summon(4)
end
  • I want to use one skill each turn as I know that these skills and/or Summon will eliminate the wave in one hit.
Turn 1:
    character1.useSkill(4)
end

Turn 1:
    summon(6)
end

Turn 1:
    character2.useSkill(1)
end
  • I want to turn on Full Auto after I set my skills on Turn 1.
Turn 1:
    summon(6)
    character1.useSkill(4).useSkill(3).useSkill(2)
    character3.useSkill(3)
    character2.useSkill(1).useSkill(4)
    character1.useSkill(1)
    character3.useSkill(1)
    enableFullAuto
end
  • I want to slime-blast VH Slimes.
// Farming VH Slimes
Turn 1:
    character1.useSkill(1) // Awaken Purity Blade
    back                   // back is needed to skip the animations and proceed to the 2nd wave.
end

Turn 2:
    character4.useSkill(3) // Sarasa
end