Single-player Python console RPG prototype inspired by classic Final Fantasy XI-style systems. This is not a full recreation or asset dump; it is an extensible original codebase for a text RPG with familiar MMO-shaped mechanics.
python3 -m venv .venv
. .venv/bin/activate
pip install -e '.[dev]'
vanadielOr without installing:
PYTHONPATH=src python3 -m vanadiel_console.appThe game creates vanadiel.sqlite3 in the current directory unless VANADIEL_DB=/path/file.sqlite3 is set.
python3 -m http.server 8000 -d webThen open http://localhost:8000.
See web/README.md for the web engine notes.
pip install -e '.[dev]'
pytest- Colour console UI and ASCII title screen.
- Text-GUI screen navigator with Main / World / Travel / Combat / Gathering / Crafting menus, plus back/home/quit controls.
- Status and Help screens for quick orientation.
- Inventory screen grouped by item kind.
- HTML/CSS/JavaScript web engine prototype with character creation, travel, combat, gathering, inventory, save/load, and content database views.
- Region-grouped travel picker so the map list is less painful to navigate.
- Character creation with race, sex, starting nation, main job, and optional subjob.
- Starting races: Hume, Elvaan, Tarutaru, Mithra, Galka.
- Starting six jobs: Warrior, Monk, White Mage, Black Mage, Red Mage, Thief.
- Race, nation, main job, and subjob all affect stats.
- SQLite persistence for characters, inventory, key items, gear slots, maps, NPCs, mobs, loot, quests, recipes, and gathering nodes.
- Extensible seed tables for maps, NPCs, mobs, quests/main missions, crafting, fishing, mining, and resource gathering.
- Expanded 75-era-through-Wings-of-the-Goddess seed slice: starter cities/fields, classic party zones, WotG past zones, representative NPCs, and 30+ representative mobs up to level 72 campaign-style enemies.
- Weighted mob loot tables, including a level 5 White Mage Yagudo sample that can drop WHM-flavoured gear/scrolls.
- Interactive turn-based combat with attack, cast, job ability, defend, flee, EXP, and loot payout.
- Location-driven combat: local encounters are listed from the character's current map.
- Interactive fishing with reel/wait/slacken tension management.
- Location-driven gathering/fishing: local nodes are listed from the character's current map.
- Fishing split by water type: freshwater, saltwater, and ice fishing samples.
- First-pass nation opening missions for San d'Oria, Bastok, and Windurst.
- Expanded starter zones with extra mobs, gathering nodes, NPCs, and sidequests.
Bundled starter content now lives in src/vanadiel_console/data/core_content.json:
itemsadds gear, materials, scrolls, fish, etc.mapsdefines regions, water type, and resource node categories.npcsdefines location and dialogue.questsdefines side quests and main missions using objective/reward objects.mobsandlootdefine mob stats and weighted drops.recipesdefines crafting.gatheringdefines fishing/mining/resource nodes.
The Python seeder can also load another JSON file with the same top-level keys, so future private/mod content can be added without editing code. Content packs are validated before seeding so missing fields, duplicate slugs, and bad map/NPC/item/mob/quest references produce friendly errors.
See docs/CONTENT_SCHEMA.md for the content authoring schema, examples, validation rules, and authoring checklist.
Planned GitHub visibility: public.
GitHub: https://github.com/mechaigor-hash/vanadiel-console-rpg
Project checklist is also tracked in TODO.md.
- Create new Python project/repo.
- Add SQLite schema covering characters, inventory, key items, gear slots, maps, NPCs, mobs, loot, quests, missions, recipes, and gathering.
- Add character creation choices for race, sex, nation, main job, and subjob.
- Add stat calculation affected by race/nation/job/subjob.
- Seed starting races and six starting jobs.
- Seed starting gear per job.
- Add colour/ASCII console menu.
- Add sample NPCs, maps, quests, and main mission structure.
- Add crafting, mining, and fishing/resource gathering systems.
- Add freshwater/saltwater/ice fishing examples.
- Add weighted loot for mobs, including Lv5 WHM Yagudo sample.
- Add automated tests for core systems.
- Move seed content into external data packs.
- Add public project TODO/checklist artifact.
- Create public GitHub repository and push commits.
- Add content-pack validation with friendly error messages.
- Document the content-pack JSON authoring schema.
- Add save-slot selection and better character management.
- Add equipment equip/unequip and derived combat stats.
- Add turn-based combat loop rather than instant sample victories.
- Add interactive fishing tension loop.
- Add quest journal progression and completion rewards.
- Add quest/mission prerequisite gating.
- Add death/return-home handling.
- Add nation-specific opening missions.
- Add first expanded 75-era/WotG seed slice for maps, NPCs, mobs, and loot.
- Continue fleshing out maps, NPCs, mobs, fish, recipes, mining/logging nodes.
- Add balancing pass for races/jobs/subjobs.
- Add richer terminal UI screens and simple movement between menus.
- Add terminal-width-aware menu dividers and wrapping.
- Add travel menu and current-location display.
- Make combat/gathering menus use current-location mobs/nodes.
- Add inventory browser grouped by item type.
- Add help text.
- Add terminal-width-aware layout.
- Add GitHub Actions pytest CI.
- Package release builds.
Created from Kalidor's request in Discord #general.