# 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)
- Wire it into a combiner set to the Signal type (this is the default for a new combiner). (Tg)
- Wire it into a value slider (note the value will be clamped to the slider’s min and max settings). (Tg) (Tg) Wiring it into other tweak menu settings can also work.
- For gadgets that can understand fat and thin wires (eg. a Calculator), use the Modulate wire-blend mode and the default value of the fat wire will be used. This will multiply by the setting's current value. So remember to set the setting to 1, so that it doesn’t affect the default value.
# Modulators
Some wires are “modulators,” others are not. A modulator wire type has certain behaviours:
- When wired into a setting with a non-zero value, uses the modulate wire-blend mode.
- When received by a Wireless Receiver, is used as a modulator. (See Wireless Receiver gadget’s Signal from Transmitter output.)
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.
- 1 Default combined with Each Component: The default of the other type is combined with each component of the result type.
- 2 In Order: The components of each value are combined in order. Where one has a component and the other does not, those value of the component that is there is kept. If a type has nested types (eg. Transform has a 3 Numbers inside it), it is spread into separate components before matching up the order.
- 3 Default combined with First Component: The default value of the other value is combined with the result value’s first component.
- 4 Scale combined with 1: The value of the Transform’s scale is combined with 1. If the other value is a Collision, the positions from both are combined.
- 5 Colour combined: The other colour is combined with the result’s colour.
- 6 Combined with Position: The other type is combined with the result’s position.
- 7 Position and Scale Combined in Order: Transform components are spread, and combined in order with the other type.
- 8 Fourth Component set to 1: The fourth component of the result is set to 1.
# 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.
Components:
# 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).
Components:
# 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.
Components:
# 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.
Components:
# 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.
Components:
# 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).
Components:
# 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)