EXO Recoil Workshop
The Recoil Workshop builds a recoil-control Smart Action for one gun, on mouse or controller. Mouse players trace the gun's real pattern; controller players tune a live stick pull while they shoot. The result is saved on Fire in your current config.
What it is
The Recoil Workshop is the EXO's version of XIM's Recoil Modeling, made friendlier. It produces an ordinary Smart Action on your Fire button. While you hold Fire, that action pulls your aim against the gun's climb.
| Path | Used for | What you do | What it saves |
|---|---|---|---|
| Mouse | Mouse and keyboard configs | Fire a magazine at a wall and trace the bullet marks | MOVE steps in mouse counts, named "Recoil control" |
| Controller | Controller configs | Shoot while the EXO pulls the right stick, and adjust the pull | A wait, then right-stick AIM steps, named "Anti-recoil" |
The workshop picks the path from your config's input type.
Where to open it
- The Recoil Workshop button in Scripts (Smart mappings).
- The Fire button's own panel.
- The wrench icon on any action the workshop made. It re-opens the workshop with the saved values.
While the workshop is open, the EXO pauses every other Smart Action and stops scripts, so nothing else fires during tracing.

Mouse path, step by step
The mouse workshop is five pages in one sheet.
- Check. Confirm your DPI, aim-down-sights setting and in-game settings, then turn on I've checked my game settings. Turn on Only while aiming down sights if you want the recoil control to work only while ADS.
- Fire rate. Type the gun's RPM, or tap Measure, fire a full magazine, and let the EXO time your fire button. Then tap Use N RPM.
- Fire. Shoot a full magazine at a wall without fighting the recoil. If the shots land on top of each other, set Shots landing on top of each other? to Small, Medium or Large. That spreads the marks out, and the model removes the spread again later.
- Trace. Put the reticle on the first mark and press Trace. Move to each next mark and click Fire. These clicks are used for tracing and never shoot. Press Done. You can Trace another magazine; up to 8 are averaged.
- Tune. The model is drawn as dots over your trace. Set Fewer moves, Scale X, Scale Y and Wait scale, turn on Test it with the gun and shoot, then tap Accept.

The math
- From each traced magazine, the spread aid is removed: shot i's height minus spread × i.
- The magazines are averaged shot by shot. If only some magazines reached a shot, that shot is the average of those.
- The compensation path is the average pattern turned upside down (negated) and multiplied by Scale X and Scale Y.
- Shot i lands at i × 60000 ÷ RPM × Wait scale milliseconds. Movement is spread evenly between shots, so the pull is smooth, not a jerk per shot.
- Fewer moves merges neighbouring shots into one longer move as long as every skipped shot stays within level × 0.6% of the pattern's size (never less than 0.25 counts). The workshop reports the worst actual difference.
The moves are fed in before the mouse translator, so your config's curve, DPI and ADS sensitivity convert them exactly as they convert your hand. They arrive one tick (1–4 ms) later than your own movement.
Mouse path controls
| Control | Range | Step | Default | Meaning |
|---|---|---|---|---|
| I've checked my game settings | on / off | — | off (on when editing a saved action) | Must be on before tracing |
| Only while aiming down sights | on / off | — | off, or the saved setting | Recoil control only while ADS |
| Fire rate | 60–3000 RPM | 10 | 600 | Sets the time between shots |
| Rounds in the magazine (Measure) | 2–100 | 1 | 30 | Magazine size for timing and tracing |
| Shots landing on top of each other? | Off / Small / Medium / Large (0 / 4 / 8 / 14 counts per shot) | — | Off | Spreads overlapping marks so you can trace them |
| Samples | up to 8 magazines | — | — | More magazines give a steadier average |
| Fewer moves | 0–10 | 1 | 3 | Higher merges more shots into fewer moves |
| Scale X | 0–400% | 5 | 100% | Sideways correction strength |
| Scale Y | 0–400% | 5 | 100% | Up/down correction strength |
| Wait scale | 25–400% | 5 | 100% | Stretches or squeezes the timing between shots |
| Test it with the gun | on / off | — | off | Runs the model while you hold Fire |
Limits: 100 shots, 148 steps, 30 s of playback, 10 s per step.
Controller path, step by step
The controller workshop is "tune it while you shoot". There is no DPI, sensitivity or calibration step.
- Open the workshop from a controller config. Turn on Only while aiming down sights if you want it.
- Fire at a wall. The EXO pulls the right stick on top of your own stick, so you can still aim while it pulls.
- Use the D-pad while you shoot: up / down change Pull down by 1%, left / right change Pull sideways by 1%. The game does not see these D-pad presses.
- If the gun kicks harder later in the magazine, set Strength Start / Middle / End and Spray lasts. Use Start delay if the first shots barely move.
- Tap Accept.
The math
- Strength is 0 during the start delay.
- It then moves in straight lines from Start to Middle (at half of Spray lasts) to End (at Spray lasts), and holds at End after that.
- The stick push is (Pull sideways × strength, Pull down × strength), limited to full deflection.
- When saved, the curve becomes a wait for the delay, then AIM steps in 100 ms slices at each slice's middle strength (identical neighbours merge), then End strength held to the 30 s ceiling. Stick variance stays at the action default of ±1 point.
Controller path controls
| Control | Range | Step | Default | Meaning |
|---|---|---|---|---|
| Pull down | 0–100% | 1 | 25% | How hard the stick pulls down |
| Pull sideways | -100 to +100% (minus = left) | 1 | 0 | Sideways drift correction |
| Start delay | 0–2000 ms | 10 | 0 | Time before the pull starts |
| Strength Start / Middle / End | 0–200% each | 5 | 100 / 100 / 100% | Pull strength through the spray |
| Spray lasts | 0.5–10 s | 0.5 | 3 s | Where Middle and End fall |
| D-pad nudges | ±1 per press | 1 | — | Live adjustment while shooting |
| Only while aiming down sights | on / off | — | off | Pull only while ADS |
How patterns are saved
- Accept saves a normal Smart Action on Fire, set to run while held with no cooldown, gated to ADS or always.
- It goes into the current config. Each game's config keeps its own recoil actions, so make one config per game.
- The mouse action is named "Recoil control", with a note such as "Made in the Recoil Workshop at 800 DPI, 600 RPM".
- The settings you used are stored with the action, so the wrench re-opens the workshop exactly where you left it.
- Patterns travel with the config when you share or back up the config.
The workshop keeps a session open with the EXO. If the connection drops for 20 seconds, the EXO closes the workshop and un-pauses your other actions.
Tuning walkthrough (mouse)
- Load the gun in a private match or training area. Stand still facing a flat wall.
- Open the workshop, check your settings, and set the fire rate (Measure is easiest).
- Fire a full magazine without correcting. Trace it. Trace 2–3 more magazines for a steadier model.
- On Tune, turn on Test it with the gun and fire at the wall.
- Still climbing? Raise Scale Y by 5–10%. Dragging down? Lower it.
- Drifting sideways? Adjust Scale X the same way.
- Correction too early or late through the magazine? Adjust Wait scale.
- Pull feels steppy? Lower Fewer moves.
- Tap Accept.
Related: Smart Actions · Script timing · Aim settings
