Skip to main content

raw-documentation

Use Ctrl+F, or ⌘+F on Mac to search for information you need.

variables:
- &ComponentsUpdatedEvent
documentation: This event never seems to fire, only tested on the deprecated <code>Blade</code> part, though.
parameters:
- name: ...
type: any
documentation: Unknown.
- &ConfiguredEvent
documentation: Fires when the object is configured.
parameters:
- name: configurerId
type: number
documentation: The <code>UserId</code> of the player who configured the object.
- &DamagedEvent
documentation: Fires when the object is damaged.
parameters:
- name: damage
type: number
documentation: The numerical damage dealt.
- name: damageType
string-union:
- Kinetic
- Energy
documentation: The type of damage dealt.
- name: damageSource
nullable-type: PilotObject
documentation: Will return a reference to the attacking object, seems to provide references to <code>EnergyGun</code>s, <code>Laser</code>s and <code>Gun</code>s, but not <code>Blade</code>s or <code>PlasmaCannon</code>s, there are other members of these lists that are untested.
- &LoopEvent
documentation: Fires when the object is updated by the game loop.
parameters:
- name: deltaTime
type: number
documentation: The 'time' since the last tick, it does not represent the <i>actual</i> time since the last tick was occurred, rather just how often a game tick should be fired (it will always be precisely <code>1</code>).
- &OnClickEvent
documentation: Fires when the object is clicked.
parameters:
- name: clickerId
type: number
documentation: The <code>UserId</code> of the player who clicked the object.
- &TriggeredEvent
documentation: |-
Fires when the object is triggered and provides a reference to the part that triggered it.

If a <code>Microcontroller</code> indirectly initiated the triggering of an object, it will return the object rather than the <code>Microcontroller</code>, whereas in the case of directly triggering the object (i.e., calling <code>:Trigger</code>, but not <code>TriggerPort</code>), it <em>will</em> return the microcontroller.

The trigger source remains unchanged if the trigger is sent through something such as an <code>Antenna</code>, but will be set to a <code>RemoteControl</code> if one is present along the trigger line.
parameters:
- name: otherPart
type: PilotObject
documentation: The source of the trigger signal.
- &UserInputEvent
documentation:
description: Will fire when a user presses a key, it is already filtered to <code>gameProcessedEvent</code> being false.
code-sample: user-input.luau
parameters:
- name: inputObject
type: UserInputObject
documentation: The <code>UserInputObject</code> produced by the player, is not whitelisted to any <code>Enum.UserInputState</code>.
- name: userId
type: number
documentation: The <code>UserId</code> of the player who pressed the input.
- &KeyPressedEvent
documentation:
description: Fires when the user presses a key.
code-sample: key-pressed.luau
parameters:
- name: key
type: Enum.KeyCode
documentation: The <code>Enum.KeyCode</code> of the key that was pressed.
- name: keyName
type: string
documentation: The letter of the key that was pressed. If the key is non-printable (i.e. shift or backspace) <code>keyString</code> will be an empty string. If <code>Shift</code> is held, it will be capitalised.
- name: userId
type: number
documentation: The <code>UserId</code> of the player who pressed the key.
- &ContainerChangedEvent
documentation: Fires when the amount of the resource in the container changes.
parameters:
- name: resourceType
string-union:
- Power
- Solid
- Fluid
- name: resourceAmount
type: number
- &SetColorMethod
documentation:
description: Sets the color of the object.
code-sample: disco-lights.luau
parameters:
- name: color
type: Color3
documentation: The <code>Color3</code> of the color you want to set the object to.
- &GetResourceMethod
documentation: Gets the name of the resource contained, will return the <i>string</i> <code>"nil"</code> if nothing is stored, rather than <i>actually</i> returning <code>nil</code>.
returns:
- name: resource
union:
- type: string
- string-type: nil
- &GetResourceAmountMethod
documentation: Gives you the total amount of objects in the container.
returns:
- name: amount
type: number
- &GetAmountMethod
documentation:
description: Gives you the total amount of objects in the container.
deprecated: Use <code>:GetResourceAmount()</code> instead.
returns:
- name: amount
type: number
- &SwitchValueConfigurable
documentation:
description: Determines whether the switch is active or not.
code-sample: switch-flicker.luau
type: boolean

types:
ResourceString:
type: string

Events:
EventConnection:
generic-definitions:
- name: Name
type: string
- name: Callback
function:
parameters:
- name: ...
type: unknown
type:
_eventName:
type: Name
Callback:
documentation: The function that will be called when the event is fired.
type: Callback
metatable:
type: EventConnectionMetatable
generics:
- type: Name
- type: Callback
EventConnectionMetatable:
export: false
generic-definitions:
- name: Name
type: string
- name: Callback
function:
parameters:
- name: ...
type: unknown
type:
Disconnect:
documentation: Disconnects the event connection, meaning the callback will no longer be ran when the event is fired.
method: {}
Unbind:
method: {}
__mode:
string-type: v
__index:
type: EventConnectionMetatable
generics:
- type: Name
- type: Callback
self:
type: EventConnection
generics:
- type: Name
- type: Callback
Event:
generic-definitions:
- name: Name
type: string
- name: Callback
function:
parameters:
- name: ...
type: unknown
- name: Parameters...
type: ...unknown
type:
_eventName:
type: Name
Connect:
documentation: Connect the provided callback to be called when the event is fired.
method:
parameters:
- name: callback
type: Callback
returns:
- name: callback
type: EventConnection
generics:
- type: Name
- type: Callback

JSON:
JSONValue:
export: false
documentation: An individual JSON value, can be a string, number, boolean, buffer.
union:
- type: string
- type: number
- type: boolean
- type: buffer
JSON:
export: false
documentation: A full JSON value, can be a string, number, boolean, buffer, a JSON array, or another JSON dictionary.
union:
- type:
[JSONValue]:
type: JSON
- array-type: JSON
- type: JSONValue

Universe Info:
Coordinates:
CoordinatesMetatable:
export: false
self-type: Coordinates
type:
__add:
method:
parameters:
- type: Coordinates
returns:
- type: Coordinates
__div:
method:
parameters:
- type: Coordinates
returns:
- type: Coordinates
__eq:
method:
parameters:
- type: Coordinates
returns:
- type: boolean
__mul:
method:
parameters:
- type: Coordinates
returns:
- type: Coordinates
__tostring:
method:
returns:
- type: string
__index:
type: CoordinatesMetatable
Clone:
method:
returns:
- type: Coordinates
CoordStringWithoutPlanet:
method:
returns:
- type: string
GetRandom:
method:
returns:
- type: Random
GetSeed:
method:
returns:
- type: number
ToArray:
method:
returns:
- union-array:
- type: number
- type: boolean
type:
string-type: Coordinates
Coordinates:
documentation: |-
The class that represents universe coordinates.
Provides the ability to do mathematical operations on coordinates, such as addition, subtraction and even multiplication.
type:
InPlanet:
documentation: Whether the coordinates are within a planet's atmosphere.
type: boolean
SolarCoordinates:
documentation: The coordinates within the solar system, i.e., the coordinates relative to the parent star or black hole.
type: Vector2
UniverseCoordinates:
documentation: The coordinates in the universe, i.e., the coordinates of the solar system.
type: Vector2
metatable-type: CoordinatesMetatable
Universe Enums:
CelestialBodyType:
documentation: The type of a celestial body.
string-union:
- Planet
- BlackHole
- Star
PlanetType:
documentation: The type of a planet.
string-union:
- Desert
- Terra
- EarthLike
- Ocean
- Tundra
- Forest
- Exotic
- Barren
- Gas
- RobotDepot
- RobotFactory
StarType:
documentation: The type of a star.
string-union:
- Red
- Orange
- Yellow
- Blue
- Neutron
Complex Region Info:
RegionColor:
documentation: The color of the region, used for planets.
export: false
type:
R:
documentation:
description: The red channel of the region color.
range: [0, 1]
type: number
G:
documentation:
description: The green channel of the region color.
range: [0, 1]
type: number
B:
documentation:
description: The blue channel of the region color.
range: [0, 1]
type: number
RegionEntryLocation:
documentation: The location where the player warps into a region.
export: false
type:
X:
documentation:
description: The <code>X</code> position of the location.
range: [-5000, 5000]
increment: 1
type: number
Y:
documentation:
description: The <code>Y</code> position of the location.
range: [4000, 6000]
increment: 1
type: number
Z:
documentation:
description: The <code>Z</code> position of the location.
range: [-5000, 5000]
increment: 1
type: number
RingData:
documentation: The data about the rings of a planet, if it has any.
export: false
type:
RingStart:
documentation:
range: [6000, 12000]
increment: 1
type: number
RingsEnd:
documentation:
range: [6800, 15000]
increment: 1
type: number
RingsAmount:
documentation:
description: The total amount of individual asteroids within the rings.
range: [500, 1250]
increment: 1
type: number
RingsType:
documentation: The physical material the majority of the rings are made of.
string-union:
- Ice
- Stone
TerrainData:
documentation: The data about how the terrain of a planet generates.
export: false
type:
Height:
documentation:
length: 2
array-type: number
Life:
documentation: Inherits the value of the planet's <code>Atmosphere</code>.
type: boolean
MountainDensity:
documentation:
length: 2
array-type: number
RockDensity:
documentation:
length: 2
array-type: number
Roughness:
documentation:
length: 2
array-type: number
Slopes:
documentation:
length: 2
array-type: number
Temperature:
documentation:
length: 2
array-type: number
TreeSettings:
type:
amount_of_branches:
documentation:
length: 2
array-type: number
amount_of_splits:
documentation:
length: 2
array-type: number
branch_angles:
documentation:
length: 2
array-type: number
branch_offset:
documentation:
length: 2
array-type: number
branch_size_percentage:
type:
max:
type:
width:
type: number
height:
type: number
min:
type:
width:
type: number
height:
type: number
trunk_size:
type:
max:
type:
width:
type: number
height:
type: number
min:
type:
width:
type: number
height:
type: number
Water:
documentation: Inherits the value of the planet's <code>WaterLevel ~= nil</code>.
type: boolean

PlayableRegionInfo:
documentation: A region that can be entered by the player, say, the orbit of a planet, the planet itself or a space region.
type:
Coordinate:
documentation: The coordinates of the region in the non-serialisable <code>Coordinates</code> format.
type: Coordinates
EnterLocation:
documentation: The location where the player warps into the region.
type: RegionEntryLocation
Name:
documentation: The name of the region.
type: string
RegionSeed:
type: number
RegionServer:
type: string
StringCoordinate:
documentation: The coordinates of the region as a string (i.e., <code>0, 0, 0, 0, false</code>).
type: string
OrbitRegionInfo:
intersection:
- type:
OrbitBody:
union:
- type: BlackHoleRegionInfo
- type: StarRegionInfo
- type: PlanetRegionInfo
RegionType:
string-type: Orbit
- type: PlayableRegionInfo
SpaceRegionInfo:
documentation: The region info format of an empty region of space.
intersection:
- type:
RegionType:
string-type: Space
- type: PlayableRegionInfo
BlackHoleRegionInfo:
documentation: The region info format of a black hole.
intersection:
- type:
BlackHoleSize:
documentation:
range: [500, 15000]
increment: 1
type: number
EnterLocation:
type: RegionEntryLocation
PlanetData:
type: never
StarSize:
type: never
StarType:
type: never
- type: PlayableRegionInfo
StarRegionInfo:
documentation: The region info format of a star.
intersection:
- type:
EnterLocation:
type: RegionEntryLocation
StarType:
type: StarType
StarSize:
documentation:
range: [2000, 6000]
increment: 1
type: number
BlackHoleSize:
type: never
PlanetData:
type: never
- type: PlayableRegionInfo
PlanetRegionInfo:
documentation: The region info format of a planet.
intersection:
- type:
PlanetData:
type:
Atmosphere:
type: boolean
DayCycleIncrement:
type: number
EnterLocation:
type: RegionEntryLocation
GenerationHeightScale:
type: number
Gravity:
type: number
PlanetMaterial:
string-union:
- Grass
- Sand
- Snow
- Rock1
- Rock2
PlanetType:
type: PlanetType
PrimaryColor:
type: RegionColor
Resources:
array-type: string
Rings:
nullable-type: RingData
SecondaryColor:
type: RegionColor
StartingTime:
type: number
Temperature:
type: number
TerrainConfig:
type: TerrainData
BlackHoleSize:
type: never
StarType:
type: never
StarSize:
type: never
- type: PlayableRegionInfo
CompleteRegionInfo:
documentation: A type that demonstrates how the different region info types are returned interchangeably.
union:
- type: OrbitRegionInfo
- type: SpaceRegionInfo
- type: BlackHoleRegionInfo
- type: StarRegionInfo
- type: PlanetRegionInfo
RegionInfo:
union:
# Space
- type:
BeaconCount:
documentation: The amount of beacons in the region at the time of the scan.
type: number
HasRings:
documentation: Whether the region has planetary rings.
type: boolean
Name:
documentation: The name of the region.
type: string
SubType:
type: never
TidallyLocked:
documentation: This value contains meaningless data for a space region, but is nonetheless present.
type: boolean
Type:
string-type: Planet
# Planet
- type:
BeaconCount:
documentation: The amount of beacons in the region at the time of the scan.
type: number
Color:
documentation: The primary color of the planet.
type: Color3
Gravity:
documentation: The gravity of the planet.
type: number
HasAtmosphere:
documentation: Whether the planet has an atmosphere.
type: boolean
HasRings:
documentation: Whether the planet has planetary rings.
type: boolean
Name:
documentation: The name of the planet.
type: string
Resources:
documentation: The resources that can be found on the planet.
array-type: string
SubType:
documentation: The type of the planet, such as <code>Desert</code>, <code>Terra</code>, <code>EarthLike</code>, etc.
type: PlanetType
TidallyLocked:
documentation: Whether the planet is tidally locked, meaning, whether it has a day/night cycle.
type: boolean
Type:
string-type: Planet
# Black Hole
- type:
BeaconCount:
documentation: The amount of beacons in the region at the time of the scan.
type: number
Name:
documentation: The name of the region.
type: string
Size:
documentation:
description: The visual size of the black hole.
range: [500, 15000]
increment: 1
type: number
Type:
string-type: BlackHole
# Star
- type:
BeaconCount:
documentation: The amount of beacons in the region at the time of the scan.
type: number
Name:
documentation: The name of the region.
type: string
Size:
documentation:
description: The visual size of the star.
range: [2000, 6000]
increment: 1
type: number
SubType:
documentation: The type of the star, such as <code>Red</code>, <code>Orange</code>, <code>Yellow</code>, etc.
type: StarType
Type:
string-type: Star
File System:
FileSystem:
type:
__index:
type: FileSystem
chdir:
method:
parameters:
- name: pathname
type: string
returns:
- type: string
copy:
method:
parameters:
- name: pathnameFrom
type: string
- name: pathnameTo
nullable-type: string
mkdir:
method:
parameters:
- name: pathname
nullable-type: string
mklink:
method:
parameters:
- name: linkName
type: string
- name: targetName
nullable-type: string
moveMerge:
method:
parameters:
- name: pathnameFrom
type: string
- name: pathnameTo
nullable-type: string
readdir:
method:
parameters:
- name: pathname
type: string
returns:
- array-type: string
readfile:
method:
parameters:
- name: filepath
type: string
returns:
- type: string
rename:
method:
parameters:
- name: pathnameFrom
type: string
- name: pathnameTo
nullable-type: string
unlink:
method:
parameters:
- name: pathname
type: string
writefile:
method:
parameters:
- name: filepath
type: string
- name: contents
type: string
pwd:
method:
returns:
- type: string

new:
function:
parameters:
- name: source
nullable-union:
- type: FileSystemRoot
- type: FileSystemDirectory
returns:
- type: FileSystem
exists:
function:
parameters:
- name: pathname
type: string
returns:
- type: boolean
filename:
function:
parameters:
- name: pathname
type: string
returns:
- type: string
join:
function:
parameters:
- name: ...
type: string
returns:
- type: string
parentdir:
function:
parameters:
- name: pathname
type: string
returns:
- type: string
resolve:
function:
parameters:
- name: pathname
type: string
returns:
- type: string
split:
function:
parameters:
- name: pathname
type: string
returns:
- array-type: string
separator:
type: string
RawFileSystem:
type:
Device:
function:
parameters:
- name: device
type: any
- name: attributes
type: FileAttributes
returns:
- type: FileSystemDevice
Directory:
function:
parameters:
- name: contents
type:
[string]:
type: FileSystemFileNode
- name: attributes
type: FileAttributes
- name: readonly
nullable-type: boolean
returns:
- type: FileSystemDirectory
File:
function:
parameters:
- name: contents
type: string
- name: attributes
type: FileAttributes
returns:
- type: FileSystemFile
Link:
function:
parameters:
- name: pathname
type: string
- name: attributes
type: FileAttributes
returns:
- type: FileSystemLink
Root:
function:
parameters:
- name: root
type: FileSystemDirectory
- name: attributes
type: FileAttributes
returns:
- type: FileSystemRoot
SYSTEM_NOACCESS:
type: FileAttributes
SYSTEM_READONLY:
type: FileAttributes
read:
method:
parameters:
- name: root
type: FileSystemRoot
- name: pathname
type: string
- name: options
nullable-type: FileSystemOperationOptions
returns:
- nullable-type: FileSystemFileNode
readlink:
method:
parameters:
- name: root
type: FileSystemRoot
- name: link
type: FileSystemLink
- name: options
nullable-type: FileSystemOperationOptions
returns:
- nullable-type: FileSystemFileNode
write:
method:
parameters:
- name: root
type: FileSystemRoot
- name: pathname
type: string
- name: node
type: FileSystemFileNode
- name: options
nullable-type: FileSystemOperationOptions
primitive:
documentation: A primitive type, used to represent a primitive value stored within the file system.
export: false
union:
- type: string
- type: number
- type: boolean
- array-type: primitive
- type:
[primitive]:
type: primitive

