Skip to content

Scenario Editor

How this page is sourced

Sourced from vendor documentation, plus field names and tooltips read from the scenario editor in September 2026. Checked against its sources. Not yet reviewed by a person.

Profiles describe the pieces. This window describes the match: which pieces play, what the rules are, how a run becomes a number, and whether anyone can find it.

  • Challenge is a separate list. Profiles on Main do not reach it alone.12
  • Scoring is a training instruction. Whatever it pays for is what you practice.
  • Two fields end a run. Either a time limit or a kill count ends it.
  • Tags decide whether anyone finds it. Search runs on them.1

Tabs

Main

The tab holds the scenario name and the lists of player characters and bots in use.1 Each list has an Add Profile button, and each entry can be removed.

This tab is the inventory, not the rules. Adding a profile here makes it available. It does not put it into a challenge run.2

Scenario Main tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimScenario Main tab, every fieldThe inventory: what may appear, not what does.Scenario NameWhat the scenario is called. Itis what a reader searches forand what their score is filedunder.unnamedblanknamedcarries a namePlayer CharactersThe character profiles a playermay use in this scenario. Addingone makes it available; it doesnot put it into a challenge run.none addeda characterBotsThe bot profiles this scenariomay spawn. Same rule: this isthe inventory, not the rules.none addeda bot
Every option on this tab, with a low and a high state side by side.

Unpack

Unpack extracts the original profiles out of the scenario.1 It is useful for undoing changes to a profile and for unpacking selectively rather than everything.

Unpack tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimUnpack tab, every fieldGetting the profiles back out as files.UnpackExtracts the scenario's profilesback out as files you can edit.It is how you undo a change to aprofile, and how you take oneit stays packedpackprofiles written outpack
Every option on this tab, with a low and a high state side by side.

Challenge

The tab starts with map scale and time scale. Then come target speed and target size, each with a static or adapt mode.31

The end conditions follow: time limit, time regained per kill, end after a number of kills, and end after a damage amount.

The end conditions race each other. Set more than one and the run stops at whichever fires first. That is an easy way to build a scenario that never reaches its time limit.

Three bars filling at once: a time limit, a kill count and a damage total. The damage bar reaches its mark first and is labelled as the condition that ends the run.Bassel Bakrhttps://github.com/Bassel-Bakr/aimThree ways to end a runthe first one to fire winsTime limit60 secondsEnd after num killsreached at 70%End after damagereached at 45%this one ends the run
Set three end conditions and the run obeys whichever arrives first.

Time Regained per Kill makes the clock variable. A run that goes well lasts longer than one that does not, so two scores were not measured over the same amount of time.

Two countdown bars. Without time regained the bar empties once and every run is the same length. With it set, three kills each add time, so the run stretches and two scores are no longer measured over the same clock.Bassel Bakrhttps://github.com/Bassel-Bakr/aimRegain 0every run is the same lengthtime remainingtwo scores over one clockRegain seta good run lasts longertime remaining+ kill+ kill+ killtwo scores over different clocks
Regained time makes a good run longer, so two scores no longer share a clock.

For a drill you compare across sessions, leave it at zero and let the time limit be the time limit.

Next come a lock hipfire FOV setting with a locked FOV range, and a force particle effects switch.

Lock Hipfire FOV makes the scenario the same for everyone. A target's angular size depends on the field of view you see it at. Unclamped, your scenario is a slightly different drill for every reader who plays it.

Two panels, each showing two readers side by side at ninety and at a hundred and three degrees of field of view. Unlocked, the target is visibly smaller for the wider field of view. Locked to a range, both targets are the same size.Bassel Bakrhttps://github.com/Bassel-Bakr/aimUnlockedeach reader gets a different drill90 FOV103 FOVthe wider view shrinks the targetLocked to a rangethe same angular target for all90 FOV103 FOVthe clamp holds both the same
Angular size follows field of view. Unclamped, your scenario is not quite the one they play.

That matters most for a scenario you intend to share. A score should mean the same thing on someone else's machine as on yours.

A disable block closes the tab: projectile predictors, cheats, health bars, hit markers and hit sounds.

Static against adapt is the interesting pair. Static holds target speed and size where you set them. Adapt moves them with your performance.

An adapting scenario is harder to read across sessions, because the difficulty is no longer a constant you control. For a drill you want to compare, use static.

The same nine rising scores in two panels. Under static the difficulty line is flat, so the rise is improvement against a fixed bar. Under adapt the difficulty line rises alongside the scores, so the same rise says much less.Bassel Bakrhttps://github.com/Bassel-Bakr/aimStaticdifficulty holds stilldifficultyyour score rose against a fixed barAdaptdifficulty chases youdifficultythe bar rose with you
The same nine runs. Against a fixed bar the rise is improvement. Against a rising one it says much less.

The disable switches are about feedback. Turning off hit markers and hit sounds removes the confirmation you normally get, which makes a drill closer to a game and harder to read.

