Mods / Ritual Apotheosis
- Tags:
- Author:
- DoctorProfessor
- Side:
- Both
- Created:
- Apr 21st at 7:34 PM
- Last modified:
- Apr 21st at 8:14 PM
- Downloads:
- 984
- Follow Unfollow 116
-
Latest release (for Vintage Story 1.22.0, potentially outdated):
ritualapotheosis-0.1.1.zip 1-click install
Ritual Apotheosis
An in-depth ritual system for Vintage Story.
Some knowledge is not taught. It is pieced together from scraps - a rotted scroll on a forgotten altar, a chipped inscription deep in a mine, a whisper remembered only by the dying. The old rites did not survive in libraries. They survived in fragments, scattered across a world that has mostly forgotten them.
You will not be shown what the rituals are. You will find them.

What this mod adds
Ritual Apotheosis weaves mystery-driven ritual arcs into Vintage Story, making attempts to integrate naturally with the existing setting. Instead of a tech tree or a recipe list, ancient rites are re-assembled from fragmentary clues that you will organically uncover through normal play. Each clue holds a piece of the puzzle ... put together, they describe an act of power.
You will not open a menu to begin a ritual. The world itself is the interface. Rituals are performed as physical acts. You must determine the conditions, locations, and reagents on your own. Gather information, fulfill the conditions, and begin the rites - on your own, or with friends!
What a rite ultimately produces may be as varied as the rites themselves - lasting objects left behind in the world, zones of altered reality, knowledge the world did not previously contain. Some rituals ask to be repeated. Some must not be.
The arc of a ritual
Every ritual in Ritual Apotheosis follows the same six-stage arc. Encountering an arc for the first time is part of the experience, so the descriptions below are deliberately vague.
- Discovery. A fragment crosses your path. You read it. You have learned something. What, exactly, is not yet clear.
- Understanding. Cryptic hints deepen as you live with the fragment and chase further clues. Over time and with the right experiences, the purpose of the rite becomes legible.
- Preparation. The rite names what it needs - materials, conditions, a setting. Some are easy. Some are not.
- The Place and Time. Not every location or time can host every rite. Not every hour, day, or season is right. You will never understand a ritual if you don't know where and when it will answer.
- The Rite. The rite is performed. If every condition holds, the world changes. If not, it does not - and sometimes it punishes the attempt.
- Something Gained. The temporal dimension may reward intrepid truth-seekers in myriad ways. Tools, skills, treasured knowledge ... and perhaps a combination of all three.
Multiplayer
Ritual clues are designed to be shareable. Two or more players who have found different clues can combine what they know and perform the rite together. Some rites explicitly require more than one participant (configurable). The mod never locks clues to a single player - everyone can gain complete mastery over secrets of a rite, with enough effort. Secrets may be passed to others, and live in the telling.
A note on play style
The "Discovery Arc" of Ritual Apotheosis rewards patience, observation, and conversation with other players more than it rewards optimization. If the first clue frustrates you because it does not tell you what to do - that is intended. Keep playing. Keep dying. Keep going deeper. The right fragments will find the right hands. And with time, the knowledge WILL eventually become clear to you, regardless of what you do.
Current status
Version 0.1.0 - active development, targeting Vintage Story 1.22.0 (I started building on 1.19.0, and have done two codebase updates since - most major systems stay functional as far back as 1.19.0 (confirmed), but I had to make some changes to make it functional for 1.22.0! I can provide a version that I am certain works on 1.19.0-1.21.7 if there is a lot of demand.)
The first (and for this initial release, the only) ritual, Madness Consecration, has a fully working end-to-end implementation: discovery, decoding, performance, a persistent reward, and an associated crafting/progression system. Additional rituals and polish are in progress and will be developed/improved over the next couple of months! All the bones are in place to more rapidly develop further content - and I'm excited to keep at it!
DISCLAIMERS: I am a solo developer with zero art skill. This is an extremely ambitious mod with many moving parts, and I'm not really interested in building up my arts skills. As such - while many of the assets I've used come from in-game screenshots or existing in-game assets, in cases where I felt in-game screen captures were not sufficient I have used AI-Generated Images (Courtesy of Gemini). It is my hope that these will prove to simply be placeholders, and that I can find a volunteer artist to assist me. I do not claim ownership over any art asset seen in this mod.
- Report bugs / suggest rites: please open an issue on the project repository.
- Suggest ideas! I want to hear your own ideas for rituals! I confess - I want full creative control over this project - but I'm more than happy to integrate your coolest ideas (and I promise I'll give you credit if I use your idea :D)
- Playtesters are very welcome. I've taken quite a lot of time to test the many features this mod includes, but there is a lot of surface area and there are bound to be things I missed. In addition, any feedback on clue pacing and "ritual feel" is especially valuable at this early stage. I am also interested on your opinions on the rewards schema I have in place.
- I have internally debated whether this mod should be split into several. If you think that just one aspect of the mod is of primary interest to you, pitch the idea to me - I might consider breaking out these aspects and making them accessible together, or as standalone features. Honestly, there are a lot of systems in here.
Installation
Drop the compiled mod zip into your server's Mods/ folder (or your client's Mods/ folder for singleplayer). The server is authoritative for all ritual logic; clients only render and send input. All connected clients must have the same version installed.
Requires Vintage Story 1.22.0+. No hard dependencies on other mods - though there is a dependency on Harmony patches. Please see `.../docs/VERSION_SURFACE.md for more information about version maintenance.
I took a look at some of the most popular mods out there and I don't think Ritual Apotheosis will conflict with them - but please let me know if you identify conflicts. If I'm able to reach the creators, I'll ask about what I can do to resolve them.
Localization
Every player-facing string in Ritual Apotheosis is routed through Vintage Story's Lang.Get system and defined as a key-value pair in a single JSON file: assets/ritualapotheosis/lang/en.json. To translate the mod into another language, a contributor only needs to copy that file, rename it to their locale code (e.g. de.json, fr.json, ru.json), and translate the values. No code changes, no recompilation.
A LOCALIZATION_GUIDE.md at the repo root documents the key naming conventions, placeholder syntax, and a testing checklist for verifying a new translation in-game.
That said -- I'm one person who only speaks English, and it's entirely possible I've missed a hardcoded string somewhere that should have been extracted into a lang key. If you are interested in assisting with localization, and encounter any untranslatable text while playing or translating, please leave a comment on this mod page describing where you saw it, and I'll get it fixed.
Credits
Created by Gus Thomas. Built on the Vintage Story modding API.
Special thanks to the Vintage Story team for an engine that rewards this kind of world-as-interface design, and to any players and playtesters who exercise patience with me as I've embarked on my VS mod-making journey!
SEMI-SPOILER: For server administrators.
Spoiler level: Architectural. This section does not describe specific rituals, clues, or their solutions, but it does reveal the shape of the mod - how discovery is tuned, what the progression timers look like, and what operator tools exist. That being said - I think one of the things that makes Ritual Apotheosis so awesome is the sense of discovery, and experience of treading through unknown territory - so if you plan to play the mod as a fresh participant on your own server, I hope you'll attempt to finish least one ritual (the only one, for now) first before reading on. In the event I've messed up and despite my playtesting, things are horribly broken - consider reaching out to me first, so I can resolve the problem without forcing you to resort to spoiling yourself!
Where settings live
Every tunable value lives in a single config file at:
%AppData%\VintagestoryData\ModConfig\ritualapotheosis.json
The file is written on first load with sensible defaults. Every field has a doc comment in source (src/Config/RitualConfig.cs) explaining what it does. Editing the file while the server is running will not take effect until the next world load; changing values via the live /ra configset command does. For a full breakdown of every config field and its expected values, see the config dump section of docs/testing/TESTING_COMMANDS_REFERENCE.md.
I've attempted to group all available commands by gameplay stage - and the output of each command should also dump it's output to the server log, if I've configured it right. The most common knobs you might want to reach for:
BlueprintDropChance(default0.05) - probability that an eligible creature kill yields a clue fragment. Raise this to speed up discovery on a fresh world; lower it on a long-running server where players have saturated the drop tables.ClueAcquisitionCooldownHours(default48) - per-player, per-ritual cooldown between clue drops. Keeps any single session or ambitous player from firehosing all of a ritual's fragments at once. You can set to0if you are testing, or if you want rapid progression.PassiveDecodeHours(default ~600 hours - about one in-game season) - represents the number of in-game hours a player must spend holding a fragment before a slow background decode step for one acquired ritual clue ticks forward. This is the safety net for players who do not chase clue-advancement probes actively - I understand some players like to just focus on one thing, and I don't want to exclude them! That being said, active probing is the fast track. Lower this value for more forgiving servers.
Probe thresholds (the cumulative-experience counters that drive active clue advancement) live in the same file and are documented per-probe. Each probe has a threshold and a "per-step" value; raising the per-step value makes clues slower to advance, lowering it makes them faster.
Hosting multiplayer
- Server-authoritative by design. Ritual state, clue progress, idol tier, and zone activation all live on the server. A client cannot fake a ritual.
- Save-safe. Mid-ritual state, per-player clue progress, and active zone registrations all survive world save/load.
- Compatibility. Harmony patches target vanilla chiseling and temporal-stability plumbing only. The mod should coexist with most vanilla-adjacent mods; anything that also patches those surfaces should be tested before deployment.
docs/VERSION_SURFACE.mdcatalogs every internal VS dependency (Harmony targets, reflected fields, private-class access) so you can audit compatibility at a glance.
The /ra command tree
The /ra command is gated on DevMode (default false in released builds). To enable it on your server, set DevMode: true in the config and restart. The commands themselves still require gamemode privilege, so enabling dev mode does not open the tree to untrusted players on a shared server.
Here is a partial tour of commands that operators find useful for assisting players or running playtests. All output is routed through a formatting-stripping layer so what you see in chat is what the command actually produced (see above note about server-log dumps).
/ra configset <field> <value>- hot-patch any config field without a restart. Good for dialing in drop rates mid-session./ra configdump- dump the current effective config to chat. Useful for confirming that a config edit actually loaded./ra clue give <player> <ritual> <clue>- manually hand a player a specific clue. Rescues a player who missed an expected drop./ra clue list <player>- show which clues a player currently holds and at what decode stage./ra idol capture <tier>- snapshot the chiseled block you are looking at as a template at a specific tier. This is how new idol templates get authored./ra idol zones- list every currently active ward zone on the server, with its grace-window state./ra idol wardfx test- fire the enter/exit ward-zone visual effects at your location. Handy for verifying that a new client has the assets wired correctly./ra ritual list- show every registered ritual definition and its current state.
There are many more commands under the tree, most of them related to individual development phases (idol capture, pattern rewards, mastery counters, probe triggers). They are self-documenting via /help /ra <subcommand>. The exhaustive command reference -- including example output for every command -- lives in docs/testing/TESTING_COMMANDS_REFERENCE.md. If you want to run a full end-to-end playtest from first clue drop through ward-zone activation, docs/testing/END_TO_END_RA_01_MODTEST.md walks through each step. It's been a nightmare to keep updated so if you fall in love with the mod and want to help playtest, please excuse any deprecated bits.
Emergency unsticking
If a player gets wedged in an inconsistent state - a ritual that started and never completed, a zone that registered but should not have, a clue that advanced prematurely - the two commands most likely to help are:
/ra ritual reset <player>to clear any in-flight ritual phase back to idle./ra idol ruin//ra idol unruinon a targeted block to force its ruined state or escape it, respectively.
Please report any situation where these were necessary - a player needing an operator to unstick them is a bug in the mod's handling of whatever edge case they hit, and I would like to fix it. For a catalog of every player-facing toast notification (what triggers it, what visual/audio effects accompany it, and where in code it lives), see docs/testing/PLAYER_TOAST_TRACKER.md.
Spoiler level: Everything. This section exists for future contributors, playtesters actively debugging the mod, and curious readers who want to know how the sausage is made. It discloses the shape of the worked-example ritual, the reasoning behind core design decisions, and the layout of the codebase. There is also discussion of Big O and how it relates to the many checks and probes that were required to build the mod.
If you have not yet performed your first ritual, I strongly encourage you to close this dropdown now!!!
Design pillars
Five principles shape every design decision in the mod:
- Rituals are actions, not menus. The canonical shape of a rite is a sequence of physical conditions and actions in the world. There is no "begin ritual" button and, for the bulk of my already-planned rites, no required altar block. When a GUI dialog is unavoidable (this make take the form of shrines revisited for recurring blessings or oracle-style consultation rites I implement in the future), it should be the rare case, not the default.
docs/RITUAL_DESIGN_VISION.mdis the source of truth for this principle;docs/design/ACTION_DRIVEN_RITUAL_HOST.mddocuments the code pattern that implements it. - The mystery is load-bearing. Clues are organically discovered. The first fragment for any rite is deliberately too cryptic to act on. Instead, the arc of understanding is the content. Any design decision that reveals information faster than discovery warrants is re-examined.
- Collaboration must never be foreclosed. Two players with different fragments of the same rite should be able to perform it together. Clues are not account-bound knowledge; they are intentionally cryptic texts that multiple players are free to interpret and discuss among themselves - and on larger servers, perhaps that knowledge could be bartered!
- Server-authoritative everything. If a rite affects the world, the server decides. Client code renders and predicts, nothing more.
- Behaviors over subclassing. The mod composes
CollectibleBehavior/BlockEntityBehavior/EntityBehaviorrather than building deep inheritance trees. This matches how Vintage Story's survival mod is built and plays well with other mods.
The worked example: Madness Consecration
The first implemented ritual. It was (and will be) the reference shape against which the engine was/is sanity-checked. The full per-stage specifications live in docs/madness_consecration/ -- CLUES.md covers the seven-clue discovery arc and its probe system, STAGE1_RITUAL.md covers the consecration rite itself, and STAGE2_FORMATION.md covers the ward-formation placement lifecycle.
Purpose. Completing the ritual teachers users how to create a persistent object that, when combined with like-objects in formation, can nullify temporal stability loss in a 3D region. Useful in deeply unstable terrain and extreme depths where vanilla play is otherwise hostile.
Discovery Arc. Killing certain enemies or mining deep underground may drop a scroll; right-clicking grants a tome entry in a Grimoire (accessible with the hotkey 'G') that allows you to review collected clues, and track how they evolve. Each clue reveals more and more of its own detail as the player accumulates specific kinds of experience - time spent near temporal rifts at rock-bottom stability, hours spent mining below a Y threshold, reading the right scroll while on the brink of insanity deep underground, and so on. A seventh clue is knowledge-gated: it requires the previous six to be fully decoded first, and for the ritual to be completed. Weather events will help to show you where the rite must be performed.
Performance Arc (Stage 1 - Consecration). Players bring two (Large) copper lanterns and a third (Large) non-copper lantern into a small, deep, enclosed chamber located over a ley-line during the evening. They place the lanterns in a line with the odd one in the middle, light all three, then build and light at least one campfire nearby. A progress bar begins. While the bar climbs, the participants must stand in a lit campfire. When conditions hold simultaneously, the bar snaps to full and the rite fires: all lights go out, interaction with light sources in the chamber is locked for 35 seconds, rising whispers sound, participants suffer stability loss - and at the 20-second mark, lights flicker back on, the sacrificial lanterns have been consumed, and the central lantern has been replaced with a Novice Madness Ward Idol. Every participant gains the corresponding grimoire pattern.
Performance Arc (Stage 2 - Formation). The Novice idol is the starting point of a sculpting journey. Back at home, participants chisel further copies at higher tiers (Practiced, Skilled, Master) using their learned grimoire pattern as a voxel wireframe overlay. To project protection at a location, four idols of matching tier are placed at the corners of a square. The edge length scales with tier (Novice 5 blocks, Master 20). Placement itself is the ritual - the moment the fourth corner lands, the formation detects its own completion and registers a persistent ward zone that projects outward from the inner box by a tier-scaled radius. Breaking any corner idol causes the zone to falter and eventually fail.
What this one rite forced the engine to support. Location predicates (ley-line proximity), time-of-day gates (evening), chamber-shape predicates (enclosed, depth-gated, size-bounded), specific world blocks in specific relative positions, light-state predicates (lit/unlit), ordered action sequences within a charging window, multi-player participation, delayed outcomes over a multi-second window, item consumption plus block replacement plus pattern-knowledge grants at the moment of firing, placement-triggered formation detection on configurable shapes, per-tier effect parameters, persistent save-safe area effects, and tear-down-on-corner-break lifecycle. This is where the worst bugs I wasn't able to find might live.
Every future ritual will be built on the same engine, varying and iterating the surfaces this engine invokes. The engine itself -- the shared validator, state machine, definition schema, outcome dispatcher, and failure cooldown -- is documented in docs/design/RITUAL_STATE_MACHINE.md. The active clue-advancement probe framework (how clues detect player experience and advance decode stages) is documented in docs/design/CLUE_PROBE_SYSTEM.md.
The idol system
My current plan is for rituals to primarily reward idol patterns - knowledge of how to sculpt an idol, which can progress from its initial rough-hewn shape into more refined higher tiers. The idol system is a full subsystem of its own, governed by twelve design principles (see docs/design/IDOL_DESIGN_PHILOSOPHY.md for the principles, and docs/design/IDOL_SYSTEM_DESIGN.md for the technical implementation -- template registry, validator, pop-off handler, tier-state behavior, and mastery tracker). In brief:
- Pop-off (reaching an idol-tier threshold, causing the idol to be added to your inventory) fires on exact wireframe match against the next tier's canonical voxel pattern. There is no "close enough" threshold.
- Tiers run Novice -> Practiced -> Skilled -> Master. Each tier gates the next tier's wireframe; the chain must be walked from the bottom.
- Tier directly drives ritual mechanics (ward radius, effect magnitude). A Master formation is base-scale infrastructure; a Novice formation is a keyhole spot effect.
- Free aesthetic customization is allowed at every tier, bounded by a 50% similarity floor to the canonical. Drop below and the idol becomes a non-functional "Ruined Idol" - ruin is terminal.
- Mastery tiers (a separate 6-rung player-progression ladder, distinct from the 4 idol tiers) unlock perks like auto-chisel shortcuts at Skilled+.
- Every idol can be customized to some extent within its own tier, after it clears the tier pop-off threshold - note that customized idols are non-stackable. Every idol tier carries its own voxel snapshot; placement always restored voxels verbatim, not canonical defaults.
- Excessive customization (50% differential from the idol tier frame) caused an idol to be ruined - it can still be placed, but becomes purely decorative.
Ward zones -- the persistent area effects that idol formations project -- have their own design spec covering geometry, tier-scaled radii, stability-suppression hooks, and grace-window rules: docs/design/WARD_ZONE_DESIGN.md.
For a deep-dive reference on every player-facing item and block the mod adds (idol, ritual scroll, ritual altar, and placeholders), including their JSON definitions, shape/texture sources, VFX tables, and attribute schemas, see docs/testing/RITUAL_ITEM_REFERENCE.md.
Codebase tour
The repo is generally organized as follows - some of these files/folders may reference a number of partial-class files:
src/Config/RitualConfig.cs- all tunable values, heavily commented.src/RitualApotheosis.cs- root ModSystem entry point and static singleton registries.src/Blocks/andsrc/BlockEntities/- block subclasses and their stateful counterparts.src/Items/- scroll, grimoire, idol, and reagent items.src/Behaviors/-CollectibleBehaviorandEntityBehaviorclasses composed onto collectibles and entities.src/Systems/- heavyweight subsystems: ritual engine, clue probes, formation detection, ward-zone registry, network channels, save envelope.src/Idol/- the full idol-system subsystem (template registry, validator, pop-off handler, tier-state behavior, mastery tracker).src/Commands/- the/radev-command tree, one file per command group.src/Gui/- the rare GUI dialogs (grimoire, shrine-style dialog).src/Util/- shared helpers (logging wrapper, math).assets/ritualapotheosis/- all JSON content (blocks, items, rituals, clues, idol templates), textures, sounds, and thelang/folder.
For a Big-O complexity analysis of every system (tick budgets, per-player costs, scaling behavior under load), see docs/testing/COMPLEXITY_REPORT.md.
Documentation index
The docs/ folder is the long-term memory of the project. If you want to contribute, start here and follow the cross-links. I have used Claude extensively in preparing the codebase, and these documents have assisted myself, and Claude's agents along the way.
docs/CLAUDE_PROJECT_INSTRUCTIONS.md- project orientation and session-start checklist.docs/RITUAL_DESIGN_VISION.md- source of truth on "what is a ritual" and "what is an altar." If a lower-level doc seems to contradict this, the vision wins.docs/LEVERS.md- the living index of every game system, API surface, JSON asset, or event hook the mod depends on, organized by ritual beat with a cross-cutting table.docs/levers/beat{1..5}.md- per-beat lever tables (Discovery, Lore & Purpose, Components, Location & Environment, Ritual Performance).docs/levers/session-log.md- newest-on-top session journal; the "where did we leave off" anchor.docs/design/CLUE_PROBE_SYSTEM.md- how active clue-advancement probes work (tick vs event, per-ritual cooldowns, how to add one).docs/design/RITUAL_STATE_MACHINE.md- shared ritual backbone: validator, state machine, definition schema, outcome dispatcher, save/load, failure cooldown.docs/design/ACTION_DRIVEN_RITUAL_HOST.md- canonical non-BlockEntity ritual host pattern (seeMadnessConsecrationHostas the live example).docs/design/IDOL_DESIGN_PHILOSOPHY.md- twelve principles for the idol system. Revisions here precede code changes, not follow them.docs/design/WARD_ZONE_DESIGN.md- ward-zone geometry, tier-scaled radii, stability-suppression hook, grace-window rules.docs/VERSION_SURFACE.md- catalog of every place the mod depends on internal-to-Vintage-Story surfaces (private classes, Harmony patches, reflection). Audit this before migrating to a new game version.docs/ROADMAP.md- the short, living "what's next" list. Priority-ordered but not contractual.docs/guides/AGENT_SPLIT_PROTOCOL.md- the canonical playbook for file-split tasks (mojibake sweep, ownership boundaries, build verification).docs/guides/CONTRIBUTOR_CONVENTIONS.md- coding patterns, logging conventions, and the two-layer testing strategy.docs/guides/VS_UPDATE_GUIDE.md- six-phase checklist for migrating to a new Vintage Story version.docs/testing/PLAYER_TOAST_TRACKER.md- every player-facing toast, its trigger conditions, and associated VFX/SFX.docs/testing/DEV_TOAST_TRACKER.md- every/racommand's console output, for verifying dev-harness behavior.docs/testing/RITUAL_ITEM_REFERENCE.md- deep-dive reference for all player-facing items and blocks the mod adds.docs/testing/COMPLEXITY_REPORT.md- Big-O analysis of every system, grouped by performance impact.docs/testing/END_TO_END_RA_01_MODTEST.md- step-by-step end-to-end test manual for Madness Consecration.docs/madness_consecration/- per-stage ritual specs (clue arc, Stage 1 consecration, Stage 2 formation).
Future Plans
- More rituals for various things! Each ritual is its own multi-stage side-quest, and as VS continues to evolve (especially on the quest side of things), I'll be creating rituals that echo that story.
1a. Rituals to call for weather or alter soil compositions passively. It might be nice to have a constant amount of wind in a certain place ...
1b. Rituals to attract and aid in taming animals - not necessarily for domestication, but as traveling companions.
1c. An additional series of "ward-type" ritual idols that require a set formation and placement, like Madness-Consecration's "stability-lock" idol. Maybe one to suppress rifts from spawning, for instance.
- Battle totems! I have lots of ideas for idols that function almost like Shaman totems from World of Warcraft. These would be used primarily for combat, and add a whole new way to experience it.
2a. Battle totem rituals will always be completed solo. My foggy vision for the unlocking rituals a sort of "Spirit Journey" involving traversing a long distance and doing certain things at certain places. That differs from the baseline ritual format of "playing the game organically to find and progress clues", but I think it'd be a really cool thing.
- As more rituals come into play, players may find that they can automate or speed things up a bunch - that is nice in some cases, but in the spirit of Vintage Story, I believe it's important that Ritual Apotheosis doesn't overwhelm the game's intentions. As such, eventually I plan to have certain persistent rituals come with their own persistent costs.
3a. Reducing maximum stability, health, or satiety.
3b. Unique debuffs for maintaining too many rituals at once.
- And much more! Speaking of which, if you have ideas of your own ...
Contributing
Three things are worth knowing before opening a PR:
- Read
RITUAL_DESIGN_VISION.mdbefore proposing a new ritual shape. Most "wouldn't it be cool if" proposals might turn out to conflict with the "action-driven-rituals" pillar, and we might find that this conflict is subtle the first time we encounter it. - My logs were sometimes recorded in the middle of a coding session and sometimes at the end. The session-log files have a documented cadence rule: add your entry after the first substantive change and update it as work continues, rather than waiting until you are done. The reason is practical - if work is interrupted, the partial entry is still more useful than none.
_decompiled/is THE Vintage Story ground truth. When in doubt about how a vanilla Vintage Story system works, grep the decompiled source before guessing. Memories, guides, and even this document might drift; the decompiled source cannot.
For coding conventions, logging patterns, and the two-layer testing strategy (xUnit + in-game /ra commands), see docs/guides/CONTRIBUTOR_CONVENTIONS.md. If you are migrating the mod to a new Vintage Story version, docs/guides/VS_UPDATE_GUIDE.md walks through the six-phase upgrade process (re-decompile, audit the diff against VERSION_SURFACE.md, fix, build, test, bump).
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 0.1.1 | ritualapotheosis | 941 | Apr 21st at 8:14 PM | ritualapotheosis-0.1.1.zip | 1-click install | ||
|
Suppression of several null-guard warnings. Shouldn't change the mod's function, but a bit cleaner on compile. | |||||||
| 0.1.0 | ritualapotheosis | 43 | Apr 21st at 7:36 PM | ritualapotheosis-0.1.0.zip | 1-click install | ||
|
First release. Wish me luck! | |||||||
I noticed this error on my server-main file
What's the in-game behavior? It seems unlikely that it caused the mod to not work at all for you - otherwise, we'd probably have heard that complaint already!!
Dispose methods aren't commonly used by modders - they are there to clean things up and safeguard against bad things from potentially occuring. I will look into why the call to Dispose failed here, but it is unlikely to affect gameplay. Have you completed Madness Concecration? If you have, you'll be able to comment on this for sure! I didn't notice any issues with the chiselguide during testing (hehe you might not even know what that is refering to).
Hey Willow, I investigated this in more depth and made the fix, which will be included in the next patch! Two things I found.
My initial hunch - that this wouldn't affect your in-server gameplay experience at all - appears to be correct! The exception is caused by a rare teardown race between threads when the game is closed/crashes for any reason, or very rarely in cases where the server is exited to VS's main menu. When the server is restarted, the memory things that failed to Dispose are reinitialized, no harm done. And usually, the Dispose wins the teardown race anyway, so a log message like this one would only rarely appear.
However, it is possible - unlikely but possible - that if you exited a server when Dispose lost the teardown race, and then rejoined a DIFFERENT server without restarting the game, there could be some really weird memory locks hanging around from the other save that propagate into the other one. I think it's really unlikely that this would happen (as that reinitiallization theoretically still fires), but the hole leaves room for such an outcome. Thanks for bringing it to my attention!
I repeatedly get "ritualapotheosis:ley-active-enter" in my chat and im unsure if thats intended behaviour.
It's not. You're supposed to get a more flavorful toast. I think I've fixed this already; whenever this patch is finally ready that'll go away.
EDIT: confirmed. This will be fixed for you when the patch is done.
Is there a way to look back at previous parts of the clues, because whatever info I'm missing I simply don't remember :'(
Yeah! Those little squares to the left of the name of the clue lets you go back to earlier parts of it. Been trying to figure out how to render those correctly as arrows, like you see elsewhere in the grimoire
OH! That's really good to know, thank you! <3 In other news, I have had to start a new world as the incompatabilities with all the wilderlands mods were preventing me from aquiring 2 very important clues
I would like to reiterate my love of this mod, and my excitement for it's development, and would like to ask - with your future ship part of the mod will there be celestial navigation stuff maybe? And/or an in-game way to keep track of moon phases? I'm currently trying to keep track of everything that could possibly be relevent in a notebook page, but it's SO messy! (plus, living in jungle biomes as my preference makes certain things a bit tricky to keep track of, if I don't turn off the precipitation with commands)
Keeping track of moon phase for sure. I love the idea of celestial navigation - and not even necessarily for boat travel, but just travel in general. I've done some research into the skybox system; it looks like all worlds have the same constellations and constellation calander, so I'll just say: possibly. I'm not sure if navigation specifically would be the goal, but involving the stars is a definite maybe. That wouldn't be for a long while though. Still got the current patch and the half-finished V 0.3 stuff to release.
EDIT: Shifting from a maybe to a most probably. Did you know that Tyron's skybox is actually a SINGLE png that is just rotated around? I've figured out that creating my own constellations out the existing vanilla skybox, and then highlighting them in some way, is very achieveable. Having that be ritual-driven seems pretty natural.
That is so awesome! I'm currently using a mod called Ad Astra, which also has it's own constellations, and planets, and is based on a Ptolemaic epicycle system(?) - where the planets revolve around the earth - (I fell into a deeeeeeeeeep rabbit hole looking this stuff up!) and the author is reportedly thinking about navigation tools like sextants and stuff, and it all just made me think of the esoteric connection to the stars that we historically have... It might be worth keeping an eye on it's development, and/or a future collab/compat 🤩
Progress report;
So the wilderlands spires, when young at least, don't reach the mantle, so standing near one to lower stability before jumping in my hole was neccesary, but it worked! I'm now on to stage 2 of The Focus and it's Gift, and I'm having a little trouble. I have re-enabled rift spawning, and disabled the part of wilderlands that changes areas of stability, stood in one low stability area, and 2 different rifts until 0% stability and nothing has pinged. If this is one of those things that requires a certain lunar phase, fair enough but I'm playing 30 day months so it could be a while before I know if thats correct. Still loving the mod!
edit
I did it, I have unlocked the seeeeeecrets!
Now to set myself on fire a bunch of times coz I'm not sure if the clues previously told me when/where exactly to do the ritual... Damnable adhd, always ruining my eldritch exploits
Do you think this would be a proportionate undertaking for a person relegated to mostly solo play? Or is the like... size/spread of progression/clues and so on more optomized/designed around a multiplayer assumption?
I love the vibe of the mod as you've written the description, sounds super interesting!
It can totally be done solo.
Hey GremLena - first off, thanks so much! RA doesn't deserve that much praise yet, hehe it's still a baby and there is lots more to come. It sounds like you've found at least one of the ways clues for a certain ritual can be found! A bit of insight into what I suspect may be going on under the hood for your specific case:
Killing drifters is a valid approach to finding clues for the ritual you're working on. It should be pretty robust unless the mod has changed the dropTag attribute of that mob.
Let me take a look at Wilderlands for you; if I find that the author has messed with mob attributes, I'll reconsider how I handle that probe.
Now, not all of the clues for the ritual you're working on are tied to that probe! The fact you've found 2 clues exactly makes me suspect that Wilderlands HAS messed with mob attributes. There are two clues in that ritual tree that have an alternative probe. If you happened to find them while mining - then yeah, I need to adapt RA for Wilderlands. If you want a QUICK fix, temporarily disable Wilderlands. I'll see if I can adapt that clue probe to handle changes to dropTags - or perhaps expand the types of mobs the clue can drop from.
EDIT: Yes, I found multiple issues between the two mods! However, Wilderlands is not a code mod, and I've managed to work in the compats!
The issues are: Storm-spawned "drifters" don't actually have drifter codes. Vanilla drifter harvestable drops are restructured. Drop rates are an order of magnitude lower than vanilla, and it appears that the general drifter spawn chance crashed pretty hard. So, I've just accounted for these things; I've broadened my "drifter detection helper" to accept additional creature domains. I've also created an internal compat patch which directs RA to bump the default drop rate of clue blueprints when Wilderlands is detected in the mod list. These changes will be shipped with the next major update to RA, "Shipwright", which hopefully I can get published here in under a week.
You'll know the compat patch is active if you see: "Wilderlands Rustbound detected -- clue-economy compat applied: BlueprintDropChance 0.05 -> 1; DrifterLootExtraQualifyingDropCodes += 'metal-scraps'" in the server log. I'm not testing with this mod in my dev environment - I'll leave it up to you to let me know if things are working out.
Dude, I was equally in love and full of praise when I had my real-life actual baby! (he's 17 now, and my L&P has only grown... Except when he's hungry. yikes... I don't expect your mod to get hangry around me so fully expect to treat it like my [favourite] child) Ok, I hope I do the spoiler thing correctly:
Yes, the 2 clues I have are from mining - which reminds me, Wilderlands has also messed with stability areas and encourages you to play with rifts off, if that makes a difference to things... the one clue I have yet to fully understand may be suggesting to me to do some reading while under the influence of a low stability area, and during a storm...? but there aren't any areas on the map. The Wilderlands riftspire creates a small area of low stability, so I was planning on attempting to dig there and testing to see if that would work next storm and I'll let you know if (I'm correct &) it works.
There is also a tweaks add-on that changes the drops https://mods.vintagestory.at/wilderlandsrustbounddrops that I was also running, so I'll let you know if that has an impact on things. I'll also do a quick test with these disabled to see if a) it works, and b) it breaks anything, but I will re-enable them afterward to continue testing for compatibilty issues. I'm not very tech-minded, but I am a natural chaos engineer (a real thing in engineering, I'm not just being an edgelord) and have stress-tested officially for a different mod for a different game, so if there's a way to break something, I'll find it ;)
I'm so excited to see this baby grow up! I'll be a good Auntie and encourage and assist in its infancy and beyond in anyway I can (I think I've killed this metaphor now)
Insofar as "messing with stability" goes - the one ritual that exists in the released version has ties to the stability system in several ways.
It's ultimate reward ties in very nicely with things that effect stability mechanics. Assuming there is no headbutting of harmony patches anywhere.
Disabling Wilderlands relevant parts worked as expected, and didn't appear to break anything. Yay!
I've been absolutely LOVING this mod! It scratches all the itches an eldritch being like myself has been missing with all the other magic related mods for vs AND other-block-game. Thankyouthankyouthankyou!!!!! So, obviously, I absolutely do not want spoilers but if you could tell me please - have I borked my chances of getting my third clue by running Wilderlands Rustbound, which changes the drifters etc significantly, inclu. drops? I've been playing for nearly 2 in-game months of 30 days and I have acheived total understanding of one clue, and almost another, but I still only have the 2 clues so far...
BTW, if I have to choose I will drop Wilderlands like a bad habit, as Ritual Apotheosis is BY FAR the most exciting mod for ANY game that I've ever come across!! 💗🐙💞
Hello folks - has anyone actually completed Madness Concecration? I'd like to know whether or not the clues have been too esoteric, because I've been reviewing my work for the next series of clue journeys and I'm sort of worried everybody will just shrug and say "idk". Might I ask for any feedback on this?
Have not gotten far with my group yet, have found 3 clues off drifters but unsure of what the clue is supposed to do. As far as I can tell your are supposed to right click with the clue, correct? The players who found the clues have not seen anything when trying to interact with the clue and only see buttons that do nothing inside the grimoire. The grimoire also has the text: "no clue data found" in the window along with the buttons. Is there something we are missing?
Edit: think I see our problem. Think we need to do the Understanding step now haveing re-read this page again will let you know our progress as we go. might I offer that a addition be added to clue tooltips to show: holding the clue through daily life may bring new insights?
Ahzok, are you guys running the server on a Linux box? Two weeks ago I identified an issue with my deployment script, which causes Linux boxes to not pick up on the assets folder. When Shipwright releases I'll have fixed that problem, but for the quickie fix take a look at that comment below (from May 6th at 10:59 PM) if you try that and it STILL doesn't work, I'm happy to jump on a discord call with you or something to get things worked out.
EDIT: Actually, it sounds like you DO have the clue assets!
So - you actually DON'T have to hold onto the clues after finding them once. Each one should be recorded in the Grimoire as soon as they are picked up once; the Grimoire then on effectively serves as a copy of the clue, if you don't want to keep the scroll for trading to another player or something. If you've picked up a clue and you don't see them recorded in the Grimoire AT ALL, then it's likely you've found an incompatibility bug with another mod - other users have been able to advance clues forwards.
On the other hand, if you're saying that the buttons in the Grimoire don't do anything but the clue DOES appear - then what you found is a dumb typo/bug on my part with the "no clue data found", that shouldn't be player-facing haha. But it's not a bug - it just means that the clue is pushing you to DO something, and you haven't done it yet.
Seems we have found out more regarding our issue; seems to be that Linux Players cannot interact with the clue scrolls. They do receive the entry for the clue in the grimoire but, cannot see the clues information, there is only "No clue data found" in it's place.
Yeah, that's exactly the issue. Yeah, see my comments from May 6th! I believe I found that hacky fix but it requires a windows box to pull off --- lol again, the REAL fix will be in the next patch. I'm sorry it's taking so long. The Shipwright system has been an incredible effort to push across the finish line. Will need a little break after I release it lol. I'm like coding 6 hours a day + meetings for my job and then code + test for another 6 hours on the mod for like 3 weeks straight. I've decided to make some compromises and ship V0.2 with a few things I KNOW are broken and need work. But the baseline Shipwright system will be fully functional at least, and include all the QoL features people have asked about this past month.
Silver lining - so long as SOMEBODY can unravel the clues, the whole group can participate in the ritual. They just need to know what to do, how to do it, when to do it, and where! Somebody can serve as the wise spirit guide for this one while I'm trying to get V0.2 out
No worries on getting the update. Keep going at the pace you can, what goes on in your life matters more. Also thank you for your efforts so far, will try and do what we can regardless of the results and will continue playing with this mod we are all intrested in and hopeful for. Hope things go well for you in life and in development! :D
Very interesting mod and lots of flavor. However, I encountered and issue on my server where the "Veil between the worlds is thin here" (or similiar message) popped up in chat and a particle effect went off every few blocks that was causing some pretty serious frame lag. It could be some mod interaction that I'm not aware of as we have a lot of mods, but the interaction made this mod practically unplayable unfortunately.
This has been a frequent complaint. I'll be removing throttling that effect to only occur the first time a player enters a leyline (and never again) when I ship the boat update. Are there any other effects that seem to cause trouble?
Nah, that was really the only thing we encountered. Though, we didn't get a chance to really delve deep into your mod due to the frame lag. Though, with the throttling to reduce that, we'll be definitely adding this back in. :D
Was the trouble that somebody had settled near the leyline so they were CONSTANTLY getting the frame lag whenever they left home and came back? I could see that getting super annoying haha
That's exactly it. They had actually just moved from somewhere else, into a really nice area and didn't want to move again, lol.
You'll be happy to know that I've worked my magic and I think I've made significant progress on reducing the lag associated with leylines. Additionally, Zeus will be a little bit more forgiving and not smite the entire area as often.
In the future I'm going to try to be a bit quicker with QoL updates like this one; but since the upcoming major update is more like TWO major updates bundled together, I'm tightly focused on getting it over the finish line and shipping it as one grand package.
this mod is too wild for me to understand... that's why it's the most realistic esoteric simulator ever....
Hello, dev update.
I've gotten addicted to making massive customizable boats a full part of my modding repetoire, and I plan to integrate these with RA for now. What this means: big delay for next update but I'm aiming to not just get the 5 new ritual pathways I'm nearly done with in, but also this absolute BEHEMOTH addition of ships + their own ritual series for unlocking them. Hopefully nobody minds! I'm very, very invested in getting boats working now and what I'll ultimately have for you when they are ready is something special.
Hello all! It has come to my attention that there is a bug in my deployment script. The bug causes anybody running a server on a linux box to not be able to find clues! So if it's been a minute and nobody has found one on your Linux server, this is almost certainly the issue - the assets folder in my mod isn't being seen by the VS origin api.
I have since fixed my deployment script and this shouldn't be an issue going forwards. What you should be able to do to get this fixed RIGHT NOW, is just unzip the mod in a windows environment, then drag-and-drop the unzipped folder to the server's mod folder. If anyone tries that and still can't find clues, let me know.
Also - signs of life - I got distracted/burnt out with V 0.2 stuff (still debugging, sorry it's a complex process) and to distract myself I started building out full on custom chiselable and interactible ships in VS. It would be a little bit egregious to gate such a crazy series of new physics engines behind a ritual ... but I'm an asshole so it's a tempting proposition.
Im a bit curious- How is the grimoire stuff supposed to work? the keybind never seems to work for me and I havent been able to open it at all, so ive just been noting down when events and stuff happen with like a normal book and quill
Oh that is a serious issue. I've never had this issue in testing - do you have other mods that make use of the "G" key? By default, I know that key is the sitting key - which I thought was fine, since it makes sense that you'd sit down to examine a tome - but that key is rebindable in the settlings. I'm assuming you tried rebinding it already? If so, then something is up.
Yeah, I've tried rebinding it, but nothin :< We have a good few mods on the server, but nothing that would cause incompatability I dont think? Nothing else uses the G Key, and pretty much everything else on the server is just blocks and stuff, nothing that should interfere with the gui popping up i dont think
Oh, Viscarrion - has anyone found a clue yet? You don't have access to the Grimoire until you discover a trace of your first ritual. That is intended! Since there is just one ritual right now, it could be a while until somebody happens upon one
If somebody HAS found a clue, then I need to contact you over discord to get your mod list and game version so I can try to recreate this.
Iiii dont think so! There's been big green flashes and particle trails and stuff (theres a ley point like RIGHT by our base so its been easy to keep an eye on) but I dont think any of us have gotten notified about getting a clue yet
Okay, then all is well. It is very likely that a clue will surface sooner rather than later. If nobody ever finds one, your admin has access to config commands turn up the drop rates for any individual clue (and give you a hint on where to look to find them).
i'm guessing there is no integration/interplay with other mods such as rustbound, but is it otherwise compatible?
My mod should be compatible with mostly everything, as I was generally able to accomplish everything with harmony patches on RA-specific block entities. Please report any incompatibilities you find. I know for V0.2, I will need to find a way to make something included compatible with CO, but nothing breaks outright - it just won't work b/c CO makes some fundamental changes to vanilla values. But CO isn't even updated for 1.22 I think, so I'm not worried about it rn.
this is pretty cool, really interested in seeing what comes next. is there any way to hide the little grimoire button on the top right by the minimap though? with the keyboard shortcut I feel like I don't need it there all the time
I can look into that Geog. Not in V0.1 - I actually figured people would WANT it there. I can maybe make it configurable.
Hey so question, thinking of adding this to a roleplay server, but I was wondering if there was any way you could send me additional info for what the mod actually does, what rituals are there, what they give, is there anything in the mod that will hurt the stability for the server if we do try it and out and decide to remove it. Thank you so much for reading and I hope that if all goes well we can add it to the list
My discord username is godhand42 if you would rather reach out to me there
Man, just wanted to comment on how amazing all this sounds and wanted to let you know that there is real interest in your mod in the community! Keep it up!
Thank you Silent! Doing my best, V 0.2 turned out to be more work than expected. Debugging has been tough but a lot of new content is on the way.
Let me know if your still looking for a volunteer artist my discord is ikanax0 would be more than happy to help you out.
Reached out to you - I have somebody who has volunteered to do art for the currently implemented ritual, but as additional ones are added I'll certainly keep looking around for help!
You ever find something that perfectly fits a project you're working on? You just made that perfectly fitting puzzle piece 🔥🔥🔥🔥
I wonder how possible it would be to make the ritual methods be procedural. Randomised in some way. What's stopping someone that has already figured everything out from skipping the discovery and ruining it for people that haven't done it themselves yet? Some sort of game play loop that requires you to work for the ritual no matter how many times you've already done it before in previous worlds.
This is doable. The way the mod is built, it's possible to move around and/or randomize different hooks/probes for advancement and tie them to different clues and rituals.
This is something I plan to look into in like a post 1.0 situation. We need a lot more meat on the bones first.
Cuddly, I've managed to work in some seed-deterministic randomness to discovery arcs that are part of V0.2. I'll be attempting to work that in to all my discovery arcs and/or rituals moving forwards.
How's the performance impact?
If you are really interested I can share my big O analysis with you.
The good news is that the impact is overall quite low. Anything expensive is carefully gated around cheap things. The setups are esoteric enough that it'd take a lot of work to grief things as they stand.
I was just reading to see if it could be implemented into an already created world and saw that you were looking for an artist to replace ai gen images which i am more than willing to help you out with if you want it.
Yes, this mod should be safe with existing worlds, though as always, I'd suggest you make a backup first! It should also be okay if you end up uninstalling it from your world - at least in my testing, I didn't have any crashes - but you will see some ? blocks that don't do anything :P