File Metadata:
FileAttributes:
type:
metadata:
nullable-type:
[primitive]:
type: primitive
permissions:
nullable-union:
- type:
owner:
union:
- string-type: system
- type: number
userPermissions:
nullable-type:
[number]:
type: FilePermissions
- type: FilePermissions
FilePermissions:
type:
read:
nullable-type: boolean
write:
nullable-type: boolean
FileSystemOperationOptions:
type:
ignoreLinks:
nullable-type: boolean
ignorePermissions:
nullable-type: boolean
File Types:
FileSystemRoot:
type:
attributes:
nullable-type: FileAttributes
kind:
string-type: root
pwd:
type: string
root:
type: FileSystemDirectory
FileSystemDevice:
type:
attributes:
nullable-type: FileAttributes
device:
type: any
kind:
string-type: device
FileSystemDirectory:
type:
attributes:
nullable-type: FileAttributes
contents:
type:
[string]:
type: FileSystemFileNode
kind:
string-type: directory
FileSystemFile:
type:
attributes:
nullable-type: FileAttributes
contents:
type: string
kind:
string-type: file
FileSystemLink:
type:
attributes:
nullable-type: FileAttributes
target:
type: string
kind:
string-type: link
FileSystemFileNode:
union:
- type: FileSystemDirectory
- type: FileSystemFile
- type: FileSystemLink
- type: FileSystemRoot
- type: FileSystemDevice
Method & Configurable Data:
MethodParameter:
export: false
type:
Description:
documentation: A description of the method parameter.
nullable-type: string
Name:
documentation: The name of the method parameter.
nullable-type: string
Type:
documentation: The type of the method parameter.
nullable-type: string
MethodData:
type:
Arguments:
documentation: The arguments that the method takes.
array-type: MethodParameter
Description:
documentation: A description of the method.
nullable-type: string
Name:
documentation: The name of the method.
type: string
Results:
array-type: MethodParameter
ConfigurableData:
type:
DefaultValue:
documentation: The default value of the configurable, if it has one.
nullable-type: any
Description:
documentation: A description of the configurable.
type: string
Name:
documentation: The name of the configurable.
type: string
Options:
documentation: The options that the configurable can take.
nullable-union:
- array-type: string
- array-type: number
Type:
documentation: The type of the configurable.
type: string
Modems:
ModemRequest:
type:
Body:
documentation: The body of the request, is usually a JSON string.
nullable-type: string
Compress:
documentation: What type of compression to use for the request.
nullable-type: Enum.HttpCompression
Headers:
documentation: The headers of the request.
nullable-type:
[string]:
type: any
Method:
documentation: The HTTP method to use for the request.
nullable-string-union:
- GET
- POST
- PUSH
- PATCH
- DELETE
Url:
documentation: The real world URL to send the request to.
type: string
ModemRequestResponse:
type:
Body:
documentation: The body of the response, is usually a JSON string.
type: any
Headers:
documentation: The headers of the response.
type:
[string]:
type: any
StatusCode:
documentation: The HTTP status code of the response.
type: number
StatusMessage:
documentation: The HTTP status message of the response.
type: string
Success:
documentation: Whether the request was successful or not.
type: boolean
Object Detector:
ObjectDetectorHitNothing:
documentation: The data provided by the object detector when it doesn't hit anything.
type:
isTerrain:
documentation: Whether or not the hit object is terrain.
type: true
Distance:
documentation: Will be greater than or equal to the <code>ObjectDetector</code>'s <code>MaxDistance</code> configuration, note, there is a slight error in this value so it may be ~1e-3 less than it should be.
type: number
ObjectDetectorHitTerrain:
documentation: The data provided by the object detector when it hits terrain.
type:
isTerrain:
documentation: Whether or not the hit object is terrain.
type: true
Name:
documentation: |-
The name of the hit object. If it is "Collider" then the object detector is hitting an <code>EnergyShield</code>, it can also be a player's limb, it will not provide the name of the player, just the name of the hit limb.
open-string-union:
- Head
- Torso
- Left Arm
- Right Arm
- Left Leg
- Right Leg
- Collider
Color:
documentation: The <code>Color</code> of the hit object.
type: Color3
Position:
documentation: The <code>Position</code> of the hit object itself, not the <code>Position</code> of contact between the ray and the object.
type: Vector3
CFrame:
documentation: The <code>CFrame</code> of the hit object.
type: CFrame
Size:
documentation: The <code>Size</code> of the hit object.
type: Vector3
Distance:
documentation: The distance between the start of the ray and the contact point.
type: number
ObjectDetectorHitObject:
documentation: The data provided by the object detector when it hits an object.
type:
isTerrain:
documentation: Whether or not the hit object is terrain.
type: false
CreatedBy:
documentation: |-
The <code>UserId</code> of the person who <em>created</em> the part.
Parts created by "THE DEVELOPERS" or "???" have a <code>CreatedBy</code> value of <code>-1</code>.
It <em>can</em> be <code>nil</code> if the game doesn't know who created the part.
nullable-type: number
LockedBy:
documentation: |-
The <code>UserId</code> of the person who <em>locked</em> the part.
Parts locked by "THE DEVELOPERS" have a <code>LockedBy</code> value of <code>-2</code>
Parts locked by "???" have a <code>LockedBy</code> value of <code>-1</code>
This value will be <code>nil</code> if the part is unlocked.
nullable-type: number
Name:
documentation: The name of the hit object.
type: string
Color:
documentation: The <code>Color</code> of the hit object.
type: Color3
Position:
documentation: The <code>Position</code> of the hit object itself, not the <code>Position</code> of contact between the ray and the object.
type: Vector3
CFrame:
documentation: The <code>CFrame</code> of the hit object.
type: CFrame
Size:
documentation: The <code>Size</code> of the hit object.
type: Vector3
Distance:
documentation: The distance between the start of the ray and the contact point.
type: number
ObjectDetectorHitData:
documentation: A type that demonstrates the fact that what type the object detector returns depends on what it hits.
union:
- type: ObjectDetectorHitNothing
- type: ObjectDetectorHitTerrain
- type: ObjectDetectorHitObject
Black Box Logs:
RegionLogType:
documentation: The type of a region log, used to describe what happened in the region.
string-union:
- HyperDrive
- Aliens
- Spawned
- Death
- ExitRegion
- Poison
- Irradiated
- Suffocating
- Freezing
- Melting
RegionLog:
documentation: A log of an event that happened in a region, such as a player spawning into or warping out of the region.
type:
Desc:
documentation: A description of the event that happened in the region.
type: string
Event:
documentation: The type of event that happened in the region.
type: RegionLogType
TimeAgo:
documentation: The time since the event happened, in seconds. Does not update in real time.
type: number
User Input Mediums:
UserInputObject:
documentation: The Waste of Space equivalent of ROBLOX's <code>InputObject</code>.
type:
KeyCode:
documentation: Contains a <code>Enum.KeyCode</code> enum that describes what kind of input was used. For types of input like keyboard, this describes what key was pressed. For inputs like the mouse, this provides no additional information.
type: Enum.KeyCode
KeyName:
documentation: Will be capitalised if <code>Enum.KeyCode.LeftShift</code> <em>or</em> <code>Enum.KeyCode.RightShift</code> was held at the time of the input.
type: string
UserInputState:
documentation: Describes what the state of input this <code>UserInputObject</code> represents, such as whether the input has began, ended, or been changed somehow.
type: Enum.UserInputState
UserInputType:
documentation: Describes what kind of input this <code>UserInputObject</code> represents, such as mouse, keyboard, touch or gamepad input.
type: Enum.UserInputType
Cursor:
documentation: A specific user's cursor on a <code>TouchScreen</code>.
type:
Player:
documentation: The <code>Username</code> of the <code>Cursor</code>'s owner.
type: string
UserId:
documentation: The <code>UserId</code> of the <code>Cursor</code>'s owner.
type: number
Pressed:
documentation: Whether or not the left mouse button is held.
type: boolean
X:
documentation: The <code>X</code> position of the <code>Cursor</code> relative to the top left corner of the display.
type: number
Y:
documentation: The <code>Y</code> position of the <code>Cursor</code> relative to the top left corner of the display.
type: number
AR:
ARInput:
documentation: This class is obtained through <code>ARCursor.UserInput</code> and provides information about the user's input.
export: false
type:
Gamepad:
documentation:
description: A dictionary of <code>Enum.UserInputType.GamepadX</code> keys to an array of <code>InputObject</code>s representing the current state of all available inputs for said gamepad as values.
source: https://discord.com/channels/616089055532417036/823313507167502336/1038621144397381692
type:
[Enum.UserInputType]:
array-type: InputObject
GamepadEnabled:
documentation: This property describes whether the device being used by a user has an available gamepad. If gamepads are available.
type: boolean
Keyboard:
documentation:
description: An array of <code>InputObject</code>s associated with the keys currently being pressed.
source: https://create.roblox.com/docs/reference/engine/classes/UserInputService#GetKeysPressed
array-type: InputObject
KeyboardEnabled:
documentation:
description: This property describes whether the user's device has a keyboard available. This property is <code>true</code> when the user's device has an available keyboard, and <code>false</code> when it does not.
source: https://create.roblox.com/docs/reference/engine/classes/UserInputService#KeyboardEnabled
type: boolean
LastInputType:
documentation:
description: The <code>Enum.UserInputType</code> associated with the user's most recent input.
source: https://create.roblox.com/docs/reference/engine/classes/UserInputService#GetLastInputType
type: Enum.UserInputType
Mouse:
documentation:
description: An array of <code>InputObject</code>s corresponding to the mouse buttons currently being currently held down.
source: https://create.roblox.com/docs/reference/engine/classes/UserInputService#GetMouseButtonsPressed
array-type: InputObject
TouchEnabled:
documentation:
description: This property describes whether the user's current device has a touch screen available.
source: https://create.roblox.com/docs/reference/engine/classes/UserInputService#TouchEnabled
type: boolean
VREnabled:
documentation:
description: This property describes whether the user is using a virtual reality (VR) device.
source: https://create.roblox.com/docs/reference/engine/classes/UserInputService#VREnabled
type: boolean
ARCamera:
documentation: The player's camera, used for AR devices.
type:
CFrame:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#CFrame
readonly: true
type: CFrame
CameraType:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#CameraType
readonly: true
type: Enum.CameraType
DiagonalFieldOfView:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#DiagonalFieldOfView
readonly: true
type: number
FieldOfView:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#FieldOfView
readonly: true
type: number
FieldOfViewMode:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#FieldOfViewMode
readonly: true
type: Enum.FieldOfViewMode
Focus:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#Focus
readonly: true
type: CFrame
HeadScale:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#HeadScale
readonly: true
type: number
MaxAxisFieldOfView:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#MaxAxisFieldOfView
readonly: true
type: number
NearPlaneZ:
documentation:
source: https://create.roblox.com/docs/reference/engine/classes/Camera#NearPlaneZ
readonly: true
type: number
RenderCFrame:
documentation:
description: The <code>CFrame</code> the camera is rendered at (for VR).
source: https://create.roblox.com/docs/reference/engine/classes/Camera#RenderCFrame
readonly: true
type: CFrame
ViewportSize:
documentation:
description: The size of the camera viewport.
source: https://create.roblox.com/docs/reference/engine/classes/Camera#ViewportSize
readonly: true
type: Vector2
ViewportSizeUI:
documentation: The size of the camera viewport (2D UI context)
readonly: true
type: Vector2
ARCursor:
documentation: A cursor that represents a player's mouse in the 3D world. For use with AR devices.
type:
Player:
documentation: The name of the player the cursor is for.
type: string
UserId:
documentation: The user ID of the player.
type: number
Origin:
documentation: A CFrame indicating where the mouse originated from. It is positioned at the camera and oriented toward the mouse's 3D position.
type: Vector3
UnitRay:
documentation: A Ray directed toward the mouse's position in 3D space. It originates from the CFrame of the camera. Like all unit rays, it has a magnitude of 1.
type: Ray
WorldPosition:
documentation: The world position of the mouse cursor.
type: Vector3
Target:
documentation: The PartObject that is being hovered over. You can call methods on this part!
type: PilotObject
Pressed:
documentation: A boolean for whether or not the mouse button is pressed.
type: boolean
UserInput:
documentation: A table of input data (would suggest printing with repr) - Contains Mouse, Keyboard, Gamepad, VREnabled, KeyboardEnabled, TouchEnabled, GamepadEnabled, and LastInputType.
type: ARInput
ScreenPosition:
documentation: The XY screen position of the mouse cursor.
type: Vector2
UserCFrames:
documentation: Contains <code>Head</code>, <code>LeftHand</code>, and <code>RightHand</code> <code>CFrame</code>s for VR.
type:
RightHand:
type: CFrame
LeftHand:
type: CFrame
Head:
type: CFrame
X:
documentation: The <code>X</code> position of the cursor on the screen.
type: number
Y:
documentation: The <code>Y</code> position of the cursor on the screen.
type: number
VirtualWorldPosition:
documentation: The world position of the mouse cursor in the virtual 3D space.
type: Vector3
Hit:
documentation: The <code>CFrame</code> the user's mouse is located at.
type: CFrame
VirtualTarget:
documentation: The hovered part in the virtual 3D space.
type: BasePart
MouseDelta:
documentation: The current change in position of the mouse for the frame that was sent.
type: Vector2
Camera:
documentation: The camera of the player associated with the mouse.
type: ARCamera
String Enums:
General:
TemperatureUnit:
documentation: A unit of temperature, i.e., fahrenheit, celsius, or kelvin.
string-union:
- K
- F
- C
Permission:
documentation: Different types of permissions that can be granted to players.
string-union:
- Modify
- Unlock
- Paint
- Configure
- Interact
- Attach
CanvasContext:
documentation: The context of different canvases, for use in AR (where you can have 2D interfaces and 3D objects at once)
string-union:
- 2D
- 3D
Configuration:
PolysiliconMode:
documentation: The mode of polysilicon, used in the <code>Polysilicon</code> part.
string-union:
- Activate
- Deactivate
- FlipFlop
BladeShape:
documentation: The shape of the blade, used in the <code>Blade</code> part.
string-union:
- Block
- Spheroid
- Cone
RemoteControlMode:
documentation: The mode of the remote control, used in the <code>RemoteControl</code> part.
string-union:
- EmitFromTarget
- SendDirectly
PlayerLimb:
documentation: The limb of the player, used in the <code>Player</code> part.
string-union:
- Head
- Torso
- Left Arm
- Right Arm
- Left Leg
- Right Leg
- HumanoidRootPart
VehicleSeatMode:
documentation: The mode of the vehicle seat, used in the <code>VehicleSeat</code> part.
string-union:
- Horizontal
- Yaw/Pitch
- Full
- Mouse
HandleTriggerMode:
documentation: The mode of the handle trigger, used in the <code>Handle</code> part.
string-union:
- MouseDown
- MouseUp
- Both
HandleSwingMode:
documentation: The mode of the handle swing, used in the <code>Handle</code> part.
string-union:
- None
- Swing
- Point
RelayMode:
documentation: The mode of the relay, used in the <code>Relay</code> part.
string-union:
- Send
- Receive
InstrumentType:
documentation: The type of instrument reading desired, used in the <code>Instrument</code> part.
string-union:
- Speed
- AngularSpeed
- Temperature
- Time
- Power
- Size
- Position
- TemperatureF
- Orientation
- TemperatureC
- AirTemperatureF
- AirTemperatureC

globals:
Functions:
Miscellaneous:
Beep:
documentation:
code-sample: |-
-- Beep!
Beep(1)
description: Produces a beep sound using a triangle wave.
sources:
- https://discord.com/channels/616089055532417036/823313507167502336/1228725037448564808
function:
parameters:
- name: frequency
nullable-type: number
GetCPUTime:
documentation:
deprecated: Use <code>pilot.getCPUTime</code> instead.
description: Returns the current elapsed CPU time.
function:
returns:
- type: number
logError:
documentation:
description: Logs an error in the output, without actually throwing an error.
sources:
- https://discord.com/channels/616089055532417036/823313507167502336/1037962036149235743
function:
parameters:
- name: message
type: string
- name: level
nullable-type: number
Part Getters:
GetPart:
documentation:
code-sample: |-
-- Get a `Screen` from any port
local screen = GetPart("Screen")
description: Gets a part of the specified type from any connected ports.
hydrator:
name: get-part
port: false
multiple: false
GetPartFromPort:
documentation:
code-sample: |-
-- Get a `TouchScreen` from port 1
local touchScreen = GetPartFromPort(1, "TouchScreen")
description: Gets a part of the specified type from any port of the specified ID.
hydrator:
name: get-part
port: true
multiple: false
GetParts:
documentation:
code-sample: |-
-- Get all `Switch`es connected to any port
local switches = GetParts("Switch")
description: Gets all the parts of the specified type from any connected ports.
hydrator:
name: get-part
port: false
multiple: true
GetPartsFromPort:
documentation:
code-sample: |-
-- Get all `Light`s from port 1
local lights = GetPartsFromPort(1, "Light")
description: Gets all the parts of the specified type from any port of the specified ID.
hydrator:
name: get-part
port: true
multiple: true
Ports:
GetPort:
documentation:
code-sample: |-
-- Get port with an ID of 1
local port = GetPort(1)
description: Gets the connected port of the specified ID.
function:
parameters:
- name: id
nullable-type: number
returns:
- nullable-type: Port
GetPorts:
documentation:
code-sample: |-
-- Get all ports, no matter the ID
local ports = GetPort()
description: Gets all the connected ports of the specified ID.
function:
parameters:
- name: id
nullable-type: number
returns:
- array-type: Port
TriggerPort:
documentation: Triggers the specified port.
function:
parameters:
- name: port
union:
- type: Port
- type: number
JSON:
JSONDecode:
documentation:
code-sample: |-
-- Decode a JSON string
local jsonString = '{"name": "example", "value": 42}'
print(repr(JSONDecode(jsonString))) -- { name = "example", value = 42 }
description: Decodes JSON.
source: https://create.roblox.com/docs/reference/engine/classes/HttpService#JSONDecode
function:
parameters:
- name: data
type: string
returns:
- type: JSON
JSONEncode:
documentation:
code-sample: |-
local data = { name = "example", value = 42 }
print(JSONEncode(data)) -- {"name":"example","value":42}"
description: Encodes JSON. Proxy for <code>HttpService:JSONEncode</code>.
source: https://create.roblox.com/docs/reference/engine/classes/HttpService#JSONEncode
function:
parameters:
- name: data
type: JSON
returns:
- type: string
Values:
Miscellaneous:
Network:
type: any
pilot:
documentation: Provides functions for accessing/manipulating information about threads such as permissions, ownership, and interrupts.
type:
setTimeout:
documentation: Sets the CPU timeout of the given thread. Requires ring -1 or lower. This will not let you exceed the game's timeout, but will let you set lower timeouts. This has to do with whatever thread happens to be actively running. Currently there is not a way for you to recover from a timeout, so you should use .setInterrupt to handle your own custom timeouts.
function:
parameters:
- name: timeout
nullable-type: number
- name: thread
nullable-type: thread
hasRing:
documentation: Checks if the target (or running) thread has the specified ring privilege or lower.
function:
parameters:
- name: ring
type: number
- name: thread
nullable-type: thread
returns:
- type: boolean
setInterrupt:
documentation: Will repeatedly call the interrupt every period CPU time on a valid resumption time (ignores yields/waits). Returns a function which deletes the interrupt.
function:
parameters:
- name: period
type: number
- name: callback
function:
returns:
- function:
getTimeout:
documentation: Gets the current CPU timeout, or the CPU timeout that the given thread will obey.
function:
parameters:
- name: thread
nullable-type: thread
returns:
- type: number
setRing:
documentation: Sets the ring of the target (or running) thread. You can use .saveRing to store the current ring so you can escalate again later.
function:
parameters:
- name: ring
type: number
- name: thread
nullable-type: thread
claimThread:
documentation: Sets the thread's parent to the running thread. The target thread must be part of the sandbox and may not exist on a lower ring otherwise nothing will happen.
function:
parameters:
- name: thread
type: thread
returns:
- type: boolean
getCPUTime:
documentation: Returns the current elapsed CPU time.
function:
returns:
- type: number
getRing:
documentation: Gets the ring of the target (or running) thread.
function:
parameters:
- name: thread
nullable-type: thread
returns:
- type: number
getThreadParent:
documentation: Gets the parent of the target (or running) thread. The parent thread must be part of the sandbox and may not exist on a lower ring otherwise nil will be returned.
function:
parameters:
- name: thread
nullable-type: thread
returns:
- nullable-type: thread
saveRing:
documentation: Creates a function which elevates the caller to the specified (or current) ring regardless of its privilege. You can use this to de-escalate, spawn a new thread, and then re-escalate your thread after. Requires ring 0 or lower.
function:
parameters:
- name: ring
nullable-type: number
returns:
- function: {}
Microcontroller:
Microcontroller:
documentation: The microcontroller object the program is running in.
type: Microcontroller
SandboxID:
documentation: The GUID of the microcontroller the program is running in.
type: string
SandboxRunID:
documentation: A GUID for the current running program, it is (re)generated when the microcontroller is turned on.
type: string
FileSystem:
FileSystem:
type: FileSystem
RawFileSystem:
type: RawFileSystem