The same shot on the same target, twice. With hit markers on, four marks appear around the crosshair and the shot is labelled a hit. With them off there is no mark and the label asks whether it landed.Bassel Bakrhttps://github.com/Bassel-Bakr/aimMarkers onyou know instantlyhitfeedback on every shotMarkers offyou have to watch the targetdid that land?closer to a game, harder to read
The same shot with and without confirmation. One of them you can learn from.

Health bars and projectile predictors go the same way. Each one you disable moves the scenario toward a game and away from a measurement.

Keep them on while you are learning a drill, and turn them off only when the point is to practice without them.

Disabling cheats here is what stops a weapon's Cheat tab applying in a scored run.4

Time Limit sets the run length. Sixty seconds is the common default, and a length you repeat is worth more than a length you optimize.

Challenge tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimChallenge tab, every fieldThe rules of a run, and what you are shown during it.Map ScaleScales the whole map. It changesevery distance in the scenarioat once, so a flick that wascomfortable stops being one.a small rooma large oneTime ScaleSpeeds the whole scenario up orslows it down, targets included.normalelapsedthe clock runs normallyfastelapsedthe clock runs fastTarget SpeedA multiplier on how fast targetsmove, applied over whatevertheir dodge profiles already do.the same path, slowlythe same path, fastTarget Speed ModeStatic holds the speed where youset it. Adapt moves it with yourperformance, so the difficultystops being a constant youstatica fixed baradaptthe bar rises tooTarget SizeA multiplier on target size. Thecleanest difficulty dial thewindow has.as the profile set itscaled up from itTarget Size ModeStatic or adapt again. Anadapting scenario is harder toread across sessions, because arise no longer means what itstatica fixed baradaptthe bar rises tooTime LimitHow long a run lasts. A lengthyou repeat is worth more than alength you optimize.a short runthe runa long onethe runTime Regained Per KillSeconds added back to the clockfor each kill. Above zero, agood run lasts longer than a badone, so two scores no longerthe clock only fallslefta kill buys timelefta kill buys time backEnd After KillsStops the run at a kill count.Set alongside a time limit it isa race: whichever fires firstends the run.the run ends earlystop at 4so farit runs a long timestop at 10so farEnd After DamageStops the run once a damagetotal is reached. The thirdrunner in the same race.the run ends earlystop at 4so farit runs a long timestop at 10so farLock Hipfire FOVClamps the field of view targetsare seen at. Unclamped, atarget's angular size differsper reader and your scenario isa different drill eachthe same for everyonethe same size for bothLocked FOV RangeThe field of view the clampholds readers to. It onlymatters once the lock above ison.left opena different drill eachheld to a rangethe same size for bothForce Particle EffectsForces the scenario's particleeffects on, whatever thereader's own settings say.reader's choiceforced onDisable Projectile PredictorsRemoves the lead indicator drawnahead of a moving target.Without it you have to judge thelead yourself.the lead is drawnleadno lead shownDisable CheatsStops a weapon's Cheat tabapplying. It is what keeps anaimbot or a trigger bot out of ascored run.cheats applycheats are offDisable Health BarsRemoves the health bar above atarget, so you cannot see howclose it is to dying.health is shownno barDisable Hit MarkersRemoves the marker that confirmsa hit landed. It makes the drillcloser to a game and harder tolearn from.the hit is markednothing marks itnothing marks the hitDisable Hit SoundsRemoves the hit sound. Keep iton while you are learning adrill and turn it off only whenthe point is practicing withoutthe hit is heardsilent
Every option on this tab, with a low and a high state side by side.

Scoring

The tab opens with a score to win field. A score-per block follows: damage, hit, an over-damage switch, kill, midair direct, any direct, time left and distance traveled.

A movement-based scoring block follows, with its own enable switch. Then comes a score-loss-per block: damage taken, death, and more.

Final score multipliers close the tab, including accuracy, square root accuracy, damage efficiency and kill efficiency.

Whatever this tab rewards is what you will practice. A model paying only for hits trains volume. One that subtracts for misses trains restraint.

Neither is wrong. Inheriting one by accident from the scenario you copied is, because then the drill teaches something nobody chose.

Square root accuracy is the least obvious one. It reduces how much accuracy swings the final score, so a run is judged more on what you did and less on one bad stretch.

The multipliers stack, and two of them overlap. They apply to the subtotal the rest of the tab produces.

The editor recommends not checking both Accuracy and Damage Efficiency, because the same misses are then charged for twice.

Two score calculations from the same subtotal of one thousand. Applying one multiplier gives eight hundred. Applying accuracy and damage efficiency together gives six hundred and forty, and is marked as advised against.Bassel Bakrhttps://github.com/Bassel-Bakr/aimOne multipliermisses charged once1000subtotalx 0.8accuracy800Both checkedthe same misses, twice1000subtotalx 0.8accuracyx 0.8damage efficiency640the editor advises against this
Accuracy and damage efficiency both punish misses. Checking both charges you twice.

Enable Over Damage decides whether damage past what was needed to kill still counts toward the score.

