Documentation by TAPgiles

# Wire Types

Certain outputs send specific types of wires. Some contain more than one value for use in more advanced logic. These are displayed as many thin wires wrapped into a rainbow-coloured cable and so are known as “fat wires.” (Jj)

# Default Value

Fat wires have their own “default” value that is used by gadgets that cannot make use of the separate values bundled into the fat wire. There are a number of ways to get this default value: (Tg)

# Modulators

Some wires are “modulators,” others are not. A modulator wire type has certain behaviours:

The modulator wire types are: Boolean, Signal, Collision, Left/Right Stick, and Player Info.

The non-modulator wire types are: Number, Colour, Transform, 4 Numbers, 3 Numbers, 2 Numbers, Spice & Randomisation, Rotation, 8 Numbers, Music, and Time/Date.

# Type Combinations

The following table shows how different wire types combine, and what they result in. See the reference below for more details on a particular result.

References for the above table. Describes how the “result” wire type value combines with the “other” (non-result) wire type value.

# Boolean

Boolean outputs send 1 or 0: true or false value. The Pulse Output settings use boolean wire types.

Components: Boolean.

# Number

By default when plugged into a setting, uses the blend wire-blend mode.

# Colour

A colour represented as red, green, and blue channels as percentages. (Tg)

When there is a colour setting for an object, the wire will automatically attach to the first colour setting.

A colour can be fed from one setting to another to ensure they match perfectly. (Tg)

Default Value: The relative luminanceof the colour (how bright the colour is visually). Luminance is calculated using the formula (0.2126 × red) + (0.7152 × green) + (0.0722 × blue).

Components: Red, Green, Blue.

# Transform

A scene-space transform, consisting of 8 components (3 for position, 4 for rotation, 1 for scale). These components are grouped as 3 fat wires.

When not set, position and rotation will default to (0, 0, 0), and scale will default to 1.

Note that inputs that can receive a Transform type value will also accept 3 Numbers type values and use them as the position.

All objects have a scene-space transform dictating where they appear in the scene (though this cannot be gotten as an output directly).

For example, you can move a sculpt around setting its position. You can rotate it, changing its orientation. And you can make it larger and smaller, setting its scale.

Default Value: The scale of the transform.


# Signal

By default when plugged into a setting, uses the overwrite wire-blend mode.

Default Value: The sum of the positive and negative inputs. For example a positive of 6 and a negative of 4 will give a default of 2 (6 - 4).


# 4 Numbers

A 4-dimensional vector.

Default Value: The magnitude of the vector: square root of (A² + B² + C² + D²)

Components: A, B, C, D.

# 3 Numbers

A 3-dimensional vector.

As components are read in the same order regardless of the wire type, inputs that expect a position (3 number) fat wire can also use a Transform fat wire. (Tg)

Default Value: The magnitude of the vector: square root of (A² + B² + C²)

Components: A, B, C.

# 2 Numbers

A 2-dimensional vector.

Default Value: The magnitude of the vector: square root of (A² + B²). Can also be thought of as A being one side of a right-angled triangle, B being the adjacent side, and the default being the hypotenuse of that triangle.

Components: A, B.

# Spice & Randomisation

Represents a single sound setting with the ability to have spice and/or a random range. Such as a Split Slider setting.

Such settings can have a random range with a maximum and minimum value. Each time that setting is used by the engine, a random value within that range is used instead. They can also have a “spicy” version of the setting and random range, which is blended to depending on how “spicy” the note is that is being played. The spicy setting also has its own random range.

Default Value: The middle point of the non-spicy random range.


# Rotation

A rotation or orientation. Depending on which mode a splitter or combiner is in, the three components will be different.

Yaw, Pitch, and Roll Mode

In this mode, each part of the rotation is separated out, to make it easier to work with.

Components for “Yaw, Pitch, and Roll” Mode: Yaw, Pitch, Roll.

Axis & Angle Mode

In this mode, the components are calculated as a vector of rotation—the axis. And then the vector is multiplied by the angle rotated.

Rotations are in fact represented as quartnerions. Something like X, Y, Z (the vector of the rotation axis) and W (the magnitude, or how much it actually rotates around that vector). Splitters interpret those values and output them. Combiners interpret input values and create a quaternion.

Components for “Axis & Angle” Mode: X Rotation, Y Rotation, Z Rotation.

# 8 Numbers

An 8-dimensional vector.

Default Value: The magnitude of the vector: square root of (A² + B² + C² + D² + E² + F² + G² + H²).

Components: A, B, C, D, E, F, G, H.

# Collision

Data about a collision event. (Tg)

Default Value: The impact force.


# Left/Right Stick

Represents how a Dualshock 4 controller’s stick is being pushed. Outputs of this type are between -1 and 1, with a magnitude between 0 and 1. (Tg)

Depending on the source, can be adjusted relative to the orientation of the player’s view.

Inputs also accept any vector type fat wire, using the A and B values for X and Y.

A stick’s value can easily be converted into being one of 8 directions. (Tg) Or even to separate signals per direction. (Tg)

Default Value: The magnitude of the vector; how much the stick is being pushed. (Tg)

Components: Left/Right, Up/Down.

# Music

Data about a music note. Each time a new note begins, a clip will start a new data stream through the same output.

Note that only components that have been split and are wired into while rewound will output values.

Default Value: The volume output.


# Player Info

A signal for each player. (Tg)

Default Value: The player value that has the largest magnitude (furthest away from zero, positive or negative).


# Time/Date

A value representing a date and time.

Negative numbers are ignored, and that unit will use the smallest allowed value instead.

Decimals will be attributed to smaller units of time automatically. (For example, 0.1 hours will result in 6 minutes.) Values higher than are normally allowed will be attributed to greater units of time automatically. (For example, 27 hours will result in 1 day and 3 hours.)

Year must be from 1970 to 9999.

Default Value: The number of milliseconds since 12:00 midnight January 1st 1970.

Components: Year, Month, Day, Hour, Minute, Second, Milliseconds.

# Wire Blend Modes

Each input tab for a setting has a wire blend type which affects how the inputs from connected wires affect the final value used by the gadget. (Tg)

Change the wire blend mode for an input by hovering over it. A small input tab will poke out, showing the icon of the current wire blend mode. Use shift + Cross button to cycle through the different blend modes.

# Overwrite

When connecting a wire to a setting currently at 0, the blend mode is set to Overwrite.

Sets the setting’s value to the OR of the input values. The OR of a set of values is the highest magnitude (furthest from 0).

When there is a tie, the source gadget created first is used. When the values come from the same source gadget, the setting later in the gadget (further down the window or from a later tab) is used. (Tg)

# Modulate

Finds the OR of the input signals. If the result is a fat wire, the default value of the fat wire is used.

The result is multiplied by the original base value of that setting. (Tg) (See Overwrite Blending.)

# Blend

Sums the power of the source gadgets of all input signals. Sums the signals received from those inputs. Divides the signal sum by the power sum.

Averages the input values, weighted by the power of the source gadget of each value. (Tg)