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 your own UI and scenarios on the engine; use CampAIgn-RPG-Studio as a full GM reference app.

License: MIT — open source.

Current version: 1.0.0 — library-first package (campaign_rpg_engine only; no CLI). See Migration from 0.7 and the 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 web UI: 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.

Custom memory modules

Register .py modules at process startup before creating agents or loading saves:

from campaign_rpg_engine import register_memory_module_from_path

register_memory_module_from_path("path/to/my_module.py")
session.create_agent(..., memory_module="my_module_id")

Saves store module_id + state only (no bundled source). Import fails if a save references a module that is not loaded. Sample module and upload UI: CampAIgn-RPG-Studio fixtures/custom_memory/.

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)
API reference campaign_rpg_engine exports and Session methods
Migration realm-fabric → campaign-rpg-engine Rename from Realm-Fabric / realm_fabric
CampAIgn-RPG-Studio Full GM reference UI (GitHub)
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.0.0.tar.gz (90.3 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.0.0-py3-none-any.whl (124.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: campaign_rpg_engine-1.0.0.tar.gz
  • Upload date:
  • Size: 90.3 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.0.0.tar.gz
Algorithm Hash digest
SHA256 a2adb7a0c882bde86559b4162e92dfd6982ae2b56774ebd6c172bd158a7c6776
MD5 cabb4e1fd6eaf165b5f85d8a5cb911f6
BLAKE2b-256 ca9b7c54a808cdc67ed09bc93c5f3f9502e7132f7f38284ff7c74bed58124d16

See more details on using hashes here.

File details

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

File metadata

  • Download URL: campaign_rpg_engine-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 124.5 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fbde64bc643303e131d18ff557a2b293c77acc7029176e3b6ffad8f1e367cfa5
MD5 2d068ff5bcbabb772face60c189c1565
BLAKE2b-256 8c311a6118a81680f01234a242f8231e3ca47ebf66940c39bc9e859a77836647

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