A Pokémon battle simulator designed to work in PokeBedrock. https://pokebedrock.com
  • TypeScript 88.8%
  • JavaScript 11.2%
Find a file
Smell of curry 682cfef69b
Some checks failed
Publish to npm / build (18.x) (push) Successful in 1m22s
Publish to npm / test (push) Successful in 0s
Node.js CI / build (18.x) (push) Failing after 2m38s
Publish to npm / get-version (push) Successful in 6s
Publish to npm / npm-publish (push) Has been skipped
v0.1.24
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 12:22:15 -04:00
.github/workflows Lint only the files a pull request changes. 2026-10-16 15:08:13 -04:00
.vscode Fix Mewostic Missing gender check 2025-08-21 13:58:18 -04:00
config Merge branch 'smogon:master' into master 2025-10-06 20:35:56 -04:00
data Add Missing Halloween Skin (#17) 2026-10-18 16:17:03 +00:00
databases Remove inactive ladders 2025-08-31 23:57:15 -06:00
lib Merge branch 'smogon:master' into master 2025-10-06 20:35:56 -04:00
logs Restore READMEs for logs/ subdirs 2021-10-06 16:55:39 -05:00
server Tour Settings: Make autoconfirmed only actually work 2025-09-20 18:04:29 -06:00
sim Fix conscious Max Revive and locked-move AI targets 2026-10-15 11:40:14 -04:00
test Fix conscious Max Revive and locked-move AI targets 2026-10-15 11:40:14 -04:00
tools Keep the Halloween skins and drop the pokedex reformat. 2026-10-16 14:59:14 -04:00
translations Lint translations and tools 2025-03-01 22:40:58 -08:00
.editorconfig Editorconfig: Increase indent size to 3 spaces (#4090) 2017-10-29 13:21:55 -05:00
.gitattributes Normalize file endings when committing. 2015-12-31 19:10:53 +01:00
.gitignore Enforce single transform claim per AI request 2026-07-19 17:36:39 -04:00
.mocharc.json Random Battles: Add basic unit test framework 2021-03-18 18:17:25 -07:00
.npmignore Include config-example.js in npm package 2023-04-14 03:47:01 +09:00
.npmrc Add package-lock.json 2023-02-16 19:42:58 -05:00
AGENTS.md Update AGENTS.md 2026-10-15 14:30:22 -04:00
ARCHITECTURE.md Improve ARCHITECTURE.md more 2024-11-05 00:10:39 +09:00
build CLI: Update to use util.parseArgs (#11245) 2025-07-17 05:06:26 -07:00
CODEOWNERS Remove inactive ladders 2025-08-31 23:57:15 -06:00
COMMANDLINE.md fix sim/README.md hyperlink (#9896) 2023-11-12 22:49:50 -06:00
CONTRIBUTING.md Remove sucrase dependency 2025-07-23 22:13:33 -07:00
eslint-ps-standard.mjs Keep the Halloween skins and drop the pokedex reformat. 2026-10-16 14:59:14 -04:00
eslint.config.mjs Lint translations and tools 2025-03-01 22:40:58 -08:00
LICENSE Update LICENSE year (#10216) 2024-03-19 23:59:10 -04:00
old-simulator-doc.txt Fix typos (#11200) 2025-06-19 04:10:12 -07:00
package-lock.json v0.1.24 2026-10-18 12:22:15 -04:00
package.json v0.1.24 2026-10-18 12:22:15 -04:00
pokemon-showdown Random Battles: August 2025 balance patch (#11411) 2025-08-31 23:39:28 -06:00
Procfile Update Procfile (#4937) 2018-10-29 23:27:24 -05:00
PROTOCOL.md Fix random typos (#11020) 2025-04-13 23:59:36 -07:00
README.md Update README.md 2025-10-06 20:38:41 -04:00
simulator-doc.txt Fix bugs with secondary/ability order 2020-02-08 08:07:39 -08:00
tsconfig.json TypeScript: Enable noImplicitOverride 2025-02-26 14:38:32 -08:00

A PokeBedrock Fork of Pokémon Showdown

Goal

Try to keep this fork with the least amount of changes to the original codebase. However since we NEED to make changes to make it work in minecraft we need to keep all changes small and prefix them all with // @pokebedrock ensuring when merge conflicts come (when syncing with the original codebase) we can easily see what changes are needed to be made.

Current Changes:

Core System Changes:

  • Reworked Config: Modified to not use reading/writing to files as script api doesn't support that.
  • Better Type Safety: Added more specific type definitions throughout the codebase.
  • ESM Compatibility: Fixed compatibility issues with Minecraft Bedrock's Script API.
  • Removed Dynamic Requires: sim/dex & sim/teams now uses a static import map to avoid dynamic requires (which is not supported in Minecraft Bedrock's Script API).

Pokemon Data & Features:

  • UUID System: Added a whole UUID system which allows pokemon to be searched easily by interpreter.
  • Cosmetic Forms: Added extensive cosmetic forme support for many Pokemon including:
    • Pikachu variants (Witch, Captain, Santa, Detective, Doll)
    • Halloween forms (Sandshrew, Sandslash, Gastly, Haunter, Gengar, Celebi, Darkrai, Trubbish, Garbodor, Golett, Golurk, Gible, Gabite, Garchomp, Zoroark)
    • Christmas forms (Mew, Gardevoir, Gallade, Comfey, Snorlax)
    • Seasonal forms (Torterra-StPatrick, Spheal-Watermelon)
    • Independence forms (Cubone, Dugtrio, Houndoom, Wailord)
    • Spinda pattern variants
    • Vivillon Valentine pattern

Evolution System Enhancements:

  • Enhanced Evolution Properties: Added better properties to describe evolutions in pokedex:
    • evoTime: Specifies time of day for evolution (day/night/evening)
    • evoGender: Required gender for evolution
    • evoPartySpecies: Required species in party for evolution
    • evoTradeSpecies: Required trade partner species
    • evoPartyType: Required type in party for evolution
    • evoKnownMoveType: Required move type for evolution
    • evoMinAffection: Minimum affection required for evolution
    • evoRelativePhysicalStats: Stat comparison requirements for evolution
    • evoStatusEffect: Required status condition for evolution
    • evoBiomes: Required biomes for evolution
    • evoPriority: Evolution priority system
    • evoCosmeticForme: Required cosmetic forme for evolution
    • evoType: Enhanced evolution type system
    • changeEvent: Event that triggers forme changes

Battle System:

  • Bag Item System: Added comprehensive bag items with actions for:
    • Healing items (Potion, Super Potion, Hyper Potion, Max Potion, Full Restore)
    • Revival items (Revive, Max Revive)
    • Status cure items (Pecha Berry, Cheri Berry, etc.)
    • PP restoration (Leppa Berry with move-specific targeting)
    • Stat-boosting berries (Sitrus Berry, Oran Berry, etc.)
  • Revive System: Added revive() function for Pokemon to handle revival mechanics.
  • Enhanced Heal Messages: Added DETAILS to -heal instruction so we can read the pokemon being healed.
  • Critical Hit Enhancement: Added source parameter to -crit messages for better tracking.

Protocol & Communication:

  • New Instructions: Added simulator protocol instructions:
    • bag-item: For using bag items on Pokemon
    • used-ball: For tracking ball usage
    • forceforme: For forcing Pokemon forme changes/evolutions
  • Enhanced Details: Send detailschange after mega evolution so it will look good.
  • Kill Tracking: Added -killed instruction to send messages when a pokemon is killed.

Move & Battle Mechanics:

  • PP System: Enhanced PP tracking with current/max PP support from movesInfo.
  • Move Targeting: Better type safety for move targets.
  • Status Effects: Enhanced status effect handling for bag items and berries.

Technical Improvements:

  • Type Definitions: Improved TypeScript definitions throughout the codebase.
  • Const Assertions: Added as const to data tables for better type inference.
  • Error Handling: Enhanced error handling for bag items and forme changes.

Releasing a new NPM Version

If your smell-of-curry and you want to release a new version, you can do the following:

  1. Update the version in package.json
  2. Run npm run build-npm
  3. Run npm publish