Pilot story datadisk based on The End Land universe
Find a file
CyberVitexus 8354ad8e3d docs(ishtaria): update README.md with primary source notice
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 14:54:17 +01:00
debian feat(debian): add Jenkins pipeline for ishtaria-datadisk-endland package 2026-10-22 14:11:33 +02:00
dialogues feat(endland): add gate guard dialogue, quest markers, and loudness profiles 2026-10-06 18:28:17 +02:00
i18n chore: add new gate guard model and portrait, update graveyard music 2026-10-06 22:45:15 +02:00
lore feat(intro): add Faust's opening dialogue and the Back From the Dirt quest 2026-10-05 19:54:27 +02:00
media chore: add new gate guard model and portrait, update graveyard music 2026-10-06 22:45:15 +02:00
models-src chore: add new gate guard model and portrait, update graveyard music 2026-10-06 22:45:15 +02:00
music chore: add new gate guard model and portrait, update graveyard music 2026-10-06 22:45:15 +02:00
npcs chore: add new gate guard model and portrait, update graveyard music 2026-10-06 22:45:15 +02:00
places feat(endland): add gate guard dialogue, quest markers, and loudness profiles 2026-10-06 18:28:17 +02:00
quests feat(endland): add gate guard dialogue, quest markers, and loudness profiles 2026-10-06 18:28:17 +02:00
tools Use packaged Piper voices from /usr/share/piper/voices/ 2026-10-19 06:46:45 +02:00
voice feat(endland): add gate guard dialogue, quest markers, and loudness profiles 2026-10-06 18:28:17 +02:00
.gitignore feat(models-src, voice, tools): add Faust model and voice rendering scripts 2026-10-06 15:49:06 +02:00
datadisk.yaml chore: add new gate guard model and portrait, update graveyard music 2026-10-06 22:45:15 +02:00
Makefile feat(models-src, voice, tools): add Faust model and voice rendering scripts 2026-10-06 15:49:06 +02:00
README.md docs(ishtaria): update README.md with primary source notice 2026-11-04 14:54:17 +01:00

ishtaria-datadisk-endland

Primary source: https://git.vitexsoftware.com/Ishtaria/ishtaria-datadisk-endland (development happens there). GitHub (https://github.com/Vitexus/ishtaria-datadisk-endland) is a secondary mirror; packages and binaries are not built from GitHub.

Pilot story datadisk for Ishtaria based on The End Land universe (wiki: https://theendland.v.s.cz). Private repository: the universe, characters and artwork belong to the story author; do not publish or redistribute without her permission.

A datadisk is data, not code: places, characters, dialogue trees and scenarios that the Ishtaria server evaluates. Several datadisks can be combined into one world.

datadisk.yaml      manifest (id, version, requires/conflicts, license, rating)
places/            places the world generator finds a site for (city, building, graveyard ...)
npcs/              characters standing at places (character model, portrait, dialogue)
dialogues/         decision trees: choices, conditions, effects (gold, items, flags, quest stages)
quests/            scenarios as stage machines
lore/              codex entries (not spawned)
music/ + media/    tracks and portraits shown/played during dialogues
i18n/en.yaml cs.yaml
voice/voices.yaml  voice of each character (Piper model, pitch, tempo, speaker) per language
tools/render_voices.py  renders the spoken lines to media/voice/<language>/<text_key>.ogg
models-src/        sources of the 3D character models in media/models/ (Blender script, .blend, references)
tools/             fetch_wiki.sh, prepare_media.py (portraits to <= 512 px)

Format: ishtaria-protocol/schemas/datadisk.schema.json. Check the disk (schema, references, media):

python3 ../ishtaria-protocol/tests/validate_datadisk.py .

Install (dpkg-buildpackage -us -uc -b, then dpkg -i) to /usr/share/ishtaria/datadisks/endland/. In ishtaria-admin, World maps → Generate map then shows a checkbox for this disk; or ishtaria-server-init <seed> <size> endland.

Content of 0.2.0

  • Places: Udrury (grassland/forest lowland), Blackhorn Tavern (inside Udrury), old graveyard (1-3 km from Udrury).
  • Characters: Kragg Blackhorn, Zaina, Fawn Zerezas, Faust Grimes, each with a portrait from the wiki.
  • The old graveyard is the spawn point (spawn: true): new characters wake up there.
  • Opening Back From the Dirt (from the Discord intro): Faust wakes the player at the old graveyard, names them Hugo whatever they answer (and shouts I knew it when it really is Hugo) and gives the Aetherglass (item aetherglass, migration 0027_aetherglass.sql of the server); lore: Aetherglass, the Veil.
  • Scenario The Graveyard Job (Faust -> Fawn -> key for 10 gold -> Faust pays once).
  • Music: stand-in CC0 tracks (see Music credits). The wiki only links songs on external sites; replace the files with the author's own recordings (OGG Vorbis, up to 8 MiB). A place's music plays within its music_radius_m (graveyard 70 m, tavern 60 m), a dialogue's music while it lasts.

Dialogues the wiki gives no material for may be drafted once with a local LLM and then reviewed; drafts are marked status: draft and rejected by the server until reviewed.

Spoken lines

dpkg-buildpackage runs tools/render_voices.py: every NPC line is synthesized with Piper (cs_CZ-jirka-medium for Czech, en_US-libritts_r-medium for English) and encoded to OGG Vorbis in media/voice/<language>/<text_key>.ogg; voice/voices.yaml gives each character its own pitch, speed, filters (and a speaker id for the multi-speaker English model). Models are looked up in --voices DIR, $ISHTARIA_VOICES, and /usr/share/piper/voices/ (packages piper-voice-cs-cz-jirka-medium and piper-voice-en-us-libritts-r-medium). Try it without building a package:

python3 tools/render_voices.py --only kragg --lang cs --out /tmp/voices   # then listen to /tmp/voices/media

dpkg-buildpackage -P pkg.ishtaria-datadisk-endland.novoice skips the rendering. A human recording replaces a synthetic line: add media/voice/<language>/<text_key>.ogg (OGG Vorbis, mono, up to 2 MiB) to the source tree and that line is no longer synthesized. Another language needs i18n/<language>.yaml, a model in voice/voices.yaml and a build dependency on it. Format: ishtaria-protocol/DATADISK-SPEC.md.

Music credits

Stand-in tavern track until the author supplies her own (CC0, no attribution required, credited anyway):

The old graveyard plays Cemetery Music by steverus (made with Suno; media/music/cemetary_music.ogg, converted from MP3 because tracks must be OGG Vorbis). The previous graveyard track, Midnightcem by Tozan, now lives in ishtaria-server as the default music of every generated graveyard.