Litematica

Litematica is a successor to Schematica and allows for many configs and building potential/importing and exporting schematics.

Curseforge Description
Litematica is a new schematic mod written from scratch, and it is primarily targeting light mod loaders like LiteLoader on 1.12.x, Rift on 1.13.x and Fabric on 1.14+. There is also a Forge version for 1.12.2, but not yet for 1.14.4+ (but Forge ports for 1.14.4+ are also planned, see below).

It has all the features of the old Schematica mod except for the printer (which is also planned), plus a bunch more.

The main feature of a schematic mod is to display a "hologram" version of a structure, which shows you exactly how to build the structure and where to place the blocks. It also includes a (configurable) overlay to highlight missing, extra or wrongly placed blocks.

Litematica also includes a nice Material List, including a Material List HUD, to help you collect the materials needed for the build.

There is also a Schematic Verifier feature, including an overlay, which you can use to scan the entire schematic area and look for any mistakes. This can be extremely useful especially with technical/redstone builds, where tiny mistakes can break everything.

There are also several Creative-mode-only helper features, such as Fill, Replace, Delete and also a Paste mode for "pasting" schematics into the world (immediate/direct in single player, using /setblock commands in multiplayer).

NOTE: Litematica also requires the MaLiLib library mod:

https://www.curseforge.com/minecraft/mc-mods/malilib

About Forge ports for 1.14.4+

Forge versions for 1.14.4 and later (possibly only for 1.16.5+) are planned.

Still no ETA about the "official port", which will only be done from the still being worked on new development code. But ZacSharp already ported the current 1.16.4 Fabric version to 1.16.5 Forge. I have one build of that available here: https://masa.dy.fi/tmp/minecraft/mods/misc_test_versions/unsupported_temporary_forge_1.16.5/

Some more info and discussion about the Forge port/builds is here: https://github.com/maruohon/litematica/issues/234

The default hotkey to open the in-game config GUI is M + C. If you are for example on AZERTY keyboard layout instead, then the keys are different, and M + C becomes, + C instead, etc.

If you have Optifine installed, then there are some options that you most likely will need to disable in Optifine, or otherwise it will break the schematic rendering:
-If you get glitchy weird triangles, then in 1.16+ first try updating to the latest Litematica version. If that doesn't work, then set shaders to OFF (not Internal) and restart the game.

-Render Regions probably needs to be disabled to prevent weird rendering issues (the schematic (partially?) rendering in weird places)

-Fast Render might also need to be disabled if there are still some weird HUD/GUI rendering issues

Snapshot versions and latest development builds
There are (at least at times) versions of my mods available for the latest Minecraft snapshots here: https://masa.dy.fi/mcmods/client_mods/

That page also often includes newer development builds than what is available here on CurseForge.

If you encounter bugs, then try to update all the mods (from the ones that you use) from that page to see if the issue has been fixed already.

(There are at times changes in malilib or the dependent mods that require both malilib and the mods to be updated at the same time!)

FAQ - please read first if you have questions
Q: The main menu and the config menu don't open with M and M + C

A: 1.) Check that the mod is installed and working: check if you see the orange Litematica text on the F3 screen.

2.) If you are on a non-QWERTY keyboard layout, then the default hotkeys are different. For example on AZERTY the M key is, (comma) instead, so the config menu hotkey for example is , + C. I'm looking for a solution to this issue.

Q: How do I rotate a schematic (placement)?

A: In the Placement configuration GUI. You can open it (for the currently selected Placement) with a hotkey, or you can go via the Main menu -> Schematic Placements -> Configure.

Q: How do I only render one layer at a time

A: You can control the rendered layers on the Render Layers tab inside the in-game config menu (via the Main menu -> Configuration Menu, or the default hotkey M + C

Q: How do I change blocks in the schematic? Is there a /schematicaReplace command?

A: There is no command, but there is the Schematic Rebuild mode (should be called Schematic Edit mode...). See the wiki here for more details: https://github.com/maruohon/litematica/wiki/schematic_editing

Q: Is there a printer like in Schematica?

A: 1.) There is no printer for survival yet. It is on my TODO-list and will be added at some point.

2.) For Creative mode there is the Paste Schematic in world tool mode, which places the entire schematic at once in a single player world, or using setblock commands in multiplayer.   Q: I get an error "Failed to load schematic" when trying to load a '*.schematic' file in 1.13+.

