Portal 2 Puzzle Maker: editoritems.txt
Contents
- 1 Basic Layout
- 2 Item Format
- 3 Item Classes
- 3.1 ItemBase
- 3.2 ItemAngledPanel
- 3.3 ItemBarrierHazard
- 3.4 ItemBarrier
- 3.5 ItemButtonFloor
- 3.6 ItemCatapult
- 3.7 ItemCatapultTarget
- 3.8 ItemCubeDropper
- 3.9 ItemCube
- 3.10 ItemEntranceDoor
- 3.11 ItemCoopEntranceDoor
- 3.12 ItemExitDoor and ItemCoopExitDoor
- 3.13 ItemGoo
- 3.14 ItemLaserEmitter
- 3.15 ItemLightBridge
- 3.16 ItemLightStrip
- 3.17 ItemPaintDropper and ItemPaintSplat
- 3.18 ItemPanelFlip
- 3.19 ItemPedestalButton
- 3.20 ItemPistonPlatform
- 3.21 ItemRailPlatform
- 3.22 ItemStairs
- 3.23 ItemTBeam
- 3.24 ItemTurret
- 3.25 "Extent" Item Classes
editoritems.txt is the configuration file which defines the items available in the Puzzle Maker. It is located at Portal 2/portal2_dlc2/scripts/editoritems.txt
.
Basic Layout
"ItemData" { "Item" { ... } "Item" { ... } "Renderables" { "Item" { ... } } }
editoritems.txt
is mainly composed of a large number of Item
blocks. These are contained within a top-level ItemData
block. Renderables
defines the models used for the placement error icon and the connection heart, and should not need to be altered.
Item Format
"Item" { "Type" "UNIQUE_ITEM_ID" "ItemClass" "ItemBase" "Editor" { ... } "Properties" { ... } "Exporting" { ... } }
Type
- The ID for this item, which must be unique. Must be present.
ItemClass
- Set to predefined values, providing item-specific behaviors. See below for a list of valid classes and their functionality. This property is optional. The default class is
ItemBase
, and is used if no class is specified.
Following the item type and class, each Item
block is split into 3 sections:
Editor
defines how the item should appear and behave within the Puzzlemaker itself.Properties
defines what properties should appear in the item's context menu, and be exported to the instance as$fixup
variables.Exporting
defines how the item should be exported into compiled maps, along with the item's collisions and embed space in the editor.
Editor
The Editor
block contains one or more SubType
s. Most items will only need one of these, but more can be used to give the item multiple variants if necessary.
"Editor" { "SubTypeProperty" "ButtonType" "SubType" { "Name" "Item Name" "Model" { "ModelName" "model_name.3ds" "TextureName" "texture_name.png" } "Palette" { "Tooltip" "ITEM NAME" "Image" "palette/icon.png" "Position" "0 0 0" } "Sounds" { "SOUND_CREATED" "P2Editor.PlaceOther" "SOUND_EDITING_ACTIVATE" "P2Editor.ExpandOther" "SOUND_EDITING_DEACTIVATE" "P2Editor.CollapseOther" "SOUND_DELETED" "P2Editor.RemoveOther" } } "MovementHandle" "HANDLE_NONE" "DesiredFacing" "DESIRES_UP" "InvalidSurface" "CEILING WALL" "CanAnchorOnBarriers" "1" "CanAnchorOnGoo" "1" }
SubTypeProperty
- If this item has multiple
SubType
s, the property specified here will be used to switch between them. Valve's items only use the "type" dropdowns for this, but any property can be set here, including the pedestal button timer widget. Name
- The name displayed for this item in the Remove Connections dropdown. Valve's items set this to a localization token, but this is not necessary for custom items unless you intend to translate the name. See
Tooltip
for the name displayed in the palette.
ModelName
- The name of the model to display in the editor, with the extension
.3ds
. This is not the name of an actual file, but is used as a base; the visible model is loaded from a.mdl
file relative tomodels/props_map_editor
, and the selection mesh is loaded from a.3ds
file relative tomodels/puzzlemaker
, withselection_
added at the start of the path.
.3ds
versions of all the visible models. These are not actually used, only the selection meshes are.selection_
is added at the start of the path, rather than the filename. So if ModelName
is set to subfolder/model.3ds
, the selection mesh would be loaded from selection_subfolder/model.3ds
, not subfolder/selection_model.3ds
[todo tested in?]Model
blocks, and can be duplicates. The required models for each class are listed below.TextureName
- Does not appear to be used, and can be omitted without causing issues. In all of Valve's items, this contains a PNG image to be applied to the model. The actual used textures are materials and their paths are specified within the model itself, so it's unknown what this was used for.
Tooltip
- The name displayed for this item when mousing over it in the palette. Generally written in all uppercase, though this is not required. Valve's items set this to a localization token, but this is not necessary for custom items unless you intend to translate the name.
Image
- The name of the icon to display in the palette, relative to
materials/models/props_map_editor
. The texture itself needs to be a VTF, although it is specified here with a.png
extension. Note that a VMT is not needed for palette icons, unless you also intend to use them elsewhere (such as on a model). Position
- The item's position on the palette.
0 0 0
is the top-left corner, and3 7 0
is the bottom-right.
Sounds
- The names of soundscripts to play when performing certain actions on the item.
SOUND_CREATED
: Played when the item is first placed on a surface.SOUND_EDITING_ACTIVATE
: Played when the item's context menu is opened.SOUND_EDITING_DEACTIVATE
: Played when the item's context menu is closed.SOUND_DELETED
: Played when the item is deleted.
Animations
- Animations to play when performing actions on this item. Note that this is not needed for the standard explode/collapse animations, which will work without this provided they exist in the model.
ANIM_IDLE
: Default animation/pose, when the properties menu is closed. For cubes, this is only used when the dropper is disabled.ANIM_EDITING_ACTIVATE
: Played when the properties menu is opened. If multiple subtypes are present, the new model switches to the last frame of this animation instantly.ANIM_EDITING_DEACTIVATE
: Played when the properties menu is closed.
MovementHandle
- Sets the type of rotation the item will have. The default is
HANDLE_NONE
. The-x
side of the instance is generally the "front" of the item.HANDLE_NONE
: Does not give a handle. The item can still be rotated in 4 directions byDesiredFacing
, or by moving it around the corner of a chamber.HANDLE_4_DIRECTIONS
: Gives a quarter-circle handle to allow pointing in 4 directions.HANDLE_5_POSITIONS
: Allows center-positioning, and 4 side positions. This is done by rotating the item, and switching between two different items when centered/offset. The item types to swap between are hard-coded, so this handle only works withITEM_LASER_CATCHER
,ITEM_LASER_RELAY
andITEM_LASER_EMITTER
(_CENTER
/_OFFSET
).HANDLE_6_POSITIONS
: Allows centering in two orientations, and offset on the 4 sides. The instance should be centered, with the sides in they
axis. When offset, the+x
side faces toward the center of the voxel.Bug:Combining this withCanAnchorOnBarriers
will cause the item to reset to the center of the voxel whenever the chamber geometry is changed. [todo tested in?]HANDLE_8_POSITIONS
: Allows placement on the inner and outer quarter tiles in each direction. Instances should be centered 32 units wide. The-x
side is placed flush with the voxel borderBug:Combining this withCanAnchorOnBarriers
will cause the item to reset to the center of the voxel whenever the chamber geometry is changed. [todo tested in?]HANDLE_36_DIRECTIONS
: Allows rotation on the floor in increments of 10°.Bug:This handle does not function properly on wall- or ceiling-placed items.InvalidSurface
should be used. [todo tested in?]HANDLE_CATAPULT
: Used for Faith Plate items and their targets. Does not appear to have any special functionality.
DesiredFacing
- Allows defaulting to a specific orientation on walls:
DESIRES_ANYTHING
: default, performing no rotation.DESIRES_UP
: Rotate so+x
is facing upright, and the rotation handle points down.DESIRES_DOWN
: Rotate so-x
is facing upright, and the rotation handle points up.DESIRES_HORIZONTAL
: Rotate so they
axis is vertical. Which side is upright varies depending on which wall it is placed on.
InvalidSurface
- Allows prohibiting placement of the item on a surface. Defaults to none, but can be set to any combination of
WALL
,FLOOR
, andCEILING
to disallow placement on that surface.
CanAnchorOnGoo
- If enabled, the top surface of goo pits will be treated as a surface to attach to.
CanAnchorOnBarriers
- If enabled, several surfaces will be treated as attachment points: the side of Glass/Grating, tops of 90° Angled/Glass Panels, the surfaces of Track/Piston Platforms, and the sides of Light Bridges. For the latter, the item will be offset slightly so that it sits on the bridge. Eligibility for placement is defined by the relevant item types (
ITEM_BARRIER
,ITEM_PANEL_ANGLED
,ITEM_PANEL_CLEAR
,ITEM_RAIL_PLATFORM
,ITEM_PISTON_PLATFORM
, andITEM_LIGHT_BRIDGE
). For this reason, custom items cannot have other items placed on them.
HANDLE_6_POSITIONS
or HANDLE_8_POSITIONS
will cause the item to reset to the center of the voxel whenever the chamber geometry is changed. [todo tested in?]Deletable
- If disabled, the item cannot be deleted. Generally not needed for custom items, but can be removed from the default items to allow deleting them.
Copyable
- If disabled, the item cannot be copied. Generally not needed for custom items, but can be removed from the default items to allow copying them.
PseudoHandle
- If enabled, this item will play rotation handle sounds when moved. This is used for the
_EXTENT
items, but can be applied to any class. It should generally not be needed for custom items. OccupiesVoxel
- Present on barriers, Faith Plate targets, and the
_EXTENT
items. Unknown functionality, likely an early version of the similarly named OccupiedVoxels. RenderColor
- Present on Faith Plate targets. In the PeTI trailer, this item had a slight blue tint (matching up with this property). This tinting functionality appears to be broken or disabled in the current release, so this property does nothing.
Properties
"Properties" { "PropertyName" { "DefaultValue" "0" "Index" "1" } "StartEnabled" { "DefaultValue" "1" "Index" "2" } . . . }
PropertyName
- Replace with the name of the property, such as
StartEnabled
. Property names can be found below. DefaultValue
- The default setting for this property. This can be set to invalid values, but will usually crash the game when attempting to switch to a valid option. The only use this has is to make custom cube/gel variants, since they are hardcoded to use the default dropper items.
Index
- The fixup variable number to export this property to on the instance. All of these on a single item must be unique.
Unclassed Properties
These properties are usable with any item class. They generally only affect the $fixup
variables passed to an instance.
ConnectionCount
($connectioncount
)- Required for all items accepting an input. The fixup will be set to the number of items connected to the input. This is usually passed to the "Max Value" option in a
math_counter
. Start...
- These properties add a checkbox with the given name. The associated fixup variable will be set to
0
or1
as appropriate.
Property Name | Editor Label | Fixup |
---|---|---|
StartActive |
"Start active" | $start_active
|
StartDeployed |
"Start deployed" | $start_deployed
|
StartEnabled |
"Start enabled" | $start_enabled
|
StartLocked |
"Start locked" | $start_locked
|
StartOpen |
"Start open" | $start_open
|
StartReversed |
"Start reversed" | $start_reversed
|
AutoDrop |
"Auto-drop first cube" | $disable_autodrop
|
AutoRespawn |
"Auto-respawn cube" | $disable_autorespawn
|
- Note:
AutoDrop
andAutoRespawn
will not be inverted on non-cube items, despite the$fixup
name. On droppers, they behave as expected. TimerDelay
($timer_delay
)- Adds a timer widget which allows selecting numbers from
3
-30
, and "infinite". When infinite, it will be set to99999999999
on theItemPedestalButton
class, and0
on everything else.1
or2
values can be set as theDefaultValue
, but cannot be chosen in the editor. TimerSound
($timersound
)- Set to
0
whenTimerDelay
is infinite, and1
when finite. Always set to0
when no outputs are connected. CubeType
($cube_type
)- While "type" dropdowns can be used on any item class, most of them require a specific one to function.
CubeType
is the one exception to this, as it produces a fixup variable that can be used to change an item's behavior regardless of the class. It also provides the most options (5), and should be usable to switch between variants on most items. AngledPanelType
/AngledPanelAnimation
($animation
)- These two properties add the Angle dropdown normally used for Angled/Glass Panels. The fixup variable is set to
ramp_x_degree_open
, withx
being the angle.
Specialized Properties
These few properties are used on certain specific items, which aren't placeable by users.
IndicatorName
($indicator_name
)- Used on
ITEM_INDICATOR_TOGGLE
. The fixup is set to the name of the antline overlays. IsTimer
($is_timer
)- Used on
ITEM_INDICATOR_PANEL
andITEM_INDICATOR_PANEL_TIMER
. Sets the fixup based on the item type. This is not used for Pedestal Buttons. HelperRadius
($helper_radius
)- Used on
ITEM_PLACEMENT_HELPER
, appears to always be set to64
. UseHelperAngles
($use_helper_angles
)- Used on
ITEM_PLACEMENT_HELPER
, appears to always be set to0
. ForcePlacement
($force_placement
)- Used on
ITEM_PLACEMENT_HELPER
, appears to always be set to0
.
Exporting
"Exporting" { "Instances" { "0" { "Name" "instances/p2editor/instance_name.vmf" "EntityCount" "0" "BrushCount" "0" "BrushSideCount" "0" } } "TargetName" "targetname" "Outputs" { "CONNECTION_STANDARD" { "Activate" "instance:branch;OnTrue" "Deactivate" "instance:branch;OnFalse" } } "Inputs" { "CONNECTION_STANDARD" { "Activate" "instance:counter;Add" "Deactivate" "instance:counter;Subtract" } } "OccupiedVoxels" { "Voxel" { "Pos" "0 0 0" "CollideType" "COLLIDE_NONE" "CollideAgainst" "COLLIDE_NONE" "Surface" { "Normal" "0 0 1" "Pos" "0 0 0" } } } "EmbeddedVoxels" { "Voxel" { "Pos" "0 0 0" } "Volume" { "Pos1" "-1 -1 0" "Pos2" "1 1 -3" } } "ConnectionPoints" { "Point" { "Dir" "1 0 0" "Pos" "-1 3 0" "SignageOffset" "-2 2 0" "Priority" "0" } } "Offset" "64 64 64" }
Offset
- The offset applied to instances. This should generally always be set to
64 64 64
, so the instance rotates around the center of the voxel.
Item Classes
ItemBase
Generic item class, used when none is specified. Has no special properties.
ItemAngledPanel
The item class used by both Angled Panel items. This allows swapping models based on the Angle property and surface color. For ITEM_ANGLED_PANEL
, this spawns a func_brush
with the surface texture for the top of the panel. For the glass panel, the white and black models are set to the same model.
Models
- White surface, 90°
- White surface, 60°
- White surface, 45°
- White surface, 30°
- Black surface, 90°
- Black surface, 60°
- Black surface, 45°
- Black surface, 30°
- Undeployed, 90°
- Undeployed, 60°
- Undeployed, 45°
- Undeployed, 30°
Properties
Portalable
- Needed to switch models based on surface color. Does not export.
ItemBarrierHazard
Used for Fizzlers and Laserfields. Items of this type will mirror themselves to the opposing surface, and can be extended in either direction. A trigger_portal_cleanser
or trigger_hurt
/func_brush
will be generated between the model instances, with the appropriate textures.
Instances
# | Description |
---|---|
0 | Positioned at the item's location in the editor, and recieves all property $fixup variables.
|
1 | Placed at each end of every fizzler brush. The $skin fixup is set to 0 for the fizzler variant, and 2 for laserfields (since skin 1 is a dirty fizzler on the default model). The instances are named target123_modelStart123 or target123_modelEnd123 , and extend/retract inputs are sent to them.
|
Properties
HazardType
- Adds a dropdown for choosing between the "Fizzler" and "Laserfield" subtypes. Bug:If this property is not present on fizzler-type items, the game will crash on placement. [todo tested in?]
ItemBarrier
Used for Glass/Grating items. All instances use the same base name, and are passed $fixup values.
Instances
# | Description |
---|---|
0 |
Surface, placed at all occupied points. In the default item, this only contains the clips. |
1 |
Left-sided section with corner model at the end. |
2 |
Left-sided straight section. |
3 |
Left-sided short section, designed to mesh with corner sections. |
4 |
Left-sided concave corner. |
5 |
Right-sided section with corner model at the end. |
6 |
Right-sided straight section. |
7 |
Right-sided short section, designed to mesh with corner sections. |
8 |
Right-sided concave corner. |
Properties
BarrierType
- Allows choosing between the "Glass" and "Grating" subtypes. Does nothing for custom items, as the same instance is used for both variants.
ItemButtonFloor
Used for Floor Buttons. Note that the ButtonType
property is optional - if not added, only instances 0
and 1
will be used. This is useful for detecting the color of the attached surface.
Instances
# | Description |
---|---|
0 |
Weighted, white |
1 |
Weighted, black |
2 |
Cube, white |
3 |
Cube, black |
4 |
Sphere, white |
5 |
Sphere, black |
Properties
ButtonType
- Allows choosing between "Weighted", "Cube", and "Sphere" subtypes.
ItemCatapult
Used for Aerial Faith Plates. When placed, a matching ITEM_CATAPULT_TARGET
is generated. On export, a trigger_catapult
brush and an info_target
are generated.
Properties
TargetName
($target_name
)- The name of the generated
info_target
. Always set totarget
in Valve's item. CatapultSpeed
($catapult_speed
)- Set based on the trajectory handle in the editor. Todo: Figure out how this is calculated.
VerticalAlignment
- Set to 1 for plates that launch straight up, 0 for everything else.
ItemCatapultTarget
Used for the Faith Plate Target item. When placed, a matching ITEM_CATAPULT
is generated.
Properties
VerticalAlignment
- Set to 1 for plates that launch straight up, 0 for everything else.
ItemCubeDropper
Item class used for cube droppers.
Animations
ANIM_REAPPEAR
- Played when the dropper is re-enabled. The first frame should start the dropper far above the origin.
ANIM_DISAPPEAR
- Played when the dropper is disabled or deleted. The last frame should end with the dropper far above the origin.
Properties
ItemFallStraightDown
($item_fall_straight_down
)- Appears to always be set to
0
. In Valve's instance, this will cause the clips in the iris to be killed, so the cube directly sits on the model and interacts with the iris collision sections.
DropperEnabled
- Adds a "Dropper Enabled" checkbox. When enabled the attached dropper will be visible, and will export. When disabled the cube will export.
ItemCube
Item class used for Cubes. The third item (Reflection) displays a laser visual, and is always set to HANDLE_36_DIRECTIONS
.
Models
- Cube
- "Falling" cube Note:This model is unused, but must be set. It is replaced by animations on the normal model.
Animations
ANIM_GROUND_TO_FALLING_EDITING
- Played when the dropper is re-enabled, and the properties menu is open.
ANIM_FALLING_TO_GROUND_EDITING
- Played when the dropper is disabled, and the properties menu is open.
ANIM_GROUND_TO_FALLING
- Played when the dropper is enabled, and the properties menu is closed. This only occurs when the item is first placed.
ANIM_FALLING_TO_GROUND
- Played when the dropper is deleted while the properties menu is closed.
ANIM_FALLING_EDITING_DEACTIVATE
- Played when the properties menu is closed, and the dropper is enabled.
ANIM_FALLING_EDITING_ACTIVATE
- Played when the properties menu is opened, and the dropper is enabled.
ANIM_FALLING_IDLE
- Idle animation used when the dropper is enabled.
Properties
DropperEnabled
- Adds a "Dropper Enabled" checkbox. When enabled the attached dropper will be visible, and will export. When disabled the cube will export, and
AutoDrop
,AutoRespawn
, andStartEnabled
will be greyed out in the properties menu.
ItemEntranceDoor
Item class used by the SP Entrance Door. This is linked to the Co-op ItemCoopEntranceDoor
, for swapping between.
Properties
CoopDoor
- Stores if the level is coop or not, and if this should be visible or invisible.
Instances
# | Description |
---|---|
0 |
Corridor 1 |
1 |
Corridor 2 |
2 |
Corridor 3 |
3 |
Corridor 4 |
4 |
Corridor 5 |
5 |
Corridor 6 |
6 |
Corridor 7 |
7 |
White door frame |
8 |
Black door frame |
9 |
Entrance elevator, placed at -2000 2000 0 .
|
10 |
Exit elevator, placed at -2000 -2000 0 .
|
11 |
Transition entities, placed at -2500 -2500 0 .
|
ItemCoopEntranceDoor
Item type used by the Co-op Spawn Room. This is linked to the SP ItemEntranceDoor
, for swapping between.
Properties
CoopDoor
- Stores if the level is coop or not, and if this should be visible or invisible.
Instances
# | Description |
---|---|
0 |
Spawn room, placed at the item location. |
1 |
White door frame, unused. |
2 |
Black door frame, unused. |
3 |
Co-op exit chamber, placed at -2000 -2000 0
|
4 |
Transition entities, placed at -3000 -3000 0 .
|
ItemExitDoor
and ItemCoopExitDoor
Item classes used by the SP and Co-op Exit Doors. These are swapped between based on whether the map is co-op, but have the same properties and instances.
Properties
CoopDoor
- Stores if the level is coop or not, and if this should be visible or invisible.
Instances
# | Description |
---|---|
0 |
Corridor 1 |
1 |
Corridor 2 |
2 |
Corridor 3 |
3 |
Corridor 4 |
4 |
White door frame |
5 |
Black door frame |
ItemGoo
Item class for Goo. This class generates without instances by default, but will use one if specified.
Models
- Used for the "goo man" in Valve's item. When selected or moused over, only this model will be highlighted.
- Used for the surrounding ripples in Valve's item. This model will never be highlighted.
ItemLaserEmitter
Item class used for Laser Emitters, to generate the laser preview in the editor.
ItemLightBridge
Item class used for Light Bridges, to generate the bridge preview in the editor.
ItemLightStrip
This is used for the Light Strip item. This class produces the proper collisions and default position for items with the HANDLE_8_POSITIONS
handle.
ItemPaintDropper
and ItemPaintSplat
The class for Gel Droppers, and dropperless gel respectively. Paint splats only output Paint Type
.
ItemPaintDropper
. [todo tested in?]EmbeddedVoxels
. [todo tested in?]Properties
PaintType
- Sets the paint type used.
PaintExportType
($paint_type
)- The actual paint type to be exported to the instance. This is set to
PaintType
+1 for everything other than Repulsion Gel.
$paint_type |
Type |
---|---|
0 |
Repulsion Gel |
2 |
Propulsion Gel |
3 |
Conversion Gel |
4 |
Cleansing Gel |
- Note:Paint type 1 is Reflection Gel, hence why it is skipped. Reflection Gel can be implemented by creating a paint splat item with invalid type 5, then using logic in the dropper instance to switch to the correct type.
PaintFlowType
- Adds a dropdown with gel flow options: "Light", "Medium", "Heavy", "Drip", and "Bomb". Bomb-type droppers use their own instance, but the other types use several
$fixup
variables to configure the paint sprayer:
Property | Light | Medium | Heavy | Drip |
---|---|---|---|---|
$blobs_per_second |
5 | 10 | 20 | 1 |
$angled_blobs_per_second |
3 | 3 | 3 | 0 |
$streak_angle |
8 | 8 | 8 | 0 |
$ambient_sound |
2 | 2 | 3 | 1 |
$render_mode |
0 | 0 | 0 | 1 |
AllowStreaks
- Adds an "Allow Streaks" checkbox, which sets the
$streak_time
fixup to either0
or0.35
. DropperEnabled
- Adds a "Dropper Enabled" checkbox. When enabled the attached dropper will be visible, and will export. When disabled the gel splat will export, and
AutoDrop
,AutoRespawn
,StartEnabled
,PaintFlowType
, andAllowStreaks
will be greyed out in the properties menu.
ItemPanelFlip
Item class used for Flip Panels. When exported, a func_door_rotating
brush is generated automatically. The brush is named instance_name123-flipping_panel
, so entities in the instance can refer to it directly.
Properties
Portalable
($start_deployed
)- Shadows the "portalable" checkbox for the surface, setting the fixup variable (
1
for white,0
for black). Only applies on this class.
ItemPedestalButton
Item class used for Pedestal Buttons. This generates the 3-tile wide base brush, and sets $timer_delay
to 99999999999
when infinite.
ItemPistonPlatform
Item class for Piston Platforms. The positions are saved as a number, where 0
is flush with the floor and 4
is fully extended (512 units). OccupiedVoxels
is ignored for this class - the collisions are resized dynamically based on the height of the platform.
Models
- Bottom grate, placed at floor level
- Piston segment 1
- Piston segment 2
- Piston segment 3
- Piston top
- Destination outline
- Piston segment 4
Properties
AutoTrigger
($allow_auto_trigger
)- Used to enable/disable the automatic trigger. Only enabled when on the floor and with no inputs. Bug:Copying a platform with inputs will leave
AutoTrigger
off, despite the inputs not being copied. [todo tested in?] BottomLevel
($bottom_level
)- Set to an integer between 0 and 3. This sets the lowest position the platform moves to.
TopLevel
($top_level
)- Set to an integer between 1 and 4. This sets the highest position the platform moves to.
StartUp
($start_up
)- Set to 0 or 1. If 0, the platform starts at the low position and moves to the high position. If 1, the platform starts at the high position and moves to the low position.
ItemRailPlatform
Item class for Track Platforms. All items with this class must use a targetname
of railLift
for inputs to function. OccupiedVoxels
and EmbeddedVoxels
are ignored for this class - the collisions and embed space are resized dynamically based on the length of the track.
- Todo: Are
ConnectionPoints
also ignored?
Properties
Oscillate
- Adds a "Rail Oscillate" checkbox for the operating mode of the platform, switchig the instance used. When disabled,
StartActive
will be greyed out in the properties menu. TravelDirection
($travel_direction
)- Set to the direction angles that the platform moves in.
TravelDistance
($travel_distance
)- Set to the distance the platform should move. This is always a multiple of 128.
StartingPosition
($starting_position
)- For oscillating platforms, set to the fraction from the start to the end that it begins at.
Speed
($speed
)- Sets the speed of the platform. Always set to
100
.
Instances
# | Description |
---|---|
0 |
Grating instance for enclosed bases of vertical platforms, overlayed on bottom. |
1 |
Bottom track, with an opening at +X. |
2 |
Middle track, with openings at -X and +X. |
3 |
Top track, with an opening at -X. |
4 |
Non-oscillating platform. Placed at one end. |
5 |
Oscillating platform. Placed at some point on the track, with $starting_position set so the func_movelinear moves to either end appropriately.
|
6 |
Singular track, no openings. |
ItemStairs
Item class for Stairs. The main function is to switch models based on the StartDeployed
property.
Models
- Deployed
- Undeployed
ItemTBeam
Item class for Excursion Funnels. Adds blue/orange vortex effect. The polarity dropdown will only appear on ITEM_TBEAM
.
Properties
ConnectionCountPolarity
($connectioncount_polarity
)- Identical to
ConnectionCount
, but for polarity inputs.
Instances
# | Description |
---|---|
0 |
Main emitter instance, gets all fixup variables. |
1 |
White frame instance |
2 |
Black frame instance |
ItemTurret
Item class for Turrets. This adds the field of view overlay.
"Extent" Item Classes
The item classes ItemRailPlatformExtent
, ItemPistonPlatformExtent
, ItemBarrierHazardExtent
, and ItemBarrierExtent
are used for the items comprising resize handles. These do not usually need to be modified (since all instance and model settings are set in the original item), unless replacing the grey arrow widgets is desired. Custom items will reuse the original extent objects without any issues.