A browser based Pokémon fangame heavily inspired by the roguelite genre.
Go to file
Glorax b0986f5b39
Biome and Rarity Alterations
Changed the biomes of several legendary Pokémon in order to better distrubute them among the game's biomes. Mythical Pokémon that aren't already assigned to biomes have been given biomes.

List of Biome Changes: 
- Celebi: N/A -> Forest
   Reason: The guardian of Ilex Forest.
- Celesteela: Space -> Wasteland
   Reason: Resembles home dimension of Ultra Crater.
- Deoxys: N/A -> Space
   Reason: Deoxys used to be encountered in Space, until it was removed because Space had too many ultra rare encounters. If the Light Trio is moved to Island, that leaves only Deoxys and Rayquaza.
- Dialga: Wasteland -> Ancient Ruins
   Reason: Dialga is traditionally encountered at the Spear Pillar.
- Genesect: Factory -> Laboratory
   Reason: Genesect is a Pokémon altered by science, not by industry, so it has more to do with the Laboratory than the Factory.
- Jirachi: N/A -> Mountain
   Reason: Jirachi is said to be found in the mountains.
- Koraidon: Ancient Ruins -> Wasteland
   Reason: Swapped with Dialga. Koraidon has no particular association with Ruins in Scarlet and Violet, so this assignment is based on its Dragon typing.
- Lunala: Space (Night) -> Island (Night)
   Reason: Cosmog and its evolutions don't actually come from outer space, and their close ties to the Alola region justify moving Lunala there to make space for Deoxys.
- Manaphy: N/A -> Sea Bed
- Mew: N/A -> Jungle
   Reason: Mew was first discovered in the jungle.
- Miraidon: Laboratory -> Factory
   Reason: Moved so that Factory has an Ultra Rare boss encounter.
- Necrozma: Space -> Metropolis
   Reason: In the story of Sun and Moon, Necrozma was imprisoned in the alternate universe city of Ultra Megalopolis. Moving Necrozma to Metropolis gives Metropolis an Ultra Rare boss encounter.
- Palkia: Abyss -> Ancient Ruins
   Reason: Palkia is traditionally encountered at the Spear Pillar.
- Pecharunt: N/A -> Swamp
   Reason: For type reasons. Fills the gap left by Poipole/Naganadel.
- Phione: N/A -> Sea Bed
- Poipole/Naganadel: Swamp -> Metropolis
   Reason: Resembles home dimension of Ultra Megalopolis.
- Solgaleo: Space (Day) -> Island (Day)
   Reason: Cosmog and its evolutions don't actually come from outer space, and their close ties to the Alola region justify moving Solgaleo there to make space for Deoxys.
- Victini: N/A -> Island
   Reason: Victini is found on Liberty Garden Island in Black and White.
- Terapagos: Cave -> Fairy Cave
   Reason: Fills the encounter slot formerly occupied by Xerneas. Though Terapagos isn't Fairy type, Fairy Cave is somewhat reminiscient of the Area Zero Underdepths.
- Victini: N/A -> Island
   Reason: Victini is found on Liberty Garden Island in Black and White.
- Xerneas: Fairy Cave -> Meadow
   Reason: Moved so that Meadow has an Ultra Rare boss encounter. Also, Xerneas doesn't seem like it would be found in a cave.
- Zeraora: Power Plant -> Metropolis
- Zygarde: Laboratory -> Cave
   Reason: Zygarde is encountered in Terminus Cave in X and Y. Moved so that Mewtwo is the only Ultra Rare Laboratory boss encounter.