A: 1.) The 1.13+ versions of Litematica can't currently load the new Sponge schematic format yet. That format is used for example by World Edit in 1.13+. Although those schematics should preferably be named with the *.schem file name extension, many web sites use the *.schematic extension, which makes them hard to tell apart from the old, completely different MCEdit/Schematica format, which Litematica can already load. Support for the Sponge format already exists in the main development version in 1.12.2, and it will come to the other versions with the next bigger update.

2.) Currently the way to load Sponge schematics with Litematica is:       Create a temporary (flat) world.

Place the schematic there using World Edit (quick guide: https://old.reddit.com/r/Minecraft/comments/kt2znv/convert_schem_file_to_litematic_file/gilwla8/)

Make a new Litematica schematic from the placed structure from that world

The mod is still under development, and some of the planned "extra" features (for example some of the "tool modes") haven't yet been implemented fully or at all.

Currently it has everything else Schematica had, except the "full/automatic" printer hasn't been implemented yet, but it's on my TODO-list.

Here is a Reddit post that explains the very basics of the mod:
https://old.reddit.com/r/Minecraft/comments/cqdmkk/anyone_can_help_me_how_do_i_make_schematics_with/exeug78/

Here are some tutorial videos for the basics of the mod. A more detailed, "official" tutorial video is planned after I finish some changes and still missing features I'm still working on for the mod.

A short, quick tutorial of the basics of the mod:

In-depth Tutorial of Litematica

Another, a bit longer tutorial that also covers some other things like the Rebuild mode:

1.15.2 Litematica Tutorial

A couple of more tutorials:

How to use Litematica 1.14.4

How to use Litematica and MiniHUD Fabric Tutorial

If you have questions or need help with something, the best/fastest way to get answers is on my Discord server.

Discord Server

GitHub Description
Litematica is a client-side schematic mod for Minecraft, with also lots of extra functionality especially for creative mode (such as schematic pasting, area cloning, moving, filling, deletion).

It's primarily developed on MC 1.12.2 for LiteLoader. It has also been ported to Rift on MC 1.13.2, and for Fabric on MC 1.14 and later. There are also Forge versions for 1.12.2, and Forge ports for 1.14.4+ are also planned, but Forge will need to start shipping the Mixin library before those can happen.

Litematica was started as an alternative for Schematica, for players who don't want to have Forge installed on their client, and that's why it was developed for Liteloader.

For compiled builds (= downloads), see:

CurseForge: http://minecraft.curseforge.com/projects/litematica

For more up-to-date development builds: https://masa.dy.fi/mcmods/client_mods/

Note: Litematica also requires the malilib library mod! But on the other hand Fabric API is not needed.

Compilng
Clone the repository

Open a command prompt/terminal to the repository directory

On 1.12.x you will first need to run gradlew setupDecompWorkspace (unless you have already done it once for another project on the same 1.12.x MC version and mappings and the same mod loader, Forge or LiteLoader)

Run gradlew build to build the mod

The built jar file will be inside build/libs/

YourKit
We appreciate YourKit for providing the project developers licenses of its profiler to help us improve performance!

YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler and YourKit YouMonitor, tools for profiling Java and .NET applications.

GitHub Wiki FAQ
This is the Litematica wiki, which contains some documentation and tips & tricks on how to use the mod.

Frequently Asked Questions / commonly used features:

Q: How do I access anything from the mod?

A: The main menu of the mod opens by default with the M key, and the config menu with M + C. Note that if you use a non-QWERTY layout, then these keys can be different, such as M becoming, on AZERTY.

Q: I don't see any keybinds in the vanilla Controls menu?

A: Litematica doesn't use the vanilla keybind system. It uses the custom keybind system from the malilib library mod, which supports multi-key keybinds and a lot more features. The hotkeys are thus only configurable via Litematica's or malilib's own config menus. Most commonly you would get to the Litematica hotkey menu with M + C -> Hotkeys. If you are using the Fabric mod loader, then you can also access these per-mod config menus via the separate Mod Menu mod's mod list, using the gear button for each mod.

Q: How do I load a schematic?

A: Put the schematic file to the .minecraft/schematics/ directory, and then load it via the Load Schematics menu (M-> Load Schematics).

Q: How do I create a schematic? A: You first create an area selection, and then you save that as a schematic. The Area Selections page describes in more detail how the area selection things work in the mod. If the selected area is large (goes outside of the loaded chunks around your player), then you will need to move around to load all the chunks once. You will get a Missing Chunks message at the bottom right telling you how many chunks are still missing and thus which ones you still need to move in range of.

Q: How do I move or rotate a loaded schematic?

A: This is done via the placement configuration menu. You can get to it via M -> Schematic Placements -> Configure. You can also access it by default using the hotkey Numpad Minus, which opens the GUI for the currently selected placement, if any. To change which placement is selected, click on one in the Schematic Placements list/menu, so that it has the white outline indicating that it's selected. You can also use the "tool item" and (while being in the Schematic Placement tool mode) middle click while looking at the placement in-world. You can also click with the tool to move the placement origin, or use Alt + mouse scroll to nudge the placement in the direction you are looking.

Q: How do I show for example just one layer of blocks?

A: Use the Render Layers menu or the related hotkeys to switch the mode and select the layer to show

Q: How to change blocks in the schematic?

A: Use the Edit Schematic (formerly known as Schematic Rebuild) mode

Schematic Editing
Litematica's Edit Schematic mode for replacing, adding or removing schematic blocks

Note: The Edit Schematic mode was previously (and still is in some versions of the mod, for 1.17.0 or older) called Schematic Rebuild mode.

To start, change to the Edit Schematic mode (either using the button in the bottom left of the Litematica main menu M, or Ctrl + scrolling while holding the "tool item").

When you are finished, change out of the Edit Schematic mode, as otherwise if you try to place or break blocks intersecting the schematic you will just keep editing the schematic instead!

Change all identical blocks of one type to another type
1.Set a hotkey for schematicRebuildReplaceAll.

2.Hold that hotkey and right click on one of the blocks you want to replace, while holding the new block in your hand.

3.Also see Getting the correct block state below for how to use blocks that you can't directly place in the correct state.

Remove everything except one block from the schematic
1.Set a hotkey for schematicRebuildBreakAllExcept.

2.Hold that hotkey and punch one of the blocks you want to keep in the schematic. All other blocks will get removed.

Add, remove or change individual blocks or blocks in lines/rows
1.To remove blocks, just punch them out like in creative mode.

2.To add blocks, just place them against other existing schematic blocks.

3.To change blocks in continuous lines/rows, set a hotkey for schematicRebuildReplaceDirection, and then hold that key while right clicking on the old block either holding the new block or with an empty main hand (see Getting the correct block state).

4.To remove blocks in continuous lines/rows, set a hotkey for schematicRebuildBreakPlaceDirection, and then hold that key while punching or placing the block.

Remove all identical blocks from the schematic
1.Set a hotkey for schematicRebuildBreakPlaceAll.

2.Hold that hotkey while punching out one of the blocks in the schematic you want to remove all of.

Fill all air spaces in the schematic with a given block
1.Set a hotkey for schematicRebuildBreakPlaceAll.

2.Hold the above hotkey and place the new block against an existing block in the schematic.

About the schematicRebuild*Direction hotkeys
The 5-way overlay is like an arrow indicating in which direction the blocks in the schematic will get affected. The center region "points in" perpendicular to the surface. The operations only happen along that line of blocks for as long as there are identical block states in the schematic.

Getting the correct block state
-When you are replacing blocks by right clicking with the new block/item, the block state that will be used depends on where you click in the schematic.

-The new block will be selected using the same rules as how blocks are placed in vanilla.

-For example to get a bottom slab, you must click on the bottom half of the side of a block, or on the top surface of a block. To get a top slab or stair, you must click on the top half of the side of the block, or on the bottom surface of the block.

-The confusing part may be that instead of placing the block next to what you are clicking in the schematic, the block will replace that block (and all other identical blocks if you are using the schematicRebuildReplaceAll hotkey).

-It's not possible to get the correct block state of all blocks like this, if the block you get from placing it normally is not the correct state. For example you can't get opened trap doors or any waterlogged blocks or fences with the correct connections etc. like this.

-You can use any block state such as waterlogged blocks or open trapdoors by "preparing it in the world" first:

--First normally place the block in the world in the correct state (with any surrounding blocks etc. if it connects to neighbor blocks).

--Then Alt + middle click (using the default hotkey assignments) while looking at that block to "store" that block state in the Edit Schematic mode.

--You can then use an empty main hand in any of the edit operations to use that stored block state

--The name of the stored block is shown on the tool HUD in the bottom left when you have an empty main hand and a block stored.

Saving the edited schematic
-When you do any of these schematic edit operations, they only affect the copy of the schematic that is currently loaded to memory.

-The latest versions of the mod on 1.16.5+ (and in 1.12.2) have an indicator in the Loaded Schematics menu for edited, unsaved schematics.

-If you want to keep the changes, save the schematic again from the Loaded Schematics list, using the Save to file button.

-Don't override the original file when saving! Some (older) versions of the mod have a bug in the schematic block container handling that can corrupt the edited schematic in certain cases when it's reloaded from file (it depends on the number of unique block states in a given sub-region in the schematic before and after the edit operation).

Other tips
-You can use the Render Layers to limit the range in which the blocks get added/removed/replaced. Only currently visible blocks are affected.

-If you make a mistake or want to otherwise revert all the changes to the edited schematic, click the Reload button in the Loaded Schematics list.

-The replacement currently always uses the exact full block state. There will be a "fuzzy replace" option later that allows you to replace a block type in any state with an (equivalent?) other block while keeping the properties (like stair orientations and connections when changing the stair type).

Quickly paste the entire schematic to the world
Schematic pasting allows you to quickly place the entire schematic (or a part of it, still to-be-implemented/improved) to the world. Pasting is a creative-only operation, and it does not consume any items, or have any kind of limitations on what blocks and in what states it can place. It will (at least try to) place everything that is in the original schematic, in the exact same way they are saved in the schematic. In single player it should be able to usually do exactly that - place it in the exactly same state.

Quick Rundown
So to summarize the requirements, to paste a schematic:

-Switch to Creative mode

-Switch to the Paste schematic in world "tool mode"

--Either use the button in the bottom left of the Litematica main menu, or hold Ctrl and scroll while holding the enabled tool item

-You must be able to see the tool HUD on the bottom left, otherwise either the tool functionality or the main rendering is disabled, or you are holding the wrong item

-Make sure the correct placement is selected (light cyan placement outline color in-world and the name is shown on the tool HUD)

-Use the executeOperation hotkey to start the paste operation

Detailed Requirements
For the Paste feature to work, you need the following things:

-You need to be in Creative mode to be able to access and use the Paste mode.

--Even if you change to the Paste mode while in creative, and then switch to survival, it won't allow you to execute while not in creative mode.

-By default you need to be holding the enabled "tool item" when you use the executeOperation hotkey

--The tool item functionality must be enabled (M + T to toggle it, or Generic -> toolItemEnabled).

--You also need to have the main rendering option enabled (M + R or Visuals -> enableRendering).

--Check that you are holding the correct item configured as the tool item, see Generic -> toolItem

--Basically by default you need to be able to see the tool HUD on the bottom left for the executeOperation hotkey to work, as an indicator/safety feature.

--There is a config option in Generic -> executeRequireHoldingTool to disable the requirement to be holding the tool item

-You need to have the correct schematic placement selected.

--The selected placement has the light cyan outline color in-world, and the selected placement's name is shown on the tool HUD on the bottom left corner, while you are in the Paste mode.

--You can select the placement by looking at it in-world and (with the default hotkeys) middle clicking while holding the tool item. (Note that you don't need to be next to it, the targeting range is something around 200 blocks.)

--Alternatively you can click on the placement in the Schematic Placements menu, so that it has the white outline. (A white thick outline in any of the menu lists indicates the currently selected entry. If you click on the selected entry again, it will be unselected.)

-If you are on a server, then you need to have the permission to run the /setblock and the /fill commands, or alternatively (currently only in the 1.18.x+ versions) you need to have permission for the World Edit //pos1, //pos2 and //set commands.

--You don't need to be OP if you have the permission to run the commands otherwise.

--The actual used commands are configurable in the Generic config category. The command name can be changed, but (at least currently) the replacement must have the same arguments in the same order as the equivalent vanilla command.

Paste Options
There are a number of config options related to the paste feature. The most common and probably the most important option is the block replace behavior option, most of the other options are only relevant when pasting on a server.

Paste block replace behaviour
The block replace behavior option controls what blocks, if any, will get replaced when pasting the schematic blocks to the world. You can cycle the value by default with Ctrl + M, or change it in Generic -> pasteReplaceBehavior. The values and their effects are:

-None - don't replace anything. Blocks will only get placed where there is currently air in the world.

-With non-air - Only non-air blocks from the schematic will replace existing blocks in the world. In other words any air from the schematic is not placed and thus will not carve an empty room or air bubble underground or under water.

-All - Everything from the schematic will get placed (if the existing block in the world is different).

Other common options
Note that many of these options for now are only in the 1.18.1+ versions of the mod.

-commandUseWorldEdit - instead of using the vanilla (or equivalent) /setblock and /fill commands, use the World Edit //pos1, //pos2 and //set commands.

--This also affects the Fill, Replace and Delete tool modes.

--This can be useful if you don't have the permission for the vanilla commands, but you do have the permission for the World Edit commands.

--In fact it's recommended to not use this if you have the permission for the vanilla commands, as the World Edit commands have more overhead (= the paste will be slower due to the command rate limit) compared to the vanilla commands (3 commands for "one operation" instead of just 1 command), and also the block replace behavior option will not work with these.

-pasteIgnoreEntities - don't paste/summon any entities from the schematic

-pasteIgnoreInventories - don't restore any inventory contents from the schematic (this really means don't restore NBT data)

-pasteNbtRestoreBehavior - allows restoring block entity NBT data when pasting on a server. See the Restoring block entity NBT data on a server section

-pasteToMcFunctionFiles - instead of actually placing the blocks, output all the commands to place the schematic into *.mcfunction files

-pasteUseFillCommand - when pasting on a server, also use /fill commands to paste continuous regions of a single block state, instead of just individual /setblock commands for every block

Singleplayer vs. Multiplayer
There is a difference in what data is available for saving a schematic, and what data the mod is able to restore while pasting, based on whether you are in single player vs. when on a server.

Saving a schematic
A base rule of thumb is that you want to turn off any redstone contraptions before you save a schematic. Otherwise you will get weird and annoying stuff like moving piston heads or powered observers in the schematic. You would also get (or need) the scheduled block ticks for such running redstone components to be able to paste back a working (= not broken/de-synced/stuck) contraption.

Singleplayer
Schematics saved in single player will contain all the NBT data of block entities and entities, and the scheduled block ticks (for example for some redstone components). In single player the mod saves the schematic directly from the integrated server's server-side world, so it has access to all the data.

Multiplayer
The vanilla server does not send the full NBT data of block entities and entities to the clients, as the client normally doesn't need it, and it would waste a lot of network bandwidth and also server resources to keep syncing all the data all the time for no benefit. The server only sends data that the client actually needs for something, which usually means it affects the rendering of blocks or entities in some way. This is why in schematics saved from a server for example all inventories will be empty, and entities would also not contain their inventories or villager trades etc. Inventory contents are only synced to the client when you open the inventory GUI of the target object (block or entity), and the vanilla client also doesn't store those, it discards them as soon as you close the GUI again. Similarly the scheduled block ticks are never synced to the client, as the client has no need for those whatsoever.

So basically by default (in the case of "any random server") you won't be able to save a schematic with any NBT data such as inventory contents in tact. If you need all the NBT data of block entities (such as inventories) or entities to be saved in the schematic, you would need to save the schematic from a single player world.

There is however a mod combination which also allows you to save schematics with the block inventories in tact on servers. But this will need a mod to be present on the server side, so the default case is "no NBT when saving in multiplayer". If the server has the PCA extension mod for the Fabric Carpet mod, and the client has the MasaGadget mod, and the pcaSyncProtocol Carpet rule is enabled on the server, then you can also save schematics on that server while getting the inventory contents in the schematic. I haven't yet tested this myself, so I don't know if it also works for entities, and if it also fetches the scheduled block ticks (I doubt it?).

-https://github.com/plusls/MasaGadget/releases

-https://github.com/plusls/plusls-carpet-addition/releases

The Servux mod is also meant to get support both for saving and pasting schematics on servers while keeping all the data. No timeline or ETA yet as to when that will happen though.

Pasting
The paste operation works very differently in single player vs. when on a server.

Singleplayer
In single player the paste operation is done directly in the integrated server's server-side world. Because of this, the mod is able to directly place the schematic in the exact same original state that it is in the schematic. This means that all the block entity NBT data and entity NBT data is also restored, as well as any scheduled block ticks stored in the schematic. The mod is also able to prevent block updates while placing the blocks, so that for example redstone contraptions won't get activated or floating blocks or fluids won't get updated. Obviously the mod is only able to restore any data that is saved in the schematic, so it also matters where the schematic was saved from (see Saving a schematic above).

Pasting on Servers
When you paste a schematic on a server, then by default the mod only has two options for how to do it: place the blocks as the player, or use commands. Litematica only uses commands for this, as they have several advantages over trying to place stuff as a player:

You can place almost any block state directly via a /setblock command (some blocks may update their state when being added to the world, such that the requested state gets changed to something else that is "valid")

-There is no range limitation for the player to have to be closer than 6 or 8 blocks

-The player looking direction does not matter

-There are no limitations like "block X needs block Y below to be able to be placed"

-You can also place blocks that don't have an item, such as nether portal blocks or end portal blocks

Litematica originally only used individual /setblock commands for pasting, which means that you need one command for each block being placed. The pasting was improved (starting in the 0.10.0 version for MC 1.18.1) to have an option (Generic -> pasteUseFillCommand, enabled by default) to also split the schematic into larger regions that will get placed via /fill commands, to often greatly reduce the number of commands required to paste the schematic.

Since the server usually doesn't like too many commands being sent too quickly, there are two config options to control how quickly Litematica send the commands to the server, both in the Generic config category:

-commandLimitPerTick (previously called pasteCommandLimit) - how many commands to send per each execution of the paste task

--Note: not related to the executeOperation hotkey usage or name - the entire schematic will get pasted every time you use the hotkey

-commandTaskInterval (previously called pasteCommandInterval) - the interval (in game ticks) between executing the paste task (basically to be able to spread out the command bursts and/or the server load)

If you need to prevent block updates while pasting (for example to not trigger redstone contraptions), then there would need to be some mod on the server that can do that. Often that is the Carpet mod, which has the fillUpdates Carpet rule to prevent block updates from /fill, /clone and /setblock commands. The command is /carpet fillUpdates false.

The World Edit paste mode can also prevent block updates, but it has more command overhead (= is slower) and it doesn't support the pasteReplaceBehavior option.

Restoring block entity NBT data on a server
The main issue with restoring NBT data on servers is that the vanilla chat messages are limited to 256 characters. So it's often not possible to send the full NBT data via a single /setblock or /summon command. Some versions of the mod (currently 1.16.5+) have an option to restore block entity NBT data when pasting via the command-based paste method that is used on servers. There is an option in Generic -> pasteNbtRestoreBehavior to control how this is done, but the only option that really makes sense and works correctly is Place & Data Modify.

What this option does, is basically:

-First place the target block with a /setblock command like normally

-Then do a creative Ctrl + pick block equivalent to get the full NBT data of the block to the server side via the item in the creative pick block packet

-Find an empty position near the player, and place that "Ctrl + pick blocked" block there

-Then send a /data modify command to the server to copy the NBT data from that "manually placed" block to the actual /setblock'd target block

-Use a /setblock ... air command to remove that temporary, "manually placed" block

Due to these several additional operations and commands per each block with a block entity, this adds significant overhead to the paste operation. It is therefore recommended to only enable this restore option while you need to paste something that actually really needs to have the full NBT data restored, and then disable the option again afterwards.

Also note that the NBT restore will not happen for any fill regions, if you use the pasteUseFillCommand option. Which basically means that if you have any two or more adjacent identical block states that are supposed to have their data restored, then you should not paste those blocks using the fill option.

It might be a good idea to separately paste the "inventory blocks" from the rest of the schematic (at least if you have a large schematic with lots of block entities, for small-ish schematics it doesn't really matter either way, for small schematics you can just paste it all with NBT restore enabled and fill regions disabled).

First remove all the "inventory blocks" you want to restore the data for from the schematic using the Edit Schematic mode (schematicEditBreakPlaceAll + punch the blocks)

Then do the "initial paste" operation ie paste all the rest of the blocks

Then reload the schematic from file (Loaded Schematics -> Reload) to restore its initial state

Then using the option pasteReplaceBehavior = None and pasteUseFillCommand disabled, paste the schematic a second time with the pasteNbtRestoreBehavior option set to Place & Data Modify

This way only the blocks that you actually need the data restored for will use the slower and "packet spammier" paste behavior.

About the paste operation
In single player the paste operation happens in per-chunk pieces over multiple game ticks in "later" versions of the mod. In "older" versions the paste operation happened all at once, which with larger schematics caused a massive lag spike due to light updates, and also might have required a larger amount of memory allocated for the game. (That's only really an issue with schematics that are larger than something like 100x100 blocks or so with "significant coverage".)

("Later" versions here means Litematica version 1.16.5-0.0.0-dev.20210917.192300 or later for MC 1.16.5, and 0.9.0 or later for MC 1.17+, and also the 1.12.2 LiteLoader version as of 2020-03-22 or so. So the 1.13.2 - 1.16.4 mod versions released before a yet-to-happen release in 2022 or later will always paste the entire schematic in one go in single player.)

In multiplayer the paste operation always happens in per-chunk pieces, and also rate limited to a configurable command rate.