Torn Console Jump Optimizer

Works out exactly how much stacked energy to burn on the Game Console for Happy before you train, using Vladar's Training Gains Explained v2.0. Detects your gym from the API, auto-picks the best gym you can reach, and is built for phones.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu budete musieť nainštalovať rozšírenie, ako je napríklad Tampermonkey alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

Autor
Microddot
Denne inštalácií
0
Celkový počet inštalácií
0
Hodnotenie
0 0 0
Verzia
1.6
Vytvorené
31.08.2026
Aktualizované
31.08.2026
Veľkosť
52,2 KB
Kompatibilita
Kompatibilné s Firefox Kompatibilné s Chrome Kompatibilné s Opera Kompatibilné s Edge
Licencia
MIT
Spustiť na

Stack energy, burn some of it on the Game Console for Happy, then spend what's left in the gym. The only hard question is where to draw the line — every point of energy you convert is a point you don't train with. This works that out for you.

It runs the full expected-gain calculation for every possible split of your stack, using Vladar's Training Gains Explained v2.0, and shows you the winner.


What it looks like

Open the gym page, tap ⚡ Console Jump Optimizer, and the answer is the first thing on screen:

Convert 250E

then train 750E · start Happy 28,600

Expected gain vs no convert
7,513 +12.9%

75 trains at Anabolic Anomalies · baseline 6,652 (+861)

Everything else lives in five collapsible panels underneath, each showing its current value on the right so you can read your whole setup without opening anything.


Install

  1. Install a userscript manager — Tampermonkey (Chrome, Edge, Firefox, Safari, Opera) or Violentmonkey.
  2. Click Install this script above.
  3. Go to the gym. A green ⚡ Console Jump Optimizer button appears at the top of the page.

Works on Torn PDA too — the app injects your API key automatically, so autofill works with no setup.


Quick start

  1. Open the panel on the gym page.
  2. Tap Torn API, paste a Limited access key, tap Save API.
  3. Tap the green Autofill button in the header.
  4. Read the answer at the top.

That's it. Autofill pulls your stats, energy, Private Island Happy, perks and current gym, then picks the best gym you can reach and recalculates. After the first time, it's one tap.

If you'd rather not use an API key at all, every field can be typed in by hand — the script works fully offline in that case.


Settings

Stat & Gym

Setting What it does
Stat Strength, Speed, Dexterity or Defense. Each has its own constants in the formula.
Current stat total Your current value for that stat. Filled by autofill.
Gym All 32 gyms, with their dots and energy cost.
Auto-pick the best gym I can reach On by default. See below.
Include specialty gyms I may qualify for Off by default. See below.

About auto-pick. Torn's API exposes your active gym but has no endpoint listing every gym you've unlocked. The 24 standard gyms unlock strictly in order and active_gym is a 1-based index over that same order, so everything at or below your active gym is provably unlocked. The script takes that set, runs the full optimiser on each gym, and picks the highest expected gain.

It ranks by actual simulated gain, not by dots — and that matters. A higher dot can lose: with 137 stacked energy, Elites (8.0 dots, 50E per train) fits only 2 trains and wastes 37 energy, so Balboas (7.5 dots, 25E) beats it outright. Picking by dots alone gets that backwards. Choosing a gym by hand switches auto-pick off, so your choice sticks.

About specialty gyms. Their stat-ratio requirements aren't in the API, so eligibility can only be estimated from your battle stats — that's why the toggle is off by default. One exception is checked properly: the Sports Science Lab requires never having taken Xanax or Ecstasy, which is read from your personalstats counters, and it's also excluded if you've set Ecstasy to Yes, since using E disqualifies you anyway. Jail Gym is never auto-picked.

Happy

Setting What it does
Private Island Happy Your max Happy. Autofilled from happy.maximum.
Candy Pick from all 19 candies, 25 through 250 base Happy. Count is fixed at 49.
Using EVL Stock Reward? No / Tier 1 / Tier 2 / Tier 3 — 0, 1000, 2000 or 3000 flat Happy.
Ecstasy Doubles the whole base, EVL and Console Happy included.

A live line shows the arithmetic, e.g. 49 × Box of Bon Bons (25) = 1,225 + 5,025 Private Island + 2,000 EVL Tier 2 = 8,250 Happy before the Console, doubled by Ecstasy.

Energy & Console

Setting What it does
Stacked energy Total energy you're about to spend. Autofilled.
Work at a 5 Star Game / Toy Shop? No = 100 Happy per Console use, Yes = 200.

The Console always costs 5 energy per use, so that's 20 or 40 Happy per energy. Conversion amounts are scanned every 10 energy.

This setting matters more than people expect. At 900 stacked energy, 200k Speed, George's, no perks: with the shop job it converts 270E for +22.2%. Without it, 90E for +1.2% — barely worth doing at all.

Perks