Other Changes:
- Rotom boss encounter rarities adjusted on a case-by-case basis.  Biomes with few super rare encounters (like Tall Grass) have been untouched, while those with many other super rare boss encounters (like Volcano) have had Rotom shifted to rare.
- Varoom/Revavroom added to Factory.
- Kleavor boss encounter rarity reduced to same level as Scizor.
- Leafeon and Glaceon given non-boss encounters to match other Eeveelutions.
- Chatot encounter rarity changed from super rare to rare (dawn/day).
2025-04-12 18:41:42 -07:00
.github [GitHub] Add path filters to avoid unnecessarily re-running tests (#5497) 2025-04-04 22:13:21 +00:00
docs [Refactor] Replace all instances of `integer` with `number` (#5250) 2025-02-04 17:56:13 -07:00
public [Refactor] Refactor variant sprite code part 1 (#5592) 2025-04-09 10:43:05 -05:00
scripts [Refactor] Refactor variant sprite code part 1 (#5592) 2025-04-09 10:43:05 -05:00
src Biome and Rarity Alterations 2025-04-12 18:41:42 -07:00
test [Biome] Add and apply `lint/style/noNamespaceImport` (#5650) 2025-04-12 01:31:56 -04:00
.dependency-cruiser.cjs [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
.editorconfig [Misc] add .editorconfig (#5246) 2025-02-03 18:55:44 +01:00
.env Beta Merge 27/07 (#3141) 2024-07-28 00:47:00 +01:00
.env.beta [Misc] Disable some leftover debug code (#4546) 2024-10-02 13:13:16 -04:00
.env.development [Misc] Disable some leftover debug code (#4546) 2024-10-02 13:13:16 -04:00
.env.production Beta Merge 27/07 (#3141) 2024-07-28 00:47:00 +01:00
.env.test Beta Merge 27/07 (#3141) 2024-07-28 00:47:00 +01:00
.gitattributes [Misc] Add `* -crlf` to `.gitattributes` (#5539) 2025-03-18 21:52:49 -04:00
.gitignore [Misc] Add a script to help verify correctness of variant sprite masterlist (#5325) 2025-03-06 00:39:02 -05:00
.gitmodules [Refactor] External locales (#4529) 2024-10-01 23:41:09 +01:00
.nvmrc [Misc] Add .nvmrc for a smoother repo install (#5270) 2025-02-08 08:19:36 -07:00
CREDITS.md [Misc] Add Wlowscha and SirzBenjie to credits (#5498) 2025-03-08 22:31:36 -05:00
LICENSE Update license to AGPL 3 2024-03-25 19:22:58 -04:00
README.md [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
biome.jsonc [Biome] Add and apply `lint/style/noNamespaceImport` (#5650) 2025-04-12 01:31:56 -04:00
create-test-boilerplate.js [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
dependency-graph.js [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
eslint.config.js [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
favicon.ico Replace favicon with no BG version 2024-03-25 12:45:45 -04:00
global.d.ts [Refactor] Pokerogue API client (#4583) 2024-11-04 15:57:21 -05:00
index.css [UI/UX] Autofill login text color changed to gray (#5523) 2025-03-25 18:06:28 -07:00
index.html [Bug][UI/UX] Restore V button in battle (#5459) 2025-03-01 21:11:05 +00:00
lefthook.yml [Misc] Remove pre-push lefthook (#5572) 2025-03-28 14:49:54 -07:00
package-lock.json [Refactor] Re-implement save migration system (#5634) 2025-04-07 22:53:35 +00:00
package.json [Refactor] Re-implement save migration system (#5634) 2025-04-07 22:53:35 +00:00
tsconfig.json [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
update_exp_sprites.ps1 Fix crash with certain animated variant sprites 2024-04-26 02:00:58 -04:00
vite.config.ts [Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495) 2025-03-09 14:13:25 -07:00
vitest.config.ts [Test] [Refactor] [GitHub] Enable no isolate for vitest (#5566) 2025-03-28 17:30:38 -04:00
vitest.workspace.ts [Test] Move test folder out of src (#5398) 2025-02-22 22:52:07 -06:00

README.md

PokéRogue

PokéRogue is a browser based Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, fighting trainers, bosses, and more!

Contributing

🛠️ Development

If you have the motivation and experience with Typescript/Javascript (or are willing to learn) please feel free to fork the repository and make pull requests with contributions. If you don't know what to work on but want to help, reference the below To-Do section or the #feature-vote channel in the discord.

💻 Environment Setup

Prerequisites

Running Locally

  1. Clone the repo and in the root directory run npm install
    • if you run into any errors, reach out in the #dev-corner channel in discord
  2. Run npm run start:dev to locally run the project in localhost:8000

Linting

We're using Biome as our common linter and formatter. It will run automatically during the pre-commit hook but if you would like to manually run it, use the npm run biome script. To view the complete rules, check out the biome.jsonc file.

📚 Documentation

You can find the auto-generated documentation here. For information on enemy AI, check out the enemy-ai.md file. For detailed guidelines on documenting your code, refer to the comments.md file.

FAQ

How do I test a new _______?

  • In the src/overrides.ts file there are overrides for most values you'll need to change for testing

How do I retrieve the translations?

  • The translations were moved to the dedicated translation repository and are now applied as a submodule in this project.
  • The command to retrieve the translations is git submodule update --init --recursive. If you still struggle to get it working, please reach out to #dev-corner channel in Discord.

🪧 To Do

Check out Github Issues to see how can you help us!

📝 Credits

If this project contains assets you have produced and you do not see your name, please reach out, either here on GitHub or via Discord.

Thank you to all the wonderful people that have contributed to the PokéRogue project! You can find the credits here.