Skip to main content

Processes

A process is some code that repeats itself and is run every tick until it's done.

Processes can store blocks they use in the chunk at 27450 19.

Command Processes​

A process can not only be started by users through the tool items, but can also be handled without player interaction, through commands.

To initiate a process using commands, you first need to set the desired process data inside the CmdProcess compound in the worldtool:storage storage. Look further down on this page for process data that can be used, as well as data for specific processes.

To start the process, run the worldtool:cmd/start_a or worldtool:cmd/start_b function. start_a will add the specified process to the process queue if there is already a process running. start_b will do nothing if a process is already running. If the process cannot be started due to invalid data, this will be written in the log.

Example of starting a regular fill process:

data modify storage worldtool:storage CmdProcess set value {DisplayName:'"Example"',ID:"worldtool:fill",Tags:["wt.process.fill"],Positions:{1:[10d,70d,10d],2:[20d,80d,20d]},BlockPositions:{Primary:[0d,255d,0d]}}
function worldtool:cmd/start_a

In the above example:

  • The process' name is set to be displayed as "Example"
  • The process ID is set to "worldtool:fill"
  • The process is given the tag "wt.process.fill"
  • The process is set to affect the area from the coordinates 10, 70, 10 to 20, 80, 20
  • The block for the process to use (fill with) is specified to be taken from the coordinates 0, 255, 0

Process Data​

A process is started by inputting a compound with some data. "Manually set" and "Automatically set" are relevant when starting a process through user input (one of the tool items).

Manually set:
ID (String) - The process ID
DisplayName (String) - A string containing JSON text of the process name.
Tags (List) - Tags to add to the process entity.
SecondaryTags (List, optional) - Tags to add to a secondary process entity.
Input (Compound, optional) - Additional input data the process might want.
Output (Compound, optional) - If the process provides output, this is where it is put.
BlocksPerTick (Integer, optional (if not set, will default to maximum integer)) - The blocks per tick to use for this process.
Volume (Integer, used by shape generation processes) - The rough size of the finished shape.
Automatically set:
StartType (String, default options are worldtool:common, worldtool:general, worldtool:brush, or worldtool:shape) - What system to use for starting the process.
Positions (Compound, not used by single-position processes) - Some positions to use.
  1 (List of 3 doubles) - The first corner.
  2 (List of 3 doubles) - The second corner.
  Secondary (List of 3 doubles, optional) - Starting position for a secondary process entity.
BlockPositions (Compound, used by most General Tool processes) - From which positions to grab process blocks.
  Primary (List of 3 doubles, optional) - From where to grab the primary block.
  Secondary (List of 3 doubles, optional) - From where to grab the secondary block.
Position (List of 3 doubles, used by single-position processes) - Starting position.
Blocks (Compound, used by most Brush Tool and Shape Generation Tool processes) - Which blocks to use as process blocks.
  Primary (Compound, optional) - The primary block.
    State (Compound) - The block's state.
      Name (String) - The block's ID.
      (Other values)
    Data (Compound, optional) - The block's data.
  Secondary (Compound, optional) - The secondary block.
    State (Compound) - The block's state.
      Name (String) - The block's ID.
      (Other values)
    Data (Compound, optional) - The block's data.
AffectedArea (Compound, optional) - Information to give to the backup process, if the affected area is not within the standard positions.
  From (List of 3 doubles) - The first corner.
  To (List of 3 doubles) - The second corner.
Owner (Integer, optional) - The WorldTool ID of the user that started the process.

Process Tags​

A list of all additional tags you can add to processes to alter their behavior.

wt.keep - Makes the process not replace any existing blocks except for empty ones such as air or water. Works with most processes, but not all.
wt.no_message - Removes the "X affected blocks" message after the process is completed.
wt.message.non_default - Removes the "X affected blocks" message after the process is completed, and allows you to enter your own message through the process_message/display hook.
wt.dont_end - Allows you to continue your process through the process/continue hook after it has been completed.
wt.secondary_process_entity - Creates a secondary process entity you can use during your process.

List of Processes​

A list of all processes and their most important data. In no particular order.

<> around a value denotes that the value is not always there.

Fill​

The process for filling an area. Used by the General Tool's Fill operation and the Brush Tool's Place brush.
ID: worldtool:fill
Tags: [
  wt.process.fill
]

Replace​

The process for replacing blocks in an area. Used by the General Tool's Replace operation.
ID: worldtool:replace
Tags: [
  wt.process.replace
  <wt.process.replace.normal>
  <wt.process.replace.exclude>
]

