Litematica (Forge)

Litematica (Forge)

336k Downloads

easyPlaceMode not working

Gursheys opened this issue · 16 comments

commented

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?

commented

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

commented

@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.

commented

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 :)

commented

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?

commented

@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.

commented

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.

commented

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.

commented

Easy mode does not work on 1.13.2 server for me:
зображення

I did silly workaround by rebinding pick key to some other one and using tinytask automation program to autopress it many times a second, so I can autopick block and just right click to place it.

commented

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.

commented

It is not just air blocks... i can't place block even near side of existent one.

commented

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.

commented

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.

commented

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.

commented

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!

commented

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?

commented

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).