classes:
PilotObject:
documentation: The base object that all other objects inherit from.
hydrator:
name: wos-object
abstract: true
events:
Destroying:
documentation: Fires when the object is destroyed.
methods:
CanInstallComponent:
parameters:
- name: componentName
nullable-type: ComponentName
returns:
- name: canInstall
type: boolean
CanUninstallComponent:
parameters:
- name: componentName
nullable-type: ComponentName
returns:
- name: canUninstall
type: boolean
Click:
documentation: Emulates a user clicking on the object, seems dysfunctional in some cases, (i.e., <code>ClickButton</code> components do not get triggered).
GetComponent:
parameters:
- name: componentName
type: ComponentName
returns:
- name: component
nullable-type: Component
GetConfigurables:
documentation: Gets information about the configurables of the object.
returns:
- name: configurables
type:
[string]:
type: ConfigurableData
GetEvents:
documentation: Gets information about the events of the object.
returns:
- name: events
array-type: string
documentation: An array of event names.
GetMethods:
documentation: Gets information about the methods of the object.
returns:
- name: methods
type:
[string]:
type: MethodData
GetNameOfOwnerAsync:
documentation:
deprecated: Use <code>require("players"):GetUsername</code> instead.
returns:
- name: ownerUsername
nullable-type: string
GetOwnerId:
documentation: Returns who locked the part if the part is locked, otherwise returns who created the part.
returns:
- name: ownerId
nullable-type: number
GetShape:
documentation: Gets the shape of the part, if the part is a block, it will return <code>nil</code>.
returns:
- name: shape
nullable-type: string
GetDurability:
documentation:
description: Gets the <i>maximum</i> (not current) durability of the object.
deprecated: Use <code>PilotObject.Durability</code> instead.
returns:
- name: durability
type: number
GetColor:
documentation:
description: Gets the color of the object.
deprecated: Use <code>PilotObject.Color</code> instead.
returns:
- name: color
type: Color3
GetSize:
documentation:
description: Gets the size of the object.
deprecated: Use <code>PilotObject.Size</code> instead.
returns:
- name: size
type: Vector3
GetTemperature:
documentation:
description: Gets the temperature of the object.
deprecated: Use <code>PilotObject.Temperature</code> instead.
returns:
- name: temperature
type: number
HasComponent:
returns:
- name: hasComponent
type: boolean
HasPermission:
documentation: Returns a boolean as to whether or not the microcontroller has permission to do the specified action.
parameters:
- name: permission
type: Permission
returns:
- name: hasPermission
type: boolean
IsDestroyed:
documentation: Returns a boolean as to whether or not the object is destroyed.
returns:
- name: isDestroyed
type: boolean
IsGrounded:
documentation: Tells you if the part is grounded, meaning it does it have physics. If it is attached to terrain or an anchor for example, it will be grounded.
returns:
- name: isGrounded
type: boolean
ListComponents:
returns:
- name: components
array-type: string
Trigger:
documentation: Triggers the object.
properties:
ClassName:
documentation: A string representing the type of the object.
type: string
GUID:
type: string
CFrame:
documentation:
description: The current <code>CFrame</code> of the object.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#CFrame
type: CFrame
Position:
documentation:
description: The current position of the object.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#Position
type: Vector3
Orientation:
documentation:
description: The current orientation of the object.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#Orientation
type: Vector3
AssemblyCenterOfMass:
documentation:
description: The center of mass of the object's assembly.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#AssemblyCenterOfMass
type: Vector3
AssemblyLinearVelocity:
documentation:
description: The velocity of the object's assembly.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#AssemblyLinearVelocity
type: Vector3
AssemblyMass:
documentation:
description: The total mass of the object's assembly.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#AssemblyMas
type: number
Mass:
documentation:
description: The mass of the object.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#Mass
type: number
Anchored:
documentation:
description: Whether or not the object is anchored.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#Anchored
type: boolean
Health:
documentation:
description: The health of the object as a <i>percentage</i> (between 0 and 1) of the total durability.
range: [0, 1]
type: number
Durability:
documentation:
description: The <i>total</i> durability of the object.
code-sample: |-
-- It can alternatively be calculated like so:
local partdata = require("partdata")
local partInfo = assert(partdata.Parts[part.ClassName], "unknown part")

local baseVolume = partInfo.BaseSize[1] * partInfo.BaseSize[2] * partInfo.BaseSize[3]
local volume = part.Size.X * part.Size.Y * part.Size.Z

