When I want to warm-up in Overwatch before competative or in-between competative games, I like to spend some time in an in-game aim trainer. There are two that I like to use, and this is one of them.

Do you like PMAJellies' Aim Trainer V5, but only care about the "Hero Arena" and "Flying Heroes" game modes, and were bothered by how buggy it was at times? If these statements are applicable to you as they were for me, then Aim Trainer Slim Edition is for you!


As a long-time user of PMAJellies' Aim Trainer V5, here were the things I did not like about it:

  • Inconsistent control schemes between game modes
  • Inconsistencies between menus
  • Poor multiplayer support
  • Server crashes (especially when entering the "Flying Heroes" game mode with two players)
  • Bugs/limitations

I finally decided I was tired of dealing with flaky code that blemished an otherwise wonderful aim trainer, and decided to look at the code to see what could be done about it while adding some new things to it. What I found there was suboptimal:

  • Readability was not as easy as it could have been due to how the various rules and subroutines were grouped together for each game mode and how they were ordered in the code itself (e.g. the "Flying Heroes" stack came before the "Hero Arena" stack, even though as a menu option "Hero Arena" comes first)
  • There was code that was duplicated accross various rules and could be placed into it's own subroutine
  • There existed subroutines that didn't need to exist
  • There existed variables that didn't need to exist
  • Inconsistencies with how the menu items worked (e.g. where you were supposed to click to "select" a menu option and where the icon/text for it was differred)

The quality of the original code versus SE's code is reflected in server load stats: whereas in "Flying Heroes" with the original code server load would initially peak at 255 creating the game mode and then settle-in around the high-100s/low-200s, SE's code will only peak at 255 during creation and then settle-in around or below 100 - a substantial difference. The less load that's being put on a custom game's server, the less likely it's going to crash from being overburdened.

I just wanted to illustrate the shortcomings of the original code, no offense PMAJellies.


Now I want to mention some of the changes and improvements I made to PMAJellies' original code:

  • The big one: removal of the "Sphere Frenzy," "Flick," "Threats," and "Hero Juggle" game modes.
  • Better sorting of rules and subroutines
  • New and consistent naming of variables, rules, and subroutines
  • Consistent controls and colors between menus, and menu option selection is easier
  • Better multiplayer support
  • Making new subroutines to cut-down on duplicated code where possible
  • Removal of code that wasn't used
  • Removal of most goto statements in favor of while loops
  • Tweaked behaviors for most of the "Hero Arena" bots (e.g. Doomfist can now leave his boundaries to come after you!)
  • Doomfist's health in "Hero Arena" has been reduced by half
  • Whenever you select more than 4 heroes in "Hero Arena," it now cycles through the array of selected heroes to replace them instead of replacing the first selected hero every time after the fourth (hard to describe; try it out for yourself :) )
  • The second biggest change: there are now no "hero pools" to choose from in "Flying Heroes" - it's essentially "mixed" always. However, the behaviors of heroes from the other pools (Pharah, Mercy, Winston, Sombra) have been transfered, and new behaviors for Pharah and Mercy as well as new heroes (Ashe, Brigitte, Cassidy, Doomfist, D.va, Echo, Genji, Hanzo, Junker Queen, Kiriko, Reinhardt, Sojourn, and Tracer) have been added
  • And of course, increased server performance!

I'll also mention the new control scheme here:

  • Interact + Primary -> select menu options
  • Interact + Primary + Secondary + {Change Hero Key, default H} -> change hero

Notes & Limitations

Finally, I want to mention some things regarding the code itself:

  • Bot behavior works by generating a random number to determine what it should do - it's a game of chance. wait periods between actions are also sometimes randomized.
  • Bots are resurrect'ed whereas players are respawn'ed'; couldn't tell you if it really matters, though. :)
  • Max distance you can set in "Flying Heroes" is 50


If you have any suggestions or notice any bugs, let me know!


This post utilizes other codes either in part or in full. This could be because they remixed them, used parts of them, were inspired by them, or other reasons.

Players | 1 - 5
Categories: Practice Mode
Heroes: D.va, Doomfist, Junker Queen, Orisa, Ramattra, and 32 more...
Created at:
Last updated:
Current version: 1.0.1


Interact + Primary Fire
select menu options
Interact + Primary Fire + Secondary Fire
change hero
select menu options
+ +
change hero
select menu options
+ +
change hero
select menu options
+ +
change hero
select menu options
+ +
change hero



Users Also Like

Similar Codes

Join the Workshop.codes Discord