01 Preparation: Environment Setup and Fundamentals
1 Overview
This article walks you through setting up your slime tech environment step by step, along with a brief introduction to the fundamentals.
The mods covered here are: Carpet mod, WorldEdit, Tweakeroo, pistorder (or Tweakmore; this article demonstrates with pistorder), and Replay mod (optional).
2 Environment Setup
Feel free to skip this section, though I'd still recommend giving it a read. Better tools always help with learning and design.
2.1 World Environment
Open singleplayer, select Creative Mode, and create a void world.
Create New World → World → World Type: Superflat → Customize → Presets → The Void
![[图 01 一片虚空平台.png]]
If you spawn on a stone platform, you've succeeded.
It will eventually look like this:
![[图 02 被绿萌填满的虚空截图.png]]
Of course, given the community's research into bedrock breaking tech, we can change the preset to: minecraft:bedrock;minecraft:the_void
If you want multiple layers, just add after the block name (where and ). For example: minecraft:bedrock*5;minecraft:the_void simulates a five-layer bedrock breaking environment.
![[图 03 虚空大陆.png]]
Of course, to ensure stability when building in survival, you'll eventually need to create a normal world for field testing. Releasing a machine without field testing is irresponsible, both to yourself and others.
2.2 Structure Block
After countless explosions, breakdowns, and stuck-together messes, we found a local save tool simpler than backups: structure blocks. We mainly use two modes: Save mode and Load mode.
2.2.1 Save Mode
![[图 05 结构方块加载模式界面.png]]
2.2.2 Load Mode
![[图 04 结构方块保存模式界面.png]]
2.2.3 Necessary Notes
- Structure names cannot use Chinese characters.
- Both relative position and structure size have three input boxes, corresponding to the x, y, and z axes from left to right. You can check these by pressing F3 and looking at the crosshair in the center of the screen.
- Save mode can only save structures at 0° rotation in the corresponding load mode structure box.
- Include entities: In save mode, this saves entities within the structure box; in load mode, this loads entities that were saved in save mode.
2.2.4 Tips
You can save multiple versions of structures during iteration, making it easier to roll back and debug later. Here's an example:
![[图 06 结构方块留档示例.png]]
In the save mode and load mode diagrams above, save mode handles archiving. In the archiving example, all the structure blocks are identical save-mode blocks the filename bedrock_breakers also shows they're a series of bedrock breakers, serving as the archive area. The work area has only one load mode structure block (not shown in the image).
The above is just what works for me; feel free to come up with your own approach.
2.3 Carpet Commands
Below is a brief overview of Carpet configuration. For more options, refer to other chapters or watch Carpet usage tutorials.
2.3.1 Carpet Configuration
Open your test world and enter commands in the chat. Once set, these settings generally won't need to be changed again.
/carpet tntDoNotUpdate true: When placing TNT, it won't be activated by redstone. This saves us from having to push minecarts or use other "loading" methods when making TNT duplicators.
/carpet fillUpdates false: Using fill, clone, setblock commands and structure blocks won't cause block updates. This especially solves the problem of machines "acting up" after loading structures.
/carpet creativeNoClip true: No collision in creative mode, letting you fly freely through machine structures without getting bounced around by slime blocks.
/carpet structureBlockLimit 48/96/192/256: The numeric options are separated by "/". Consider this option when you need a structure range larger than the default. Note that in practice, overly large structure boxes can cause rendering issues and lag. Unless necessary, the default of 48 is sufficient.
/carpet explosionNoBlockDamage true: When designing TNT-related structures, you can enable this debug option to prevent TNT explosions from destroying any blocks. Set it to false when you need to test whether TNT will destroy the expected area.
2.3.2 Game Tick Commands
/tick freeze: Freezes game ticks, usually combined with/tick step xbelow to observe whether a structure operates as expected. Similar to setting breakpoints in code debugging./tick step x: After freezing game ticks, this command advances the game by x game ticks./tick sprint x: Similar to/tick warp, usually used for long-term machine stability testing or speeding up flying machine positioning (handy for debugging)./tick unfreeze: Unfreezes game ticks. Some versions use/tick freezeto toggle freezing on and off. Rant: I don't know why they split one command into two; it's a pain to type every time.
2.3.3 TNT Monitoring Commands
/log tnt: Subscribe to TNT-related logging options./log tnt fulland/log tnt brief: When TNT explodes, these show you the spawn position and explosion point. Very useful for controlling TNT explosion points, which we'll cover in the practical section./log tnt clear: Unsubscribe from TNT-related logging options.
2.3.4 Fake Player Commands
/player <Name> spawn: The first step in using fake players; the most basic use is force-loading chunks when testing machines. For example, use/player yu_xian520 spawnto summon a fake player named Yu Xian. Follow Sanri Yuyin on Bilibili meow~/player <name> use: Makes the fake player use items, place blocks, or interact with blocks, equivalent to right-clicking. A similar command is/player <name> use once. Aiming the fake player at a note block or fence gate enables remote startup or stepping effects. For example,/player Twisuki usemakes Twisuki click a note block or fence gate once./player <name> use continous: Makes the fake player continuously use items, place blocks, or interact with blocks. Usually used to place pistons for bedrock breakers. Use/player <name> useto stop.
2.4 WorldEdit Commands
This section mainly covers //set, //undo, //redo, //stack, //move and other commands. Players who have already mastered these can skip to the next section.
This subsection only covers the most commonly used parts in slime tech design.
- //set, //undo, //redo
//set is a pretty basic command, right? Using the wooden axe, like with the projection mod, left and right click to select a range, then enter//set 0
If nothing goes wrong, the area you selected has been replaced with air. So how do you restore this platform?
- Use
//undoto undo this operation; - Use
//redoto redo the operation you just undid.
//move <Num>
This is also a basic command. After selecting an area, face a certain direction (or specify one) and use//move <Num> <direction>to move the blocks in that area. For example, use //move 1 up to move up one block. Without specifying a direction, it defaults to the player's facing direction. Use//move <Num> -eto preserve entities.
You can use this command to move created modules to appropriate positions.
//stack <Num>
After selecting an area, you can batch copy it in a certain direction, which is very convenient for expanding slime tech units.
This command works basically like//move, except instead of "move how many blocks" it's "copy how many times". No need to elaborate further.
Apologies if the above is a bit abstract. Try selecting an area and entering the commands yourself, or search for WE tutorials online.
2.5 Tweakeroo Configuration
- Disable Observer Option:
In the game interface, pressx+csimultaneously. In the disable options, you can find the disable observer option. I suggest setting a shortcut key on the right side of the keyboard for easy access when debugging.
After enabling this option, observers become "stone" and no longer respond to updates. When using WE or other tools on slime tech structures, this avoids unpredictable results from observer activation. It also prevents accidentally updating observers.
- Flyspeed (Flight Speed Control):
Tunnel borers, mining machines, etc. often exceed 200 blocks in height. Moving around various parts of the machine is very tedious. Using the Flyspeed function greatly increases your flight speed, allowing quick travel between different sections.
2.6 Pistorder Usage
This is one of the essential mods for designing slime tech. Previous chapters have also covered pistorder and piston push order rules. Here's a brief overview of the slime tech-related aspects.
Right-click a regular piston with an empty hand, and the piston will display whether it can push (as shown in the image: Push √; if it cannot push, it displays Push ×). The blocks being pushed display their push order from small to large. This helps with compressing machines and quick debugging.
- For regular pistons: Right-click once with empty hand for direct push (piston arm directly contacts), right-click twice for pushing with a one-block gap (as shown below).
- For sticky pistons: Right-click once with empty hand for direct push, right-click twice for pulling back with a one-block gap.
![[图 07 pistorder 模组示例.png]]
2.7 Replay Mod Debug Tips
Replay mod is familiar to streamers or anyone who has recorded MC videos who are you calling unfamiliar!. It records events that occur in loaded chunks during the recording period.
Thanks to Replay mod's scenario replay feature, you can debug by scrubbing through the progress bar after playback. This trick is handy when reproducing a problem takes too long, or when debugging with /tick freeze is difficult.
3 Fundamentals
3.1 Timing Basics
3.1.1 Game Tick
We've already covered the basics of game ticks in previous chapters. This section focuses more on how game ticks apply to slime tech.
For readers who haven't studied the timing chapter, here's a quick summary of the key points:
- The basic unit of time in Minecraft is the game tick (abbreviated as gt).
- Different redstone components have different game tick delays. For example, observers have a 2gt delay, and repeaters delay 2gt per notch (so repeaters delay 2~8gt).
All content in this chapter will use game ticks instead of Redstone Tick (RedTick, abbreviated as rt, 1rt = 2gt), because we'll later involve certain odd-tick timing relationships, and using game ticks is more convenient for calculation.
For slime tech, game ticks can be used to indicate the sequential movement order of each wiring path. For most cases, we only need to know their movement order. Below is my recreation of my first slime tech machine, a tunnel boring machine using piston chains as delays.
Image: Piston delay-type tunnel boring machine
Readers can also note that the upper sticky piston section has a 6gt delay, and the lower regular piston has a 4gt delay.
Players familiar with slime tech know that signal transmission starts from the upper sticky piston chain and ends at the lower regular piston chain. This structure is used as TNT delay for tunnel boring machines, etc. After becoming familiar with the signal delay above, we can calculate that the total delay in the above image is the sum of multiple sticky pistons and regular pistons, i.e., the sum of multiple 6gt and multiple 4gt.
Of course, through simple calculation we also know that with the above piston delay arrangements, we can create delays of 4gt and above, covering all even-numbered gt delays. So how do we create a 2gt delay? This seems a bit troublesome. We can usually only change a 6gt delay to a 4gt delay to advance by 2gt, or vice versa.
Since we already have even-numbered gt delays, how do we create odd-numbered gt delays? This seemingly difficult task is actually much simpler! Let's return to the 4gt delay piston structure in the image above. We can transform it into a transmission structure based on redstone blocks. With the redstone block relationship, the piston will trigger the next gt after arriving, thus creating a 3gt signal delay.
Image: Diagram of two types of piston delays (puzzle, combine two images into one)
Let's analyze the specific situation: For the observer structure in the upper image, at gt0 the piston and observer arrive, at gt1 the observer activates, at gt2 the piston extends, at gt3 the piston is extending, at gt4 the pushed block arrives. For the redstone block structure in the lower image, at gt0 the piston arrives, at gt1 the piston extends, at gt2 the piston is extending, at gt3 the pushed block arrives.
Combining the above 4gt and 6gt delay units, we can create 3gt, 7gt, and higher delay units.
Below we discuss a clever 7gt delay technique: Let's return to the 6gt delay structure in the image above. As shown, we place a powered block diagonally above and add another observer to QC it, creating a simple and clever 7gt delay. This is also applied in kades' three-way bedrock breaker:
Image: 7gt delay structure, with application part from kades' bedrock breaker.
We can still analyze the specific situation: I'll skip the detailed analysis for now.
Of course, based on the above principle, we can create flying machines with an 11gt cycle, or 11gt two-step structures, which are the perfect finishing touch when applied to trenchless world eaters.
Image: 11gt cycle flying machine and two-step structure
Of course, in many cases, we don't need to calculate delays so precisely. Many slime tech structures only need to reset before the next activation. Precisely because many structures are so-called "forgiving," there is a rather clever wiring style: borrowing force.
3.1.2 Borrowing Force
Since I first got into slime tech, I've heard something like this:
Excellent wiring often applies a lot of borrowing force.
As mentioned in the previous section, borrowing force is a wiring technique where you reset structure A (which is not time-sensitive) through other structure B, or even a completely unrelated structure C, or even directly replace structure A's wiring. Sounds convoluted, right? Let's look at the image:
Image: Borrowing force diagram, preferably GIF
As shown in the image, the upper piston with no-delay linkage, after triggering, has its sticky piston reset by a lower no-delay linkage that may serve other purposes. This is borrowing force. This serves as a relatively simple example.
Combined with the game tick section above, we can use a certain moment of machine operation as the time origin (similar to the zero reference point in circuit analysis. Students in electronics are no strangers to this). Each module, and even each piston, can get a gt number label, so we can accurately analyze the sequential movement order of each part.
Image: My 14m high front-launching trenchless world eater
As shown, this is the departure station part of my 14m front-launching trenchless world eater. Using the signal output part of the TNT buffer as the 0gt point, we can measure that the time interval for launching the flying machine is 7gt. (Of course, different marking points will yield different times).
Except for situations with extreme requirements on machine size or timing, most of the time there's no need to calculate timing so rigorously. This subsection only provides a rational analysis approach to meet needs in extreme situations.
Image: Borrowing force unit of trenchless world eater, GIF
3.1.3 * b36 Push Order Time Analysis
This subsection can directly refer to the b36 push order time analysis in previous chapters. Here we mainly cover how to use b36's push order time to compress machines. For clarity, pistorder is still used here to assist in explanation.
(TBD)