local durability = ( volume / baseVolume ) ^ ( 1 / 3 ) * partInfo.BaseDurability
type: number
Temperature:
documentation: The current [<i>temperature</i>](https://en.wikipedia.org/wiki/Temperature) of the object, this is different from the <i>heat</i>.
type: number
Heat:
documentation: The current [<i>heat</i>](https://en.wikipedia.org/wiki/Heat) of the object, this is different from the <i>temperature</i>.
type: number
Color:
documentation:
description: The current color of the object.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#Color
type: Color3
Size:
documentation:
description: The current size of the object.
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#Size
type: Vector3
Material:
documentation:
description: The current material of the object as an [<code>Enum.Material</code>](https://create.roblox.com/docs/reference/engine/enums/Material).
source: https://create.roblox.com/docs/reference/engine/classes/BasePart#Material
type: Enum.Material
PartLocked:
documentation: The <code>UserId</code> of the user who <i>locked</i> the part. Will be <code>nil</code> if the part is unlocked.
nullable-type: number
CreatedBy:
documentation: The <code>UserId</code> of the user who <i>created</i> the part. Will be <code>nil</code> if the part was created by a constructor.
nullable-type: number

ARController:
documentation:
description: |-
Like a TouchScreen, but for your actual screen.
Has the capability to display augmented 3D objects and visuals in a virtualized world.
Click to equip/unequip. Output may only be displayed from one ARController at a time.
categories: [Logic, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetCanvas:
overloads:
- documentation: Returns the parent container of all the AR controller's 2D content.
parameters:
- name: context
nullable-string-type: 2D
returns:
- name: canvas
type: Folder
- documentation: Returns the parent container of all the AR controller's 3D content.
parameters:
- name: context
string-type: 3D
returns:
- name: canvas
type: WorldModel
ClearElements:
documentation: Clears all objects that are descendants of the screen.
parameters:
- name: context
type: CanvasContext
ClearElements3D:
documentation: Clears 3D elements.
CreateElement:
documentation:
description: Creates an element of the specified class name with the specified properties.
code-sample: |-
-- Try and get the ar controller, throw an error if we don't find it using `assert`.
local screen = assert(GetPart("ARController"), "no ar controller connected")

-- Clear the left over screen elements from the last time GUIs were loaded onto it.
-- Note: If you utilise the `Instance.new` API instead, you do not need to do this,
-- as objects created through said API are *automatically* deleted when the
-- microcontroller stops running.
screen:ClearElements()

-- We're going to spawn 32 randomly sized/coloured/positioned cubes.
for index = 1, 32 do
-- Generate a random `Vector3` in a -16 to 16 cube region.
local position = Vector3.new(
math.random(-16, 16),
math.random(-16, 16),
math.random(-16, 16)
)

-- This may be confusing if you've never worked with `CFrame`s, 'why is pi here?'
-- the reason is that pi is 180 degrees when working in 'radians' (the angle system
-- used by `CFrame`s). `math.random` with *no* parameters returns a random decimal
-- number between 0 and 1, so each parameter is just a number between 0 and pi.
local orientation = CFrame.Angles(
math.random() * math.pi,
math.random() * math.pi,
math.random() * math.pi
)

-- Select a size between 0 and 4 for all axes, `Vector3.one` is shorthand for
-- `Vector3.new(1, 1, 1)`, we multiply it by a number between 1 and 4 and this
-- gives us a vector with a side length of 1 to 4 on all axes.
local size = Vector3.one * (1 + math.random() * 3)

-- Pick a random colour with 3 `math.random` calls
local color = Color3.new(math.random(), math.random(), math.random())

-- Call the `CreateElement` method with the `ClassName` of the object you want to create,
-- and a dictionary of the properties to apply (you cannot specify the `Parent` property).
-- Note the `"3D"` context parameter, this says we want to use the instance viewport, you
-- could alternatively use `CreateElement3D` to avoid this third parameter.
local object = screen:CreateElement("Part", {
CFrame = orientation + position + Microcontroller.Position,
Size = size,
Color = color,
TopSurface = Enum.SurfaceType.Smooth, -- The `Top` and `Bottom` surfaces
BottomSurface = Enum.SurfaceType.Smooth, -- have a stud pattern by default.
}, "3D")
end

-- Keep the microcontroller on by permanently 'yielding' the code (making it wait).
coroutine.yield()
parameters:
- name: className
type: string
- name: properties
type:
[string]:
type: any
- name: context
type: CanvasContext
returns:
- name: element
type: Instance
CreateElement3D:
documentation: Creates a 3D part instance in the player's viewport.
parameters:
- name: shape
string-union:
- Ball
- Block
- Cylinder
- Wedge
- CornerWedge
- name: properties
type:
[string]:
type: any
returns:
- name: part
type: Part
GetCursors:
documentation: Gets a dictionary of player usernames to their cursors.
returns:
- name: cursors
type:
[string]:
type: ARCursor
GetCursor:
documentation: Returns the part owner's cursor, or, alternatively, any other player's cursor if the owner does not have a cursor (this is considered the primary user).
returns:
- name: cursor
type: ARCursor
configurables:
Transparency:
type: number
documentation:
description: The transparency of the AR display.
range: [0, 1]
inrement: 0.1
events:
CursorPressed:
documentation: Fired when a player left clicks.
parameters:
- name: cursor
type: ARCursor
OnClick:
documentation: Fires when the object is clicked.
parameters:
- name: clickerId
type: number
CursorMoved:
documentation: Fired when a player's cursor updates.
parameters:
- name: cursor
type: ARCursor
UserInput: *UserInputEvent
CursorReleased:
documentation: Fired when a player releases the left click button.
parameters:
- name: cursor
type: ARCursor
KeyPressed: *KeyPressedEvent
Configured: *ConfiguredEvent
ARGlasses:
documentation:
description: |-
Like a handheld Microcontroller, with a TouchScreen for your actual screen.
Has the capability to display augmented 3D objects and visuals in a virtualized world.
categories: [Tools, Electrical, Craftable, Spawnable]
hydrator:
name: wos-object
extends: [TouchScreen, Microcontroller, Antenna, Router, Tool]

# Has both methods and events, is configurable, and is both craftable and spawnable
Assembler:
documentation:
description: Assembles items as configured when the structure is supplied with the required power and resources.
categories: [Starter, Electrical, Spawnable, Craftable]
sources:
- https://discord.com/channels/616089055532417036/1066536049876148414/1067544760052617327
hydrator:
name: wos-object
methods:
CalculateCraftingRecipe:
documentation: Returns the ingredients (including <code>Power</code>), products, and time cost of a specified crafting operation.
parameters:
- name: items
union:
- array-type: string
- type:
[string]:
type: number
documentation: A list of parts <em>or</em> a dictionary of each part with how many of said part to craft.
returns:
- name: recipe
type:
Power:
type: number
[string]:
type: number
documentation: Information relating to the crafting recipe.
CraftItems:
documentation:
description: Will craft the specified set of items.
deprecated: true
parameters:
- name: items
union:
- array-type: string
- type:
[string]:
type: number
GetInventory:
documentation:
deprecated: Returns an empty, frozen table.
returns:
- name: inventory
type:
[string]:
type: number
GetRecipe:
documentation: Returns the resource(s) required to craft the given item, or nil if the item doesn't have a recipe/doesn't exist.
parameters:
- name: itemName
type: string
returns:
- name: recipe
type:
[string]:
type: number
GetCraftCooldown:
documentation: How long until the assembler can craft again.
returns:
- name: craftCooldown
type: number
Craft:
documentation: |-
Will pause and craft the desired item at the next available point, returning a boolean representing whether or not the item was successfully crafted.

This uses a queue under the hood, the first thing to call it gets to craft first, and then finally the assembler performs its configured craft if nothing else is queued.
parameters:
- name: itemName
type: string
returns:
- name: success
type: boolean
events:
Configured: *ConfiguredEvent
Loop: *LoopEvent
configurables:
Assemble:
documentation: The name of the object to be assembled.
type: string
Constructor:
documentation:
description: |-
Similar to an assembler, but constructs a model when triggered. However, the <code>Constructor</code> must be supplied with the correct materials for a model.
For example, a car model requiring 50 iron and 30 wires will need a bin attached with 50 iron, a bin attached with 30 wires and 100 power.
You can find out how many materials you need through the <code>CalculateModelRecipe</code> method.
Has a 60 second cooldown to prevent model spamming.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
CalculateModelRecipe:
documentation: Returns the required resources to construct the specified model.
parameters:
- name: modelCode
type: string
documentation: If left unspecified it will utilise the <code>ModelCode</code> configurable.
returns:
- name: materials
type:
[string]:
type: number
documentation: The materials required to generate the model.
events:
Configured: *ConfiguredEvent
Triggered: *TriggeredEvent
configurables:
ModelCode:
documentation: The model data of the model to be created by the Constructor.
type: string
Autolock:
documentation: Determines if the created model should be locked by the owner of the Constructor.
type: boolean
RelativeToConstructor:
documentation: Determines if the created model should be loaded in relative to the orientation of the Constructor.
type: boolean
Coupler:
documentation:
description: Will connect to nearby couplers with matching CouplerIDs when activated by Polysilicon. Deactivating via Polysilicon will detach two couplers. Repeatedly emits trigger signals when it is able to connect with another coupler of the same ID.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
IsCoupled:
documentation: Returns whether or not the coupler is currently attached to another coupler.
returns:
- name: isCoupled
type: boolean
GetAttachedCoupler:
documentation: Returns a reference to the current connected coupler, will return <code>nil</code> if no other coupler is connected.
returns:
- name: otherCoupler
nullable-type: Coupler
events:
Couple: {}
Decouple: {}
configurables:
CouplerID:
documentation:
description: The ID of this coupler.
default: C1
max-length: 64
type: string
AutoTrigger:
documentation: Whether or not the coupler should emit trigger signals while in range of another valid coupler.
type: boolean
Dispenser:
documentation:
description: Releases items from attached bins.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
Dispense:
documentation: Dispenses a single item instantly.
events:
Configured: *ConfiguredEvent
Loop: *LoopEvent
configurables:
Filter:
documentation:
description: Which kinds of resources to drop, separated by commas.
max-length: 256
type: string
EnergyShield:
documentation:
description: |-
Generates a forcefield protecting its interior from energy-based weapons such as <code>Lasers</code> and <code>PlasmaCannons</code>, and offers full protection from Warhead explosions.
An EnergyShield has a few sets of properties that you can fine tune to create a balanced shield.

<code>ShieldRadius</code> - The size of the entire shield. This will exponentially consume more power the higher the radius is.
<code>RegenerationSpeed</code> - Scale from 1 to 10 on how fast the shield will regenerate. The shield will not regenerate while unpowered.
<code>ShieldStrength</code> - Scale from 1 to 10 on how much the shield can endure.

<code>RegenerationSpeed</code> and <code>ShieldStrength</code> combined must not exceed 11.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetShieldHealth:
documentation: Gets the current health of the shield as a percentage between <code>0</code> and <code>1</code>.
returns:
- name: health
type: number
documentation:
range: [0, 1]
CalculateCost:
parameters:
- name: radius
nullable-type: number
documentation: |-
The radius of the theoretical energy shield you want to calculate the power cost for.
If <code>nil</code>, will default to the <code>EnergyShield.Radius</code> configuration.
The parameter is not bound by the constraints of <code>EnergyShield.Radius</code> and will accept any input.
returns:
- name: cost
type: number
documentation: The <code>Power</code> cost per game tick to keep the <code>EnergyShield</code> running.
SetColor: *SetColorMethod
events:
Configured: *ConfiguredEvent
Loop: *LoopEvent
configurables:
ShieldRadius:
documentation:
description: The size of the entire shield. The shield exponentially consumes more power the higher this is.
default: 100
range: [50, 1000]
type: number
RegenerationSpeed:
documentation:
description: Determines how fast the shield regenerates after being hit.
default: 5
range: [1, 10]
type: number
ShieldStrength:
documentation:
description: Determines the shield's resistance to damage.
default: 5
range: [1, 10]
type: number
Faucet:
documentation:
description: Releases liquids and gases from Tanks.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
extends: Dispenser
Gyro:
documentation:
description: |-
Stabilizes vehicles and structures by pointing upwards. Useful for mechs or orientating structures to the correct rotation. Has a maximum range of 75000 studss. The gyro can also be configured to seek objects and players.

When powered, the gyro will follow its seek commands that can be configured using hammer.
The gyro has commands that allow it to find and seek objects and players.

An example of gyro's seek configuration includes "Player1 Player2" which will seek and aim towards the nearest player.

Putting "Radar" at the beginning of the seek configuration will make it target parts instead. For example, "Radar Gold Copper" will find the nearest Gold or Copper deposit.

Putting "AllExcept" will make the seeker target everything except the given list, basically inverting it. For example, "AllExcept Player1 Player2" will target "Player3" or "Player"4 but not "Player1".

The commands "Min" and "Max" set the minimum or maximum distance the seeker will target. For example, "Min20 Max500" will make the seeker only target objects within 500 studs and more than 20 studs away.

TriggerWhenSeeked will trigger all connected parts every second when the Seek configurable is satisfied

"TrigMin" and "TrigMax" work the same as "Min" and "Max" but it's for the trigger signal, trigger signal will only be sent if the above property is true.

ExceptOwnedBy accepts a list with no spaces, targeting parts that are NOT owned by the people in the supplied list.

Putting "Sun" as part of the list will make the seeker automatically target the main stellar body in the system.

Gyros also have a property called MaxTorque. This allows you to control the max force on the gyro to stabilize it.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
PointAlong:
documentation: Points the gyro along the specified vector. Pass <code>nil</code> or configure the gyro to stop pointing.
parameters:
- name: direction
type: Vector3
documentation: The vector for the gyro to point along.
- name: up
nullable-type: Vector3
documentation: The <code>UpVector</code> of the gyro with a default of <code>(0, 1, 0)</code>.
PointAt:
documentation: Points the gyro towards the specified position. Pass <code>nil</code> or configure the gyro to stop pointing.
parameters:
- name: position
type: Vector3
documentation: The position for the gyro to look at.
- name: up
nullable-type: Vector3
documentation: The <code>UpVector</code> of the gyro with a default of <code>(0, 1, 0)</code>.
events:
Configured: *ConfiguredEvent
Loop: *LoopEvent
configurables:
Seek:
documentation:
description: The seek commands.
max-length: 512
type: string
DisableWhenUnpowered:
documentation: Determines whether this gyro should be disabled while it does not have power.
type: boolean
MaxTorque:
documentation:
description: The maximum force in each axis the gyro can exert.
default: 10000000000
range: [0, 10000000000]
type: number
TriggerWhenSeeked:
documentation: Determines whether to send out a trigger signal when the gyro detects something to seek as determined by the Seek configurable.
type: boolean
HyperDrive:
documentation:
description: |-
A device used to travel at faster than light speeds to other regions of the universe.

Simply input the coordinates to your destination and have a sufficient amount of fuel, and you'll be on your way to your destination.
To initiate warping, power the hyperdrive and trigger it. When warping, the hyperdrive will be anchored to prevent any movement.

The power required for warping will be dependent on the distance travelled, as well as the size of the object being transported.
The amount of power required will be displayed in the hyper drive, shown in the red text.

All of the parts connected to the hyperdrive and every player sitting will be teleported, however any free floating parts or standing up players will be sucked into the vaccum of space, so be careful.
Make sure the numbers on the hyperdrive is facing up to ensure correct stud alignment.
categories: [Propulsion, Starter, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetRequiredPower:
documentation: Returns the amount of power required for the warp.
events:
Configured: *ConfiguredEvent
Triggered: *TriggeredEvent
configurables:
Coordinates:
documentation: The coordinates to warp to.
type: Coordinates
Instrument:
documentation:
description: |-
A part that measures information about the world.

You can set it to measure one of:
- <code>Power</code> is the total amount of power connected to the instrument.
- <code>Position</code> is the position of the instrument in the world.
- <code>Orientation</code> is the orientation of the instrument in the world.
- <code>Size</code> is the size of the part attached to the instrument.
- <code>Speed</code> is the speed of the instrument.
- <code>AngularSpeed</code> is the angular speed of the instrument.
- <code>Temperature</code> is the temperature of the instrument in Kelvin
- <code>TemperatureF</code> is the temperature of the instrument in Fahrenheit.
- <code>TemperatureC</code> is the temperature of the instrument in Celsius.
- <code>AirTemperature</code> is the air temperature around the instrument in <code>Kelvin</code>.
- <code>AirTemperatureF</code> is the air temperature around the instrument in <code>Fahrenheit</code>.
- <code>AirTemperatureC</code> is the air temperature around the instrument in <code>Celsius</code>.
- <code>Time</code> is the current region time.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetReading:
documentation: Passing a number to <code>GetReading</code> is deprecated. Use the string name of the reading instead.
parameters:
- name: type
nullable-union:
- type: InstrumentType
- type: number
returns:
- name: reading
union:
- type: number
- type: Vector3
- type: string
events:
Loop: *LoopEvent
configurables:
Type:
documentation: The type of instrument readout to display on the instrument.
type: InstrumentType
Light:
documentation:
description: Emits light when powered with electricity. Can be colored in different ways, changing the light color.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
SetColor: *SetColorMethod
events:
Configured: *ConfiguredEvent
configurables:
Brightness:
documentation:
description: The brightness of the light.
default: 1
range: [0, 2]
type: number
LightRange:
documentation:
description: The range of the light.
default: 60
range: [1, 60]
type: number
Shadows:
documentation: Whether or not the light will cast shadows.
type: boolean
Microcontroller:
documentation:
description: |-
Runs limited Roblox luau code in an environment called "pilot.lua".
Triggering it with a polysillicon will either start, stop, or restart (FlipFlop mode) your code.
You can also click it to turn it on/off.

Microcontrollers consume power depending on the amount of CPU time you use, which is the number of milliseconds your code spends doing stuff.
Pauses and waits don't count towards your CPU time since they allow the game to continue on to go do other work.
One CPU unit costs 1 units of power.
If you don't have enough power your Microcontroller will pause.

Your code has a CPU limit, it can only spend up to 100 milliseconds every game tick. If you go over this limit it will pause until the next game tick.

You can press F9 to view WoS's client-side output. Any logs or errors from your Microcontrollers will appear there.

If you want to know about various globals you can use from Roblox's engine, you can take a look at Roblox's Developer Documentation and search for Roblox Globals and Lua Globals.
For more info, check the game's wiki, or look at one of the game's social platforms if it's linked at the bottom of the game page.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
Send:
documentation: Sends the data you provide to a remote microcontroller. Parts you pass will be based on your microcontroller's context.
parameters:
- name: ...
type: any
documentation: The parameters to send to the other microcontroller.
Receive:
documentation: Waits for data to be received.
returns:
- name: sender
type: Microcontroller
documentation: The microcontroller sending the data.
- name: ...
type: any
documentation: The parameters sent through by the other microcontroller.
Shutdown:
documentation: Kills the microcontroller.
events:
Loop: *LoopEvent
OnClick: *OnClickEvent
configurables:
Code:
documentation: The code to be executed on this microcontroller.
type: string
StartOnSpawn:
documentation: Whether or not to start the Microcontroller when it spawns.
type: boolean
Modem:
documentation:
description: A part that allows you to send messages cross-region and make HTTP requests to the web.
categories: [Logic, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetAsync:
documentation: Identical to <code>HttpService:GetAsync</code>.
source: https://create.roblox.com/docs/reference/engine/classes/HttpService#GetAsync
parameters:
- name: url
type: string
- name: nocache
nullable-type: boolean
- name: headers
nullable-type:
[string]:
type: any
returns:
- name: response
type: string
PostAsync:
documentation: Identical to <code>HttpService:PostAsync</code>.
source: https://create.roblox.com/docs/reference/engine/classes/HttpService#PostAsync
parameters:
- name: url
type: string
- name: data
type: string
- name: contentType
nullable-type: Enum.HttpContentType
- name: compress
nullable-type: boolean
- name: headers
nullable-type:
[string]:
type: any
returns:
- name: response
type: string
SendLocalMessage:
parameters:
- name: ...
type: any
documentation: Unknown.
PostRequest:
documentation:
deprecated: This function still 'exists', but has no effect.
parameters:
- name: domain
type: string
- name: data
type: string
UrlEncode:
documentation: |-
The <code>UrlEncode</code> function [percent-encodes](https://en.wikipedia.org/wiki/Percent-encoding) a given string so that reserved characters properly encoded with '%' and two hexadecimal characters.
Identical to <code>HttpService:UrlEncode</code>.
source: https://create.roblox.com/docs/reference/engine/classes/HttpService#UrlEncode
parameters:
- name: input
type: string
returns:
- name: encodedUrl
type: string
GetRequest:
documentation:
deprecated: This function still 'exists', but has no effect.
parameters:
- name: domain
type: string
returns:
- name: response
type: string
RealPostRequest:
documentation:
deprecated: Use <code>Modem:PostAsync</code> instead.
parameters:
- name: domain
type: string
- name: data
type: string
- name: asyncBool
type: boolean
- name: transformFunction
function:
parameters:
- name: ...
type: any
- name: optionalHeaders
nullable-type:
[string]:
type: any
returns:
- name: response
type:
success:
type: boolean
response:
type: string
SendMessage:
parameters:
- name: data
type: string
- name: id
nullable-type: string
RequestAsync:
documentation: Identical to <code>HttpService:RequestAsync</code>.
source: https://create.roblox.com/docs/reference/engine/classes/HttpService#RequestAsync
parameters:
- name: options
type: ModemRequest
returns:
- name: response
type: ModemRequestResponse
events:
Loop: *LoopEvent
MessageSent: {}
configurables:
NetworkID:
documentation:
description: The ID of the network this modem should connect to.
default: M1
max-length: 64
type: string
Piston:
documentation:
description: More accurately a linear actuator. There is a rail among us.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
SetPosition: {}
events:
Configured: *ConfiguredEvent
configurables:
Position1:
documentation:
description: Determines the position of the first state of the piston.
default: 0
range: [0, 100]
type: number
Position2:
documentation:
description: Determines the position of the second state of the piston.
default: 100
range: [0, 100]
type: number
Speed:
documentation:
description: Determines the speed of the piston.
default: 10
range: [0, 50]
type: number
Reactor:
documentation:
description: |-
Generates steam using water and heat from radiation.
Up to 4 pieces of uranium can be inserted into the reactor as fuel.
If the temperature is above 400, it will begin to turn water into steam (rate dependent on temperature).
If the temperature exceeds 1200 F, a meltdown will occur.
The Reactor fuel status can be acquired through the :GetFuel() method with a microcontroller.
Polysilicon is used to control a reactor, and fuel must be ejected manually:

Activation lowers the control rods, decreasing reaction rate.
Deactivation raises the control rods, allowing fuel to react.
FlipFlop will eject fuel or waste from the fuel rod with the least fuel.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetEfficiency:
returns:
- name: efficiency
type: number
GetFuel:
documentation: Returns an array with four numeric values each representative of their fuel rod. The order is strict and goes from the first to the fourth fuel rod.
returns:
- name: fuelState
array-type: number
GetTemp:
documentation: Returns a numeric value representing the current temperature of the reactor in degrees fahrenheit.
returns:
- name: temperature
type: number
events:
Loop: *LoopEvent
configurables:
Alarm:
documentation: Determines whether the reactor alarm system is enabled for when the reactor is near meltdown temperature.
type: boolean
TriggerWhenEmpty:
documentation: Determines whether or not the reactor will emit a trigger signal when its fuel is empty.
type: boolean
Screen:
documentation:
description: |-
Allows for the programmatic creation of GUI elements.

Internally, it utilises a [<code>SurfaceGUI</code>](https://create.roblox.com/docs/reference/engine/classes/SurfaceGui), and is therefore no different from normal roblox GUIs.

There are some limitations with <code>Screen</code>s in Waste of Space, such as an inability to use <code>[ViewportFrame](https://create.roblox.com/docs/reference/engine/classes/SurfaceGui)</code>s
categories: [Logic, Electrical, Spawnable, Craftable]
code-sample: |-
-- Try and get the screen part, throw an error if we don't find it using `assert`.
local screen = assert(GetPart("Screen"), "no screen connected")

-- Create a text label with the text 'Hello, world!' which takes up the entire screen.
local textLabel = Instance.new("TextLabel")
textLabel.Text = "Hello, world!"
textLabel.Size = UDim2.fromScale(1, 1)
textLabel.BorderSizePixel = 0
textLabel.BackgroundColor = Color3.fromRGB(255, 255, 255)

-- Parent it to the 'canvas' of the screen.
textLabel.Parent = screen:GetCanvas()

-- Keep the microcontroller on by permanently 'yielding' the code (making it wait).
coroutine.yield()
hydrator:
name: wos-object
methods:
GetCanvas:
documentation: Returns the parent container of all the screen's content.
returns:
- name: canvas
type: Frame
ClearElements:
documentation: Clears all objects that are descendants of the screen.
CreateElement:
documentation:
description: Creates an element of the specified class name with the specified properties.
code-sample: |-
-- Try and get the screen part, throw an error if we don't find it using `assert`.
local screen = assert(GetPart("Screen"), "no screen connected")

-- Clear the left over screen elements from the last time GUIs were loaded onto it.
-- Note: If you utilise the `Instance.new` API instead, you do not need to do this,
-- as objects created through said API are *automatically* deleted when the
-- microcontroller stops running.
screen:ClearElements()

-- Call the `CreateElement` method with the `ClassName` of the object you want to create,
-- and a dictionary of the properties to apply (you cannot specify the `Parent` property).
local textLabel = screen:CreateElement("TextLabel", {
Text = "Hello, world!",
Size = UDim2.fromScale(1, 1),
BorderSizePixel = 0,
BackgroundColor = Color3.fromRGB(255, 255, 255),
})

-- Keep the microcontroller on by permanently 'yielding' the code (making it wait).
coroutine.yield()
parameters:
- name: className
type: string
- name: properties
type:
[string]:
type: any
returns:
- name: element
type: Instance
GetDimensions:
documentation:
description: Gets the size of the screen in pixels in the form of a <code>Vector2</code>.
code-sample: |-
-- Try and get the screen part, throw an error if we don't find it using `assert`.
local screen = assert(GetPart("Screen"), "no screen connected")

-- Store the current screen size.
local previousScreenSize = screen:GetDimensions()

-- Connect to the `Loop` event of the `Microcontroller` that is running the code,
-- this will make the code within run precisely every game tick.
Microcontroller.Loop:Connect(function()
-- Get the new current screen dimensions.
local screenSize = screen:GetDimensions()

-- Compare these new dimensions with the previously recorded dimensions, if
-- they are equal, cancel this running code with 'return'.
if screenSize == previousScreenSize then return end

-- Do something with the information about the screen dimensions changing,
-- in this case, it triggers a print statement.
print(`The screen size changed! It used to be {previousScreenSize}, but is now {screenSize}!`)

-- Update the stored current dimensions as to make them accurately reflect reality.
previousScreenSize = screenSize
end)
returns:
- name: dimensions
type: Vector2
documentation: The size of the screen in pixels.
events:
Configured: *ConfiguredEvent
configurables:
VideoID:
documentation:
description: The ID of the camera feed being to be viewed, or 0 for none.
default: 0
range: [0, 10000000000]
increment: 1
type: number
Servo:
documentation:
description: |-
Spins objects attached to the hinge at the front when powered, to set angles.

<code>Polysilicon</code> can be used to control its angle.
- <code>Activate</code> will increment the goal angle by the configured angle step (clockwise looking at its face).
- <code>Deactivate</code> will decrement the goal angle (counter-clockwise).
- <code>FlipFlop</code> will reset the angle to 0.

<code>Microcontroller</code>s can also set a servo's angle with <code>:SetAngle(targetAngle)</code>
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
SetAngle:
documentation: Sets the target angle of a servo just as would if you were configuring it.
parameters:
- name: angle
type: number
documentation: The angle of the servo in angular degrees.
events:
Configured: *ConfiguredEvent
configurables:
Angle:
documentation:
description: Determines the angle of the servo. When configured with a value outside of the specified range, it will be calculated modulo 360 (i.e., 360 ⟹ 0, 375 ⟹ 15, -10 ⟹ 350).
default: 0
range: [0, 359]
type: number
ServoSpeed:
documentation:
description: Determines the speed at which the servo is driven.
default: 10
range: [0, 20]
type: number
AngleStep:
documentation:
description: Determines the change in angle when a pulse is received by Polysilicon.
default: 5
range: [-180, 180]
type: number
Responsiveness:
documentation:
description: Determines how fast the servo attempts to correct its angle.
default: 45
range: [0, 90]
type: number
Speaker:
documentation:
description: |-
Plays audio of length up to 5 seconds, unless it is powered in which case it can play a full audio.
When clicked or triggered, it will toggle playing music and will play the song id you give it.
Speaker:LoadSound(SoundId) will return a Sound object
A Sound object can be modified using properties SoundId, Looped, PlaybackSpeed, Pitch, TimePositionand the methods Play, Pause, Stop, Destroy
categories: [Electrical, Logic, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
LoadSound:
documentation: Returns a roblox [<code>Sound</code>](https://create.roblox.com/docs/reference/engine/classes/Sound) object with the given <code>soundId</code>.
parameters:
- name: soundId
type: string
returns:
- name: loadedSound
type: Sound
ClearSounds:
documentation: Stops and clears all sounds the speaker is currently playing.
Chat:
documentation: Displays the <code>message</code> in a chat bubble just like if a player said it.
parameters:
- name: message
type: string
PlaySound:
documentation: Plays a sound with the given <code>soundId</code>. If no <code>soundId</code> is provided it will default to the <code>Audio</code> configuration of the speaker.
parameters:
- name: soundId
nullable-type: string
events:
Configured: *ConfiguredEvent
Triggered: *TriggeredEvent
configurables:
Audio:
documentation:
description: The audio asset ID to be played.
default: "5289642056"
max-length: 64
type: string
Pitch:
documentation:
description: The pitch at which to play the audio.
default: 1
range: [0, 3]
type: number
Volume:
documentation:
description: The volume the audio plays at. The maximum volume is determined by the size of the speaker.
default: 1
range: [0, 1]
type: number
Telescope:
documentation:
description: |-
A device that allows you to see and query information about other regions and planets in space while powered.
Click on the <code>Telescope</code> to open up a menu that will display information about any location within 100 units of your location.
To view a specific coordinate, configure the <code>Telescope</code> and set to the desired coordinates. This has a one minute cooldown.

The <code>Telescope</code> provides the following information:
- Resources on the planet
- The planet's temperature
- The planet's distance from its star
- The type of planet
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
WhenRegionLoads:
parameters:
- name: callback
function:
parameters:
- name: regionInfo
type: CompleteRegionInfo
GetCoordinate:
documentation: Gets information about the configured region.
returns:
- name: regionInfo
type: RegionInfo
GetCurrentCoordinate:
documentation: Returns the current region coordinates. If you are within a region with a <code>RegionCloaker</code> active, only the owner of the <code>RegionCloaker</code> can call this method.
returns:
- name: currentCoordinate
type: Coordinates
events:
Configured: *ConfiguredEvent
configurables:
ViewCoordinates:
documentation: The coordinates to view.
type: Coordinates
TemperatureGate:
documentation:
description: |-
The gate will allow power to pass through it while the temperature is in a certain range.
It can be used in conjunction with a <code>Transistor</code> part to control the flow of generated trigger signals based on its temperature.

Like the <code>TemperatureSensor</code> part, it will also use the attached Reactor temperature if there is one.
Though, unlike the <code>TemperatureSensor</code> part, this one updates at a much faster 20 tps instead of 0.5 tps.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetTemp:
returns:
- name: temperature
type: number
GetState: {}
GetTemperature:
returns:
- name: temperature
type: number
events:
Configured: *ConfiguredEvent
configurables:
TemperatureRange:
documentation: The range of temperatures (°F) within which the gate will be open.
type: NumberRange
Inverted:
documentation: Whether or not the state will be inverted.
type: boolean
SwitchValue: *SwitchValueConfigurable
TemperatureSensor:
documentation:
description: |-
When the surrounding temperature is within the defined range, it will emit a trigger signal every two seconds.
When connected to a Reactor part, will use the Reactor's internal temperature.

The more advanced twin of this part, the TemperatureGate part may be more useful in many cases.
It updates at a quicker rate and is more versatile, due to it controlling power flow.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetTemp:
returns:
- name: temperature
type: number
events:
Loop: *LoopEvent
configurables:
TemperatureRange:
documentation: The range of temperatures (°F) which this sensor will trigger at.
type: NumberRange
TouchScreen:
documentation:
description: |-
A <code>Screen</code>, but can handle player mouse input.
This is to be used with programming.
categories: [Logic, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
extends: Screen
methods:
GetCursors:
documentation: Gets a dictionary of player usernames to their cursors if their cursors are on the screen.
returns:
- name: cursors
type:
[string]:
type: Cursor
documentation: A dictionary of player usernames to their cursors.
GetCursor:
documentation: Gets the specified player's cursor.
parameters:
- name: username
type: string
documentation: The username of the player's cursor you want to get.
returns:
- name: cursor
type: Cursor
events:
Configured: *ConfiguredEvent
CursorMoved:
documentation: Fires when a cursor is moved.
parameters:
- name: Cursor
type: Cursor
CursorPressed:
documentation: Fires when a user presses their left mouse button.
parameters:
- name: Cursor
type: Cursor
CursorReleased:
documentation: Fires when a user releases their left mouse button.
parameters:
- name: Cursor
type: Cursor
configurables:
VideoID:
documentation:
description: The ID of the camera feed being to be viewed, or 0 for none.
default: 0
range: [0, 10000000000]
increment: 1
type: number
VehicleSeat:
documentation:
description: |-
Allows players to control vehicles by rotating when sat on.
It is incredibly important to have when creating vehicles.

Attaching buttons to the vehicleseat will allow the player sitting on it to trigger the button by pressing a key.
Simply attach the button to the vehicle seat, configure it to the keybind you would like, and it will allow you to trigger that button by pressing the key when sitting down in the seat.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetOccupant:
documentation: Retrieves the <code>UserId</code> of the seat's occupant, it will be <code>nil</code> if there is no occupant.
returns:
- name: currentOccupant
nullable-type: number
EjectOccupant:
documentation: Ejects the seat occupant.
events:
Configured: *ConfiguredEvent
OccupantChanged: {}
configurables:
Speed:
documentation:
description: The speed at which the seat will rotate.
default: 1
range: [0, 10]
type: number
Mode:
documentation: "The control mode of the seat. Horizontal: Rotate horizontally with A/D. Full: Rotate horizontally and vertically with W/A/S/D. Mouse: point towards the player's mouse when holding click."
type: VehicleSeatMode
Enabled:
documentation: Determines whether this seat should control its rotation. Turning this off results in a regular seat.
type: boolean

# Has both methods and events, is configurable, and is only spawnable
DevSink:
documentation:
description: A debug item meant for developers.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
methods:
GetAmountConsumed:
# Undocumented - requires rewriting
parameters:
- name: ...
type: any
documentation: Unknown.
returns:
- name: ...
type: any
documentation: Unknown.
GetResource: *GetResourceMethod
GetResourceAmount: *GetResourceAmountMethod
GetAmount: *GetAmountMethod
events:
Configured: *ConfiguredEvent
ContainerChanged: *ContainerChangedEvent
OnClick: *OnClickEvent
configurables:
Resource:
documentation: The name of the object to produce a sink for.
type: ResourceString
DevSource:
documentation:
description: A debug item meant for developers.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
methods:
GetAmountGenerated:
# Undocumented - requires rewriting
parameters:
- name: ...
type: any
documentation: Unknown.
returns:
- name: ...
type: any
documentation: Unknown.
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
Resource:
documentation: The name of the object to produce a source for.
type: ResourceString

# Has both methods and events and is both craftable and spawnable
BlackBox:
documentation:
description: |-
Records all activity in the region using very delicate instruments.
Activates when locked and anchors to ensure accurate readings.
ONLINE = Listening for event/Sharing event data, DATA = New data the owner hasn't seen.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetLogs:
returns:
- name: regionLogs
array-type: RegionLog
events:
Loop: *LoopEvent
OnClick: *OnClickEvent
Disk:
documentation:
description: |-
A programmable object capable of storing complex data.
<b>Be aware, while disks can store userdata & function values, it cannot save them.</b>
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
Clear:
documentation: Clears all the contents of the disk.
Write:
documentation: Write the specified key with the specified value to the disk.
parameters:
- name: key
type: any
- name: value
type: any
Compress: {}
ReadAll:
documentation: Reads the entire content of the disk and outputs it as a dictionary.
returns:
- name: content
type:
[any]:
type: any
WriteAll:
documentation:
description: |-
Replaces (to clarify, it <i>does</i> clear the original contents) the content
of the disk with the specified dictionary.

Note that it will have bizzare behaviour when used with <code>:ReadAll</code>.
code-sample: |-
local repr = require("repr")

local disk = assert(GetPart("Disk"), "no disk connected")

local a = disk:ReadAll()
disk:Write("foo", "bar")

print(a.foo) -- bar

disk:WriteAll( { hello = "world", asd = "fgh" } )
local b = disk:ReadAll()

print(a.foo, b.foo) -- bar nil
print(a.hello, b.hello) -- world world

print(a == b) -- false
print(a == disk:ReadAll()) -- false
print(b == disk:ReadAll()) -- true

print(repr(a)) -- { asd = "fgh", foo = "bar", hello = "world" }
print(repr(b)) -- { asd = "fgh", hello = "world" }
parameters:
- name: content
type:
[any]:
type: any
Read:
documentation: Reads the specified key from the disk and returns the value.
parameters:
- name: key
type: any
returns:
- name: value
type: any
Decompress: {}
ReadEntireDisk:
documentation:
deprecated: Superseded by <code>Disk:ReadAll()</code>.
returns:
- name: content
type:
[any]:
type: any
ClearDisk: {}
events:
Loop: *LoopEvent
Keyboard:
documentation:
description: |-
Similar to a button, except is programmable to take more than one key input.
Can be attached to a vehicle seat or clicked by a player.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
SimulateUserInput: {}
SimulateKeyPress:
documentation: Simulates a key press just like you would press a key on the keyboard.
parameters:
- name: key
nullable-type: string
- name: player
type: string
SimulateTextInput:
documentation: Simulates text input just like you would type in the keyboard and enter. This fires the <code>TextInputted</code> event.
parameters:
- name: input
nullable-type: string
- name: player
type: string
events:
KeyPressed: *KeyPressedEvent
TextInputted:
documentation: |-
Fires when a player finishes typing into the keyboard. Note that a newline will
be present wherever the cursor of the player was when they pressed enter (generally
the end, but if they moved their cursor whilst typing, it may be in the middle
of the text).
parameters:
- name: text
type: string
documentation: The text inputted into the keyboard.
- name: player
type: string
documentation: The username of the player who inputted the text.
UserInput: *UserInputEvent
Seat:
documentation:
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetOccupant:
documentation: Retrieves the <code>UserId</code> of the seat's occupant, it will be <code>nil</code> if there is no occupant.
returns:
- name: currentOccupant
nullable-type: number
EjectOccupant:
documentation: Ejects the seat occupant.
events:
OccupantChanged: {}
SteamTurbine:
documentation:
description: Produces power from steam at a base rate of 100 power each. Improves up to 250 per steam if consecutively ran at max speed. All bonuses are capped to the real consumption rate, so more steam equals better efficiency, but faster consumption rates. It may consume +0.5/s^2 steam, up to a maximum rate of 10 steam per second (for a total of 2500 power per second). Has a 10% chance to recover water for every steam consumed, improving up to 20%. Maximum efficiency can be reached in no less than 18 seconds if fed an optimal amount of steam.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetEfficiency:
returns:
- name: efficiency
type: number
GetProductionRate:
documentation: The multiplier for the amount of steam consumption each tick, ranges between 1 and 10.
returns:
- name: productionRate
type: number
events:
Loop: *LoopEvent

# Has methods, is configurable, and is both craftable and spawnable
ObjectDetector:
documentation:
description: |-
Casts a ray on the face with the hole on it, returning data of the object the ray hits.

Microcontroller function <code>GetLastHitData</code> returns a table with data about the last object hit.

The "last hit" part updates with a frequency of 1 frame.
categories: [Logic, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetLastHitPart:
returns:
- name: object
type: PilotObject
documentation: A reference to the most recently hit part.
GetLastHitData:
returns:
- name: data
type: ObjectDetectorHitData
documentation: The hit data provided by the <code>ObjectDetector</code>.
configurables:
MaxDistance:
documentation:
description: The range that it can detect an object. Must be between 0 and 1000.
default: 1000
range: [0, 1000]
type: number
TriggerAtDistance:
documentation: The range that it will trigger if it detect an object.
type: Vector2
Rail:
documentation:
description: |-
Slides and moves objects along its surface when powered and triggered.
Useful for creating retractable pistons and actuators, for turrets or other retractable devices.
Rails will only move objects connected on the relative top surface of the rail.

Rails have 2 configurations, <code>Position1</code> and <code>Position2</code>.
Both configurations should be between 0 and 100. These are percents of where the attached objects should slide to.
For example, if a rail was 50 studs long and <code>Position2</code> was 50 or 50%, the attached objects will slide to the middle or at 25 studs.

The rail can only be activated through the use of polysilicons.
- <code>Activating</code> polysilicons will set the rail to <code>Position1</code>.
- <code>Deactivating</code> polysilicons will set the rail to <code>Position2</code>.
- <code>FlipFlop</code> polysilicons will act like a switch, setting to <code>Position2</code> if <code>Position1</code> and vice versa.

Due to roblox physics, rails may act weirdly. To prevent this from happening, you should always place your rails first before anything else.
It is recommended to attach objects on the rail after the rail is safely placed down.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
SetPosition:
documentation: Sets the position of the rail.
parameters:
- name: depth
type: number
configurables:
Position1:
documentation:
description: Determines the position of the first state of the rail.
default: 0
range: [0, 100]
type: number
Position2:
documentation:
description: Determines the position of the second state of the rail.
default: 100
range: [0, 100]
type: number
TweenTime:
documentation:
description: Determines the time it takes for the rail to change positions.
default: 1
range: [0.5, 60]
type: number
Scanner:
documentation:
description: An end-game part which can remotely retrieve Microcontroller references to parts, providing information and control. Can also triangulate the positions of enemy parts given enough well placed scanners.
categories: [Logic, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
CalculateCost:
documentation: Calculates the cost of performing a scan with the given range.
parameters:
- name: range
nullable-type: number
returns:
- name: cost
type: number
Locate:
documentation: Uses GPS to locate a part (uses :GetDistance() internally). The scanners you provide should be on different axes and stuff. You need at least 3 to correctly identify a position.
parameters:
- name: part
type: PilotObject
- name: scanners
array-type: Scanner
returns:
- name: approximatePosition
type: Vector3
GetPartsInRange:
documentation: Does a (power hungry) query for all parts in the configured (or specified) range up to 1024 studs. Can optionally filter for a class name, but many use cases will prefer to store part objects in a set.
parameters:
- name: range
nullable-type: number
- name: className
nullable-type: string
returns:
- name: objects
array-type: PilotObject
GetDistance:
documentation: Gets the approximate distance to the part. Accuracy falls off exponentially.
parameters:
- name: part
type: PilotObject
returns:
- name: approximateDistance
type: number
configurables:
Range:
documentation:
description: The default range to scan for parts within.
default: 64
range: [0, 1024]
type: number
Winch:
documentation:
description: |-
A special device used to control the length of constraints attached to it.
When attaching a constraint to the Winch, click the Winch first.
When triggered with polysilicon, it will increase (Activate) or decrease (Deactivate).
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
AdjustLength:
parameters:
- name: adjustment
type: number
SetLength:
parameters:
- name: length
type: number
configurables:
DeltaLength:
documentation:
description: The length change in studs when triggered by Polysilicon.
default: 1
range: [0, 100]
type: number
MinLength:
documentation:
description: The minimum length in studs of the rope.
default: 0
range: [0, 100]
type: number
MaxLength:
documentation:
description: The maximum length in studs of the rope.
default: 100
range: [0, 100]
type: number

# Has methods, is configurable, and is only spawnable
HyperspaceRadar:
documentation:
description: A device that images areas of hyperspace, allowing one to view hyperspace disturbances and track where HyperDrives have warped.
categories: [Unused, Electrical, Spawnable]
hydrator:
name: wos-object
configurables:
ViewCoordinates:
type: Coordinates

# Has methods and is both craftable and spawnable
LifeSensor:
documentation:
description: |-
Senses and detects organic life up to a distance of 2000 studs. It only has a purpose within programming.
It is used in alien technology to hunt down organisms such as players.
categories: [Logic, Spawnable, Craftable]
code-sample: lifesensor-intruder.luau
hydrator:
name: wos-object
methods:
GetReading:
documentation: Returns a table where the keys are <i>humanoid</i> names and the values are <i>humanoid</i> positions. Only has a 2,000 stud range.
returns:
- name: reading
type:
[number]:
type: Vector3
documentation: A dictionary of humanoid names to their world positions.
ListPlayers:
documentation:
description: Returns an array of player <code>UserId</code>s. Ignores the 2,000 stud range limit.
returns:
- name: players
array-type: number
GetPlayers:
documentation: Returns a table where the keys are <i>player</i> <code>UserId</code>s and the values are <i>player</i> CFrames. Only has a 2,000 stud range.
returns:
- name: players
type:
[number]:
type: CFrame
documentation: A dictionary of player <code>UserId</code>s to their world CFrames.
LightTube:
documentation:
description: Emits light when powered with electricity. Can be colored in different ways, changing the light color.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
SetColor: *SetColorMethod
Spotlight:
documentation:
description: Emits light in a cone when powered with electricity. Color emition can be changed by coloring it.
categories: [Electrical, Decoration, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
SetColor: *SetColorMethod
StarMap:
documentation:
description: |-
Shows your current location in the universe and other nearby stars and celestial bodies.
It also has unique icons for every celestial body type. Clicking on a icon will set a all connected <code>HyperDrive</code>s/<code>Telescope</code>s to those coordinates.
Requires power in order to function.

It has 2 modes, universe and solar.
- Universe mode shows your location in the universe.
- Solar mode shows your location in the solar system if you are in one.

It can be triggered with polysilicon:
- <code>Activate</code> will set it to universe mode.
- <code>Deactivate</code> will set it to solar mode.
- <code>FlipFlop</code> will toggle between the two modes.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetSystems:
returns:
- name: systems
array-type: string
GetBodies:
returns:
# Complex type - requires rewriting
- name: bodies
type:
[string]:
type:
PlanetType:
type: PlanetType

# Has events, is configurable, and is both craftable and spawnable
Anchor:
documentation:
description: When triggered or clicked, it is able to be anchored, a state in which it is immovable by physics, and applies to parts connected to it.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
Anchored:
documentation: Determines whether the anchor is active or not.
type: boolean
Apparel:
documentation:
description: |-
A piece of clothing that can be worn by other players. Parts can also be attached to the apparel, meaning you can create your own suits with the apprel.
It is similar to the prosthetic, except it can be taken off and does not cause damage. However, electricity does not trasmit throughout the apparel unlike prosthetics.

Apparel can also holds less parts than the prosthetic. It can only hold 100 parts, while Prosthetics can hold 150.

Apparel has another configuration to it called Transparency, which dictates how transparent it will become when worn. Ranges from 0-1 from non-transparent to transparent.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
Limb:
documentation: The name of the limb that this Apparel is for.
type: PlayerLimb
Transparency:
documentation:
description: The transparency of this Apparel.
default: 1
range: [0, 1]
type: number
BallastTank:
documentation:
description: Allows for variable ballast to be added to sea vehicles. Also prevents corrosion to attached parts underwater.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
Buoyancy:
documentation:
description: The buoyancy of this BallastTank, 0 being neutral.
default: 0
range: [-10, 10]
type: number
Balloon:
documentation:
description: |-
Levitates parts attached to it to a certain configurable height.
However, it is easily poppable.
Does not work in space, or no-atmosphere planets.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
Buoyancy:
documentation:
description: The buoyancy of this Balloon, 0 being neutral.
default: 0
range: [-10, 10]
type: number
Beacon:
documentation:
description: |-
Creates a small beacon of light when powered.
When <code>ShowOnMap</code> is enabled, it broadcasts a signal into the universe.
<code>BeaconName</code> changes the name of the beacon shown on the <code>StarMap</code>.
It has a 30 second cooldown for changing the configurables.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
BeaconName:
documentation:
description: The name of the beacon.
max-length: 20
type: string
ShowOnMap:
documentation: Whether this beacon should be shown on <code>StarMap</code>s.
type: boolean
Bin:
documentation:
description: |-
Stores solid items such as <code>Aluminum</code>, <code>Iron</code>, <code>Faucet</code>s, etc.
Can store up to 1,000 items. When destroyed, every item inside will also be destroyed.
The value increases as more items are added to it.

Bins can also be used as crafting recipes, with the resources inside being used.
You can also configure a bin to prevent items from being crafted from it, allowing for bins to be strictly for machine storage.
categories: [Starter, Storage, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetResource: *GetResourceMethod
GetResourceAmount: *GetResourceAmountMethod
GetAmount: *GetAmountMethod
events:
ContainerChanged: *ContainerChangedEvent
OnClick: *OnClickEvent
configurables:
Resource:
documentation:
description: The kind of resource the bin can hold. You can set this to Any to allow the bin to accept anything.
max-length: 24
type: string
CanBeCraftedFrom:
documentation: Determines whether this bin can be used by nearby players to craft objects.
type: boolean
Boombox:
documentation:
description: Must be powered in order to play music. When clicked, it will toggle playing music and will play the song id you give it.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
Audio:
documentation: The audio asset ID to be played.
type: number
Camera:
documentation:
description: |-
It's a camera.
When a camera and Screen have the same ID, that screen will be used to display the camera view.
Clicking on a screen that is displaying the view of a camera will allow you to directly view what the camera is seeing.
No power is necessary.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
VideoID:
documentation:
description: The ID to transmit the camera feed over, received by screens of the same ID.
default: 0
range: [0, 10000000000]
increment: 1
type: number
CloningBay:
documentation:
description: Allows you to respawn at it from a remote location.
categories: [Starter, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
Name:
documentation:
description: The name of the cloning bay.
default: CloningBay
max-length: 40
type: string
DriveBox:
documentation:
description: |-
When connected to a motor or engine with a rod, it will spin the same speed the engine or motor is going.
(You must click the drivebox first when creating a rod.)
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
Reversal:
documentation: Determines whether the output should be reversed.
type: boolean
Ratio:
documentation:
description: The ratio of speed from 1 (1:100) to 100 (100:100) between this DriveBox and the source motor.
default: 100
range: [1, 100]
increment: 1
type: number
Engine:
documentation:
description: It acts similar to a motor, but is powered by gasoline instead of electricity.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
EngineSpeed:
documentation:
description: Determines the speed at which the engine is driven.
default: 10
range: [-20, 20]
type: number
Extractor:
documentation:
description: |-
Harvests or mines materials from the world. It can extract things like grass, snow, wood, ores, etc depending on what terrain it is attached to.

Small resource-rich mountains can be found in the world, and these produce a number of unique resources such as Oil, Quartz, Silicon, and more.
You may want to configure the extractor to extract a specific resource, which you can do by setting the MaterialToExtract config, otherwise, it will select a random resource to mine.
categories: [Starter, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
MaterialToExtract:
documentation: Determines the material to extract from connected natural surfaces. Disables the extractor if blank.
type: string
GravityGenerator:
documentation:
description: Generates an artificial gravity field when powered on. The gravity field only affects players, not individual parts. The amount of gravity can also be configureed, but the more gravity the higher amount of power needed. Only works in space, not inside planets.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
Gravity:
documentation:
description: The amount of gravity within the influence of the GravityGenerator, measured in Gs.
default: 1
range: [0.15, 1.5]
type: number
Hatch:
documentation:
description: Acts as a chute when active/gray, but when black or inactive it acts as a normal object.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
SwitchValue: *SwitchValueConfigurable
HeatPump:
documentation:
description: Pumps Heat between two points. Pumps a maximum of <b>4 MW</b> of heat energy.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
TransferRate:
documentation:
description: How many kW of heat energy to pump.
default: 4000
range: [0, 4000]
type: number
HeatValve:
documentation:
description: Acts as a HeatPipe when active/red, but when black or inactive it acts as a normal object.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
SwitchValue: *SwitchValueConfigurable
Hologram:
documentation:
description: Using our brand new Multi-Dimensional Holographic Projection Technology™ you are able to create a stationary clone with only the ID of the user provided!.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
UserId:
documentation:
description: The UserId of the player for the Hologram to display.
default: 1
range: [1, 10000000000]
increment: 1
type: number
Hydroponic:
documentation:
description: Grows grass and wood from water, turning attached water bins into either wood, sticks or grass. Incredibly useful for space bases or bases in areas devoid of life.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
Grow:
documentation:
description: The material to grow from the Hydroponic.
default: Wood
max-length: 64
type: string
IonRocket:
documentation:
description: |-
A simple, fast propulsion device which consumes power to produce thrust. Moves in the direction of the arrow.
Can travel up to 100s/s at maximum propulsion.
categories: [Starter, Propulsion, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
Propulsion:
documentation:
description: Determines the speed traveled at, 0 being standstill. Affects fuel consumption.
default: 50
range: [0, 100]
type: number
Laser:
documentation:
description: |-
Fires a concentraded beam of energy when powered, which can be used to damage and set objects on fire.
Has a Range of 1000 studs.
Primarily used as a weapon in space combat situations.
While it can damage objects effectively, it cannot damage energy shields.
categories: [Weapons, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
DamageOnlyPlayers:
documentation: Determines if this laser is only allowed to damage players and not materials.
type: boolean
LightBridge:
documentation:
description: Fires a beam of solid light that can be walked on.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
Loop: *LoopEvent
configurables:
BeamColor:
documentation: The color of the bridge's beam.
type: Color3
MiningLaser:
documentation:
description: |-
Fires a beam at resource deposits that will mine them just like an Extractor can, allowing for mining while mobile.
The MiningLaser produces 2x the resources, but costs 5x more power to run.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
MaterialToExtract:
documentation: Determines the material to extract from the laser beam. Disables the laser if blank.
type: string
Motor:
documentation:
description: Spins objects attached to the hinge at the front when powered.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
Power:
documentation:
description: Determines the amount of power used to drive the motor. This affects the torque and power consumption. Negative values are reverse.
default: 0.5
range: [-1, 1]
type: number
Ratio:
documentation:
description: Determines the gear ratio applied to the motor in terms of the multiplier on the RPM. A value of 0.1 indicates a 10:1 ratio, where RPM is 1/10th and torque is 10x when compared to the default setting of 1.
default: 1
range: [0.001, 10]
type: number
Polysilicon:
documentation:
description: |-
An electronic material which transforms a trigger signal into special on/off/toggle signals.

Has a configuration called Frequency which dictates how many times the polysilicon will repeat a trigger.
For example, if a polysilicon was attached to a pulley, having a frequency of 5 and triggered, the pulley will be activated 5 times.
categories: [Logic, Starter, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
PolysiliconMode:
documentation: The mode of the Polysilicon. Each mode results in different behaviors for objects.
type: PolysiliconMode
Frequency:
documentation:
description: The amount of times to activate the Polysilicon from a single trigger.
default: 1
range: [1, 10]
increment: 1
type: number
Port:
documentation:
description: |-
Only used in programming. Allows a <code>Microcontroller</code> to interface with <code>PilotObject</code>s.
To do so, the Port must be between the <code>Microcontroller</code> and the <code>PilotObject</code> or <code>Microcontroller</code> and the <code>EthernetCable</code> (to interface with objects further away from the <code>Microcontroller</code>).
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Triggered: *TriggeredEvent
configurables:
PortID:
documentation:
description: The ID of this port used to utilize this port by connected <code>Microcontroller</code>s.
default: 1
range: [0, 10000000000]
increment: 1
type: number
Prosthetic:
documentation:
description: |-
An artificial part that can be attached to players in exchange for a limb.
The limb configuration can be configureed to be the limb you want to have for a prosthetic, for example configuring it to be "Right Leg" will have the prosthetic attach itself to your character.
Simply touch the prosthetic, and it will automatically be attached to your body. This process is extremely unhealthy, however, and may result in short-term complications.

Parts can be attached to the prosthetic, allowing many uses for the prosthetic limb.

Prosthetic limbs are also electrically conductable, acting as a wire.

Heavily damages the character once attached.
Prosthetics can't have more than 50 parts attached to them.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
Limb:
documentation: The name of the limb that this Prosthetic is for.
type: PlayerLimb
ProximityButton:
documentation:
description: Sends trigger signals when interacted via its ProximityPrompt.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
PromptButtonHoldBegan: {}
PromptButtonHoldEnded: {}
PromptTriggerEnded: {}
PromptTriggered: {}
configurables:
KeyboardKeyCode:
documentation: The name of the key that will trigger the proximity prompt on a keyboard.
type: string
GamepadKeyCode:
documentation: The name of the key that will trigger the proximity prompt on a gamepad.
type: string
ObjectText:
documentation:
description: The text of the proximity prompt.
max-length: 64
type: string
HoldDuration:
documentation: The length of time that the proximity prompt has to be held down for.
type: number
MaxActivationDistance:
documentation:
description: The range of the prompt, from 0 - 50.
default: 5
range: [0, 50]
type: number
RequiresLineOfSight:
documentation: Whether a line of sight to the center of the part is required for the prompt to become visible.
type: boolean
Pump:
documentation:
description: Pumps liquid from the environment into attached Tanks. For example, a pump located in the ocean will pump water when powered.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
Loop: *LoopEvent
configurables:
LiquidToPump:
documentation:
description: The name of the liquid to extract using the pump.
default: Water
max-length: 24
type: string
Rocket:
documentation:
description: A propulsion device that consumes gasoline.
categories: [Propulsion, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
Loop: *LoopEvent
configurables:
Propulsion:
documentation:
description: Determines the speed traveled at, 0 being standstill. Affects fuel consumption.
default: 30
range: [0, 100]
type: number
Sign:
documentation:
description: Displays text or images. To display an image, configure it to id:imageid.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
SignText:
documentation:
description: The text to display on the front of the sign. Rich text is allowed.
default: Text
max-length: 256
type: string
TextColor:
documentation: The color of the text on the sign.
type: Color3
TextFont:
documentation: The font of the text on the sign.
type: string
Solenoid:
documentation:
description: Controls the switch state of any switches attached to its output face based on whether or not it has power in the configured range.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
Inverted:
documentation: Whether or not the state will be inverted.
type: boolean
PowerRange:
documentation: The power range the state will be active for.
type: NumberRange
Sorter:
documentation:
description: Moves a type of resource through it, depending on the input and output faces as indicated by the arrow. Behaves just like the old Diode part when set to insert 100 Power.
categories: [Electrical, Storage, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
Resource:
documentation:
description: The kind of resource to push. May be a special or generic type like Gas, Solid, etc.
default: Power
max-length: 24
type: string
Rate:
documentation:
description: How much of the resource to push per second. May be inf (or math.huge in a Microcontroller).
minimum: 0
increment: 1
type: number
SteamEngine:
documentation:
description: It acts similar to a motor, but is powered by Steam instead of electricity.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
EngineSpeed:
documentation:
description: Determines the speed at which the engine is driven.
default: 10
range: [-20, 20]
type: number
StorageSensor:
documentation:
description: |-
When the number of contents within connected storage objects is within a defined range, it will send trigger signals similar to a button.
This can be used to automate production of certain products when the stored quantity is low.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
QuantityRange:
documentation: The range of item quantities within which this sensor will trigger.
type: NumberRange
Switch:
documentation:
description: Acts as a wire when active/green, but when black or inactive it acts as a normal object. Must use a polysilicon to switch for trigger events.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
SwitchValue: *SwitchValueConfigurable
Tank:
documentation:
description: Stores liquids and gases. When a liquid or gas touches the Tank, the Tank will automatically store it. Will not conduct heat when containing a fluid, making it a good heat storage part.
categories: [Starter, Storage, Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetResource: *GetResourceMethod
GetResourceAmount: *GetResourceAmountMethod
GetAmount: *GetAmountMethod
events:
ContainerChanged: *ContainerChangedEvent
OnClick: *OnClickEvent
configurables:
Resource:
documentation:
description: The kind of resource the bin can hold. You can set this to Any to allow the bin to accept anything.
max-length: 24
type: string
CanBeCraftedFrom:
documentation: Determines whether this Tank can be used by nearby players to craft objects.
type: boolean
Teleporter:
documentation:
description: |-
A device used to transport players across regions.
When powered and triggered, it will teleport all players in the beam to the given coordinates and teleporter id.
It will warp the player to a teleporter in the region with the given teleporter id.

When warping to a teleporter inside of a planet, set the last value to true. For example,
50, -50, 85, -75, true

Make sure you set the correct coordinates OR YOU WILL BE STRANDED!

Costs 1000 energy per teleport. Teleporter uses Energy regardless if a player is on the Teleporter at the moment it gets triggered.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Triggered: *TriggeredEvent
configurables:
Coordinates:
documentation: The coordinates to your Destination.
type: Coordinates
TeleporterID:
documentation:
description: The ID of the teleporter at the goal coordinates to teleport directly to.
default: 1
range: [1, 999]
increment: 1
type: number
ForceLocalTeleport:
documentation: Whether to only attempt to teleport to teleporters within the same region, ignoring the "Coordinates" configuration.
type: boolean
Thruster:
documentation:
description: |-
A high powered propulsion device. The larger the thruster, the faster it can go, up to 500s/s, but it will consume more power.
The thruster will not operate below -30, or above 200 degrees fahrenheit.
categories: [Starter, Propulsion, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
configurables:
Propulsion:
documentation:
description: Determines the percentage of thrust (speed). Affects fuel consumption.
default: 50
range: [0, 100]
type: number
Transformer:
documentation:
description: Sends a constant trigger signal when powered. By default, it will send a trigger signal every tick, but can be configured up to every 360 seconds. If the transformer's loop time matches the game's internal tick rate (the default, 1/s), it will synchronize with the game loop.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Triggered: *TriggeredEvent
configurables:
LoopTime:
documentation:
description: The time in seconds between triggers.
default: 1
range: [0, 360]
type: number
Transistor:
documentation:
description: Carries trigger signals in the direction of the arrow if any power source is attached. Can be inverted by clicking or configuring.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
Inverted:
documentation: Whether or not the state will be inverted.
type: boolean
TriggerSwitch:
documentation:
description: Acts as a <code>TriggerWrite</code> when active/green, but when black or inactive it acts as a normal object. It <i>will</i> toggle when exposed to <code>Polysilicon</code> signals.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
SwitchValue: *SwitchValueConfigurable
TriggerRelay:
documentation:
description: Acts as a <code>TriggerWrite</code> when active/green, but when black or inactive it acts as a normal object, it <i>will not</i> toggle when exposed to <code>Polysilicon</code> signals, rather, it will pass them through if it is active, as if it were a normal signal.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
SwitchValue: *SwitchValueConfigurable
Valve:
documentation:
description: Acts as a pipe when active/gray, but when black or inactive it acts as a normal object.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent
configurables:
SwitchValue: *SwitchValueConfigurable

# Has events, is configurable, and is only spawnable
Blade:
documentation:
description: A legacy pre-component part. A sharp object that can pierce through objects if the material is durable and strong.
categories: [Unused, Templates, Spawnable]
hydrator:
name: wos-object
events:
ComponentsUpdated: *ComponentsUpdatedEvent
configurables:
Shape:
documentation: The shape of the blade.
type: BladeShape
FluidProjector:
documentation:
description: |-
A device which projects a field of gas or liquid in front of it which you can swim in.
Host the universe's greatest pool party!
The fluid area can be configureed in size and type.

The FluidProjector requires power in order to work, and must be supplied with the correct fluid to work.
Significantly more power is required on planets with high gravity.
As an example, if the fluid is water, it will need a supplied Tank of water attached to work.
categories: [Unused, Electrical, Spawnable]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
Loop: *LoopEvent
configurables:
Size:
documentation: The size in studs of the projected fluid field.
type: Vector3
Fluid:
documentation:
description: The name of the fluid being projected.
default: Water
max-length: 64
type: string
Turbofan:
documentation:
description: |-
Generates thrust from crude Oil, similar to a Thruster.
If a motor is attached to the front, it instead acts like an engine and rotates it.
categories: [Unused, Propulsion, Spawnable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
TurboFanSpeed:
documentation:
description: Determines the speed at which the turbofan is driven, or the speed at which it travels.
default: 5
range: [0, 100]
type: number

# Has events and is configurable
DevGravityGenerator:
documentation:
description: A debug item meant for developers.
categories: [Unused]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
configurables:
Enabled:
documentation: Whether or not the gravity generator is enabled.
type: boolean
Gravity:
documentation:
description: The amount of gravity within the influence of the GravityGenerator as a force.
default: 196.2
type: number
Radius:
documentation:
description: The radius of the generated gravity field.
default: 588.6
type: number

# Has events and is both craftable and spawnable
Asphalt:
documentation:
description: |-
A modern material useful for smooth road surfaces.
Its durability triples when anchored.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
AutomaticLaser:
documentation:
description: Fires a continous set of lasers when powered. Like most other energy/thermal weapons, it generates heat when powered. It generates up to 65 degrees of heat, meaning you will need atleast 2 or 3 coolers.
categories: [Weapons, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Battery:
documentation:
description: A light part that contains 400 energy and is prefilled. Cannot be recharged.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetResource: *GetResourceMethod
GetResourceAmount: *GetResourceAmountMethod
GetAmount: *GetAmountMethod
events:
ContainerChanged: *ContainerChangedEvent
Boiler:
documentation:
description: Consumes Coal and Water and produces Steam.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Brick:
documentation:
description: A cheap, malleable material with special durability properties. The durability is 4, and becomes 18 when it is anchored or attached to terrain (grounded).
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
BurnerGenerator:
documentation:
description: Creates electricity when fueled with coal.
categories: [Starter, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
CombustionTurbine:
documentation:
description: Creates electricity when fueled by gasoline.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Controller:
documentation:
description: |-
Alters the speed of attached controllable objects which include:
- <code>Engine</code>
- <code>Motor</code>
- <code>BallastTank</code>
- <code>IonDrive</code>
- <code>IonRocket</code>
- <code>Thruster</code>
- <code>Rocket</code>

You must use a polysilicon between this controller and an object that emits a trigger signal (such as a button) to use the same events as clicking the interface.
For example, <code>FlipFlop</code> will set the speed of the controllable objects to 0, <code>Deactivate</code> will subtract 5 from the current speed, etc.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Triggered: *TriggeredEvent
CrudeWing:
documentation:
description: |-
Creates lift from being pushed forward.
A worse version of a Wing.
Does not work in space or in non atmospheric planets.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
DarkConverter:
documentation:
description: Converts attached dark matter bins into energy. 1 unit of dark matter is equal to 1000 watts of power. However, this generates a ton of heat in the process, nearly up to 200 degrees when activated. This means you will need about 10 coolers to avoid combustion.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
DarkReactor:
documentation:
description: |-
Generates Dark Matter when powered and near a black hole.
The reactor is very unstable, and if the reactor overheats it will cause a huge explosion.

The DarkReactor generates up to 500 degrees of temperature, meaing you will need atleast 25 coolers to cool the reactor to make sure it does not overheat.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Decoupler:
documentation:
description: |-
When triggered, it breaks welds and falls off of anything attached.
Can be used to separate things.
The trigger signals will pass through the decoupler as it is decoupled.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Triggered: *TriggeredEvent
DeleteSwitch:
documentation:
description: An object that deletes itself when triggered.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Triggered: *TriggeredEvent
ElectricFence:
documentation:
description: A special version of the fence which damages upon contact as long as it is powered. Conducts electricity like a wire.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Electromagnet:
documentation:
description: A powerful magnet.
categories: [Logic, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
EnergyBomb:
documentation:
description: Causes a powerful explosion when triggered. Often used in space combat as a means of a powerful missile or torpedo.
categories: [Weapons, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Damaged: *DamagedEvent
Triggered: *TriggeredEvent
Explosive:
documentation:
description: Causes an explosion when triggered. You can use a delay wire to make it explode after a few seconds and not immediately.
categories: [Weapons, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Damaged: *DamagedEvent
Triggered: *TriggeredEvent
Fireworks:
documentation:
description: Causes an explosion when triggered. You can use a delay wire to make it explode after a few seconds and not immediately.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Damaged: *DamagedEvent
Triggered: *TriggeredEvent
Flamethrower:
documentation:
description: Shoots a stream of flaming gasoline to ignite your foes.
categories: [Weapons, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Food:
documentation:
description: |-
A consumable item.
<i>Appears</i> to be meat.
Upon clicking it, it will heal the user's health depending on the size.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
OnClick: *OnClickEvent
Freezer:
documentation:
description: Turns liquid Water into solid Ice, expelling heat energy in the process. Requires some power.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Furnace:
documentation:
description: Burns resources at 16x speed to produce Heat energy directly. Has a low thermal conductivity.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Igniter:
documentation:
description: Sets alight unlocked parts within the immediate vicinity when triggered. Range depends on the size.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Triggered: *TriggeredEvent
Kiln:
documentation:
description: Turns attached sand bins into glass.
categories: [Starter, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Melter:
documentation:
description: Melts Ice into liquid Water by consuming Power.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Microphone:
documentation:
description: Used in programming. Takes user's input from chat.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Chatted:
parameters:
- name: player
type: number
- name: message
type: string
Obelisk:
documentation:
description: |-
An object designed to attract aliens to the region. Emits an ominous noise when powered.
Must be anchored and powered in order to function. Must also be open to the sky. Only one obelisk in a region can be powered at a time.
When active, it will summon aliens every 300 seconds.
<b>Use at your own risk.</b>
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Plastic:
documentation:
description: A cheap material made from petroleum and Coal through polymerisation inside assemblers.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
PowerCell:
documentation:
description: |-
Stores electricity, and is used to power many devices using wires or by directly attaching it.
Has a maximum capacity of 200000.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
methods:
GetResource: *GetResourceMethod
GetResourceAmount: *GetResourceAmountMethod
GetAmount: *GetAmountMethod
events:
ContainerChanged: *ContainerChangedEvent
Propeller:
documentation:
description: |-
Propellers propel forward when spun.
Forward direction indicated by white spot.
Does not work in space or non atmospheric planets.
categories: [Propulsion, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Radar:
documentation:
description: An instrument that shows a 2D top-down representation of Earth.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Railgun:
documentation:
description: |-
Fires a piercing <code>Rail</code> at high speeds. A long range weapon. Requires <code>Rail</code>s and electricity for ammo. The damage increases for every 10 studs of length.
It will pierce if the hit part is destroyed. Must be at least have a width and height of 6 and at least a length of 30 to function.
While the <code>Railgun</code> is similar to the <code>Artillery</code>, the <code>Railgun</code> is nearly instant while <code>Artillery</code> is a projectile weapon.

Requires to charge for one minute before it can fire. While charging and when charged, it creates large amount of heat. The charging status resets when this part is damaged.
When it is finished charging, it will stop creating a sound. At that point, it must be triggered and supplied by a <code>Rail</code> bin in order to fire.
categories: [Weapons, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Damaged: *DamagedEvent
Loop: *LoopEvent
Triggered: *TriggeredEvent
Refinery:
documentation:
description: Turns oil into Petroleum and Gasoline.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
RepairLaser:
documentation:
description: Fires a beam that repairs objects. Repairs <b>1</b> HP/s.
categories: [Weapons, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Rotor:
documentation:
description: |-
Provides vertical height when spun, and only works in oxygen planets.
The spin speed determines the height, and the tilt of the rotor determines the forward propulsion of the rotor.
categories: [Propulsion, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Sail:
documentation:
description: Utilizes the wind to move forward.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Scrapper:
documentation:
description: Scraps unlocked solid items into their crafting components (with some loss) on contact when powered, else destroys them if unpowered. Will send locked single raw parts such as Iron or AlienCore into connected bins.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
SolarPanel:
documentation:
description: |-
Generates electricity using solar energy from a local star.
The closer it is to a star, the more energy it generates.
The type of star also affects its energy generation, as well as the size of the <code>SolarPanel</code>.
If the <code>SolarPanel</code> is blocked by a part, it will not generate any energy, <i>glass</i> however will work.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
StasisField:
documentation:
description: |-
Creates a 500 stud radius field that prevents any parts or objects around it from being dragged.
This can be used alongside with a RegionCloaker to create public infrastructure to avoid trolling and such.
However, in order to function, the shield must be anchored/grounded, and nothing must be blocking above it. The shield is also extremely fragile.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
TouchSensor:
documentation:
description: Sends trigger signals upon contact.. with anything.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Touched:
parameters:
- name: object
nullable-union:
- type: number
- type: PilotObject
Treads:
documentation:
description: |-
Moves against surfaces it contacts. In order for the treads to function, you need to use a Motor, Engine, or DriveBox to spin up a part which will act as the driver part. The driver part should be connected to the treads via a rod, and should spin with the same orientation as a wheel would to achieve maximum speed.

Multiple driver parts can be attached to the treads at once, and their speeds will be added together. The treads will move depending on the direction & speed that the driver part spins.

The speed the treads move depends entirely on the speed of rotation on the axis perpendicular to the treads, so rotating the driver part off-axis will reduce (or invert) the speed. For example, 45 degrees off-axis = 50% speed, 90 degrees off-axis = 0% speed, 135 degrees off-axis = -50% speed, and 180 degrees off-axis = -100% speed.
categories: [Propulsion, Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Wing:
documentation:
description: |-
Creates lift from being pushed forward.
Works at higher altitudes and at better angles than a CrudeWing.
Does not work in space or in non atmospheric planets.
categories: [Spawnable, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
WirelessButton:
documentation:
description: Similar to a button, but can be clicked from infinite distances and cannot be used for keybinds.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
events:
OnClick: *OnClickEvent

# Has events and is only craftable
SolarScoop:
documentation:
description: |-
Extracts materials from a star when powered and pointed at a star.
Depending on the class of the star, it will extract more materials.

Generates around 240 degrees of heat, meaning you will need atleast 12 coolers to cool it down.

Red stars generate 25 helium, 5 plasma and 10 hydrogen per second.
Orange stars generate 30 helium, 5 plasma and and 15 hydrogen per second.
Yellow stars generate 35 helium, 5 plasma and and 20 hydrogen per second.
Light blue stars generate 40 helium, 25 hydrogen, 10 plasma and and 10 iron per second.
Neutron stars generate 60 helium, 45 hydrogen, 15 plasma and and 20 iron per second. It also generates 1-2 neutronium every 2 minutes.

It is recommended to use a Filter to seperate the materials extracted by a solar scoop.
categories: [Electrical, Craftable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
Warhead:
documentation:
description: |-
Causes a powerful explosion when triggered. You can use a delay wire to make it explode after a few seconds and not immediately.
The only down-side of the warhead is that it is blocked completely by energy shields.
categories: [Weapons, Craftable]
hydrator:
name: wos-object
events:
Damaged: *DamagedEvent
Triggered: *TriggeredEvent

# Has events and is only spawnable
Part100k:
documentation:
description: 100k visits special item.
categories: [Spawnable]
hydrator:
name: wos-object
class-name: 100k
events:
OnClick: *OnClickEvent
Triggered: *TriggeredEvent
DevBattery:
documentation:
description: A debug item meant for developers.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
methods:
GetResource: *GetResourceMethod
GetResourceAmount: *GetResourceAmountMethod
GetAmount: *GetAmountMethod
events:
ContainerChanged: *ContainerChangedEvent
DevHeatStorage:
documentation:
description: A debug item meant for developers.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
methods:
GetResource: *GetResourceMethod
GetResourceAmount: *GetResourceAmountMethod
GetAmount: *GetAmountMethod
events:
ContainerChanged: *ContainerChangedEvent
Door:
documentation:
description: A legacy pre-component part. When triggered, it will open, and if triggered again will close.
categories: [Unused, Templates, Spawnable]
hydrator:
name: wos-object
events:
ComponentsUpdated: *ComponentsUpdatedEvent
FourthOfJuly:
documentation:
description: Causes an explosion when triggered along with a Fourth Of July message. You can use a delay wire to make it explode after a few seconds and not immediately.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
events:
Damaged: *DamagedEvent
Triggered: *TriggeredEvent
HeatCell:
documentation:
description: |-
Legacy test item. Stores heat energy.
Has a limit of 400 kJ.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
methods:
GetResource: *GetResourceMethod
GetResourceAmount: *GetResourceAmountMethod
GetAmount: *GetAmountMethod
events:
ContainerChanged: *ContainerChangedEvent
Hull:
documentation:
description: A legacy pre-component part. Is able to float in the water, as well as carry objects attached to it. Primarily used for creating boats and other water craft.
categories: [Unused, Templates, Spawnable]
hydrator:
name: wos-object
events:
ComponentsUpdated: *ComponentsUpdatedEvent
RepairPlate:
documentation:
description: |-
EXPERIMENTAL - While at least <b>90%</b> charged (<b>27</b> power), distributes repaired health between itself and damaged parts attached to its top surface.

Charges at a fixed rate of <b>1</b> power per second, up to a total capacity of <b>30</b>. Once charged, it consumes <b>2.5</b> power per second.
Can be chained with other <code>RepairPlate</code>s.
Power cannot be inserted or extracted.
Cannot be resized below 1x1x1.
categories: [Unused, Electrical, Spawnable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
WindTurbine:
documentation:
description: |-
Creates rotation using the wind.
Unreliable and large motor.
Does not work in space or no-atmosphere planets.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent
tinnitus:
documentation:
description: An interesting spring which does strange things.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
events:
Loop: *LoopEvent

# Has events
Component:
documentation:
description: A portable component. May be installed on parts to add unique behaviours.
categories: [Tool, Tools]
hydrator:
name: wos-object
events:
ComponentsUpdated: *ComponentsUpdatedEvent
FactionHub:
documentation:
description: |-
Configures faction settings, view members, invite players, accept invites, save resources/models and view controlled regions.
This is not a form of claiming a region.
categories: [Unused]
hydrator:
name: wos-object
events:
Configured: *ConfiguredEvent
OnClick: *OnClickEvent

# Is configurable and is both craftable and spawnable
Antenna:
documentation:
description: A wireless transmitter that can transmit electricity from wires and trigger signals from trigger wires and buttons.
categories: [Logic, Starter, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
AntennaID:
documentation:
description: The ID of this antenna, to transmit to others with the same ID.
default: A1
max-length: 64
type: string
ConveyorBelt:
documentation:
description: Moves objects ontop of it towards the front of the conveyor belt. Only moves when powered and anchored or attached to the ground.
categories: [Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
ConveyorBeltSpeed:
documentation:
description: Determines the speed at which the conveyor will move items on top of it.
default: 10
range: [-30, 30]
type: number
DelayWire:
documentation:
description: Similar to a regular trigger wire, but depending on the configuration will wait x seconds before the trigger signal passes through.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
DelayTime:
documentation:
description: The time in seconds that it takes for signals to pass through this wire.
default: 1
range: [0, 360]
type: number
Filter:
documentation:
description: Similar to a chute and a pipe, but only allows the configured material to pass through.
categories: [Storage, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
Filter:
documentation:
description: The name of the material allowed to pass through.
max-length: 24
type: string
Invert:
documentation: Whether or not to invert the filter.
type: boolean
Handle:
documentation:
description: A handle which can be equipped when a player touches it, turning all connected parts into an equipable tool.
categories: [Tools, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
Swing:
documentation: What the tool should do when clicking. Point mode will aim the handle at the mouse cursor.
type: HandleSwingMode
TriggerMode:
documentation: Determines when this Handle should send trigger signals.
type: HandleTriggerMode
ToolName:
documentation:
description: The name of the tool.
default: Handle
max-length: 64
type: string
RemoteControl:
documentation:
description: Sends trigger signals forward wirelessly when triggered. Supports all variants of trigger signals including from Polysilicon.
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
RemoteControlRange:
documentation:
description: The range in studs at which signals will be transmitted.
default: 120
range: [1, 500]
type: number
RemoteControlMode:
documentation: The way in which trigger signals should be transmitted. This setting only affects parts that are connective to trigger signals (e.g. TriggerWire).
type: RemoteControlMode
Router:
documentation:
description: A wireless transmitter that can transmit an ethernet connection.
categories: [Logic, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
RouterID:
documentation:
description: The ID of this router, to transmit to others with the same ID.
default: R1
max-length: 64
type: string
TimeSensor:
documentation:
description: |-
When the current time matches the time configured in the TimeSensor, it will send a trigger signal.

For example, if the world turns 7:15 it will send a trigger signal.

This is useful for creating dynamic lights that turn on only during the night, saving energy.

The format should be hour:minute
categories: [Logic, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
Time:
documentation:
description: The time at which this sensor will trigger.
default: 7:30
max-length: 5
type: string
TractorBeam:
documentation:
description: Fires a beam that exerts force on the object it hits. More effective in space due to low gravity, but still decently strong when affected by gravity. Force is affected by size and configuration.
categories: [Weapons, Propulsion, Electrical, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
PowerPercent:
documentation:
description: Determines the percentage of total available force (depending on size) used by the beam.
default: 100
range: [0, 100]
type: number
Transporter:
documentation:
description: |-
Acts as an antenna but for bins and objects containing materials such as liquids and solids.
Useful for creating large factory bases with many extractors without using long chutes.
categories: [Logic, Starter, Spawnable, Craftable]
hydrator:
name: wos-object
configurables:
TransporterID:
documentation:
description: The ID of this transporter, to transmit to others with the same ID.
default: T1
max-length: 64
type: string

# Is configurable and is only spawnable
Relay:
documentation:
description: |-
A powerful transmitter capable of transmitting trigger signals and resources/power between different regions.
It is a more powerful version of the antenna and transporter.

Unlike the antenna, the relay has 2 modes, mode 0 and mode 1.
Mode 0 sends resources/power and trigger signals, while mode 1 receives it.

Unlike the antenna, it can also transfer power in inactive regions or regions without players in them.
This means that you can connect a relay to your main base, warp away without anyone in the base, and still have the relay get the sufficient amount of power.

However, you should have only one sending relay per coordinate, as conflicts can occur if there are 2 or more relays in the region/coordinates sending power or signals with the same ID.
On the other hand, there can be an infinite number of receivers but the power/resources will be distributed evenly among them.

For example, let's say a relay network has a total output of 500 power and 25 iron. If there are 5 active receivers, each of them will get 100 power and 5 iron.

When the relay is red, it means it not functioning. When it turns green, it is properly linked up to another relay or is sending signals.
categories: [Unused, Spawnable]
hydrator:
name: wos-object
configurables:
Mode:
documentation: The mode of the relay. Send outputs materials to other receiving relays; Receive receives materials from sending relays.
type: RelayMode
LinkerID:
documentation:
description: The ID of the relay, to send or take materials to or from other relays with the same ID.
default: 1
range: [1, 10000000000]
increment: 1
type: number

# Is configurable
DevTeleporter:
documentation:
description: A debug item meant for developers.
categories: [Unused]
hydrator:
name: wos-object
configurables:
TeleporterID:
documentation:
description: The ID of the teleporter at the goal coordinates to teleport directly to.
max-length: 64
type: string

# Is both craftable and spawnable
Aerogel:
documentation:
description: An incredibly light and fragile material.
categories: [Spawnable, Craftable]
hydrator: wos-object
AirSupply:
documentation:
description: Generates a 300 stud radius oxygen bubble when powered on. Very important part for space ships, as it acts as the oxygen supply for the ship.
categories: [Electrical, Spawnable, Craftable]
hydrator: wos-object
Artillery:
documentation:
description: |-
Fires a fast-moving metal shell upon being triggered.
This metal shell generates a small explosion upon impact.
Costs 15 iron per shot.
categories: [Weapons, Spawnable, Craftable]
hydrator: wos-object
Ball:
documentation:
description: A ball shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
BeamRifle:
documentation:
description: A deadly long-range energy sniper. Able to pick off targets at a long range with exceptional accuracy.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
BlastingCap:
documentation:
description: A component used in crafting recipes for more advanced explosive devices.
categories: [Spawnable, Craftable]
hydrator: wos-object
Block:
documentation:
description: A block shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
BurstLaser:
documentation:
description: |-
Fires 5 rapid sets of concentrated laser beams. Each beam does a mediate amount of damage.
Costs 100 power for each beam fired, meaning the total power cost is 500 power.
categories: [Weapons, Spawnable, Craftable]
hydrator: wos-object
Button:
documentation:
description: |-
Sends trigger signals when clicked by a player.
When connected to a seat and the input key is configured/configureed, the player sitting in the seat can activate the button by pressing the corresponding key.
TriggerMode 0: Trigger on key down
TriggerMode 1: Trigger on key up
TriggerMode 2: Trigger on key down and key up
categories: [Logic, Spawnable, Craftable]
hydrator: wos-object
Cannon:
documentation:
description: |-
Fires a cannon ball when triggered or clicked.
Must be supplied with an ammo material.
Iron is prioritized, and results in one large cannonball being shot.
Copper results in grapeshot.
categories: [Weapons, Spawnable, Craftable]
hydrator: wos-object
Cement:
documentation:
description: A modern material useful for pavement.
categories: [Spawnable, Craftable]
hydrator: wos-object
Chute:
documentation:
description: |-
Used to transfer solid resources between objects such as bins and extractors.
Chutes may also transport multiple resources at the same time, allowing for an entire factory to be connected through one chute system.
categories: [Starter, Storage, Spawnable, Craftable]
hydrator: wos-object
Claymore:
documentation:
description: A classic medieval sword used to cut down your enemies.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
Cleat:
documentation:
description: A textile resource similar to Rubber, except it has a high amount of friction and low bounciness. It can be used in physical machines such as the feet of mechs.
categories: [Spawnable, Craftable]
hydrator: wos-object
Cloth:
documentation:
description: A soft thin fabric that can soak up liquids.
categories: [Spawnable, Craftable]
hydrator: wos-object
Cone:
documentation:
description: A cone shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
Cooler:
documentation:
description: |-
Cools down the heat around a space when supplied with power.
Glows blue while functioning. Can be used to provide a cool environment in hot areas.
Is also useful for cooling down objects such as iondrives and engines.
Cooling amount is based on size -20 <i>X</i> Y * Z / 16
categories: [Electrical, Spawnable, Craftable]
hydrator: wos-object
CornerRoundWedge2:
documentation:
description: A corner shaped template object rounded inwards.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
CornerRoundWedge:
documentation:
description: A rounded corner shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
CornerTetra:
documentation:
description: A template which is a tetrahedron subtracted from a cube.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
CornerWedge:
documentation:
description: A corner wedge shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
CrossBow:
documentation:
description: A cheap primitive ranged weapon.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
Cylinder:
documentation:
description: A cylinder shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
Diode:
documentation:
description: Acts as a wire/chute/pipe/etc, but only works one way, through the diode's input and output faces as indicated by the arrow.
categories: [Electrical, Storage, Spawnable, Craftable]
hydrator: wos-object
EnergyGun:
documentation:
description: Fires a powerful shot of energy when provided power and triggered.
categories: [Weapons, Spawnable, Craftable]
hydrator: wos-object
EnergySword:
documentation:
description: A short ranged melee weapon which forms its own gravitational field when lunged. Forged with incarnated ̶m̶a̶g̶i̶c science!
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
EthernetCable:
documentation:
description: Allows for the transfer of data between ports. Mostly utilized in programming.
categories: [Logic, Spawnable, Craftable]
hydrator: wos-object
Extinguisher:
documentation:
description: A handy container with a spray nozzle to extinguish fires.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
Fence:
documentation:
description: A metal fence. Can be used to set up walls and guard structures and bases.
categories: [Decoration, Spawnable, Craftable]
hydrator: wos-object
FireWood:
documentation:
description: A version of wood that is able to burn longer, allowing it to be an efficient fire burning device.
categories: [Spawnable, Craftable]
hydrator: wos-object
Flashlight:
documentation:
description: A flashlight which can be used to provide light.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
FloatDevice:
documentation:
description: Produces a force which counteracts gravity and keeps the device floating. The device will additionally resist upwards and downwards vertical motion.
categories: [Propulsion, Electrical, Spawnable, Craftable]
hydrator: wos-object
Framewire:
documentation:
description: Enter the matrix.
categories: [Spawnable, Craftable]
hydrator: wos-object
Gear:
documentation:
description: A mechanical component commonly used in crafting recipes for many objects.
categories: [Spawnable, Craftable]
hydrator: wos-object
GeigerCounter:
documentation:
categories: [Spawnable, Craftable]
hydrator: wos-object
Goo:
documentation:
description: A sticky substance that binds things together like glue. The effect lasts for for two minutes, but it can be washed off with Water. It will also melt off at 95 °F.
categories: [Spawnable, Craftable]
hydrator: wos-object
Gun:
documentation:
description: |-
Fires a harmful bullet when triggered.
Must be supplied with ammo in order to function.
For example, you need an iron bin with 1 or more iron directly attached to it to work.
categories: [Weapons, Spawnable, Craftable]
hydrator: wos-object
HalfSphere:
documentation:
description: A half sphere shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
HeatPipe:
documentation:
description: Allows for the transfer of heat. Use a HeatPump to direct the heat.
categories: [Spawnable, Craftable]
hydrator: wos-object
Heater:
documentation:
description: Heats the air to `60 + volume / 16 * 10`°F.
categories: [Electrical, Spawnable, Craftable]
hydrator: wos-object
Hotdog:
documentation:
description: sandwich.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
ImpulseCannon:
documentation:
description: Blasts a harmless burst of energy which sends anything nearby soaring at a high velocity.
categories: [Weapons, Spawnable, Craftable]
hydrator: wos-object
Insulation:
documentation:
description: A flammable material with a low thermal conductivity.
categories: [Spawnable, Craftable]
hydrator: wos-object
Katana:
documentation:
description: A weeaboo sword used to cut down your enemies.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
Lantern:
documentation:
description: A handheld lantern which can be used to provide light.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
Marble:
documentation:
description: A compact, durable material. Primarily decorative.
categories: [Spawnable, Craftable]
hydrator: wos-object
MonsterMashPotion:
documentation:
description: You'll be a graveyard smash with this thrilling dance potion.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
MustardGas:
documentation:
description: A heavy chemical warfare weapon used to damage organisms. Gas Masks nullify the effects of this gas.
categories: [Spawnable, Craftable]
hydrator: wos-object
Neon:
documentation:
description: A building decoration material that glows by itself without requiring power.
categories: [Spawnable, Craftable]
hydrator: wos-object
NightVisionGoggles:
documentation:
description: A set of goggles which can be used to see in the dark.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
PDWX44:
documentation:
description: A versatile automatic pulse based PDW capable of dishing incredible amounts of damage in a small amount of time. Equipped with 3 barrels for an unparalleled firerate.
categories: [Tool, Spawnable, Craftable]
hydrator:
name: wos-object
class-name: PDW-X44
Pipe:
documentation:
description: Provides a medium for the transfer of liquids and gases between Tanks and other objects.
categories: [Storage, Spawnable, Craftable]
hydrator: wos-object
Pistol:
documentation:
description: A simple repeating firearm.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
PlasmaCannon:
documentation:
description: |-
Fires an orb of unstable plasma out of the barrel exploding on impact.
Needs to be fueled with 500 power and 50 helium or 1 plasma to fire.
categories: [Weapons, Spawnable, Craftable]
hydrator: wos-object
Plutonium:
documentation:
description: A highly radioactive compound used in manufacturing nuclear explosives.
categories: [Spawnable, Craftable]
hydrator: wos-object
PlutoniumCore:
documentation:
description: A volatile core close to going supercritical used in recipes for Nuclear explosives.
categories: [Spawnable, Craftable]
hydrator: wos-object
Primer:
documentation:
description: A component used in crafting recipes for a few objects.
categories: [Spawnable, Craftable]
hydrator: wos-object
Pulverizer:
documentation:
description: |-
Pulverizes resources into powdered forms. Power cost: 3/s.

Recipes:
- 1x <b>Quartz</b>,1x <b>Stone</b> → 2x <b>Sand</b>
- 1x <b>Ice</b> → 1x <b>Snow</b>
categories: [Electrical, Spawnable, Craftable]
hydrator: wos-object
RTG:
documentation:
description: Creates electricity from decaying radioactive elements.
categories: [Electrical, Spawnable, Craftable]
hydrator: wos-object
RegionCloaker:
documentation:
description: |-
Hides a certain region from players, making the coordinates not appear on their screen.
Region can only be (un)cloaked every 25 seconds. So if you unpower the <code>RegionCloaker</code>, you must wait 25 seconds before powering it again to ensure the region gets cloaked.
categories: [Electrical, Spawnable, Craftable]
hydrator: wos-object
ReinforcedGlass:
documentation:
description: A stronger, slightly less malleable version of glass. Blocks radiation.
categories: [Spawnable, Craftable]
hydrator: wos-object
RepairKit:
documentation:
description: A useful kit of tools that can be used to repair objects which have been damaged. Keep away from biters.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
Rice:
documentation:
description: Rice is nice.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
Rifle:
documentation:
description: A powerful long-range bolt action weapon. Q to scope.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
RoundWedge2:
documentation:
description: A block rounded inwards on one edge.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
RoundWedge:
documentation:
description: A block rounded on one edge, or 1/4 of a cylinder.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
Rubber:
documentation:
description: A textile resource used in manufacturing many industrial objects.
categories: [Spawnable, Craftable]
hydrator: wos-object
RustedMetal:
documentation:
description: A weathered piece of metal.
categories: [Spawnable, Craftable]
hydrator: wos-object
SMG:
documentation:
description: A fast firing, fully automatic gun able to pump out lots of rounds down range.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
ScubaMask:
documentation:
description: A set of goggles which can be used to help vision while underwater.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
SmoothGlass:
documentation:
description: A version of Glass using the Roblox Glass material. Additionally can be templated.
categories: [Spawnable, Craftable]
hydrator: wos-object
SmoothReinforcedGlass:
documentation:
description: A version of ReinforcedGlass using the Roblox Glass material.
categories: [Spawnable, Craftable]
hydrator: wos-object
SoundMuffler:
documentation:
description: A SoundMuffler will silences the sounds of machinery around it.
categories: [Spawnable, Craftable]
hydrator: wos-object
SpawnPoint:
documentation:
description: Acts as a spawn location for the player who locked it.
categories: [Starter, Spawnable, Craftable]
hydrator: wos-object
Spheroid:
documentation:
description: A stretchable sphere shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
StudAligner:
documentation:
description: Snaps the entire assembly its attached to to the grid.
categories: [Spawnable, Craftable]
hydrator: wos-object
Tetrahedron:
documentation:
description: A tetrahedron template made of 3 perpendicular right triangles.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
Tile:
documentation:
description: A cheap material made from baked clay useful for building houses.
categories: [Spawnable, Craftable]
hydrator: wos-object
TintedGlass:
documentation:
description: A material similar to Glass, but is tinted black on the front..
categories: [Spawnable, Craftable]
hydrator: wos-object
Tire:
documentation:
description: A cylindrical shaped object used commonly in vehicles such as cars.
categories: [Spawnable, Craftable]
hydrator: wos-object
Torch:
documentation:
description: A torch which can be used to provide light.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
TriggerWire:
documentation:
description: Allows trigger objects to interact with each other when connected by triggerwires.
categories: [Logic, Spawnable, Craftable]
hydrator: wos-object
Truss:
documentation:
description: Used as a ladder.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
VintagePlasmaPistol:
documentation:
description: They don't make em like they used to.
categories: [Tool, Spawnable, Craftable]
hydrator: wos-object
WaterCooler:
documentation:
description: Removes -100 heat from the surrounding area, when supplied with power. Performs the same amount of cooling that five coolers would, give or take.
categories: [Electrical, Spawnable, Craftable]
hydrator: wos-object
Wedge:
documentation:
description: A triangular shaped template object.
categories: [Templates, Spawnable, Craftable]
hydrator: wos-object
Wire:
documentation:
description: Allows electrical objects to interact with each other when connected by wires. For example, attaching a wire between a powercell and a light will allow electricity to move through the wire, allowing the light to function causing a source of light to be created.
categories: [Electrical, Starter, Spawnable, Craftable]
hydrator: wos-object
ZapWire:
documentation:
description: Electrocutes players when touched. Can be used to set flammable objects on fire.
categories: [Logic, Weapons, Decoration, Electrical, Spawnable, Craftable]
hydrator: wos-object

# Is only spawnable
AlienCore:
documentation:
description: |-
A mysterious piece of technology found within many robotic aliens.
Although its precise function is unknown, it manages to be extremely useful in advanced technologies.
It seems to emanate raw power on its own, but only these robotic constructions seem to know .
Generally, more powerful aliens will utilize more alien cores.
categories: [Natural, Electrical, Resources, Spawnable]
hydrator: wos-object
Aluminum:
documentation:
description: A light, non-durable material. Has a good thermal conductivity, but is lower than most other metals.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Beaker:
documentation:
description: A container for holding mixed chemicals.
categories: [Tool, Spawnable]
hydrator: wos-object
Beryllium:
documentation:
description: A lightweight metal only found on Barren planets used for preventing plutonium cores from going supercritical until detonated.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Billboardium:
documentation:
description: A super strong alloy made of Robux and pure refined ad.
categories: [Unused, Spawnable]
hydrator: wos-object
ChemicalSynthiser:
documentation:
description: |-
Synthesizes and mixes chemical compounds. Consumes matter out of attached bins in order to fuel the material synthesis.
- 1 Nitrogen + 3 Hydrogen = 2 Ammonia
- 1 Ammonia + 1 Ethanol = Diethylamine
- 2 Hydrogen + 2 Oxygen = Hydrogen Peroxide
- 2 Hydrogen + 1 Oxygen = Watern
- 1 Sodium + 1 Chlorine = Salt
- 2 Oxygen + 1 Carbon = Carbon Dioxide
- 2 Nitrogen + 1 Oxygen = Laughing gas/N2O
- 3 Chlorine + 1 Ethanol + 1 Water = Chloral Hydrate
- 1 Potassium + 1 Water = Explosion
- 1 Sodium + 1 Oxygen + 1 Hydrogen = 1 Sodium-Hydroxide
- 2 Oil + 1 Sodium-Hydroxide = Napalm
- 1 Diethylamine + 1 Ammonia + 1 Lithium + 1 Phosphorus = Hallucinogenic Compound
- 1 Salt + 1 Lithium + 1 Silicon + 1 Hydrogen = Hallucinogenic Toxin
- 1 Ammonia + 1 Oil + 1 Oxygen = Cyanide
- 1 Chlorine + 1 Ammonia = Mustard gas
- 1 Lithium + 1 Mercury = Toxin
- 1 Fluorine + 1 Hydrogen + 1 Potassium + 1 Sulphuric Acid = Fluorosulfuric Acid
- 1 Fluorosulfuric Acid + 1 Hydrogen Peroxide + 1 Nitrogen = Nitric Acid
categories: [Unused, Electrical, Spawnable]
hydrator: wos-object
Coal:
documentation:
description: A natural resources commonly used as a source of generating heat and energy. Can be placed in a BurnerGenerator to generate simple and fast energy.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Copper:
documentation:
description: A brown, shiny metal used heavily in electronics, a great conductor of both heat and electricity. Has a very high thermal conductivity, easily the best for common metals.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
DarkMatter:
documentation:
description: A very valuable material extracted from black holes and a few empty regions in space. Can be used to generate energy when supplied to a <code>DarkConverter</code>.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
DevGenerator:
documentation:
description: A debug item meant for developers.
categories: [Unused, Electrical, Spawnable]
hydrator: wos-object
Diamond:
documentation:
description: A rare, carbon-dense, and very durable gem. Takes 2x energy damage & allows lasers to pass.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Egg:
documentation:
description: The perfect consumable item.
categories: [Unused, Spawnable]
hydrator: wos-object
ExoticMatter:
documentation:
description: "???"
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
FactionSpawn:
documentation:
description: Acts as a spawn location for the faction of the player who locked it.
categories: [Unused, Spawnable]
hydrator: wos-object
Flint:
documentation:
description: |-
Useful for lighting up flammable materials.
Simply rub it against a flammable material and it will set it on fire.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Gasoline:
documentation:
description: A liquid used for fueling many devices such as rockets and engines.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Generator:
documentation:
description: Creates energy from rotation.
categories: [Unused, Electrical, Spawnable]
hydrator: wos-object
Glass:
documentation:
description: Created when sand is burned, set on fire, or fed into a Kiln. Can be broken by heavy impacts or by fist.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Gold:
documentation:
description: A very valuable and stretchable material. Has a thermal conductivity less than copper, and higher than aluminum.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Grass:
documentation:
description: An organic substance found in terra and forest planets. Often green, but can be other colors. Useful for planting seeds for agriculture.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
HeatSink:
documentation:
description: LEGACY. Reduces the air temperature by <b>10 °F</b> (Produces <b>13.018197023481843 kW</b> of heat energy).
categories: [Unused, Spawnable]
hydrator: wos-object
Heatshield:
documentation:
description: Generates a 300 stud radius area that protects all players and <b>only players</b> within the vicinity from temperature damage.
categories: [Unused, Electrical, Spawnable]
hydrator: wos-object
Helium:
documentation:
description: A light invisible odorless gas, floats up.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Hydrogen:
documentation:
description: A gas commonly found in stars and gas giants.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Ice:
documentation:
description: A compact natural resource found in tundra planets and the top of a few mountains. It is a slippery material, and has very low friction which can be useful in some devices.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
ImpactPlate:
documentation:
description: |-
EXPERIMENTAL - Distributes the damage it takes between itself and parts attached to its top surface, with higher health parts absorbing the most damage.
<b>25%</b> resistance to kinetic damage (guns, blades, cannons, explosions).
Cannot be chained with other <code>ImpactPlate</code>s.
categories: [Unused, Spawnable]
hydrator: wos-object
Iron:
documentation:
description: A compact and durable material, commonly found in planets. It is used often in crafting, and is a very important resource to have. Has poor thermal conductivity compared to most metals.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Jade:
documentation:
description: Reduces damage taken by 1.5 to a minimum of 0.2, but takes 25% additional damage.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Lava:
documentation:
description: A liquid used for fueling many devices such as rockets and engines.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Lead:
documentation:
description: An uncommon material used in protection against radiation and weapon manufacturing. Has one of the lowest thermal conductivities of all elemental metals in the game, next to Titanium.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Magnesium:
documentation:
description: A shiny gray solid that is flammable, randomly ignites when touching stone.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Neutronium:
documentation:
description: The most durable obtainable material in the game. It is a strange form of matter found from the crusts of neutron stars. Due to the nature of neutron stars, neutronium is the hardest known material as well as the densest known material in the universe.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
NitrogenOxide:
documentation:
description: A light gas emitted from machines such as extractors and rockets. Inhaling can cause severe lung damage.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
NuclearWaste:
documentation:
description: A highly radioactive material produced from spent Uranium in a reactor.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Obamium:
documentation:
description: An ancient artifact left behind from an alternate reality.
categories: [Unused, Spawnable]
hydrator: wos-object
Oil:
documentation:
description: A liquid used in refineries to produce Gasoline which can be used for fueling engines and rockets and Petroleum which can be used to make plastic.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Perfectium:
documentation:
description: The perfect material. Unbreakable, very stretchable, but is impossibly rare. The very sight of it makes you wonder the imperfections of human beings.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Petroleum:
documentation:
description: A gas used for creating plastic.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Plasma:
documentation:
description: A gas found abundant in stars, and can be harvested from them. Used primarily for weapons, as well as electrical components.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Quartz:
documentation:
description: A translucent and malleable crystal useful for making durable windows.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Radiator:
documentation:
description: LEGACY. Emits heat by releasing photons, making it ideal for discarding heat, and cooling things down. Will raise the temperature of surrounding air by <b>2.25 °F/s</b> (<b>85%</b> of the input heat will be permanently discarded). Effectively gets rid of <b>16.6 kW</b> (1 kW is 1 kJ/s) of heat energy. In total, only <b>2.93 kW</b> of the heat energy it releases will re-enter any surrounding air. In space, all <b>19.53 kW</b> of the Radiator's throughput will be expelled.
categories: [Unused, Spawnable]
hydrator: wos-object
Ruby:
documentation:
description: A shiny red gem which can be found in mountain deposits. Exceptionally durable for how easily it can be obtained. Takes 2x energy damage & allows lasers to pass.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Sand:
documentation:
description: An abundant resource that can be found in the shores of terra and forest planets, the sea floors of ocean planets and in the dunes of desert planets. When burnt, the sand becomes glass.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Shotgun:
documentation:
description: |-
Fires a shot of harmful pellets when triggered.
Must be supplied with ammo in order to function.
For example, you need an iron bin with 1 or more iron directly attached to it to work.
categories: [Unused, Weapons, Spawnable]
hydrator: wos-object
Silicon:
documentation:
description: A metalloid that is very useful for electronics. Can commonly be found in cliffs and rocks.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Snow:
documentation:
description: An abundant resource that can be found in terra biomes and tundra planets. Can be melted into water.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Stanlium:
documentation:
description: Its love quivers, like it yearns for something within you; an eerie siren song that penetrates souls and tells of the destruction.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Steam:
documentation:
description: A result of water being heated up to high temperatures.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Stick:
documentation:
description: A natural resource found in trees and flora, often accompanied by wood. It is used for creating vital tools.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Stone:
documentation:
description: A resource found in nearly all planets. It is not recommended to use for structures, but is often used in crafting simple objects.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Sulfur:
documentation:
description: A yellow flammable solid which can be found in Stone deposits. Being set on fire gives it a special blue fire.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
TestStarMap:
documentation:
description: |-
A developer version of the starmap.

Showcases the entire universe. Lag maybe?? :topkek:
categories: [Unused, Electrical, Spawnable]
hydrator: wos-object
Titanium:
documentation:
description: A strong heavy material that is very useful for small scale constructs. Has a very low thermal conductivity, the lowest of all metals in the game.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Uranium:
documentation:
description: |-
A radioactive material often found in deposits in planets, especially ones near stars.
Useful for energy generation from reactors or radiation generators.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
VitalScanner:
documentation:
description: Displays chemicals another player has absorbed.
categories: [Tool, Spawnable]
hydrator: wos-object
Water:
documentation:
description: |-
The basis of all life, and is a liquid found in terra, forest, ocean and certain tundras and rogue planets.
At 212 degrees, the water evaporates into steam.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object
Wood:
documentation:
description: <b>A natural resource found in trees and flora.</b> It is a simple and yet effective material that is used for simple objects and structures. These can be mainly found in terra and forest planets, but can occasionally be found in temperate tundra and desert planets.
categories: [Natural, Resources, Spawnable]
hydrator: wos-object

# Worthless
AdBoard:
documentation:
description: Allows the creation of Ad elements, automatically. Very useful for making money.
categories: [Unused, Logic]
hydrator: wos-object
AdminTool:
documentation:
description: A debug item meant for developers.
categories: [Unused, Tools]
hydrator: wos-object
Mandrillium:
documentation:
description: An ancient artifact left behind from an alternate reality.
categories: [Unused]
hydrator: wos-object
StanSword:
documentation:
description: "..."
categories: [Tool, Tools]
hydrator: wos-object
SubspaceTripmine:
documentation:
description: |-
WARNING: HIGH EXPLOSIVE DEVICE. When triggered, this devastating weapon rips a gashing hole in the fabric of reality - subsequent spacetime reification results in a large explosion. USE: Drop mine. Once the mine stops moving, it will enter subspace and become invisible. At this point the mine is armed. Touching the mine will set it off... (Disabled in Testing Zone)
categories: [Unused, Tools]
hydrator: wos-object