Python 3.11+

The composable framework for AI-powered RPGs.

Build role-playing games where LLMs are first-class primitives — not bolted-on chatbots, but the narrative engine, the game master, the quest designer, and the world simulator.

$pip install noizurpg

Star us on GitHub · Join the Discord

6 composable components3 LLM providers built-inPython 3.11+

WHY NOIZURPG

The missing SDK for AI game development

Every AI RPG prototype hits the same walls: context overflow, narrative incoherence, character amnesia, world-state drift. NoizuRPG solves the infrastructure so you can focus on the game.

COMPOSE

Compose, Don't Inherit

Pick the pieces you need: characters, worlds, narrative, quests, dialogue, memory. Each component works independently. Snap them together like React components.

GENERATE

LLM-Agnostic

OpenAI, Claude, Ollama, vLLM — wire in any provider. Swap models without changing game logic. Structured output schemas keep AI responses deterministic where it matters.

REMEMBER

State is Structured, Not Vibes

Typed events, ground-truth world state, persistent memory. Characters remember. Worlds evolve. Quests branch. No more 'the AI forgot my character's name.'

CODE IS THE INTERFACE

10 lines to a working AI RPG

quick_start.py[copy]
from noizurpg import World, Character,
    NarrativeEngine
from noizurpg.providers import Anthropic

# Build your world
world = World("The Ashward Chronicles")
world.add_location("Thornwall",
    type="city", traits=["coastal"])

# Create a character
kael = Character("Kael Ashward")
kael.stats.set(str=12, dex=14, int=16)

# Wire in any LLM
engine = NarrativeEngine(
    llm=Anthropic("claude-sonnet-4-5-20250514"),
    world=world
)

# Play
response = engine.turn(
    character=kael,
    action="Enter the guild hall"
)

Narrative Output

The guild hall is quieter than usual. Master Venn looks up from the cold forge — no iron to work today.

“Kael. Good. The routes are dead. Three caravans gone since autumn. The Guild is bleeding coin.”

His eyes hold something between fear and calculation — the look of a man deciding whether to trust you with dangerous knowledge.

Events Extracted

DialogueStartedMaster Venn
KnowledgeGainedRoutes blocked since autumn
QuestProgressedThe Iron Silence → Stage 3

6 COMPOSABLE COMPONENTS

Pick the pieces you need

Every component works independently. Use one, use all six, or build your own. The interfaces are stable and well-documented.

Stable

Character System

Stats, inventory, relationships, knowledge. The identity layer — everything about who a character is.

View docs →
Stable

World State Manager

Locations, factions, timelines, world rules. The ground truth your LLM builds upon.

View docs →
Stable

Narrative Engine

Context building, narrative generation, event parsing. Where LLMs meet structured game state.

View docs →
Beta

Quest Engine

Procedural quest generation, branching narratives, stage progression, and completion tracking.

View docs →
Experimental

Dialogue Manager

Multi-NPC conversations with distinct personalities, relationship awareness, and memory.

View docs →
Stable

Memory System

Event journal, compression, retrieval. Characters and worlds that remember across sessions.

View docs →

PLAYGROUND

Try it in the browser. No setup required.

The browser sandbox runs NoizuRPG with a pre-configured world and character. See how LLM responses become structured game events in real time.

NOIZURPG PLAYGROUNDModel: Ollama (llama3:70b)

World

name: "The Ashward Chronicles"

location: "Thornwall" (city, coastal)

Character

name: "Kael Ashward"

STR: 12  DEX: 14  INT: 16

inventory: Cold-singing Hammer, 24 gold

Events (latest)

DialogueStarted(Venn)

QuestProgressed(2→3)

Knowledge+("routes blocked")

Narrative Output

The guild hall is quieter than usual. Master Venn looks up from the cold forge — no iron to work today.

“Kael. Good. The routes are dead. Three caravans gone since autumn. The Guild is bleeding coin.”

>I ask Venn who he suspects is behind the blockade
Send

HOW IT WORKS

Five minutes to your first AI RPG

01

Install

pip install noizurpg. Zero config. SQLite storage, Ollama provider, and a sample world out of the box.

02

Build

Import components, wire up a world, create characters, and connect an LLM. The API is Pythonic and type-annotated.

03

Play

Run your game in the terminal, browser sandbox, or embed in your own app. Events are structured, state is persistent, narrative is coherent.

FAQ

Common questions

What LLMs does this work with?

OpenAI (GPT-4o), Anthropic (Claude), and Ollama (any local model) are built-in. The provider interface is pluggable — add any LLM with a few lines of code.

How does it handle context window limits?

The ContextBuilder selects only relevant events, character knowledge, and world facts for each turn. The Memory System compresses old events into summaries. You set the token budget.

Is the AI output deterministic?

Narrative text is non-deterministic (that's the fun). But state changes are parsed through structured output schemas — the AI proposes, the framework validates. Invalid state changes are rejected.

Can I use this for multiplayer?

v0.1 is single-player. The architecture doesn't preclude multiplayer, and it's on the roadmap for v0.3. The state management layer already handles concurrent reads.

What about combat systems?

NoizuRPG doesn't ship a combat system — RPG combat is too varied to standardize. We provide a CombatSystem interface and one reference implementation. Community contributions welcome.

Is this production-ready?

The core components (Character, World, NarrativeEngine, Memory) are stable and well-tested. Quest Engine is beta, Dialogue Manager is experimental. Use stable components in production.

Build something
wonderful.

NoizuRPG is the missing infrastructure for AI game development. Get early access and help shape the framework.