Difficulty and progression
(all trainers & wild)
(added before ×1.5)
multiplier
the level cap
Hard Mode (always on)
Every battle level — trainers, wild encounters, and scripted fights — is computed as
(base + 6 on Kanto) × 1.5, rounded, clamped to 100.
The catching tutorial stays at level 5. EXP gains are tripled (3.0×).
Badge-based Level Cap
Your Pokémon can’t gain EXP past a cap tied to your badge count. After 8 Johto badges (pre-League), the cap locks to Lance’s ace level. Pokémon above the cap simply stop earning EXP. Daycare and Rare Candy obey it too. The cap lifts entirely after all 16 badges.
| Progress (badge count) | Base cap (reference) | Cap after hard mode | Notes |
|---|---|---|---|
| Johto 0 | 9 | 14 | Applies from start until you earn your 1st Johto badge |
| Johto 1 | 16 | 24 | |
| Johto 2 | 20 | 30 | |
| Johto 3 | 25 | 38 | |
| Johto 4 | 30 | 45 | |
| Johto 5 | 31 | 47 | |
| Johto 6 | 35 | 53 | |
| Johto 7 | 40 | 60 | Applies until you earn your 8th Johto badge |
| Johto 8 (pre-League) | 50 | 75 | Applies until you clear the League (Champion Lance ace level) |
| Kanto 0 | 60 | 90 | Used after you clear the League, even with 0 Kanto badges |
| Kanto 1 | 62 | 93 | |
| Kanto 2 | 64 | 96 | |
| Kanto 3 | 66 | 99 | |
| Kanto 4 | 68 | 100 | Clamp at 100 for higher tiers |
| Kanto 5 | 70 | 100 | |
| Kanto 6 | 72 | 100 | |
| Kanto 7 | 75 | 100 | Cap removed after you earn all 8 Kanto badges (16 total) |
- Start of game (0 Johto badges): cap is 14, so your starter can gain EXP until it hits level 14; EXP is blocked at 14 until you earn your 1st badge.
- Three Johto badges: cap is 38, so a level 37 Quilava still gains EXP but will stop at 38 until you earn one more Johto badge.
- After earning all 8 Johto badges (before the League): cap is 75; EXP stops at 75 until you clear the League.
- After clearing the League (still 0 Kanto badges): cap is 90; EXP stops at 90 until you earn your 1st Kanto badge.
Compute the displayed level from a base level. Applies rounding and the 100 cap.
Wild encounters and roaming beasts
Wild Level Scaling
Grass, surfing, fishing, headbutt trees, Bug-Catching Contest, and most static encounters (Red Gyarados, legendaries, Sudowoodo) all get the Kanto +6 bonus then the ×1.5 multiplier. Snorlax is exempt from the +6 bonus (still gets ×1.5).
Roaming Beasts
Raikou and Entei: if on the same map as the player, any wild encounter becomes the roamer. They cannot flee on the first turn. Each roam tick gives a 50% chance to stay put. Their levels also scale with Kanto bonus + hard multiplier.
Trainers (before vs after, plus hard-mode result)
every Gym Leader
with upgraded rosters
cap at max level
All Johto leaders now have 6 Pokémon; Kanto leaders, Blue and Red are also 6. Key ace levels:
| Trainer (ace) | Vanilla ace lvl | Hack ace lvl (base) | Hack ace lvl in hard mode |
|---|---|---|---|
| Falkner (Pidgeotto) | 9 | 9 | 14 |
| Bugsy (Scyther) | 16 | 16 | 24 |
| Whitney (Miltank) | 20 | 20 | 30 |
| Morty (Gengar) | 25 | 25 | 38 |
| Chuck (Poliwrath) | 30 | 30 | 45 |
| Pryce (Piloswine) | 31 | 31 | 47 |
| Jasmine (Steelix) | 35 | 35 | 53 |
| Clair (Kingdra) | 40 | 40 | 60 |
| Will (Xatu) | 42 | 42 | 63 |
| Koga (Crobat) | 44 | 44 | 66 |
| Bruno (Machamp) | 46 | 46 | 69 |
| Karen (Houndoom) | 47 | 47 | 71 |
| Lance (Dragonite) | 50 | 50 | 75 |
| Brock (Tyranitar) | 44 | 72 | 100 (78×1.5 capped) |
| Misty (Suicune) | 47 | 70 | 100 (76×1.5 capped) |
| Lt. Surge (Raikou) | 46 | 62 | 100 (68×1.5 capped) |
| Erika (Celebi) | 46 | 66 | 100 (72×1.5 capped) |
| Janine (Muk) | 39 | 64 | 100 (70×1.5 capped) |
| Sabrina (Lugia) | 48 | 68 | 100 (74×1.5 capped) |
| Blaine (Entei) | 50 | 74 | 100 (80×1.5 capped) |
| Blue (Ho-Oh) | 58 | 77 | 100 (83×1.5 capped) |
| Red (Mewtwo) | 81 | 88 | 100 (capped from 132) |
- Hard-mode level = (base level [+6 if the fight is in Kanto]) × 1.5, rounded, then clamped to 100. All Kanto bosses therefore hit the level cap. Red is not in Kanto for the +6, but still caps at 100 after the 1.5× multiplier.
- Major battles use a stronger (but non-cheating) trainer AI profile: type-aware move choice, more consistent setup/status logic, aggressive switching, and more decisive item usage.
Trainer Pokémon stat boosts (DVs + Stat Exp) + held items
Before
Trainer Pokémon stats were computed without pulling Stat Exp from the party struct — trainer Stat Exp was effectively 0.
After
Trainer Pokémon now receive class-based DVs + Stat Exp, stats are recomputed at party build, and battle stats are copied from the party struct (the boost actually applies).
Gen 2 terminology: “IVs” = DVs (0–15 per stat), “EVs” = Stat Exp (0–65535 per stat).
Trainer class DVs (before → after) Atk/Def/Spd/Spc · 0–15 each
| Trainer class | Before | After |
|---|---|---|
| FALKNER | 9/10/7/7 | 11/11/11/11 |
| WHITNEY | 8/8/8/8 | 11/11/11/11 |
| BUGSY | 9/8/8/8 | 11/11/11/11 |
| MORTY | 9/8/8/8 | 12/12/12/12 |
| PRYCE | 9/8/8/8 | 12/12/12/12 |
| JASMINE | 9/8/8/8 | 12/12/12/12 |
| CHUCK | 9/8/8/8 | 12/12/12/12 |
| CLAIR | 7/12/13/13 | 13/13/13/13 |
| WILL | 13/12/13/13 | 13/13/13/13 |
| BRUNO | 13/12/13/13 | 13/13/13/13 |
| KAREN | 7/15/13/15 | 13/13/13/13 |
| KOGA | 13/12/13/13 | 13/13/13/13 |
| CHAMPION | 13/12/13/13 | 15/15/15/15 |
| BROCK | 9/8/8/8 | 13/13/13/13 |
| MISTY | 7/8/8/8 | 13/13/13/13 |
| LT_SURGE | 9/8/8/8 | 13/13/13/13 |
| ERIKA | 7/8/8/8 | 13/13/13/13 |
| JANINE | 9/8/8/8 | 13/13/13/13 |
| SABRINA | 7/13/8/7 | 13/13/13/13 |
| RIVAL2 | 9/8/8/8 | 14/14/14/14 |
| BLAINE | 9/8/8/8 | 13/13/13/13 |
| EXECUTIVEM | 13/8/10/8 | 13/13/13/13 |
| EXECUTIVEF | 7/14/10/8 | 13/13/13/13 |
| RED | 15/13/13/14 | 15/15/15/15 |
| BLUE | 9/13/13/13 | 15/15/15/15 |
Trainer class Stat Exp (EVs) Applied equally to all 5 stats
Stat Exp is applied equally to HP/Atk/Def/Spd/Spc. Tuning knobs: trainer class Stat Exp table + Rival ID scaling.
Trainer class Stat Exp
Stat Exp is applied equally to HP/Atk/Def/Spd/Spc as a big-endian word, where the low byte is always 0:
StatExp = (high_byte) × 256.
Tuning knobs: trainer class Stat Exp table + Rival ID scaling.
| Trainer class | Stat Exp high byte | Stat Exp per stat |
|---|---|---|
| FALKNER | 30 | 7680 |
| WHITNEY | 30 | 7680 |
| BUGSY | 30 | 7680 |
| MORTY | 60 | 15360 |
| PRYCE | 60 | 15360 |
| JASMINE | 60 | 15360 |
| CHUCK | 60 | 15360 |
| CLAIR | 80 | 20480 |
| EXECUTIVEM | 100 | 25600 |
| EXECUTIVEF | 100 | 25600 |
| WILL | 120 | 30720 |
| BRUNO | 120 | 30720 |
| KAREN | 120 | 30720 |
| KOGA | 120 | 30720 |
| CHAMPION | 140 | 35840 |
| BROCK | 180 | 46080 |
| MISTY | 180 | 46080 |
| LT_SURGE | 180 | 46080 |
| ERIKA | 180 | 46080 |
| JANINE | 180 | 46080 |
| SABRINA | 180 | 46080 |
| BLAINE | 180 | 46080 |
| BLUE | 200 | 51200 |
| RED | 220 | 56320 |
Rival Stat Exp scaling (special-cased by trainer ID)
- Rival1: IDs 1–3 → 0; 4–6 → 30; 7–9 → 50; 10–12 → 70; 13–15 → 100
- Rival2: IDs 1–3 → 160; 4–6 → 180
Stat Exp impact (rule-of-thumb)
In the Gen 2 stat formula, Stat Exp contributes floor(sqrt(StatExp)) / 4, then scales with level.
| High byte | Stat Exp | isqrt(StatExp)//4 |
+stat @ Lv50 | +stat @ Lv100 |
|---|---|---|---|---|
| 30 | 7680 | 21 | 10 | 21 |
| 60 | 15360 | 30 | 15 | 30 |
| 80 | 20480 | 35 | 17 | 35 |
| 100 | 25600 | 40 | 20 | 40 |
| 120 | 30720 | 43 | 21 | 43 |
| 140 | 35840 | 47 | 23 | 47 |
| 160 | 40960 | 50 | 25 | 50 |
| 180 | 46080 | 53 | 26 | 53 |
| 200 | 51200 | 56 | 28 | 56 |
| 220 | 56320 | 59 | 29 | 59 |
Per-stat contributions before the constant +5 (or +Level+10 for HP). Same Stat Exp to all 5 stats, so trainers are “evenly” buffed.
Held items (major battles)
Held items are distinct from trainer-used items (Potions/Full Restores/etc). This section is only about Pokémon-held items.
Before → after
- Before: most major battles used
TRAINERTYPE_MOVES(so held items were not possible). - After: major battles use
TRAINERTYPE_ITEM_MOVES, and many Pokémon carry held items.
Held items used (unique list)
BERRY, BLACKBELT_I, BLACKGLASSES, CHARCOAL, DRAGON_FANG, GOLD_BERRY,
HARD_STONE, LEFTOVERS, LIGHT_BALL, MAGNET, METAL_COAT, MINT_BERRY,
MIRACLEBERRY, MIRACLE_SEED, MYSTIC_WATER, NEVERMELTICE, PINK_BOW, POISON_BARB,
SHARP_BEAK, SILVERPOWDER, SOFT_SAND, SPELL_TAG, TWISTEDSPOON.
Held items are shown directly on the Hack Pokémon cards in the visualizers below (Rival / Rocket / Boss teams).
Pokémon without a displayed held item use NO_ITEM.
Trainer AI upgrades (major battles)
Applies to Gym Leaders, Elite Four + Champion, Rival fights, Team Rocket bosses, key Grunts, and endgame bosses (Red/Blue).
Move selection layers
Avoids redundant/invalid moves (e.g. status when the target can’t be statused).
More willing to use stat boosts and nerfs early in the fight.
Avoids immunities and prefers super-effective moves when available.
Extra context rules for Protect timing, Encore, Perish Song, and more.
Discourages stalling/setup when the AI is low HP.
Pushes toward higher-damage lines and takes KOs when available.
Avoids wasting status moves into immunities (e.g. Toxic into Poison).
Switching & Items
SWITCH_OFTEN punishes bad matchups and exploits resistances. ALWAYS_USE items: bosses don’t sit on Full Heal/Restore anymore.
AI Bugfixes (8 fixes)
Mean Look, Conversion2, Sunny Day synergy, Cautious AI, Future Sight, type-matchup reading, item selection loop, and status-heal logic.
Full bugfix details 8 engine-level AI fixes
- Fixed Smart AI checks for Mean Look so it keys off the player being badly poisoned (instead of itself).
- Fixed Smart AI Conversion2 logic so it doesn’t incorrectly discourage it after the first turn.
- Fixed Smart AI Sunny Day synergy so it recognizes SolarBeam / Flame Wheel / Moonlight.
- Fixed Cautious AI so it can’t “early return” and fail to discourage residual moves.
- Fixed redundant-check for Future Sight so it correctly detects an already-active Future Sight.
- Fixed type-matchup reading so AI layers don’t accidentally evaluate matchups with the wrong move type.
- Fixed AI item selection loop so it can’t read past the trainer item slots.
- Fixed AI status-heal logic so Full Heal/Restore also clears Nightmare + confusion.
Rival battles
Full Boss Teams
Every Rival fight is 6v6 except the intro fight in Cherrygrove (still 1 Pokémon). Fixed movesets prevent accidental early STAB from level scaling.
Threatening Progression
Zubat→Crobat, Gastly→Gengar, Magnemite→Magneton. Sneasel and Kadabra/Alakazam become core threats by late Johto.
Team Rocket executives
Full 6v6 Executive Teams
All Rocket Executive battles in Mahogany Hideout and Radio Tower are full boss teams with fixed movesets and held items.
Real Threats
Fake Director mixes Poison/Dark/Flying/Steel staples. Radio Tower boss runs Houndoom with Sunny Day + Solarbeam.
Full teams before/after (levels, moves, held items)
Levels shown are base (pre hard-mode). Kanto fights also get +6 then ×1.5 (cap 100). Compare Vanilla vs Hack rosters below. Held items shown on Hack cards.
Other changes
💰 Economy & Items
- Repel prices slashed: Repel 120, Super Repel 170, Max Repel 240.
- Evo stones at Celadon Dept Store 4F (¥50,000 each).
- Free EXP Share in the PC on a fresh save.
📈 EXP Curves
Many strong Pokémon move from Slow to Medium-Slow growth: Gyarados, Dragonite, Tyranitar, Rhydon, Arcanine, Starmie, Heracross, Skarmory, Houndoom, Snorlax, Lapras, legendaries, and more.
🚲 Quality of Life
- Bike works anywhere and stays active across map changes.
- Route 17 no longer forces downhill drift.
- NPCs stay in place (no random wandering).
⭐ Post-game
After the League, receiving the S.S. Ticket also immediately enables the GS Ball event, without Virtual Console conditions.
💬 Feedback
A clear battle message appears when EXP is blocked by the current level cap, so players know why gains stop.
Evolution changes
All former trade evolutions now trigger on level-up. Held-item requirements stay; the item is consumed on success.
| From | To | New trigger | Notes |
|---|---|---|---|
| Kadabra | Alakazam | Level 36 | No item needed |
| Machoke | Machamp | Level 36 | No item needed |
| Graveler | Golem | Level 36 | No item needed |
| Haunter | Gengar | Level 36 | No item needed |
| Poliwhirl | Politoed | Level 36 + King’s Rock | Consumes King’s Rock |
| Slowpoke | Slowking | Level 37 + King’s Rock | Consumes King’s Rock |
| Onix | Steelix | Level 37 + Metal Coat | Consumes Metal Coat |
| Scyther | Scizor | Level 36 + Metal Coat | Consumes Metal Coat |
| Seadra | Kingdra | Level 40 + Dragon Scale | Consumes Dragon Scale |
| Porygon | Porygon2 | Level 40 + Up-Grade | Consumes Up-Grade |