Create your RPG or MMORPG in your browser

RPGJS allows you to create a game with TypeScript, designed for the browser and optimized for real-time multiplayer! MIT License. Free. Opensource

npx degit rpgjs/starter my-rpg-game
cd my-rpg-game
npm install # NodeJS v14 only
npm run dev # and go to localhost:3000


Map Creation

Use the power of the Tiled Map Editor software to create maps



Put in as many tilesets as you like



Create several layers, group them together


Create animated tiles

Put animated water tiles for example, and give life to the maps


Use worlds

Group the maps with worlds, the player will be able to switch from one map to another



Put shapes on the map. When the person enters or leaves the training, put actions!



Place events on the map (as a non-player character)


Text and Image

Put text or image in one place on the map


WebGL Rendering

RPGJS uses Pixi.js. Rendering uses WebGL for better performance


Complete framework to create your gameplay!


Many commands for actions

Display a dialogue, move a character, display an animation, change the gold, set one or more appearances, etc.



Make sure that an event is shared or not with all players. For example, a monster will be visible to everyone but you can create a chest that can be opened by each player to establish a scenario in the game



Display animations on the map or player



Add sound effects and background music to set the mood


Vision area

Create visions, and trigger actions!


Save point

Save the position and parameters of the character, and save them in the database of your choice (FileSystem, Memory, SQL, NoSQL, etc.)

Create GUI

Put in menus, windows, etc.


Using VueJS for user interfaces

VueJS allows to create rich interfaces with a component-oriented structure. Create your menus with VueJS or use existing modules to display pre-built menus.


Prebuilt GUI

dialog box, main menu, shop menu, etc.


Create GUI over the map

For example, create a HUD


Emotion Bubble

Display a bubble with an emotion


Chat GUI

Talking with other players


Title Screen

In MMORPG, put a window to encourage the user to log in to their account


Notification GUI

Display notifications (e.g., to indicate rewards earned, or goals unlocked)


GUI attached to a sprite

This is very useful to make more advanced interactions on a sprite. For example, display a tooltip or additional interactive displays.


Each line has been designed to optimise CPU and RAM


Low Bandwidth

packet size is reduced with msg-pack to ensure minimum bandwidth


Client-Side Prediction

In order to have a fluidity, the player positions are first realized on the client side. With the reconciliation server technique, the positions are checked and corrected if there is a difference between the client and the server


Collision search algorithm

When moving, collision searches are not performed on the entire map, but only in certain areas in order to reduce the CPU load


Cached map (optimized!)

Maps are stored in memory for faster loading. For large maps, optimizations have been made to take only a few MB of memory


Horizontal scaling

With Kubernetes and Agones, make horizontal scaling to have thousands of players on your game!


Thought for the RPG


Code with Typescript

Put a control in your code. You know which properties are usable and take advantage of decorators to create classes with a sugar-syntax


Unlimited creativity

Modify sprites, server, etc.


Items API

Add or remove items from the player's inventory


States & Elements API

Apply states (poison, paralysis, etc.) to the player or elements (fire, ice, etc.)


Parameters API (hp, sp, etc.)

Change, just with a property, the player's HP, SP, Level, etc.


Effects API

Put effects like "He can't use skills anymore" or "He has a super defense", which will influence the damage of the fight


Classes API

Put a class like Warrior, Fighter, etc. This will apply states or skill learning according to the level automatically


Skills API

Make people learn or forget skills


Gold API

Changing the game currency


Damage calculation

Damage calculations for a combat system have already been introduced, but you can customize them!


Play on multiple platforms!


Works on smartphone

The game adapts to the screen and the player can play on a smartphone


Playable with a gamepad

Use a gamepad to play


Create a PWA

Install the game on a smartphone so that the player can play offline (for an RPG)

Ready for production

Build and deploy!


Unit Tests

Write your unit tests (with Jest) to make your game stable


With same code: MMORPG or RPG

Don't learn two different styles. Write a code and render it, either offline for an RPG or online for an MMORPG.


Put on a server quickly!

After the build, put the files on a server and run with NodeJS. For an RPG, read the Javascript directly in the browser