Command Combiner 1.13

By MrGarrettoFollow @JustMrGarretto

Options
Encasing Options
Enable casing
Case main block
Case top/bottom blocks
Orientation
Structure Rotation
Structure Offset:
X: Y: Z:
Technical
Hopper Clock
Use /blockdata
Structure Dimensions
Box Length 
Box Width  
Advanced
Unique Scoreboard Obj.
Signs
Add Sign
Projects
Show All
Save
You can also manually save this as a project to your computer
by exporting/importing with these buttons!
Export to Computer
Import
The project was successfully imported!
ExportX

To export your commands and settings as a project, you can either:

Copy: One method of saving your project manually is to copy the text from above, and paste it into a safe place on your computer.

Download: The other method of manual saving is to download a text file containg the project. To do so, click the 'download' button below.

If you would like to save this project to the server (which is recommended) instead of your computer, exit this 'export window', and

Download
ImportX
Import

To import a saved project, you can either:

Paste: One method of importing your project manually is to paste the project text into the area above.

Upload: The other method of manual saving is to upload the '.txt' file containg the project. To do so, click the 'upload' button below.

If you would like to open a project that was saved on the server (which is recommended) instead of your computer, exit this 'export window', and

Upload
Save ProjectX

Upon clicking "Save", your current commands, settings, and signs will be saved as a project on the server. You will be able to open this project under the "Projects" section.

Save
Rename Current ProjectX

Upon clicking "Rename", your current open project will be saved with the new name that you specified above. You will be still able to open this project under the "Projects" section.

Rename
Delete ProjectX

Delete
All ProjectsX
Help
Show built in functions
How to use
MCEdit Filter
Other Combiners
Built in functions

Below is a list of the built in functions. They can be used by entering them as a command in the command combiner below!

Initial (Commands that only run once)
INIT:command
Examples
INIT:tellraw @a {"color":"red","text":"I'm only going to say this once!"}

Writing this would cause the tellraw command to only run once, when the user first runs the compacted command.

Command Block Modifiers
R:command
I:command
Examples
R:say I'm on my own repeating cycle!

The command above would be placed in a repeating command block, overriding whatever the command combiner would have originally made it by default.

I:say I'm an impulse command block!

The command above would be placed in an impulse command block, which you can then activate by using the TAG feature (explained below).

Multi-line Modifiers
/*modifiers
command(s)
*/
Examples
/*R:
say 1
say 2
*/

Both of the '/say' commands would be placed in repeating command blocks

/*INIT:/summon
zombie
creeper
*/

Since '/summon' would be added before each command within the multi-line modifier, this would summon a zombie and a creeper

NBT in Entity Selectors
nbt={ NBT DATA}
Examples
execute @e[type=armor_stand,nbt={OnGround:1b}] ~ ~ ~ setblock ~ ~-1 ~ stone

Using this command in the command combiner would cause a stone block to be placed under any armor_stand which is standing on the ground.

Conditionals or IF / DO statements
COND:(command)
or
IF:command
DO:command
Examples (COND)
testfor @a[m=1]
COND:say A player is in creaive mode!

Using these 2 commands in the command combiner would cause the phrase "A player is in creative mode" to be printed to the chat only .lt least one player is in creative mode

Examples (IF/DO)
IF:testfor @a[m=1]
DO:say A player is in creaive mode!

The two commands above would have the exact same outcome as the previous example. This is simply a different way to write it, which is easier to see the logic when reviewing your commands.

Coordinate Trackers
TAG#(identifier): and @TAG-(identifier)
or
@prev
Examples (TAG)
TAG#3:say Hello
setblock @TAG-3 dirt

If you wrote these commands in the command combiner, the "setblock" command would place a dirt block at the location of the "say Hello" command. This is useful when you need to access a certain command blocks coordinates from multiple other command blocks. (Especially useful for /stats)

Examples (@prev)
say Hello
setblock @prev dirt

If you used these commands in the command combiner, it would essentially do the exact same thing as the previous example, except this one is much quicker to type, but it can only be used to target the command prior to the one referencing it.

Floor Crafting
FloorCrafting: (ingredient 1) (damage val) (NBT - or {} if none) (ingredient 2) (damage val) (NBT - or {} if none) RES:(result item) (damage val) (NBT - or {} if none) (scoreboard obj. name - optional)
Examples
FloorCrafting: grass 0 {display:{Name:"The Best Grass"}} stone 0 {} RES:diamond_sword 10 {display:{Name:"Magic Sword"}}

Using this in the command combiner would allow you to throw a grass block item and a stone block item together on the ground to create 1 diamond sword named "Magic Sword".

You can use as many ingredients and result items as you want, just make sure that ingredient items do not start with 'RES:', but result items do!

How to use the command combiner
Writing commands

If you are already familiar with command blocks, you should already be a master at using the command combiner! Simply write some commands, each on a new line in the large text field below. They will all be placed on a 20hz fill clock in the final command. If there is a command that you only want to run once, just write INIT: before that command. This is mostly useful for adding scoreboard objectives and for /tellraw install messages.

Examples
INIT:/give @a stone 1
/say test

If you were to write these 2 lines in the command combiner, it would give every player 1 stone upon install, then it would constantly spam the chat with "test", 20 times per second.

Comment lines

Comments are a very useful feature to help you organize your project. A line can be commented by placing a # before the line. The commented line will be ignored when the command is generated.

Examples
# Removes 1 from the score 'Ex' until it is at 0
/scoreboard players remove @a[scores={Ex=1..}] Ex 1

If you were to copy and paste those 2 lines into the command combiner, only the second one would appear in the final command. The commented line would be ignored.

MCEdit Filter

In addition to being able to write the commands line-by-line into the command combiner, you can also use MCEdit to convert an in-game creation into a one-command install creation, with this filter! Check the box below if you have used the filter to import a creation from a world for this command.

Import via MCEdit

How to use the filter

To use the filter on a pre-built command block contraption, simply open the world in MCEdit. Select the chain of command blocks that you want to compress into one command. Repeat command blocks and chain command blocks will automatically be placed on a clock. Impulse command blocks will become INIT commands. Run the filter, then place the generated command block somewhere in the world. Now, open the world in Minecraft, right click the generated command block, then copy all of the text from it. Paste this text into the command input field below, and check the checkbox above, which reads "Import via MCEdit filter". Now, change your options as you please, and press generate. Note that the filter only will work for creations that are on a 20hz clock. To have commands that only are executed once, just include them in the selection, but don't have them on a clock. If the creation was originally split among multiple 20hz clocks in your world, the filter may be unable to preserve the original order or execution.

Other Command Combiners

Below are the other variants of my command combiners.

1.9/1.10 Command Combiner
Command Combiner 1.9/1.10
1.8 Universal Version
Command Combiner Universal
First Boxed Version
Command Combiner Boxed
Vertical Version
Command Combiner Vertical
Original Horizontal Version
Command Combiner Horizontal
Output
Generate