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.