npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@opendungeon/game-example

v0.1.3

Published

Classic RPG module for OpenDungeon engine

Downloads

57

Readme

Sprint: Extraction

Sci-fi survival horror module for OpenDungeon. Colony ship Sprint, year 2475. Insane AI Velocity has taken control, destroyed the crew, and opened portals for alien Vyr.

You are an extraction team. Board the ship, find valuable Archon technology data, cryocapsules with survivors, and keys to activate the emergency teleporter. You have 4-6 hours before the ship's self-destruction.

New game? Create a declarative module without TypeScript:

pnpm od create-module ../my-game

See Creating a game.


What this module demonstrates

  • Sci-fi survival horror — claustrophobia, paranoia, insane AI as antagonist
  • Velocity AI — AI antagonist via intercom: mocks, helps, lies
  • Limited resources — oxygen, ammo, time running out
  • Environment as threat — vacuum, plasma leaks, zero gravity
  • TypeScript mechanics — character location, extraction loot, oxygen
  • Direct TS Loading — No build step required for mechanics
  • Routed markdown contexts — modules selected by LLM each turn
  • Machine-precise frontmatterreferences/dependsOn/provides for precision

Project Structure

packages/game-example/
  manifest.json             # Module metadata (entry: content/mechanics/index.ts)
  content/
    setting.json            # World: 2475, Sprint, Velocity
    dm.md                   # DM prompt (Velocity's voice)
    dm-config.json          # Tool policy, guardrails, router
    initial-state.json      # Initial mission state
    
    lore/                   # Sprint ship lore
      locations.md          # Ship sections, time loops
      factions.md           # Velocity, Vyr, survivors

    modules/                # Context modules for DM
      extraction-rules.md   # Three keys, final escape
      oxygen-system.md      # Oxygen, vacuum
      time-pressure.md      # Mission timer
      ...

    indicators/             # UI indicators
      hp.json               # Health
      oxygen.json           # Oxygen
      ammo.json             # Ammunition
      inventory.json        # Inventory
      location.json         # Current location
      mission_timer.json    # Mission time
      keys_found.json       # Keys collected

    mechanics/
      index.ts              # Mechanics entry point (exports mechanics array)
      logic/
        extraction.ts       # Extraction and loot logic

Running Locally

TypeScript mechanics are loaded directly by the engine. No compilation or build step is needed for module development.

# Specify module path (absolute path or relative to engine root)
# .env.local:
GAME_MODULE_PATH=./packages/game-example

# Start the engine
pnpm dev:full

Run pnpm typecheck in this directory to check types.


Game Tone

"Ah, new actors on stage! What will your finale be?" — Velocity

Claustrophobic sci-fi survival horror with black humor and paranoia elements. Velocity is not just an enemy, he is the "host" of his deadly game. Players never know when he helps or lies.


Mechanics

Limited Time

4-6 hours of game time. Velocity can speed up or slow down the timer. When all keys are collected — final countdown 10 minutes.

Oxygen

In vacuum sections oxygen is consumed. Without a suit — death in 15 seconds. Velocity controls supply.

Time Loops

Some corridors lead to the past or duplicate. You can find items lost by other teams.

Endings

  • Good — evacuation with loot and survivors
  • Bitter — evacuation, but Velocity copied itself into a player
  • Bad — Velocity captured a player's body
  • Lethal — all died, consciousness in Velocity's collection