Topic category: Troubleshooting, bugs, and solutions
I made a block that triggers a procedure procedure that uses "Remove block at [x] [y] [z]" to randomly remove blocks depending on their position
For example, if you build a 7x7x7 cube of stone with the custom block in the center and trigger the procedure, some of the stone blocks will be removed depending on how close they are to the custom block
The problem is that some of these stone blocks turn into ghost blocks which is not supposed to happen
If you try to collide with a ghost block, you glitch out and you have to keep walking until you stop touching the ghost block's hitbox
If you place planks in the ghost block's position, it appears as stone
It only seems to make a ghost block some of the time
this is still a problem
i have observed that:
- it makes a ghost block every time
- in most ways it acts as the block that it is supposed to be
- you can log out and log back in and the ghost blocks appear again
dude like can someone like fix this proglem it is still there
here is a simplified version of the issue: EVERY time you break any block using a procedure, it leaves behind this invisible hitbox, and when entities crash into this ghost hitbox they start glitching out. it happens every time you break a block.
i tihnk someone needs to fix this in the mcreator code because otherwise people cant even break a block using procedures without it glitching out.
happen to me too
This still happens as of today. Please devs, try and fix it. Keep the awesome work btw.
So, there's a solution for this. Force your block's tick updates/increase them and place the procedure on tick update trigger. Try removing, placing air or replacing by air. This works fine for plants, but haven't tried it for blocks in general yet, but I reckon it works.
The particular bug with ghost blocks being left behind with a block removing procedure is due to a client-server desynchronization with random chances being especially problematic. It can be fixed by putting the block removing parts of the procedure(or the entire procedure in most cases) in an if block that has the condition [not[is provided world client-side]]
Random display block tick is client-side and not meant to be used for anything but e.g sounds and particles
THANK YOU SO MUCH OMG i just wish you could have answered this a year ago 😭
and klemen no this is not just in client display random tick this happens in any procedure regardless of trigger
next time i need to remove a block, i'll try if (not (is provided world client-side) ) as well as try to put it on an update tick clock.
but this still needs to be fixed, but these are some good temporary solutions
is client so this can't be fixed, it is by design
If you believe you have found a bug, please report it on our github and attach minimal reproducible example workspace