Documentation by TAPgiles

# Emitter

Creates (“spawns”/“emits”) a new copy of a target object. Useful for controlling thermometer use.

If the emitter gadget is inside an object owned by a player, objects it emits will be owned by the same player.

Before any instances have been emitted, the gameplay cost of the original object is used. For each copy emitted, the same cost as the original is added. When an emitted object is destroyed, the same cost as the original is freed. So if you use emitters and destroyers in smart ways, you can control how much memory is being used at a given time within the game. (Tg) (Jj)
You can then communicate with the emitted logic from the originating object if needed. (Tg)
A good way of emitting animated effects is to animate the effect in a timeline, and place a destroyer at the end of the timeline when it's set to be invisible. (Tg)

The emitted object will immediately run any logic it contains, so it is able completely change form even after being emitted. (Tg)

Useful for prototyping a new object. Emitters can be used to place copies of an object around the scene, while still being able to change the original, instead of making it a separate imported element. (Tg)

# Gizmo: Has a transform gizmo. It may be moved, rotated, and scaled to set where the object will be emitted. (Tg)

When unset, the gizmo is at the transform of the original object.

The gizmo can be animated to emit objects in different places using the same emitter. (Tg)

When using a non-zero Emit Speed it also displays an arrow, indicating a direction.

When using a non-zero Emit Rotation, a white circle with moving radial lines will be shown, indicating the initial rotation when an object is emitted. Attached to that is a stalk, used to adjust the axis around which the rotation occurs.

While the tweak menu is open, a preview of the emitted object will be shown at the position, scale, and rotation it will be emitted at. Also if the reference object is visible, a red dashed line is shown leading to the centre of the reference object (not necessarily the same as the centre currently used by the emitter).

Memory: Costs 0.0061% of the things limit per gadget.

If there is not enough thermo remaining to emit an object in its entirety, it will not emit at all.

Performance: If there are framerate issues and an emitter would emit an object, it may not do so. If you want an emitter to keep trying to emit until it does, keep it powered, use Continuous mode with 0 seconds Time Between Emits and a Maximum Emitted of 1. This will retry to emit every frame, but once it's emitted once it will stop trying.

# Properties Tab

# Object to Emit

Click on the button and then an object in the scene to link the object to the gadget. Unlink the object using Triangle on the button. (Jj) (Tg)

# At the time of linking, a scale coefficient is calculated and stored as: object scale ÷ emitter scale.

The centre of the target object is found at the time it is linked, based on the bounds of all contained objects. The true centre could change after that, which is reflected by the red dashed line of the gizmo. But the centre used to emit the object will not change unless this button is used to re-link to the object. (Tg)

Only sculpts, paint, or groups can be targeted by the emitter like this. (Tg)

When a target group collapses, the remaining last object will automatically be targeted instead.

This can be used to target a gadget. Group the gadget with something else, link it to the emitter, and then delete the second object from the group. (Tg)

The linked object will have its power turned off, automatically. But it is still in the scene, and still uses thermo to stay in memory.

Because of this, it will be invisible to the player and in edit mode, but can be seen and edited by turning off preview invisibility. (Tg) (Mm)
The object can be tweaked and turned on again. It can still be emitted if it's powered.

Once it’s attached to the emitter, you can move, rotate, and scale the emitted object without affecting how it will be emitted. (Mm)

When emitting, a copy of the current state of the object will be used and its original power state will be restored for the emitted copy.

This means you could turn the power on for the reference object and allow it to change live. Then when it is emitted, the state it has at the moment the emit takes place will be used for the emitted copy. (Tg)
Emitted doorway gadgets will not work properly when triggered from within a dream.

If copying an emitter gadget by itself, the copy will use the same source object to emit, not costing any more thermo than the new emitter gadget. If copying an emitter gadget and the target it is emitting at the same time, the gadget copy will target the target copy, and more thermo will be used for the target copy. (Tg)

