NoEyeTest (NET) is a Browser Basketball GM progression script.
4.4.0 is the current release. It retunes the progbox v4.3 model and replaces 4.3.x.
NoEyeTest finds players to re-prog by the watch flag (the red bar-chart icon in BBGM).
For a visual, here's an example of a player who is flagged
And a player who isn't
- Since 4.4, NET flags players itself: everyone aged 25+ on a team or in free agency. Worker Console is no longer needed. Set
FLAG_WATCH = falsein the script to keep flagging players by hand.
- After progs (aka, in the
Preseasonphase), run NET in the Danger Zone - Check the News Feed for OVR / PER / age lines on progressed players
See tiers.md for the short story: production drivers, age curve, soft ceiling, god progs. There is no fixed [min, max] prog-range table in 4.3.
- Under 30: rare god prog (OVR-scaled, max ~9%, flat +7 to +13 on every rating except height)
- Soft ceiling: positive gains taper from OVR ~78 toward ~82; negative movement is not tapered the same way
- Pool preparation uses active/free-agent players (
tid >= -1) with integer team and birth-year values, a positive birth year, nonempty ratings, entering age 25+, and finite nonzero PER from the last prior-season regular-season row. Negative PER contributes to this pool; watch status does not restrict it. - Progression additionally requires
watch === 1, not drafted in the prior season, positive PER, and at least two ratings rows. Every skip happens before ratings removal, preserving the complete BBGM history. - RNG is
Math.random()— BBGM has no seed, so re-runs differ - News Feed reports progressed players and eligible watched players skipped for missing/nonpositive PER.
Run once in preseason after BBGM progression: if the entering season is S, NET reads stats from S-1, computes age as S - born.year, removes the just-added BBGM ratings row only for eligible players, and rebuilds from the previous row. It selects the last regular-season stint for S-1; playoffs, stale seasons and a zero-PER last stint cannot supply a replacement. Published NET 3.2 at commit 972f9d3c08476bd91276ea7327b0972dfba3a382 instead averages all nonzero regular-season PER rows for S-1.
BBGM clamps attributes to 0–100 and floors fractional ratings before deriving OVR. The simulator must follow that integer contract; older fractional C++ outputs are historical research results, not proof of JS runtime parity. 4.3 god bonuses are inclusive 7–13; 3.2.x used 7–12.
pnpm install --frozen-lockfile
pnpm test
pnpm exec biome check .Tests execute the complete browser script in an async Node VM with controlled randomness and player storage. They verify pool membership/moments, stats selection, unchanged skipped histories, the preseason age boundary, and integer ratings/OVR. The same 137 controlled-draw cases in the shared fixture also run against the real C++ progression headers in progbox; they cover normal/god branches, bonus endpoints, soft ceilings, clamps, fractional ratings, weighted pools and attempt thresholds for both Candidate and pinned Published scripts. Exact BBGM rating and integer-random helpers are pinned to revision 0ae7a104d541ad0a4806de083819b19735cbf301; the source manifest records URLs and hashes. Vendored helpers retain their upstream license and are used only by tests. Storage, addRatingsRow, develop(0) and values updates are test doubles: these checks do not establish a deployed BBGM revision or live lifecycle acceptance. A separate disposable-league check passed on BBGM v2026.09.16.0733, including a real preseason transition, skipped histories, persistence after reload, and full before/after exports. See release verification for scope and limitations.
Default BBGM from ~26 onward leans hard into random regression. One off-season can kneecap an all-star or stall someone who should be peaking. NET is for multiplayer leagues (and anyone who wants performance-linked progs): good seasons move the needle, lockdown defenders aren't buried by low PER, and aging follows a curve instead of a single harsh dice roll.
The idea and certain elements derive from TheProgMaestro. NET 3.2.x tracks progbox v3.2.1. The 4.3 releases port progbox v4.3 (@akshayexists upstream).


