easyPlaceMode not working
Gursheys opened this issue · 16 comments
So I've tried this easyPlaceMode and easyPlaceHoldEnabled as it is the alternative to autoprint, but it doesn't seem to be working. Whenever I have these both enabled along with the hotkey to enable them, right clicking doesn't place the block the schematic shows. Any fix?
Hey! Thank you so much for making and maintaining litematica. I have been having a small bug with easyplacemode. Im playing on a server in 1.16.5. And im guessing its when a chunk unloads and reloads because its either after I sign off and back on or leave the area and come back. But a couple blocks placed with easy place mode are always missing when I come back. Like I said not a huge deal but its interesting. I will keep a further eye out and it will be eaiser to tell when I get further along in the build but for a while I thought once the blocks survived the initial unload and reload they were okay but I just saw some that I placed a while ago had disappeared. I will keep closer tabs on this
@TheArtfulKludger If blocks disappear later than after one logout/re-log, then it must be a server-side issue of some kind. Blocks that disappear after the first re-log are normally just client-side ghost blocks, where the server for some reason did not receive or accept the block placement. What type of server are you playing on (vanilla, Fabric, Spigot/Paper)?
Normally when you right click on a block, the server should always at least sync you the block state of the clicked block and the one adjacent to it, which should fix such ghost blocks. I don't know if spigot variants have packet rate limits that just completely drop/ignore the entire packet if you send packets too fast? In such a case the client would not get notified that "hey these blocks are actually in this state (air)". If that's the case, then the only thing you can do from the client is to either send packets (click/place blocks) slower, or to send extra clicks on the placed blocks with an empty hand to try to get that block sync to happen. But that latter has other issues like having to make sure you don't actually click with an item that would do something (like place an extra block), or click on blocks that have a use action (such as opening an inventory), and also those clicks would then also eat away on any possible packet rate limits on the server.
The server is using paper. Thank you for your reply. That makes sense. I will try placing blocks slower. It will still be quicker then having to build normally :)
I have a similar issue, however, ghost blocks are placed instead of real ones. When I fix the ghost blocks by clicking on them they just disappear and I waste materials. I updated to the latest litematica at the same time that I switched to sodium and Iris from optifine. Could that possibly be the issue?
@BroskiJ Easy Place mode making ghost blocks in 1.18.2 is caused by a new check in vanilla, that basically breaks the "accurate placement protocol" that Litematica uses to communicate the requested block rotation to the server side. And with that new check the server will reject the block placement, and it will remain a client-side ghost block.
If you are in single player, then currently you can fix this by having Tweakeroo 0.13.1 installed, and the clientPlacementRotation
option enabled. I'll add the same fix to the next Litematica version, whenever I'll end up making one. If you are on a server with Carpet mod then the server would need a fixed CarpetExtra version. The official CarpetExtra does not have that fix yet, but I sent a PR for the fix, and a fixed build is linked from one of the issue reports. If you are on a non-Carpet server, then you need to use either Slabs Only
or None
for the easyPlaceProtocolVersion
option in the Generic configs.
Are you on a Spigot or similar modded server? They usually prevent trying to place blocks in mid-air, (clicking on air blocks) which is how the Easy Place mode works at least currently.
Well I did find out about the issue on a server running Paper but I tried in a singleplayer world and it still didn't work.
As I mentioned in the previous message, Spigot/Paper etc. servers usually don't allow clicking on air blocks, which is how the Easy Place mode works currently. I may change how the Easy Place mode works in the future, but it still won't be possible to easy place floating/non-connected blocks because of that limitation on those types of servers.
It is not just air blocks... i can't place block even near side of existent one.
I mean what the Easy Place mode does currently, is that it right clicks on the air block at the position where the block would be placed to. And Spigot servers won't allow doing that, they require you to be clicking on the side of an existing block. And while you have the Easy Place mode enabled, even if you click on the side of an existing block, it will still override and handle the clicking such that it actually sends a click packet for the adjacent air block instead of the block you are clicking on.
Can you add some sort of autopick block when you place them in normal way removing the need to constantly middle clicking or using hacks like autoclicker.
You can already configure the pick block keys to automatically pick block before the normal use action happens. The pickBlockLast
is specifically meant for that, however don't enable that in the current 1.13.2 version, as it will currently crash the game. It will be fixed in the next version. But even the pickBlockFirst
can be used for this. Basically just set that hotkey to right click (or whatever you use to place blocks), and then in the "Advanced Keybind Settings" widget next to the hotkey config button, set it to not cancel further processing. That way when you right click to place a block, it will also first do the pick block action.
pickBlockLast does not crash anymore in dev build and was very useful with automation program I've used to place a lot of blocks. Thanks!
I tried use easyPlace mode in a singelplayer world on a scematic (with and without easyPlaceHold) but it didn't work. I can just place blocks the normal way. Is there somthing obvius im missing, or is it incompatible with some other mods ( twekaroo? ). I've just created a placment of an scematic and activated the option in the config and rightclicked while standing near. Do I need to do something else?
Normally the way you use it, is tthat you enable the hold option, and the main easy place toggle option, and you set the easyPlaceActivation
hotkey to NONE
with the Allow Empty Keybind option enabled. Then you just need to right click and hold down the mouse button, and look at the schematic blocks to place them. Note that you will need to initially right click on a schematic block, otherwise it will not work (this has been fixed in the development code/in 1.12.2).