This is useful for testing having many copies of an object in a scene, while still being able to edit the original and have all of them update.

# Emit Speed

The initial speed of the object along the specified direction. (Jj)

Note: If this is non-zero, the emitted object will behave as if it had “movable” turned on. (Tg)
This can be set to 0, and the object will still be able to move—for example by using a Mover or turning on the original object’s “movable” setting. (Tg)

# Rotation

The initial rotation speed of the object. (Jj)

If this is non-zero, the emitted object will behave as if it was “movable.” (Tg)

# Ignore Parent Speed

When on, the initial speed will be used. When off, the initial speed will be added to the speed the gadget is moving. (Jj) (Tg)

# Time Between Emits

How long to wait before emitting a new object. This time resets after emitting an object and counts down again. (Jj) (Tg) (Tg)

When at 0 seconds, a new object will be emitted each logic frame.

# Emit Mode

When objects are emitted while powered.

  • # Once: One object will be emitted the moment the emitter’s power becomes positive > 0. (Jj) (Tg)

  • # Continuous: Objects will be emitted as often as allowed by the emitter’s settings while receiving power. (Tg)

# Local Space

When on, the orientation of the direction they are launched in or rotate around are relative to the orientation of the gadget. This means the direction and rotation will adjust as the gadget’s orientation changes. (Tg)

When off, the orientation is absolute to the scene and will not change if the emitter is rotated.

# Emitted Object Lifetime

When an object is spawned, it remembers what this setting was at that moment. This amount of time later, it will destroy itself. (Or never automatically destroy itself if set to infinite.) (Jj) (Tg)

# Max Emitted at Once

The maximum number of objects emitted by this gadget that can exist at once time. (Tg)

While there are already the specified number of objects emitted from this gadget existing within the scene: (Jj)

# Max Emitted

The maximum number of times this gadget can emit an object. (Tg) (Jj)

# Recycle Emitted Objects

This allows destroying old emitted objects before emitting new objects, saving on memory use.

# Inputs & Outputs Tab

# Object Emitted

Sends a pulse each time the emitter emits an object. (Tg)

Note that if Time Between Emits is 0 and a new copy is emitted every frame, this would send a new pulse every frame, appearing the same as a solid signal.

# Scene Space Direction

If the emitter sets an initial speed to the emitted object, sends the direction multiplied by the speed. (Tg) (Tg)

Note, signals received by this setting are not normalised into a direction with a magnitude of 1. So if a smaller vector is received it will emit with lower speed, and if a larger vector is received it will emit with a higher speed.

# Scene Space Transform

Sets the position, orientation, and scale in the scene that the object will emitted at. This is great for putting a piece of logic at a position within the scene. (Tg) (Tg)

Note, the scale objects are emitted at is not the scale sent in with the transform. It is transform scale × gizmo scale × stored scale coefficient.

# Destroy Emitted Objects

When the input signal becomes positive > 0, all objects the emitter has emitted are destroyed. (Tg)

# Preserve Wires

When on, emitted objects will have wires added that were connected to the original object. (Tg)

# Destroyer

Removes from the scene affected objects, itself, and any wires going into or out of those objects. (Jj)

This is very useful for “tidying up” gadgets that will be unneeded, freeing up gameplay thermo for other objects within the scene. So if emitters are being used either to create these objects or other things in the scene, it’s a good idea to destroy things that will be unneeded. (Tg) (Tg)
For example, when there are multiple options with associated gadgets but only one will be selected, we can wire destroyers to each possible set, and turn off the destroyer only for the one we don’t want to destroy. (Tg)

Memory: Costs 0.0061% of the things limit per gadget.

Tweak Menu

# Affected Object(s)

All objects wired to this output will be destroyed by this destroyer.

# Object Destroyed

Sends a pulse when the affected objects have been destroyed.

# Destroy Connected Objects

When on, any objects linked to the affected object via connectors will also be destroyed. In turn, objects connected to those objects will be destroyed, and so on.