Pokemon HGSS Singe

Weighted Options

Weighted options allow you to choose how likely a particular option's value is to be used in game generation. The higher a value is weighted, the more likely the option will be chosen. Think of them like entries in a raffle.

Choose the options you would like to play with! You may generate a single-player game from this page, or download an options file you can use to participate in a MultiWorld.

A list of all games you have generated can be found on the User Content page.


Game Options

Progression Balancing

A system that can move progression earlier, to try and prevent the player from getting stuck and bored early. A lower setting means more getting stuck. A higher setting means less getting stuck.
This is a range option.

Accepted values:
Normal range: 0 - 99

The following values have special meanings, and may fall outside the normal range.
  • 0: Disabled
  • 50: Normal
  • 99: Extreme
0 ❌
25 ❌
0 ❌
0
0
0
0

Accessibility

Set rules for reachability of your items/locations. **Full:** ensure everything can be reached and acquired. **Minimal:** ensure what is needed to reach your goal can be acquired.
25
0
0
Game Version

Game Version

Which physical ROM this patch is meant for: HeartGold or SoulSilver. This matters because wild encounters -- and potentially other data -- genuinely differ between the two versions (e.g. Route 29's morning Sentret/Rattata swap). This choice must match the ROM you actually plan to patch: generating with the wrong value produces a patch that writes the other version's data into your ROM (see `output_patch.py`'s version-mismatch check, which refuses to apply a mismatched patch at patch time rather than silently miswriting the ROM).
25
0
0
Goal

Goal

The victory condition for this world. - elite_four: defeat the Elite Four and Champion, entering the Hall of Fame. - champion_red: also defeat Red at the top of Mt. Silver. - n_badges: obtain a configurable number of badges (see the `goal_badge_count` option) -- no specific boss fight is required.
25
0
0
0

Goal Badge Count

Number of badges required to win when the `goal` option is set to `n_badges`. Ignored for any other `goal` value. HeartGold & SoulSilver have 16 badges in total (8 Johto, 8 Kanto).
This is a range option.

Accepted values:
Normal range: 1 - 16
0 ❌
25 ❌
0
0
0
0

Johto Only

Remove all of Kanto from the game. No Kanto locations, no Kanto badges in the item pool. Johto's own Elite Four still works normally. Red cannot be reached (Mt. Silver opens from Kanto), so the `champion_red` goal is refused. If your goal is `n_badges` and you asked for more than 8, it gets capped to 8 automatically.
25
0
0
Randomizers

Randomize Wild Pokémon

Randomize wild Pokémon encounters (grass / surf / fishing / rock smash / headbutt, across HGSS's morning/day/night tables). - vanilla: no randomization, wild encounters stay as in the base game. - shuffle: shuffles which species appear across every wild encounter slot in the game (a permutation -- the same set of species still appears somewhere, just moved around). - full_random: every wild encounter slot is replaced by an independently-chosen random species. - zone_method_mapping: every route's own encounter method (its grass table, its surf table, its Old Rod table, etc.) gets one replacement species, applied consistently to every slot in that table -- so every grass encounter on a given route is the same species, but that route's surf table can be a different one. Unlike full_random, this tries to use as many distinct species as possible across the whole game (no repeats until every eligible species has been used once).
25
0
0
0
0

Randomize Starters

Randomize the 3 starter Pokémon (Chikorita/Cyndaquil/Totodile) -- also changes the rival's own starter, which is always your starter's type-advantaged counter, same as vanilla. Only species with at least one evolution are picked, matching vanilla (each starter has two). Live-verified: the Pokémon you actually receive is genuinely randomized, and the on-screen name shown during the selection scene matches it too.
25
0
0

Randomize Start Location

Start your adventure in another Johto town. The whole opening plays out exactly like vanilla: you wake up at home, talk to Mom, walk out into New Bark Town, go to Elm's Lab and choose your starter the normal way. Only the lab's exit door changes: instead of putting you back in New Bark, it sends you to a Johto town of your choice (pick which one with `starting_town`). Off by default. The game logic fully accounts for your new starting town, this is not just cosmetic. The door only stays redirected until you have used it: once you are out in your new town, the client puts it back to normal, so later visits to the lab let you walk out into New Bark like in vanilla. That fix is re-applied automatically every time you relaunch BizHawk, so keep the client connected.
25
0
0

Starting Town

Which Johto town you arrive in after choosing your starter. Only matters if `randomize_start_location` is on. Set to `random` in your YAML for a random town each seed.
25
0
0
0
0
0
0
0
0
0

Randomize Bicycle

Turn the Bicycle into a real item you must find, instead of getting it for free from the Goldenrod Bike Shop. Off by default.
25
0
0

Exclude Legendaries

Never place a legendary or mythical Pokémon (Articuno through Arceus) in the wild encounter pool when `randomize_wild_pokemon` is set to `full_random` or `zone_method_mapping`, or as a starter when `randomize_starters` is on. Has no effect on `vanilla`/`shuffle` -- vanilla wild tables don't place legendaries in grass/surf/fishing/ rock-smash slots to begin with, so there's nothing to exclude from a shuffle of the existing multiset.
25
0
0

Randomize Trainers

Randomize trainer Pokémon parties (Gym Leaders, Rivals, Elite Four, Red, and regular trainers).
25
0
0

Randomize Evolutions

Randomize what each Pokémon evolves into. - off: evolutions stay vanilla. - keep_method: evolution targets are randomized, but each species keeps its original evolution method (e.g. a level-up evolution stays a level-up evolution, just into a different species) -- logic can keep assuming the vanilla method is reachable. - any_method: evolution targets and methods are both randomized freely; logic no longer assumes any particular evolution method for a given species.
25
0
0
0

Randomize Base Stats

Randomize each Pokémon species' base stats (HP/Attack/Defense/Sp. Attack/Sp. Defense/Speed). Growth rate (the EXP curve used to level up) and every other species field (types -- see `randomize_species_ types` -- abilities, catch rate, TM/HM compatibility, learnset, ...) are never touched by this option -- also unrelated to trainer level scaling (`trainer_level_scaling`). - off: base stats stay vanilla. - shuffle: shuffles each stat column independently across every species (a permutation -- the same multiset of, say, HP values still appears somewhere, just reassigned to different species). - full_random: each of the six stats is independently replaced by a fresh random value, drawn from the range actually used by some real species' stat in that same column (e.g. HP is randomized within the real min-max HP range across all species) -- avoids literal 1/255 extremes that no vanilla species ever has.
25
0
0
0

Randomize Moves

Randomize each move's Power/PP/Accuracy. A move's Type is a separate option (`randomize_move_types`) -- unaffected by this one -- and nothing else about a move (effect, category, priority, ...) is touched by either. - off: move stats stay vanilla. - shuffle: shuffles each of Power/PP/Accuracy independently across every move (a permutation). - full_random: each of Power/PP/Accuracy is independently replaced by a fresh random value, drawn from the range actually used by some real move in that same column. - balanced: same idea, but Power and Accuracy are drawn *together* from weighted tiers instead of independently, so a big number never comes with a coin-flip accuracy: reliable 50% (55-95 power, 100 accuracy), strong 25% (110-145, 95-100), heavy 20% (150-195, 85-95), devastating 5% (210-250, 75-85). Accuracy never goes below 75. The bands mirror real HGSS move data (60% of damaging moves are already 100 accuracy, and vanilla never charges power in accuracy at the top: Explosion 250/100, Hyper Beam 150/90), and the weights put the median power around 75 versus vanilla's 70. PP is drawn exactly like full_random draws it -- deliberately, so all modes treat that column the same way. Status moves keep 0 power, one-hit-KO moves keep their vanilla 30 accuracy, and never-miss moves (Swift, Aerial Ace, Aura Sphere) stay never-miss.
25
0
0
0
0

Randomize Move Types

Randomize each move's Type. TM/HM compatibility and each species' own learnset are unaffected by this (they're keyed by move identity, not type) -- only which type a move deals damage/gets same-type-attack- bonus as changes. Never assigns the "???" (Mystery) type to any move, including one whose vanilla type already is "???" (Curse) -- it's engine-special-cased, not a genuine 18th type to draw from.
25
0
0

Randomize Move Categories

Randomly swap each damaging move between Physical and Special. Status moves are never changed.
25
0
0

Randomize TM Moves

Shuffle which move each TM teaches. HMs always keep their vanilla move, so field moves like Surf still work normally.
25
0
0

Randomize Type Chart

Shuffle type matchups (what is super effective, not very effective, or has no effect). The same number of each still exists, just moved to different type pairs.
25
0
0

Starting Money

How much money you start the game with. Vanilla is 3000. Set to `random` in your YAML for a random amount up to 5000.
This is a range option.

Accepted values:
Normal range: 0 - 5000
0 ❌
25 ❌
0 ❌
0
0
0
0

Randomize Species Types

Randomize each Pokémon species' Type(s). A species keeps its original single-type/dual-type status -- only *which* type(s) is randomized. Never assigns the "???" (Mystery) type, same reasoning as `randomize_move_types`. Unrelated to `randomize_base_stats` (stats) and TM/HM compatibility/learnsets (unaffected by this option).
25
0
0

Randomize Learnsets

Randomize which move each Pokemon learns at each level. The levels themselves stay the same, only the moves change.
25
0
0

Trainer Level Scaling

Scale every trainer Pokémon's level by this percentage (100 = vanilla levels, unchanged). A difficulty knob, not a randomizer -- the same percentage applies uniformly to every trainer, every generation. Levels are clamped to HGSS's own 1-100 range after scaling. Ignored when `sphere_based_trainer_leveling` is on.
This is a range option.

Accepted values:
Normal range: 50 - 200
0 ❌
25 ❌
0 ❌
0
0
0
0

Sphere-Based Trainer Leveling

Rescale every trainer's levels to match how deep into *this seed's own randomized region graph* they actually sit, instead of vanilla's fixed story order -- a trainer near the start of your reachable area gets an easy level, one behind a lot of required items gets a hard one, regardless of where they'd be in a vanilla playthrough. Computed after the world is filled, from the real order items become available in this seed -- not a live in-game read, and not related to your own party's actual levels. Each trainer's party keeps its own internal level spread, just re-centered on a level appropriate for when you can reach them. Overrides `trainer_level_scaling` when on. Covers every regular trainer battle and every Gym Leader (scaled against their own separate curve, so a Leader stays boss-tier relative to the other Leaders instead of being pulled toward this seed's single weakest regular trainer). Elite Four members and rivals are left at their vanilla level -- neither has a reliably known region in this world's own data.
25
0
0

Sphere-Based Trainer Leveling Bonus

Shift every level computed by `sphere_based_trainer_leveling` by this many levels before clamping to HGSS's 1-100 range -- negative makes every trainer easier, positive makes every trainer harder. Ignored when `sphere_based_trainer_leveling` is off.
This is a range option.

Accepted values:
Normal range: -20 - 20
0 ❌
25 ❌
0 ❌
0
0
0
0

Hidden Items Require Dowsing Machine

Require owning the Dowsing Machine in logic before any hidden item location is considered reachable. Off by default: vanilla never actually requires it to pick up an already-known hidden item (it's purely a detection aid, not a real gate), matching this world's own accessibility assumptions everywhere else.
25
0
0

Require Flash

Require Flash (TM70) in logic before entering a dark cave: Rock Tunnel, Dark Cave, the first two floors of the Whirl Islands and Cerulean Cave (the maps the game itself darkens until Flash is used). Off by default: the caves can be crossed in the dark, it is only harder to see where you are going.
25
0
0

Magnet Train

Open the Goldenrod <-> Saffron Magnet Train as an early way into Kanto. In the game the train needs two things: the Magnet Train Pass, and the Kanto Power Plant repaired (a policeman blocks both stations until then). The Power Plant is in Kanto, so without help the train can never be the way in, and the S.S. Aqua only sails once the Elite Four and the Champion are beaten. On by default: the Kanto Power Plant is considered repaired from the very start of your game. The Magnet Train can therefore be used as soon as you have the Pass, and Kanto can be visited long before the Pokemon League. The Machine Part quest is skipped: you never have to bring the part back to the Power Plant (Misty and the Cerulean Gym Rocket still play out as usual). The Power Plant manager's TM57, only handed over at the end of that quest, is removed from the locations. Turn it off to keep Kanto as late-game content: the train then counts only once the Power Plant has really been repaired, which needs you to be in Kanto already, so nothing you need can be hidden over there before the League. The Pass no longer opens anything a seed needs, so it is placed as a merely useful item instead of a progression one.
0
25
0

Remote Items

Never write your own items directly into the game -- always receive them from the server instead, the same way you already receive items from other players. Off by default. Turn this on if you want to share your save file between multiple people, or if you want to restart a corrupted save without losing progress: the server just resends everything you already found.
25
0
0
Nuzlocke Aids

Disable OHKO Moves

Neutralize the four One-Hit KO moves (Guillotine, Horn Drill, Fissure, Sheer Cold): each becomes an ordinary 60 power / 100 accuracy move with no special effect, instead of an RNG-based instant KO. A Nuzlocke aid, not a randomizer -- this project does not enforce permadeath itself (that stays honor-system, tracked externally), but an instant, uncounterable KO is a bad interaction with a permadeath ruleset, so this option lets a player opt out of it entirely. Off by default (vanilla behavior unchanged).
25
0
0

Disable Trapping Abilities

Remove every trapping ability (Arena Trap, Shadow Tag, Magnet Pull) from every Pokémon that has one: a species with a second, non-trapping ability gets that ability copied into both slots instead; a species whose *only* ability traps (e.g. Wobbuffet's Shadow Tag) gets Run Away instead. A Nuzlocke aid, not a randomizer -- an inescapable wild battle is a bad interaction with a permadeath ruleset. Off by default (vanilla behavior unchanged).
25
0
0
Quality of Life

Fast Text Speed

Set Text Speed to Fast, the fastest tier the game itself defines, as soon as this client connects, instead of the vanilla default (Mid). Applied once per connection, directly to savedata -- can still be changed freely afterward from the in-game Options menu like any other setting. Off by default (vanilla behavior unchanged).
25
0
0

Running Shoes at Start

Start with the Running Shoes instead of waiting for the Cherrygrove Guide Gent's tour, which a random start can skip. Given by this client as soon as the save exists. Off by default (vanilla behavior unchanged).
25
0
0

Map Card at Start

Start with the Pokegear's Map Card instead of waiting for the Cherrygrove Guide Gent's tour, which a random start can skip. Given by this client as soon as the save exists. Off by default (vanilla behavior unchanged).
25
0
0

Fly Points at Start

Every Johto town is a Fly destination from the start, instead of only the towns already visited (Mt. Silver and Kanto stay as vanilla). Fly itself still needs HM02 and the Storm Badge. The logic does not count on it: flying to a town never visited can reach checks earlier than the logic expects. Off by default (vanilla behavior unchanged).
25
0
0

Item Received Messages

Show a message on the BizHawk screen for each item received, with the name of the player who found it. A batch of many items at once (after a reload or on a new save) shows a single count instead. Off by default.
25
0
0

Global Exp. Share

Every Pokemon in your party gains Exp. after a battle, as in the modern games: the Pokemon that took part split the full amount as usual, and every other party member gets half of it. Fainted Pokemon and Eggs get nothing. A held Exp. Share no longer changes anything. Off by default (vanilla behavior: only an Exp. Share holder shares).
25
0
0

Exp. Multiplier

Multiplies all Exp. gained in battle, in percent. 100 is vanilla, 200 doubles it, 50 halves it. Applied before the Lucky Egg, trainer battle and traded Pokemon bonuses.
This is a range option.

Accepted values:
Normal range: 10 - 1000
0 ❌
25 ❌
0 ❌
0
0
0
0

Skip Battle Animations

Set Battle Scene to Off as soon as this client connects, skipping move/entry animations in battle. Applied once per connection, directly to savedata -- can still be changed freely afterward from the in-game Options menu like any other setting. Off by default (vanilla behavior unchanged).
25
0
0

Reusable TMs

Make TMs reusable: whenever a TM is consumed while teaching a move, this client puts it right back the next time it polls the Bag (HMs are already never consumed in vanilla). Off by default (vanilla behavior unchanged).
25
0
0

Convert Trade/Friendship Evolutions

Convert every trade and friendship evolution (Kadabra, Machoke, Graveler, Haunter, Onix/Steelix's trade-item variant, Eevee's friendship evolutions, Golbat, etc.) into a plain level-up evolution instead, at the level set by `trade_evolution_level` below -- trading and grinding friendship are both genuine single-player accessibility problems. Applied after `randomize_evolutions`, so it fixes whichever method an edge actually ends up with, randomized or vanilla. Off by default (vanilla behavior unchanged).
25
0
0

Trade/Friendship Evolution Level

The level trade/friendship evolutions are converted to when `convert_trade_evolutions` is on. Ignored otherwise.
This is a range option.

Accepted values:
Normal range: 1 - 100
0 ❌
25 ❌
0 ❌
0
0
0
0
DeathLink

death_link

When you die, everyone who enabled death link dies. Of course, the reverse is true too. In Pokemon HeartGold/SoulSilver, a death is a whiteout: whiting out sends one, and receiving one whites you out on your next step, back to the last Pokemon Center as the game itself does. Needs a ROM patched by this APWorld version or later.
25
0
0
Stretch Goals

Trainersanity

Add a check for every trainer battle won. Off by default.
25
0
0

Trainersanity Count

With `trainersanity` on, how many trainer battles are checks, picked at random among every trainer this seed has (all of them by default). Ignored when `trainersanity` is off.
This is a range option.

Accepted values:
Normal range: 1 - 390
0 ❌
25 ❌
0
0
0
0

Dexsanity

Add a check for catching each species for the first time. Seed-aware (task M3.4): only species that genuinely appear somewhere in this seed's own randomize_wild_pokemon tables get a check -- static/gift Pokemon (starters, legendaries, in-game gifts) stay vanilla/fixed and are never a Dexsanity check. Every Dexsanity check only ever holds a filler item, never a progression one: the access rule only requires owning the right catching tool (Surf, a fishing rod, Rock Smash) for some occurrence of that species, not the exact region it spawns in, so it is deliberately looser than the game's real logic and unsafe to gate anything mandatory behind. Off by default.
25
0
0

Dexsanity Count

With `dexsanity` on, how many species are checks at most, picked at random among the species this seed's wild tables really hold (all of them by default). Ignored when `dexsanity` is off.
This is a range option.

Accepted values:
Normal range: 1 - 493
0 ❌
25 ❌
0
0
0
0

Dexsanity Trigger

What counts as "getting" a species for `dexsanity` purposes. - catch: the check fires when you actually catch that species for the first time (Pokédex.caughtSpecies) -- the original behavior. - encounter: the check fires the moment you merely see that species in a wild encounter (Pokédex.seenSpecies), no catch required -- much faster to complete, since a single battle (or even just running from one) is enough. Ignored when `dexsanity` is off.
25
0
0

Dexsanity Encounter Types

Which wild-encounter methods count toward `dexsanity` in the first place -- a species only obtainable through a method you deselect here gets no Dexsanity check at all this seed (same as a species this seed's own wild tables never place anywhere). All methods are on by default (matches the original, unrestricted behavior). Turn a method off if you don't want, say, fishing to be required to finish the Pokédex. "headbutt" covers the Pokemon found by using Headbutt on trees. The logic expects you to have reached the Headbutt tutor in Ilex Forest first, since the move has no TM in this game. Ignored when `dexsanity` is off.

Legendarysanity

Add a check for catching Ho-Oh (Bell Tower) and Lugia (Whirl Islands), both only reachable after defeating the Elite Four/Champion, matching vanilla. Off by default: with this off, both stay exactly as in vanilla (same place, same post-Elite Four requirement) -- they're just not tracked as an Archipelago check, matching how other Pokemon Archipelago worlds treat static legendary encounters.
25
0
0
Item & Location Options

Local Items

Forces these items to be in their native world.
 

Non-local Items

Forces these items to be outside their native world.
 

Start Inventory

Start with the specified amount of these items. Example: {Bomb: 1, Arrow: 3}

Start Inventory from Pool

Start with the specified amount of these items and don't place them in the world. Example: {Bomb: 1, Arrow: 3} The game decides what the replacement items will be.

Start Hints

Start with these item's locations prefilled into the ``!hint`` command.
 

Start Location Hints

Start with these locations and their item prefilled into the ``!hint`` command.

Excluded Locations

Prevent these locations from having an important item.

Priority Locations

Prevent these locations from having an unimportant item.

Item Links

Share part of your item pool with other players.
This option cannot be modified here. Please edit your .yaml file manually.