Testing shows that since snapshot 25w04a roughly 10%, of snowballs and eggs (but no issue with arrows) fired from a dispenser, through a Nether Portal will just pass through the portal as if it were not there and stay in the dimension fired. It happens both directions between the Overworld and the Nether. The last official release, 1.21.4 does NOT have the problem, and the snapshots up to 25w03a do NOT either. The problem can NOT be reproduced by throwing projectiles, they MUST be fired from a dispenser. A button connected to a dispenser can reproduce the problem easily with just a handful of presses. I built a circuit that fired 144 items with a 30 gametick timer. I got the following results:
1.21.5 pre3
| number that skip portal out of 144 (9*16)
item type | test1 test2 test3
eggs | 12 12 16
snowballs | 18 17 18
arrows | 0 0 0
25w04a snapshot
| number that skip portal out of 144 (9*16)
item type | test1 test2
eggs | 18 10
snowballs | 11 15
arrows | 0 0
25w03a snapshot
| number that skip portal out of 144 (9*16)
item type | test1 test2
eggs | 0 0
snowballs | 0 0
arrows | 0 0
MC 1.21.4
| number that skip portal out of 144 (9*16)
item type | test1 test2
eggs | 0 0
snowballs | 0 0
arrows | 0 0
Using Tick freeze and step I was able to catch it when the egg passed through the portal without going through and the hit the target in the dimension fired. Pics are attached.
Detailed Test Info:
The testing results above fired items out of a dispenser from the Nether, through a Portal to the Overworld, (though the reverse testing produced the same results). All tests were run with 144(9x16) items and used a clock that consisted of a dispenser(2 redstone ticks), 2 observers(2 redstone ticks each), 2 repeaters set to 4 redstone ticks, and one repeater set to 1 redstone tick for a total of 15 redstone ticks or 30 game ticks.
A target triggering a full dropper into an empty chest to count hits is placed behind the Portal in both dimensions.
For each test, a target checks for the projectile on the back side of the portal in each dimension. So each missed hit in the overworld is recorded in the Nether, meaning the projectile passed straight through the Portal without going through, as if it wasn't there. Using tick step, the action can be stopped at 28 ticks with the egg half way from the dispenser to the portal, then stepped 2 ticks which should bring it to directly in front of the target in the overworld. But when the bug occurs, after the 2 tick step it will not be teleported to the overworld and instead can be observed directly on the other side of the portal, still in the Nether.
Environment
Windows 10 PC, Java edition.
All versions between 1.21.4 and 1.21.5-pre3 were tested.
No mods or resource packs were used.
Attachments
Comments 13
I tested the skeleton arrow issue with 1.21.4 was surprised that the problem is the same, some go through the portal to the Overworld and some ghost through the Portal and stay in the Nether. Since the problem is so similar, I expected it to NOT be in 1.21.4 as the other similar issue was not. It still really seems like a related bug to me so I tested some more. I went back and tried 1.20.1 and the issue was NOT there! I then tried 1.20.4, 1.20.6, 1.21, 1.21.1…also no problems. But 1.21.2 is the earliest release version that DOES show the arrow issue. So I tested the snapshots and prereleases and found that the very first version to show this arrow behavior is 24w33a, the first snapshot for 1.21.2. And it is present in all versions after. Is that an intended behavior change? For a large portion of skeleton arrows to randomly ghost through the portal and stay in dimension? It really doesn’t seem like it, but my original issue with eggs and snowballs is definitely new starting in snapshot 25w04a, while this similar one begins in 24w33a.
I see this on the release notes for 24w33a:
“After using a Nether Portal, projectiles such as Enderpearls and Arrows now only need to leave the portal for 2 ticks to use a portal again (down from previous 15 seconds)”
It must be related to this, but the skeleton shoots the arrow every 3 seconds or so which is 60 game ticks and the other issue with the eggs and snowballs is every 30 game ticks so I believe at the minimum, the arrow issue is related to this change.
For the eggs and snowballs, I changed the 30 game tick (1.5s) timer to a 3600 gametick (3 minute) counter. The results seem the same, many snowballs registered hits in the same dimension rather than go through the portal. The test just started and is slow so I’ll post the result when done, but it seems slowing it way down doesn’t help anything.
The test completed and for some reason, slowing it way down makes the problem twice as worse. I got a 20% rate of projectiles not going through the portal.
Code analysis: Projectiles dont update their old position (xOld
, yOld
, zOld
fields) correclty, thus the movement
that gets checked for collisions within the AbbpyEffectFromBlocks
call is 0 blocks long, thus the projectile doesnt search for collideable blocks (portals) in the block positions where it is supposed to.
Now I see some issues with arrow projectiles, but it is a little different. Although I was not able to get arrows to show the exact previously described buggy behavior, I now do see a very similar issue where arrows can “skip through” the portal and stay in dimension, but not from dispensers but when a skeleton shoots arrows through Nether Portals. I have a skeleton in a boat with an Iron Golem on the other side of the portal. It seems like more go through the Portal from the Nether to the Overworld but a lot “pass through” the Portal as if not there and stay in the Nether and hit my golem who eventually dies.