Seven fields, combined multiplicatively, not additively. Seven 10% perks give ×1.9487, not ×1.70.

Field Comes from
Property % property_perks
Job % job_perks — company perks like Gents Strip Club's dexterity bonus
Book % book_perks — the temporary +20%/+30% gym gain books
Uniform / Sports Sneakers % enhancer_perks
Faction Steadfast % faction_perks
Education, general % education_perks, not stat-specific
Education, stat-specific % education_perks naming your selected stat

What is the Uniform bonus? Sports Sneakers — the only enhancer in the game that affects training, at +5% Speed gym gains. It's a wearable enhancer, which is why it maps to enhancer_perks. Because it only helps Speed, this field correctly stays at 0 when you're training Strength, Defense or Dexterity, and will only ever read 0 or 5.

Perks that name a stat other than the one you're training are excluded automatically. Gym experience perks are ignored, since they don't affect stat gains.


The Torn API

One key, one purpose. The key is stored on your own device (via GM_setValue, falling back to localStorage) and is sent to api.torn.com and nowhere else. There is no analytics, no telemetry, no third-party server, and the key is never written to logs.

Access level: Limited. That's set by battlestats; everything else needs Minimal or Public. Make a key at Settings → API Key, or preferences.php#tab=api.

Autofill makes two requests:

GET /user/?selections=battlestats,bars,perks,gym,personalstats
GET /torn/?selections=gyms          (Public; cached 24h)

Both carry &comment=200merits so Torn staff can attribute the traffic. The gym list is cached for a day, so repeat autofills are a single request.

What each selection is for: battlestats your stat totals and the specialty-gym ratio checks · bars current energy and max Happy · perks the seven bonus fields · gym your active gym · personalstats the Xanax/Ecstasy counters that gate the Sports Science Lab.

If Torn returns an error the script surfaces the code and message, and it deletes the stored key on codes 1, 2, 10, 13 and 18 (empty, incorrect, owner in federal jail, disabled or paused keys) rather than hammering the API.


How the maths works

For each candidate conversion amount c, in 10-energy steps from 0 to your full stack:

  1. Happy budget. (Private Island + 49 × candy + EVL + c × ConsoleHappyPerEnergy) × Ecstasy, capped at 99,999.
  2. Training. The remaining stack − c energy is simulated train by train. Each train's gain uses your stat total including everything gained so far, so the compounding is modelled rather than approximated.
  3. Happy decay. Each train costs round(0.1 × E × rand(4,6)) Happy. The expected value is the mean of the three rounded outcomes.
  4. The split with the highest total gain wins. On an exact tie the smaller conversion wins.

Expected values, not a simulation

Torn rolls randomness into every individual train. This calculator deliberately computes the expected outcome instead of sampling, so the same inputs always give the same answer. Your real session will land above or below it. The C randomness constant from the original formula is therefore unused, on purpose.

Known limitations

  • One stat and one gym per calculation.
  • Happy is capped at 99,999 and stat at 50,000,000 inside the formula, matching the source.
  • The high-Happy correction term (1 − (H / 99,999)²) × A is, per Vladar's own notes, the least certain part of the formula.
  • Jail Gym and Sports Science Lab dot values are community estimates.
  • Gym dots are from a built-in table rather than the API, so the numbers match the published formula exactly.
  • Conversion is scanned every 10 energy, so the answer is accurate to the nearest 10E.

FAQ

It says "Convert nothing" — is that a bug? No, and it's common at high stat totals. Once your stat is large, the base term dominates and extra Happy moves the needle less than the energy you gave up to get it. Converting zero is frequently the right answer.

Why did it pick a gym I'm not standing in? Auto-pick chooses the best gym you can reach, not the one you're in. When they differ it tells you: "You're in George's." Go switch, or turn auto-pick off.

Does it work on mobile? It's built for mobile first. The answer is pinned to the top while you scroll, inputs are 44px tall at 16px font so iOS doesn't zoom when you tap them, and everything is single-column with no sideways scrolling.

Why is the candy count fixed at 49? That's the intended workflow for this calculator. It's a single named constant at the top of the file if you want to change it.

Does it click anything for me? No. It reads and calculates only. It never uses the Console, trains, or takes any action in-game on your behalf.


Privacy & disclosure

  • Your API key stays on your device and is sent only to api.torn.com.
  • No tracking, no ads, no analytics, no external servers.
  • No external JavaScript — the script is entirely self-contained.
  • The settings panel footer contains a link to the author's Torn profile inviting an optional Xanax donation. It's a plain link; nothing in the script is gated behind it.

Credits

Formula: Vladar's Training Gains Explained v2.0. Gym data compiled from the Torn wiki and community sources.

Written by Microddot [4347781]. Bugs and suggestions: message me in Torn.

Licensed MIT.

Enjoying it? Send a Xanax to Microddot [4347781]. 💊