Filter Measure​

The process for counting specific blocks in an area. Used by the General Tool's Measure > Filter operation.
ID: worldtool:filter_measure
Tags: [
  wt.process.filter_measure
  <wt.process.filter_measure.normal>
  <wt.process.filter_measure.exclude>
]

Clone​

The process for cloning an area to another place. Used by the General Tool's Clone operation with the Standard mode.
ID: worldtool:clone
Tags: [
  wt.process.clone
  wt.message.clone
  wt.message.non_default
  wt.secondary_process_entity
  <wt.process.clone.move>
  <wt.process.clone.normal>
  <wt.process.clone.rotate>
  <wt.process.clone.filter.normal>
  <wt.process.clone.filter.exclude>
  <wt.process.clone.mirror.x>
  <wt.process.clone.mirror.y>
  <wt.process.clone.mirror.z>
]
SecondaryTags: [
  <wt.process.clone.filter.normal>
  <wt.process.clone.filter.exclude>
]
Input: {
  Rotation: {
    X (Integer) - Rotation around the X axis
    Y (Integer) - Rotation around the Y axis
    Z (Integer) - Rotation around the Z axis
}

Randomization Source​

The process for selecting a source for randomization. Used by the General Tool's Randomize operation.
ID: worldtool:randomization_source
Tags: [
  wt.process.randomization_source
  wt.no_message
  <wt.process.randomization_source.exclude>
]

Randomize​

The process for picking random blocks. Used by the General Tool's Randomize operation.
ID: worldtool:randomize
Tags: [
  wt.process.randomize
  <wt.process.randomize.replace.normal>
  <wt.process.randomize.replace.exclude>
]

Save Area​

The process for saving an area to data. Used for backups, as well as by the General Tool's Copy operation, and Clone operation with the Template mode.
ID: worldtool:save_area
Tags: [
  wt.process.save_area
  wt.no_message
  wt.dont_reopen_menu
  <wt.process.save_area.back_up>
  <wt.process.save_area.copy>
  <wt.process.save_area.clone>
]
Input: {
  BackupSlots (List of strings) - The backup slots (template names) to use.
  NextPositions: [ (List) - Lists of position pairs, which make up areas to also also save.
    {
      1 (List of 3 doubles) - The first corner.
      2 (List of 3 doubles) - The second corner.
    }
    {...}
  ]
}
Output: {
  SavedAreas: [ (List) - The areas that have been saved.
    {
      TemplateList: [ (List) - The templates that have been saved, and their relative positions.
        Slot (String) - The backup slot (template name).
        Pos (List of 3 integers) - The template position relative to the process' starting position.
      ]
      Positions: { (Compound) - The corners (area).
        1 (List of 3 doubles) - The first corner.
        2 (List of 3 doubles) - The second corner.
      }
    }
  ]
}

Load Area​

The process for loading an area from data. Used by undo, redo, as well as by the General Tool's Paste operation, and Clone operation with the Template mode.
ID: worldtool:load_area
Tags: [
  wt.process.load_area
  wt.no_message
  wt.dont_reopen_menu
]
Input: {
  AreaList: [ (List) - List of areas to load.
    TemplateList: [ (List) - The templates that have been saved, and their relative positions.
      Slot (String) - The backup slot (template name).
      Pos (List of 3 integers) - The template position relative to the process' starting position.
    ]
    Pos (List of 3 doubles, optional) - The starting position for this area.
  ]
}

Checkered​

The process for placing an every-other-block pattern. Used by the General Tool's Checkered operation.
ID: worldtool:checkered
Tags: [
  wt.process.checkered
  <wt.process.checkered.replace.normal>
  <wt.process.checkered.replace.exclude>
  <wt.start_with_block>
  <wt.process.checkered.alternate.x>
  <wt.process.checkered.alternate.y>
  <wt.process.checkered.alternate.z>
]

Shell​

The process for placing a shell around the inside of the area. Used by the General Tool's Shell operation.
ID: worldtool:shell
Tags: [
  wt.process.shell
  <wt.process.shell.inner_block>
  <wt.process.shell.side.up>
  <wt.process.shell.side.down>
  <wt.process.shell.side.north>
  <wt.process.shell.side.south>
  <wt.process.shell.side.east>
  <wt.process.shell.side.west>
]
Input: [
  SideSize (Integer) - The size of the sides.
]

Outline​

The process for outlining an area. Used by the General Tool's Outline operation.
ID: worldtool:outline
Tags: [
  wt.process.outline
]
Input: [
  Size (Integer) - The size of the outlines.
]

Greenery​

The process for placing greenery. Used by the General Tool's Greenery operation and the Brush Tool's Greenery brush.
ID: worldtool:greenery
Tags: [
  wt.process.greenery
  <wt.process.greenery.remove_current>
  <wt.process.greenery.replace.normal>
  <wt.process.greenery.replace.exclude>
  <wt.process.greenery.plant_table.plains>
  <wt.process.greenery.plant_table.sunflower_plains>
  <wt.process.greenery.plant_table.flower_forest>
  <wt.process.greenery.plant_table.taiga>
  <wt.process.greenery.plant_table.desert>
  <wt.process.greenery.plant_table.ocean>
  <wt.process.greenery.plant_table.warm_ocean>
  <wt.process.greenery.base.standard>
  <wt.process.greenery.base.desert>
  <wt.process.greenery.base.ocean>
]
Input: [
  Rate (Integer) - The percentage chance to place greenery on a block.
]

Shatter​

The process for shattering blocks in an area. Used by the General Tool's Shatter operation.
ID: worldtool:shatter
Tags: [
  wt.process.shatter
  <wt.process.shatter.drop_items>
  <wt.process.shatter.replace.normal>
  <wt.process.shatter.replace.exclude>
]

Repeat​

The process for repeating an area multiple times. Used by the General Tool's Repeat operation.
ID: worldtool:repeat
Tags: [
  wt.process.repeat
  <wt.process.repeat.filter.normal>
  <wt.process.repeat.filter.exclude>
]
SecondaryTags: [
  <wt.process.repeat.filter.normal>
  <wt.process.repeat.filter.exclude>
]
Input: {
  Amount: {
    X (Integer) - The amount/direction to repeat along the X axis.
    Y (Integer) - The amount/direction to repeat along the Y axis.
    Z (Integer) - The amount/direction to repeat along the Z axis.
  }
  Spacing (Integer) - The amount of blocks between each copy.
}

Smooth​

The process for smoothing an area. Used by the General Tool's Smooth operation.
ID: worldtool:smooth
Tags: [
  wt.process.smooth
  wt.message.non_default
  wt.message.smooth
  <wt.process.smooth.filter.normal>
  <wt.process.smooth.filter.exclude>
  <wt.process.smooth.direction.up>
  <wt.process.smooth.direction.down>
  <wt.process.smooth.direction.east>
  <wt.process.smooth.direction.west>
  <wt.process.smooth.direction.north>
  <wt.process.smooth.direction.south>
]
Input: {
  Threshold (Integer) - The maximum distance in blocks to check for an edge's size.
  Intensity (Integer, 1-5) - How strictly to round corner smoothing values. The rounding value used is 10 minus the inputted intensity. For example, an intensity of 5 (rounding value 10-5 = 5) would lead to the value 0.5 being rounded to 1, like rounding normally works.
}

Command List​

The process for finding commands from command blocks. Used by the General Tool's Command List operation.
ID: worldtool:command_list
Tags: [
  wt.process.command_list
]

Paint​

The process for painting blocks. Used by the Brush Tool's Paint brush.
ID: worldtool:paint
Tags: [
  wt.process.paint
  wt.no_message
]

Replace (Brush)​

Another process for replacing blocks in an area. Used by the Brush Tool's Replace brush.
ID: worldtool:replace_brush
Tags: [
  wt.process.replace_brush
  wt.no_message
  <wt.process.replace_brush.normal>
  <wt.process.replace_brush.exclude>
]

Cylinder​

The process for generating a cylinder shape. Used by the Shape Generation Tool's Cylinder shape.
ID: worldtool:cylinder
Tags: [
  <wt.process.cylinder.vertical>
  <wt.process.cylinder.horizontal>
]

Cone​

The process for generating a cone shape. Used by the Shape Generation Tool's Cone shape.
ID: worldtool:cone
Tags: [
  <wt.process.cone.vertical>
  <wt.process.cone.horizontal>
]

Sphere​

The process for generating a sphere shape. Used by the Shape Generation Tool's Sphere shape.
ID: worldtool:sphere
Tags: [
  wt.process.sphere
]

Log​

The log logs various happenings related to processes not started by players. The log can be viewed with the command /function worldtool:cmd/view_log and cleared with the command /function worldtool:cmd/clear_log.