{
	"Classes": [
		{
			"Name": "AIActivity",
			"Description": "AIActivity is an Object registered with an `AIActivityHandler`, representing one possible activity that the handler may execute each time it ticks.",
			"BaseType": "Object",
			"Properties": [
				{
					"Name": "name",
					"Description": "This activity's name.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "owner",
					"Description": "The AIActivityHandler that owns this activity. May be `nil` if this activity has been removed from its owner.",
					"Type": "AIActivityHandler",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "priority",
					"Description": "The current priority of this activity. Expected to be greater than 0, and expected to be adjusted by the `tick` function provided when adding the activity to its handler, though this can be set at any time.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "isDebugModeEnabled",
					"Description": "True if this activity has debugging enabled in the AI Debugger. Useful for deciding whether to log additional information about specific activities.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isHighestPriority",
					"Description": "True if this activity is the activity with the highest priority among its owner's list of activities. Note that this value does not update immediately when setting an activity's priority, but will be updated by the handler each tick when the handler evaluates its list of activities.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "elapsedTime",
					"Description": "If this activity is the highest priority for its handler, returns the length of time for which it has been highest priority. Otherwise returns the length of time since it was last highest priority, or since it was added to the handler.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "AIActivityHandler",
			"Description": "AIActivityHandle is a CoreObject which can manage one or more `AIActivity`. Each tick, the handler calls a function on each of its registered activities to give them a chance to reevaluate their priorities. It then ticks the highest priority activity again, allowing it to perform additional work.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "isSelectedInDebugger",
					"Description": "True if this activity handler is currently selected in the AI Debugger.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "AddActivity",
					"Description": "Creates a new AIActivity registered to the handler with the given unique name and optional functions. Raises an error if the provided name is already in use by another activity in the same handler. `functions` may contain the following:<br>`tick - function(number deltaTime)`: Called for each activity on each tick by the handler, expected to adjust the priority of the activity.<br>`tickHighestPriority - function(number deltaTime)`: Called after `tick` for whichever activity has the highest priority within the handler.<br>`start - function()`: Called between `tick` and `tickHighestPriority` when an activity has become the new highest priority activity within the handler.<br>`stop - function()`: Called when the current highest priority activity has been removed from the handler or is otherwise no longer the highest priority activity.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "AIActivity"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								},
								{
									"Type": "table",
									"Name": "functions",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "RemoveActivity",
					"Description": "Removes the activity with the given name from the handler. Logs a warning if no activity is found with that name. If the named activity is currently the highest priority activity in the handler, its `stop` function will be called.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "ClearActivities",
					"Description": "Removes all activities from the handler. Calls the `stop` function for the highest priority activity.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "GetActivities",
					"Description": "Returns an array of all of the handler's activities.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<AIActivity>"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "FindActivity",
					"Description": "Returns the activity with the given name, or `nil` if that name is not found in the handler.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "AIActivity"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Ability",
			"Description": "Abilities are CoreObjects that can be added to Players and guide the Player's animation in sync with the Ability's state machine. Spawn an Ability with `World.SpawnAsset()` or add an Ability as a child of an Equipment/Weapon to have it be assigned to the Player automatically when that item is equipped.\r\n\r\nAbilities can be activated by association with an Action Binding. Their internal state machine flows through the phases: Ready, Cast, Execute, Recovery, and Cooldown. An Ability begins in the Ready state and transitions to Cast when its Binding (for example Left mouse click) is activated by the owning player. It then automatically flows from Cast to Execute, then Recovery and finally Cooldown. At each of these state transitions it fires a corresponding event.\r\n\r\nOnly one ability can be active at a time. By default, activating an ability will interrupt the currently active ability. The `canBePrevented` and `preventsOtherAbilities` properties can be used to customize interruption rules for competing abilities.\r\n\r\nIf an ability is interrupted during the Cast phase, it will immediately reset to the Ready state. If an ability is interrupted during the Execute or Recovery phase, the ability will immediately transition to the Cooldown phase.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "actionBinding",
					"Description": "*This property is deprecated. Please use `actionName` instead, but note that `actionBinding` and `actionName` use different values.*  Which action binding will cause the Ability to activate. Possible values of the bindings are listed on the [Ability binding](../api/key_bindings.md) page.",
					"IsDeprecated": true,
					"DeprecationMessage": "actionBinding is deprecated. Please use actionName instead.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "actionName",
					"Description": "Which binding set action name will cause the Ability to activate.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "canActivateWhileDead",
					"Description": "Indicates if the Ability can be used while the owning Player is dead. False by default.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "animation",
					"Description": "Name of the animation the Player will play when the Ability is activated. Possible values: See [Ability Animation](../api/animations.md) for strings and other info.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "canBePrevented",
					"Description": "Used in conjunction with the phase property `preventsOtherAbilities` so multiple abilities on the same Player can block each other during specific phases. True by default.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "castPhaseSettings",
					"Description": "Config data for the Cast phase (see below).",
					"Type": "AbilityPhaseSettings",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "executePhaseSettings",
					"Description": "Config data for the Execute phase.",
					"Type": "AbilityPhaseSettings",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "recoveryPhaseSettings",
					"Description": "Config data for the Recovery phase.",
					"Type": "AbilityPhaseSettings",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "cooldownPhaseSettings",
					"Description": "Config data for the Cooldown phase.",
					"Type": "AbilityPhaseSettings",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isEnabled",
					"Description": "Turns an Ability on/off. It stays on the Player but is interrupted if `isEnabled` is set to `false` during an active Ability. True by default.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "owner",
					"Description": "Assigning an owner applies the Ability to that Player.",
					"Type": "Object",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "readyEvent",
					"Description": "Fired when the Ability becomes ready. In this phase it is possible to activate it again.",
					"Parameters": [
						{
							"Type": "Ability",
							"Name": "ability"
						}
					]
				},
				{
					"Name": "castEvent",
					"Description": "Fired when the Ability enters the Cast phase.",
					"Parameters": [
						{
							"Type": "Ability",
							"Name": "ability"
						}
					]
				},
				{
					"Name": "executeEvent",
					"Description": "Fired when the Ability enters Execute phase.",
					"Parameters": [
						{
							"Type": "Ability",
							"Name": "ability"
						}
					]
				},
				{
					"Name": "recoveryEvent",
					"Description": "Fired when the Ability enters Recovery.",
					"Parameters": [
						{
							"Type": "Ability",
							"Name": "ability"
						}
					]
				},
				{
					"Name": "cooldownEvent",
					"Description": "Fired when the Ability enters Cooldown.",
					"Parameters": [
						{
							"Type": "Ability",
							"Name": "ability"
						}
					]
				},
				{
					"Name": "interruptedEvent",
					"Description": "Fired when the Ability is interrupted.",
					"Parameters": [
						{
							"Type": "Ability",
							"Name": "ability"
						}
					]
				},
				{
					"Name": "tickEvent",
					"Description": "Fired every tick while the Ability is active (isEnabled = true and phase is not ready).",
					"Parameters": [
						{
							"Type": "Ability",
							"Name": "ability"
						},
						{
							"Type": "number",
							"Name": "deltaTime"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetTargetData",
					"Description": "Returns information about what the Player has targeted this phase.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "AbilityTarget"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetTargetData",
					"Description": "Updates information about what the Player has targeted this phase. This can affect the execution of the Ability.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "AbilityTarget",
									"Name": "target"
								}
							]
						}
					]
				},
				{
					"Name": "GetCurrentPhase",
					"Description": "The current AbilityPhase for this Ability. These are returned as one of: AbilityPhase.READY, AbilityPhase.CAST, AbilityPhase.EXECUTE, AbilityPhase.RECOVERY and AbilityPhase.COOLDOWN.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "AbilityPhase"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetCurrentPhaseSettings",
					"Description": "Returns the settings for the current phase of this Ability. Returns `nil` if the current phase is `AbilityPhase.READY`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "AbilityPhaseSettings"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetPhaseTimeRemaining",
					"Description": "Seconds left in the current phase.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Interrupt",
					"Description": "Changes an Ability from Cast phase to Ready phase. If the Ability is in either Execute or Recovery phases it instead goes to Cooldown phase.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Activate",
					"Description": "Activates an Ability as if the button had been pressed.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "AdvancePhase",
					"Description": "Advances a currently active Ability from its current phase to the next phase. For example, an ability in the Cast phase will begin the Execute phase, an ability on cooldown will become ready, etc.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "AbilityPhaseSettings",
			"Description": "Each phase of an Ability can be configured differently, allowing complex and different Abilities. AbilityPhaseSettings is an Object.",
			"BaseType": "Object",
			"Properties": [
				{
					"Name": "duration",
					"Description": "Length in seconds of the phase. After this time the Ability moves to the next phase. Can be zero. Default values per phase: 0.15, 0, 0.5 and 3.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "canMove",
					"Description": "Is the Player allowed to move during this phase. True by default.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "canJump",
					"Description": "Is the Player allowed to jump during this phase. False by default in Cast & Execute, default True in Recovery & Cooldown.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "canRotate",
					"Description": "Is the Player allowed to rotate during this phase. True by default.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "preventsOtherAbilities",
					"Description": "When true this phase prevents the Player from casting another Ability, unless that other Ability has canBePrevented set to False. True by default in Cast & Execute, false in Recovery & Cooldown.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isTargetDataUpdated",
					"Description": "If `true`, there will be updated target information at the start of the phase. Otherwise, target information may be out of date.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "facingMode",
					"Description": "How and if this Ability rotates the Player during execution. Cast and Execute default to \"Aim\", other phases default to \"None\". Options are: AbilityFacingMode.NONE, AbilityFacingMode.MOVEMENT, AbilityFacingMode.AIM",
					"Type": "AbilityFacingMode",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "AbilityTarget",
			"Description": "A data type containing information about what the Player has targeted during a phase of an Ability.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a new Ability Target data object.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "AbilityTarget"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Properties": [
				{
					"Name": "hitPlayer",
					"Description": "Convenience property that is the same as hitObject, but only if hitObject is a Player.",
					"Type": "Player"
				},
				{
					"Name": "hitObject",
					"Description": "Object under the reticle, or center of the screen if no reticle is displayed. Can be a Player, StaticMesh, etc.",
					"Type": "Object"
				},
				{
					"Name": "spreadHalfAngle",
					"Description": "Half-angle of cone of possible target space, in degrees.",
					"Type": "number"
				},
				{
					"Name": "spreadRandomSeed",
					"Description": "Seed that can be used with RandomStream for deterministic RNG.",
					"Type": "integer"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetOwnerMovementRotation",
					"Description": "Gets the direction the Player is moving.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetOwnerMovementRotation",
					"Description": "Sets the direction the Player faces, if `Ability.facingMode` is set to `AbilityFacingMode.MOVEMENT`.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotation"
								}
							]
						}
					]
				},
				{
					"Name": "GetAimPosition",
					"Description": "Returns the world space position of the camera.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetAimPosition",
					"Description": "The world space location of the camera. Setting this currently has no effect on the Player's camera.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								}
							]
						}
					]
				},
				{
					"Name": "GetAimDirection",
					"Description": "Returns the direction the camera is facing.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetAimDirection",
					"Description": "Sets the direction the camera is facing.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "direction"
								}
							]
						}
					]
				},
				{
					"Name": "GetHitPosition",
					"Description": "Returns the world space position of the object under the Player's reticle. If there is no object, a position under the reticle in the distance. If the Player doesn't have a reticle displayed, uses the center of the screen as if there was a reticle there.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetHitPosition",
					"Description": "Sets the hit position property. This may affect weapon behavior.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								}
							]
						}
					]
				},
				{
					"Name": "GetHitResult",
					"Description": "Returns physics information about the point being targeted",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HitResult"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetHitResult",
					"Description": "Sets the hit result property. Setting this value has no affect on the Ability.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "HitResult",
									"Name": "hitResult"
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "AnimatedMesh",
			"Description": "AnimatedMesh objects are skeletal CoreMeshes with parameterized animations baked into them. They also have sockets exposed to which any CoreObject can be attached.",
			"BaseType": "CoreMesh",
			"Properties": [
				{
					"Name": "animationStance",
					"Description": "The stance the animated mesh plays.",
					"Type": "string",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "animationStancePlaybackRate",
					"Description": "The playback rate for the animation stance being played.",
					"Type": "number",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "animationStanceShouldLoop",
					"Description": "If `true`, the animation stance will keep playing in a loop. If `false` the animation will stop playing once completed.",
					"Type": "boolean",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "playbackRateMultiplier",
					"Description": "Rate multiplier for all animations played on the animated mesh. Setting this to `0` will stop all animations on the mesh.",
					"Type": "number",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "animationEvent",
					"Description": "Some animations have events specified at important points of the animation (for example the impact point in a punch animation). This event is fired with the animated mesh that triggered it, the name of the event at those points, and the name of the animation itself.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "AnimatedMesh",
							"Name": "animatedMesh"
						},
						{
							"Type": "string",
							"Name": "eventName"
						},
						{
							"Type": "string",
							"Name": "animationName"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetAnimationNames",
					"Description": "Returns an array of all available animations on this object.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetAnimationStanceNames",
					"Description": "Returns an array of all available animation stances on this object.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetSocketNames",
					"Description": "Returns an array of all available sockets on this object.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetAnimationEventNames",
					"Description": "Returns an array of available animation event names for the specified animation. Raises an error if `animationName` is not a valid animation on this mesh.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "animationName"
								}
							]
						}
					]
				},
				{
					"Name": "AttachCoreObject",
					"Description": "Attaches the specified object to the specified socket on the mesh if they exist.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "objectToAttach"
								},
								{
									"Type": "string",
									"Name": "socket"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "PlayAnimation",
					"Description": "Plays an animation on the animated mesh.<br /> Optional parameters can be provided to control the animation playback: `startPosition (number)`: A number between 0 and 1 controlling where in the animation playback will start; `playbackRate (number)`: Controls how fast the animation plays; `shouldLoop (boolean)`: If `true`, the animation will keep playing in a loop. If `false` the animation will stop playing once completed.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "animationName"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "StopAnimations",
					"Description": "Stops all in-progress animations played via `PlayAnimation` on this object.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetAnimationDuration",
					"Description": "Returns the duration of the animation in seconds. Raises an error if `animationName` is not a valid animation on this mesh.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "animationName"
								}
							]
						}
					]
				},
				{
					"Name": "SetMeshForSlot",
					"Description": "Assigns a mesh to the specified slot on this `AnimatedMesh`. If `assetId` is an empty string or identifies an incompatible asset, the slot will be cleared.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slotIndex"
								},
								{
									"Type": "string",
									"Name": "assetId"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetMeshForSlot",
					"Description": "Returns the asset ID of the mesh assigned to the specified slot on this `AnimatedMesh`. Returns `nil` if no mesh is assigned to the slot.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slotIndex"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetMaterialForSlot",
					"Description": "Set the material in the given slot to the material specified by assetId.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "assetId"
								},
								{
									"Type": "string",
									"Name": "slotName"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetMaterialSlot",
					"Description": "Get the MaterialSlot object for the given slot. If called on the client on a networked object, the resulting object cannot be modified.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "MaterialSlot",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "slotName"
								}
							]
						}
					]
				},
				{
					"Name": "GetMaterialSlots",
					"Description": "Get an array of all MaterialSlots on this mesh. If called on the client on a networked object, the resulting object cannot be modified.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<MaterialSlot>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ResetMaterialSlot",
					"Description": "Resets a material slot to its original state.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "slotName"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "AreaLight",
			"Description": "AreaLight is a Light that emits light from a rectangular plane. It also has properties for configuring a set of \"doors\" attached to the plane which affect the lit area in front of the plane.",
			"BaseType": "Light",
			"Properties": [
				{
					"Name": "sourceWidth",
					"Description": "The width of the plane from which light is emitted. Must be greater than 0.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "sourceHeight",
					"Description": "The height of the plane from which light is emitted. Must be greater than 0.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "barnDoorAngle",
					"Description": "The angle of the barn doors, in degrees. Valid values are in the range from 0 to 90. Has no effect if `barnDoorLength` is 0.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "barnDoorLength",
					"Description": "The length of the barn doors. Must be non-negative.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Audio",
			"Description": "Audio is a CoreObject that wrap sound files. Most properties are exposed in the UI and can be set when placed in the editor, but some functionality (such as playback with fade in/out) requires Lua scripting.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "isSpatializationEnabled",
					"Description": "Default true. Set to false to play sound without 3D positioning.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isAttenuationEnabled",
					"Description": "Default true, meaning sounds will fade with distance.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isOcclusionEnabled",
					"Description": "Default true. Changes attenuation if there is geometry between the player and the audio source.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isAutoPlayEnabled",
					"Description": "Default false. If set to true when placed in the editor (or included in a template), the sound will be automatically played when loaded.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isTransient",
					"Description": "Default false. If set to true, the sound will automatically destroy itself after it finishes playing.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isAutoRepeatEnabled",
					"Description": "Loops when playback has finished. Some sounds are designed to automatically loop, this flag will force others that don't. Useful for looping music.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "pitch",
					"Description": "Default 1. Multiplies the playback pitch of a sound. Note that some sounds have clamped pitch ranges (0.2 to 1).",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "volume",
					"Description": "Default 1. Multiplies the playback volume of a sound. Note that values above 1 can distort sound, so if you're trying to balance sounds, experiment to see if scaling down works better than scaling up.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "radius",
					"Description": "Default 0. If non-zero, will override default 3D spatial parameters of the sound. Radius is the distance away from the sound position that will be played at 100% volume.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "falloff",
					"Description": "Default 0. If non-zero, will override default 3D spatial parameters of the sound. Falloff is the distance outside the radius over which the sound volume will gradually fall to zero.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isPlaying",
					"Description": "Returns if the sound is currently playing.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "length",
					"Description": "Returns the length (in seconds) of the Sound.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "currentPlaybackTime",
					"Description": "Returns the playback position (in seconds) of the sound.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "fadeInTime",
					"Description": "Sets the fade in time for the audio. When the audio is played, it will start at zero volume, and fade in over this many seconds.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "fadeOutTime",
					"Description": "Sets the fadeout time of the audio. When the audio is stopped, it will keep playing for this many seconds, as it fades out.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "startTime",
					"Description": "The start time of the audio track. Default is 0. Setting this to anything else means that the audio will skip ahead that many seconds when played.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "stopTime",
					"Description": "The stop time of the audio track. Default is 0. A positive value means that the audio will stop that many seconds from the start of the track, including any fade out time.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Play",
					"Description": "Begins sound playback.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Stop",
					"Description": "Stops sound playback.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "FadeIn",
					"Description": "Starts playing and fades in the sound over the given time.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "number",
									"Name": "time"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "FadeOut",
					"Description": "Fades the sound out and stops over time seconds.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "number",
									"Name": "time"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "BindingSet",
			"Description": "BindingSet is a CoreObject which contains a set of actions a creator has defined for a game and the default key bindings to trigger those actions.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Camera",
			"Description": "Camera is a CoreObject which is used both to configure Player Camera settings as well as to represent the position and rotation of the Camera in the world. Cameras can be configured in various ways, usually following a specific Player's view, but can also have a fixed orientation and/or position.\r\n\r\nEach Player (on their client) can have a default Camera and an override Camera. If they have neither, camera behavior falls back to a basic third-person behavior. Default Cameras should be used for main gameplay while override Cameras are generally employed as a temporary view, such as a when the Player is sitting in a mounted turret.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "followPlayer",
					"Description": "Which Player's view the camera should follow. Set to the local Player for a first or third person camera. Set to nil to detach.",
					"Type": "Player",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isOrthographic",
					"Description": "Whether the camera uses an isometric (orthographic) view or perspective.",
					"IsDeprecated": true,
					"DeprecationMessage": "isOrthographic is deprecated. A distant camera with low field of view is a good replacement.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "fieldOfView",
					"Description": "The field of view when using perspective view. Clamped between 1.0 and 170.0.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "viewWidth",
					"Description": "The width of the view with an isometric view. Has a minimum value of 1.0.",
					"IsDeprecated": true,
					"DeprecationMessage": "viewWidth is deprecated, A distance camera with low field of view is a good replacement.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "useCameraSocket",
					"Description": "If you have a followPlayer, then use their camera socket. This is often preferable for first-person cameras, and gives a bit of view bob.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "currentDistance",
					"Description": "The distance controlled by the Player with scroll wheel (by default).",
					"Type": "number",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "isDistanceAdjustable",
					"Description": "Whether the Player can control their camera distance (with the mouse wheel by default). Creators can still access distance through currentDistance below, even if this value is false.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "minDistance",
					"Description": "The minimum distance the Player can zoom in to.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "maxDistance",
					"Description": "The maximum distance the Player can zoom out to.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "rotationMode",
					"Description": "Which base rotation to use. Values: `RotationMode.CAMERA`, `RotationMode.NONE`, `RotationMode.LOOK_ANGLE`.",
					"Type": "RotationMode",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "hasFreeControl",
					"Description": "Whether the Player can freely control their rotation (with mouse or thumbstick). Requires movement mode `RotationMode.CAMERA`. This has no effect if the camera is following a player.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "currentPitch",
					"Description": "The current pitch of the Player's free control.",
					"Type": "number",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "minPitch",
					"Description": "The minimum pitch for free control.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "maxPitch",
					"Description": "The maximum pitch for free control.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isYawLimited",
					"Description": "Whether the Player's yaw has limits. If so, `maxYaw` must be at least `minYaw`, and should be outside the range `[0, 360]` if needed.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "currentYaw",
					"Description": "The current yaw of the Player's free control.",
					"Type": "number",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "minYaw",
					"Description": "The minimum yaw for free control.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "maxYaw",
					"Description": "The maximum yaw for free control.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "useAsAudioListener",
					"Description": "Whether the local player's audio should be attenuated and spatialized based on their view position while this is the active camera.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "audioListenerOffset",
					"Description": "This property is deprecated. Please use the GetAudioListenerOffset() and SetAudioListenerOffset() functions instead.",
					"IsDeprecated": true,
					"DeprecationMessage": "audioListenerOffset is deprecated. Use GetAudioListenerOffset() and SetAudioListenerOffset() instead.",
					"Type": "Vector3",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "lerpTime",
					"IsDeprecated": true,
					"DeprecationMessage": "lerpTime is deprecated. Use MoveTo() or RotateTo() instead.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isUsingCameraRotation",
					"IsDeprecated": true,
					"DeprecationMessage": "isUsingCameraRotation is deprecated. Use rotationMode and hasFreeControl instead.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetPositionOffset",
					"Description": "An offset added to the camera or follow target's eye position to the Player's view.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetPositionOffset",
					"Description": "An offset added to the camera or follow target's eye position to the Player's view.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "positionOffset"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetRotationOffset",
					"Description": "A rotation added to the camera or follow target's eye position.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetRotationOffset",
					"Description": "A rotation added to the camera or follow target's eye position.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotationOffset"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetAudioListenerOffset",
					"Description": "Returns the local offset to the view position when using this camera as the audio listener.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetAudioListenerOffset",
					"Description": "Sets the local offset to the view position when using this camera as the audio listener.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "offset"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Capture",
					"Description": "Captures an image at the specified resolution using this camera. Returns a `CameraCapture` object that may be used to display this image or refresh the capture. May return `nil` if the maximum number of capture instances at the desired resolution has been exceeded. The optional parameter table is currently unused.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CameraCapture",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "CameraCaptureResolution",
									"Name": "resolution"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CameraCapture",
			"Description": "CameraCapture represents an image rendered by a `Camera` to be used elsewhere in the game, for example in UI. Captures can be created using a fixed set of resolutions, and a finite number of captures are allowed at a time for each resolution. Creators may wish to explicitly release existing capture instances when they are no longer needed, so that they can create more elsewhere. A released capture is no longer valid, and should not be used thereafter.\r\n\r\nCurrently, creators are limited to the following:\r\n\r\n* Up to 256 `VERY_SMALL` captures.\r\n* In addition to Up to 64 `SMALL` capture.\r\n* In addition to Up to 16 `MEDIUM` captures.\r\n* In addition to Up to 4 `LARGE` captures.\r\n* In addition to Up to 1 `VERY_LARGE` capture.",
			"Properties": [
				{
					"Name": "resolution",
					"Description": "The resolution of this capture.",
					"Type": "CameraCaptureResolution",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "camera",
					"Description": "The Camera to capture from.",
					"Type": "Camera"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsValid",
					"Description": "Returns `true` if this capture instance has valid resources.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Refresh",
					"Description": "Recaptures the render using the current camera.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Release",
					"Description": "Releases the texture resources associated with this capture instance. This instance will become invalid and should no longer be used.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Color",
			"Description": "An RGBA representation of a color. Color components have an effective range of `[0.0, 1.0]`, but values greater than 1 may be used.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a new Color.",
					"Signatures": [
						{
							"Name": "WithColor",
							"Description": "Makes a copy of the given color.",
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						},
						{
							"Name": "WithVector4",
							"Description": "Constructs a Color using the vector's XYZW components as the color's RGBA components.",
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "Vector4",
									"Name": "rgbaVector"
								}
							]
						},
						{
							"Name": "WithVector3",
							"Description": "Constructs a Color using the vector's XYZ components as the color's RGB components, alpha defaults to 1.0.",
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "rgbVector"
								}
							]
						},
						{
							"Name": "WithRGBA",
							"Description": "Constructs a Color with the given values, alpha defaults to 1.0.",
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "red"
								},
								{
									"Type": "number",
									"Name": "green"
								},
								{
									"Type": "number",
									"Name": "blue"
								},
								{
									"Type": "number",
									"Name": "alpha"
								}
							]
						},
						{
							"Name": "WithRGB",
							"Description": "Constructs a Color with the given values, alpha defaults to 1.0.",
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "red"
								},
								{
									"Type": "number",
									"Name": "green"
								},
								{
									"Type": "number",
									"Name": "blue"
								}
							]
						},
						{
							"Name": "Default",
							"Description": "Constructs a new Color.",
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Constants": [
				{
					"Name": "WHITE",
					"Description": "#ffffffff",
					"Type": "Color"
				},
				{
					"Name": "GRAY",
					"Description": "#7f7f7fff",
					"Type": "Color"
				},
				{
					"Name": "BLACK",
					"Description": "#000000ff",
					"Type": "Color"
				},
				{
					"Name": "TRANSPARENT",
					"Description": "#ffffff00",
					"Type": "Color"
				},
				{
					"Name": "RED",
					"Description": "#ff0000ff",
					"Type": "Color"
				},
				{
					"Name": "GREEN",
					"Description": "#00ff00ff",
					"Type": "Color"
				},
				{
					"Name": "BLUE",
					"Description": "#0000ffff",
					"Type": "Color"
				},
				{
					"Name": "CYAN",
					"Description": "#00ffffff",
					"Type": "Color"
				},
				{
					"Name": "MAGENTA",
					"Description": "#ff00ffff",
					"Type": "Color"
				},
				{
					"Name": "YELLOW",
					"Description": "#ffff00ff",
					"Type": "Color"
				},
				{
					"Name": "ORANGE",
					"Description": "#cc4c00ff",
					"Type": "Color"
				},
				{
					"Name": "PURPLE",
					"Description": "#4c0099ff",
					"Type": "Color"
				},
				{
					"Name": "BROWN",
					"Description": "#721400ff",
					"Type": "Color"
				},
				{
					"Name": "PINK",
					"Description": "#ff6666ff",
					"Type": "Color"
				},
				{
					"Name": "TAN",
					"Description": "#e5bf4cff",
					"Type": "Color"
				},
				{
					"Name": "RUBY",
					"Description": "#660101ff",
					"Type": "Color"
				},
				{
					"Name": "EMERALD",
					"Description": "#0c660cff",
					"Type": "Color"
				},
				{
					"Name": "SAPPHIRE",
					"Description": "#02024cff",
					"Type": "Color"
				},
				{
					"Name": "SILVER",
					"Description": "#b2b2b2ff",
					"Type": "Color"
				},
				{
					"Name": "SMOKE",
					"Description": "#191919ff",
					"Type": "Color"
				}
			],
			"Properties": [
				{
					"Name": "r",
					"Description": "The Red component of the Color.",
					"Type": "number"
				},
				{
					"Name": "g",
					"Description": "The Green component of the Color.",
					"Type": "number"
				},
				{
					"Name": "b",
					"Description": "The Blue component of the Color.",
					"Type": "number"
				},
				{
					"Name": "a",
					"Description": "The Alpha (transparency) component of the Color.",
					"Type": "number"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetDesaturated",
					"Description": "Returns the desaturated version of the Color. 0 represents no desaturation and 1 represents full desaturation.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "desaturation"
								}
							]
						}
					]
				},
				{
					"Name": "ToStandardHex",
					"Description": "Returns a hexadecimal sRGB representation of this color, in the format \"#RRGGBBAA\". Channel values outside the normal 0-1 range will be clamped, and some precision may be lost.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ToLinearHex",
					"Description": "Returns a hexadecimal linear RGB representation of this color, in the format \"#RRGGBBAA\". Channel values outside the normal 0-1 range will be clamped, and some precision may be lost.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "Random",
					"Description": "Returns a new color with random RGB values and Alpha of 1.0.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Lerp",
					"Description": "Linearly interpolates between two colors in HSV space by the specified progress amount and returns the resultant Color.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "from"
								},
								{
									"Type": "Color",
									"Name": "to"
								},
								{
									"Type": "number",
									"Name": "progress"
								}
							]
						}
					]
				},
				{
					"Name": "FromStandardHex",
					"Description": "Creates a Color from the given sRGB hexadecimal string. Supported formats include \"#RGB\", \"#RGBA\", \"#RRGGBB\", and \"#RRGGBBAA\", with or without the leading \"#\".",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "hexString"
								}
							]
						}
					]
				},
				{
					"Name": "FromLinearHex",
					"Description": "Creates a Color from the given linear RGB hexadecimal string. Supported formats include \"#RGB\", \"#RGBA\", \"#RRGGBB\", and \"#RRGGBBAA\", with or without the leading \"#\".",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "hexString"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreFriendCollection",
			"Description": "Contains a set of results from [CoreSocial.GetFriends()](coresocial.md). Depending on how many friends a player has, results may be separated into multiple pages. The `.hasMoreResults` property may be checked to determine whether more friends are available. Those results may be retrieved using the `:GetMoreResults()` function.",
			"Properties": [
				{
					"Name": "hasMoreResults",
					"Description": "Returns `true` if there are more friends available to be requested.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetResults",
					"Description": "Returns the list of friends contained in this set of results. This may return an empty table for players who have no friends.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreFriendCollectionEntry>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetMoreResults",
					"Description": "Requests the next set of results for this list of friends and returns a new collection containing those results. Returns `nil` if the `hasMoreResults` property is `false`. This function may yield until a result is available, and may raise an error if an error occurs retrieving the information.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreFriendCollection",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreFriendCollectionEntry",
			"Description": "Represents a single friend in a [CoreFriendCollection](corefriendcollection.md).",
			"Properties": [
				{
					"Name": "id",
					"Description": "The ID of the friend.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "name",
					"Description": "The name of the friend.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreGameCollectionEntry",
			"Description": "Metadata about a published game in a collection on the Core platform. Additional metadata is available via [CorePlatform.GetGameInfo()](coreplatform.md).",
			"Properties": [
				{
					"Name": "id",
					"Description": "The ID of the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "parentGameId",
					"Description": "The ID of this game's parent game if there is one, or else `nil`.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "name",
					"Description": "The name of the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "ownerId",
					"Description": "The player ID of the creator who published the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "ownerName",
					"Description": "The player name of the creator who published the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isPromoted",
					"Description": "Whether or not this game is promoted.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreGameEvent",
			"Description": "Metadata about a creator-defined event for a game on the Core platform.",
			"Properties": [
				{
					"Name": "id",
					"Description": "The ID of the event.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "gameId",
					"Description": "The ID of the game this event belongs to.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "name",
					"Description": "The display name of the event.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "referenceName",
					"Description": "The reference name of the event.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "description",
					"Description": "The description of the event.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "state",
					"Description": "The current state of the event (active, scheduled, etc).",
					"Type": "CoreGameEventState",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "registeredPlayerCount",
					"Description": "The number of players currently registered for this event.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetTags",
					"Description": "Returns a list of the tags selected when this event was published.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetStartDateTime",
					"Description": "Returns the start date and time of the event.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DateTime"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetEndDateTime",
					"Description": "Returns the end date and time of the event.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DateTime"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreGameEventCollection",
			"Description": "Contains a set of results from [CorePlatform.GetGameEventCollection()](coreplatform.md) and related functions. Depending on how many events are available, results may be separated into multiple pages. The `.hasMoreResults` property may be checked to determine whether more events are available. Those results may be retrieved using the `:GetMoreResults()` function.",
			"Properties": [
				{
					"Name": "hasMoreResults",
					"Description": "Returns `true` if there are more events available to be requested.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetResults",
					"Description": "Returns the list of events contained in this set of results. This may return an empty table.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreGameEvent>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetMoreResults",
					"Description": "Requests the next set of results for this list of events and returns a new collection containing those results. Returns `nil` if the `hasMoreResults` property is `false`. This function may yield until a result is available, and may raise an error if an error occurs retrieving the information.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreGameEventCollection",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreGameInfo",
			"Description": "Metadata about a published game on the Core platform.",
			"Properties": [
				{
					"Name": "id",
					"Description": "The ID of the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "parentGameId",
					"Description": "The ID of this game's parent game if there is one, or else `nil`.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "name",
					"Description": "The name of the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "description",
					"Description": "The description of the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "ownerId",
					"Description": "The player ID of the creator who published the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "ownerName",
					"Description": "The player name of the creator who published the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maxPlayers",
					"Description": "The maximum number of players per game instance.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isQueueEnabled",
					"Description": "`true` if the game was published with queueing enabled.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "screenshotCount",
					"Description": "The number of screenshots published with the game.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "hasWorldCapture",
					"Description": "`true` if the game was published with a captured view of the world for use with portals.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetTags",
					"Description": "Returns a list of the tags selected when this game was published.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreMesh",
			"Description": "CoreMesh is a CoreObject representing a mesh that can be placed in the scene. It is the parent type for both AnimatedMesh and StaticMesh.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "meshAssetId",
					"Description": "The ID of the mesh asset used by this mesh.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "team",
					"Description": "Assigns the mesh to a team. Value range from `0` to `4`. `0` is neutral team.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isTeamColorUsed",
					"Description": "If `true`, and the mesh has been assigned to a valid team, players on that team will see a blue mesh, while other players will see red. Requires a material that supports the color property.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isTeamCollisionEnabled",
					"Description": "If `false`, and the mesh has been assigned to a valid team, players on that team will not collide with the mesh.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isEnemyCollisionEnabled",
					"Description": "If `false`, and the mesh has been assigned to a valid team, players on other teams will not collide with the mesh.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isCameraCollisionEnabled",
					"Description": "If `false`, the mesh will not push against the camera. Useful for things like railings or transparent walls. This property is deprecated, use the `cameraCollision` property instead.",
					"IsDeprecated": true,
					"DeprecationMessage": "CoreMesh.isCameraCollisionEnabled is deprecated.  Please use CoreObject.cameraCollision and IsCameraCollidableInHierarchy() instead.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetColor",
					"Description": "Returns the color override previously set from script, or `0, 0, 0, 0` if no such color has been set.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetColor",
					"Description": "Overrides the color of all materials on the mesh, and replicates the new colors.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ResetColor",
					"Description": "Turns off the color override, if there is one.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreObject",
			"Description": "CoreObject is an Object placed in the scene hierarchy during edit mode or is part of a template. Usually they'll be a more specific type of CoreObject, but all CoreObjects have these properties and functions:",
			"BaseType": "Object",
			"Properties": [
				{
					"Name": "name",
					"Description": "The object's name as seen in the Hierarchy.",
					"Type": "string",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "id",
					"Description": "The object's MUID.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isVisible",
					"IsDeprecated": true,
					"DeprecationMessage": "CoreObject.isVisible is deprecated.  Please use CoreObject.visibility and IsVisibleInHierarchy() instead.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "visibility",
					"Description": "Turn on/off the rendering of an object and its children.",
					"Type": "Visibility",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isCollidable",
					"IsDeprecated": true,
					"DeprecationMessage": "CoreObject.isCollidable is deprecated.  Please use CoreObject.collision and IsCollidableInHierarchy() instead.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "collision",
					"Description": "Turn on/off the collision of an object and its children.",
					"Type": "Collision",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "cameraCollision",
					"Description": "Turn on/off the collision of the camera with an object and its children.",
					"Type": "Collision",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isEnabled",
					"Description": "Turn on/off an object and its children completely.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "lifeSpan",
					"Description": "Duration after which the object is destroyed.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isStatic",
					"Description": "If `true`, dynamic properties may not be written to, and dynamic functions may not be called.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isNetworked",
					"Description": "If `true`, this object replicates from the server to clients.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isClientOnly",
					"Description": "If `true`, this object was spawned on the client and is not replicated from the server.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isServerOnly",
					"Description": "If `true`, this object was spawned on the server and is not replicated to clients.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "parent",
					"Description": "The object's parent object, may be nil.",
					"Type": "CoreObject",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "sourceTemplateId",
					"Description": "The ID of the template from which this `CoreObject` was instantiated. `0000000000000000` if this object is not a template. Deinstanced templates also return `0000000000000000`.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "childAddedEvent",
					"Description": "Fired when a child is added to this object.",
					"Parameters": [
						{
							"Type": "CoreObject",
							"Name": "parent"
						},
						{
							"Type": "CoreObject",
							"Name": "newChild"
						}
					]
				},
				{
					"Name": "childRemovedEvent",
					"Description": "Fired when a child is removed from this object.",
					"Parameters": [
						{
							"Type": "CoreObject",
							"Name": "parent"
						},
						{
							"Type": "CoreObject",
							"Name": "removedChild"
						}
					]
				},
				{
					"Name": "descendantAddedEvent",
					"Description": "Fired when a child is added to this object or any of its descendants.",
					"Parameters": [
						{
							"Type": "CoreObject",
							"Name": "ancestor"
						},
						{
							"Type": "CoreObject",
							"Name": "newDescendant"
						}
					]
				},
				{
					"Name": "descendantRemovedEvent",
					"Description": "Fired when a child is removed from this object or any of its descendants.",
					"Parameters": [
						{
							"Type": "CoreObject",
							"Name": "ancestor"
						},
						{
							"Type": "CoreObject",
							"Name": "removedDescendant"
						}
					]
				},
				{
					"Name": "destroyEvent",
					"Description": "Fired when this object is about to be destroyed.",
					"Parameters": [
						{
							"Type": "CoreObject",
							"Name": "coreObject"
						}
					]
				},
				{
					"Name": "customPropertyChangedEvent",
					"Description": "Fired whenever any of the dynamic custom properties on this object receive an update. The event is fired on the server and the client. Event payload is the owning object and the name of the property that just changed.",
					"Parameters": [
						{
							"Type": "CoreObject",
							"Name": "owner"
						},
						{
							"Type": "string",
							"Name": "propertyName"
						}
					]
				},
				{
					"Name": "networkedPropertyChangedEvent",
					"Description": "*This event is deprecated. Please use `CoreObject.customPropertyChangedEvent` instead.* Fired whenever any of the networked custom properties on this object receive an update. The event is fired on the server and the client. Event payload is the owning object and the name of the property that just changed.",
					"IsDeprecated": true,
					"DeprecationMessage": "CoreObject.networkedPropertyChangedEvent is deprecated.  Please use CoreObject.customPropertyChangedEvent instead.",
					"Parameters": [
						{
							"Type": "CoreObject",
							"Name": "owner"
						},
						{
							"Type": "string",
							"Name": "propertyName"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetReference",
					"Description": "Returns a CoreObjectReference pointing at this object.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObjectReference"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetTransform",
					"Description": "The Transform relative to this object's parent.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetTransform",
					"Description": "The Transform relative to this object's parent.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Transform",
									"Name": "localTransform"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetPosition",
					"Description": "The position of this object relative to its parent.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetPosition",
					"Description": "The position of this object relative to its parent.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "localPosition"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetRotation",
					"Description": "The rotation relative to its parent.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetRotation",
					"Description": "The rotation relative to its parent.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "localRotation"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetScale",
					"Description": "The scale relative to its parent.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetScale",
					"Description": "The scale relative to its parent.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "localScale"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetWorldTransform",
					"Description": "The absolute Transform of this object.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldTransform",
					"Description": "The absolute Transform of this object.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Transform",
									"Name": "worldTransform"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetWorldPosition",
					"Description": "The absolute position.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldPosition",
					"Description": "The absolute position.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetWorldRotation",
					"Description": "The absolute rotation.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldRotation",
					"Description": "The absolute rotation.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "worldRotation"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetWorldScale",
					"Description": "The absolute scale.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldScale",
					"Description": "The absolute scale.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldScale"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetVelocity",
					"Description": "The object's velocity in world space. The velocity vector indicates the direction, with its magnitude expressed in centimeters per second.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetVelocity",
					"Description": "Set the object's velocity in world space. Only works for physics objects. The velocity vector indicates the direction, with its magnitude expressed in centimeters per second.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "velocity"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetAngularVelocity",
					"Description": "The object's angular velocity in degrees per second.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetAngularVelocity",
					"Description": "Set the object's angular velocity in degrees per second in world space. Only works for physics objects.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "angularVelocity"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetLocalAngularVelocity",
					"Description": "Set the object's angular velocity in degrees per second in local space. Only works for physics objects.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "localAngularVelocity"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetChildren",
					"Description": "Returns a table containing the object's children, may be empty. Order is not guaranteed to match what is in the hierarchy.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreObject>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "AttachToPlayer",
					"Description": "Attaches a CoreObject to a Player at a specified socket. The CoreObject will be un-parented from its current hierarchy and its `parent` property will be nil. See [Socket Names](../api/animations.md#socket-names) for the list of possible values.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "string",
									"Name": "socketName"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "AttachToLocalView",
					"Description": "Attaches a CoreObject to the local player's camera. Reminder to turn off the object's collision otherwise it will cause camera to jitter.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"ClientOnly",
						"Dynamic"
					]
				},
				{
					"Name": "Detach",
					"Description": "Detaches a CoreObject from any player it has been attached to, or from its parent object.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetAttachedToSocketName",
					"Description": "Returns the name of the socket this object is attached to.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsVisibleInHierarchy",
					"Description": "Returns true if this object and all of its ancestors are visible.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsCollidableInHierarchy",
					"Description": "Returns true if this object and all of its ancestors are collidable.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsCameraCollidableInHierarchy",
					"Description": "Returns true if this object and all of its ancestors are collidable with the camera.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsEnabledInHierarchy",
					"Description": "Returns true if this object and all of its ancestors are enabled.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "FindAncestorByName",
					"Description": "Returns the first parent or ancestor whose name matches the provided name. If none match, returns nil.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								}
							]
						}
					]
				},
				{
					"Name": "FindChildByName",
					"Description": "Returns the first immediate child whose name matches the provided name. If none match, returns nil.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								}
							]
						}
					]
				},
				{
					"Name": "FindDescendantByName",
					"Description": "Returns the first child or descendant whose name matches the provided name. If none match, returns nil.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								}
							]
						}
					]
				},
				{
					"Name": "FindDescendantsByName",
					"Description": "Returns the descendants whose name matches the provided name. If none match, returns an empty table.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreObject>"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								}
							]
						}
					]
				},
				{
					"Name": "FindAncestorByType",
					"Description": "Returns the first parent or ancestor whose type is or extends the specified type. For example, calling FindAncestorByType('CoreObject') will return the first ancestor that is any type of CoreObject, while FindAncestorByType('StaticMesh') will only return the first mesh. If no ancestors match, returns nil.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				},
				{
					"Name": "FindChildByType",
					"Description": "Returns the first immediate child whose type is or extends the specified type. If none match, returns nil.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				},
				{
					"Name": "FindDescendantByType",
					"Description": "Returns the first child or descendant whose type is or extends the specified type. If none match, returns nil.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				},
				{
					"Name": "FindDescendantsByType",
					"Description": "Returns the descendants whose type is or extends the specified type. If none match, returns an empty table.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreObject>"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				},
				{
					"Name": "FindTemplateRoot",
					"Description": "If the object is part of a template, returns the root object of the template (which may be itself). If not part of a template, returns nil.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsAncestorOf",
					"Description": "Returns true if this CoreObject is a parent somewhere in the hierarchy above the given parameter object. False otherwise.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "coreObject"
								}
							]
						}
					]
				},
				{
					"Name": "MoveTo",
					"Description": "Smoothly moves the object to the target location over a given amount of time (seconds). Third parameter specifies if the given destination is in local space (true) or world space (false).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "position"
								},
								{
									"Type": "number",
									"Name": "duration"
								},
								{
									"Type": "boolean",
									"Name": "isLocalPosition"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								},
								{
									"Type": "number",
									"Name": "duration"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "MoveContinuous",
					"Description": "Smoothly moves the object over time by the given velocity vector. Second parameter specifies if the given velocity is in local space (true) or world space (false). The velocity vector indicates the direction, with its magnitude expressed in centimeters per second.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldVelocity"
								},
								{
									"Type": "boolean",
									"Name": "isLocalVelocity"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldVelocity"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Follow",
					"Description": "Follows a CoreObject or Player at a certain speed. If the speed is not supplied it will follow as fast as possible. The third parameter specifies a distance to keep away from the target.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "target"
								},
								{
									"Type": "number",
									"Name": "speed"
								},
								{
									"Type": "number",
									"Name": "minimumDistance"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "target"
								},
								{
									"Type": "number",
									"Name": "speed"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "target"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "target"
								},
								{
									"Type": "number",
									"Name": "speed"
								},
								{
									"Type": "number",
									"Name": "minimumDistance"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "target"
								},
								{
									"Type": "number",
									"Name": "speed"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "target"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "StopMove",
					"Description": "Interrupts further movement from MoveTo(), MoveContinuous(), or Follow().",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "RotateTo",
					"Description": "Smoothly rotates the object to the target orientation over a given amount of time. Third parameter specifies if given rotation is in local space (true) or world space (false).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "rotation"
								},
								{
									"Type": "number",
									"Name": "duration"
								},
								{
									"Type": "boolean",
									"Name": "isLocalRotation"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "worldRotation"
								},
								{
									"Type": "number",
									"Name": "duration"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotation"
								},
								{
									"Type": "number",
									"Name": "duration"
								},
								{
									"Type": "boolean",
									"Name": "isLocalRotation"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "worldRotation"
								},
								{
									"Type": "number",
									"Name": "duration"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "RotateContinuous",
					"Description": "Smoothly rotates the object over time by the given rotation (per second). The second parameter is an optional multiplier, for very fast rotations. Third parameter specifies if the given rotation or quaternion is in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
					"Signatures": [
						{
							"Name": "WithAngularVelocityAndLocal",
							"Description": "Smoothly rotates the object over time by the given angular velocity. Second parameter specifies whether to interpret the given velocity in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "angularVelocity"
								},
								{
									"Type": "boolean",
									"Name": "isLocalAngularVelocity"
								}
							]
						},
						{
							"Name": "WithAngularVelocity",
							"Description": "Smoothly rotates the object over time by the given angular velocity. Second parameter specifies whether to interpret the given velocity in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "angularVelocity"
								}
							]
						},
						{
							"Name": "WithQuaternionAndMultiplierAndLocal",
							"Description": "Smoothly rotates the object over time by the given rotation (per second). The second parameter is an optional multiplier, for very fast rotations. Third parameter specifies if the given rotation or quaternion is in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "quaternionSpeed"
								},
								{
									"Type": "number",
									"Name": "multiplier"
								},
								{
									"Type": "boolean",
									"Name": "isLocalQuaternionSpeed"
								}
							]
						},
						{
							"Name": "WithQuaternionAndMultiplier",
							"Description": "Smoothly rotates the object over time by the given rotation (per second). The second parameter is an optional multiplier, for very fast rotations. Third parameter specifies if the given rotation or quaternion is in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "quaternionSpeed"
								},
								{
									"Type": "number",
									"Name": "multiplier"
								}
							]
						},
						{
							"Name": "WithQuaternion",
							"Description": "Smoothly rotates the object over time by the given rotation (per second). The second parameter is an optional multiplier, for very fast rotations. Third parameter specifies if the given rotation or quaternion is in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "quaternionSpeed"
								}
							]
						},
						{
							"Name": "WithRotationAndMultiplierAndLocal",
							"Description": "Smoothly rotates the object over time by the given rotation (per second). The second parameter is an optional multiplier, for very fast rotations. Third parameter specifies if the given rotation or quaternion is in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotationSpeed"
								},
								{
									"Type": "number",
									"Name": "multiplier"
								},
								{
									"Type": "boolean",
									"Name": "isLocalRotationSpeed"
								}
							]
						},
						{
							"Name": "WithRotationAndMultiplier",
							"Description": "Smoothly rotates the object over time by the given rotation (per second). The second parameter is an optional multiplier, for very fast rotations. Third parameter specifies if the given rotation or quaternion is in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotationSpeed"
								},
								{
									"Type": "number",
									"Name": "multiplier"
								}
							]
						},
						{
							"Name": "WithRotation",
							"Description": "Smoothly rotates the object over time by the given rotation (per second). The second parameter is an optional multiplier, for very fast rotations. Third parameter specifies if the given rotation or quaternion is in local space (true) or world space (false (default)). Angular velocity is expressed in degrees per second.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotationSpeed"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "LookAt",
					"Description": "Instantly rotates the object to look at the given position.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "LookAtContinuous",
					"Description": "Smoothly rotates a CoreObject to look at another given CoreObject or Player. Second parameter is optional and locks the pitch, default is unlocked. Third parameter is optional and sets how fast it tracks the target (in radians/second). If speed is not supplied it tracks as fast as possible.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "target"
								},
								{
									"Type": "boolean",
									"Name": "isPitchLocked"
								},
								{
									"Type": "number",
									"Name": "speed"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "target"
								},
								{
									"Type": "number",
									"Name": "speed"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "target"
								},
								{
									"Type": "boolean",
									"Name": "isPitchLocked"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "target"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "target"
								},
								{
									"Type": "boolean",
									"Name": "isPitchLocked"
								},
								{
									"Type": "number",
									"Name": "speed"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "target"
								},
								{
									"Type": "number",
									"Name": "speed"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "target"
								},
								{
									"Type": "boolean",
									"Name": "isPitchLocked"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "target"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "LookAtLocalView",
					"Description": "Continuously looks at the local camera. The boolean parameter is optional and locks the pitch.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isPitchLocked"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"ClientOnly",
						"Dynamic"
					]
				},
				{
					"Name": "StopRotate",
					"Description": "Interrupts further rotation from RotateTo(), RotateContinuous(), LookAtContinuous(), or LookAtLocalView().",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ScaleTo",
					"Description": "Smoothly scales the object to the target scale over a given amount of time. Third parameter specifies if the given scale is in local space (true) or world space (false).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "scale"
								},
								{
									"Type": "number",
									"Name": "duration"
								},
								{
									"Type": "boolean",
									"Name": "isScaleLocal"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldScale"
								},
								{
									"Type": "number",
									"Name": "duration"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ScaleContinuous",
					"Description": "Smoothly scales the object over time by the given scale vector per second. Second parameter specifies if the given scale rate is in local space (true) or world space (false).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "scaleRate"
								},
								{
									"Type": "boolean",
									"Name": "isLocalScaleRate"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "scaleRate"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "StopScale",
					"Description": "Interrupts further movement from ScaleTo() or ScaleContinuous().",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ReorderBeforeSiblings",
					"Description": "Reorders this object before all of its siblings in the hierarchy.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ReorderAfterSiblings",
					"Description": "Reorders this object after all of its siblings in the hierarchy.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ReorderBefore",
					"Description": "Reorders this object just before the specified sibling in the hierarchy.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "sibling"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ReorderAfter",
					"Description": "Reorders this object just after the specified sibling in the hierarchy.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "sibling"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Destroy",
					"Description": "Destroys the object and all descendants. You can check whether an object has been destroyed by calling `Object.IsValid(object)`, which will return true if object is still a valid object, or false if it has been destroyed.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetCustomProperties",
					"Description": "Returns a table containing the names and values of all custom properties on a CoreObject.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetCustomProperty",
					"Description": "Gets data which has been added to an object using the custom property system. Returns the value, which can be an integer, number, boolean, string, Vector2, Vector3, Vector4, Rotation, Color, CoreObjectReference, a MUID string (for Asset References), NetReference, or nil if not found. Second return value is a boolean, true if found and false if not.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "value"
								},
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								}
							]
						}
					]
				},
				{
					"Name": "SetCustomProperty",
					"Description": "Sets the named custom property if it is marked as dynamic and the object it belongs to is server-side networked or in a client/server context. The value must match the existing type of the property, with the exception of CoreObjectReference properties (which accept a CoreObjectReference or a CoreObject) and Asset Reference properties (which accept a string MUID). AssetReferences, CoreObjectReferences, and NetReferences also accept `nil` to clear their value, although `GetCustomProperty()` will still return an unassigned CoreObjectReference or NetReference rather than `nil`. (See the `.isAssigned` property on those types.)",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "value",
									"Name": "propertyValue"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetNetworkedCustomProperty",
					"Description": "*This function is deprecated. Please use `CoreObject:SetCustomProperty()` instead.* Sets the named custom property if it is marked as replicated and the object it belongs to is server-side networked. The value must match the existing type of the property, with the exception of CoreObjectReference properties (which accept a CoreObjectReference or a CoreObject) and Asset Reference properties (which accept a string MUID). AssetReferences, CoreObjectReferences, and NetReferences also accept `nil` to clear their value, although `GetCustomProperty()` will still return an unassigned CoreObjectReference or NetReference rather than `nil`. (See the `.isAssigned` property on those types.)",
					"IsDeprecated": true,
					"DeprecationMessage": "CoreObject:SetNetworkedCustomProperty() is deprecated. Please use CoreObject:SetCustomProperty() instead.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "value",
									"Name": "propertyValue"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsCustomPropertyDynamic",
					"Description": "Returns `true` if the named custom property exists and is marked as dynamic. Otherwise, returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreObjectReference",
			"Description": "A reference to a CoreObject which may or may not exist. This type is returned by `CoreObject:GetCustomProperty()` for CoreObjectReference properties, and may be used to find the actual object if it exists.\r\n\r\nIn the case of networked objects it's possible to get a CoreObjectReference pointing to a CoreObject that hasn't been received on the client yet.",
			"Properties": [
				{
					"Name": "id",
					"Description": "The MUID of the referred object.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isAssigned",
					"Description": "Returns true if this reference has been assigned a valid ID. This does not necessarily mean the object currently exists.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetObject",
					"Description": "Returns the CoreObject with a matching ID, if it exists. Will otherwise return nil.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "WaitForObject",
					"Description": "Returns the CoreObject with a matching ID, if it exists. If it does not, yields the current task until the object is spawned. Optional timeout parameter will cause the task to resume with a return value of false and an error message if the object has not been spawned within that many seconds.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "timeout",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CorePlayerProfile",
			"Description": "Public account profile for a player on the Core platform.",
			"Properties": [
				{
					"Name": "id",
					"Description": "The ID of the player.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "name",
					"Description": "The name of the player. This field does not reflect changes that may have been made to the `name` property of a `Player` currently in the game.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "description",
					"Description": "A description of the player, provided by the player in the About section of their profile.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CurveKey",
			"Description": "A `CurveKey` represents a key point on a `SimpleCurve`, providing a value for a specific point in time on that curve. Additional properties may be used to control the shape of that curve.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a new CurveKey.",
					"Signatures": [
						{
							"Name": "WithCurveKey",
							"Description": "Makes a copy of the given CurveKey.",
							"Returns": [
								{
									"Type": "CurveKey"
								}
							],
							"Parameters": [
								{
									"Type": "CurveKey",
									"Name": "other"
								}
							]
						},
						{
							"Name": "WithOptionalParams",
							"Description": "Constructs a CurveKey with the given time and value. An optional table may be provided to override the following parameters:<br>`interpolation (CurveInterpolation)`: Sets the `interpolation` property of the curve key. Defaults to `CurveInterpolation.LINEAR`.<br>`arriveTangent (number)`: Sets the `arriveTangent` property of the curve key. Defaults to 0.<br>`leaveTangent (number)`: Sets the `leaveTangent` property of the curve key. Defaults to 0.<br>`tangent (number)`: Sets both the `arriveTangent` and `leaveTangent` properties of the curve key. It is an error to specify `arriveTangent` or `leaveTangent` if `tangent` is provided.",
							"Returns": [
								{
									"Type": "CurveKey"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "time"
								},
								{
									"Type": "number",
									"Name": "value"
								},
								{
									"Type": "table",
									"Name": "optionalParameters"
								}
							]
						},
						{
							"Name": "WithTimeValue",
							"Description": "Constructs a CurveKey with the given time and value. An optional table may be provided to override the following parameters:<br>`interpolation (CurveInterpolation)`: Sets the `interpolation` property of the curve key. Defaults to `CurveInterpolation.LINEAR`.<br>`arriveTangent (number)`: Sets the `arriveTangent` property of the curve key. Defaults to 0.<br>`leaveTangent (number)`: Sets the `leaveTangent` property of the curve key. Defaults to 0.<br>`tangent (number)`: Sets both the `arriveTangent` and `leaveTangent` properties of the curve key. It is an error to specify `arriveTangent` or `leaveTangent` if `tangent` is provided.",
							"Returns": [
								{
									"Type": "CurveKey"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "time"
								},
								{
									"Type": "number",
									"Name": "value"
								}
							]
						},
						{
							"Name": "Default",
							"Description": "Constructs a new CurveKey.",
							"Returns": [
								{
									"Type": "CurveKey"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Properties": [
				{
					"Name": "interpolation",
					"Description": "The interpolation mode between this curve key and the next.",
					"Type": "CurveInterpolation"
				},
				{
					"Name": "time",
					"Description": "The time at this curve key.",
					"Type": "number"
				},
				{
					"Name": "value",
					"Description": "The value at this curve key.",
					"Type": "number"
				},
				{
					"Name": "arriveTangent",
					"Description": "The arriving tangent at this key when using cubic interpolation.",
					"Type": "number"
				},
				{
					"Name": "leaveTangent",
					"Description": "The leaving tangent at this key when using cubic interpolation.",
					"Type": "number"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CustomMaterial",
			"Description": "CustomMaterial objects represent a custom material made in core. They can have their properties changed from script.",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "SetProperty",
					"Description": "Sets the given property of the material.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "Vector2",
									"Name": "value"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "boolean",
									"Name": "value"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "Vector3",
									"Name": "value"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "Color",
									"Name": "value"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "number",
									"Name": "value"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetProperty",
					"Description": "Gets the value of a given property.",
					"Signatures": [
						{
							"Returns": [
								{
									"IsVariadic": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetPropertyNames",
					"Description": "Returns an array of all property names on this CustomMaterial.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetBaseMaterialId",
					"Description": "Returns the asset id of the material this CustomMaterial was based on.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "Find",
					"Description": "Returns a CustomMaterial with the given assetId. This function may yield while loading data.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CustomMaterial",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "assetId"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				}
			]
		},
		{
			"Name": "Damage",
			"Description": "To damage a Player, you can simply write for example: `whichPlayer:ApplyDamage(Damage.New(10))`. Alternatively, create a Damage object and populate it with all the following properties to get full use out of the system:",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a damage object with the given number, defaults to 0.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Damage"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "amount"
								}
							]
						},
						{
							"Returns": [
								{
									"Type": "Damage"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Properties": [
				{
					"Name": "amount",
					"Description": "The numeric amount of damage to inflict.",
					"Type": "number"
				},
				{
					"Name": "reason",
					"Description": "What is the context for this Damage? DamageReason.UNKNOWN (default value), DamageReason.COMBAT, DamageReason.FRIENDLY_FIRE, DamageReason.MAP, DamageReason.NPC.",
					"Type": "DamageReason"
				},
				{
					"Name": "sourceAbility",
					"Description": "Reference to the Ability which caused the Damage. Setting this allows other systems to react to the damage event, for example a kill feed can show what killed a Player.",
					"Type": "Ability"
				},
				{
					"Name": "sourcePlayer",
					"Description": "Reference to the Player who caused the Damage. Setting this allows other systems to react to the damage event, for example a kill feed can show who killed a Player.",
					"Type": "Player"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetHitResult",
					"Description": "Get the HitResult information if this damage was caused by a Projectile impact.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HitResult"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetHitResult",
					"Description": "Forward the HitResult information if this damage was caused by a Projectile impact.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "HitResult",
									"Name": "hitResult"
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "DamageableObject",
			"Description": "DamageableObject is a CoreObject which implements the [Damageable](damageable.md) interface.",
			"BaseType": "CoreObject",
			"Implements": [
				"Damageable"
			],
			"Properties": [
				{
					"Name": "hitPoints",
					"Description": "Current amount of hit points.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "maxHitPoints",
					"Description": "Maximum amount of hit points.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isDead",
					"Description": "True if the object is dead, otherwise false. Death occurs when damage is applied which reduces hit points to 0, or when the `Die()` function is called.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isImmortal",
					"Description": "When set to `true`, this object cannot die.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isInvulnerable",
					"Description": "When set to `true`, this object does not take damage.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "destroyOnDeath",
					"Description": "When set to `true`, this object will automatically be destroyed when it dies.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathDelay",
					"Description": "Delay in seconds after death before this object is destroyed, if `destroyOnDeath` is set to `true`. Defaults to 0.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathClientTemplateId",
					"Description": "Optional asset ID of a template to be spawned on clients when this object is automatically destroyed on death.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathNetworkedTemplateId",
					"Description": "Optional asset ID of a networked template to be spawned on the server when this object is automatically destroyed on death.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "damagedEvent",
					"Description": "Fired when the object takes damage.",
					"Parameters": [
						{
							"Type": "DamageableObject",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				},
				{
					"Name": "diedEvent",
					"Description": "Fired when the object dies.",
					"Parameters": [
						{
							"Type": "DamageableObject",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				}
			],
			"Hooks": [
				{
					"Name": "damageHook",
					"Description": "Hook called when applying damage from a call to `ApplyDamage()`. The incoming damage may be modified or prevented by modifying properties on the `damage` parameter.",
					"Parameters": [
						{
							"Type": "DamageableObject",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "ApplyDamage",
					"Description": "Damages the object, unless it is invulnerable. If its hit points reach 0 and it is not immortal, it dies.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Die",
					"Description": "Kills the object, unless it is immortal. The optional Damage parameter is a way to communicate cause of death.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "DateTime",
			"Description": "An immutable representation of a date and time, which may be either local time or UTC.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a new DateTime instance, defaulting to midnight on January 1, 1970, UTC. The `parameters` table may contain the following values to specify the date and time:<br/>`year (integer)`: Specifies the year. <br/>`month (integer)`: Specifies the month, from 1 to 12. <br/>`day (integer)`: Specifies the day of the month, from 1 to the last day of the specified month. <br/>`hour (integer)`: Specifies the hour of the day, from 0 to 23. <br/>`minute (integer)`: Specifies the minute, from 0 to 59. <br/>`second (integer)`: Specifies the second, from 0 to 59. <br/>`millisecond (integer)`: Specifies the millisecond, from 0 to 999. <br/>`isLocal (boolean)`: If true, the new DateTime will be in local time. Defaults to false for UTC. <br/>Values outside of the supported range for each field will be clamped, and a warning will be logged.",
					"Signatures": [
						{
							"Name": "WithParamTable",
							"Description": "Constructs a new DateTime instance, defaulting to midnight on January 1, 1970, UTC. The `parameters` table may contain the following values to specify the date and time:<br/>`year (integer)`: Specifies the year. <br/>`month (integer)`: Specifies the month, from 1 to 12. <br/>`day (integer)`: Specifies the day of the month, from 1 to the last day of the specified month. <br/>`hour (integer)`: Specifies the hour of the day, from 0 to 23. <br/>`minute (integer)`: Specifies the minute, from 0 to 59. <br/>`second (integer)`: Specifies the second, from 0 to 59. <br/>`millisecond (integer)`: Specifies the millisecond, from 0 to 999. <br/>`isLocal (boolean)`: If true, the new DateTime will be in local time. Defaults to false for UTC. <br/>Values outside of the supported range for each field will be clamped, and a warning will be logged.",
							"Returns": [
								{
									"Type": "DateTime"
								}
							],
							"Parameters": [
								{
									"Type": "table",
									"Name": "timeParameterTable",
									"IsOptional": true
								}
							]
						}
					]
				}
			],
			"Properties": [
				{
					"Name": "year",
					"Description": "The year component of this DateTime.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "month",
					"Description": "The month component of this DateTime, from 1 to 12.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "day",
					"Description": "The day component of this DateTime, from 1 to 31.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "hour",
					"Description": "The hour component of this DateTime, from 0 to 23.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "minute",
					"Description": "The minute component of this DateTime, from 0 to 59.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "second",
					"Description": "The second component of this DateTime, from 0 to 59.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "millisecond",
					"Description": "The millisecond component of this DateTime, from 0 to 999.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isLocal",
					"Description": "True if this DateTime is in the local time zone, false if it's UTC.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "secondsSinceEpoch",
					"Description": "Returns the number of seconds since midnight, January 1, 1970, UTC. Note that this ignores the millisecond component of this DateTime.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "millisecondsSinceEpoch",
					"Description": "Returns the number of milliseconds since midnight, January 1, 1970, UTC.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "ToLocalTime",
					"Description": "Returns a copy of this DateTime adjusted to local time. If this DateTime is already in local time, simply returns a copy of this DateTime.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DateTime"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ToUtcTime",
					"Description": "Returns a copy of this DateTime adjusted to UTC. If this DateTime is already in UTC, simply returns a copy of this DateTime.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DateTime"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ToIsoString",
					"Description": "Returns this date and time, adjusted to UTC, formatted as an ISO 8601 string (`YYYY-mm-ddTHH:MM:SS.sssZ`)",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "CurrentTime",
					"Description": "Returns the current date and time in UTC. The `optionalParameters` table may contain the following values to change the date and time returned: <br/>`isLocal (boolean)`: If true, the current local time will be returned instead of UTC.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DateTime"
								}
							],
							"Parameters": [
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "FromSecondsSinceEpoch",
					"Description": "Returns the date and time that is `secondsSinceEpoch` seconds since midnight, January 1, 1970, UTC.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DateTime"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "timestampInSeconds"
								}
							]
						}
					]
				},
				{
					"Name": "FromMillisecondsSinceEpoch",
					"Description": "Returns the date and time that is `millisecondsSinceEpoch` milliseconds since midnight, January 1, 1970, UTC.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DateTime"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "timestampInMs"
								}
							]
						}
					]
				},
				{
					"Name": "FromIsoString",
					"Description": "Parses the given string as an ISO 8601 formatted date (`YYYY-MM-DD`) or date and time (`YYYY-mm-ddTHH:MM:SS(.sss)(Z/+hh:mm/+hhmm/-hh:mm/-hhmm)`). Returns the parsed UTC DateTime, or `nil` if the string was an invalid format.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DateTime",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "timeString"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Decal",
			"Description": "A Decal is a SmartObject representing a decal that is projected onto nearby surfaces.",
			"BaseType": "SmartObject",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Equipment",
			"Description": "Equipment is a CoreObject representing an equippable item for players. They generally have a visual component that attaches to the Player, but a visual component is not a requirement. Any Ability objects added as children of the Equipment are added/removed from the Player automatically as it becomes equipped/unequipped.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "owner",
					"Description": "Which Player the Equipment is attached to.",
					"Type": "Player",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "socket",
					"Description": "Determines which point on the avatar's body this equipment will be attached. See [Socket Names](../api/animations.md#socket-names) for the list of possible values.",
					"Type": "string",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "equippedEvent",
					"Description": "Fired when this equipment is equipped onto a player.",
					"Parameters": [
						{
							"Type": "Equipment",
							"Name": "equipment"
						},
						{
							"Type": "Player",
							"Name": "player"
						}
					]
				},
				{
					"Name": "unequippedEvent",
					"Description": "Fired when this object is unequipped from a player.",
					"Parameters": [
						{
							"Type": "Equipment",
							"Name": "equipment"
						},
						{
							"Type": "Player",
							"Name": "player"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetAbilities",
					"Description": "A table of Abilities that are assigned to this Equipment. Players who equip it will get these Abilities.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Ability>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Equip",
					"Description": "Attaches the Equipment to a Player. They gain any abilities assigned to the Equipment. If the Equipment is already attached to another Player it will first unequip from that other Player before equipping unto the new one.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Unequip",
					"Description": "Detaches the Equipment from any Player it may currently be attached to. The Player loses any abilities granted by the Equipment.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "AddAbility",
					"Description": "Adds an Ability to the list of abilities on this Equipment.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Ability",
									"Name": "ability"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Event",
			"Description": "Events appear as properties on several objects. The goal is to register a function that will be fired whenever that event happens. For example `playerA.damagedEvent:Connect(OnPlayerDamaged)` chooses the function `OnPlayerDamaged` to be fired whenever `playerA` takes damage.",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Connect",
					"Description": "Registers the given function which will be called every time the event is fired. Returns an EventListener which can be used to disconnect from the event or check if the event is still connected. Accepts any number of additional arguments after the listener function, those arguments will be provided after the event's own parameters.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "EventListener"
								}
							],
							"Parameters": [
								{
									"Type": "function",
									"Name": "listener"
								},
								{
									"Name": "additionalParameters",
									"IsVariadic": true
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "EventListener",
			"Description": "EventListeners are returned by Events when you connect a listener function to them.",
			"Properties": [
				{
					"Name": "isConnected",
					"Description": "Returns true if this listener is still connected to its event. false if the event owner was destroyed or if Disconnect was called.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Disconnect",
					"Description": "Disconnects this listener from its event, so it will no longer be called when the event is fired.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Folder",
			"Description": "Folder is a [CoreObject](coreobject.md) representing a folder containing other objects.\r\n\r\nThey have no properties or functions of their own, but inherit everything from [CoreObject](coreobject.md).",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "FourWheeledVehicle",
			"Description": "FourWheeledVehicle is a Vehicle with wheels. (Four of them.)",
			"BaseType": "Vehicle",
			"Implements": [
				"Damageable"
			],
			"Properties": [
				{
					"Name": "turnRadius",
					"Description": "The radius, in centimeters, measured by the inner wheels of the vehicle while making a turn.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "HitResult",
			"Description": "Contains data pertaining to an impact or raycast.",
			"Properties": [
				{
					"Name": "other",
					"Description": "Reference to a CoreObject or Player impacted.",
					"Type": "Object",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "socketName",
					"Description": "If the hit was on a Player, `socketName` tells you which spot on the body was hit.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetImpactPosition",
					"Description": "The world position where the impact occurred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetImpactNormal",
					"Description": "Normal direction of the surface which was impacted.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetShapePosition",
					"Description": "For HitResults returned by box casts and sphere casts, returns the world position of the center of the cast shape when the collision occurred. In the case of HitResults not related to a box cast or sphere cast, returns the world position where the impact occurred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetTransform",
					"Description": "Returns a Transform composed of the position of the impact in world space, the rotation of the normal, and a uniform scale of 1.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetMaterialSlot",
					"Description": "For HitResults involving a `CoreMesh`, returns a MaterialSlot instance indicating which material on the mesh was impacted. For certain types of collisions, including when the impacted object is not a `CoreMesh`, a `MaterialSlot` is not available, and `nil` is returned.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "MaterialSlot",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Hook",
			"Description": "Hooks appear as properties on several objects. Similar to Events, functions may be registered that will be called whenever that hook is fired, but Hooks allow those functions to modify the parameters given to them. For example `player.movementHook:Connect(OnPlayerMovement)` calls the function `OnPlayerMovement` each tick, which may modify the direction in which a player will move.",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Connect",
					"Description": "Registers the given function which will be called every time the hook is fired. Returns a HookListener which can be used to disconnect from the hook or change the listener's priority. Accepts any number of additional arguments after the listener function, those arguments will be provided after the hook's own parameters.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HookListener"
								}
							],
							"Parameters": [
								{
									"Type": "function",
									"Name": "listener"
								},
								{
									"Name": "additionalParameters",
									"IsVariadic": true
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "HookListener",
			"Description": "HookListeners are returned by Hooks when you connect a listener function to them.",
			"Properties": [
				{
					"Name": "isConnected",
					"Description": "Returns `true` if this listener is still connected to its hook, `false` if the hook owner was destroyed or if `Disconnect` was called.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "priority",
					"Description": "The priority of this listener. When a given hook is fired, listeners with a higher priority are called first. Default value is `100`.",
					"Type": "integer"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Disconnect",
					"Description": "Disconnects this listener from its hook, so it will no longer be called when the hook is fired.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "IKAnchor",
			"Description": "IKAnchors are objects that can be used to control player animations. They can be used to specify the position of a specific hand, foot, or the hips of a player, and can be controlled from script to create complex animations.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "target",
					"Description": "Which Player the IKAnchor is activated on.",
					"Type": "Player",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "anchorType",
					"Description": "Which socket this IKAnchor applies to.",
					"Type": "IKAnchorType",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "blendInTime",
					"Description": "The duration over which this IKAnchor is blended when it is activated.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "blendOutTime",
					"Description": "The duration over which this IKAnchor is blended when it is deactivated.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "weight",
					"Description": "The amount this IKAnchor blends with the underlying animation. A value of 0 means the animation is player unchanged, and a value of 1 means the animation is ignored and the IKAnchor is used.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "activatedEvent",
					"Description": "Fired when this IKAnchor is activated on a player.",
					"Parameters": [
						{
							"Type": "IKAnchor",
							"Name": "ikAnchor"
						},
						{
							"Type": "Object",
							"Name": "target"
						}
					]
				},
				{
					"Name": "deactivatedEvent",
					"Description": "Fired when this IKAnchor is deactivated from a player.",
					"Parameters": [
						{
							"Type": "IKAnchor",
							"Name": "ikAnchor"
						},
						{
							"Type": "Object",
							"Name": "target"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Activate",
					"Description": "Activates the IKAnchor on the given player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "target"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "Deactivate",
					"Description": "Deactivates the IKAnchor from whatever player it is active on.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "GetAimOffset",
					"Description": "Returns the aim offset property.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetAimOffset",
					"Description": "Sets the aim offset of this IKAnchor.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "aimOffset"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "ImpactData",
			"Description": "A data structure containing all information about a specific Weapon interaction, such as collision with a character.",
			"Properties": [
				{
					"Name": "targetObject",
					"Description": "Reference to the CoreObject/Player hit by the Weapon.",
					"Type": "Object",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectile",
					"Description": "Reference to a Projectile, if one was produced as part of this interaction.",
					"Type": "Projectile",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "sourceAbility",
					"Description": "Reference to the Ability which initiated the interaction.",
					"Type": "Ability",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "weapon",
					"Description": "Reference to the Weapon that is interacting.",
					"Type": "Weapon",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "weaponOwner",
					"Description": "Reference to the Player who had the Weapon equipped at the time it was activated, ultimately leading to this interaction.",
					"Type": "Player",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isHeadshot",
					"Description": "True if the Weapon hit another player in the head.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "travelDistance",
					"Description": "The distance in cm between where the Weapon attack started until it impacted something.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetHitResult",
					"Description": "Physics information about the impact between the Weapon and the other object.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HitResult"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetHitResults",
					"Description": "Table with multiple HitResults that hit the same object, in the case of Weapons with multi-shot (for example Shotguns). If a single attack hits multiple targets you receive a separate interaction event for each object hit.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<HitResult>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Inventory",
			"Description": "Inventory is a CoreObject that represents a container of InventoryItems. Items can be added directly to an inventory, picked up from an ItemObject in the world, or transferred between inventories. An Inventory may be assigned to a Player, and Players may have any number of Inventories.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "owner",
					"Description": "The Player who currently owns the inventory. May be `nil`. Change owners with `Assign()` or `Unassign()`.",
					"Type": "Player",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "slotCount",
					"Description": "The number of unique inventory item stacks this inventory can hold. Zero or negative numbers indicate no limit.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "emptySlotCount",
					"Description": "The number of slots in the inventory that do not contain an inventory item stack.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "occupiedSlotCount",
					"Description": "The number of slots in the inventory that contain an inventory item stack.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "ownerChangedEvent",
					"Description": "Fired when the inventory's owner has changed.",
					"Parameters": [
						{
							"Type": "Inventory",
							"Name": "inventory"
						}
					]
				},
				{
					"Name": "resizedEvent",
					"Description": "Fired when the inventory's size has changed.",
					"Parameters": [
						{
							"Type": "Inventory",
							"Name": "inventory"
						}
					]
				},
				{
					"Name": "changedEvent",
					"Description": "Fired when the contents of an inventory slot have changed. This includes when the item in that slot is added, given, received, dropped, moved, resized, or removed.",
					"Parameters": [
						{
							"Type": "Inventory",
							"Name": "inventory"
						},
						{
							"Type": "integer",
							"Name": "slot"
						}
					]
				},
				{
					"Name": "itemPropertyChangedEvent",
					"Description": "Fired when an inventory item's dynamic custom property value has changed.",
					"Parameters": [
						{
							"Type": "Inventory",
							"Name": "inventory"
						},
						{
							"Type": "InventoryItem",
							"Name": "item"
						},
						{
							"Type": "string",
							"Name": "propertyName"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Assign",
					"Description": "Sets the owner property of the inventory to the specified player. When a networked inventory is assigned to a player, only that player's client will be able to access the inventory contents.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Unassign",
					"Description": "Clears the owner property of the inventory. The given inventory will now be accessible to all clients.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetItem",
					"Description": "Returns the contents of the specified slot. Returns `nil` if the slot is empty.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "InventoryItem"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slot"
								}
							]
						}
					]
				},
				{
					"Name": "GetItems",
					"Description": "Returns a table mapping integer slot number to the inventory item in that slot. Note that this may leave gaps in the table if the inventory contains empty slots, so use with `ipairs()` is not recommended. Returns an empty table if the inventory is empty. <br/>Supported parameters include: <br/>`itemAssetId (string)`: If specified, filters the results by the specified item asset reference. Useful for getting all inventory items of a specific type.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": [
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "ClearItems",
					"Description": "Removes all items from the inventory.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SortItems",
					"Description": "Reorganizes inventory items into sequential slots starting with slot 1. Does not perform any consolidation of item stacks of the same type. Use `ConsolidateItems()` first if this behavior is desired.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ConsolidateItems",
					"Description": "Combines stacks of inventory items into as few slots as possible based on the `maximumStackCount` of each item. Slots may be emptied by this operation, but are otherwise not sorted or reorganized.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanResize",
					"Description": "Checks if there are enough slots for all current contents of the inventory if the inventory were to be resized. Returns `true` if the inventory can be resized to the new size or `false` if it cannot.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "newSize"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Resize",
					"Description": "Changes the number of slots of the inventory. There must be enough slots to contain all of the items currently in the inventory or the operation will fail. This operation will move items into empty slots if necessary, but it will not consolidate item stacks, even if doing so would create sufficient space for the operation to succeed. Use `ConsolidateItems()` first if this behavior is desired. Returns `true` if the operation succeeded. Returns `false` and logs a warning if the operation failed.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "newSize"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanAddItem",
					"Description": "Checks for room to add the specified item to this inventory. If the item can be added to the inventory, returns `true`. If the inventory is full or the item otherwise cannot be added, returns `false`. Supports the same parameters as `AddItem()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "itemAssetId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "AddItem",
					"Description": "Attempts to add the specified item to this inventory. If the item was successfully added to the inventory, returns `true`. If the inventory was full or the item otherwise wasn't added, returns `false`. <br/>Supported parameters include: <br/>`count (integer)`: Specifies the number of items to create and add to the inventory. Defaults to 1. <br/>`slot (integer)`: Attempts to create the item directly into the specified slot. If unspecified, the inventory will either look to stack this item with other items of the same `itemAssetId`, or will look to find the first empty slot. <br/>`customProperties (table)`: Applies initial property values to any dynamic properties on the item. Attempting to specify a property that does not exist will yield a warning. Attempting to specify a property that does exist and is not dynamic will raise an error. Providing a property value of the incorrect type will raise an error.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "itemAssetId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanPickUpItem",
					"Description": "Checks for room in an existing stack or free inventory slots to add the given item to the inventory. If the item can be added to the inventory, returns `true`. If the inventory is full or the item otherwise cannot be added, returns `false`. Supports the same parameters as `PickUpItem()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "ItemObject",
									"Name": "itemObject"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "PickUpItem",
					"Description": "Creates an inventory item from an ItemObject that exists in the world, taking 1 count from the ItemObject. Destroys the ItemObject if the inventory item is successfully created and the ItemObject count has been reduced to zero. Returns `true` if the item was picked up. Returns `false` and logs a warning if the item could not be picked up. <br/>Supported parameters include: <br/>`count (integer)`: Determines the number of items taken from the specified ItemObject. If the ItemObject still has a count greater than zero after this operation, it is not destroyed. Defaults to 1. <br/>`all (boolean)`: If `true`, picks up all of the given item's count instead of just 1. Overrides `count` if both are specified.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "ItemObject",
									"Name": "itemObject"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanMoveFromSlot",
					"Description": "Checks if an item can be moved from one slot to another. If the item can be moved, returns `true`. Returns `false` if it cannot be moved. Supports the same parameters as `MoveFromSlot()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "fromSlot"
								},
								{
									"Type": "integer",
									"Name": "toSlot"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "MoveFromSlot",
					"Description": "Moves an inventory item and its entire count from one slot to another. If the target slot is empty, the stack is moved. If the target slot is occupied by a matching item, the stack will merge as much as it can up to its `maximumStackCount`. If the target slot is occupied by a non-matching item, the stacks will swap. Returns `true` if the operation succeeded. Returns `false` and logs a warning if the operation failed. <br/>Supported parameters include: <br/>`count (integer)`: Specifies the number of items to move. When swapping with another stack containing a non-matching item, this operation will fail unless `count` is the entire stack.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "fromSlot"
								},
								{
									"Type": "integer",
									"Name": "toSlot"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanRemoveItem",
					"Description": "Checks if an item can be removed from the inventory. If the item can be removed, returns `true`. Returns `false` if it cannot be removed. Supports the same parameters as `RemoveItem()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "itemAssetId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "RemoveItem",
					"Description": "Deletes 1 item of the specified asset from the inventory. Returns `true` if the operation succeeded. Returns `false` and logs a warning if the operation failed. <br/>Supported parameters include: <br/>`count (integer)`: Specifies the number of the item to be removed. Defaults to 1. <br/>`all (boolean)`: If `true`, removes all of the specified items instead of just 1. Overrides `count` if both are specified.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "itemAssetId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanRemoveFromSlot",
					"Description": "Checks if an item can be removed from an inventory slot. If the item can be removed, returns `true`. Returns `false` if it cannot be removed. Supports the same parameters as `RemoveFromSlot()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slot"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "RemoveFromSlot",
					"Description": "Deletes the inventory item and its entire count from the specified inventory slot. Returns `true` if the operation succeeded. Returns `false` and logs a warning if the operation failed. <br/>Supported parameters include: <br/>`count (integer)`: Specifies the number of the item to be removed. Defaults to the total count in the specified slot.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slot"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanDropItem",
					"Description": "Checks if an item can be dropped from the inventory. If the item can be dropped, returns `true`. Returns `false` if it cannot be dropped. Supports the same parameters as `DropItem()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "itemAssetId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "DropItem",
					"Description": "Removes 1 item of the specified asset from the inventory and creates an ItemObject with the item's properties. Spawns the ItemObject at the position of the inventory in the world, or at the position of the owner player's feet if the inventory has been assigned to a player. Returns `true` if the operation succeeded. Returns `false` and logs a warning if the operation failed. <br/>Supported parameters include: <br/>`count (integer)`: Specifies the number of the item to be dropped. Defaults to 1. <br/>`all (boolean)`: If `true`, drops all of the specified items instead of just 1. Overrides `count` if both are specified. <br/>`dropTo (ItemObject)`: Specifies a pre-existing ItemObject to drop the items onto. Doing this will add to that ItemObject's count. If the ItemObject's maximum stack count would be exceeded by this operation, it will fail, and this function will return false. <br/>`parent (CoreObject)`: Creates the new ItemObject as a child of the specified CoreObject. Can only be used if `dropTo` is not specified. <br/>`position (Vector3)`: Specifies the world position at which the ItemObject is spawned, or the relative position if a parent is specified. Can only be used if `dropTo` is not specified. <br/>`rotation (Rotation or Quaternion)`: Specifies the world rotation at which the ItemObject is spawned, or the relative rotation if a parent is specified. Can only be used if `dropTo` is not specified. <br/>`scale (Vector3)`: Specifies the world scale with which the ItemObject is spawned, or the relative scale if a parent is specified. Can only be used if `dropTo` is not specified. <br/>`transform (Transform)`: Specifies the world transform at which the ItemObject is spawned, or the relative transform if a parent is specified. Can only be used if `dropTo` is not specified, and is mutually exclusive with `position`, `rotation`, and `scale`. <br/>Additional parameters supported by `World.SpawnAsset()` may also be supported here.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "itemAssetId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanDropFromSlot",
					"Description": "Checks if an item can be dropped from an inventory slot. If the item can be dropped, returns `true`. Returns `false` if it cannot be dropped. Supports the same parameters as `DropFromSlot()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slot"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "DropFromSlot",
					"Description": "Drops the entire contents of a specified slot, creating an ItemObject with the item's properties. Spawns the ItemObject at the position of the inventory in the world, or at the position of the owner player's feet if the inventory has been assigned to a player. Returns `true` if the operation succeeded. Returns `false` and logs a warning if the operation failed. If the full item count is successfully dropped, the slot will be left empty.<br/>Supported parameters include: <br/>`count (integer)`: Specifies the number of the item to be dropped. If not specified, the total number of items in this slot will be dropped. <br/>`dropTo (ItemObject)`: Specifies a pre-existing ItemObject to drop the items onto. Doing this will add to that ItemObject's count. If the ItemObject's max stack count would be exceeded by this operation, it will fail, and this function will return false. <br/>`parent (CoreObject)`: Creates the new ItemObject as a child of the specified CoreObject. Can only be used if `dropTo` is not specified. <br/>`position (Vector3)`: Specifies the world position at which the ItemObject is spawned, or the relative position if a parent is specified. Can only be used if `dropTo` is not specified. <br/>`rotation (Rotation or Quaternion)`: Specifies the world rotation at which the ItemObject is spawned, or the relative rotation if a parent is specified. Can only be used if `dropTo` is not specified. <br/>`scale (Vector3)`: Specifies the world scale with which the ItemObject is spawned, or the relative scale if a parent is specified. Can only be used if `dropTo` is not specified. <br/>`transform (Transform)`: Specifies the world transform at which the ItemObject is spawned, or the relative transform if a parent is specified. Can only be used if `dropTo` is not specified, and is mutually exclusive with `position`, `rotation`, and `scale`. <br/>Additional parameters supported by `World.SpawnAsset()` may also be supported here.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slot"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanGiveItem",
					"Description": "Checks if an item can be transferred to the specified recipient inventory. If the item can be transferred, returns `true`. Returns `false` if it cannot be transferred. Supports the same parameters as `GiveItem()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "itemAssetId"
								},
								{
									"Type": "Inventory",
									"Name": "recipient"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GiveItem",
					"Description": "Transfers an item, specified by item asset ID, from this inventory to the given recipient inventory. Returns `true` if the operation succeeded. Returns `false` and logs a warning if the operation failed. <br/>Supported parameters include: <br/>`count (integer)`: Specifies the number of the item to be transferred. Defaults to 1. <br/>`all (boolean)`: If `true`, transfers all of the specified items instead of just 1. Overrides `count` if both are specified.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "itemAssetId"
								},
								{
									"Type": "Inventory",
									"Name": "recipient"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "CanGiveFromSlot",
					"Description": "Checks if a slot can be transferred to the specified recipient inventory. If the item can be transferred, returns `true`. Returns `false` if it cannot be transferred. Supports the same parameters as `GiveFromSlot()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slot"
								},
								{
									"Type": "Inventory",
									"Name": "recipient"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GiveFromSlot",
					"Description": "Transfers the entire stack of a given slot to the given recipient inventory. Returns `true` if the operation succeeded. Returns `false` and logs a warning if the operation failed. <br/>Supported parameters include: <br/>`count (integer)`: Specifies the number of the item to be transferred. If not specified, the total number of items in this slot will be transferred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "slot"
								},
								{
									"Type": "Inventory",
									"Name": "recipient"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "InventoryItem",
			"Description": "InventoryItem is an Object which implements the [Item](item.md) interface. It represents an Item stored in an Inventory and has no 3D representation in the world.",
			"BaseType": "Object",
			"Implements": [
				"Item"
			],
			"Properties": [
				{
					"Name": "name",
					"Description": "The name of this item, inherited from the Item asset.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "itemAssetId",
					"Description": "Asset ID defining this Item's properties.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "itemTemplateId",
					"Description": "Asset reference that is spawned as a child of an ItemObject when spawned in the world. May be `nil`.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maximumStackCount",
					"Description": "The maximum number of items in one stack of this item. Zero or negative numbers indicate no limit.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "inventory",
					"Description": "The Inventory which owns this item.",
					"Type": "Inventory",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "slot",
					"Description": "The slot number to which this item has been assigned within its owning Inventory.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "count",
					"Description": "The number of items this object represents.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "SetCustomProperty",
					"Description": "Sets the value of a custom property. The value must match the existing type of the property. Returns `true` if the property was successfully set. If the property could not be set, returns `false` or raises an error depending on the cause of the failure.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "value",
									"Name": "propertyValue"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetCustomProperty",
					"Description": "Returns the value of a specific custom property or `nil` if the Item does not possess the custom property. The second return value is `true` if the property is found or `false` if it is not. Initial values are inherited from the Item asset defining this item.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "value"
								},
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								}
							]
						}
					]
				},
				{
					"Name": "GetCustomProperties",
					"Description": "Returns a table containing the names and values of all custom properties on this item. Initial values are inherited from the Item asset defining this item.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsCustomPropertyDynamic",
					"Description": "Returns `true` if the named custom property exists and is marked as dynamic. Otherwise, returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName "
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "ItemObject",
			"Description": "ItemObject is a CoreObject which implements the [Item](item.md) interface. It represents an Item that has been spawned in the world.",
			"BaseType": "CoreObject",
			"Implements": [
				"Item"
			],
			"Properties": [
				{
					"Name": "itemAssetId",
					"Description": "Asset ID defining this ItemObject's properties.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "itemTemplateId",
					"Description": "Asset reference that is spawned as a child of the ItemObject when spawned in the world. This is inherited from the item asset's Item Template property. May be `nil`.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maximumStackCount",
					"Description": "The maximum number of items in one stack of this item. This is inherited from the item asset's Maximum Stack Count property. Zero or negative numbers indicate no limit.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "count",
					"Description": "The number of items this object represents.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "changedEvent",
					"Description": "Fired when the count or a custom property value of an ItemObject has changed.",
					"Parameters": [
						{
							"Type": "ItemObject",
							"Name": "itemObject"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "LeaderboardEntry",
			"Description": "A data structure containing a player's entry on a leaderboard. See the `Leaderboards` API for information on how to retrieve or update a `LeaderboardEntry`.",
			"Properties": [
				{
					"Name": "id",
					"Description": "The ID of the `Player` whose entry this is.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "name",
					"Description": "The name of the `Player` whose entry this is.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "score",
					"Description": "The Player's score.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "additionalData",
					"Description": "Optional additional data that was submitted along with the Player's score. (See `Leaderboards.SubmitPlayerScore()` for more information.)",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Light",
			"Description": "Light is a light source that is a CoreObject. Generally a Light will be an instance of some subtype, such as PointLight or SpotLight.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "intensity",
					"Description": "The intensity of the light. For PointLights and SpotLights, this has two interpretations, depending on the value of the `hasNaturalFallOff` property. If `true`, the light's Intensity is in units of lumens, where 1700 lumens is a 100W lightbulb. If `false`, the light's Intensity is a brightness scale.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "attenuationRadius",
					"Description": "Bounds the light's visible influence. This clamping of the light's influence is not physically correct but very important for performance, larger lights cost more.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isShadowCaster",
					"Description": "Does this light cast shadows?",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "hasTemperature",
					"Description": "true: use temperature value as illuminant. false: use white (D65) as illuminant.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "temperature",
					"Description": "Color temperature in Kelvin of the blackbody illuminant. White (D65) is 6500K.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "team",
					"Description": "Assigns the light to a team. Value range from 0 to 4. 0 is a neutral team.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isTeamColorUsed",
					"Description": "If `true`, and the light has been assigned to a valid team, players on that team will see a blue light, while other players will see red.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetColor",
					"Description": "The color of the light.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetColor",
					"Description": "The color of the light.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "MaterialSlot",
			"Description": "Contains data about a material slot on a static or animated mesh.",
			"Properties": [
				{
					"Name": "slotName",
					"Description": "The name of this slot.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "mesh",
					"Description": "The mesh this MaterialSlot is on.",
					"Type": "CoreMesh",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "materialAssetName",
					"Description": "The name of the material asset in this slot.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "materialAssetId",
					"Description": "The material asset in this slot.",
					"Type": "string"
				},
				{
					"Name": "isSmartMaterial",
					"Description": "True if we are using this as a smart material.",
					"Type": "boolean"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "SetUVTiling",
					"Description": "Set the U and V tiling values.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "uv"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "number",
									"Name": "u"
								},
								{
									"Type": "number",
									"Name": "v"
								}
							]
						}
					]
				},
				{
					"Name": "GetUVTiling",
					"Description": "Returns a Vector2 of the U and V tiling values.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetColor",
					"Description": "Set the color for this slot.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					]
				},
				{
					"Name": "GetColor",
					"Description": "Returns the color of this slot.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ResetColor",
					"Description": "Resets the color of this slot to the original value.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ResetUVTiling",
					"Description": "Resets the U and V tiling to their original values.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ResetIsSmartMaterial",
					"Description": "Resets whether or not this is used as a smart material.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ResetMaterialAssetId",
					"Description": "Resets this to the original material asset.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetCustomMaterial",
					"Description": "Get the custom material in this material slot. This errors if the slot does not have a custom material.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CustomMaterial"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "MergedModel",
			"Description": "MergedModel is a special Folder that combines CoreMesh descendants into a single mesh. Note that MergedModel is still a beta feature, and as such could change in the future.",
			"BaseType": "Folder",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "NetReference",
			"Description": "A reference to a network resource, such as a player leaderboard. NetReferences are not created directly, but may be returned by `CoreObject:GetCustomProperty()`.",
			"Properties": [
				{
					"Name": "isAssigned",
					"Description": "Returns true if this reference has been assigned a value. This does not necessarily mean the reference is valid, but does mean it is at least not empty.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "referenceType",
					"Description": "Returns one of the following to indicate the type of NetReference: `NetReferenceType.LEADERBOARD`, `NetReferenceType.SHARED_STORAGE`, `NetReferenceType.SHARED_PLAYER_STORAGE`, `NetReferenceType.CONCURRENT_SHARED_PLAYER_STORAGE`, `NetReferenceType.CONCURRENT_CREATOR_STORAGE`, `NetReferenceType.CREATOR_PERK` or `NetReferenceType.UNKNOWN`.",
					"Type": "NetReferenceType",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "NetworkContext",
			"Description": "NetworkContext is a CoreObject representing a special folder containing client-only, server-only, or static objects.\r\n\r\nThey have no properties or functions of their own, but inherit everything from CoreObject.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "SpawnSharedAsset",
					"Description": "Spawns an instance of an asset into the world as a child of a networked Static Context, also spawning copies of the asset on clients without the overhead of additional networked objects. Any object spawned this way cannot be modified, as with other objects within a Static Context, but they may be destroyed by calling `DestroySharedAsset()` on the same `NetworkContext` instance. Raises an error if called on a non-networked Static Context or a Static Context which is a descendant of a Client Context or Server Context. Optional parameters can specify a transform for the spawned object. <br/>Supported parameters include: <br/>`position (Vector3)`: Position of the spawned object, relative to the parent NetworkContext. <br/>`rotation (Rotation or Quaternion)`: Local rotation of the spawned object. <br/>`scale (Vector3 or number)`: Scale of the spawned object, may be specified as a `Vector3` or as a `number` for uniform scale. <br/>`transform (Transform)`: The full transform of the spawned object. If `transform` is specified, it is an error to also specify `position`, `rotation`, or `scale`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "assetId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "DestroySharedAsset",
					"Description": "Destroys an object that was spawned using `SpawnSharedAsset()`. Raises an error if `coreObject` was not created by this `NetworkContext`.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "coreObject"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Object",
			"Description": "At a high level, Core Lua types can be divided into two groups: data structures and Objects. Data structures are owned by Lua, while Objects are owned by the engine and could be destroyed while still referenced by Lua. Any such object will inherit from this type. These include CoreObject, Player, and Projectile.",
			"Properties": [
				{
					"Name": "serverUserData",
					"Description": "Table in which users can store any data they want on the server.",
					"Type": "table",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "clientUserData",
					"Description": "Table in which users can store any data they want on the client.",
					"Type": "table",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "IsValid",
					"Description": "Returns true if object is still a valid Object, or false if it has been destroyed. Also returns false if passed a nil value or something that's not an Object, such as a Vector3 or a string.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "value",
									"Name": "object"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "PartyInfo",
			"Description": "Contains data about a party, returned by Player:GetPartyInfo()",
			"Properties": [
				{
					"Name": "id",
					"Description": "The party ID.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "name",
					"Description": "The party name.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "partySize",
					"Description": "The current size of the party.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maxPartySize",
					"Description": "The maximum size of the party.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "partyLeaderId",
					"Description": "The player ID of the party leader.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isPlayAsParty",
					"Description": "When true, calls to `Player:TransferToGame()` made on the party leader will transfer all players in the party.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isPublic",
					"Description": "Returns `true` if this party is public, meaning anyone can join.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetTags",
					"Description": "Returns an array of the party's tags.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetMemberIds",
					"Description": "Returns an array of the player IDs of the party's members.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsFull",
					"Description": "Returns `true` if the party is at maximum capacity.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "PhysicsObject",
			"Description": "A CoreObject with simulated physics that can interact with players and other objects. PhysicsObject also implements the [Damageable](damageable.md) interface.",
			"BaseType": "CoreObject",
			"Implements": [
				"Damageable"
			],
			"Properties": [
				{
					"Name": "team",
					"Description": "Assigns the physics object to a team. Value range from `0` to `4`. `0` is neutral team.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isTeamCollisionEnabled",
					"Description": "If `false`, and the physics object has been assigned to a valid team, players on that team will not collide with the object.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isEnemyCollisionEnabled",
					"Description": "If `false`, and the physics object has been assigned to a valid team, players on other teams will not collide with the object.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "hitPoints",
					"Description": "Current amount of hit points.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "maxHitPoints",
					"Description": "Maximum amount of hit points.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isDead",
					"Description": "True if the object is dead, otherwise false. Death occurs when damage is applied which reduces hit points to 0, or when the `Die()` function is called.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isImmortal",
					"Description": "When set to `true`, this object cannot die.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isInvulnerable",
					"Description": "When set to `true`, this object does not take damage.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "destroyOnDeath",
					"Description": "When set to `true`, this object will automatically be destroyed when it dies.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathDelay",
					"Description": "Delay in seconds after death before this object is destroyed, if `destroyOnDeath` is set to `true`. Defaults to 0.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathClientTemplateId",
					"Description": "Optional asset ID of a template to be spawned on clients when this object is automatically destroyed on death.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathNetworkedTemplateId",
					"Description": "Optional asset ID of a networked template to be spawned on the server when this object is automatically destroyed on death.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "damagedEvent",
					"Description": "Fired when the object takes damage.",
					"Parameters": [
						{
							"Type": "PhysicsObject",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				},
				{
					"Name": "diedEvent",
					"Description": "Fired when the object dies.",
					"Parameters": [
						{
							"Type": "PhysicsObject",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				},
				{
					"Name": "collidedEvent",
					"Description": "Fired when the object collides with another object. The `HitResult` parameter describes the collision that occurred.",
					"Parameters": [
						{
							"Type": "PhysicsObject",
							"Name": "object"
						},
						{
							"Type": "HitResult",
							"Name": "hitResult"
						}
					]
				}
			],
			"Hooks": [
				{
					"Name": "damageHook",
					"Description": "Hook called when applying damage from a call to `ApplyDamage()`. The incoming damage may be modified or prevented by modifying properties on the `damage` parameter.",
					"Parameters": [
						{
							"Type": "PhysicsObject",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "ApplyDamage",
					"Description": "Damages the object, unless it is invulnerable. If its hit points reach 0 and it is not immortal, it dies.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Die",
					"Description": "Kills the object, unless it is immortal. The optional Damage parameter is a way to communicate cause of death.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Player",
			"Description": "Player is an object representation of the state of a player connected to the game, as well as their avatar in the world. Player also implements the [Damageable](damageable.md) interface.",
			"BaseType": "Object",
			"Implements": [
				"Damageable"
			],
			"Properties": [
				{
					"Name": "id",
					"Description": "The unique id of the Player. Consistent across sessions.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "name",
					"Description": "The Player's name.",
					"Type": "string",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "team",
					"Description": "The number of the team to which the Player is assigned. By default, this value is 255 in FFA mode.",
					"Type": "integer",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "isInParty",
					"Description": "Returns whether this player is in a party. This is known regardless of if the party is public or private.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isPartyLeader",
					"Description": "Returns whether this player is the leader of a public party.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "hitPoints",
					"Description": "Current amount of hit points.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "maxHitPoints",
					"Description": "Maximum amount of hit points.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "kills",
					"Description": "The number of times the player has killed another player.",
					"Type": "integer",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "deaths",
					"Description": "The number of times the player has died.",
					"Type": "integer",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "isSpawned",
					"Description": "True if the player is in a spawned state, false if the player is despawned.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isDead",
					"Description": "True if the Player is dead, otherwise false.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "mass",
					"Description": "Gets the mass of the Player.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isAccelerating",
					"Description": "True if the Player is accelerating, such as from input to move.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isCrouching",
					"Description": "True if the Player is crouching.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isFlying",
					"Description": "True if the Player is flying.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isGrounded",
					"Description": "True if the Player is on the ground with no upward velocity, otherwise false.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isJumping",
					"Description": "True if the Player is jumping.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isMounted",
					"Description": "True if the Player is mounted on another object.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isSwimming",
					"Description": "True if the Player is swimming in water.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isWalking",
					"Description": "True if the Player is in walking mode.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maxWalkSpeed",
					"Description": "Maximum speed while the player is on the ground. Clients can only read. Default = 640.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "stepHeight",
					"Description": "Maximum height in centimeters the Player can step up. Range is 0-100. Default = 45.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "maxAcceleration",
					"Description": "Max Acceleration (rate of change of velocity). Clients can only read. Default = 1800. Acceleration is expressed in centimeters per second squared.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "brakingDecelerationFalling",
					"Description": "Deceleration when falling and not applying acceleration. Default = 0.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "brakingDecelerationWalking",
					"Description": "Deceleration when walking and movement input has stopped. Default = 1000.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "brakingDecelerationFlying",
					"Description": "Deceleration when flying and movement input has stopped. Default = 600.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "groundFriction",
					"Description": "Friction when walking on ground. Default = 8.0",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "brakingFrictionFactor",
					"Description": "Multiplier for friction when braking. Default = 0.6.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "walkableFloorAngle",
					"Description": "Max walkable floor angle, in degrees. Clients can only read. Default = 44.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "lookSensitivity",
					"Description": "Multiplier on the Player look rotation speed relative to cursor movement. This is independent from user's preferences, both will be applied as multipliers together. Default = 1.0.",
					"Type": "number",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "animationStance",
					"Description": "Which set of animations to use for this Player. See [Animation Stance Strings](../api/animations.md#animation-stance-strings) for possible values.",
					"Type": "string",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "activeEmote",
					"Description": "Returns the id of the emote currently being played by the Player, or `nil` if no emote is playing.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "currentFacingMode",
					"Description": "Current mode applied to player, including possible overrides. Possible values are FacingMode.FACE_AIM_WHEN_ACTIVE, FacingMode.FACE_AIM_ALWAYS, and FacingMode.FACE_MOVEMENT. See desiredFacingMode for details.",
					"Type": "FacingMode",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "desiredFacingMode",
					"Description": "Which controls mode to use for this Player. May be overridden by certain movement modes like MovementMode.SWIMMING or when mounted. Possible values are FacingMode.FACE_AIM_WHEN_ACTIVE, FacingMode.FACE_AIM_ALWAYS, and FacingMode.FACE_MOVEMENT.",
					"Type": "FacingMode",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "maxJumpCount",
					"Description": "Max number of jumps, to enable multiple jumps. Set to 0 to disable jumping.",
					"Type": "integer",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "shouldFlipOnMultiJump",
					"Description": "Set to `false` to disable flip animation when player performs double-jump, triple-jump, etc. Defaults to `true`, enabling flip animation.",
					"Type": "boolean",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "jumpVelocity",
					"Description": "Vertical speed applied to Player when they jump. Default = 900. Speed is expressed in centimeters per second.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "gravityScale",
					"Description": "Multiplier on gravity applied. Default = 1.9.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "maxSwimSpeed",
					"Description": "Maximum speed while the player is swimming. Default = 420.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "maxFlySpeed",
					"Description": "Maximum speed while the player is flying. Default = 600.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "touchForceFactor",
					"Description": "Force applied to physics objects when contacted with a Player. Default = 1.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "isCrouchEnabled",
					"Description": "Turns crouching on/off for a Player.",
					"Type": "boolean",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "buoyancy",
					"Description": "In water, buoyancy 1.0 is neutral (won't sink or float naturally). Less than 1 to sink, greater than 1 to float.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "isVisible",
					"Description": "Defaults to `true`. Set to `false` to hide the player and any attached objects which are set to inherit visibility. Note that using this property in conjunction with the deprecated `SetVisibility()` function may cause unpredictable results.",
					"Type": "boolean",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "isVisibleToSelf",
					"Description": "Set whether to hide the Player model on Player's own client, for sniper scope, etc.",
					"Type": "boolean",
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "spreadModifier",
					"Description": "Modifier added to the Player's targeting spread.",
					"Type": "number"
				},
				{
					"Name": "currentSpread",
					"Description": "Gets the Player's current targeting spread.",
					"Type": "number",
					"Tags": [
						"ReadOnly",
						"ClientOnly"
					]
				},
				{
					"Name": "canMount",
					"Description": "Returns whether the Player can manually toggle on/off the mount.",
					"Type": "boolean",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "shouldDismountWhenDamaged",
					"Description": "If `true`, and the Player is mounted they will dismount if they take damage.",
					"Type": "boolean",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "movementControlMode",
					"Description": "Specify how players control their movement. Clients can only read. Default: MovementControlMode.LOOK_RELATIVE. MovementControlMode.NONE: Directional movement input is ignored. MovementControlMode.LOOK_RELATIVE: Forward movement follows the current player's look direction. MovementControlMode.VIEW_RELATIVE: Forward movement follows the current view's look direction. MovementControlMode.FACING_RELATIVE: Forward movement follows the current player's facing direction. MovementControlMode.FIXED_AXES: Movement axis are fixed.",
					"Type": "MovementControlMode",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "lookControlMode",
					"Description": "Specify how players control their look direction. Default: LookControlMode.RELATIVE. LookControlMode.NONE: Look input is ignored. LookControlMode.RELATIVE: Look input controls the current look direction. LookControlMode.LOOK_AT_CURSOR: Look input is ignored. The player's look direction is determined by drawing a line from the player to the cursor on the Cursor Plane.",
					"Type": "LookControlMode",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "isMovementEnabled",
					"Description": "Defaults to `true`. Set to `false` to disable player movement. Unlike `movementControlMode`, which can disable movement input, setting `isMovementEnabled` to `false` freezes the Player in place, ignoring gravity and reactions to collision or impulses, unless the Player's transform is explicitly changed or the Player is attached to a parent CoreObject that moves.",
					"Type": "boolean",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "isCollidable",
					"Description": "Defaults to `true`. Set to `false` to disable collision on the player and any attached objects set to inherit collision.",
					"Type": "boolean",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "parentCoreObject",
					"Description": "If the Player has been attached to a parent CoreObject, returns that object. Otherwise returns `nil`.",
					"Type": "CoreObject",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "spawnMode",
					"Description": "Specifies how a start point is selected when a player initially spawns or spawns from a despawned state.",
					"Type": "SpawnMode",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "respawnMode",
					"Description": "Specifies how a start point is selected when a player respawns.",
					"Type": "RespawnMode",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "respawnDelay",
					"Description": "The delay in seconds from when a player dies until they respawn.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "respawnTimeRemaining",
					"Description": "The number of seconds remaining until the player respawns. Returns 0 if the player is already spawned.",
					"Type": "number",
					"Tags": [
						"ReadOnly",
						"ServerOnly"
					]
				},
				{
					"Name": "occupiedVehicle",
					"Description": "Returns the `Vehicle` that the player currently occupies, or `nil` if the player is not occupying a vehicle.",
					"Type": "Vehicle",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "currentRotationRate",
					"Description": "Reports the real rotation rate that results from any active mechanics/movement overrides.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "defaultRotationRate",
					"Description": "Determines how quickly the Player turns to match the camera's look. Set to -1 for immediate rotation. Currently only supports rotation around the Z-axis.",
					"Type": "number",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "collidedEvent",
					"Description": "Fired when a player collides with another object. The `HitResult` parameter describes the collision that occurred.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "HitResult",
							"Name": "hitResult"
						}
					]
				},
				{
					"Name": "damagedEvent",
					"Description": "Fired when the Player takes damage.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				},
				{
					"Name": "diedEvent",
					"Description": "Fired when the Player dies.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				},
				{
					"Name": "spawnedEvent",
					"Description": "Fired when the Player spawns. Indicates the start point at which they spawned and the spawn key used to select the start point. The start point may be nil if a position was specified when spawning the player.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "PlayerStart",
							"Name": "playerStart"
						},
						{
							"Type": "string",
							"Name": "spawnKey"
						}
					]
				},
				{
					"Name": "respawnedEvent",
					"Description": "Fired when the Player respawns. *This event has been deprecated. Please use spawnedEvent instead.*",
					"IsDeprecated": true,
					"DeprecationMessage": "Player.respawnedEvent is deprecated. Please use Player.spawnedEvent instead.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						}
					]
				},
				{
					"Name": "bindingPressedEvent",
					"Description": "Fired when an action binding is pressed. Second parameter tells you which binding. Possible values of the bindings are listed on the [Ability binding](../api/key_bindings.md) page.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "binding"
						}
					]
				},
				{
					"Name": "bindingReleasedEvent",
					"Description": "Fired when an action binding is released. Second parameter tells you which binding.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "binding"
						}
					]
				},
				{
					"Name": "resourceChangedEvent",
					"Description": "Fired when a resource changed, indicating the type of the resource and its new amount.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "resourceName"
						},
						{
							"Type": "integer",
							"Name": "newAmount"
						}
					]
				},
				{
					"Name": "movementModeChangedEvent",
					"Description": "Fired when a Player's movement mode changes. The first parameter is the Player being changed. The second parameter is the \"new\" movement mode. The third parameter is the \"previous\" movement mode. Possible values for MovementMode are: MovementMode.NONE, MovementMode.WALKING, MovementMode.FALLING, MovementMode.SWIMMING, MovementMode.FLYING.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "MovementMode",
							"Name": "newMovementMode"
						},
						{
							"Type": "MovementMode",
							"Name": "previousMovementMode"
						}
					]
				},
				{
					"Name": "animationEvent",
					"Description": "Some animations have events specified at important points of the animation (for example the impact point in a punch animation). This event is fired with the Player that triggered it, the name of the event at those points, and the name of the animation itself. Events generated from default stances on the player will return \"animation_stance\" as the animation name.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "eventName"
						},
						{
							"Type": "string",
							"Name": "animationName"
						}
					]
				},
				{
					"Name": "emoteStartedEvent",
					"Description": "Fired when the Player begins playing an emote.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "emoteId"
						}
					]
				},
				{
					"Name": "emoteStoppedEvent",
					"Description": "Fired when the Player stops playing an emote or an emote is interrupted.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "emoteId"
						}
					]
				},
				{
					"Name": "perkChangedEvent",
					"Description": "Fired when a player's list of owned perks has changed, indicating which perk's amount has changed. Do not expect this event to fire for perks that a player already has when they join a game. Use the `HasPerk(NetReference)` or `GetPerkCount(NetReference)` function for any initial logic that needs to be handled when joining. Also, this event may not actively fire when a perk expires, but it may fire for an expired perk as a result of purchasing a different perk.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "NetReference",
							"Name": "perkReference"
						}
					]
				},
				{
					"Name": "interactableFocusedEvent",
					"Description": "Fired when a player has focused on an interactable Trigger and may interact with it.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "Trigger",
							"Name": "trigger"
						}
					]
				},
				{
					"Name": "interactableUnfocusedEvent",
					"Description": "Fired when a player is no longer focused on a previously focused interactable Trigger.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "Trigger",
							"Name": "trigger"
						}
					]
				},
				{
					"Name": "privateNetworkedDataChangedEvent",
					"Description": "Fired when the player's private data changes. On the client, only the local player's private data is available.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "key"
						}
					]
				}
			],
			"Hooks": [
				{
					"Name": "movementHook",
					"Description": "Hook called when processing a Player's movement. The `parameters` table contains a `Vector3` named \"direction\", indicating the direction the player will move.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "table",
							"Name": "parameters"
						}
					]
				},
				{
					"Name": "damageHook",
					"Description": "Hook called when applying damage from a call to `ApplyDamage()`. The incoming damage may be modified or prevented by modifying properties on the `damage` parameter.",
					"Tags": [
						"ServerOnly"
					],
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetPartyInfo",
					"Description": "If the player is in a party, returns a PartyInfo object with data about that party.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "PartyInfo"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsInPartyWith",
					"Description": "Returns whether both players are in the same public party.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					]
				},
				{
					"Name": "GetWorldTransform",
					"Description": "The absolute Transform of this player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldTransform",
					"Description": "The absolute Transform of this player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Transform",
									"Name": "worldTransform"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetWorldPosition",
					"Description": "The absolute position of this player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldPosition",
					"Description": "The absolute position of this player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetWorldRotation",
					"Description": "The absolute rotation of this player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldRotation",
					"Description": "The absolute rotation of this player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "worldRotation"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetWorldScale",
					"Description": "The absolute scale of this player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldScale",
					"Description": "The absolute scale of this player (must be uniform).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldScale"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetVelocity",
					"Description": "Gets the current velocity of the Player. The velocity vector indicates the direction, with its magnitude expressed in centimeters per second.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetAbilities",
					"Description": "Array of all Abilities assigned to this Player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Ability>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetEquipment",
					"Description": "Array of all Equipment assigned to this Player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Equipment>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetAttachedObjects",
					"Description": "Returns a table containing CoreObjects attached to this player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreObject>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetInventories",
					"Description": "Returns a list of Inventory objects assigned to the player. If the player has no assigned inventories, this list is empty.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Inventory>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetIKAnchors",
					"Description": "Returns an array of all IKAnchor objects activated on this player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<IKAnchor>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "AddImpulse",
					"Description": "Adds an impulse force to the Player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "impulse"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "SetVelocity",
					"Description": "Sets the Player's velocity to the given amount. The velocity vector indicates the direction, with its magnitude expressed in centimeters per second.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "velocity"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ResetVelocity",
					"Description": "Resets the Player's velocity to zero.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ApplyDamage",
					"Description": "Damages a Player. If their hit points go below 0 they die.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "EnableRagdoll",
					"Description": "Enables ragdoll for the Player, starting on `socketName` weighted by `weight` (between 0.0 and 1.0). This can cause the Player capsule to detach from the mesh. All parameters are optional; `socketName` defaults to the root and `weight` defaults to 1.0. Multiple bones can have ragdoll enabled simultaneously. See [Socket Names](../api/animations.md#socket-names) for the list of possible values.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "socketName"
								},
								{
									"Type": "number",
									"Name": "weight"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "socketName"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "DisableRagdoll",
					"Description": "Disables all ragdolls that have been set on the Player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "SetVisibility",
					"Description": "*This function is deprecated. Please use the `.isVisible` property instead.* Shows or hides the Player. The second parameter is optional, defaults to true, and determines if attachments to the Player are hidden as well as the Player.",
					"IsDeprecated": true,
					"DeprecationMessage": "Player.SetVisibility is deprecated. Please use Player.isVisible instead.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isVisible"
								},
								{
									"Type": "boolean",
									"Name": "includeAttachments"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isVisible"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetVisibility",
					"Description": "Returns whether or not the Player is hidden.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetViewWorldPosition",
					"Description": "Get position of the Player's camera view.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetViewWorldRotation",
					"Description": "Get rotation of the Player's camera view.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Die",
					"Description": "Kills the Player. They will ragdoll and ignore further Damage. The optional Damage parameter is a way to communicate cause of death.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "Spawn",
					"Description": "Resurrects a dead player or spawns a despawned player based on respawn settings in the game (default in-place). An optional table may be provided to override the following parameters:<br>`position (Vector3)`: Respawn at this position. Defaults to the position of the spawn point selected based on the game's respawn settings, or the player's current position if no spawn point was selected.<br>`rotation (Rotation)`: Sets the player's rotation after respawning. Defaults to the rotation of the selected spawn point, or the player's current rotation if no spawn point was selected.<br>`scale (Vector3)`: Sets the player's scale after respawning. Defaults to the Player Scale Multiplier of the selected spawn point, or the player's current scale if no spawn point was selected. Player scale must be uniform. (All three components must be equal.)<br>`spawnKey (string)`: Only spawn points with the given `spawnKey` will be considered. If omitted, only spawn points with a blank `spawnKey` are used.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "table",
									"Name": "optionalParameters"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "Respawn",
					"Description": "*This function is deprecated. Please use `Player:Spawn()` instead.* Resurrects a dead Player based on respawn settings in the game (default in-place). An optional table may be provided to override the following parameters:<br>`position (Vector3)`: Respawn at this position. Defaults to the position of the spawn point selected based on the game's respawn settings, or the player's current position if no spawn point was selected.<br>`rotation (Rotation)`: Sets the player's rotation after respawning. Defaults to the rotation of the selected spawn point, or the player's current rotation if no spawn point was selected.<br>`scale (Vector3)`: Sets the player's scale after respawning. Defaults to the Player Scale Multiplier of the selected spawn point, or the player's current scale if no spawn point was selected. Player scale must be uniform. (All three components must be equal.)<br>`spawnKey (string)`: Only spawn points with the given `spawnKey` will be considered. If omitted, only spawn points with a blank `spawnKey` are used.",
					"IsDeprecated": true,
					"DeprecationMessage": "Player:Respawn() is deprecated. Please use Player:Spawn() instead.",
					"Signatures": [
						{
							"Name": "WithPositionRotation",
							"Description": "*This function is deprecated. Please use `Player:Spawn()` instead. For example: `player:Spawn({position = newPosition, rotation = newRotation})`* Resurrects a dead Player at a specific location and rotation.",
							"IsDeprecated": true,
							"DeprecationMessage": "Player:Respawn(Vector3, Rotation) is deprecated.  Please use optional parameters table instead: Player:Respawn({position = Vector3, rotation = Rotation})",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "position"
								},
								{
									"Type": "Rotation",
									"Name": "rotation"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "table",
									"Name": "optionalParameters"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "Despawn",
					"Description": "Despawns the player. While despawned, the player is invisible, has no collision, and cannot move. Use the `Spawn()` function to respawn the player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ClearResources",
					"Description": "Removes all resources from a player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetResources",
					"Description": "Returns a table containing the names and amounts of the player's resources.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetResource",
					"Description": "Returns the amount of a resource owned by a player. Returns 0 by default.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "resourceName"
								}
							]
						}
					]
				},
				{
					"Name": "SetResource",
					"Description": "Sets a specific amount of a resource on a player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "resourceName"
								},
								{
									"Type": "integer",
									"Name": "amount"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "AddResource",
					"Description": "Adds an amount of a resource to a player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "resourceName"
								},
								{
									"Type": "integer",
									"Name": "amount"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "RemoveResource",
					"Description": "Subtracts an amount of a resource from a player. Does not go below 0.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "resourceName"
								},
								{
									"Type": "integer",
									"Name": "amount"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetResourceNames",
					"IsDeprecated": true,
					"DeprecationMessage": "Player:GetResourceNames() is deprecated.  Please use Player:GetResources() instead to retrieve a table of resource names and amounts.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetResourceNamesStartingWith",
					"IsDeprecated": true,
					"DeprecationMessage": "Player:GetResourceNamesStartingWith() is deprecated.  Please use Player:GetResources() instead to retrieve a table of resource names and amounts.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "resourceNamePrefix"
								}
							]
						}
					]
				},
				{
					"Name": "TransferToGame",
					"Description": "Does not work in preview mode or in games played locally. Transfers player to the game specified by the passed-in game ID. Example: The game ID for the URL `https://www.coregames.com/games/577d80/core-royale` is `577d80/core-royale`. This function will raise an error if called from a client script on a player other than the local player.",
					"Signatures": [
						{
							"Name": "WithGameCollectionEntry",
							"Description": "Does not work in preview mode or in games played locally. Transfers player to the game specified by the passed-in `CoreGameCollectionEntry`. This function will raise an error if called from a client script on a player other than the local player.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreGameCollectionEntry",
									"Name": "gameCollectionEntry"
								}
							]
						},
						{
							"Name": "WithGameInfo",
							"Description": "Does not work in preview mode or in games played locally. Transfers player to the game specified by the passed-in `CoreGameInfo`. This function will raise an error if called from a client script on a player other than the local player.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreGameInfo",
									"Name": "gameInfo"
								}
							]
						},
						{
							"Name": "WithId",
							"Description": "Does not work in preview mode or in games played locally. Transfers player to the game specified by the passed-in game ID. Example: The game ID for the URL `https://www.coregames.com/games/577d80/core-royale` is `577d80/core-royale`. This function will raise an error if called from a client script on a player other than the local player.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "gameId"
								}
							]
						}
					]
				},
				{
					"Name": "TransferToScene",
					"Description": "Does not work in preview mode or in games played locally. Transfers player to the scene specified by the passed-in scene name. The specified scene must be a scene within the same game. This function will raise an error if called from a client script on a player other than the local player. <br/>The following optional parameters are supported:<br/>`spawnKey (string)`: Spawns the player at a spawn point with a matching key. If an invalid key is provided, the player will spawn at the origin, (0, 0, 0).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "sceneName"
								},
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "HasPerk",
					"Description": "Returns `true` if the player has one or more of the specified perk.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "perkReference"
								}
							]
						}
					]
				},
				{
					"Name": "GetPerkCount",
					"Description": "Returns how many of the specified perk the player owns. For non-repeatable perks, returns `1` if the player owns the perk, or `0` if the player does not.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "perkReference"
								}
							]
						}
					]
				},
				{
					"Name": "GetPerkTimeRemaining",
					"Description": "Returns the amount of time remaining (in seconds) until a Limited Time Perk expires. Returns `0` if the player does not own the specified perk, or infinity for a permanent or repeatable perk that the player owns.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "perkReference"
								}
							]
						}
					]
				},
				{
					"Name": "GrantRewardPoints",
					"Description": "Adds an amount of Reward Points to a player for completing a certain activity.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "rewardPoints"
								},
								{
									"Type": "string",
									"Name": "activityName"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ActivateFlying",
					"Description": "Activates the Player flying mode.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ActivateWalking",
					"Description": "Activate the Player walking mode.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "SetMounted",
					"Description": "Forces a player in or out of mounted state.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isMounted"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetActiveAbility",
					"Description": "Returns the Ability that is currently active on the player, or `nil` if no ability is currently active. Abilities are considered active if they are in `CAST`, `EXECUTE`, or `RECOVERY` phases. Abilities in `COOLDOWN` or `READY` phase are not considered active.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Ability"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetActiveCamera",
					"Description": "Returns whichever camera is currently active for the Player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Camera"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetDefaultCamera",
					"Description": "Returns the default Camera object the Player is currently using.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Camera"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetDefaultCamera",
					"Description": "Sets the default Camera object for the Player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Camera",
									"Name": "camera"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Camera",
									"Name": "camera"
								},
								{
									"Type": "number",
									"Name": "lerpTime"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetOverrideCamera",
					"Description": "Returns the override Camera object the Player is currently using.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Camera"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetOverrideCamera",
					"Description": "Sets the override Camera object for the Player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Camera",
									"Name": "camera"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Camera",
									"Name": "camera"
								},
								{
									"Type": "number",
									"Name": "lerpTime"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "ClearOverrideCamera",
					"Description": "Clears the override Camera object for the Player (to revert back to the default camera).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "number",
									"Name": "lerpTime"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetLookWorldRotation",
					"Description": "Get the rotation for the direction the Player is facing.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetLookWorldRotation",
					"Description": "Set the rotation for the direction the Player is facing.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "newLookRotation"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsBindingPressed",
					"Description": "Returns `true` if the player is currently pressing the named binding. Possible values of the bindings are listed on the [Ability binding](../api/key_bindings.md) page. Note that when called on a client, this function will only work for the local player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "bindingName"
								}
							]
						}
					]
				},
				{
					"Name": "AttachToCoreObject",
					"Description": "Attaches the Player to the given CoreObject, treating that object as a parent and disabling player movement.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "object"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "Detach",
					"Description": "If the Player is attached to a parent CoreObject, detaches them and re-enables player movement.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetJoinTransferData",
					"Description": "Returns data indicating how a player joined the game (via browsing, portal, social invite, etc) and the game ID of their previous game if they joined directly from another game. Join data should be available during the player's entire session.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "PlayerTransferData"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetLeaveTransferData",
					"Description": "Returns data indicating how a player left the game (via browsing, portal, social invite, etc) and the game ID of their next game if they are directly joining another game. Leave data is not valid until `Game.playerLeftEvent` has fired for the player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "PlayerTransferData"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetPrivateNetworkedData",
					"Description": "Sets the private networked data for this player associated with the key. Value can be any type that could be sent with a networked event. Each key is replicated independently, and this data is only sent to the owning player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "PrivateNetworkedDataResultCode"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "key"
								},
								{
									"Type": "value",
									"Name": "value"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetPrivateNetworkedData",
					"Description": "Returns the private networked data on this player associated with the given key or nil if no data is found.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "value"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "key"
								}
							]
						}
					]
				},
				{
					"Name": "GetPrivateNetworkedDataKeys",
					"Description": "Returns an array of all keys with private data set.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetPrivateNetworkedDataSize",
					"Description": "Returns the number of bytes used by private networked data on this player. Returns 0 if private networked data is not available.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetInteractableTarget",
					"Description": "If the player is currently focused on an interactable Trigger, returns that Trigger. Returns `nil` if the player is not currently focused on an interactable Trigger.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Trigger"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "PlayerSettings",
			"Description": "Settings that can be applied to a Player.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "ApplyToPlayer",
					"Description": "Apply settings from this settings object to Player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "PlayerStart",
			"Description": "PlayerStart is a CoreObject representing a spawn point for players.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "team",
					"Description": "Determines which players are eligible to spawn/respawn at this point.",
					"Type": "integer",
					"Tags": [
						"ServerOnly",
						"Dynamic"
					]
				},
				{
					"Name": "playerScaleMultiplier",
					"Description": "The scale applied to a player that is spawned at this start point.",
					"Type": "number",
					"Tags": [
						"ServerOnly",
						"Dynamic"
					]
				},
				{
					"Name": "spawnTemplateId",
					"Description": "The asset ID of a template spawned on clients when a player spawns at this start point. May be nil.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "key",
					"Description": "The key associated with this start point.",
					"Type": "string",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "shouldDecrowdPlayers",
					"Description": "When set to `true`, a collision check will be performed for spawning players to prevent them from overlapping with other players.",
					"Type": "boolean",
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "PlayerTransferData",
			"Description": "PlayerTransferData contains information indicating how a player joined or left a game, and their next or previous game ID if they're moving directly from one game to another. Players may opt out of sharing this information by selecting \"Hide My Gameplay Activity\" or \"Appear Offline\" in the social panel settings.",
			"Properties": [
				{
					"Name": "reason",
					"Description": "Indicates how the player joined or left a game.",
					"Type": "PlayerTransferReason",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "gameId",
					"Description": "The ID of the game the player joined from or left to join. Returns `nil` if the player joined while not already connected to a game or left for a reason other than joining another game. Also returns `nil` if the player has opted out of sharing this information.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "sceneId",
					"Description": "The scene ID that the player joined from or left to join. May return `nil`.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "sceneName",
					"Description": "The scene name that the player joined from or left to join. May return `nil`.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "PointLight",
			"Description": "PointLight is a placeable light source that is a CoreObject.",
			"BaseType": "Light",
			"Properties": [
				{
					"Name": "hasNaturalFalloff",
					"Description": "The attenuation method of the light. When enabled, `attenuationRadius` is used. When disabled, `falloffExponent` is used. Also changes the interpretation of the intensity property, see intensity for details.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "falloffExponent",
					"Description": "Controls the radial falloff of the light when `hasNaturalFalloff` is false. 2.0 is almost linear and very unrealistic and around 8.0 it looks reasonable. With large exponents, the light has contribution to only a small area of its influence radius but still costs the same as low exponents.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "sourceRadius",
					"Description": "Radius of light source shape.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "sourceLength",
					"Description": "Length of light source shape.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Projectile",
			"Description": "Projectile is a specialized Object which moves through the air in a parabolic shape and impacts other objects. To spawn a Projectile, use `Projectile.Spawn()`.",
			"BaseType": "Object",
			"Properties": [
				{
					"Name": "sourceAbility",
					"Description": "Reference to the Ability from which the Projectile was created.",
					"Type": "Ability",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "shouldBounceOnPlayers",
					"Description": "Determines if the Projectile should bounce off players or be destroyed, when bouncesRemaining is used. Default false.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "shouldDieOnImpact",
					"Description": "If `true`, the Projectile is automatically destroyed when it hits something, unless it has bounces remaining. Default true.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "owner",
					"Description": "The Player who fired this Projectile. Setting this property ensures the Projectile does not impact the owner or their allies. This will also change the color of the Projectile if teams are being used in the game.",
					"Type": "Player",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "speed",
					"Description": "Centimeters per second movement. Default 5000.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "maxSpeed",
					"Description": "Max cm/s. Default 0. Zero means no limit.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "gravityScale",
					"Description": "How much drop. Default 1. 1 means normal gravity. Zero can be used to make a Projectile go in a straight line.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "drag",
					"Description": "Deceleration. Important for homing Projectiles (try a value around 5). Negative drag will cause the Projectile to accelerate. Default 0.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "bouncesRemaining",
					"Description": "Number of bounces remaining before it dies. Default 0.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "bounciness",
					"Description": "Velocity % maintained after a bounce. Default 0.6.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "piercesRemaining",
					"Description": "Number of objects that will be pierced before it dies. A piercing Projectile loses no velocity when going through objects, but still fires the impactEvent event. If combined with bounces, all piercesRemaining are spent before bouncesRemaining are counted. Default 0.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "lifeSpan",
					"Description": "Max seconds the Projectile will exist. Default 10.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "capsuleRadius",
					"Description": "Shape of the Projectile's collision. Default 22.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "capsuleLength",
					"Description": "Shape of the Projectile's collision. A value of zero will make it shaped like a Sphere. Default 44.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "homingTarget",
					"Description": "The projectile accelerates towards its target. Homing targets are meant to be used with spawned projectiles and will not work with weapons.",
					"Type": "Object",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "homingAcceleration",
					"Description": "Magnitude of acceleration towards the target. Default 10,000.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "impactEvent",
					"Description": "Fired when the Projectile collides with something. Impacted object parameter will be either of type `CoreObject` or `Player`, but can also be `nil`. The HitResult describes the point of contact between the Projectile and the impacted object.",
					"Parameters": [
						{
							"Type": "Projectile",
							"Name": "projectile"
						},
						{
							"Type": "Object",
							"Name": "other"
						},
						{
							"Type": "HitResult",
							"Name": "pointOfContact"
						}
					]
				},
				{
					"Name": "lifeSpanEndedEvent",
					"Description": "Fired when the Projectile reaches the end of its lifespan. Fired before it is destroyed.",
					"Parameters": [
						{
							"Type": "Projectile",
							"Name": "projectile"
						}
					]
				},
				{
					"Name": "homingFailedEvent",
					"Description": "Fired when the target is no longer valid, for example the Player disconnected from the game or the object was destroyed somehow.",
					"Parameters": [
						{
							"Type": "Projectile",
							"Name": "projectile"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetWorldTransform",
					"Description": "Transform data for the Projectile in world space.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetWorldPosition",
					"Description": "Position of the Projectile in world space.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetWorldPosition",
					"Description": "Position of the Projectile in world space.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "GetVelocity",
					"Description": "Current direction and speed vector of the Projectile. Speed is expressed in centimeters per second.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetVelocity",
					"Description": "Current direction and speed vector of the Projectile. Speed is expressed in centimeters per second.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "velocity"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "Destroy",
					"Description": "Immediately destroys the object.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "Spawn",
					"Description": "Spawns a Projectile with a child that is an instance of a template.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Projectile"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "templateId"
								},
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "direction"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Quaternion",
			"Description": "A quaternion-based representation of a rotation.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a Quaternion with the given values. Defaults to 0, 0, 0, 1.",
					"Signatures": [
						{
							"Name": "WithQuaternion",
							"Description": "Copies the given Quaternion.",
							"Returns": [
								{
									"Type": "Quaternion"
								}
							],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "quaternion"
								}
							]
						},
						{
							"Name": "WithFromTo",
							"Description": "Constructs a Quaternion between the `from` and `to` of the Vector3s.",
							"Returns": [
								{
									"Type": "Quaternion"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "fromDirection"
								},
								{
									"Type": "Vector3",
									"Name": "toDirection"
								}
							]
						},
						{
							"Name": "WithAxisAngle",
							"Description": "Constructs a Quaternion representing a rotation of angle degrees around the axis of the Vector3.",
							"Returns": [
								{
									"Type": "Quaternion"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "axis"
								},
								{
									"Type": "number",
									"Name": "angle"
								}
							]
						},
						{
							"Name": "WithRotation",
							"Description": "Constructs a Quaternion with the given Rotation.",
							"Returns": [
								{
									"Type": "Quaternion"
								}
							],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotation"
								}
							]
						},
						{
							"Name": "WithXYZW",
							"Description": "Constructs a Quaternion with the given values. Defaults to 0, 0, 0, 1.",
							"Returns": [
								{
									"Type": "Quaternion"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "x"
								},
								{
									"Type": "number",
									"Name": "y"
								},
								{
									"Type": "number",
									"Name": "z"
								},
								{
									"Type": "number",
									"Name": "w"
								}
							]
						},
						{
							"Name": "Default",
							"Description": "Constructs a Quaternion with the given values. Defaults to 0, 0, 0, 1.",
							"Returns": [
								{
									"Type": "Quaternion"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Constants": [
				{
					"Name": "IDENTITY",
					"Description": "Predefined Quaternion with no rotation.",
					"Type": "Quaternion"
				}
			],
			"Properties": [
				{
					"Name": "x",
					"Description": "The `x` component of the Quaternion.",
					"Type": "number"
				},
				{
					"Name": "y",
					"Description": "The `y` component of the Quaternion.",
					"Type": "number"
				},
				{
					"Name": "z",
					"Description": "The `z` component of the Quaternion.",
					"Type": "number"
				},
				{
					"Name": "w",
					"Description": "The `w` component of the Quaternion.",
					"Type": "number"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetRotation",
					"Description": "Get the Rotation representation of the Quaternion.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetForwardVector",
					"Description": "Forward unit vector rotated by the quaternion.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetRightVector",
					"Description": "Right unit vector rotated by the quaternion.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetUpVector",
					"Description": "Up unit vector rotated by the quaternion.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "Slerp",
					"Description": "Spherical interpolation between two quaternions by the specified progress amount and returns the resultant, normalized Quaternion.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Quaternion"
								}
							],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "from"
								},
								{
									"Type": "Quaternion",
									"Name": "to"
								},
								{
									"Type": "number",
									"Name": "progress"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "RandomStream",
			"Description": "Seed-based random stream of numbers. Useful for deterministic RNG problems, for instance, inside a Client Context so all players get the same outcome without the need to replicate lots of data from the server. Bad quality in the lower bits (avoid combining with modulus operations).",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructor with specified seed, defaults to a random value.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "RandomStream"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "seed"
								}
							]
						},
						{
							"Returns": [
								{
									"Type": "RandomStream"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Properties": [
				{
					"Name": "seed",
					"Description": "The current seed used for RNG.",
					"Type": "integer"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetInitialSeed",
					"Description": "The seed that was used to initialize this stream.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Reset",
					"Description": "Function that sets the seed back to the initial seed.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Mutate",
					"Description": "Moves the seed forward to the next seed.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetNumber",
					"Description": "Returns a floating point number between `min` and `max` (inclusive), defaults to `0` and `1` (exclusive).",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": []
						},
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "min"
								},
								{
									"Type": "number",
									"Name": "max"
								}
							]
						}
					]
				},
				{
					"Name": "GetInteger",
					"Description": "Returns an integer number between `min` and `max` (inclusive).",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "min"
								},
								{
									"Type": "integer",
									"Name": "max"
								}
							]
						}
					]
				},
				{
					"Name": "GetVector3",
					"Description": "Returns a random unit vector.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetVector3FromCone",
					"Description": "Returns a random unit vector, uniformly distributed, from inside a cone defined by `direction`, `horizontalHalfAngle` and `verticalHalfAngle` (in degrees).",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "direction"
								},
								{
									"Type": "number",
									"Name": "horizontalHalfAngle"
								},
								{
									"Type": "number",
									"Name": "verticalHalfAngle"
								}
							]
						},
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "direction"
								},
								{
									"Type": "number",
									"Name": "coneHalfAngle"
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Rectangle",
			"Constructors": [
				{
					"Name": "New",
					"Signatures": [
						{
							"Name": "WithVector4",
							"Returns": [
								{
									"Type": "Rectangle"
								}
							],
							"Parameters": [
								{
									"Type": "Vector4",
									"Name": "Vector"
								}
							]
						},
						{
							"Name": "WithRectangle",
							"Returns": [
								{
									"Type": "Rectangle"
								}
							],
							"Parameters": [
								{
									"Type": "Rectangle",
									"Name": "Rectangle"
								}
							]
						},
						{
							"Name": "WithValues",
							"Returns": [
								{
									"Type": "Rectangle"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "Left"
								},
								{
									"Type": "number",
									"Name": "Top"
								},
								{
									"Type": "number",
									"Name": "Right"
								},
								{
									"Type": "number",
									"Name": "Bottom"
								}
							]
						},
						{
							"Name": "Default",
							"Returns": [
								{
									"Type": "Rectangle"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Properties": [
				{
					"Name": "left",
					"Type": "number"
				},
				{
					"Name": "top",
					"Type": "number"
				},
				{
					"Name": "right",
					"Type": "number"
				},
				{
					"Name": "bottom",
					"Type": "number"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetSize",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetCenter",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Rotation",
			"Description": "An euler-based rotation around `x`, `y`, and `z` axes.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Construct a rotation with the given values, defaults to (0, 0, 0).",
					"Signatures": [
						{
							"Name": "WithForwardUp",
							"Description": "Construct a rotation that will rotate Vector3.FORWARD to point in the direction of the given forward vector, with the up vector as a reference. Returns (0, 0, 0) if forward and up point in the exact same (or opposite) direction, or if one of them is of length 0.",
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "forwardVector"
								},
								{
									"Type": "Vector3",
									"Name": "upVector"
								}
							]
						},
						{
							"Name": "WithRotation",
							"Description": "Copies the given Rotation.",
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotation"
								}
							]
						},
						{
							"Name": "WithQuaternion",
							"Description": "Construct a rotation using the given Quaternion.",
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "quaternion"
								}
							]
						},
						{
							"Name": "WithXYZ",
							"Description": "Construct a rotation with the given values, defaults to (0, 0, 0).",
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "x"
								},
								{
									"Type": "number",
									"Name": "y"
								},
								{
									"Type": "number",
									"Name": "z"
								}
							]
						},
						{
							"Name": "Default",
							"Description": "Construct a rotation with the given values, defaults to (0, 0, 0).",
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Constants": [
				{
					"Name": "ZERO",
					"Description": "Constant Rotation of (0, 0, 0).",
					"Type": "Rotation"
				}
			],
			"Properties": [
				{
					"Name": "x",
					"Description": "The `x` component of the Rotation.",
					"Type": "number"
				},
				{
					"Name": "y",
					"Description": "The `y` component of the Rotation.",
					"Type": "number"
				},
				{
					"Name": "z",
					"Description": "The `z` component of the Rotation.",
					"Type": "number"
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Script",
			"Description": "Script is a CoreObject representing a script in the hierarchy. While not technically a property, a script can access itself using the `script` variable.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "context",
					"Description": "Returns the table containing any non-local variables and functions created by the script. This can be used to call (or overwrite!) functions on another script.",
					"Type": "table",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "scriptAssetId",
					"Description": "Returns the asset ID of the script this instance is executing.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "ScriptAsset",
			"Description": "ScriptAsset is an Object representing a script asset in Project Content. When a script is executed from a call to `require()`, it can access the script asset using the `script` variable.\r\n\r\nThis can be used to read custom properties from the script asset.",
			"BaseType": "Object",
			"Properties": [
				{
					"Name": "name",
					"Description": "The name of the script in Project Content.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "id",
					"Description": "The script asset's MUID.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetCustomProperties",
					"Description": "Returns a table containing the names and values of all custom properties on the script asset.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetCustomProperty",
					"Description": "Gets an individual custom property from the script asset. Returns the value, which can be an integer, number, boolean, string, Vector3, Rotator, Color, a MUID string, or nil if not found. Second return value is a boolean, true if found and false if not.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "value"
								},
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "SimpleCurve",
			"Description": "A two-dimensional curve made up of some number of `CurveKey` instances specifying the value of the curve at various points in time. Values between those key points are interpolated based on properties of the curve and the curve keys.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a SimpleCurve with a set of curve keys. An optional table may be provided to override the following parameters:<br>`preExtrapolation (CurveExtrapolation)`: Sets the `preExtrapolation` property of the curve. Defaults to `CurveExtrapolation.CYCLE`.<br>`postExtrapolation (CurveExtrapolation)`: Sets the `postExtrapolation` property of the curve. Defaults to `CurveExtrapolation.CYCLE`.<br>`defaultValue (number)`: Sets the `defaultValue` property of the curve. Defaults to 0.",
					"Signatures": [
						{
							"Name": "WithOptionalParams",
							"Description": "Constructs a SimpleCurve with a set of curve keys. An optional table may be provided to override the following parameters:<br>`preExtrapolation (CurveExtrapolation)`: Sets the `preExtrapolation` property of the curve. Defaults to `CurveExtrapolation.CYCLE`.<br>`postExtrapolation (CurveExtrapolation)`: Sets the `postExtrapolation` property of the curve. Defaults to `CurveExtrapolation.CYCLE`.<br>`defaultValue (number)`: Sets the `defaultValue` property of the curve. Defaults to 0.",
							"Returns": [
								{
									"Type": "SimpleCurve"
								}
							],
							"Parameters": [
								{
									"Type": "table",
									"Name": "keys"
								},
								{
									"Type": "table",
									"Name": "optionalParameters"
								}
							]
						},
						{
							"Name": "WithKeys",
							"Description": "Constructs a SimpleCurve with a set of curve keys. An optional table may be provided to override the following parameters:<br>`preExtrapolation (CurveExtrapolation)`: Sets the `preExtrapolation` property of the curve. Defaults to `CurveExtrapolation.CYCLE`.<br>`postExtrapolation (CurveExtrapolation)`: Sets the `postExtrapolation` property of the curve. Defaults to `CurveExtrapolation.CYCLE`.<br>`defaultValue (number)`: Sets the `defaultValue` property of the curve. Defaults to 0.",
							"Returns": [
								{
									"Type": "SimpleCurve"
								}
							],
							"Parameters": [
								{
									"Type": "table",
									"Name": "keys"
								}
							]
						},
						{
							"Name": "WithSimpleCurve",
							"Description": "Makes a copy of the given SimpleCurve.",
							"Returns": [
								{
									"Type": "SimpleCurve"
								}
							],
							"Parameters": [
								{
									"Type": "SimpleCurve",
									"Name": "other"
								}
							]
						}
					]
				}
			],
			"Properties": [
				{
					"Name": "preExtrapolation",
					"Description": "The extrapolation mode for values before the first curve key.",
					"Type": "CurveExtrapolation"
				},
				{
					"Name": "postExtrapolation",
					"Description": "The extrapolation mode for values after the last curve key.",
					"Type": "CurveExtrapolation"
				},
				{
					"Name": "defaultValue",
					"Description": "The default value for this curve if no keys are available.",
					"Type": "number"
				},
				{
					"Name": "minTime",
					"Description": "Returns the smallest time from the curve's key points. Returns 0 if the curve contains no keys.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maxTime",
					"Description": "Returns the largest time from the curve's key points. Returns 0 if the curve contains no keys.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "minValue",
					"Description": "Returns the smallest value from the curve's key points. Returns 0 if the curve contains no keys.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maxValue",
					"Description": "Returns the largest value from the curve's key points. Returns 0 if the curve contains no keys.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetValue",
					"Description": "Returns the value of the curve at the specified time.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "time"
								}
							]
						}
					]
				},
				{
					"Name": "GetSlope",
					"Description": "Returns the slope (derivative) of the curve at the specified time. This may return nil in certain cases where the curve values are not continuous.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "time"
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "SmartAudio",
			"Description": "SmartAudio objects are SmartObjects that wrap sound files. Similar to Audio objects, they have many of the same properties and functions.",
			"BaseType": "SmartObject",
			"Properties": [
				{
					"Name": "isSpatializationEnabled",
					"Description": "Default true. Set to false to play sound without 3D positioning.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isAttenuationEnabled",
					"Description": "Default true, meaning sounds will fade with distance.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isOcclusionEnabled",
					"Description": "Default true. Changes attenuation if there is geometry between the player and the audio source.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "fadeInTime",
					"Description": "Sets the fade in time for the audio. When the audio is played, it will start at zero volume, and fade in over this many seconds.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "fadeOutTime",
					"Description": "Sets the fadeout time of the audio. When the audio is stopped, it will keep playing for this many seconds, as it fades out.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "startTime",
					"Description": "The start time of the audio track. Default is 0. Setting this to anything else means that the audio will skip ahead that many seconds when played.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "stopTime",
					"Description": "The stop time of the audio track. Default is 0. A positive value means that the audio will stop that many seconds from the start of the track, including any fade out time.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isAutoPlayEnabled",
					"Description": "Default false. If set to true when placed in the editor (or included in a template), the sound will be automatically played when loaded.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isTransient",
					"Description": "Default false. If set to true, the sound will automatically destroy itself after it finishes playing.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isAutoRepeatEnabled",
					"Description": "Loops when playback has finished. Some sounds are designed to automatically loop, this flag will force others that don't. Useful for looping music.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "pitch",
					"Description": "Default 1. Multiplies the playback pitch of a sound. Note that some sounds have clamped pitch ranges (0.2 to 1).",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "volume",
					"Description": "Default 1. Multiplies the playback volume of a sound. Note that values above 1 can distort sound, so if you're trying to balance sounds, experiment to see if scaling down works better than scaling up.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "radius",
					"Description": "Default 0. If non-zero, will override default 3D spatial parameters of the sound. Radius is the distance away from the sound position that will be played at 100% volume.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "falloff",
					"Description": "Default 0. If non-zero, will override default 3D spatial parameters of the sound. Falloff is the distance outside the radius over which the sound volume will gradually fall to zero.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isPlaying",
					"Description": "Returns if the sound is currently playing.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Play",
					"Description": "Begins sound playback.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Stop",
					"Description": "Stops sound playback.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "FadeIn",
					"Description": "Starts playing and fades in the sound over the given time.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "number",
									"Name": "time"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "FadeOut",
					"Description": "Fades the sound out and stops over time seconds.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "number",
									"Name": "time"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "SmartObject",
			"Description": "SmartObject is a top-level container for some complex objects and inherits everything from CoreObject. Note that some properties, such as `collision` or `visibility`, may not be respected by a SmartObject.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "team",
					"Description": "Assigns the SmartObject to a team. Value range from 0 to 4. 0 is neutral team.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isTeamColorUsed",
					"Description": "If `true`, and the SmartObject has been assigned to a valid team, players on that team will see one color, while other players will see another color. Requires a SmartObject that supports team colors.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetSmartProperties",
					"Description": "Returns a table containing the names and values of all smart properties on a SmartObject.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetSmartProperty",
					"Description": "Given a property name, returns the current value of that property on a SmartObject. Returns the value, which can be an integer, number, boolean, string, Vector3, Rotator, Color, or nil if not found. Second return value is a boolean, true if the property was found and false if not.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "value"
								},
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								}
							]
						}
					]
				},
				{
					"Name": "SetSmartProperty",
					"Description": "Sets the value of an exposed property. Value can be of type number, boolean, string, Vector3, Rotation or Color, but must match the type of the property. Returns true if the property was set successfully and false if not.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "value",
									"Name": "propertyValue"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "SpotLight",
			"Description": "SpotLight is a Light that shines in a specific direction from the location at which it is placed.",
			"BaseType": "Light",
			"Properties": [
				{
					"Name": "hasNaturalFalloff",
					"Description": "The attenuation method of the light. When enabled, `attenuationRadius` is used. When disabled, `falloffExponent` is used. Also changes the interpretation of the intensity property, see intensity for details.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "falloffExponent",
					"Description": "Controls the radial falloff of the light when `hasNaturalFalloff` is false. 2.0 is almost linear and very unrealistic and around 8.0 it looks reasonable. With large exponents, the light has contribution to only a small area of its influence radius but still costs the same as low exponents.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "sourceRadius",
					"Description": "Radius of light source shape.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "sourceLength",
					"Description": "Length of light source shape.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "innerConeAngle",
					"Description": "The angle (in degrees) of the cone within which the projected light achieves full brightness.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "outerConeAngle",
					"Description": "The outer angle (in degrees) of the cone of light emitted by this SpotLight.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "StaticMesh",
			"Description": "StaticMesh is a static CoreMesh. StaticMeshes can be placed in the scene and (if networked or client-only) moved at runtime, but the mesh itself cannot be animated.\r\n\r\nSee AnimatedMesh for meshes with animations.",
			"BaseType": "CoreMesh",
			"Properties": [
				{
					"Name": "isSimulatingDebrisPhysics",
					"Description": "If `true`, physics will be enabled for the mesh.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "SetMaterialForSlot",
					"Description": "Set the material in the given slot to the material specified by assetId.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "assetId"
								},
								{
									"Type": "string",
									"Name": "slotName"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetMaterialSlot",
					"Description": "Get the MaterialSlot object for the given slot. If called on the client on a networked object, the resulting object cannot be modified.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "MaterialSlot",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "slotName"
								}
							]
						}
					]
				},
				{
					"Name": "GetMaterialSlots",
					"Description": "Get an array of all MaterialSlots on this mesh. If called on the client on a networked object, the resulting object cannot be modified.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<MaterialSlot>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "ResetMaterialSlot",
					"Description": "Resets a material slot to its original state.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "slotName"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Task",
			"Description": "Task is a representation of a Lua thread. It could be a Script initialization, a repeating `Tick()` function from a Script, an EventListener invocation, or a Task spawned directly by a call to `Task.Spawn()`.",
			"Properties": [
				{
					"Name": "repeatInterval",
					"Description": "For repeating Tasks, the number of seconds to wait after the Task completes before running it again. If set to 0, the Task will wait until the next frame.",
					"Type": "number"
				},
				{
					"Name": "repeatCount",
					"Description": "If set to a non-negative number, the Task will execute that many times. A negative number indicates the Task should repeat indefinitely (until otherwise canceled). With the default of 0, the Task will execute once. With a value of 1, the script will repeat once, meaning it will execute twice.",
					"Type": "integer"
				},
				{
					"Name": "id",
					"Description": "A unique identifier for the task.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Cancel",
					"Description": "Cancels the Task immediately. It will no longer be executed, regardless of the state it was in. If called on the currently executing Task, that Task will halt execution.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetStatus",
					"Description": "Returns the status of the Task. Possible values include: TaskStatus.UNINITIALIZED, TaskStatus.SCHEDULED, TaskStatus.RUNNING, TaskStatus.COMPLETED, TaskStatus.YIELDED, TaskStatus.FAILED, TaskStatus.CANCELED.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "TaskStatus"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "Spawn",
					"Description": "Creates a new Task which will call taskFunction without blocking the current task. The optional delay parameter specifies how many seconds before the task scheduler should run the Task. By default, the scheduler will run the Task at the end of the current frame.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Task",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "function",
									"Name": "function"
								},
								{
									"Type": "number",
									"Name": "delay",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "GetCurrent",
					"Description": "Returns the currently running Task.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Task",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Wait",
					"Description": "Yields the current Task, resuming in delay seconds, or during the next frame if delay is not specified. Returns the amount of time that was actually waited, as well as how long a wait was requested.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "number",
									"Name": "delay",
									"IsOptional": true
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Terrain",
			"Description": "Terrain is a CoreObject representing terrain placed in the world.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Transform",
			"Description": "Transforms represent the position, rotation, and scale of objects in the game. They are immutable, but new Transforms can be created when you want to change an object's Transform.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a new identity Transform.",
					"Signatures": [
						{
							"Name": "WithTransform",
							"Description": "Copies the given Transform.",
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": [
								{
									"Type": "Transform",
									"Name": "transform"
								}
							]
						},
						{
							"Name": "WithMatrix",
							"Description": "Constructs a new Transform from a Matrix.",
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "xAxis"
								},
								{
									"Type": "Vector3",
									"Name": "yAxis"
								},
								{
									"Type": "Vector3",
									"Name": "zAxis"
								},
								{
									"Type": "Vector3",
									"Name": "position"
								}
							]
						},
						{
							"Name": "WithRotationPositionScale",
							"Description": "Constructs a new Transform with a Rotation.",
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotation"
								},
								{
									"Type": "Vector3",
									"Name": "position"
								},
								{
									"Type": "Vector3",
									"Name": "scale"
								}
							]
						},
						{
							"Name": "WithQuaternionPositionScale",
							"Description": "Constructs a new Transform with a Quaternion.",
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "rotation"
								},
								{
									"Type": "Vector3",
									"Name": "position"
								},
								{
									"Type": "Vector3",
									"Name": "scale"
								}
							]
						},
						{
							"Name": "Default",
							"Description": "Constructs a new identity Transform.",
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Constants": [
				{
					"Name": "IDENTITY",
					"Description": "Constant identity Transform.",
					"Type": "Transform"
				}
			],
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetRotation",
					"Description": "Returns a copy of the Rotation component of the Transform.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetRotation",
					"Description": "Sets the rotation component of the Transform.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Rotation",
									"Name": "rotation"
								}
							]
						}
					]
				},
				{
					"Name": "GetPosition",
					"Description": "Returns a copy of the position component of the Transform.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetPosition",
					"Description": "Sets the position component of the Transform.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "position"
								}
							]
						}
					]
				},
				{
					"Name": "GetScale",
					"Description": "Returns a copy of the scale component of the Transform.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetScale",
					"Description": "Sets the scale component of the Transform.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "scale"
								}
							]
						}
					]
				},
				{
					"Name": "GetQuaternion",
					"Description": "Returns a quaternion-based representation of the Rotation.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Quaternion"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetQuaternion",
					"Description": "Sets the quaternion-based representation of the Rotation.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Quaternion",
									"Name": "quaternion"
								}
							]
						}
					]
				},
				{
					"Name": "GetForwardVector",
					"Description": "Forward vector of the Transform.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetRightVector",
					"Description": "Right vector of the Transform.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetUpVector",
					"Description": "Up vector of the Transform.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetInverse",
					"Description": "Inverse of the Transform.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Transform"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "TransformPosition",
					"Description": "Applies the Transform to the given position in 3D space.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "position"
								}
							]
						}
					]
				},
				{
					"Name": "TransformDirection",
					"Description": "Applies the Transform to the given directional Vector3. This will rotate and scale the Vector3, but does not apply the Transform's position.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "direction"
								}
							]
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "TreadedVehicle",
			"Description": "TreadedVehicle is a Vehicle with treads, such as a tank or a tonk.",
			"BaseType": "Vehicle",
			"Implements": [
				"Damageable"
			],
			"Properties": [
				{
					"Name": "turnSpeed",
					"Description": "The turn speed in degrees per second.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Trigger",
			"Description": "A trigger is an invisible and non-colliding CoreObject which fires events when it interacts with another object (for example a Player walks into it):",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "isInteractable",
					"Description": "Interactable Triggers expect Players to walk up and press the <kbd>F</kbd> key to activate them.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "interactionLabel",
					"Description": "The text players will see in their HUD when they come into range of interacting with this trigger.",
					"Type": "string",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "team",
					"Description": "Assigns the trigger to a team. Value range from 0 to 4. 0 is neutral team.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isTeamCollisionEnabled",
					"Description": "If `false`, and the Trigger has been assigned to a valid team, players on that team will not overlap or interact with the Trigger.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isEnemyCollisionEnabled",
					"Description": "If `false`, and the Trigger has been assigned to a valid team, players on enemy teams will not overlap or interact with the Trigger.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "beginOverlapEvent",
					"Description": "Fired when an object enters the Trigger volume. The first parameter is the Trigger itself. The second is the object overlapping the Trigger, which may be a CoreObject, a Player, or some other type. Call `other:IsA()` to check the type.",
					"Parameters": [
						{
							"Type": "Trigger",
							"Name": "trigger"
						},
						{
							"Type": "Object",
							"Name": "other"
						}
					]
				},
				{
					"Name": "endOverlapEvent",
					"Description": "Fired when an object exits the Trigger volume. Parameters the same as `beginOverlapEvent.`",
					"Parameters": [
						{
							"Type": "Trigger",
							"Name": "trigger"
						},
						{
							"Type": "Object",
							"Name": "other"
						}
					]
				},
				{
					"Name": "interactedEvent",
					"Description": "Fired when a player uses the interaction on a trigger volume (<kbd>F</kbd> key). The first parameter is the Trigger itself and the second parameter is a Player.",
					"Parameters": [
						{
							"Type": "Trigger",
							"Name": "trigger"
						},
						{
							"Type": "Player",
							"Name": "player"
						}
					]
				},
				{
					"Name": "interactableFocusedEvent",
					"Description": "Fired when a player has focused on an interactable Trigger and may interact with it.",
					"Parameters": [
						{
							"Type": "Trigger",
							"Name": "trigger"
						},
						{
							"Type": "Object",
							"Name": "player"
						}
					]
				},
				{
					"Name": "interactableUnfocusedEvent",
					"Description": "Fired when a player is no longer focused on a previously focused interactable Trigger.",
					"Parameters": [
						{
							"Type": "Trigger",
							"Name": "trigger"
						},
						{
							"Type": "Object",
							"Name": "player"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsOverlapping",
					"Description": "Returns true if given player overlaps with the Trigger.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Object",
									"Name": "OtherObject"
								}
							]
						}
					]
				},
				{
					"Name": "GetOverlappingObjects",
					"Description": "Returns a list of all objects that are currently overlapping with the Trigger.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Object>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIButton",
			"Description": "A UIControl for a button, should be inside client context. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "text",
					"Description": "Returns the button's label text.",
					"Type": "string",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "fontSize",
					"Description": "Returns the font size of the label text.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isInteractable",
					"Description": "Returns whether the Button can interact with the cursor (click, hover, etc).",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "shouldClipToSize",
					"Description": "Whether or not the button and its shadow should be clipped when exceeding the bounds of this control.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "shouldScaleToFit",
					"Description": "Whether or not the button's label should scale down to fit within the bounds of this control.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "boundAction",
					"Description": "Returns the name of the action binding that is toggled when the button is pressed or released, or `nil` if no binding has been set.",
					"Type": "string",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isHittable",
					"Description": "When set to `true`, this control can receive input from the cursor and blocks input to controls behind it. When set to `false`, the cursor ignores this control and can interact with controls behind it.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "clickedEvent",
					"Description": "Fired when button is clicked. This triggers on mouse-button up, if both button-down and button-up events happen inside the button hitbox.",
					"Parameters": [
						{
							"Type": "UIButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "pressedEvent",
					"Description": "Fired when button is pressed. (mouse button down)",
					"Parameters": [
						{
							"Type": "UIButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "releasedEvent",
					"Description": "Fired when button is released. (mouse button up)",
					"Parameters": [
						{
							"Type": "UIButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "hoveredEvent",
					"Description": "Fired when button is hovered.",
					"Parameters": [
						{
							"Type": "UIButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "unhoveredEvent",
					"Description": "Fired when button is unhovered.",
					"Parameters": [
						{
							"Type": "UIButton",
							"Name": "button"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "SetImage",
					"Description": "Sets the image to a new MUID. You can get this MUID from an Asset Reference.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "imageId"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetButtonColor",
					"Description": "Gets the button's default color.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetButtonColor",
					"Description": "Sets the button's default color.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetHoveredColor",
					"Description": "Gets the button's color when hovered.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetHoveredColor",
					"Description": "Sets the button's color when hovered.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetPressedColor",
					"Description": "Gets the button's color when pressed.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetPressedColor",
					"Description": "Sets the button's color when pressed.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetDisabledColor",
					"Description": "Gets the button's color when it's not interactable.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetDisabledColor",
					"Description": "Sets the button's color when it's not interactable.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetFontColor",
					"Description": "Gets the font's color.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetFontColor",
					"Description": "Sets the font's color.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetFont",
					"Description": "Sets the button's text to use the specified font asset.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "font"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetShadowColor",
					"Description": "Returns the color of the button's drop shadow.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetShadowColor",
					"Description": "Sets the color of the button's drop shadow.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetShadowOffset",
					"Description": "Returns the offset of the button's drop shadow in UI space.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetShadowOffset",
					"Description": "Sets the offset of the button's drop shadow in UI space.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "vector2"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIContainer",
			"Description": "A UIContainer is a type of UIControl. All other UI elements must be a descendant of a UIContainer to be visible. It does not have a position or size. It is always the size of the entire screen. It has no properties or functions of its own, but inherits everything from CoreObject. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "opacity",
					"Description": "Controls the opacity of the container's contents by multiplying the alpha component of descendants' colors. Note that other UIPanels and UIContainers in the hierarchy may also contribute their own opacity values. A resulting alpha value of 1 or greater is fully opaque, 0 is fully transparent.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "cylinderArcAngle",
					"Description": "When the container is rendered in 3D space, this adjusts the curvature of the canvas in degrees. Changing this value will force a redraw.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "useSafeArea",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetCanvasSize",
					"Description": "Returns the size of the canvas when drawn in 3D space.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetCanvasSize",
					"Description": "Sets the size of the canvas when drawn in 3D space.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "size"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsCanvasReady",
					"Description": "Returns `true` if the container has completed initialization, otherwise returns `false`. Calls to get or set the absolute position of controls within a container may not perform correctly before the container has finished initialization.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIControl",
			"Description": "UIControl is a CoreObject which serves as a base class for other UI controls.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "x",
					"Description": "Screen-space offset from the anchor.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "y",
					"Description": "Screen-space offset from the anchor.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "width",
					"Description": "Horizontal size of the control.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "height",
					"Description": "Vertical size of the control.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "rotationAngle",
					"Description": "rotation angle of the control.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "anchor",
					"Description": "The pivot point on this control that attaches to its parent. Can be one of `UIPivot.TOP_LEFT`, `UIPivot.TOP_CENTER`, `UIPivot.TOP_RIGHT`, `UIPivot.MIDDLE_LEFT`, `UIPivot.MIDDLE_CENTER`, `UIPivot.MIDDLE_RIGHT`, `UIPivot.BOTTOM_LEFT`, `UIPivot.BOTTOM_CENTER`, `UIPivot.BOTTOM_RIGHT`, or `UIPivot.CUSTOM`.",
					"Type": "UIPivot",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "dock",
					"Description": "The pivot point on this control to which children attach. Can be one of `UIPivot.TOP_LEFT`, `UIPivot.TOP_CENTER`, `UIPivot.TOP_RIGHT`, `UIPivot.MIDDLE_LEFT`, `UIPivot.MIDDLE_CENTER`, `UIPivot.MIDDLE_RIGHT`, `UIPivot.BOTTOM_LEFT`, `UIPivot.BOTTOM_CENTER`, `UIPivot.BOTTOM_RIGHT`, or `UIPivot.CUSTOM`.",
					"Type": "UIPivot",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetAbsolutePosition",
					"Description": "Returns the absolute screen position of the pivot for this control.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetAbsolutePosition",
					"Description": "Sets the absolute screen position of the pivot for this control.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "position"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"ClientOnly",
						"Dynamic"
					]
				},
				{
					"Name": "GetAbsoluteRotation",
					"Description": "Returns the absolute rotation in degrees (clockwise) for this control.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetAbsoluteRotation",
					"Description": "Sets the absolute rotation in degrees (clockwise) for this control.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "number",
									"Name": "rotation"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"ClientOnly",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIEventRSVPButton",
			"Description": "A UIControl for a button which allows players to register for an event within a game. Similar to `UIButton`, but designed to present a consistent experience for players across all games. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "isInteractable",
					"Description": "Returns whether the button can interact with the cursor (click, hover, etc).",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "eventId",
					"Description": "Returns the ID of the event for which this button is currently configured. This ID can be found in the creator dashboard or using the `CoreGameEvent.id` property of an event returned from various `CorePlatform` functions.",
					"Type": "string",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isHittable",
					"Description": "When set to `true`, this control can receive input from the cursor and blocks input to controls behind it. When set to `false`, the cursor ignores this control and can interact with controls behind it.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "clickedEvent",
					"Description": "Fired when button is clicked. This triggers on mouse-button up, if both button-down and button-up events happen inside the button hitbox.",
					"Parameters": [
						{
							"Type": "UIEventRSVPButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "pressedEvent",
					"Description": "Fired when button is pressed. (mouse button down)",
					"Parameters": [
						{
							"Type": "UIEventRSVPButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "releasedEvent",
					"Description": "Fired when button is released. (mouse button up)",
					"Parameters": [
						{
							"Type": "UIEventRSVPButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "hoveredEvent",
					"Description": "Fired when button is hovered.",
					"Parameters": [
						{
							"Type": "UIEventRSVPButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "unhoveredEvent",
					"Description": "Fired when button is unhovered.",
					"Parameters": [
						{
							"Type": "UIEventRSVPButton",
							"Name": "button"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIImage",
			"Description": "A UIControl for displaying an image. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "isTeamColorUsed",
					"Description": "If `true`, the image will be tinted blue if its team matches the Player, or red if not.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "team",
					"Description": "the team of the image, used for `isTeamColorUsed`.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "shouldClipToSize",
					"Description": "Whether or not the image and its shadow should be clipped when exceeding the bounds of this control.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isFlippedHorizontal",
					"Description": "Whether or not the image is flipped horizontally.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isFlippedVertical",
					"Description": "Whether or not the image is flipped vertically.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isHittable",
					"Description": "When set to `true`, this control can receive input from the cursor and blocks input to controls behind it. When set to `false`, the cursor ignores this control and can interact with controls behind it.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetColor",
					"Description": "Returns the current color of the UIImage.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetColor",
					"Description": "Sets the UIImage to a color.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetImage",
					"Description": "Sets the UIImage to a new image asset ID. You can get this ID from an Asset Reference.",
					"Signatures": [
						{
							"Name": "WithPlayer",
							"Description": "Downloads and sets a Player's profile picture as the texture for this UIImage control.",
							"IsDeprecated": true,
							"DeprecationMessage": "UIImage:SetImage(Player) is deprecated. Please use UIImage:SetPlayerProfile() instead.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						},
						{
							"Name": "WithId",
							"Description": "Sets the UIImage to a new image asset ID. You can get this ID from an Asset Reference.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "imageId"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetPlayerProfile",
					"Description": "Downloads and sets a Player's profile picture as the texture for this UIImage control.",
					"Signatures": [
						{
							"Name": "WithPlayer",
							"Description": "Downloads and sets a Player's profile picture as the texture for this UIImage control.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						},
						{
							"Name": "WithPlayerId",
							"Description": "Downloads and sets a player's profile picture as the texture for this UIImage control.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						},
						{
							"Name": "WithFriendEntry",
							"Description": "Downloads and sets a player's profile picture as the texture for this UIImage control.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreFriendCollectionEntry",
									"Name": "friend"
								}
							]
						},
						{
							"Name": "WithPlayerProfile",
							"Description": "Downloads and sets a player's profile picture as the texture for this UIImage control.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CorePlayerProfile",
									"Name": "playerProfile"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetGameScreenshot",
					"Description": "Downloads and sets a game screenshot as the texture for this UIImage control. The screenshot may come from a different game.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "gameId"
								},
								{
									"Type": "integer",
									"Name": "screenshotIndex",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetGameEvent",
					"Description": "Downloads and sets a game event image as the texture for this UIImage control.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreGameEvent",
									"Name": "gameEvent"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetImage",
					"Description": "Returns the `imageId` assigned to this UIImage control. **Note:** As of 1.0.211, this function returns `nil` instead of `\"0BADBADBADBADBAD\"` when no image asset has been set.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetShadowColor",
					"Description": "Returns the color of the image's drop shadow.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetShadowColor",
					"Description": "Sets the color of the image's drop shadow.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetShadowOffset",
					"Description": "Returns the offset of the image's drop shadow in UI space.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetShadowOffset",
					"Description": "Sets the offset of the image's drop shadow in UI space.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "vector2"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetCameraCapture",
					"Description": "Sets the UIImage to display the given camera capture. If the given capture is not valid, it will be ignored. If the capture is released while in use, this UIImage will revert to its default image.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CameraCapture",
									"Name": "cameraCapture"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"ClientOnly"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIPanel",
			"Description": "A UIControl which can be used for containing and laying out other UI controls. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "shouldClipChildren",
					"Description": "If `true`, children of this UIPanel will not draw outside of its bounds.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "opacity",
					"Description": "Controls the opacity of the panel's contents by multiplying the alpha component of descendants' colors. Note that other UIPanels and UIContainers in the hierarchy may also contribute their own opacity values. A resulting alpha value of 1 or greater is fully opaque, 0 is fully transparent.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIPerkPurchaseButton",
			"Description": "A UIControl for a button which allows players to purchase perks within a game. Similar to `UIButton`, but designed to present a consistent purchasing experience for players across all games. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "isInteractable",
					"Description": "Returns whether the button can interact with the cursor (click, hover, etc).",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isHittable",
					"Description": "When set to `true`, this control can receive input from the cursor and blocks input to controls behind it. When set to `false`, the cursor ignores this control and can interact with controls behind it.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "clickedEvent",
					"Description": "Fired when button is clicked. This triggers on mouse-button up, if both button-down and button-up events happen inside the button hitbox.",
					"Parameters": [
						{
							"Type": "UIPerkPurchaseButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "pressedEvent",
					"Description": "Fired when button is pressed. (mouse button down)",
					"Parameters": [
						{
							"Type": "UIPerkPurchaseButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "releasedEvent",
					"Description": "Fired when button is released. (mouse button up)",
					"Parameters": [
						{
							"Type": "UIPerkPurchaseButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "hoveredEvent",
					"Description": "Fired when button is hovered.",
					"Parameters": [
						{
							"Type": "UIPerkPurchaseButton",
							"Name": "button"
						}
					]
				},
				{
					"Name": "unhoveredEvent",
					"Description": "Fired when button is unhovered.",
					"Parameters": [
						{
							"Type": "UIPerkPurchaseButton",
							"Name": "button"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "SetPerkReference",
					"Description": "Configures this button to use the specified perk.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "perkReference"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetPerkReference",
					"Description": "Returns a reference to the perk for which this button is currently configured. If no perk has been set, returns an unassigned NetReference. (See the `.isAssigned` property on `NetReference`.)",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "NetReference"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIProgressBar",
			"Description": "A UIControl that displays a filled rectangle which can be used for things such as a health indicator. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "progress",
					"Description": "From 0 to 1, how full the bar should be.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "fillType",
					"Description": "Controls the direction in which the progress bar fills.",
					"Type": "ProgressBarFillType",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "fillTileType",
					"Description": "How the fill texture is tiled.",
					"Type": "ImageTileType",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "backgroundTileType",
					"Description": "How the background texture is tiled.",
					"Type": "ImageTileType",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isHittable",
					"Description": "When set to `true`, this control can receive input from the cursor and blocks input to controls behind it. When set to `false`, the cursor ignores this control and can interact with controls behind it.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "SetFillImage",
					"Description": "Sets the progress bar fill to use the image specified by the given asset ID.",
					"Signatures": [
						{
							"Name": "WithId",
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "imageId"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetFillImage",
					"Description": "Returns the asset ID of the image used for the progress bar fill.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetBackgroundImage",
					"Description": "Sets the progress bar background to use the image specified by the given asset ID.",
					"Signatures": [
						{
							"Name": "WithId",
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "imageId"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetBackgroundImage",
					"Description": "Returns the asset ID of the image used for the progress bar background.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetFillColor",
					"Description": "Returns the color of the fill.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetFillColor",
					"Description": "Sets the color of the fill.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetBackgroundColor",
					"Description": "Returns the color of the background.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetBackgroundColor",
					"Description": "Sets the color of the background.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIRewardPointsMeter",
			"Description": "A UIControl that displays the a players progress towards the daily Reward Points cap. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "isHittable",
					"Description": "When set to `true`, this control can receive input from the cursor and blocks input to controls behind it. When set to `false`, the cursor ignores this control and can interact with controls behind it.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIScrollPanel",
			"Description": "A UIControl that supports scrolling a child UIControl that is larger than itself. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "orientation",
					"Description": "Determines whether the panel scrolls horizontally or vertically. Default is `Orientation.VERTICAL`.",
					"Type": "Orientation",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "scrollPosition",
					"Description": "The position in UI space of the scroll panel content. Defaults to 0, which is scrolled to the top or left, depending on orientation. Set to the value of `contentLength` to scroll to the end.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "contentLength",
					"Description": "Returns the height or width of the scroll panel content, depending on orientation. This is the maximum value of `scrollPosition`.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isInteractable",
					"Description": "When `true`, panel scrolling is enabled. When `false`, scrolling is disabled. Defaults to `true`.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UIText",
			"Description": "A UIControl which displays a basic text label. Inherits from [UIControl](uicontrol.md).",
			"BaseType": "UIControl",
			"Properties": [
				{
					"Name": "text",
					"Description": "The actual text string to show.",
					"Type": "string",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "fontSize",
					"Description": "The font size of the UIText control.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "outlineSize",
					"Description": "The thickness of the outline around text in this control. A value of 0 means no outline.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "justification",
					"Description": "Determines the alignment of `text`. Possible values are: TextJustify.LEFT, TextJustify.RIGHT, and TextJustify.CENTER.",
					"Type": "TextJustify",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "shouldWrapText",
					"Description": "Whether or not text should be wrapped within the bounds of this control.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "shouldClipText",
					"Description": "Whether or not text should be clipped when exceeding the bounds of this control.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "shouldScaleToFit",
					"Description": "Whether or not text should scale down to fit within the bounds of this control.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isHittable",
					"Description": "When set to `true`, this control can receive input from the cursor and blocks input to controls behind it. When set to `false`, the cursor ignores this control and can interact with controls behind it.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetColor",
					"Description": "Returns the color of the Text.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetColor",
					"Description": "Sets the color of the Text.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ComputeApproximateSize",
					"Description": "Attempts to determine the size of the rendered block of text. This may return `nil` if the size cannot be determined, for example because the underlying widget has not been fully initialized yet.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetFont",
					"Description": "Sets the text to use the specified font asset.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "font"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetShadowColor",
					"Description": "Returns the color of the text's drop shadow.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetShadowColor",
					"Description": "Sets the color of the text's drop shadow.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetShadowOffset",
					"Description": "Returns the offset of the text's drop shadow in UI space.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetShadowOffset",
					"Description": "Sets the offset of the text's drop shadow in UI space.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "vector2"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetOutlineColor",
					"Description": "Returns the color of the text's outline.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetOutlineColor",
					"Description": "Sets the color of the text's outline.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Vector2",
			"Description": "A two-component vector that can represent a position or direction.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a Vector2 with the given `x`, `y` values, defaults to (0, 0).",
					"Signatures": [
						{
							"Name": "WithFloat",
							"Description": "Constructs a Vector2 with `x`, `y` values both set to the given value.",
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "xy"
								}
							]
						},
						{
							"Name": "WithVector3",
							"Description": "Constructs a Vector2 with `x`, `y` values from the given Vector3.",
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "vector"
								}
							]
						},
						{
							"Name": "WithVector2",
							"Description": "Constructs a Vector2 with `x`, `y` values from the given Vector2.",
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "vector"
								}
							]
						},
						{
							"Name": "WithXY",
							"Description": "Constructs a Vector2 with the given `x`, `y` values, defaults to (0, 0).",
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "x"
								},
								{
									"Type": "number",
									"Name": "y"
								}
							]
						},
						{
							"Name": "Default",
							"Description": "Constructs a Vector2 with the given `x`, `y` values, defaults to (0, 0).",
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Constants": [
				{
					"Name": "ZERO",
					"Description": "(0, 0)",
					"Type": "Vector2"
				},
				{
					"Name": "ONE",
					"Description": "(1, 1)",
					"Type": "Vector2"
				}
			],
			"Properties": [
				{
					"Name": "x",
					"Description": "The `x` component of the Vector2.",
					"Type": "number"
				},
				{
					"Name": "y",
					"Description": "The `y` component of the Vector2.",
					"Type": "number"
				},
				{
					"Name": "size",
					"Description": "The magnitude of the Vector2.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "sizeSquared",
					"Description": "The squared magnitude of the Vector2.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetAbs",
					"Description": "Returns a new Vector2 with each component the absolute value of the component from this Vector2.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetNormalized",
					"Description": "Returns a new Vector2 with size 1, but still pointing in the same direction. Returns (0, 0) if the vector is too small to be normalized.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "Lerp",
					"Description": "Linearly interpolates between two vectors by the specified progress amount and returns the resultant Vector2.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2"
								}
							],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "from"
								},
								{
									"Type": "Vector2",
									"Name": "to"
								},
								{
									"Type": "number",
									"Name": "progress"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Vector3",
			"Description": "A three-component vector that can represent a position or direction.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a Vector3 with the given `x`, `y`, `z` values, defaults to (0, 0, 0).",
					"Signatures": [
						{
							"Name": "WithFloat",
							"Description": "Constructs a Vector3 with `x`, `y`, `z` values all set to the given value.",
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "xyz"
								}
							]
						},
						{
							"Name": "WithVector4",
							"Description": "Constructs a Vector3 with `x`, `y`, `z` values from the given Vector4.",
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "Vector4",
									"Name": "vector"
								}
							]
						},
						{
							"Name": "WithVector3",
							"Description": "Constructs a Vector3 with `x`, `y`, `z` values from the given Vector3.",
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "vector"
								}
							]
						},
						{
							"Name": "WithVector2AndZ",
							"Description": "Constructs a Vector3 with `x`, `y` values from the given Vector2 and the given `z` value.",
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "xy"
								},
								{
									"Type": "number",
									"Name": "z"
								}
							]
						},
						{
							"Name": "WithXYZ",
							"Description": "Constructs a Vector3 with the given `x`, `y`, `z` values, defaults to (0, 0, 0).",
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "x"
								},
								{
									"Type": "number",
									"Name": "y"
								},
								{
									"Type": "number",
									"Name": "z"
								}
							]
						},
						{
							"Name": "Default",
							"Description": "Constructs a Vector3 with the given `x`, `y`, `z` values, defaults to (0, 0, 0).",
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Constants": [
				{
					"Name": "ZERO",
					"Description": "(0, 0, 0)",
					"Type": "Vector3"
				},
				{
					"Name": "ONE",
					"Description": "(1, 1, 1)",
					"Type": "Vector3"
				},
				{
					"Name": "FORWARD",
					"Description": "(1, 0, 0)",
					"Type": "Vector3"
				},
				{
					"Name": "UP",
					"Description": "(0, 0, 1)",
					"Type": "Vector3"
				},
				{
					"Name": "RIGHT",
					"Description": "(0, 1, 0)",
					"Type": "Vector3"
				}
			],
			"Properties": [
				{
					"Name": "x",
					"Description": "The `x` component of the Vector3.",
					"Type": "number"
				},
				{
					"Name": "y",
					"Description": "The `y` component of the Vector3.",
					"Type": "number"
				},
				{
					"Name": "z",
					"Description": "The `z` component of the Vector3.",
					"Type": "number"
				},
				{
					"Name": "size",
					"Description": "The magnitude of the Vector3.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "sizeSquared",
					"Description": "The squared magnitude of the Vector3.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetAbs",
					"Description": "Returns a new Vector3 with each component the absolute value of the component from this Vector3.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetNormalized",
					"Description": "Returns a new Vector3 with size 1, but still pointing in the same direction. Returns (0, 0, 0) if the vector is too small to be normalized.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "Lerp",
					"Description": "Linearly interpolates between two vectors by the specified progress amount and returns the resultant Vector3.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "from"
								},
								{
									"Type": "Vector3",
									"Name": "to"
								},
								{
									"Type": "number",
									"Name": "progress"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Vector4",
			"Description": "A four-component vector.",
			"Constructors": [
				{
					"Name": "New",
					"Description": "Constructs a Vector4 with the given `x`, `y`, `z`, `w` values, defaults to (0, 0, 0, 0).",
					"Signatures": [
						{
							"Name": "WithVector2s",
							"Description": "Constructs a Vector4 with `x`, `y` values from the first Vector2 and `z`, `w` values from the second Vector2.",
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "xy"
								},
								{
									"Type": "Vector2",
									"Name": "zw"
								}
							]
						},
						{
							"Name": "WithColor",
							"Description": "Constructs a Vector4 with `x`, `y`, `z`, `w` values mapped from the given Color's `r`, `g`, `b`, `a` values.",
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						},
						{
							"Name": "WithFloat",
							"Description": "Constructs a Vector4 with `x`, `y`, `z`, `w` values all set to the given value.",
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "xyzw"
								}
							]
						},
						{
							"Name": "WithVector3AndW",
							"Description": "Constructs a Vector4 with `x`, `y`, `z` values from the given Vector3 and the given `w` value.",
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "xyz"
								},
								{
									"Type": "number",
									"Name": "w"
								}
							]
						},
						{
							"Name": "WithVector4",
							"Description": "Constructs a Vector4 with `x`, `y`, `z`, `w` values from the given Vector4.",
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": [
								{
									"Type": "Vector4",
									"Name": "vector"
								}
							]
						},
						{
							"Name": "WithXYZW",
							"Description": "Constructs a Vector4 with the given `x`, `y`, `z`, `w` values, defaults to (0, 0, 0, 0).",
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "x"
								},
								{
									"Type": "number",
									"Name": "y"
								},
								{
									"Type": "number",
									"Name": "z"
								},
								{
									"Type": "number",
									"Name": "w"
								}
							]
						},
						{
							"Name": "Default",
							"Description": "Constructs a Vector4 with the given `x`, `y`, `z`, `w` values, defaults to (0, 0, 0, 0).",
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"Constants": [
				{
					"Name": "ZERO",
					"Description": "(0, 0, 0, 0)",
					"Type": "Vector4"
				},
				{
					"Name": "ONE",
					"Description": "(1, 1, 1, 1)",
					"Type": "Vector4"
				}
			],
			"Properties": [
				{
					"Name": "x",
					"Description": "The `x` component of the Vector4.",
					"Type": "number"
				},
				{
					"Name": "y",
					"Description": "The `y` component of the Vector4.",
					"Type": "number"
				},
				{
					"Name": "z",
					"Description": "The `z` component of the Vector4.",
					"Type": "number"
				},
				{
					"Name": "w",
					"Description": "The `w` component of the Vector4.",
					"Type": "number"
				},
				{
					"Name": "size",
					"Description": "The magnitude of the Vector4.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "sizeSquared",
					"Description": "The squared magnitude of the Vector4.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetAbs",
					"Description": "Returns a new Vector4 with each component the absolute value of the component from this Vector4.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetNormalized",
					"Description": "Returns a new Vector4 with size 1, but still pointing in the same direction. Returns (0, 0, 0, 0) if the vector is too small to be normalized.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			],
			"StaticFunctions": [
				{
					"Name": "Lerp",
					"Description": "Linearly interpolates between two vectors by the specified progress amount and returns the resultant Vector4.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector4"
								}
							],
							"Parameters": [
								{
									"Type": "Vector4",
									"Name": "from"
								},
								{
									"Type": "Vector4",
									"Name": "to"
								},
								{
									"Type": "number",
									"Name": "progress"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Vehicle",
			"Description": "Vehicle is a CoreObject representing a vehicle that can be occupied and driven by a player. Vehicle also implements the [Damageable](damageable.md) interface.",
			"BaseType": "CoreObject",
			"Implements": [
				"Damageable"
			],
			"Properties": [
				{
					"Name": "canExit",
					"Description": "Returns `true` if the driver of the vehicle is allowed to exit using the Vehicle Exit binding.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isAccelerating",
					"Description": "Returns `true` if the vehicle is currently accelerating.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "driver",
					"Description": "The Player currently driving the vehicle, or `nil` if there is no driver.",
					"Type": "Player",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "mass",
					"Description": "Returns the mass of the vehicle in kilograms.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "maxSpeed",
					"Description": "The maximum speed of the vehicle in centimeters per second.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "accelerationRate",
					"Description": "The approximate acceleration rate of the vehicle in centimeters per second squared.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "brakeStrength",
					"Description": "The maximum deceleration of the vehicle when stopping.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "coastBrakeStrength",
					"Description": "The deceleration of the vehicle while coasting (with no forward or backward input).",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "tireFriction",
					"Description": "The amount of friction tires or treads have on the ground.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "gravityScale",
					"Description": "How much gravity affects this vehicle.  Default value is 1.9.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isDriverHidden",
					"Description": "Returns `true` if the driver is made invisible while occupying the vehicle.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isDriverAttached",
					"Description": "Returns `true` if the driver is attached to the vehicle while they occupy it.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isBrakeEngaged",
					"Description": "Returns `true` if the driver of the vehicle is currently using the brakes.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isHandbrakeEngaged",
					"Description": "Returns `true` if the driver of the vehicle is currently using the handbrake.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "driverAnimationStance",
					"Description": "Returns the animation stance that will be applied to the driver while they occupy the vehicle.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "enterTrigger",
					"Description": "Returns the Trigger a Player uses to occupy the vehicle.",
					"Type": "Trigger",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "camera",
					"Description": "Returns the Camera used for the driver while they occupy the vehicle.",
					"Type": "Camera",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "hitPoints",
					"Description": "Current amount of hit points.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "maxHitPoints",
					"Description": "Maximum amount of hit points.",
					"Type": "number",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isDead",
					"Description": "True if the object is dead, otherwise false. Death occurs when damage is applied which reduces hit points to 0, or when the `Die()` function is called.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isImmortal",
					"Description": "When set to `true`, this object cannot die.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "isInvulnerable",
					"Description": "When set to `true`, this object does not take damage.",
					"Type": "boolean",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "destroyOnDeath",
					"Description": "When set to `true`, this object will automatically be destroyed when it dies.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathDelay",
					"Description": "Delay in seconds after death before this object is destroyed, if `destroyOnDeath` is set to `true`. Defaults to 0.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathClientTemplateId",
					"Description": "Optional asset ID of a template to be spawned on clients when this object is automatically destroyed on death.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "destroyOnDeathNetworkedTemplateId",
					"Description": "Optional asset ID of a networked template to be spawned on the server when this object is automatically destroyed on death.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "driverEnteredEvent",
					"Description": "Fired when a new driver occupies the vehicle.",
					"Parameters": [
						{
							"Type": "Vehicle",
							"Name": "vehicle"
						},
						{
							"Type": "Player",
							"Name": "newDriver"
						}
					]
				},
				{
					"Name": "driverExitedEvent",
					"Description": "Fired when a driver exits the vehicle.",
					"Parameters": [
						{
							"Type": "Vehicle",
							"Name": "vehicle"
						},
						{
							"Type": "Player",
							"Name": "oldDriver"
						}
					]
				},
				{
					"Name": "damagedEvent",
					"Description": "Fired when the vehicle takes damage.",
					"Parameters": [
						{
							"Type": "Vehicle",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				},
				{
					"Name": "diedEvent",
					"Description": "Fired when the vehicle dies.",
					"Parameters": [
						{
							"Type": "Vehicle",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				}
			],
			"Hooks": [
				{
					"Name": "clientMovementHook",
					"Description": "Hook called when processing the driver's input. The `parameters` table contains \"throttleInput\", \"steeringInput\", and \"isHandbrakeEngaged\". This is only called on the driver's client. \"throttleInput\" is a number -1.0, to 1.0, with positive values indicating forward input. \"steeringInput\" is the same, and positive values indicate turning to the right. \"isHandbrakeEngaged\" is a boolean.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Vehicle",
							"Name": "vehicle"
						},
						{
							"Type": "table",
							"Name": "parameters"
						}
					]
				},
				{
					"Name": "serverMovementHook",
					"Description": "Hook called when on the server for a vehicle with no driver. This has the same parameters as clientMovementHook.",
					"Tags": [
						"ServerOnly"
					],
					"Parameters": [
						{
							"Type": "Vehicle",
							"Name": "vehicle"
						},
						{
							"Type": "table",
							"Name": "parameters"
						}
					]
				},
				{
					"Name": "damageHook",
					"Description": "Hook called when applying damage from a call to `ApplyDamage()`. The incoming damage may be modified or prevented by modifying properties on the `damage` parameter.",
					"Parameters": [
						{
							"Type": "Vehicle",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetPhysicsBodyOffset",
					"Description": "Returns the positional offset for the body collision of the vehicle.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetPhysicsBodyScale",
					"Description": "Returns the scale offset for the body collision of the vehicle.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetDriver",
					"Description": "Sets the given player as the new driver of the vehicle. A `nil` value will remove the current driver.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "driver"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "RemoveDriver",
					"Description": "Removes the current driver from the vehicle.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "AddImpulse",
					"Description": "Adds an impulse force to the vehicle.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "impulse"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "GetDriverPosition",
					"Description": "Returns the position relative to the vehicle at which the driver is attached while occupying the vehicle.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetDriverRotation",
					"Description": "Returns the rotation with which the driver is attached while occupying the vehicle.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rotation"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetCenterOfMassOffset",
					"Description": "Returns the center of mass offset for this vehicle.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetCenterOfMassOffset",
					"Description": "Sets the center of mass offset for this vehicle. This resets the vehicle state and may not behave nicely if called repeatedly or while in motion.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "offset"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ApplyDamage",
					"Description": "Damages the vehicle, unless it is invulnerable. If its hit points reach 0 and it is not immortal, it dies.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Die",
					"Description": "Kills the vehicle, unless it is immortal. The optional Damage parameter is a way to communicate cause of death.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Vfx",
			"Description": "Vfx is a specialized type of SmartObject for visual effects. It inherits everything from SmartObject.",
			"BaseType": "SmartObject",
			"Properties": [
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "Play",
					"Description": "Starts playing the effect. The `optionalParameters` table may be provided containing:<br/> `includeDescendants (boolean)`: If `true`, also plays any `Vfx` descendants of this instance.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "Stop",
					"Description": "Stops playing the effect. The `optionalParameters` table may be provided containing:<br/> `includeDescendants (boolean)`: If `true`, also stops any `Vfx` descendants of this instance.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "VoiceChatChannel",
			"Description": "A VoiceChatChannel represents a channel in voice chat, which may be used to find which players are in the channel and mute or unmute players.",
			"Properties": [
				{
					"Name": "name",
					"Description": "The name of this channel.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "channelType",
					"Description": "This channel's type.",
					"Type": "VoiceChannelType",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetPlayers",
					"Description": "Returns a list of players in this channel.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Player>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsPlayerInChannel",
					"Description": "Returns `true` if the given player is in this channel, otherwise returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					]
				},
				{
					"Name": "IsPlayerMuted",
					"Description": "Returns `true` if the given player is muted in this channel, otherwise returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					]
				},
				{
					"Name": "MutePlayer",
					"Description": "Mutes the given player in this channel.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "UnmutePlayer",
					"Description": "Unmutes the given player in this channel.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Weapon",
			"Description": "A Weapon is an Equipment that comes with built-in Abilities and fires Projectiles.",
			"BaseType": "Equipment",
			"Properties": [
				{
					"Name": "attackCooldownDuration",
					"Description": "Interval between separate burst sequences. The value is set by the Shoot ability's Cooldown duration.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "animationStance",
					"Description": "When the Weapon is equipped this animation stance is applied to the Player.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "multiShotCount",
					"Description": "Number of Projectiles/Hitscans that will fire simultaneously inside the spread area each time the Weapon attacks. Does not affect the amount of ammo consumed per attack.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "burstCount",
					"Description": "Number of automatic activations of the Weapon that generally occur in quick succession.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "shotsPerSecond",
					"Description": "Used in conjunction with burstCount to determine the interval between automatic weapon activations.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "shouldBurstStopOnRelease",
					"Description": "If `true`, a burst sequence can be interrupted by the Player by releasing the action button. If `false`, the burst continues firing automatically until it completes or the Weapon runs out of ammo.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isHitscan",
					"Description": "If `false`, the Weapon will produce simulated Projectiles. If `true`, it will instead use instantaneous line traces to simulate shots.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "range",
					"Description": "Max travel distance of the Projectile (isHitscan = False) or range of the line trace (isHitscan = True).",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "damage",
					"Description": "Damage applied to a Player when the weapon attack hits a player target. If set to zero, no damage is applied.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "directDamage",
					"IsDeprecated": true,
					"DeprecationMessage": "directDamage is deprecated. Please use damage instead.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectileTemplateId",
					"Description": "Asset reference for the visual body of the Projectile, for non-hitscan Weapons.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "muzzleFlashTemplateId",
					"Description": "Asset reference for a Vfx to be attached to the muzzle point each time the Weapon attacks.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "trailTemplateId",
					"Description": "Asset reference for a trail Vfx to follow the trajectory of the shot.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "beamTemplateId",
					"Description": "Asset reference for a beam Vfx to be placed along the trajectory of the shot. Useful for hitscan Weapons or very fast Projectiles.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "impactSurfaceTemplateId",
					"Description": "Asset reference of a Vfx to be attached to the surface of any CoreObjects hit by the attack.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "impactProjectileTemplateId",
					"Description": "Asset reference of a Vfx to be spawned at the interaction point. It will be aligned with the trajectory. If the impacted object is a CoreObject, then the Vfx will attach to it as a child.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "impactPlayerTemplateId",
					"Description": "Asset reference of a Vfx to be spawned at the interaction point, if the impacted object is a player.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectileSpeed",
					"Description": "Travel speed (cm/s) of Projectiles spawned by this weapon.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectileLifeSpan",
					"Description": "Duration after which Projectiles are destroyed.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectileGravity",
					"Description": "Gravity scale applied to spawned Projectiles.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectileLength",
					"Description": "Length of the Projectile's capsule collision.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectileRadius",
					"Description": "Radius of the Projectile's capsule collision",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectileDrag",
					"Description": "Drag on the Projectile.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectileBounceCount",
					"Description": "Number of times the Projectile will bounce before it's destroyed. Each bounce generates an interaction event.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "projectilePierceCount",
					"Description": "Number of objects that will be pierced by the Projectile before it's destroyed. Each pierce generates an interaction event.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maxAmmo",
					"Description": "How much ammo the Weapon starts with and its max capacity. If set to -1 then the Weapon has infinite capacity and doesn't need to reload.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "currentAmmo",
					"Description": "Current amount of ammo stored in this Weapon.",
					"Type": "integer",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "ammoType",
					"Description": "A unique identifier for the ammunition type.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "isAmmoFinite",
					"Description": "Determines where the ammo comes from. If `true`, then ammo will be drawn from the Player's Resource inventory and reload will not be possible until the Player acquires more ammo somehow. If `false`, then the Weapon simply reloads to full and inventory Resources are ignored.",
					"Type": "boolean",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "outOfAmmoSoundId",
					"Description": "Asset reference for a sound effect to be played when the Weapon tries to activate, but is out of ammo.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "reloadSoundId",
					"Description": "Asset reference for a sound effect to be played when the Weapon reloads ammo.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "spreadMin",
					"Description": "Smallest size in degrees for the Weapon's cone of probability space to fire Projectiles in.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "spreadMax",
					"Description": "Largest size in degrees for the Weapon's cone of probability space to fire Projectiles in.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "spreadAperture",
					"Description": "The surface size from which shots spawn. An aperture of zero means shots originate from a single point.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "spreadDecreaseSpeed",
					"Description": "Speed at which the spread contracts back from its current value to the minimum cone size.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "spreadIncreasePerShot",
					"Description": "Amount the spread increases each time the Weapon attacks.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "spreadPenaltyPerShot",
					"Description": "Cumulative penalty to the spread size for successive attacks. Penalty cools off based on `spreadDecreaseSpeed`.",
					"Type": "number",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "attackSoundTemplateId",
					"Description": "Asset reference for a sound effect to be played each time the Weapon attacks.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"Events": [
				{
					"Name": "projectileSpawnedEvent",
					"Description": "Fired when a Weapon spawns a projectile.",
					"Parameters": [
						{
							"Type": "Weapon",
							"Name": "weapon"
						},
						{
							"Type": "Projectile",
							"Name": "projectile"
						}
					]
				},
				{
					"Name": "targetImpactedEvent",
					"Description": "Fired when a Weapon interacts with something. For example a shot hits a wall. The `ImpactData` parameter contains information such as which object was hit, who owns the Weapon, which ability was involved in the interaction, etc.",
					"Parameters": [
						{
							"Type": "Weapon",
							"Name": "weapon"
						},
						{
							"Type": "ImpactData",
							"Name": "impactData"
						}
					]
				},
				{
					"Name": "targetInteractionEvent",
					"IsDeprecated": true,
					"DeprecationMessage": "targetInteractionEvent is deprecated. Please use targetImpactedEvent instead.",
					"Parameters": [
						{
							"Type": "ImpactData",
							"Name": "weaponInteraction"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "HasAmmo",
					"Description": "Informs whether the Weapon is able to attack or not.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "Attack",
					"Description": "Triggers the main ability of the Weapon. Optional target parameter can be a Vector3 world position, a Player, or a CoreObject.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "targetPlayer"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "targetObject"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "targetWorldPosition"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "WorldText",
			"Description": "WorldText is an in-world text CoreObject.",
			"BaseType": "CoreObject",
			"Properties": [
				{
					"Name": "text",
					"Description": "The text being displayed by this object.",
					"Type": "string",
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "type",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "GetColor",
					"Description": "The color of the Text.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Color"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetColor",
					"Description": "The color of the Text.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Color",
									"Name": "color"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "SetFont",
					"Description": "Sets the text to use the specified font asset.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "font"
								}
							]
						}
					],
					"Tags": [
						"RequiresAuthority",
						"Dynamic"
					]
				},
				{
					"Name": "IsA",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				}
			]
		}
	],
	"Namespaces": [
		{
			"Name": "Chat",
			"Description": "The Chat namespace contains functions and hooks for sending and reacting to chat messages.",
			"StaticFunctions": [
				{
					"Name": "BroadcastMessage",
					"Description": "Sends a chat message to players. Messages sent from the server have a rate limit of 10 messages per second. Maximum message length is 280 characters. Messages exceeding that length will be cropped.<br />Optional parameters: `players` (Player or Array<Player>): A list of players who should receive the message. Defaults to all players in the game.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "BroadcastMessageResultCode"
								},
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "message"
								},
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "LocalMessage",
					"Description": "Sends a chat message to the local player. Maximum message length is 280 characters. There is no rate limit for local messages.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "message"
								},
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				}
			],
			"StaticHooks": [
				{
					"Name": "receiveMessageHook",
					"Description": "Hook called when receiving a chat message from a Player. The `parameters` table contains a `string` named \"message\" containing the text of the message received, and a `string` named \"speakerName\" with the name of the message sender as it will be displayed in the chat window. Replacing \"message\" with an empty string will cancel receipt of the message.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "speaker"
						},
						{
							"Type": "table",
							"Name": "parameters"
						}
					]
				},
				{
					"Name": "sendMessageHook",
					"Description": "Hook called when sending a chat message. The `parameters` table contains a `string` named \"message\" containing the text of the message to be sent. Replacing \"message\" with an empty string will cancel sending the message.",
					"Parameters": [
						{
							"Type": "table",
							"Name": "parameters"
						}
					]
				}
			]
		},
		{
			"Name": "CoreDebug",
			"Description": "The CoreDebug namespace contains functions that may be useful for debugging.",
			"StaticFunctions": [
				{
					"Name": "DrawLine",
					"Description": "Draws a debug line. `optionalParameters: duration (number), thickness (number), color (Color)`. 0 or negative duration results in a single frame.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "endPosition"
								},
								{
									"Type": "table",
									"Name": "parameters"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "endPosition"
								}
							]
						}
					]
				},
				{
					"Name": "DrawBox",
					"Description": "Draws a debug box, with dimension specified as a vector. `optionalParameters` has same options as `DrawLine()`, with addition of: `rotation (Rotation)` - rotation of the box.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "centerPosition"
								},
								{
									"Type": "Vector3",
									"Name": "scale"
								},
								{
									"Type": "table",
									"Name": "parameters"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "centerPosition"
								},
								{
									"Type": "Vector3",
									"Name": "scale"
								}
							]
						}
					]
				},
				{
					"Name": "DrawSphere",
					"Description": "Draws a debug sphere. `optionalParameters` has the same options as `DrawLine()`.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "centerPosition"
								},
								{
									"Type": "number",
									"Name": "radius"
								},
								{
									"Type": "table",
									"Name": "parameters"
								}
							]
						},
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "centerPosition"
								},
								{
									"Type": "number",
									"Name": "radius"
								}
							]
						}
					]
				},
				{
					"Name": "GetStackTrace",
					"Description": "Returns a stack trace listing all actively executing Lua tasks and their method calls. Usually there is only one task actively executing at a time, with others in a yielded state and excluded from this trace. Multiple tasks can be included in the trace if one task triggers an event that has listeners registered, or if a task calls `require()` to load a new script.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetTaskStackTrace",
					"Description": "Returns a stack trace listing the Lua method calls currently in progress by the given Task. Defaults to the current Task if `task` is not specified.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						},
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "Task",
									"Name": "task"
								}
							]
						}
					]
				},
				{
					"Name": "ToString",
					"Description": "Returns a string representation of the given value. By default this will return the same result as Lua's built-in `tostring()` function, but some types may return additional information useful for debugging. The format of strings returned by this function is subject to change and should never be relied upon to return specific information.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "value",
									"Name": "object"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreMath",
			"Description": "The CoreMath namespace contains a set of math functions.",
			"StaticFunctions": [
				{
					"Name": "Round",
					"Description": "Rounds value to an integer, or to an optional number of decimal places, and returns the rounded value.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "x"
								},
								{
									"Type": "integer",
									"Name": "decimals",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "Lerp",
					"Description": "Linear interpolation between from and to. t should be a floating point number from 0 to 1, with 0 returning from and 1 returning to.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "from"
								},
								{
									"Type": "number",
									"Name": "to"
								},
								{
									"Type": "number",
									"Name": "progress",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "Clamp",
					"Description": "Clamps value between lower and upper, inclusive. If lower and upper are not specified, defaults to 0 and 1.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": [
								{
									"Type": "number",
									"Name": "x"
								},
								{
									"Type": "number",
									"Name": "min",
									"IsOptional": true
								},
								{
									"Type": "number",
									"Name": "max",
									"IsOptional": true
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CorePlatform",
			"Description": "The CorePlatform namespace contains functions for retrieving game metadata from the Core platform.",
			"StaticFunctions": [
				{
					"Name": "GetGameInfo",
					"Description": "Requests metadata for a game with the given ID. Accepts full game IDs (for example \"67442ee5c0654855b51c4f5fc96ab0fd\") as well as the shorter slug version (\"67442e/farmers-market\"). This function may yield until a result is available, and may raise an error if the game ID is invalid or if an error occurs retrieving the information. Results may be cached for later calls.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreGameInfo",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "gameId"
								}
							]
						}
					]
				},
				{
					"Name": "GetGameCollection",
					"Description": "Requests a list of games belonging to a given collection. This function may yield until a result is available, and may raise an error if the collection ID is invalid or if an error occurs retrieving the information. Results may be cached for later calls. Supported collection IDs include: \"new\", \"popular\", \"hot_games\", \"active\", \"featured\", \"highest_rated\", \"most_played\", \"most_engaging\", \"solo_friendly\", and \"tournament\".",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreGameCollectionEntry>"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "collectionId"
								}
							]
						}
					]
				},
				{
					"Name": "GetPlayerProfile",
					"Description": "Requests the public account profile for the player with the given ID. This function may yield until a result is available, and may raise an error if the player ID is invalid or if an error occurs retrieving the information. Results may be cached for later calls. When called in preview mode with a bot's player ID, a placeholder profile will be returned.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CorePlayerProfile",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						}
					]
				},
				{
					"Name": "GetGameEvent",
					"Description": "Requests metadata for a creator event with the given event ID. Event IDs for specific events may be found in the Creator Events Dashboard. This function may yield until a result is available, and may raise an error if the event ID is invalid or if an error occurs retrieving the information. Results may be cached for later calls.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreGameEvent"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "eventId"
								}
							]
						}
					]
				},
				{
					"Name": "GetGameEventCollection",
					"Description": "Requests a list of creator events belonging to a given collection. This function may yield until a result is available, and may raise an error if the collection ID is invalid or if an error occurs retrieving the information. Results may be cached for later calls. Supported event collection IDs include: \"active\", \"upcoming\", \"popular\", and \"suggested\". <br/>The following optional parameters are supported:<br/>`state (CoreGameEventState)`: Filters the returned collection to include only events with the specified state. By default, active and upcoming events are returned.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreGameEventCollection"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "collectionId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "GetGameEventsForGame",
					"Description": "Requests a list of creator events for the specified game. This function may yield until a result is available, and may raise an error if the game ID is invalid or if an error occurs retrieving the information. Results may be cached for later calls. <br/>The following optional parameters are supported:<br/>`state (CoreGameEventState)`: Filters the returned events to include only events with the specified state. By default, active and upcoming events are returned. <br/>`tag (string)`: Filters the returned events to include only events with the given tag.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreGameEventCollection"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "gameId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "IsPlayerRegisteredForGameEvent",
					"Description": "Returns `true` if the given player is registered for the given event, or `false` if they are not. This function may yield until a result is available, and may raise an error if an error occurs retrieving the information. Results may be cached for later calls, and so may also not be immediately up to date. This function will raise an error if called from a client script with a player other than the local player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "CoreGameEvent",
									"Name": "gameEvent"
								}
							]
						}
					]
				},
				{
					"Name": "GetRegisteredGameEvents",
					"Description": "Requests a list of creator events for which the given player is registered. This function may yield until a result is available, and may raise an error if an error occurs retrieving the information. This function will raise an error if called from a client script with a player other than the local player. Results may be cached for later calls. <br/>The following optional parameters are supported:<br/>`state (CoreGameEventState)`: Filters the returned events to include only events with the specified state. By default, active and upcoming events are returned.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreGameEventCollection"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreSocial",
			"Description": "The CoreSocial namespace contains functions for retrieving social metadata from the Core platform.",
			"StaticFunctions": [
				{
					"Name": "IsFriendsWithLocalPlayer",
					"Description": "Returns `true` if the specified player is friends with the local player.",
					"Signatures": [
						{
							"Name": "WithPlayerId",
							"Description": "Returns `true` if the specified player is friends with the local player.",
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						},
						{
							"Name": "WithPlayer",
							"Description": "Returns `true` if the given Player is friends with the local player.",
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetFriends",
					"Description": "Requests a list of the given Player's friends. This function may yield until a result is available, and may raise an error if an error occurs retrieving the information. Results may be cached for later calls. A partial list of friends may be returned, depending on how many friends the player has. See `CoreFriendCollection` for information on retrieving more results. If a player has no friends, or when called in multiplayer preview mode for a bot player, an empty `CoreFriendCollection` will be returned.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreFriendCollection"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "CoreString",
			"Description": "The CoreString namespace contains a set of string utility functions.",
			"StaticFunctions": [
				{
					"Name": "Split",
					"Description": "Splits the string `s` into substrings separated by `delimiter`.<br/>Optional parameters in the `parameters` table include:<br/>`removeEmptyResults (boolean)`: If `true`, empty strings will be removed from the results. Defaults to `false`.<br/>`maxResults (integer)`: Limits the number of strings that will be returned. The last result will be any remaining unsplit portion of `s`.<br/>`delimiters (string or Array<string>)`:Allows splitting on multiple delimiters. If both this and the `delimiter` parameter are specified, the combined list is used. If neither is specified, default is to split on any whitespace characters.<br/>Note that this function does not return a table, it returns multiple strings. For example: `local myHello, myCore = CoreString.Split(\"Hello Core!\")` If a table is desired, wrap the call to `Split()` in curly braces, eg: `local myTable = {CoreString.Split(\"Hello Core!\")}`",
					"Signatures": [
						{
							"Returns": [
								{
									"IsVariadic": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "string"
								}
							]
						},
						{
							"Returns": [
								{
									"IsVariadic": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "string"
								},
								{
									"Type": "string",
									"Name": "delimiter",
									"IsOptional": true
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						},
						{
							"Returns": [
								{
									"IsVariadic": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "string"
								},
								{
									"Type": "table",
									"Name": "optionalParameters"
								}
							]
						},
						{
							"Returns": [
								{
									"IsVariadic": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "string"
								},
								{
									"Type": "string",
									"Name": "delimiter"
								}
							]
						}
					]
				},
				{
					"Name": "Join",
					"Description": "Concatenates the given values together, separated by `delimiter`. If a given value is not a string, it is converted to one using `tostring()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "delimiter"
								},
								{
									"Name": "strings",
									"IsVariadic": true
								}
							]
						}
					]
				},
				{
					"Name": "Trim",
					"Description": "Trims whitespace from the start and end of `s`, returning the result. An optional list of strings may be provided to trim those strings from `s` instead of the default whitespace. For example, `CoreString.Trim(\"(==((Hello!))==)\", \"(==(\", \")==)\")` returns \"(Hello!)\".",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "string"
								},
								{
									"Name": "trimmedStrings",
									"IsVariadic": true
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Environment",
			"Description": "The Environment namespace contains a set of functions for determining where a script is running. Some of these functions are paired together. For example, a script will return `true` for one of `Environment.IsServer()` or `Environment.IsClient()`, but never for both. Similarly, either `Environment.IsLocalGame()` or `Environment.IsHostedGame()` will return `true`, but not both.",
			"StaticFunctions": [
				{
					"Name": "IsClient",
					"Description": "Returns `true` if the script is running in a client environment. This includes scripts that are in a Client Context, as well as scripts in a Static Context on a multiplayer preview client or a client playing a hosted game. Note that single-player preview and the \"Play Locally\" option only execute Static Context scripts once, and that is in a server environment.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsServer",
					"Description": "Returns `true` if the script is running in a server environment. Note that this can include scripts running in the editor in preview mode (where the editor acts as server for the game) or for the \"Play Locally\" option in the Main Menu. This will always return `false` for scripts in a Client Context.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsMultiplayerPreview",
					"Description": "Returns `true` if running in multiplayer preview mode.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsSinglePlayerPreview",
					"Description": "Returns `true` if running in single-player preview mode.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsPreview",
					"Description": "Returns `true` if running in preview mode.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsLocalGame",
					"Description": "Returns `true` if running in a local game on the player's computer. This includes preview mode, as well as the \"Play Locally\" option in the Main Menu.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "IsHostedGame",
					"Description": "Returns `true` if running in a published online game, for both clients and servers.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetDetailLevel",
					"Description": "Returns the Detail Level selected by the player in the Settings menu. Useful for determining whether to spawn templates for VFX or other client-only objects, or selecting templates that are optimized for a particular detail level based on the player's settings.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "DetailLevel"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				}
			]
		},
		{
			"Name": "Events",
			"Description": "User defined events can be specified using the Events namespace. The Events namespace uses the following class functions:",
			"StaticFunctions": [
				{
					"Name": "Connect",
					"Description": "Registers the given function to the event name which will be called every time the event is fired using Broadcast. Returns an EventListener which can be used to disconnect from the event or check if the event is still connected. Accepts any number of additional arguments after the listener function, those arguments will be provided after the event's own parameters.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "EventListener"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "eventName"
								},
								{
									"Type": "function",
									"Name": "listener"
								},
								{
									"Name": "additionalParameters",
									"IsVariadic": true
								}
							]
						}
					]
				},
				{
					"Name": "ConnectForPlayer",
					"Description": "Registers the given function to the event name which will be called every time the event is fired using BroadcastToServer. The first parameter the function receives will be the Player that fired the event. Returns an EventListener which can be used to disconnect from the event or check if the event is still connected. Accepts any number of additional arguments after the listener function, those arguments will be provided after the event's own parameters.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "EventListener"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "eventName"
								},
								{
									"Type": "function",
									"Name": "listener"
								},
								{
									"Name": "additionalParameters",
									"IsVariadic": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "Broadcast",
					"Description": "Broadcasts the given event and fires all listeners attached to the given event name if any exists. Parameters after event name specifies the arguments passed to the listener. Any number of arguments can be passed to the listener function. The events are not networked and can fire events defined in the same context.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "eventName"
								},
								{
									"Name": "argumentList",
									"IsVariadic": true
								}
							]
						}
					]
				},
				{
					"Name": "BroadcastToServer",
					"Description": "Broadcasts the given event to the server over the network and fires all listeners attached to the given event name if any exists on the server. The parameters after event name specify the arguments passed to the listener on the server. The function returns a result code and a message. This is a networked event.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "BroadcastEventResultCode"
								},
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "eventName"
								},
								{
									"Name": "argumentList",
									"IsVariadic": true
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "BroadcastToAllPlayers",
					"Description": "Broadcasts the given event to all clients over the network and fires all listeners attached to the given event name if any exists. Parameters after event name specify the arguments passed to the listener on the client. The function returns a result code and a message. This is a networked event.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "BroadcastEventResultCode"
								},
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "eventName"
								},
								{
									"Name": "argumentList",
									"IsVariadic": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "BroadcastToPlayer",
					"Description": "Broadcasts the given event to a specific client over the network and fires all listeners attached to the given event name if any exists on that client. The first parameter specifies the Player to which the event will be sent. The parameters after event name specify the arguments passed to the listener on the client. The function returns a result code and a message. This is a networked event.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "BroadcastEventResultCode"
								},
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "string",
									"Name": "eventName"
								},
								{
									"Name": "argumentList",
									"IsVariadic": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				}
			]
		},
		{
			"Name": "Game",
			"Description": "Game is a collection of functions and events related to players in the game, rounds of a game, and team scoring.",
			"StaticFunctions": [
				{
					"Name": "GetLocalPlayer",
					"Description": "Returns the local player.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Player"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "FindPlayer",
					"Description": "Returns the Player with the given player ID, if they're currently in the game. Otherwise returns `nil`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Player"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						}
					]
				},
				{
					"Name": "GetPlayers",
					"Description": "Returns a table containing the players currently in the game. An optional table may be provided containing parameters to filter the list of players returned: ignoreDead(boolean), ignoreLiving(boolean), ignoreSpawned(boolean), ignoreDespawned(boolean), ignoreTeams(integer or table of integer), includeTeams(integer or table of integer), ignorePlayers(Player or table of Player), for example: `Game.GetPlayers({ignoreDead = true, ignorePlayers = Game.GetLocalPlayer()})`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Player>"
								}
							],
							"Parameters": [
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "FindPlayersInCylinder",
					"Description": "Returns a table with all Players that are in the given area. Position's `z` is ignored with the cylindrical area always upright. An optional table may be provided containing parameters to filter the list of players considered. This supports the same list of parameters as GetPlayers().",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Player>"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								},
								{
									"Type": "number",
									"Name": "radius"
								},
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "FindPlayersInSphere",
					"Description": "Returns a table with all Players that are in the given spherical area. An optional table may be provided containing parameters to filter the list of players considered. This supports the same list of parameters as GetPlayers().",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Player>"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								},
								{
									"Type": "number",
									"Name": "radius"
								},
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "FindNearestPlayer",
					"Description": "Returns the Player that is nearest to the given position. An optional table may be provided containing parameters to filter the list of players considered. This supports the same list of parameters as GetPlayers().",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Player"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "StartRound",
					"Description": "Fire all events attached to roundStartEvent.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "EndRound",
					"Description": "Fire all events attached to roundEndEvent.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetTeamScore",
					"Description": "Returns the current score for the specified team. Only teams 0 - 4 are valid.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "team"
								}
							]
						}
					]
				},
				{
					"Name": "SetTeamScore",
					"Description": "Sets one team's score.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "team"
								},
								{
									"Type": "integer",
									"Name": "score"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "IncreaseTeamScore",
					"Description": "Increases one team's score.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "team"
								},
								{
									"Type": "integer",
									"Name": "scoreChange"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "DecreaseTeamScore",
					"Description": "Decreases one team's score.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "team"
								},
								{
									"Type": "integer",
									"Name": "scoreChange"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ResetTeamScores",
					"Description": "Sets all teams' scores to 0.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "StopAcceptingPlayers",
					"Description": "Locks the current server instance to stop accepting new players. Note that players already in the process of joining the server will still be accepted, and `Game.playerJoinedEvent` may still fire for a short period of time after a call to this function returns. Other new players will be directed to a different instance of the game.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "IsAcceptingPlayers",
					"Description": "Returns `true` if the current server instance is still accepting new players. Returns `false` if the server has stopped accepting new players due to a call to `Game.StopAcceptingPlayers()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "TransferAllPlayersToGame",
					"Description": "Similar to `Player:TransferToGame()`, transfers all players to the game specified by the passed in game ID. Does not work in preview mode or in games played locally.",
					"Signatures": [
						{
							"Name": "WithGameCollectionEntry",
							"Description": "Similar to `Player:TransferToGame()`, transfers all players to the game specified by the passed in `CoreGameCollectionEntry`. Does not work in preview mode or in games played locally.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreGameCollectionEntry",
									"Name": "gameCollectionEntry"
								}
							]
						},
						{
							"Name": "WithGameInfo",
							"Description": "Similar to `Player:TransferToGame()`, transfers all players to the game specified by the passed in `CoreGameInfo`. Does not work in preview mode or in games played locally.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreGameInfo",
									"Name": "gameInfo"
								}
							]
						},
						{
							"Name": "WithGameId",
							"Description": "Similar to `Player:TransferToGame()`, transfers all players to the game specified by the passed in game ID. Does not work in preview mode or in games played locally.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "gameId"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "TransferPlayersToGame",
					"Description": "Similar to `Player:TransferToGame()`, transfers the specified list of players to the game specified by the passed in game ID. Note that if a party leader is included in the list of players to transfer, the \"Play as Party\" party setting is ignored, and other party members will only be transferred if also included in the list of players. Does not work in preview mode or in games played locally.",
					"Signatures": [
						{
							"Name": "WithGameCollectionEntry",
							"Description": "Similar to `Player:TransferToGame()`, transfers the specified list of players to the game specified by the passed in `CoreGameCollectionEntry`. Note that if a party leader is included in the list of players to transfer, the \"Play as Party\" party setting is ignored, and other party members will only be transferred if also included in the list of players. Does not work in preview mode or in games played locally.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreGameCollectionEntry",
									"Name": "gameCollectionEntry"
								},
								{
									"Type": "Array<Player>",
									"Name": "players"
								}
							]
						},
						{
							"Name": "WithGameInfo",
							"Description": "Similar to `Player:TransferToGame()`, transfers the specified list of players to the game specified by the passed in `CoreGameInfo`. Note that if a party leader is included in the list of players to transfer, the \"Play as Party\" party setting is ignored, and other party members will only be transferred if also included in the list of players. Does not work in preview mode or in games played locally.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreGameInfo",
									"Name": "gameInfo"
								},
								{
									"Type": "Array<Player>",
									"Name": "players"
								}
							]
						},
						{
							"Name": "WithGameId",
							"Description": "Similar to `Player:TransferToGame()`, transfers the specified list of players to the game specified by the passed in game ID. Note that if a party leader is included in the list of players to transfer, the \"Play as Party\" party setting is ignored, and other party members will only be transferred if also included in the list of players. Does not work in preview mode or in games played locally.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "gameId"
								},
								{
									"Type": "Array<Player>",
									"Name": "players"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "TransferAllPlayersToScene",
					"Description": "Similar to `Player:TransferToScene()`, transfers all players to the scene specified by the passed in scene name. Does not work in preview mode or in games played locally. <br/>The following optional parameters are supported:<br/>`spawnKey (string)`: Spawns the players at a spawn point with a matching key. If an invalid key is provided, the players will spawn at the origin, (0, 0, 0).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "sceneName"
								},
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "TransferPlayersToScene",
					"Description": "Similar to `Player:TransferToScene()`, transfers the specified list of players to the scene specified by the passed in scene name. Note that if a party leader is included in the list of players to transfer, the \"Play as Party\" party setting is ignored, and other party members will only be transferred if also included in the list of players. Does not work in preview mode or in games played locally. <br/>The following optional parameters are supported:<br/>`spawnKey (string)`: Spawns the players at a spawn point with a matching key. If an invalid key is provided, the players will spawn at the origin, (0, 0, 0).",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "sceneName"
								},
								{
									"Type": "Array<Player>",
									"Name": "players"
								},
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetCurrentSceneName",
					"Description": "Returns the name of the current scene.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetCurrentGameId",
					"Description": "Returns the ID of the current game. When called in preview mode, returns `nil` if the game has not been published, otherwise returns the published game ID.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": []
						}
					]
				}
			],
			"StaticEvents": [
				{
					"Name": "playerJoinedEvent",
					"Description": "Fired when a player has joined the game and their character is ready. When used in client context it will fire off for each player already connected to the server.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						}
					]
				},
				{
					"Name": "playerLeftEvent",
					"Description": "Fired when a player has disconnected from the game or their character has been destroyed. This event fires before the player has been removed, so functions such as `Game.GetPlayers()` will still include the player that is about to leave unless using the `ignorePlayers` filter within the parameters.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						}
					]
				},
				{
					"Name": "abilitySpawnedEvent",
					"IsDeprecated": true,
					"DeprecationMessage": "abilitySpawnedEvent is deprecated.",
					"Parameters": [
						{
							"Type": "Ability",
							"Name": "ability"
						}
					]
				},
				{
					"Name": "roundStartEvent",
					"Description": "Fired when StartRound is called on game.",
					"Parameters": []
				},
				{
					"Name": "roundEndEvent",
					"Description": "Fired when EndRound is called on game.",
					"Parameters": []
				},
				{
					"Name": "teamScoreChangedEvent",
					"Description": "Fired whenever any team's score changes. This is fired once per team who's score changes.",
					"Parameters": [
						{
							"Type": "integer",
							"Name": "team"
						}
					]
				}
			]
		},
		{
			"Name": "Input",
			"Description": "The Input namespace contains functions and hooks for responding to player input.",
			"StaticFunctions": [
				{
					"Name": "GetActionValue",
					"Description": "Returns the current input value associated with the specified action. This will return a `Vector2` for direction bindings, a `number` for basic and axis bindings, or `nil` for invalid bindings. `nil` may also be returned when called on the server with a non-networked action name or a networked action which simply hasn't been pressed yet.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "value"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "string",
									"Name": "action"
								}
							]
						}
					]
				},
				{
					"Name": "IsActionHeld",
					"Description": "Returns `true` if the specified action is currently being held by the player, otherwise returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "string",
									"Name": "action"
								}
							]
						}
					]
				},
				{
					"Name": "GetCurrentInputType",
					"Description": "Returns the current active input type.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "InputType"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsYAxisInverted",
					"Description": "Returns `true` if the player has inverted the Y axis in their settings for the given input type, otherwise returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "InputType",
									"Name": "inputType"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetActionDescription",
					"Description": "Returns the description set in the Bindings Manager for the specified action. Returns `nil` if given an invalid action name.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "action"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetActionInputLabel",
					"Description": "Returns a string label indicating the key or button assigned to the specified action. Returns `nil` if `actionName` is not a valid action or if an invalid `direction` parameter is specified for axis and direction bindings. Returns \"None\" for valid actions with no control bound. <br/>Supported parameters include: <br/>`direction (string)`: *Required* for axis and direction bindings, specifying \"positive\" or \"negative\" for axis bindings, or \"up\", \"down\", \"left\", or \"right\" for direction bindings. <br/>`inputType (InputType)`: Specifies whether to return a label for keyboard and mouse or controller. Defaults to the current active input type. <br/>`secondary (boolean)`: When `true` and returning a label for keyboard and mouse, returns a label for the secondary input.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "action"
								},
								{
									"Type": "table",
									"Name": "optionalParams",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetCursorPosition",
					"Description": "Returns a Vector2 with the `x`, `y` coordinates of the mouse cursor on the screen. May return `nil` if the cursor position cannot be determined.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetTouchPosition",
					"Description": "Returns a Vector2 with the `x`, `y` coordinates of a touch input on the screen. An optional touch index may be provided to specify which touch to return on multitouch devices. If not specified, index 1 is used. Returns `nil` if the requested touch index is not currently active.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": []
						},
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "fingerIndex"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetPointerPosition",
					"Description": "When the current input type is `InputType.TOUCH`, returns a Vector2 with the `x`, `y` coordinates of a touch input on the screen. When the current input type is not `InputType.TOUCH`, returns the cursor position. An optional touch index may be provided to specify which touch to return on multitouch devices. If not specified, index 1 is used. Returns `nil` if the requested touch index is not currently active. The touch index is ignored for other input types.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": []
						},
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "fingerIndex"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetPinchValue",
					"Description": "During a pinch gesture with touch input, returns a value indicating the relative progress of the pinch gesture. Pinch gestures start with a pinch value of 1 and approach 0 when pinching together, or increase past 1 when touches move apart from each other. Returns 0 if no pinch is in progress.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetRotateValue",
					"Description": "During a rotate gesture with touch input, returns a value indicating the angle of rotation from the start of the gesture. Returns 0 if no rotate is in progress.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "EnableVirtualControls",
					"Description": "Enables display of virtual controls on devices with touch input, or in preview mode if device emulation is enabled. Virtual controls default to enabled when using touch input.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "DisableVirtualControls",
					"Description": "Disables display of virtual controls on devices with touch input, or in preview mode with device emulation enabled.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsInputTypeEnabled",
					"Description": "Returns `true` when the current device supports the given input type. For example, `Input.IsInputEnabled(InputType.CONTROLLER)` will return `true` if a gamepad is connected.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "InputType",
									"Name": "inputType"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetActions",
					"Description": "Returns a list of the names of each action from currently active binding sets. Actions are included in this list regardless of whether the action is currently held or not.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<string>"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "EnableAction",
					"Description": "Enables the specified action, if the action exists.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "action"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "DisableAction",
					"Description": "Disables the specified action, if the action exists. If the action is currently held, this will also release the action.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "action"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsActionEnabled",
					"Description": "Returns `true` if the specified action is enabled. Returns `false` if the action is disabled or does not exist.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "action"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				}
			],
			"StaticEvents": [
				{
					"Name": "actionPressedEvent",
					"Description": "Fired when a player starts an input action by pressing a key, button, or other input control. The third parameter, `value`, will be a `Vector2` for direction bindings, or a `number` for axis and basic bindings.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "action"
						},
						{
							"Type": "value",
							"Name": "value"
						}
					]
				},
				{
					"Name": "actionReleasedEvent",
					"Description": "Fired when a player stops an input action by releasing a key, button, or other input control.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "string",
							"Name": "action"
						}
					]
				},
				{
					"Name": "inputTypeChangedEvent",
					"Description": "Fired when the active input device has changed to a new type of input.",
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "InputType",
							"Name": "inputType"
						}
					]
				},
				{
					"Name": "pinchStartedEvent",
					"Description": "Fired when the player begins a pinching gesture on a touch input device. `Input.GetPinchValue()` may be polled during the pinch gesture to determine how far the player has pinched.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": []
				},
				{
					"Name": "pinchStoppedEvent",
					"Description": "Fired when the player ends a pinching gesture on a touch input device.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": []
				},
				{
					"Name": "rotateStartedEvent",
					"Description": "Fired when the player begins a rotating gesture on a touch input device. `Input.GetRotateValue()` may be polled during the rotate gesture to determine how far the player has rotated.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": []
				},
				{
					"Name": "rotateStoppedEvent",
					"Description": "Fired when the player ends a rotating gesture on a touch input device.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": []
				},
				{
					"Name": "flickedEvent",
					"Description": "Fired when the player performs a quick flicking gesture on a touch input device. The `angle` parameter indicates the direction of the flick. 0 indicates a flick to the right. Values increase in degrees counter-clockwise, so 90 indicates a flick straight up, 180 indicates a flick to the left, etc.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "number",
							"Name": "angle"
						}
					]
				},
				{
					"Name": "touchStartedEvent",
					"Description": "Fired when the player starts touching the screen on a touch input device. Parameters are the screen location of the touch and a touch index used to distinguish between separate touches on a multitouch device.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Vector2",
							"Name": "location"
						},
						{
							"Type": "integer",
							"Name": "touchIndex"
						}
					]
				},
				{
					"Name": "touchStoppedEvent",
					"Description": "Fired when the player stops touching the screen on a touch input device. Parameters are the screen location from which the touch was released and a touch index used to distinguish between separate touches on a multitouch device.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Vector2",
							"Name": "location"
						},
						{
							"Type": "integer",
							"Name": "touchIndex"
						}
					]
				},
				{
					"Name": "tappedEvent",
					"Description": "Fired when the player taps on a touch input device. Parameters are the screen location of the tap and the touch index with which the tap was performed.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Vector2",
							"Name": "location"
						},
						{
							"Type": "integer",
							"Name": "touchIndex"
						}
					]
				}
			],
			"StaticHooks": [
				{
					"Name": "escapeHook",
					"Description": "Hook called when the local player presses the Escape key. The `parameters` table contains a `boolean` named \"openPauseMenu\", which may be set to `false` to prevent the pause menu from being opened. Players may press `Shift-Esc` to force the pause menu to open without calling this hook.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "table",
							"Name": "parameters"
						}
					]
				},
				{
					"Name": "actionHook",
					"Description": "Hook called each frame with a list of changes in action values since the previous frame. The `actionList` table is an array of tables with the structure {action = \"actionName\", value = `number` or `Vector2`} for each action whose value has changed since the last frame. If no values have changed, `actionList` will be empty, even if there are actions currently being held. Entries in the table can be added, removed, or changed and will affect whether pressed and released events fire. If a non-zero value is changed to zero then `Input.actionReleasedEvent` will fire for that action. If a zero value changes to non-zero then `Input.actionPressedEvent` will fire.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "Player",
							"Name": "player"
						},
						{
							"Type": "table",
							"Name": "actionList"
						}
					]
				}
			]
		},
		{
			"Name": "Leaderboards",
			"Description": "The Leaderboards namespace contains a set of functions for retrieving and updating player leaderboard data. Use the Global Leaderboards tab in the Core Editor to configure leaderboards for your game. Then drag a leaderboard from the Global Leaderboards tab to a `NetReference` custom property for use with the Leaderboards API.",
			"StaticFunctions": [
				{
					"Name": "SubmitPlayerScore",
					"Description": "Submits a new score for the given Player on the specified leaderboard. The `NetReference` parameter should be retrieved from a custom property, assigned from the Global Leaderboards tab in the editor. This score may be ignored if the player already has a better score on this leaderboard. The optional `additionalData` parameter may be used to store a very small amount of data with the player's entry. If provided, this string must be 8 characters or fewer. (More specifically, 8 bytes when encoded as UTF-8.)",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "leaderboardReference"
								},
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "number",
									"Name": "score"
								},
								{
									"Type": "string",
									"Name": "additionalData"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetLeaderboard",
					"Description": "Returns a table containing a list of entries for the specified leaderboard. The `NetReference` parameter should be retrieved from a custom property, assigned from the Global Leaderboards tab in the editor. This returns a copy of the data that has already been retrieved, so calling this function does not incur any additional network cost. If the requested leaderboard type has not been enabled for this leaderboard, an empty table will be returned. Supported leaderboard types include:<br/>`LeaderboardType.GLOBAL`<br/>`LeaderboardType.DAILY`<br/>`LeaderboardType.WEEKLY`<br/>`LeaderboardType.MONTHLY`",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "leaderboardReference"
								},
								{
									"Type": "LeaderboardType",
									"Name": "leaderboardType"
								}
							]
						}
					]
				},
				{
					"Name": "HasLeaderboards",
					"Description": "Returns `true` if any leaderboard data is available. Returns `false` if leaderboards are still being retrieved, or if there is no leaderboard data.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					]
				}
			]
		},
		{
			"Name": "Storage",
			"Description": "The Storage namespace contains a set of functions for handling persistent storage of data. To use the Storage API, you must place a Game Settings object in your game and check the Enable Player Storage property on it.\r\n\r\nCore storage allows a maximum of 32Kb (32768 bytes) of encoded data to be stored. Any data exceeding this limit is not guaranteed to be stored and can potentially cause loss of stored data. Exceeding the limit will cause a warning to be displayed in the event log when in preview mode.\r\n\r\n`Storage.SizeOfData()` can be used to check the size of data (in bytes) before assigning to storage. If size limit has been exceeded consider replacing strings with numbers or using advanced techniques such as bit packing to reduce the size of data stored.",
			"StaticFunctions": [
				{
					"Name": "SizeOfData",
					"Description": "Computes and returns the size required for the given `data` table when stored as Player data.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "integer"
								}
							],
							"Parameters": [
								{
									"Type": "table",
									"Name": "data"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetPlayerData",
					"Description": "Returns the player data associated with `player`. This returns a copy of the data that has already been retrieved for the player, so calling this function does not incur any additional network cost. Changes to the data in the returned table will not be persisted without calling `Storage.SetPlayerData()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "SetPlayerData",
					"Description": "Updates the data associated with `player`. Returns a result code and an error message. See below for supported data types.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "StorageResultCode"
								},
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "table",
									"Name": "data"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetConcurrentPlayerData",
					"Description": "Requests the concurrent player data associated with the specified player. This function may yield until data is available. Returns the data (`nil` if not available), a result code, and an optional error message if an error occurred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								},
								{
									"Type": "StorageResultCode"
								},
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "SetConcurrentPlayerData",
					"Description": "Updates the concurrent player data associated with the specified player. This function retrieves the most recent copy of the player's data, then calls the creator-provided `callback` function with the data table as a parameter. `callback` is expected to return the player's updated data table, which will then be saved. This function yields until the entire process is complete, returning a copy of the player's updated data (`nil` if not available), a result code, and an optional error message if an error occurred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								},
								{
									"Type": "StorageResultCode"
								},
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								},
								{
									"Type": "function",
									"Name": "callback"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetConcurrentSharedPlayerData",
					"Description": "Requests the concurrent player data associated with the specified player and storage key. The storage key must be of type `CONCURRENT_SHARED_PLAYER_STORAGE`. This function may yield until data is available. Returns the data (`nil` if not available), a result code, and an optional error message if an error occurred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								},
								{
									"Type": "StorageResultCode"
								},
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "netReference"
								},
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "SetConcurrentSharedPlayerData",
					"Description": "Updates the concurrent player data associated with the specified player and storage key. The storage key must be of type `CONCURRENT_SHARED_PLAYER_STORAGE`. This function retrieves the most recent copy of the player's data, then calls the creator-provided `callback` function with the data table as a parameter. `callback` is expected to return the player's updated data table, which will then be saved. This function yields until the entire process is complete, returning a copy of the player's updated data (`nil` if not available), a result code, and an optional error message if an error occurred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								},
								{
									"Type": "StorageResultCode"
								},
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "netReference"
								},
								{
									"Type": "string",
									"Name": "playerId"
								},
								{
									"Type": "function",
									"Name": "callback"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetConcurrentCreatorData",
					"Description": "Requests the concurrent data associated with the given storage key. The storage key must be of type `CONCURRENT_CREATOR_STORAGE`. This data is player- and game-agnostic. This function may yield until data is available. Returns the data (`nil` if not available), a result code, and an optional error message if an error occurred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								},
								{
									"Type": "StorageResultCode"
								},
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "netReference"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "SetConcurrentCreatorData",
					"Description": "Updates the concurrent data associated with the given storage key. The storage key must be of type `CONCURRENT_CREATOR_STORAGE`. This data is player- and game-agnostic. This function retrieves the most recent copy of the creator data, then calls the creator-provided `callback` function with the data table as a parameter. `callback` is expected to return the updated data table, which will then be saved. This function yields until the entire process is complete, returning a copy of the updated data (`nil` if not available), a result code, and an optional error message if an error occurred.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								},
								{
									"Type": "StorageResultCode"
								},
								{
									"Type": "string",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "netReference"
								},
								{
									"Type": "function",
									"Name": "callback"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ConnectToConcurrentPlayerDataChanged",
					"Description": "Listens for any changes to the concurrent data associated with `playerId` for this game. Calls to `Storage.SetConcurrentPlayerData()` from this or other game servers will trigger this listener. The listener function parameters should be: `string` player ID, `table` player data. Accepts any number of additional arguments after the listener function, those arguments will be provided, in order, after the `table` argument. Returns an EventListener which can be used to disconnect from the event or check if the event is still connected.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "EventListener"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								},
								{
									"Type": "function",
									"Name": "callback"
								},
								{
									"Name": "argumentList",
									"IsVariadic": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ConnectToConcurrentSharedPlayerDataChanged",
					"Description": "Listens for any changes to the concurrent shared data associated with `playerId` and `concurrentSharedStorageKey`. Calls to `Storage.SetConcurrentSharedPlayerData()` from this or other game servers will trigger this listener. The listener function parameters should be: `NetReference` storage key, `string` player ID, `table` shared player data. Accepts any number of additional arguments after the listener function, those arguments will be provided, in order, after the `table` argument. Returns an EventListener which can be used to disconnect from the event or check if the event is still connected.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "EventListener"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "netReference"
								},
								{
									"Type": "string",
									"Name": "playerId"
								},
								{
									"Type": "function",
									"Name": "callback"
								},
								{
									"Name": "argumentList",
									"IsVariadic": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "ConnectToConcurrentCreatorDataChanged",
					"Description": "Listens for any changes to the concurrent data associated with `concurrentCreatorStorageKey`. Calls to `Storage.SetConcurrentCreatorData()` from this or other game servers will trigger this listener. The listener function parameters should be: `NetReference` storage key, `table` creator data. Accepts any number of additional arguments after the listener function, those arguments will be provided, in order, after the `table` argument. Returns an EventListener which can be used to disconnect from the event or check if the event is still connected.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "EventListener"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "netReference"
								},
								{
									"Type": "function",
									"Name": "callback"
								},
								{
									"Name": "argumentList",
									"IsVariadic": true
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "HasPendingSetConcurrentPlayerData",
					"Description": "Returns `true` if this server has a pending call to `Storage.SetConcurrentPlayerData()` either waiting to be processed or actively running for the specified player ID.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "HasPendingSetConcurrentSharedPlayerData",
					"Description": "Returns `true` if this server has a pending call to `Storage.SetConcurrentSharedPlayerData()` either waiting to be processed or actively running for the specified player ID and shared storage key.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "netReference"
								},
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "HasPendingSetConcurrentCreatorData",
					"Description": "Returns `true` if this server has a pending call to `Storage.SetConcurrentCreatorData()` either waiting to be processed or actively running for the specified creator storage key.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "netReference"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetSharedPlayerData",
					"Description": "Returns the shared player data associated with `player` and `sharedStorageKey`. This returns a copy of the data that has already been retrieved for the player, so calling this function does not incur any additional network cost. Changes to the data in the returned table will not be persisted without calling `Storage.SetSharedPlayerData()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "sharedStorageKey"
								},
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "SetSharedPlayerData",
					"Description": "Updates the shared data associated with `player` and `sharedStorageKey`. Returns a result code and an error message. See below for supported data types.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "StorageResultCode"
								},
								{
									"Type": "string"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "sharedStorageKey"
								},
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "table",
									"Name": "data"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetOfflinePlayerData",
					"Description": "Requests the player data associated with the specified player who is not in the current instance of the game. This function may yield until data is available, and may raise an error if the player ID is invalid or if an error occurs retrieving the information. If the player is in the current instance of the game, `Storage.GetPlayerData()` should be used instead.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetSharedOfflinePlayerData",
					"Description": "Requests the shared player data associated with `sharedStorageKey` and the specified player who is not in the current instance of the game. This function may yield until data is available, and may raise an error if the player ID is invalid or if an error occurs retrieving the information. If the player is in the current instance of the game, `Storage.GetSharedPlayerData()` should be used instead.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": [
								{
									"Type": "NetReference",
									"Name": "sharedStorageKey"
								},
								{
									"Type": "string",
									"Name": "playerId"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				}
			]
		},
		{
			"Name": "Teams",
			"Description": "The Teams namespace contains a set of class functions for dealing with teams and team settings.",
			"StaticFunctions": [
				{
					"Name": "AreTeamsFriendly",
					"Description": "Returns true if teams are considered friendly under the current TeamMode. If either team is TEAM_NEUTRAL=0, returns true.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "team1"
								},
								{
									"Type": "integer",
									"Name": "team2"
								}
							]
						}
					]
				},
				{
					"Name": "AreTeamsEnemies",
					"Description": "Returns true if teams are considered enemies under the current TeamMode. If either team is TEAM_NEUTRAL=0, returns false.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "integer",
									"Name": "team1"
								},
								{
									"Type": "integer",
									"Name": "team2"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "UI",
			"Description": "The UI namespace contains a set of class functions allowing you to get information about a Player's display and push information to their HUD. Most functions require the script to be inside a ClientContext and execute for the local Player.",
			"StaticFunctions": [
				{
					"Name": "GetCoreModalType",
					"Description": "Returns the currently active core modal, or nil if none is active.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreModalType",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "ShowFlyUpText",
					"Description": "Shows a quick text on screen that tracks its position relative to a world position. The last parameter is an optional table containing additional parameters: duration (number) - How long the text should remain on the screen. Default duration is 0.5 seconds; color (Color) - The color of the Text. Default is white; font (string) - Asset ID for the font to use; isBig (boolean) - When true, larger text is used.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "text"
								},
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "ShowDamageDirection",
					"Description": "Local player sees an arrow pointing towards some damage source. Lasts for 5 seconds.",
					"Signatures": [
						{
							"Name": "WithObject",
							"Description": "Local player sees an arrow pointing towards some CoreObject. Multiple calls with the same CoreObject reuse the same UI indicator, but refreshes its duration.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "CoreObject",
									"Name": "sourceObject"
								}
							]
						},
						{
							"Name": "WithPlayer",
							"Description": "Local player sees an arrow pointing towards some other Player. Multiple calls with the same Player reuse the same UI indicator, but refreshes its duration. The arrow points to where the source was at the moment `ShowDamageDirection` is called and does not track the source Player's movements.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "sourcePlayer"
								}
							]
						},
						{
							"Name": "WithPosition",
							"Description": "Local player sees an arrow pointing towards some damage source. Lasts for 5 seconds.",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "sourceWorldPosition"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetScreenPosition",
					"Description": "Calculates the location that worldPosition appears on the screen. Returns a Vector2 with the `x`, `y` coordinates, or `nil` if worldPosition is behind the camera.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "worldPosition"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetScreenSize",
					"Description": "Returns a Vector2 with the size of the Player's screen in the `x`, `y` coordinates. May return `nil` if the screen size cannot be determined.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetSafeArea",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Rectangle"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "PrintToScreen",
					"Description": "Draws a message on the corner of the screen. Second optional Color parameter can change the color from the default white.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "string",
									"Name": "message"
								},
								{
									"Type": "Color",
									"Name": "color",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "GetCursorPosition",
					"Description": "*This function is deprecated. Please use Input.GetCursorPosition() instead.* Returns a Vector2 with the `x`, `y` coordinates of the mouse cursor on the screen. May return `nil` if the cursor position cannot be determined.",
					"IsDeprecated": true,
					"DeprecationMessage": "UI.GetCursorPosition is deprecated. Please use Input.GetCursorPosition instead.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector2",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetCursorHitResult",
					"Description": "*This function is deprecated. Please use UI.GetHitResult() instead.* Return hit result from local client's view in direction of the Projected cursor position. Meant for client-side use only, for Ability cast, please use `ability:GetTargetData():GetHitPosition()`, which would contain cursor hit position at time of cast, when in top-down camera mode.",
					"IsDeprecated": true,
					"DeprecationMessage": "UI.GetCursorHitResult is deprecated. Please use UI.GetHitResult instead.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HitResult",
									"IsOptional": true
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetHitResult",
					"Description": "Return hit result from local client's view from the given screen position cast in the camera direction.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HitResult",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "screenPos"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetCursorPlaneIntersection",
					"Description": "*This function is deprecated. Please use UI.GetPlaneIntersection() instead.* Return intersection from local client's camera direction to given plane, specified by point on plane and optionally its normal. Meant for client-side use only. Example usage: `local hitPos = UI.GetCursorPlaneIntersection(Vector3.New(0, 0, 0))`.",
					"IsDeprecated": true,
					"DeprecationMessage": "UI.GetCursorPlaneIntersection is deprecated. Please use UI.GetPlaneIntersection instead.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "pointOnPlane"
								},
								{
									"Type": "Vector3",
									"Name": "planeNormal"
								}
							]
						},
						{
							"Returns": [
								{
									"Type": "Vector3",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "pointOnPlane"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetPlaneIntersection",
					"Description": "Return intersection from local client's view from the given screen position case in the camera direction to the given plane, specified by point on plane and optionally its normal. Example usage: `local hitPos = UI.GetPlaneIntersection(UI.GetScreenSize()/2, Vector3.ZERO)`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Vector3",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "screenPos"
								},
								{
									"Type": "Vector3",
									"Name": "pointOnPlane"
								},
								{
									"Type": "Vector3",
									"Name": "planeNormal"
								}
							]
						},
						{
							"Returns": [
								{
									"Type": "Vector3",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "screenPos"
								},
								{
									"Type": "Vector3",
									"Name": "pointOnPlane"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsCursorVisible",
					"Description": "Returns whether the cursor is visible.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetCursorVisible",
					"Description": "Sets whether the cursor is visible.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isVisible"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsCursorLockedToViewport",
					"Description": "Returns whether to lock cursor in viewport.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetCursorLockedToViewport",
					"Description": "Sets whether to lock cursor in viewport.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isLocked"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "CanCursorInteractWithUI",
					"Description": "Returns whether the cursor can interact with UI elements like buttons.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetCanCursorInteractWithUI",
					"Description": "Sets whether the cursor can interact with UI elements like buttons.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "canInteract"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsReticleVisible",
					"Description": "Check if reticle is visible.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetReticleVisible",
					"Description": "Shows or hides the reticle for the Player.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isVisible"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetRewardsDialogVisible",
					"Description": "Sets whether the rewards dialog is visible, and optionally which tab is active.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isVisible"
								},
								{
									"Type": "RewardsDialogTab",
									"Name": "currentTab",
									"IsOptional": true
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsRewardsDialogVisible",
					"Description": "Returns whether the rewards dialog is currently visible.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetSocialMenuEnabled",
					"Description": "Sets whether the social menu is enabled.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isEnabled"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsSocialMenuEnabled",
					"Description": "Returns whether the social menu is enabled.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "IsVoiceChatWidgetVisible",
					"Description": "Returns whether the voice chat widget is currently visible. Note that this may return `true` when the voice chat widget is not currently displaying anything on the screen.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "SetVoiceChatWidgetVisible",
					"Description": "Sets whether the voice chat widget is currently visible.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "boolean",
									"Name": "isVisible"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "FindControlAtPosition",
					"Description": "Looks for a hittable UI control at the given screen position. Returns the top-most control if found. Returns `nil` if no hittable control was found at the specified position.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "UIControl"
								}
							],
							"Parameters": [
								{
									"Type": "Vector2",
									"Name": "Position"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				}
			],
			"StaticEvents": [
				{
					"Name": "coreModalChangedEvent",
					"Description": "Fired when the local player pauses the game or opens one of the built-in modal dialogs, such as the emote or mount picker. The modal parameter will be `nil` when the player has closed all built-in modals.",
					"Tags": [
						"ClientOnly"
					],
					"Parameters": [
						{
							"Type": "CoreModalType",
							"Name": "modalType",
							"IsOptional": true
						}
					]
				}
			]
		},
		{
			"Name": "VoiceChat",
			"Description": "The VoiceChat namespace contains functions for controlling voice chat in a game.",
			"StaticFunctions": [
				{
					"Name": "GetVoiceChatMode",
					"Description": "Returns the current voice chat mode.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "VoiceChatMode"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "SetVoiceChatMode",
					"Description": "Enables or disables voice chat in the current game.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "VoiceChatMode",
									"Name": "voiceChatMode"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "GetChannel",
					"Description": "Returns the channel with the given name, or `nil` if no such channel exists.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "VoiceChatChannel",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "channelName"
								}
							]
						}
					]
				},
				{
					"Name": "GetChannels",
					"Description": "Returns a list of voice chat channels.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<VoiceChatChannel>"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "GetChannelsForPlayer",
					"Description": "Returns a list of voice chat channels that the given player is in.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<VoiceChatChannel>"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					]
				},
				{
					"Name": "IsPlayerInChannel",
					"Description": "Returns `true` if the given player is in the specified channel, otherwise returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "string",
									"Name": "channelName"
								}
							]
						}
					]
				},
				{
					"Name": "MutePlayerInChannel",
					"Description": "Mutes the given player in the specified channel.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "string",
									"Name": "channelName"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "UnmutePlayerInChannel",
					"Description": "Unmutes the given player in the specified channel.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "string",
									"Name": "channelName"
								}
							]
						}
					],
					"Tags": [
						"ServerOnly"
					]
				},
				{
					"Name": "IsPlayerMutedInChannel",
					"Description": "Returns `true` if the given player is muted in the specified channel, otherwise returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								},
								{
									"Type": "string",
									"Name": "channelName"
								}
							]
						}
					]
				},
				{
					"Name": "IsPlayerSpeaking",
					"Description": "Returns true if the given player is currently speaking in the game channel.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "GetPlayerSpeakingVolume",
					"Description": "Returns a value from 0.0 to 1.0 to indicate how loudly the given player is speaking.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "number"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					],
					"Tags": [
						"ClientOnly"
					]
				},
				{
					"Name": "HasMicrophone",
					"Description": "Returns `true` if Core has detected a microphone for the given player, otherwise returns `false`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					]
				},
				{
					"Name": "IsVoiceChatEnabled",
					"Description": "Returns `true` if the given player has enabled voice chat in their settings.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "Player",
									"Name": "player"
								}
							]
						}
					]
				},
				{
					"Name": "GetVoiceChatMethod",
					"Description": "Returns the method the local player has selected in their settings to activate voice chat.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "VoiceChatMethod"
								}
							],
							"Parameters": []
						}
					],
					"Tags": [
						"ClientOnly"
					]
				}
			]
		},
		{
			"Name": "World",
			"Description": "World is a collection of functions for finding objects in the world.",
			"StaticFunctions": [
				{
					"Name": "GetRootObject",
					"Description": "Returns the root of the CoreObject hierarchy.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": []
						}
					]
				},
				{
					"Name": "FindObjectById",
					"Description": "Returns the object with a given MUID. Returns nil if no object has this ID.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "id"
								}
							]
						}
					]
				},
				{
					"Name": "FindObjectByName",
					"Description": "Returns the first object found with a matching name. In none match, nil is returned.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								}
							]
						}
					]
				},
				{
					"Name": "FindObjectsByName",
					"Description": "Returns a table containing all the objects in the hierarchy with a matching name. If none match, an empty table is returned.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreObject>"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "name"
								}
							]
						}
					]
				},
				{
					"Name": "FindObjectsByType",
					"Description": "Returns a table containing all the objects in the hierarchy whose type is or extends the specified type. If none match, an empty table is returned.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<CoreObject>"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "typeName"
								}
							]
						}
					]
				},
				{
					"Name": "SpawnAsset",
					"Description": "Spawns an instance of an asset into the world. Optional parameters can specify a parent, transform, or other properties of the spawned object. Note that when spawning a template, most optional parameters apply only to the root object of the spawned template. <br/>Supported parameters include: <br/>`parent (CoreObject)`: If provided, the spawned asset will be a child of this parent, and any Transform parameters are relative to the parent's Transform. <br/>`position (Vector3)`: Position of the spawned object. <br/>`rotation (Rotation or Quaternion)`: Rotation of the spawned object. <br/>`scale (Vector3 or number)`: Scale of the spawned object, may be specified as a `Vector3` or as a `number` for uniform scale. <br/>`transform (Transform)`: The full transform of the spawned object. If `transform` is specified, it is an error to also specify `position`, `rotation`, or `scale`. <br/>`networkContext` ([NetworkContextType](../api/enums#networkcontexttype)): Overrides the network context of the spawned object. This may be used, for example, to spawn networked or static objects from a server only context, or client-only objects from a client script running in a static context, but it cannot spawn client only objects from a server script or networked objects from a client script. If an invalid context is specified, an error will be raised. <br/>`name (string)`: Set the name of the spawned object. <br/>`team (integer)`: Set the team on the spawned object. <br/>`lifeSpan (number)`: Set the life span of the spawned object. <br/>`collision (Collision)`: Set the collision of the spawned object. <br/>`visibility (Visibility)`: Set the visibility of the spawned object. <br/>`cameraCollision (Collision)`: Set the camera collision of the spawned object. <br/>`color (Color)`: Set the color of the spawned object.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "CoreObject"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "assetId"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "Raycast",
					"Description": "Traces a ray from `startPosition` to `endPosition`, returning a `HitResult` with data about the impact point and object. Returns `nil` if no intersection is found. Note that if a raycast starts inside an object, that object will not be returned by the raycast. <br /> Optional parameters can be provided to control the results of the Raycast:<br/>`ignoreTeams (integer or Array<integer>)`: Don't return any players belonging to the team or teams listed. <br/>`ignorePlayers (Player, Array<Player>, or boolean)`: Ignore any of the players listed. If `true`, ignore all players. <br/>`checkObjects (Object, Array<Object>)`: Only return results that are contained in this list. <br/>`ignoreObjects (Object, Array<Object>)`: Ignore results that are contained in this list. <br/>`useCameraCollision (boolean)`: If `true`, results are found based on objects' camera collision property rather than their game collision. <br/>`shouldDebugRender (boolean)`: If `true`, enables visualization of the raycast in world space for debugging. <br/>`debugRenderDuration (number)`: Number of seconds for which debug rendering should remain on screen. Defaults to 1 second. <br/>`debugRenderThickness (number)`: The thickness of lines drawn for debug rendering. Defaults to 1. <br/>`debugRenderColor (Color)`: Overrides the color of lines drawn for debug rendering. If not specified, multiple colors may be used to indicate where results were hit.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HitResult",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "endPosition"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "RaycastAll",
					"Description": "Traces a ray from `startPosition` to `endPosition`, returning a list of `HitResult` instances with data about all objects found along the ray. Returns an empty table if no intersection is found. Note that if a raycast starts inside an object, that object will not be returned by the raycast. Optional parameters can be provided to control the results of the raycast using the same parameters supported by `World.Raycast()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<HitResult>"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "endPosition"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "Spherecast",
					"Description": "Traces a sphere with the specified radius from `startPosition` to `endPosition`, returning a `HitResult` with data about the first object hit along the way. Returns `nil` if no intersection is found. Note that a sphere cast starting entirely inside an object with complex collision may not return that object. Optional parameters can be provided to control the results of the sphere cast using the same parameters supported by `World.Raycast()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HitResult",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "endPosition"
								},
								{
									"Type": "number",
									"Name": "radius"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "SpherecastAll",
					"Description": "Traces a sphere with the specified radius from `startPosition` to `endPosition`, returning a list of `HitResult` instances with data about all objects found along the path of the sphere. Returns an empty table if no intersection is found. Note that a sphere cast starting entirely inside an object with complex collision may not return that object. Optional parameters can be provided to control the results of the sphere cast using the same parameters supported by `World.Raycast()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<HitResult>"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "endPosition"
								},
								{
									"Type": "number",
									"Name": "radius"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "Boxcast",
					"Description": "Traces a box with the specified size from `startPosition` to `endPosition`, returning a `HitResult` with data about the first object hit along the way. Returns `nil` if no intersection is found. Note that a box cast starting entirely inside an object with complex collision may not return that object. Optional parameters can be provided to control the results of the box cast using the same parameters supported by `World.Raycast()`, as well as the following additional parameters: <br/>`shapeRotation (Rotation)`: Rotation of the box shape being cast. Defaults to (0, 0, 0). <br/>`isWorldShapeRotation (boolean)`: If `true`, the `shapeRotation` parameter specifies a rotation in world space, or if no `shapeRotation` is provided, the box will be axis-aligned. Defaults to `false`, meaning the rotation of the box is relative to the direction in which it is being cast.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "HitResult",
									"IsOptional": true
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "endPosition"
								},
								{
									"Type": "Vector3",
									"Name": "boxSize"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "BoxcastAll",
					"Description": "Traces a box with the specified size from `startPosition` to `endPosition`, returning a list of `HitResult` instances with data about all objects found along the path of the box. Returns an empty table if no intersection is found. Note that a box cast starting entirely inside an object with complex collision may not return that object. Optional parameters can be provided to control the results of the box cast using the same parameters supported by `World.Raycast()` and `World.Boxcast()`.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<HitResult>"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "startPosition"
								},
								{
									"Type": "Vector3",
									"Name": "endPosition"
								},
								{
									"Type": "Vector3",
									"Name": "boxSize"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "FindObjectsOverlappingSphere",
					"Description": "Returns all objects found overlapping or within a sphere with the specified position and radius. Optional parameters can be provided to control the results of the search:<br/>`ignoreTeams (integer or Array<integer>)`: Don't return any players belonging to the team or teams listed. <br/>`ignorePlayers (Player, Array<Player>, or boolean)`: Ignore any of the players listed. If `true`, ignore all players. <br/>`checkObjects (Object, Array<Object>)`: Only return results that are contained in this list. <br/>`ignoreObjects (Object, Array<Object>)`: Ignore results that are contained in this list. <br/>`useCameraCollision (boolean)`: If `true`, results are found based on objects' camera collision property rather than their game collision.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Object>"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "position"
								},
								{
									"Type": "number",
									"Name": "radius"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				},
				{
					"Name": "FindObjectsOverlappingBox",
					"Description": "Returns all objects found overlapping or within a box with the specified position and size. Optional parameters can be provided to control the results of the search using the same parameters as `World.FindObjectsOverlappingSphere()`, as well as the following:<br/>`shapeRotation (Rotation)`: Rotation of the box shape being checked. Defaults to (0, 0, 0).",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "Array<Object>"
								}
							],
							"Parameters": [
								{
									"Type": "Vector3",
									"Name": "position"
								},
								{
									"Type": "Vector3",
									"Name": "boxSize"
								},
								{
									"Type": "table",
									"Name": "optionalParameters",
									"IsOptional": true
								}
							]
						}
					]
				}
			]
		}
	],
	"Enums": [
		{
			"Name": "AbilityFacingMode",
			"Description": "Used with `AbilityPhaseSettings` to control how and if a player rotates while executing an ability.",
			"Values": [
				{
					"Name": "NONE",
					"Description": "Player is not rotated when the ability changes phases.",
					"Value": 0
				},
				{
					"Name": "MOVEMENT",
					"Description": "Player is rotated to face the direction in which they are moving.",
					"Value": 1
				},
				{
					"Name": "AIM",
					"Description": "Player is rotated to face the direction in which they are aiming.",
					"Value": 2
				}
			]
		},
		{
			"Name": "AbilityPhase",
			"Description": "Describes a phase of ability execution.",
			"Values": [
				{
					"Name": "READY",
					"Description": "The ability is ready to be used but is not currently in use.",
					"Value": 0
				},
				{
					"Name": "CAST",
					"Description": "The ability is preparing to execute.",
					"Value": 1
				},
				{
					"Name": "EXECUTE",
					"Description": "The ability is executing.",
					"Value": 2
				},
				{
					"Name": "RECOVERY",
					"Description": "The ability has finished executing, but has not yet entered cooldown.",
					"Value": 3
				},
				{
					"Name": "COOLDOWN",
					"Description": "The ability is not currently ready to use.",
					"Value": 4
				}
			]
		},
		{
			"Name": "BroadcastEventResultCode",
			"Description": "Status code returned by functions in the `Events` namespace when broadcasting networked events.",
			"Values": [
				{
					"Name": "SUCCESS",
					"Description": "The event was successfully broadcast.",
					"Value": 0
				},
				{
					"Name": "FAILURE",
					"Description": "Some error prevented the event from being broadcast.",
					"Value": 1
				},
				{
					"Name": "EXCEEDED_SIZE_LIMIT",
					"Description": "The event was not broadcast because the parameter data provided was too large.",
					"Value": 2
				},
				{
					"Name": "EXCEEDED_RATE_WARNING_LIMIT",
					"Description": "The event was successfully broadcast, but the current rate of events is approaching the allowed limit.",
					"Value": 3
				},
				{
					"Name": "EXCEEDED_RATE_LIMIT",
					"Description": "The event was not broadcast because too many events have been broadcast too quickly.",
					"Value": 4
				}
			]
		},
		{
			"Name": "BroadcastMessageResultCode",
			"Description": "Status code returned by functions in the `Chat` namespace when sending chat messages.",
			"Values": [
				{
					"Name": "SUCCESS",
					"Description": "The message was successfully sent.",
					"Value": 0
				},
				{
					"Name": "FAILURE",
					"Description": "Some error prevented the message from being sent.",
					"Value": 1
				},
				{
					"Name": "EXCEEDED_SIZE_LIMIT",
					"Description": "The message was too long. It was still sent, but may have been truncated.",
					"Value": 2
				},
				{
					"Name": "EXCEEDED_RATE_WARNING_LIMIT",
					"Description": "The message was sent, but the current rate of chat messages is approaching the allowed limit.",
					"Value": 3
				},
				{
					"Name": "EXCEEDED_RATE_LIMIT",
					"Description": "The message was not sent because too many messages have been sent too quickly.",
					"Value": 4
				}
			]
		},
		{
			"Name": "CameraCaptureResolution",
			"Description": "Indicates the resolution of a camera capture render target.",
			"Values": [
				{
					"Name": "VERY_SMALL",
					"Description": "64x64",
					"Value": 0
				},
				{
					"Name": "SMALL",
					"Description": "128x128",
					"Value": 1
				},
				{
					"Name": "MEDIUM",
					"Description": "256x256",
					"Value": 2
				},
				{
					"Name": "LARGE",
					"Description": "512x512",
					"Value": 3
				},
				{
					"Name": "VERY_LARGE",
					"Description": "1024x1024",
					"Value": 4
				}
			]
		},
		{
			"Name": "Collision",
			"Description": "Controls collision of a `CoreObject`.",
			"Values": [
				{
					"Name": "INHERIT",
					"Description": "Object collision is enabled if its parent has collision, or if it has no parent.",
					"Value": 0
				},
				{
					"Name": "FORCE_ON",
					"Description": "Object collision is enabled, regardless of parent state.",
					"Value": 1
				},
				{
					"Name": "FORCE_OFF",
					"Description": "Object collision is disabled, regardless of parent state.",
					"Value": 2
				}
			]
		},
		{
			"Name": "CoreGameEventState",
			"Description": "Indicates the status of a CoreGameEvent.",
			"Values": [
				{
					"Name": "ACTIVE",
					"Description": "The event is currently active.",
					"Value": 1
				},
				{
					"Name": "SCHEDULED",
					"Description": "The event is scheduled to begin in the future.",
					"Value": 0
				},
				{
					"Name": "CANCELED",
					"Description": "The event has been canceled and will not run.",
					"Value": 2
				}
			]
		},
		{
			"Name": "CoreModalType",
			"Description": "Identifies the type of a Core built-in modal dialog.",
			"Values": [
				{
					"Name": "PAUSE_MENU",
					"Description": "The pause menu opened by pressing the Escape key. This value may also be used for some other minor modal dialogs.",
					"Value": 1
				},
				{
					"Name": "CHARACTER_PICKER",
					"Description": "The modal popup in which the player selects one of their characters.",
					"Value": 2
				},
				{
					"Name": "MOUNT_PICKER",
					"Description": "The modal dialog in which the player selects which of their mounts to use.",
					"Value": 3
				},
				{
					"Name": "EMOTE_PICKER",
					"Description": "The modal dialog in which the player selects an emote to play.",
					"Value": 4
				},
				{
					"Name": "SOCIAL_MENU",
					"Description": "The dialog opened when inspecting another player.",
					"Value": 6
				}
			]
		},
		{
			"Name": "CurveExtrapolation",
			"Description": "Specifies how curve values are extrapolated outside the beginning and end of a curve.",
			"Values": [
				{
					"Name": "CYCLE",
					"Description": "Repeats the curve in a cycle.",
					"Value": 0
				},
				{
					"Name": "CYCLE_WITH_OFFSET",
					"Description": "Repeats the curve in a cycle with an offset relative to the first or last key's value.",
					"Value": 1
				},
				{
					"Name": "OSCILLATE",
					"Description": "Extrapolates a sinusoidal curve.",
					"Value": 2
				},
				{
					"Name": "LINEAR",
					"Description": "Curves follow a linearly increasing or decreasing value before and after the ends of the curve.",
					"Value": 3
				},
				{
					"Name": "CONSTANT",
					"Description": "Values remain constant, using the first key value before the beginning of the curve and the last key value after the end of the curve.",
					"Value": 4
				}
			]
		},
		{
			"Name": "CurveInterpolation",
			"Description": "Specifies how curve values are interpolated between curve keys.",
			"Values": [
				{
					"Name": "LINEAR",
					"Description": "Uses linear interpolation, with the value moving in a straight line from one key to the next.",
					"Value": 0
				},
				{
					"Name": "CONSTANT",
					"Description": "Uses a constant value, resulting in stepped changes from one key to the next.",
					"Value": 1
				},
				{
					"Name": "CUBIC",
					"Description": "Uses cubic interpolation to generate a smooth curve.",
					"Value": 2
				}
			]
		},
		{
			"Name": "DamageReason",
			"Description": "Indicates the reason a player is taking damage.",
			"Values": [
				{
					"Name": "UNKNOWN",
					"Description": "Unknown damage type.",
					"Value": 0
				},
				{
					"Name": "COMBAT",
					"Description": "Player is taking damage from an enemy player.",
					"Value": 1
				},
				{
					"Name": "FRIENDLY_FIRE",
					"Description": "Player is taking damage from an ally player.",
					"Value": 2
				},
				{
					"Name": "MAP",
					"Description": "Player is taking damage from the environment.",
					"Value": 3
				},
				{
					"Name": "NPC",
					"Description": "Player is taking damage from a non-player character.",
					"Value": 4
				}
			]
		},
		{
			"Name": "DetailLevel",
			"Description": "Indicates the desired detail level selected by the player in the Settings menu.",
			"Values": [
				{
					"Name": "LOW",
					"Description": "Low.",
					"Value": 0
				},
				{
					"Name": "MEDIUM",
					"Description": "Medium.",
					"Value": 1
				},
				{
					"Name": "HIGH",
					"Description": "High.",
					"Value": 2
				},
				{
					"Name": "ULTRA",
					"Description": "Ultra, the highest detail level.",
					"Value": 3
				}
			]
		},
		{
			"Name": "FacingMode",
			"Description": "Describes how the player character determines which direction it should face.",
			"Values": [
				{
					"Name": "FACE_AIM_WHEN_ACTIVE",
					"Description": "Player will face the direction of their aim while moving.",
					"Value": 0
				},
				{
					"Name": "FACE_AIM_ALWAYS",
					"Description": "Player always faces the direction of their aim.",
					"Value": 1
				},
				{
					"Name": "FACE_MOVEMENT",
					"Description": "Player faces the direction of their movement.",
					"Value": 2
				}
			]
		},
		{
			"Name": "IKAnchorType",
			"Description": "Which bone this IKAnchor applies to.",
			"Values": [
				{
					"Name": "LEFT_HAND",
					"Description": "The left hand.",
					"Value": 0
				},
				{
					"Name": "RIGHT_HAND",
					"Description": "The right hand.",
					"Value": 1
				},
				{
					"Name": "PELVIS",
					"Description": "The pelvis.",
					"Value": 2
				},
				{
					"Name": "LEFT_FOOT",
					"Description": "The left foot.",
					"Value": 3
				},
				{
					"Name": "RIGHT_FOOT",
					"Description": "The right foot.",
					"Value": 4
				}
			]
		},
		{
			"Name": "ImageTileType",
			"Description": "How a UI Texture is tiled or stretched.",
			"Values": [
				{
					"Name": "NONE",
					"Description": "The texture is stretched to the size of the container.",
					"Value": 0
				},
				{
					"Name": "HORIZONTAL",
					"Description": "The texture is tiled horizontally and stretched vertically.",
					"Value": 1
				},
				{
					"Name": "VERTICAL",
					"Description": "The texture is tiled vertically and stretched horizontally.",
					"Value": 2
				},
				{
					"Name": "BOTH",
					"Description": "The texture is tiled along both axes.",
					"Value": 3
				}
			]
		},
		{
			"Name": "InputType",
			"Description": "Specifies a type or method of user input.",
			"Values": [
				{
					"Name": "KEYBOARD_AND_MOUSE",
					"Description": "Input from a keyboard and mouse.",
					"Value": 0
				},
				{
					"Name": "CONTROLLER",
					"Description": "Input from a game controller.",
					"Value": 1
				},
				{
					"Name": "TOUCH",
					"Description": "Input from a touch screen.",
					"Value": 2
				}
			]
		},
		{
			"Name": "LeaderboardType",
			"Description": "Identifies a specific leaderboard type associated with a leaderboard key.",
			"Values": [
				{
					"Name": "GLOBAL",
					"Description": "Global all-time leaderboard.",
					"Value": 0
				},
				{
					"Name": "DAILY",
					"Description": "Daily leaderboard that resets every 24 hours.",
					"Value": 1
				},
				{
					"Name": "WEEKLY",
					"Description": "Weekly leaderboard that resets every 7 days.",
					"Value": 2
				},
				{
					"Name": "MONTHLY",
					"Description": "Weekly leaderboard that resets at the beginning of each month.",
					"Value": 3
				}
			]
		},
		{
			"Name": "LookControlMode",
			"Description": "Defines how player input controls the player's look direction.",
			"Values": [
				{
					"Name": "NONE",
					"Description": "Look input is ignored.",
					"Value": 0
				},
				{
					"Name": "RELATIVE",
					"Description": "Look input controls the current look direction.",
					"Value": 1
				},
				{
					"Name": "LOOK_AT_CURSOR",
					"Description": "Look input is ignored. The player's look direction is determined by drawing a line from the player to the cursor on the Cursor Plane.",
					"Value": 2
				}
			]
		},
		{
			"Name": "MovementControlMode",
			"Description": "Defines how player input controls the player's movement direction.",
			"Values": [
				{
					"Name": "NONE",
					"Description": "Movement input is ignored.",
					"Value": 0
				},
				{
					"Name": "LOOK_RELATIVE",
					"Description": "Forward movement follows the current player's look direction.",
					"Value": 1
				},
				{
					"Name": "VIEW_RELATIVE",
					"Description": "Forward movement follows the current view's look direction.",
					"Value": 2
				},
				{
					"Name": "FACING_RELATIVE",
					"Description": "Forward movement follows the current player's facing direction.",
					"Value": 3
				},
				{
					"Name": "FIXED_AXES",
					"Description": "Movement axis are fixed.",
					"Value": 4
				}
			]
		},
		{
			"Name": "MovementMode",
			"Description": "Describes how the player character is currently moving.",
			"Values": [
				{
					"Name": "NONE",
					"Description": "Movement is disabled.",
					"Value": 0
				},
				{
					"Name": "WALKING",
					"Description": "Player is standing or walking.",
					"Value": 1
				},
				{
					"Name": "FALLING",
					"Description": "Player is jumping or falling.",
					"Value": 3
				},
				{
					"Name": "SWIMMING",
					"Description": "Player is swimming.",
					"Value": 4
				},
				{
					"Name": "FLYING",
					"Description": "Player is flying.",
					"Value": 5
				}
			]
		},
		{
			"Name": "NetReferenceType",
			"Description": "Indicates the specific type of a `NetReference`.",
			"Values": [
				{
					"Name": "LEADERBOARD",
					"Description": "Leaderboard key.",
					"Value": 1
				},
				{
					"Name": "SHARED_STORAGE",
					"Description": "Player shared storage key. *Note: `NetReferenceType.SHARED_STORAGE` is deprecated. Please use `NetReferenceType.SHARED_PLAYER_STORAGE` instead.*",
					"IsDeprecated": true,
					"DeprecationMessage": "NetReferenceType.SHARED_STORAGE has been renamed to SHARED_PLAYER_STORAGE. SHARED_STORAGE will be removed in a future release.",
					"Value": 2
				},
				{
					"Name": "SHARED_PLAYER_STORAGE",
					"Description": "Shared player storage key.",
					"Value": 2
				},
				{
					"Name": "CONCURRENT_SHARED_PLAYER_STORAGE",
					"Description": "Concurrent shared player storage key.",
					"Value": 4
				},
				{
					"Name": "CONCURRENT_CREATOR_STORAGE",
					"Description": "Concurrent creator storage key.",
					"Value": 5
				},
				{
					"Name": "CREATOR_PERK",
					"Description": "Creator perk.",
					"Value": 3
				},
				{
					"Name": "UNKNOWN",
					"Description": "Unknown `NetReference`.",
					"Value": 0
				}
			]
		},
		{
			"Name": "NetworkContextType",
			"Description": "Indicates the network context to use when spawning an object.",
			"Values": [
				{
					"Name": "NETWORKED",
					"Description": "Spawned on the server and replicated to clients.",
					"Value": 2
				},
				{
					"Name": "CLIENT_CONTEXT",
					"Description": "Spawned on the client only.",
					"Value": 3
				},
				{
					"Name": "SERVER_CONTEXT",
					"Description": "Spawned on the server only.",
					"Value": 4
				},
				{
					"Name": "STATIC_CONTEXT",
					"Description": "Spawned independently on client or server and not replicated.",
					"Value": 5
				},
				{
					"Name": "LOCAL_CONTEXT",
					"Description": "Spawned independently on client or server and not replicated, but allowing properties to be modified after spawning.",
					"Value": 6
				}
			]
		},
		{
			"Name": "Orientation",
			"Description": "Determines the orientation of a `UIScrollPanel`.",
			"Values": [
				{
					"Name": "HORIZONTAL",
					"Description": "Scrolls horizontally.",
					"Value": 0
				},
				{
					"Name": "VERTICAL",
					"Description": "Scrolls vertically.",
					"Value": 1
				}
			]
		},
		{
			"Name": "PlayerTransferReason",
			"Description": "Indicates how a player joined or left a game.",
			"Values": [
				{
					"Name": "UNKNOWN",
					"Description": "Player left or joined for an unknown reason, or has opted out of sharing this information.",
					"Value": 0
				},
				{
					"Name": "CHARACTER",
					"Description": "Player left to manage their character avatar.",
					"Value": 1
				},
				{
					"Name": "CREATE",
					"Description": "Player left to create games.",
					"Value": 2
				},
				{
					"Name": "SHOP",
					"Description": "Player left to browse the shop.",
					"Value": 3
				},
				{
					"Name": "BROWSE",
					"Description": "Player browsed to a game in the main menu or via the website.",
					"Value": 4
				},
				{
					"Name": "SOCIAL",
					"Description": "Player joined a friend in a game via the social panel.",
					"Value": 5
				},
				{
					"Name": "PORTAL",
					"Description": "Player used a portal from one game to another (or otherwise made use of the `TransferToGame()` function.)",
					"Value": 6
				},
				{
					"Name": "AFK",
					"Description": "Player was disconnected for being AFK.",
					"Value": 7
				},
				{
					"Name": "EXIT",
					"Description": "Player exited Core. Core was sad.",
					"Value": 8
				},
				{
					"Name": "PORTAL_SCENE",
					"Description": "Player used a portal from one scene to another (or otherwise made use of the `TransferToScene()` function.)",
					"Value": 9
				}
			]
		},
		{
			"Name": "PrivateNetworkedDataResultCode",
			"Description": "Status code returned when setting private player data.",
			"Values": [
				{
					"Name": "SUCCESS",
					"Description": "The operation succeeded.",
					"Value": 0
				},
				{
					"Name": "FAILURE",
					"Description": "An error occurred.",
					"Value": 1
				},
				{
					"Name": "EXCEEDED_SIZE_LIMIT",
					"Description": "The value is too large and was not stored.",
					"Value": 2
				}
			]
		},
		{
			"Name": "ProgressBarFillType",
			"Description": "Controls the direction in which the progress bar fills.",
			"Values": [
				{
					"Name": "LEFT_TO_RIGHT",
					"Description": "Progress bar fills from left to right.",
					"Value": 0
				},
				{
					"Name": "RIGHT_TO_LEFT",
					"Description": "Progress bar fills from right to left.",
					"Value": 1
				},
				{
					"Name": "TOP_TO_BOTTOM",
					"Description": "Progress bar fills from top to bottom.",
					"Value": 3
				},
				{
					"Name": "BOTTOM_TO_TOP",
					"Description": "Progress bar fills from bottom to top.",
					"Value": 4
				},
				{
					"Name": "FROM_CENTER",
					"Description": "Progress bar fills from the center outward.",
					"Value": 2
				}
			]
		},
		{
			"Name": "RespawnMode",
			"Description": "Specifies whether a player respawns automatically, and how a start point is selected when they spawn.",
			"Values": [
				{
					"Name": "NONE",
					"Description": "Player does not respawn automatically.",
					"Value": 0
				},
				{
					"Name": "IN_PLACE",
					"Description": "Respawns the player at the same location and rotation as when they died.",
					"Value": 1
				},
				{
					"Name": "ROUND_ROBIN",
					"Description": "Selects start points in a repeating sequential pattern.",
					"Value": 2
				},
				{
					"Name": "AT_CLOSEST_SPAWN_POINT",
					"Description": "Respawns the player at the start point closest to the location the player died.",
					"Value": 3
				},
				{
					"Name": "FARTHEST_FROM_OTHER_PLAYERS",
					"Description": "Respawns the player at the start point farthest from any other player.",
					"Value": 4
				},
				{
					"Name": "FARTHEST_FROM_ENEMY",
					"Description": "Respawns the player at the start point farthest from an enemy player.",
					"Value": 5
				},
				{
					"Name": "RANDOM",
					"Description": "Respawns the player at a random start point.",
					"Value": 6
				}
			]
		},
		{
			"Name": "RewardsDialogTab",
			"Description": "Specifies a tab on the rewards dialog window.",
			"Values": [
				{
					"Name": "QUESTS",
					"Description": "The quests tab.",
					"Value": 1
				},
				{
					"Name": "GAMES",
					"Description": "The games tab.",
					"Value": 2
				}
			]
		},
		{
			"Name": "RotationMode",
			"Description": "Camera rotation mode.",
			"Values": [
				{
					"Name": "CAMERA",
					"Description": "Default, uses the rotation of the active `Camera` object.",
					"Value": 0
				},
				{
					"Name": "NONE",
					"Description": "Camera does not rotate.",
					"Value": 1
				},
				{
					"Name": "LOOK_ANGLE",
					"Description": "Camera rotates based on player's look direction.",
					"Value": 2
				}
			]
		},
		{
			"Name": "SpawnMode",
			"Description": "Specifies how a start point is selected when a player spawns.",
			"Values": [
				{
					"Name": "RANDOM",
					"Description": "Spawns the player at a random start point.",
					"Value": 0
				},
				{
					"Name": "ROUND_ROBIN",
					"Description": "Selects start points in a repeating sequential pattern.",
					"Value": 1
				},
				{
					"Name": "FARTHEST_FROM_OTHER_PLAYERS",
					"Description": "Spawns the player at the start point farthest from any other player.",
					"Value": 2
				},
				{
					"Name": "FARTHEST_FROM_ENEMY",
					"Description": "Spawns the player at the start point farthest from an enemy player.",
					"Value": 3
				}
			]
		},
		{
			"Name": "StorageResultCode",
			"Description": "Status code returned by calls to update a player's storage data.",
			"Values": [
				{
					"Name": "SUCCESS",
					"Description": "Data was successfully saved.",
					"Value": 0
				},
				{
					"Name": "FAILURE",
					"Description": "An error occurred saving the player's data.",
					"Value": 2
				},
				{
					"Name": "STORAGE_DISABLED",
					"Description": "Player Storage is disabled in the game's settings.",
					"Value": 1
				},
				{
					"Name": "EXCEEDED_SIZE_LIMIT",
					"Description": "The provided data is too large and could not be saved.",
					"Value": 3
				},
				{
					"Name": "REQUEST_ALREADY_QUEUED",
					"Description": "A request was made to set creator or player data while a request was already in progress to update that same data.",
					"Value": 4
				}
			]
		},
		{
			"Name": "TaskStatus",
			"Description": "Indicates the status of a script `Task`.",
			"Values": [
				{
					"Name": "UNINITIALIZED",
					"Description": "Indicates the `Task` reference is invalid or the task has been destroyed.",
					"Value": 0
				},
				{
					"Name": "SCHEDULED",
					"Description": "The task is scheduled to run at some point in the future.",
					"Value": 1
				},
				{
					"Name": "RUNNING",
					"Description": "The task is in the process of executing. Note that multiple tasks may be in this state, for example if an executing task triggers an event with connected listeners, that task will still be considered \"running\" while the event listeners execute.",
					"Value": 2
				},
				{
					"Name": "COMPLETED",
					"Description": "The task has successfully finished executing.",
					"Value": 3
				},
				{
					"Name": "YIELDED",
					"Description": "The task has yielded through an explicit call to `coroutine.yield()`. Tasks in this state are no longer managed by Core's Script Runtime and must be resumed manually.",
					"Value": 4
				},
				{
					"Name": "FAILED",
					"Description": "An error occurred while executing the task.",
					"Value": 5
				},
				{
					"Name": "CANCELED",
					"Description": "The task was canceled, either by a call to `Task.Cancel()` or because its script was destroyed.",
					"Value": 6
				},
				{
					"Name": "BLOCKED",
					"Description": "The task is waiting for an operation to complete before resuming execution. Examples include a call to `CoreObjectReference:WaitForObject()`, `CorePlatform.GetGameInfo()`, etc.",
					"Value": 7
				}
			]
		},
		{
			"Name": "TextJustify",
			"Description": "Indicates horizontal alignment of a `UIText` element.",
			"Values": [
				{
					"Name": "LEFT",
					"Description": "Left-aligned.",
					"Value": 0
				},
				{
					"Name": "CENTER",
					"Description": "Centered.",
					"Value": 1
				},
				{
					"Name": "RIGHT",
					"Description": "Right-aligned.",
					"Value": 2
				}
			]
		},
		{
			"Name": "UIPivot",
			"Description": "Specifies the pivot point of a `UIControl`.",
			"Values": [
				{
					"Name": "TOP_LEFT",
					"Description": "Pivots from the top-left corner.",
					"Value": 0
				},
				{
					"Name": "TOP_CENTER",
					"Description": "Pivots from the center of the top edge.",
					"Value": 1
				},
				{
					"Name": "TOP_RIGHT",
					"Description": "Pivots from the top-right corner.",
					"Value": 2
				},
				{
					"Name": "MIDDLE_LEFT",
					"Description": "Pivots from the center of the left edge.",
					"Value": 3
				},
				{
					"Name": "MIDDLE_CENTER",
					"Description": "Pivots from the center of the object.",
					"Value": 4
				},
				{
					"Name": "MIDDLE_RIGHT",
					"Description": "Pivots from the center of the right edge.",
					"Value": 5
				},
				{
					"Name": "BOTTOM_LEFT",
					"Description": "Pivots from the bottom-left corner.",
					"Value": 6
				},
				{
					"Name": "BOTTOM_CENTER",
					"Description": "Pivots from the center of the bottom edge.",
					"Value": 7
				},
				{
					"Name": "BOTTOM_RIGHT",
					"Description": "Pivots from the bottom-right corner.",
					"Value": 8
				},
				{
					"Name": "CUSTOM",
					"Description": "Currently unused.",
					"Value": 9
				}
			]
		},
		{
			"Name": "Visibility",
			"Description": "Controls visibility of a `CoreObject`.",
			"Values": [
				{
					"Name": "INHERIT",
					"Description": "Object is visible if its parent is visible, or if it has no parent.",
					"Value": 0
				},
				{
					"Name": "FORCE_ON",
					"Description": "Object is visible, regardless of parent state.",
					"Value": 1
				},
				{
					"Name": "FORCE_OFF",
					"Description": "Object is not visible, regardless of parent state.",
					"Value": 2
				}
			]
		},
		{
			"Name": "VoiceChannelType",
			"Description": "Indicates the type of a voice chat channel.",
			"Values": [
				{
					"Name": "NORMAL",
					"Description": "A regular voice chat channel. Player volume is not affected by player position.",
					"Value": 0
				},
				{
					"Name": "POSITIONAL",
					"Description": "A positional voice chat channel. Player volume is affected by the speaker's position in relation to the listener.",
					"Value": 1
				}
			]
		},
		{
			"Name": "VoiceChatMethod",
			"Description": "Indicates the setting a player uses to activate voice chat.",
			"Values": [
				{
					"Name": "PUSH_TO_TALK",
					"Description": "Player presses Push-to-Talk hotkey to speak in voice chat.",
					"Value": 0
				},
				{
					"Name": "DETECT_SPEAKING",
					"Description": "Core detects when the player is speaking and automatically activates voice chat.",
					"Value": 2
				}
			]
		},
		{
			"Name": "VoiceChatMode",
			"Description": "Controls whether voice chat is enabled in the game.",
			"Values": [
				{
					"Name": "NONE",
					"Description": "Voice chat is disabled.",
					"Value": 0
				},
				{
					"Name": "TEAM",
					"Description": "Voice chat is enabled for team members.",
					"Value": 1
				},
				{
					"Name": "ALL",
					"Description": "Voice chat is enabled for all players in the game instance.",
					"Value": 2
				}
			]
		}
	],
	"Interfaces": [
		{
			"Name": "Damageable",
			"Description": "Damageable is an interface which defines properties, events, and functions for objects which can take damage and die.",
			"Properties": [
				{
					"Name": "hitPoints",
					"Description": "Current amount of hit points.",
					"Type": "number"
				},
				{
					"Name": "maxHitPoints",
					"Description": "Maximum amount of hit points.",
					"Type": "number"
				}
			],
			"Events": [
				{
					"Name": "damagedEvent",
					"Description": "Fired when the Damageable takes damage.",
					"Parameters": [
						{
							"Type": "Damageable",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				},
				{
					"Name": "diedEvent",
					"Description": "Fired when the Damageable dies.",
					"Parameters": [
						{
							"Type": "Damageable",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				}
			],
			"Hooks": [
				{
					"Name": "damageHook",
					"Description": "Hook called when applying damage from a call to `ApplyDamage()`. The incoming damage may be modified or prevented by modifying properties on the `damage` parameter.",
					"Parameters": [
						{
							"Type": "Damageable",
							"Name": "object"
						},
						{
							"Type": "Damage",
							"Name": "damage"
						}
					]
				}
			],
			"MemberFunctions": [
				{
					"Name": "ApplyDamage",
					"Description": "Damages a Damageable, unless it is invulnerable. If its hit points reach 0 and it is not immortal, it dies.",
					"Signatures": [
						{
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						}
					]
				},
				{
					"Name": "Die",
					"Description": "Kills the Damageable, unless it is immortal. The optional Damage parameter is a way to communicate cause of death.",
					"Signatures": [
						{
							"Name": "Default",
							"Returns": [],
							"Parameters": []
						},
						{
							"Name": "WithDamage",
							"Returns": [],
							"Parameters": [
								{
									"Type": "Damage",
									"Name": "damage"
								}
							]
						}
					]
				}
			]
		},
		{
			"Name": "Item",
			"Description": "Item is an interface which defines properties and functions for items in an Inventory or spawned in the world.",
			"Properties": [
				{
					"Name": "itemAssetId",
					"Description": "Asset ID defining this Item's properties.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "itemTemplateId",
					"Description": "Asset reference that is spawned as a child of an ItemObject when spawned in the world. May be `nil`.",
					"Type": "string",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "maximumStackCount",
					"Description": "The maximum number of items in one stack of this item. Zero or negative numbers indicate no limit.",
					"Type": "integer",
					"Tags": [
						"ReadOnly"
					]
				},
				{
					"Name": "count",
					"Description": "The number of items this object represents.",
					"Type": "integer"
				}
			],
			"MemberFunctions": [
				{
					"Name": "SetCustomProperty",
					"Description": "Sets the value of a custom property. The value must match the existing type of the property. Returns `true` if the property was successfully set. If the property could not be set, returns `false` or raises an error depending on the cause of the failure.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								},
								{
									"Type": "value",
									"Name": "propertyValue"
								}
							]
						}
					]
				},
				{
					"Name": "GetCustomProperty",
					"Description": "Returns the value of a specific custom property or `nil` if the Item does not possess the custom property. The second return value is `true` if the property is found or `false` if it is not.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "value"
								},
								{
									"Type": "boolean"
								}
							],
							"Parameters": [
								{
									"Type": "string",
									"Name": "propertyName"
								}
							]
						}
					]
				},
				{
					"Name": "GetCustomProperties",
					"Description": "Returns a table containing the names and values of all custom properties on an Item.",
					"Signatures": [
						{
							"Returns": [
								{
									"Type": "table"
								}
							],
							"Parameters": []
						}
					]
				}
			]
		}
	]
}