Scoring tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimScoring tab, every fieldWhat a run is worth, which is what you practice.Score To WinThe score a run has to reach. Itis the bar the rest of this tabis measured against.reached earlya long way upScore Per DamagePoints for each point of damagedealt. Paying per damage rewardslanding shots rather thanfinishing targets.a little+2damage landed pays 2a lot+14damage landed pays 14Score Per HitPoints for each hit that lands,whatever it did. A model payingonly for hits trains volume.a little+1a hit pays 1a lot+12a hit pays 12Enable Over DamageWhether damage past what wasneeded to kill still counts.Off, the surplus from anoverkill is thrown away.the surplus is wastedhealthsurplusthe surplus payshealthsurplusScore Per KillPoints for each kill. Paying perkill rewards finishing a targetrather than chipping at it.a little+25a kill pays 25a lot+150a kill pays 150Score Per Midair DirectPoints for a direct hit on atarget that is off the ground.It is how a scenario asks for aspecific shot rather than anya little+10a midair direct pays 10a lot+90a midair direct pays 90Score Per Any DirectPoints for a direct hit,airborne or not.a little+5a direct hit pays 5a lot+40a direct hit pays 40Score Per Time LeftPoints for each second still onthe clock when the run ends. Itpays for finishing early, whichis a speed drill rather than ana little+1a second left pays 1a lot+20a second left pays 20Score Per Distance TraveledPoints for moving. It turns ascenario into a movement drillwith shooting attached.moving pays nothingdistance pays+1+1+1+1Enable Movement Based ScoringTurns the movement block on atall. Left off, nothing in itapplies however it is filled in.movement is ignoredmoving pays nothingmovement counts+1+1+1+1distance paysScore Loss Per Damage TakenPoints subtracted when you arehit. It trains staying alivealongside aiming, which is adifferent drill.a small cost-2damage taken costs 2a heavy one-20damage taken costs 20Score Loss Per DeathPoints subtracted when you die.Set high it makes the scenarioabout survival first.a small cost-10a death costs 10a heavy one-100a death costs 100Accuracy MultiplierMultiplies the subtotal by youraccuracy, so misses chargeagainst everything you earned.unchangedsubtotalaccuracy takes a cutsubtotalSquare Root Accuracy MultiplierMultiplies by the square root ofaccuracy instead. It softens howmuch one bad stretch swings thefinal score.unchangedsubtotala gentler cutsubtotalroot accuracy takes a cutDamage Efficiency MultiplierMultiplies by damage landedagainst damage fired. The editorrecommends not checking this andAccuracy, because the sameunchangedsubtotalefficiency takes a cutsubtotaldamage efficiency takes a cutKill Efficiency MultiplierMultiplies by kills againstshots. It rewards finishingtargets with as little spent aspossible.unchangedsubtotalefficiency takes a cutsubtotalkill efficiency takes a cut
Every option on this tab, with a low and a high state side by side.

Tags

The tab holds tags, a difficulty rating, a description, an aim type and an aim sub type, a flicking switch, and a thumbnail.1

Aim Type and Aim Sub Type are how a drill is found. They feed the browser's filters, so a scenario tagged by the skill it trains reaches the person looking for that skill.

Write the description as the weakness it isolates, not as what it looks like. A reader hunting for a drill is searching by what it fixes.

Tags tab, every field. One strip per field, each naming the setting, describing it, and demonstrating a low and a high state side by side.Bassel Bakrhttps://github.com/Bassel-Bakr/aimTags tab, every fieldWhether anyone ever finds the scenario.TagsThe words the browser searcheson. Empty, the scenario isunfindable however good it is.nobody finds itit turns upit turns up in searchDifficultyThe rating shown beside thescenario. It sets what a readerexpects before they load it.gentlerated 2 of 5hardrated 5 of 5DescriptionWhat the scenario is for. Writeit as the weakness it isolates,not as what it looks like: areader hunting for a drillblankwrittencarries a nameAim TypeThe broad skill the drilltrains. It feeds the browser'sfilters, so this is how theright reader reaches it.unsetclicking or trackingAim Sub TypeThe narrower skill under thattype. It is the differencebetween a scenario found by theperson who needs it and oneunseta sub typeFlickingMarks the scenario as a flickingdrill: one correction onto thetarget rather than a slide ontoit.a slide onto itone snapThumbnailThe picture shown in thebrowser. It is the only thing areader sees before decidingwhether to try the scenario.an empty tilea picture
Every option on this tab, with a low and a high state side by side.

Common mistakes

  • Adding a profile on Main and testing in challenge mode, where nothing changed.12
  • Leaving target speed or size on adapt in a scenario you want to compare across sessions.
  • Keeping the copied scenario's scoring without checking what it pays for.
  • Leaving Tags empty, which makes the scenario unsearchable.1

In practice

Set the rules before the scoring. Decide how a run ends, then decide what it was worth. Doing it the other way round produces a model that rewards the wrong thing.

Do this next. Open the Scoring tab of a scenario you play and find what it pays for. That is what you have been practicing, whether or not you meant to.

Resources

References