Meet Nemesis, Artemis, Heracles, Icarus, and Athena once per run. After True Ending, optionally guarantee Zagreus's Infernal Contract and reformed Chronos in the Erebus-Oceanus hub. Optional Chaos Trials and Dream Dives support.
In-game settings UI: ImGui panel and menu bar entry (Fated Encounters) for all options; stays available when Mod enabled is off; syncs with r2modman Config (same .cfg file).
Chaos Trials support:Apply ally guarantees in Chaos Trials (off by default) guarantees each enabled ally once in that trial's region—curated bounties and randomized Underworld/Surface trials at Difficulty 1 and 2—bypassing base-game bounty and depth gates when forcing encounters.
Dream Dives support:Apply ally guarantees in Dream Dives (off by default) for Hypnos Dream Dives. Random region per ally at run start is ignored—the route picks four regions as you progress, so each enabled ally is guaranteed in the first eligible region you actually visit on that path.
Dream Dive Infernal Contract:Guarantee Infernal Contract in Dream Dives (off by default) when Guarantee Zagreus Infernal Contract is on—separate from ally guarantees.
Debug log: run-start summary of pending guarantees; in Dream Dives, a line per region entered (visited regions, remaining pool, eligible pending allies); console lines when guarantees are skipped or a pending ally could not be forced—useful when reporting bugs.
Changed
Config reorganized into Allies, After True Ending, and Chaos Trials & Dream Dives sections (schema version 6; existing .cfg files migrate automatically, including legacy flat keys).
Reformed Chronos and Infernal Contract guarantees no longer run on Chaos Trials or Dream Dives (except the optional Dream Dive contract toggle).
README:Settings reference maps in-game section names to config keys; adds Examples, a settings panel screenshot, sync notes (Refresh All Edits in r2modman after in-game changes), and when each option takes effect in gameplay.
Contributing guide: New Documentation section with module map and Lua/EmmyLua conventions for pull requests.
GitHub issue and PR templates mention the in-game Fated Encounters settings window, Chaos Trials, and Dream Dives.
Thunderstore description, README, and r2modman config text use plain in-game language (regions, allies, True Ending) instead of internal terms like field NPC, biome, or clearing.
Chronos is documented as the reformed Chronos conversation in the hub between Erebus and Oceanus after True Ending—not the Asphodel send event.
GitHub issue and PR templates use the same plain-language terms.
config_migrate.lua to upgrade existing user configs when the config schema version changes.
Contributing guide, README contributing section, and GitHub issue/PR templates.
Changed
Thunderstore package name is now FatedEncounters (plugin folder MarcoAntolini-FatedEncounters); docs and templates updated from the old hyphenated slug.
Internal config version is no longer described in r2modman; it is still updated automatically for migrations.
Removed guaranteeFieldNPCs master switch; fieldNPCs.* toggles are now the only control for field NPC guarantees.
Config schema version bumped to 4; migrating from v3 disables all fieldNPCs.* if guaranteeFieldNPCs was false (preserves Chronos-only setups).
README configuration table, examples, and troubleshooting for correct plugin folder naming.
Fixed
StartNewRun wrapper now returns the run table from vanilla code. Without this, starting a run from the hub crashed with attempt to index local 'currentRun' (a nil value) in DeathLoopLogic.lua.