2K Script Lab
GuidesTested on: PS5 · Series X · PC

Free throw timing with a Cronus Zen script in NBA 2K27: the easy case, and how to use it for tuning

Free throws are the easiest shot for a script to time: no defender, no movement, one animation. That makes them useless as a performance test and perfect as a tuning tool. How to use twenty free throws to find your base offset, and what to expect from each script.

By 2K Script Lab crewPublished Last updated 4 min read

Why free throws are different

A jump shot's green window depends on the animation, your build, your movement into the shot, contest, and fatigue. A free throw depends on the animation and nothing else. You stand still, the defender does not exist, the game does not apply a contest penalty. The script's hold duration either matches the release or it does not.

That is why a script at 82% on open threes can be at 98% on free throws. The free throw is not testing the script's tuning across shot types; it is testing whether the base offset plus your latency lands in the window at all.

Using free throws to find your base offset

This is the procedure from our testing methodology and it is the same one most vendor guides describe.

  1. Set up the game. Shot Timing on, Shot Meter off (or on for this step only if you read the meter faster), Visual Cue set to what you will play with. Settings →
  2. Load your script, correct mode, free-throw or set-shot profile.
  3. Shoot twenty free throws in a practice mode or MyCareer drill.
  4. Log each result as green, slightly early, slightly late, very early, very late.
  5. Read the pattern. Mostly green with a scatter of early and late: your offset is right. Mostly slightly early: offset needs to be later; increase the hold by 5 ms. Mostly slightly late: decrease by 5 ms. Very early or very late on most: you are far off — check the visual cue setting, the build, the patch version, and your latency number before touching the offset.
  6. Adjust and repeat until balanced. Usually two or three rounds.

The logging is the part people skip. Ten shots that feel "mostly good" hide a systematic lean that shows up on fades.

What each script does with free throws

ScriptFree-throw handlingOur tuned FT result (20 attempts)
yew2KSeparate FT timing in generated file20 / 20
GreenFT offset in menu19 / 20
DynastyFT offset in menu20 / 20
PrimeFT offset per build slot19 / 20
HoopsPreset19 / 20
cronus.gg Auto-GreenUses set-shot offset18 / 20

The spread is noise. Any of them will hit your free throws once tuned. The point of the table is that if you are well below 18, look at setup, not the script.

Free throws as a patch detector

After a 2K patch, before you play, shoot twenty free throws with yesterday's offset. If the pattern is balanced, the window did not move and you can play. If it leans, the patch changed something — either the window or something upstream like animation speed — and you re-tune or wait for the vendor update. v1.3 on August 31 did not move free throws on any script we run, which told us in two minutes that the "verified" files vendors posted that day were optional. Patch tracker →

Season 2 starts October 16. Plan on doing this the morning after.

Free throws as a latency detector

Your offset includes your latency. If you move from a wired Xbox to the PS5 Zen LINK path, or change TVs, or switch to a wireless controller, your latency changes and your free throws will lean. Twenty free throws tells you. Input lag →

The free-throw animation matters

Different free-throw animations have different release points. If you change your free-throw animation in MyPlayer, re-tune. Some vendors' guides list starting values per free-throw animation; most just tell you to tune. Slow, high-release animations tend to want a later hold than the default set-shot value.

What free throws cannot tell you

Anything about fades, pull-ups, contested shots, layups, or how the script handles movement. A perfect free-throw score with a bad fade offset is common. Free throws are step one. The drill set is step two. Shot profiles →

The usual caveat

Twenty perfect free throws come from an unauthorized third-party tool under 2K's Code of Conduct, with penalties up to a permanent account or device ban. Ban risk →

FAQ

Do scripts time free throws?
Yes. Every 2K27 script we tested has a free-throw mode or uses the same offset as a set shot. Free throws are the simplest shot: one animation, no movement, so scripts green them at very high rates once tuned.
Why do reviewers use free throws to tune?
Because they remove every variable except offset and latency. If free throws are consistently early or late, your base offset is wrong and every other shot will be too.
What free-throw percentage should I expect from a script?
Near 100% on a tuned script with a normal free-throw animation. If you are below 90% on free throws, something is wrong with setup, not the script.
Do free throws need a separate offset from jump shots?
On most scripts yes, because the free-throw animation is a different release. Menu scripts expose it; generated files include it; Hoops uses a preset.
Can I use free throws to detect a patch change?
Yes. Twenty free throws after a patch is the fastest way to see whether the timing window moved. If yesterday's offset is now consistently early or late, the patch changed something.

Sources

  1. NBA 2K27 official site (nba.2k.com/)
  2. How we test (this site) (www.nba2k27cronuszenscript.com/how-we-test)
  3. Cronus Zen Central — MVP V8 (latency method) (www.cronuszencentral.com/library/nba-2k26-mvp-v8)
  • free-throws
  • tuning
  • offset
  • timing
  • drills

Keep reading