🇬🇧 English | 🇩🇪 Deutsch
⚠️ Status: Early Alpha / Prototype
This project is currently in an early development stage. Features may be incomplete, unstable, or subject to change without notice.
Codex Arcana is a Django-based management system for the pen-and-paper role-playing game Arcane Codex. The application combines classic character management with a rule-driven engine, ensuring that a character sheet does not merely store data but consistently calculates game-relevant values based on the current state.
- Dashboard with active characters, archive, draft management, and account settings
- Multi-phase character creation with persistent drafts
- Character sheet with precomputed template context
- Inventory, equipment, and quality-dependent item values
- Learning system using experience points for attributes, skills, languages, and schools
- Shop with cart system, price calculation, and custom items
- Persistent character diary with JSON endpoints for the UI
- Technique, specialization, and modifier system for rule-driven unlocks
- Python 3
- Django 5.2
- PostgreSQL 16
- Django Templates
- Global assets in
static/
- Python 3.x
- PostgreSQL running on
localhost:5432 - alternatively Docker for the provided database setup
docker compose up -d db
python -m pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
- Login:
http://127.0.0.1:8000/ - Admin:
http://127.0.0.1:8000/admin/
The following views provide a quick impression of the current state of the application. All preview images are clickable.
This tutorial describes the main workflow currently supported by the system.
- Open
http://127.0.0.1:8000/ - Log in with your account
- After successful login, you will be redirected to the dashboard
The dashboard contains several functional areas:
- User section with logout and account settings
- Recently used for quick access to characters
- System status showing global data (items, skills, schools, languages)
- Notifications for unspent EP, open damage, or other conditions
- Open drafts for unfinished character creation
- Character management for active characters
- Archive for inactive characters
- Click New Character
- The creation process opens as an overlay
- Work through the phases step by step
- Drafts are saved automatically
- Finalizing creates the full character with all related data
- Select a character in the Character Management table
- Click Open
- The character sheet displays the full current state
The character sheet is the central interface of the application:
- Attributes and skills with rule-based calculations
- Advantages, disadvantages, languages, schools, and techniques
- Weapons, armor, and inventory management
- Money, experience, damage, and reputation tracking
- Learning interface, shop, and diary
codex_arcana/
charsheet/
models/
engine/
templates/
learning.py
shop.py
sheet_context.py
view_utils.py
static/
docs/
Codex Arcana uses DDDice to render animated 3D dice in the browser.
The actual dice logic is calculated entirely on the server side.
DDDice is used purely for visual representation.
This ensures that the dice system is:
- fully rule-compliant with Arcane Codex
- deterministic and server-controlled
- not manipulable on the client side
- visually enhanced with 3D dice animations
DDDice provides a visual layer without shifting game logic into the browser.
Workflow:
- User triggers a dice roll
- Frontend sends a request to the backend
- Backend calculates the result
- Result is returned as JSON
- DDDice renders the animation based on that result
Codex Arcana uses DDDice, a third-party service:
The integration is optional and only activated via user settings.
When enabled, technical data (such as IP address) may be transmitted to DDDice servers.
If disabled, no connection is established.
All rights to the DDDice engine remain with its respective owners.
This project is licensed under the GNU General Public License v3.0.
Third-party licenses (e.g. fonts in static/fonts/) remain unaffected.
