Feature: Respawn overrides system for interior cells deemed problematic to die in - #875
Open
absol89 wants to merge 18 commits into
Open
Conversation
absol89
force-pushed
the
feat/respawn-interior-cell-pos-overrides-refactor
branch
from
June 23, 2026 14:04
246d68e to
4c0b311
Compare
Contributor
Author
|
@miredirex I verified that latest commits puts the config in the correct folder next to the server config, ready for review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Fixes #878
In regards to the bug, I fixed it with a 1.5 second fallback knockdown during the blackscreen. Works indoors+outdoors.
https://youtu.be/SoOoVqPw-bw
This feature adds a RespawnOverrides.cpp file where players can modify respawn locations through CellEditorId names.
This was later refactored to create an RespawnOverrides.ini file in the config folder, supports patching positions locally.
It runs once every player death, so performance is not more important than convenience of editing or avoiding formIDs.
It of course supports all vanilla locations (special edition+dlc) but can also be extended with modded/cc interiors safely.
Tested these in https://github.com/absol89/TiltedEvolutionScriptFixes/actions/runs/28106445654 before final correction.

Example: Overriding the ini values of Korvanjund02 to Korvanjund02=1201, -636, -400 results in a better spawn.
Safeguards: If the player spawns under the floor somehow by physics or misconfigured positions, they teleport to COC.
Comment: While respawning code was originally in PlayerCharacter.cpp i refactored it to make it less merge conflictable.
Steps: Note that the original coc command will put you at the OLD 1.8.0 spawn location and player.kill at the new spawn.
coc QASmoke
connect to localhost server
player.kill
coc HaltedStreamCamp01
player.kill
coc Korvanjund01
player.kill
coc Korvanjund02
player.kill
coc Saarthal02
player.kill
coc ShimmermistCave02
player.kill
coc StillbornCave01
player.kill
coc SwindlersDen01
player.kill
Before: player used to respawn in a broken position or too close to trappable locations or enemies or boss rooms/chests.
After: player respawns closer to the initial entrance of the cell, instead of the center of cell (which is used for non-list cells)
Example: Dying in Saarthal02 would originally place you at the boss where the Eye of Magnus is, skipping dungeon areas.

Before fix: Player respawns near Eye of Magnus

After fix: Player respawns at Saarthal02 entrance
