mojira.dev
MC-260818

Sculk sensors do not detect certain game events at a distance of seven blocks away

The bug

Certain game events are not detected by a sculk sensor if it is sufficiently far away. For example, if a falling block lands within a certain range of a sculk sensor, but breaking and placing blocks, for example, are still detected.

How to reproduce

  1. Create a setup that allows for a falling block to be placed such that the sculk sensor does not detect the placement, but it does detect breaking/placing blocks that happen where the falling block would land

  2. Place your block so that it falls within range of the sculk sensor

  3. After it hits the floor, break the falling block

Expected results

Vibrations would be created when it hits the ground.

Actual results

No vibration is created. When we break the block, vibrations are created, indicating that the block is correctly within range.

Affected events

  1. Placing and breaking armor stands

  2. Spawning a mob using a spawn egg

  3. Falling block being placed

Linked issues

Attachments

Comments 3

They do detect falling blocks; it seems that the issue here is that the detection range is inconsistent. For example, placing and destroying armor stands at this distance is not detected either, but breaking and placing blocks is.

This bug is due to the fact that entities have a discrepancy between the original location of the vibration (centred on the bottom of their hitbox) and the floored value that the sculk actually uses for calculations (the centre of the block that the entity is in), unlike blocks which both create a vibration at the centre of the air block they replace, and so flooring that doesn't change anything.

Now within the range of the sculk sensor, the original location position is floored so all vibrations are rounded to the centre of the block they occured in meaning that there is no difference in behaviour between entities and blocks, but if an entity had its original location positioned just outside of the range, e.g. at the bottom of a block 8 blocks away, even though its floored position would've been rounded 'up' into the range of the sculk sensor, this never occurs as the sculk sensor ignores it.

I discuss this in more detail and with diagrams in this updated bug report here: MC-261657

This seems fixed in 23w31a. Is anyone still able to reproduce this?

muzikbike

(Unassigned)

Confirmed

Gameplay

Low

Game Events

sculk_sensor

1.19.4 Pre-release 4, 23w14a, 1.20 Pre-release 4

Retrieved