Skip to content
A free HTML5 remake of the original Pokemon, expanded for modern browsing.
TypeScript Other
Branch: master
Clone or download
JoshuaKGoldberg Brought in EightBittr version with consolidated creator functions (#878)
* Brought in EightBittr version with consolidated creator functions

EightBittr just changed the built-in creators (e.g. `createAreaSpawner`) to provide more component details. This matches that change by overriding the new built-in components from EightBittr so that no more built-in creators need to be recreated here.

* Used new EightBittr version with numCols, numRows

* Used new BabyIoc version too

* Recreated IGroups in Groups.ts

* shenanigans-manager@0.2.44
Latest commit f52e515 Sep 18, 2019


Greenkeeper badge Build Status NPM version

A free HTML5 remake of the original Pokemon, expanded for modern browsing.


The built src/index.html uses UserWrappr to fill the available window size with a game screen, option menus, and piped input events. It stores its generated instance as window.FSP.

To do this in your own page, use the exported createFspInterface function.

import { createFspInterface } from "fullscreenpokemon";

    .then(() => {
        console.log("Ready to play!");

You can also directly create a new FullScreenPokemon instance with a manual size.

import { FullScreenPokemon } from "fullscreenpokemon";

// Creates a new game with a 320x480 screen size
const fsp = new FullScreenPokemon({
    height: 320,
    width: 480,

// Games contain a .canvas member for the screen

// Shows the initial in-game menu with start and load options

By default, the game doesn't set up input events. You'll need to set up your own event registrations manually.


FSP is built on top of EightBittr, a modular TypeScript game engine split across separate projects available on npm and hosted on GitHub in the FullScreenShenanigans organization. It consists of a couple dozen core modules under this organization.

See ./src/docs for documentation specific to FullScreenPokemon.


After forking the repo from GitHub:

git clone<your-name-here>/FullScreenPokemon
cd FullScreenPokemon
npm install
npm run setup
npm run verify
  • npm run setup creates a few auto-generated setup files locally.
  • npm run verify builds, lints, and runs tests.


npm run watch

Source files are written under src/ in TypeScript and compile in-place to JavaScript files. npm run watch will directly run the TypeScript compiler on source files in watch mode. Use it in the background while developing to keep the compiled files up-to-date.

Running Tests

npm run test

Tests are written in Mocha and Chai. Their files are written using alongside source files under src/ and named *.test.ts?. Whenever you add, remove, or rename a *.test.t* file under src/, watch will re-run npm run test:setup to regenerate the list of static test files in test/index.html. You can open that file in a browser to debug through the tests.

Maps Tests

FullScreenPokemon includes automated tests in src/Maps.test.ts that loop over every map and location in the game. That file is generated as part of npm run setup. It creates a separate test group under Maps for each map, and a test for each of the map's locations.

You can’t perform that action at this time.