Requiem

Requiem

562k Downloads

Moving more than 128 blocks in a single tick as an undead creature forces you out of said creature.

James103 opened this issue ยท 4 comments

commented

Currently, if you use commands to teleport 128+ blocks up in the air, if you are possessing an undead creature (e.g. Zombie), you will be forced out of the creature and back to spirit mode. The reasoning is that the creature you are possessing has despawned.
I suggest that when you start possessing any creature, it gets {PersistenceRequired:1b} set so that the creature does not despawn.

To reproduce:

  1. Possess an undead creature (e.g. Zombie).
  2. Run tp @p ~ ~150 ~
  3. Immediate despawn, forced to spirit mode

Alternative steps to reproduce:

  1. Possess an undead creature.
  2. Run tp @p ~ ~50 ~
  3. 1 in 800 chance of immediate despawn and being forced back to spirit mode

Minecraft 1.16.4
Requiem 1.4.4
Pandemonium 1.4.4
Fabric API 0.29.3
Fabric loader 0.11.0

commented

Thanks for the details, it's appreciated. I assume this does not happen when you hold an item or wear armor ?

commented

Try the following:

  1. Possess an undead creature.
  2. Give yourself some armor and another item.
  3. Wear the armor and hold the item.
  4. Run /data get entity @e["requiem:possessor"=!,limit=1,sort=nearest] PersistenceRequired
  5. Example result: "Zombie has the following entity data: 0b"
  6. Run /tp @p ~ ~150 ~
  7. Result: Creature despawns, forcing you back into spirit mode.
commented

Huh, so it still despawns with armor ? Have you confirmed setting PersistenceRequired fixes it ?

commented
  1. Possess any creature for which PersistenceRequired is 0b.
  2. Run /data modify entity @e["requiem:possessor"=!,limit=1,sort=nearest] PersistenceRequired set value 1
  3. Run /tp @p ~ ~150 ~
  4. Result: The creature you are possessing does not despawn. You are still possessing the same creature.