Skip to main content

CampAIgn — map-based LLM RPG simulation engine (Session API, multi-area worlds, compound turns)

Project description

CampAIgn RPG Engine

Grid-based LLM agent simulation engine: multi-area worlds, compound turns (move → look → speak → interact/emote), pluggable memory modules, and a stable campaign_rpg_engine library API. Build on the engine in your own apps; use CampAIgn-RPG-Studio as the GM host (world authoring and session authority). Studio includes a player join client at /play/generic/.

License: MIT — open source.

Current version: 1.7.4 — Patch on 1.7.3 (verb pathing + area_event): prompt token budgets and test hardening. See changelog index.

Quick start

cd path\to\CampAIgn-RPG-Engine
uv sync
uv run pytest
from campaign_rpg_engine import Session, load_profile, AgentCompoundTurn

session = Session.from_profile(load_profile("default_compound"))
session.create_agent(name="Scout", position=(0, 0), personality="Curious.")
session.create_object(name="Chest", position=(2, 1), passive_description="An old chest.")
prompt = session.build_prompt()
result = session.run_compound_turn(
    AgentCompoundTurn(reasoning="look around", action="none"),
)

GM host: clone CampAIgn-RPG-Studio (separate GitHub repo):

cd path\to\CampAIgn-RPG-Studio
uv sync
copy .env.example .env   # optional; or use Settings gear in the UI
uv run campaign-rpg-studio

On Windows, if Smart App Control blocks uv run campaign-rpg-studio, use uv run python -m backend.main. Open http://127.0.0.1:8765.

Environment

Copy .env.example to .env and set OPENROUTER_API_KEY for LLM turns. Optional OPENROUTER_MODEL (default deepseek/deepseek-v4-flash). Engine tests mock the LLM — no key required for uv run pytest.

CampAIgn-RPG-Studio Settings (gear icon) can set API key and model in memory for the current server process only — nothing is written to disk.

Lorebooks

Load SillyTavern-style .json lorebooks via session.load_lorebook_from_path(...) or CampAIgn-RPG-Studio Lorebooks tab. Add a lorebook prompt block in Prompt layout to inject matched world info. Not included in the default prompt layout.

Tests

uv run pytest

CampAIgn-RPG-Studio API tests live in the CampAIgn-RPG-Studio repo.

Documentation

Start at docs/README.md — guides, API overview, and changelog index.

Doc Topic
Building on CampAIgn-RPG-Engine App integration (typed API, hosting)
Plugin primitives Extensions, events, turn verbs, prompt slots (1.2.0)
API reference campaign_rpg_engine exports and Session methods
Migration realm-fabric → campaign-rpg-engine Rename from Realm-Fabric / realm_fabric
CampAIgn-RPG-Studio GM host UI (GitHub)
UML diagrams Mermaid architecture diagrams
Roadmap Version plans
Long-term goals Aspirational features

Older version notes: changelog index.

Project details


Download files

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

Source Distribution

campaign_rpg_engine-1.7.4.tar.gz (123.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

campaign_rpg_engine-1.7.4-py3-none-any.whl (170.6 kB view details)

Uploaded Python 3

File details

Details for the file campaign_rpg_engine-1.7.4.tar.gz.

File metadata

  • Download URL: campaign_rpg_engine-1.7.4.tar.gz
  • Upload date:
  • Size: 123.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for campaign_rpg_engine-1.7.4.tar.gz
Algorithm Hash digest
SHA256 d82faaff9391e9d3b5756404555aa060fbc971b5b2ce00502dc78805c5f326da
MD5 ae7e5617ea24ecf9be25b38d5a5aea6e
BLAKE2b-256 04d1c4504a77263fabf773edff4f84982cc3bab9b3896c1ab850118e3451dbfe

See more details on using hashes here.

File details

Details for the file campaign_rpg_engine-1.7.4-py3-none-any.whl.

File metadata

  • Download URL: campaign_rpg_engine-1.7.4-py3-none-any.whl
  • Upload date:
  • Size: 170.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for campaign_rpg_engine-1.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9271797807542b439dcfabe04e66c80a0a60949e9a1294de0a5109702c5ab7d2
MD5 69761bc44700ec07c236aecdd2e7e2ac
BLAKE2b-256 7ff8be79423cd393b74ebd0ee09a84504822ae39fef9f972f52ea69da65350b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page