Skip to content

[Traveller's Backpack sleeping bag incompatibility] fix: keep sub-level spawn on cancelled spawn set - #1611

Open
UQuark wants to merge 1 commit into
ryanhcode:mainfrom
UQuark:fix/respawn-point-cancel
Open

UQuark wants to merge 1 commit into
ryanhcode:mainfrom
UQuark:fix/respawn-point-cancel

Conversation

@UQuark

@UQuark UQuark commented Oct 6, 2026 •

Copy link
Copy Markdown

Hi. I encountered an issue with Traveller's Backpack sleeping bag incompatibility.

I have my respawn point set on a sublevel. I have TB configured so that sleeping on a bag does not result in a respawn point change. Whenever I sleep on the bag, my home point resets and I respawn on the server's world spawn.

This is due to Sable being unaware of the fact that Traveller's Backpack cancels the method call further down the stack.

AI Disclosure

This patch was 100% generated by an LLM.
I am a programmer and Minecraft mod developer; I reviewed and tested this code - it fixed my issue without introducing any side effects. It seems sound and reasonable to me, but I am no Sable developer.

The following is the LLM's description of the patch:

setRespawnPosition unconditionally removed Sable's tracked sub-level respawn point at HEAD, before the method body (and NeoForge's PlayerSetSpawnEvent hook) ran. Mods that cancel a spawn set - e.g. Traveller's Backpack treating a sleeping bag as a temporary bed - then left the tracking UUID gone while SpawnX/Y/Z still held sub-level-local coords, so the next death respawned out of world / crashed (related to #1370).

Snapshot the respawn fields and tracked point at HEAD, and only drop the tracked point at RETURN when the call actually committed a non-sub-level spawn/reset. A no-op/cancelled call keeps the point; a freshly generated sub-level point is never clobbered.

Loader-agnostic: no loader-specific API used.

setRespawnPosition unconditionally removed Sable's tracked sub-level
respawn point at HEAD, before the method body (and NeoForge's
PlayerSetSpawnEvent hook) ran. Mods that cancel a spawn set - e.g.
Traveller's Backpack treating a sleeping bag as a temporary bed - then
left the tracking UUID gone while SpawnX/Y/Z still held sub-level-local
coords, so the next death respawned out of world / crashed (sable#1370).

Snapshot the respawn fields and tracked point at HEAD, and only drop the
tracked point at RETURN when the call actually committed a non-sub-level
spawn/reset. A no-op/cancelled call keeps the point; a freshly generated
sub-level point is never clobbered.

Loader-agnostic: no loader-specific API used.
@CLAassistant

CLAassistant commented Oct 6, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@UQuark UQuark changed the title ]fix: keep sub-level spawn on cancelled spawn set [Traveller's Backpack sleeping bag incompatibility] fix: keep sub-level spawn on cancelled spawn set Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants