Skip to main content

No project description provided

Project description

Stardust RPG

Stardust RPG is a tactical d20 role-playing game designed to provide a variety of progression options for players and encourage teamwork. Baseline content is based off the Stardust book series by John Hagen but is adaptable to a variety of fantasy settings.


  • Cross platform. Run the server on any platform that supports Python. Clients can connect and manage their characters using a standard web browser with no install required.
  • Roll20 integration. Players can to automatically sync their character stats and automatically generated weapon and ability macros right into a Roll20 campaign. Special thanks to @theandrewdavis for his analysis of the API.
  • Extensible. Easily add new content, such as classes, weapons, or abilities.
  • Persistent. Store characters in a persistent database for easy reuse.



You can install, upgrade, and uninstall stardust-rpg with these commands:

$ pip3 install stardust-rpg
$ pip3 install --upgrade stardust-rpg
$ pip3 uninstall stardust-rpg

Server Setup

Create an environment variable named SECRET_KEY and populate it with a large random value.


Initialize the database:

$ stardust-rpg makemigrations
$ stardust-rpg migrate

Create an admin account:

$ stardust-rpg createsuperuser

Production Execution


--insecure is used to serve static files in the absense of a web server (e.g. NGINX) running in front of Django.

$ stardust-rpg runserver --insecure

Debug Execution

$ stardust-rpg runserver --settings=app.debug_settings

Game Setup

Log into the admin interface by browsing to http://localhost/admin

Add Users for each player. Configure the following fields:

Field Value
Username Stardust RPG server username.
Password Initial user password
Email Address Player’s Roll20 email address.

Add a Party for the group. Configure the following fields:

Field Value
Name Name of the character. Must match name of character in Roll20.
Roll20 campaign id The 6 digit ID (e.g. assigned to the campaign found at

Add Characters for each character in the game. Configure the following fields:

Field Value
User Player who has modification rights to the character.
Name Name of the character. Must match name of character in Roll20.
Party The Party this character is a part of.
Class The class assigned to this Character.



Combat Round (RND)

  1. At the start of combat, roll a d20 + Maximum Speed (SPEED) to determine turn order.

    1. If your character is surprised, take no actions during the first RND.
  2. Do the following actions in any order. A Full Action (FullA) requires consuming all these actions. A Free Action (FreeA) does not consume any of these actions.

    1. Move Action (MovA)

      1. Move your character up to Maximum Speed (SPEED).

        1. You may move through squares occupied by allies, but may not move through grid squares occupied by enemies.
      2. After performing a StdA or AbA, you may consume the remaining SPEED that has not be used during this RND.

    2. Standard Action (StdA)

      1. Perform a single melee or ranged weapon attack

        1. Roll a d20 and PDAM dice. If d20 + PAC ≥ target PDEF, apply PDAM.

          1. If d20 ≥ Critical Range (CRAN), automatic hit, apply CDAM.
          2. if d20 = 1, automatic miss.
    3. Ability Action (AbA)

      1. Cast a single ability that requires AbA

        1. Subtract the MP Cost from your Current MP. Current MP cannot drop below 0.

        2. Roll a d20 and MDAM dice. If d20 + MAC ≥ target MDEF, apply MDAM and Effect.

          1. If d20 = 20, automatic hit, choose one of the following: 2x [MDAM, Effect, Area, OR Duration].
          2. If d20 = 1, automatic miss.
        3. If casting a combo, the ally who is casting the combo with must also subtract the MP Cost and spend whatever Time is required to cast. This time is deducted from their next turn.

  3. At the conclusion of your turn, roll a d20 and Regeneration Dice (RD)

    1. If d20 + Magic Regeneration (REG) ≥ 18, restore RD MP.

      1. If d20 = 20, restore 2x RD MP.
      2. If d20 = 1, automatic failure.

Incapacitation (KO)

  • If HP ≤ 0, unconscious status.
  • If HP ≤ -(50% Maximum HP), death status.

Status Effects

Status Effect
Immobilize Cannot take MovA.
Silence Cannot take AbA (i.e. any action that targets with MAC or consumes MP).
Stagger Cannot take StdA.
Disable Cannot take StdA or AbA.
Stun Cannot take StdA, AbA, or MovA.
Sleep Cannot take StdA, AbA, or MovA. Woken by physical or magical attack.
Fear Must expend MovA to move in opposite direction of the source of fear.
Allure Must expend MovA to move towards the source of the allure.
Blind Maximum range of physical and magic attacks reduced to 1. VIS reduced to 1.
Inhibit Max MP reduced to 0. MRED reduced to 0.
Condition Effect
Unconscious Cannot take anymore actions until revived.
Death Creature is dead.

Advantage / Disadvantage

State Effect
Advantage (ADV) Roll twice and use the higher of the two rolls.
Disadvantage (DADV) Roll twice and use the lower of the two rolls.

Vulnerabilities and Resistances

Property Effect
Vulnerability (VUL) Take 2x from a particular damage type.
Resistance (RES) Take ½ from a particular damage type.
Immunity (IMU) Take no damage from a particular damage type.


Skill Example Actions
Athletics (ATH) Climb, Jump, Swim, Grapple, Reflex, Balance, Fall
Stealth (STE) Sneak, Hide, Sleight of Hand, Disguise, Escape, Detect Trap
Fortitude (FOR) Endurance, Resist Status Effect, Death Save, Survival
Aptitude (APT) Knowledge, Heal, Operate Device, Pick Lock, Forgery, Scan, Utility
Perception (PER) Spot, Listen, Search, Touch, Smell, Taste
Speech (SPE) Diplomacy, Intimidate, Bluff, Persuasion

Attribute Effects

Attribute General Offensive Defensive
STR Feet Unlock
Weapon Damage
Chest Unlock
Shield Unlock
DEX 0.5SPEED Weapon Unlock 1PDEF
CON 0.5VIS  
1.5HP per LVL
1SP per LVL
Utility Unlock
1MP per LVL
Head Unlock
Magic Power
Neck Unlock
Hand Unlock



  • Numerous updates and new features.
  • Support Python 3.6


  • Initial Release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for stardust-rpg, version 2.0.0
Filename, size File type Python version Upload date Hashes
Filename, size stardust-rpg-2.0.0.tar.gz (314.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page