Difference between revisions of "World Scripting Reference"

From Virtual World Web Wiki
Jump to: navigation, search
Line 303: Line 303:
 
::Disables a group of abilities for the player. (eg, turning off dance moves when you leave the dance floor)
 
::Disables a group of abilities for the player. (eg, turning off dance moves when you leave the dance floor)
  
AbilitySet (C# class: AbilitySetExtended)
+
===AbilitySet (C# class: AbilitySetExtended)===
Events:
+
====Events====
OnDisposed()
+
:OnDisposed()
Fired when the ability set is destroyed.
+
::Fired when the ability set is destroyed.
OnAbilityFired(Ability ability, Participant participant)
+
:OnAbilityFired(Ability ability, Participant participant)
Fires when the user fires an ability (usually by pressing a button on their quickbar).
+
::Fires when the user fires an ability (usually by pressing a button on their quickbar).
Methods:
+
====Methods====
Find(Guid id) : Ability | AbilityGroup
+
:Find(Guid id) : Ability | AbilityGroup
Finds an ability or ability group by ID.
+
::Finds an ability or ability group by ID.
CreateGroup(string identifier, ResourceValue iconResource = null) : AbilityGroup
+
:CreateGroup(string identifier, ResourceValue iconResource = null) : AbilityGroup
Creates a new ability group with an optional iconResource.
+
::Creates a new ability group with an optional iconResource.
  
AbilityGroup (C# class: AbilityGroupExtended) (Inherits: Ability)
+
===AbilityGroup (C# class: AbilityGroupExtended) (Inherits: Ability)===
Events:
+
====Events====
OnDisposed()
+
:OnDisposed()
Fired when the AbilityGroup  is destroyed.
+
::Fired when the AbilityGroup  is destroyed.
Methods:
+
====Methods====
CreateGroup(string identifier, ResourceValue iconResource = null) : AbilityGroup
+
:CreateGroup(string identifier, ResourceValue iconResource = null) : AbilityGroup
Creates a child ability group under this one.
+
::Creates a child ability group under this one.
CreateAbility(string identifier, float cooldown = 0, ResourceValue iconResource = null) : Ability
+
:CreateAbility(string identifier, float cooldown = 0, ResourceValue iconResource = null) : Ability
Creates a new ability with an optional cooldown and icon resource.
+
::Creates a new ability with an optional cooldown and icon resource.
Remove() : void
+
:Remove() : void
Removes the ability.
+
::Removes the ability.
  
Ability (C# class: AbilityExtended)
+
===Ability (C# class: AbilityExtended)===
Events:
+
====Events====
OnDisposed()
+
:OnDisposed()
Fired when the Ability is destroyed.
+
::Fired when the Ability is destroyed.
Properties:
+
====Properties====
ScriptCreated : bool
+
:ScriptCreated : bool
True if the ability or ability group was created by javascript.
+
::True if the ability or ability group was created by javascript.
Identifier : string (readonly)
+
:Identifier : string (readonly)
The translatable identifier of the ability
+
::The translatable identifier of the ability
Description : string (readonly)
+
:Description : string (readonly)
The description of the ability (not currently used)
+
::The description of the ability (not currently used)
Enabled : bool
+
:Enabled : bool
True if the ability is currently enabled. Note that setting an ability to enabled will make the change locally, but may not take effect if the ability is denied, or any of it’s parents are disabled or denied.
+
::True if the ability is currently enabled. Note that setting an ability to enabled will make the change locally, but may not take effect if the ability is denied, or any of it’s parents are disabled or denied.
Denied : bool
+
:Denied : bool
True if the ability or any of it’s parents are denied. Setting this value may have no effect until parents are un-denied (allowed).
+
::True if the ability or any of it’s parents are denied. Setting this value may have no effect until parents are un-denied (allowed).
Active : bool
+
:Active : bool
Marks an ability as active (in use). This is meant mainly for display purposes.
+
::Marks an ability as active (in use). This is meant mainly for display purposes.
Cooldown : float (readonly)
+
:Cooldown : float (readonly)
True if the ability or any of it’s parents are denied. Setting this value may have no effect until parents are un-denied (allowed).
+
::True if the ability or any of it’s parents are denied. Setting this value may have no effect until parents are un-denied (allowed).
CooldownProgress : float
+
:CooldownProgress : float
A number between 0 and 1 representing the percentage of cooldown time elapsed since the ability was last set Active.
+
::A number between 0 and 1 representing the percentage of cooldown time elapsed since the ability was last set Active.
Methods:
+
====Methods====
Reset() : void
+
:Reset() : void
Attempts to reset the ability (Enabled, not Denied, not Active)
+
::Attempts to reset the ability (Enabled, not Denied, not Active)
Remove() : void
+
:Remove() : void
Removes the ability.
+
::Removes the ability.
  
 +
===ChatChannel (C# class: ChatChannelExtended)===
 +
====Events====
 +
:OnDisposed()
 +
::Fired when the channel is destroyed.
 +
:OnJoin(Participant participant)
 +
::Fired when a new participant enters the channel.
 +
:OnLeave(Participant participant)
 +
::Fired when a participant leaves the channel.
 +
:OnMessage(Participant participant, ChatMessageEventArgs message)
 +
::Fired when a message is sent in the channel.
 +
====Methods====
 +
:Join(Participant participant) : bool
 +
::Add a participant to the channel.
 +
:Leave(Participant participant) : bool
 +
::Remove a participant from the channel.
 +
:Close() : void
 +
::Closes (Disposes) a channel.
 +
:Broadcast(string message, int messageStyle = 253) : void
 +
::Sends a message to all participants of a channel. By default, the message style is 253 (System)
 +
:SendMessageTo(Participant participant, string message, int messageStyle) : void
 +
::Sends a message to a single participant of a channel. By default, the message style is 253 (System)
 +
:GetParticipants() : Participant[]
 +
::Gets the participants of the channel
  
ChatChannel (C# class: ChatChannelExtended)
+
===ChatMessageEventArgs (C# class: ChatMessageEventArgsExtended)===
Events:
+
====Properties====
OnDisposed()
+
:Message : string
Fired when the channel is destroyed.
+
::The text of the message.
OnJoin(Participant participant)
+
:Source : Participant
Fired when a new participant enters the channel.
+
::The participant representing the sender of the message. Or null if it’s a system message.
OnLeave(Participant participant)
+
Fired when a participant leaves the channel.
+
OnMessage(Participant participant, ChatMessageEventArgs message)
+
Fired when a message is sent in the channel.
+
Methods:
+
Join(Participant participant) : bool
+
Add a participant to the channel.
+
Leave(Participant participant) : bool
+
Remove a participant from the channel.
+
Close() : void
+
Closes (Disposes) a channel.
+
Broadcast(string message, int messageStyle = 253) : void
+
Sends a message to all participants of a channel. By default, the message style is 253 (System)
+
SendMessageTo(Participant participant, string message, int messageStyle) : void
+
Sends a message to a single participant of a channel. By default, the message style is 253 (System)
+
GetParticipants() : Participant[]
+
Gets the participants of the channel
+
  
ChatMessageEventArgs (C# class: ChatMessageEventArgsExtended)
+
===ViewInfo (C# class: ViewExtended)===
Properties:
+
====Events====
Message : string
+
:OnEnter(Participant who)
The text of the message.
+
::Fired when a participant in an engagement uses one of their abilities
Source : Participant
+
:OnInteraction(Participant who, DOMObject target, Guid abilityID, object value)
The participant representing the sender of the message. Or null if it’s a system message.
+
::Fired when a participant executes an interaction.
 +
:OnLeave(Participant who)
 +
::Fired when a participant in an engagement uses one of their abilities
 +
====Properties====
 +
:ViewID : long
 +
::The unique ID of the view
 +
====Methods====
 +
:AddInteraction(string selector, Guid abilityID, Guid entityID = null) : InteractionMapping
 +
::Add a participant to the shared view.
 +
:AddAbility (string identifier, string initialMetadata, float? cooldown = null, Guid? entityID = null) : ViewAbility
 +
::Creates a new view-local ability which will be automatically delivered to participants when they join the view. This ability is mean to be used by AddInteraction.
 +
:Join(Participant participant) : bool
 +
::Add a participant to the shared view.
 +
:Leave(Participant participant) : bool
 +
::Remove a participant from the shared view.
 +
:Release() : bool
 +
::Destroys the shared view.
  
 +
===InteractionMapping (C# class: InteractionMappingExtended)===
 +
====Events====
 +
:OnInteraction(Participant who, DOMObject target, Guid abilityID, object value)
 +
::Fired when a participant executes an interaction.
 +
====Properties====
 +
:Selector : string (readonly)
 +
::The CSS-style selector string used to select possible target objects for an this interaction
 +
:AbilityID : Guid (readonly)
 +
::The ID of the ability bound to this mapping as an interaction
 +
:EntityID : Guid (readonly)
 +
::The optional ID of an entity to which a participant must belong to get this interaction
 +
====Methods====
 +
:Release() : bool
 +
::Destroys the interaction mapping
  
ViewInfo (C# class: ViewExtended)
+
===ViewAbility (C# class: ViewAbilityExtended)===
Events:
+
====Properties====
OnEnter(Participant who)
+
:AbilityID : Guid (readonly)
Fired when a participant in an engagement uses one of their abilities
+
::The ID of the ability bound to this mapping as an interaction
OnInteraction(Participant who, DOMObject target, Guid abilityID, object value)
+
:EntityID : Guid (readonly)
Fired when a participant executes an interaction.
+
::The optional ID of an entity to which a participant must belong to get this interaction
OnLeave(Participant who)
+
:Identifier : string (readonly)
Fired when a participant in an engagement uses one of their abilities
+
::The identifier of the ability (used for language translation)
Properties:
+
:Cooldown : float (readonly)
ViewID : long
+
::The cooldown timer for the ability. 0 if there is none.
The unique ID of the view
+
:InitialMetadata : string (readonly)
Methods:
+
::The initial metadata attached to the participant’s ability when it’s created.
AddInteraction(string selector, Guid abilityID, Guid entityID = null) : InteractionMapping
+
====Methods====
Add a participant to the shared view.
+
:Release() : bool
AddAbility (string identifier, string initialMetadata, float? cooldown = null, Guid? entityID = null) : ViewAbility
+
::Destroys the view ability
Creates a new view-local ability which will be automatically delivered to participants when they join the view. This ability is mean to be used by AddInteraction.
+
Join(Participant participant) : bool
+
Add a participant to the shared view.
+
Leave(Participant participant) : bool
+
Remove a participant from the shared view.
+
Release() : bool
+
Destroys the shared view.
+
  
InteractionMapping (C# class: InteractionMappingExtended)
+
===EngagementControl (C# class: EngagementControlExtended)===
Events:
+
====Events====
OnInteraction(Participant who, DOMObject target, Guid abilityID, object value)
+
:AbilityFired(Participant who, string identifier)
Fired when a participant executes an interaction.
+
::Fired when a participant in an engagement uses one of their abilities
Properties:
+
:StateChanged(string identifier)
Selector : string (readonly)
+
::Fired when the state of the angagement changes, and passes in the new state identifier
The CSS-style selector string used to select possible target objects for an this interaction
+
:PlayerAdded(int who)
AbilityID : Guid (readonly)
+
::Fired when a new player is added to an engagement. ‘who’ is the ID of the controller of the new player, which may be a participant or a bot.
The ID of the ability bound to this mapping as an interaction
+
:PlayerRemoved(int who)
EntityID : Guid (readonly)
+
::Fired when a new player is added to an engagement. ‘who’ is the ID of the controller of the new player, which may be a participant or a bot.
The optional ID of an entity to which a participant must belong to get this interaction
+
:OnDisposed()
Methods:
+
::Fired when this engagement control is shutting down
Release() : bool
+
====Properties====
Destroys the interaction mapping
+
:IsValid : bool
 +
::Ask dirk
 +
====Methods====
 +
:Close() : void
 +
::Disposes this engagement control.
 +
:IsPlayerEngaged(DOMObject who) : bool
 +
::Tests if the player represented by the DOMObject is in this engagement.
 +
:AddPlayer(DOMObject who) : bool
 +
::Adds a player represented by the DOMObject to this engagement.
 +
:RemovePlayer(DOMObject who, bool restoreAnimator) : bool
 +
::Removes a player represented by the DOMObject from this engagement.
 +
:SetOptions(Vector3 position, Vector3 rotation)
 +
::Ask dirk. Looks like it sets the offset and rotation of the players from center of the target object of the engagement.
  
ViewAbility (C# class: ViewAbilityExtended)
+
===DOMObject (C# class: DOMObjectExtended)===
Properties:
+
====Events====
AbilityID : Guid (readonly)
+
:OnDisposed()
The ID of the ability bound to this mapping as an interaction
+
::Fires when a DOMObject is being destroyed, usually because it’s being removed from the DOM.
EntityID : Guid (readonly)
+
:OnSelect(Participant who, DOMObject source)
The optional ID of an entity to which a participant must belong to get this interaction
+
::Fires when a user selects an object in world. Who is the Participant doing the selecting.
Identifier : string (readonly)
+
:OnDeselect(Participant who, DOMObject source)
The identifier of the ability (used for language translation)
+
::Fires when a user deselects an object in world. Who is Participant doing the deselecting.
Cooldown : float (readonly)
+
::OnTarget(Participant who, DOMObject source)
The cooldown timer for the ability. 0 if there is none.
+
:Fires when a user targets an object in world. Who is the Participant doing the targeting.
InitialMetadata : string (readonly)
+
::OnUnTarget(Participant who, DOMObject source)
The initial metadata attached to the participant’s ability when it’s created.
+
::Fires when a user un-targets an object in world. Who is the Participant doing the un-targeting.
Methods:
+
====Properties====
Release() : bool
+
:Class : string (via attribution)
Destroys the view ability
+
::A space separated list of class names which are used by CSS-style selectors to match this node
 +
:Document : DOMDocument (readonly)
 +
::Gets a reference to the DOMDocument in which this DOMObject resides.
 +
:DocumentTitle : string (readonly)
 +
::A shortcut equivilant to DOMObject.Document.Title.
 +
:Enabled : bool (via attribution)
 +
::Indicates whether the client should carry out the effects of this object or it’s children. A disabled node tree should have no effect on the scene
 +
:ID : long (readonly) (via attribution)
 +
::The unique ID of the object in it’s current DOM tree
 +
:IsTemporary : bool (readonly) (via attribution)
 +
::An object marked as temporary will not be saved when the DOM is serialized for storage. Objects created by scripts are marked as temprary by default
 +
:IsTransient : bool (readonly) (via attribution)
 +
::An object marked as transient be sent to connected clients but will not be saved in the DOM.
 +
:IsTypeRoot : bool (readonly) (via attribution)
 +
::True if this node is the root node of an instantiated object type.
 +
:LocalProperties : DOMProperties (readonly)
 +
::Gets a DOMProperties object representing the properties of this object which are NOT send over the network.
 +
:Title : string (via attribution)
 +
::The title of the DOM node. Visible in curiosity.
 +
:Type : string (readonly)
 +
::A string version of this object’s type’s name, for derived objects, this will return the name of the derived object, so DOMRenderable.Type returns “DOMRenderable”
 +
:Parent : DOMObject (readonly)
 +
::Gets a reference to the DOMObject directly parenting this one.
 +
:Properties : DOMProperties (readonly)
 +
::Gets a DOMProperties object representing the properties of this object visible to all viewers of the DOM. Changes to these properties ARE sent over the network.
 +
:ProtectionFlags : int (readonly) (via attribution)
 +
::A bitfield specifying what sorts of operations are not allowed on this object. 1 = Delete, 2 = Move, 4 = Add (child), 8 = Remove (child), 16 = Change (properties)
 +
:Visible : bool (via attribution)
 +
::An object marked as not visible will not be delivered to connected clients or will be removed if it already has been. Usefull for hiding a tree from clients until it’s ready to be displayed.
 +
====Methods====
 +
:AddClass(string className) : void
 +
::Adds a class name to the space separated list of class names found on the Class property of this DOMObject.
 +
:Clone(DOMObject newParent) : DOMObject
 +
::Clones this object and places it as a direct child of the specified parent object
 +
:CreateEmptyNode(bool visible) : DOMTransform
 +
::Creates a simple DOMTransform object, optionally initially invisible, as a direct child of this object.
 +
:CreateHookpoint(string title, bool visible) : DOMObject
 +
::Creates a simple DOMHookpoint object, optionally initially invisible, as a direct child of this object.
 +
:CreateLight(int color, float intensity, int shadowtype, float shadowstrength, Vector3 position, Vector3 rotation) : DOMLight
 +
::Creates a DOMLight object as a direct child of this object with the specified properties already set.
 +
:CreateNode(string templateID, bool visible) : DOMObject
 +
::Creates an instance of the specified ObjectTemplate given its GUID templateID, optionally initially invisible, as a direct child of this object.
 +
:CreateTitleNode(string title, int index, bool visible) : DOMObject
 +
::Creates a simple DOMTitle object, optionally initially invisible, as a direct child of this object.
 +
:DeleteNode() : bool
 +
::Removes this node from the DOM.
 +
:GetChildren() : DOMObject[]
 +
::Gets all direct children.
 +
:FindController() : DOMController
 +
::Returns the first child DOMController object found in the document in which this object is a member, as long as that document is a persona document (essentially finds the root of an avatar starting from some other object in the avatar’s document). Not so good for finding bot controllers.
 +
:FindNode(string name) : DOMObject
 +
::Find the first child node (recursive, deep search) with the specified name;
 +
:FindNodes(string name) : DOMObject[]
 +
::Finds child nodes (recursive, deep search) with the specified name;
 +
:FindParentController() : DOMController
 +
::Searches up the tree for the first DOMController. Better for finding bot controllers.
 +
:GetAttributeValue(string attributeName) : object
 +
::Looks for an attribute with the given name and returns its value. Attributes are like special properties placed on the DOM nodes and properties when they appear in an ObjectType definition. An ObjectType is a container for a small snippet of DOM which can be re-used at runtime to create instances of that same layout and inject it into a running document. Attributes placed on these object or properties can later be accessed on any instance of these objects or properties. Think of these like metadata “about” an object or property, rather than data describing the object instance itself.
 +
:HasAttribute(string attributeName) : bool
 +
::Checks to see if a given attribute exists on this object.
 +
:HasClass(string className) : void
 +
::Tasts if the specified class name is found in the space separated list of class names found on the Class property of this DOMObject.
 +
:ListenOnChannel(int channelID, function callback) : void
 +
::Starts listening for messages sent to this object from other scripts, or from client UI scripts. Callback will be called with (int channelID, string message, DOMObject source, DOMObject dest) describing the message. This is similar to System.ListenOnChannel but listens only for messages sent directly to this object.
 +
:MatchesSelector(string selector) : bool
 +
::Parses the specified CSS-style selector string and then tests itself (the current node) for a match.
 +
:QuerySelectorAll(string selector) : DOMObject[]
 +
::Parses the specified CSS-style selector string and then queries the DOM from this node down, looking for objects that match. Returns an array of found objects.
 +
:QuerySelector(string selector) : DOMObject
 +
::Parses the specified CSS-style selector string and then queries the DOM from this node down, looking for objects that match. Returns the first found object.
 +
:ReloadScript() : void
 +
::If this object is a DOMScript node, causes the script associated with it to reload. This should be moved onto a DOMScriptExtended at some point.
 +
:RemoveClass(string className) : void
 +
::Removes a class name from the space separated list of class names found on the Class property of this DOMObject.
 +
:SendMessage(int channel, string message, DOMObject source) : bool
 +
::Sends a message on the specified script communication channel given another object as the source. Someone else having previously used ListenOnChannel could receive this message to their callback function.
 +
:ToggleClass(string className) : void
 +
::Toggles a class name in the space separated list of class names found on the Class property of this DOMObject.
  
EngagementControl (C# class: EngagementControlExtended)
+
===DOMTransform (C# class: DOMTransformExtended) (Inherits DOMObject)===
Events:
+
====Properties====
AbilityFired(Participant who, string identifier)
+
:AttachToBone : string (via attribution)
Fired when a participant in an engagement uses one of their abilities
+
::When this transform is under a renderable with a skeleton, it’s transform is further modified by the current animated position of a bone in the renderable’s skeleton as well as the transform of the parent renderable itself
StateChanged(string identifier)
+
:IsClickable : bool (via attribution)
Fired when the state of the angagement changes, and passes in the new state identifier
+
::Allows an object to receive client click events.
PlayerAdded(int who)
+
:IsSelectable : bool (via attribution)
Fired when a new player is added to an engagement. ‘who’ is the ID of the controller of the new player, which may be a participant or a bot.
+
::Allows an object to be selected.
PlayerRemoved(int who)
+
:IsTargetable : bool (via attribution)
Fired when a new player is added to an engagement. ‘who’ is the ID of the controller of the new player, which may be a participant or a bot.
+
::Allows an object to be the users target.
OnDisposed()
+
:ToolTip : string (via attribution)
Fired when this engagement control is shutting down
+
::Specifies a tool tip to display when the user hovers their pointer over this object.
Properties:
+
:ToolTipTitle : string (via attribution)
IsValid : bool
+
::For large-style tool tips, allows for a title displayed over the tool main tip text
Ask dirk
+
:ToolTipIcon : ResourceUri (via attribution)
Methods:
+
::For large-style tool tips, allows for an icon displayed beside the main tip text
Close() : void
+
:TransformParent : DOMTransform
Disposes this engagement control.
+
::Gets a reference to this object’s DOMTransform parent, if it has been set to something other than normal node hierarchy.
IsPlayerEngaged(DOMObject who) : bool
+
:TransformParentID : int (via attribution)
Tests if the player represented by the DOMObject is in this engagement.
+
::The ID of the node of the specified TransformParent
AddPlayer(DOMObject who) : bool
+
:X : float (via attribution)
Adds a player represented by the DOMObject to this engagement.
+
::Gets or sets the X component of the transform’s position
RemovePlayer(DOMObject who, bool restoreAnimator) : bool
+
:Y : float (via attribution)
Removes a player represented by the DOMObject from this engagement.
+
::Gets or sets the Y component of the transform’s position
SetOptions(Vector3 position, Vector3 rotation)
+
:Z : float (via attribution)
Ask dirk. Looks like it sets the offset and rotation of the players from center of the target object of the engagement.
+
::Gets or sets the Z component of the transform’s position
 
+
:RX : float (via attribution)
DOMObject (C# class: DOMObjectExtended)
+
::Gets or sets the X component of the transform’s rotation
Events:
+
:RY : float (via attribution)
OnDisposed()
+
::Gets or sets the Y component of the transform’s rotation
Fires when a DOMObject is being destroyed, usually because it’s being removed from the DOM.
+
:RZ : float (via attribution)
OnSelect(Participant who, DOMObject source)
+
::Gets or sets the Z component of the transform’s rotation
Fires when a user selects an object in world. Who is the Participant doing the selecting.
+
:SX : float (via attribution)
OnDeselect(Participant who, DOMObject source)
+
::Gets or sets the X component of the transform’s scale
Fires when a user deselects an object in world. Who is Participant doing the deselecting.
+
:SY : float (via attribution)
OnTarget(Participant who, DOMObject source)
+
::Gets or sets the Y component of the transform’s scale
Fires when a user targets an object in world. Who is the Participant doing the targeting.
+
:SZ : float (via attribution)
OnUnTarget(Participant who, DOMObject source)
+
::Gets or sets the Z component of the transform’s scale
Fires when a user un-targets an object in world. Who is the Participant doing the un-targeting.
+
====Events====
Properties:
+
Class : string (via attribution)
+
      A space separated list of class names which are used by CSS-style selectors to match this node
+
Document : DOMDocument (readonly)
+
Gets a reference to the DOMDocument in which this DOMObject resides.
+
DocumentTitle : string (readonly)
+
A shortcut equivilant to DOMObject.Document.Title.
+
Enabled : bool (via attribution)
+
      Indicates whether the client should carry out the effects of this object or it’s children. A disabled node tree should have no effect on the scene
+
ID : long (readonly) (via attribution)
+
      The unique ID of the object in it’s current DOM tree
+
IsTemporary : bool (readonly) (via attribution)
+
      An object marked as temporary will not be saved when the DOM is serialized for storage. Objects created by scripts are marked as temprary by default
+
IsTransient : bool (readonly) (via attribution)
+
      An object marked as transient be sent to connected clients but will not be saved in the DOM.
+
IsTypeRoot : bool (readonly) (via attribution)
+
      True if this node is the root node of an instantiated object type.
+
LocalProperties : DOMProperties (readonly)
+
Gets a DOMProperties object representing the properties of this object which are NOT send over the network.
+
Title : string (via attribution)
+
      The title of the DOM node. Visible in curiosity.
+
Type : string (readonly)
+
A string version of this object’s type’s name, for derived objects, this will return the name of the derived object, so DOMRenderable.Type returns “DOMRenderable”
+
Parent : DOMObject (readonly)
+
Gets a reference to the DOMObject directly parenting this one.
+
Properties : DOMProperties (readonly)
+
Gets a DOMProperties object representing the properties of this object visible to all viewers of the DOM. Changes to these properties ARE sent over the network.
+
ProtectionFlags : int (readonly) (via attribution)
+
      A bitfield specifying what sorts of operations are not allowed on this object. 1 = Delete, 2 = Move, 4 = Add (child), 8 = Remove (child), 16 = Change (properties)
+
Visible : bool (via attribution)
+
      An object marked as not visible will not be delivered to connected clients or will be removed if it already has been. Usefull for hiding a tree from clients until it’s ready to be displayed.
+
Methods:
+
AddClass(string className) : void
+
Adds a class name to the space separated list of class names found on the Class property of this DOMObject.
+
Clone(DOMObject newParent) : DOMObject
+
Clones this object and places it as a direct child of the specified parent object
+
CreateEmptyNode(bool visible) : DOMTransform
+
Creates a simple DOMTransform object, optionally initially invisible, as a direct child of this object.
+
CreateHookpoint(string title, bool visible) : DOMObject
+
Creates a simple DOMHookpoint object, optionally initially invisible, as a direct child of this object.
+
CreateLight(int color, float intensity, int shadowtype, float shadowstrength, Vector3 position, Vector3 rotation) : DOMLight
+
Creates a DOMLight object as a direct child of this object with the specified properties already set.
+
CreateNode(string templateID, bool visible) : DOMObject
+
Creates an instance of the specified ObjectTemplate given its GUID templateID, optionally initially invisible, as a direct child of this object.
+
CreateTitleNode(string title, int index, bool visible) : DOMObject
+
Creates a simple DOMTitle object, optionally initially invisible, as a direct child of this object.
+
DeleteNode() : bool
+
Removes this node from the DOM.
+
GetChildren() : DOMObject[]
+
Gets all direct children.
+
FindController() : DOMController
+
Returns the first child DOMController object found in the document in which this object is a member, as long as that document is a persona document (essentially finds the root of an avatar starting from some other object in the avatar’s document). Not so good for finding bot controllers.
+
FindNode(string name) : DOMObject
+
Find the first child node (recursive, deep search) with the specified name;
+
FindNodes(string name) : DOMObject[]
+
Finds child nodes (recursive, deep search) with the specified name;
+
FindParentController() : DOMController
+
Searches up the tree for the first DOMController. Better for finding bot controllers.
+
GetAttributeValue(string attributeName) : object
+
Looks for an attribute with the given name and returns its value. Attributes are like special properties placed on the DOM nodes and properties when they appear in an ObjectType definition. An ObjectType is a container for a small snippet of DOM which can be re-used at runtime to create instances of that same layout and inject it into a running document. Attributes placed on these object or properties can later be accessed on any instance of these objects or properties. Think of these like metadata “about” an object or property, rather than data describing the object instance itself.
+
HasAttribute(string attributeName) : bool
+
Checks to see if a given attribute exists on this object.
+
HasClass(string className) : void
+
Tasts if the specified class name is found in the space separated list of class names found on the Class property of this DOMObject.
+
ListenOnChannel(int channelID, function callback) : void
+
Starts listening for messages sent to this object from other scripts, or from client UI scripts. Callback will be called with (int channelID, string message, DOMObject source, DOMObject dest) describing the message. This is similar to System.ListenOnChannel but listens only for messages sent directly to this object.
+
MatchesSelector(string selector) : bool
+
Parses the specified CSS-style selector string and then tests itself (the current node) for a match.
+
QuerySelectorAll(string selector) : DOMObject[]
+
Parses the specified CSS-style selector string and then queries the DOM from this node down, looking for objects that match. Returns an array of found objects.
+
QuerySelector(string selector) : DOMObject
+
Parses the specified CSS-style selector string and then queries the DOM from this node down, looking for objects that match. Returns the first found object.
+
ReloadScript() : void
+
If this object is a DOMScript node, causes the script associated with it to reload. This should be moved onto a DOMScriptExtended at some point.
+
RemoveClass(string className) : void
+
Removes a class name from the space separated list of class names found on the Class property of this DOMObject.
+
SendMessage(int channel, string message, DOMObject source) : bool
+
Sends a message on the specified script communication channel given another object as the source. Someone else having previously used ListenOnChannel could receive this message to their callback function.
+
ToggleClass(string className) : void
+
Toggles a class name in the space separated list of class names found on the Class property of this DOMObject.
+
 
+
DOMTransform (C# class: DOMTransformExtended) (Inherits DOMObject)
+
Properties:
+
AttachToBone : string (via attribution)
+
When this transform is under a renderable with a skeleton, it’s transform is further modified by the current animated position of a bone in the renderable’s skeleton as well as the transform of the parent renderable itself
+
IsClickable : bool (via attribution)
+
      Allows an object to receive client click events.
+
IsSelectable : bool (via attribution)
+
      Allows an object to be selected.
+
IsTargetable : bool (via attribution)
+
      Allows an object to be the users target.
+
ToolTip : string (via attribution)
+
      Specifies a tool tip to display when the user hovers their pointer over this object.
+
ToolTipTitle : string (via attribution)
+
      For large-style tool tips, allows for a title displayed over the tool main tip text
+
ToolTipIcon : ResourceUri (via attribution)
+
      For large-style tool tips, allows for an icon displayed beside the main tip text
+
TransformParent : DOMTransform
+
Gets a reference to this object’s DOMTransform parent, if it has been set to something other than normal node hierarchy.
+
TransformParentID : int (via attribution)
+
      The ID of the node of the specified TransformParent
+
X : float (via attribution)
+
      Gets or sets the X component of the transform’s position
+
Y : float (via attribution)
+
      Gets or sets the Y component of the transform’s position
+
Z : float (via attribution)
+
      Gets or sets the Z component of the transform’s position
+
RX : float (via attribution)
+
      Gets or sets the X component of the transform’s rotation
+
RY : float (via attribution)
+
      Gets or sets the Y component of the transform’s rotation
+
RZ : float (via attribution)
+
      Gets or sets the Z component of the transform’s rotation
+
SX : float (via attribution)
+
      Gets or sets the X component of the transform’s scale
+
SY : float (via attribution)
+
      Gets or sets the Y component of the transform’s scale
+
SZ : float (via attribution)
+
      Gets or sets the Z component of the transform’s scale
+
 
+
Events:
+
 
OnClick(Participant who, DOMObject source)
 
OnClick(Participant who, DOMObject source)
 
Fires when a user clicks an object in world. Who is the Participant doing the clicking.
 
Fires when a user clicks an object in world. Who is the Participant doing the clicking.

Revision as of 11:06, 4 October 2016

Contents

System Global Objects

These objects are created by the core, and are always available to server scripts. An instance of each can be accessed at the global scope. For example, a script can access DOM.Self to get a reference to the DOMScript node on which the script is running.

DOM (C# class: DOMFunctions)

Properties

DOMObject Self {get;}
Gets a reference to the DOMScript node which loaded the calling script.
DOMController Controller {get;}
Gets a reference to the DOMController node which represents the avatar in the persona document in which the calling script is running. If the calling script is running in a scene document, this property will be null.
DOMObject Document {get;}
Gets a reference to the DOMDocument under which this script is running. Same as DOM.Self.Document

Methods

DOMObject FindNode(int objectID)
Attempts to find a DOMObject by its ID in the same document in which the calling script is running.
DOMObject FindNodeInParticipants(int objectID)
Attempts to find a DOMObject by its ID in the entire participants container document (All persona documents).
DOMObject GetNodeByID(int objectID)
An alias for FindNode
DOMObject[] GetNodesByName(string name)
Finds DOMObjects with the given name inside the document in which the calling script is running.

Instance (C# class: InstanceExtended)

Properties

DOMDocument Document {get;}
Gets a reference to the DOMDocument at the root of the instance
DOMDocument Participants {get;}
Gets a reference to the DOMDocument that contains all participants
DOMDocument Scene {get;}
Gets a reference to the DOMDocument that contains the scene
string Title {get;}
Returns the title of the instance
string SceneTitle {get;}
Returns the title of the scene
bool DesignMode {get;}
Returns true of the instance is running in design mode
ViewInfo View {get;}
Returns the main view for the instance

Events

OnDisposed()
Fired when the instance shuts down
OnEnter(Participant user)
Fires when a new participant enters the room
OnLeave(bool user)
Fires when a participant leaves the room
OnLoad(bool restarting)
Fires for your script when the instance starts or you are reloaded
OnChildAdded(DOMObject obj)
Fires when a new node is added to the instance

Methods

ViewInfo AddView(string identifier)
Creates a new shared view (document) to which you can attach participants, and add nodes like in the scene document
ViewInfo FindView(string identifier)
Searches for a named shared view
Participant[] GetParticipants()
Returns an array of participants in the instance

System (C# class: SystemFunctions)

Methods

Debug(string message) : void
An alias for Log.WriteDebug
ServerLog(string message) : void
Writes a debug message to the server log system (as opposed to the script debug system)
GetInstance() : Instance
Gets a reference to the Instance object representing the current “room” or instance in which the calling script is running.
CreateTimer(function callback, int dueTime, int period) : int
Creates a timer which will fire once in dueTime milliseconds and then every period milliseconds. When the timer fires, it will call the specified JavaScript callback function. An integer handle to the timer is returned.
RemoveTimer(int timerID) : bool
Removes a timer given a timer handle from CreateTimer.
BroadcastMessage(int channel, string message, DOMObject source) : bool
Sends a JSScriptEVentMessage packet to all connected clients in the room. Client side UI script can process and respond to this message.
ListenOnChannel(int channel, function callback) : void
Begins listening on a given script channel number and defines a JavaScript callback to call when a message arrives from another script.
BroadcastOnChannel(int channel, string message, DOMObject source) : void
Sends a message on a given channel to all listening scripts. The message an source will be passed to the listening scripts’ callback function registered with ListenOnChannel. These messages are not delivered to connected clients.
FindController(DOMObject target) : DOMController
If the target object is in a persona document, this method will return the document’s first DOMController.
FindParentController(DOMObject target) : DOMController
Searches up the DOM tree from target looking for the first DOMController.
FindParticipant(DOMObject target) : Participant
If the target object is in a persona document, this method will return the document’s first DOMController.
CreateWebRequest(string requestType, string contentType, string url, function callback, string postData) : void
Requests data from the web at the given url. requestType should be GET or POST. If POST, the postData should contain the data to post. contentType is optional and can be null or empty. The callback will be called with two parameters: the response string data, and an integer http status code (200 = success).

Physics (C# class: PhysicsFunctions)

Methods

CastSphere(Vector3 origin, Vector3 direction, float radius, float maxdistance) : void
Ask patrick
FireProjectile(DOMTransform projectile, Vector3 origin, Vector3 direction, float speed, float maxdistance, bool usegravity) : void
Ask patrick
PathTo(Vector3 position, float speed) : void
Ask patrick

Log (C# class: DebugLog)

Methods

WriteVerbose(string message) : void
WriteDebug(string message) : void
WriteInfo(string message) : void
WriteWarning(string message) : void
WriteError(string message) : void
WriteFatal(string message) : void
These methods write script debug messages to connected clients with LayerOne permissions

Chat (C# class: ChatChannelExtended.ChatFunctions)

Methods

GetLocalChannel() : ChatChannel
Gets a reference to the general chat channel for the current instance.
CreateChannel(string displayName) : ChatChannel
Creates a new named chat channel for use by the calling script.

Component Global Objects

These object templates are created by components, and are always available to server scripts as long as the associated component is installed. As with system global objects, an instance of each is created with the same name as the template and can be accessed at the global scope.

Rays (C# class: JSGlobalRays)

Methods

Transfer(Participant source, Participant target, float amount) : bool
Transfers Rays currency between the two accounts represented by the source and target DOMObjects which must each belong to persona documents.
Collect(Participant source, float amount) : bool
Takes the specified amount of Rays currency from the account represented by the source DOMObject which must belong to persona document.
Payout(Participant target, float amount) : bool
Gives the specified amount of Rays currency to the account represented by the target DOMObject which must belong to persona document.
GetBalance(Participant target) : float
Gets the balance in Rays of the account represented by the target DOMObject which must belong to persona document.

Adult (C# class: JSGlobalAdult)

Methods

CreateEngagement(DOMObject target, string startingState, bool autoDispose) : EngagementControl
Begins an adult system engagement (shared animation state), using target as the focus or parent object of the engagement and beginning in the state specified by startingState. When autoDispose is true, the engagement will clean itself up when the number of participants falls below critical numbers (usually when the last participant leaves, but in some cases, like hugging, when any one person leaves).
GetEngagement(DOMObject target) : EngagementControl
Tries to find an engagement control involving the DOMObject specified by target.

Cloud (C# class: JSGlobalCloud)

Methods

SetApplication(string applicationID) : bool
Associates this script with an application (scope of data storage). A single call to this function is required before most other GameCloud functions will work. Simply pass a Guid as a string.
SetData(string key, string value) : bool
Sets the value of an application-scoped data item. This is basic global application string data storage.
GetData(string key) : string
Gets the value of an application scoped data item.
DeleteData(string key) : string
Deletes the specified application scoped data item.
RegisterInteraction(string selector, string abilityIdentifier, string groupIdentifier = null) : InteractionMapping
Wraps up the ViewInfo’s AddInteractionMapping and AddAbility methods into a single call. The abilityIdentifier is the name of a GameCloud registered ability (created in the admin). The groupIdentifier is the optional name of a GameCloud registered entity group used to filter who gets the interaction, and the selector is a CSS-Style selector which identifies nodes which are eligible targets of the interaction.
SaveData() : void
Checkpoints your app data. Just in case.
GetCurrency(string identifier, bool accountScoped) : CloudCurrency
Gets or creates a currency for use in your javascript applications. The returned object can be used to transact in this currency, and get balance of accounts.

HAM (C# class: JSGlobalHAM) (hosted by CreatureManager)

Methods

IsAvailable() : bool
Returns true if the creature manager is installed.
SetAttachment(string attachmentName, DOMObject target, int attachID) : bool
Obsolete
HasAttachment(strin attachmentName, DOMObject target) : bool
Obsolete
ClearAttachment(string attachmentName, DOMObject target) : bool
Obsolete

Avatar (C# class: JavascriptAvatar)

Methods

PlayAnimation(DOMObject target, string actionID, bool looping) : bool
Triggers a HAM action item on the specified player, given its actionID as a Guid
StopAnimation(DOMObject target, string actionID) : bool
Stops a HAM action from playing on the specified player given its actionID as a Guid

Bot (C# class: JavascriptBot)

Methods

IsAvailable() : bool
PlayAnimation(DOMObject target, string animationName, bool looping) : bool
Same as above, but for bots in a room rather than player avatars
StopAnimation(DOMObject target, string animationName) : bool
Same as above, but for bots in a room rather than player avatars

Extended Objects

These object templates are defined, but only available to a script via a function call to one of the above global objects. Basically they’re JavaScript interfaces to C# objects which can be passed down into JavaScript as the result of a function call or as the parameter to an event or callback method.

ConfirmationHandle (C# class: ConfirmationHandleExtended)

Properties

ID : Guid
Title : string
Description: string
Buttons : string[]
The list of button labels (eg: yes, no)
DefaultButton : int
The zero-based index into Buttons which will be the default button
IsCompleted : bool
True if this confirmation request was cancelled or completed
Success : bool
True if the user completed the confirmation request
ButtonChoice : int
The zero-based index into Buttons which was chosen by the user
ReplyTimeout : int
The time to wait for the users' reply in milliseconds. -1 to wait indefinitely.
TimeRemaining : int
The time remaining of ReplyTimeout. This property will be -1 if ReplyTimeout is -1, and 0 if the time has expired.

Events

Cancelled()
Fires when the confirmation request has been cancelled (usually because the user logs off or navigates)
Completed()
Fires when the confirmation request completes with success or failure

Methods

Cancel() : void
Cancels the confirmation request
Complete(int buttonChoice) : void
Simulates the completion of the confirmation request with a specified button choice.

CloudCurrency (C# class: CloudCurrencyExtended)

Properties

ID : Guid
Identifier : string

Methods

Transfer(Participant source, Participant target, float amount) : bool
Same as Rays.Transfer except in this cloud currency
Collect(Participant source, float amount) : bool
Same as Rays.Collect except in this cloud currency
Payout(Participant target, float amount) : bool
Same as Rays.Payout except in this cloud currency
GetBalance(Participant target) : float
Same as Rays.GetBalance except in this cloud currency

Participant (C# class: ParticipantExtended)

Events

OnEntitiesChanged(Participant part)
Fires when a the participant’s connection’s entity list changes (i.e. the user joins or leaves a dynamic or entity group).
OnAreaPermissionsChanged(Participant part)
Fires when the permission set for this user changes due to changes in permission on the current instance, or any of it’s parent world or area group hierarchy, or due to entity set changes.
OnSceneReady(Participant part)
Fires when the connected client informs the server that it has loaded all reasources, lowered it’s loading screen, and is ready to show the scene.
OnTypingStarted(Participant part)
Fires when the connected client informs the server that the user has begun typing.
OnTypingStopped(Participant part)
Fires when the connected client informs the server that the user has stopped typing.
OnTargetChanged(DOMObject newTarget, DOMObject oldTarget)
Fires when the connected client changed it’s targeted DOMObject.
OnVirtualRealityStarted(Participant part)
Fires when the connected client informs the server that the user has turned on their VR headset.
OnVirtualRealityStopped(Participant part)
Fires when the connected client informs the server that the user has turned on their VR headset.
OnDisposed()
Fires as the participant is cleaned up.

Properties

Name : string
Gets the participant’s persona’s name.
Controller : DOMController
Gets the root DOMController object that represents the participant’s avatar in the room. This will almost always be the only direct DOMController child of the participant document.
AccountID : string
Gets the account ID of the participant as a GUID in string format
PersonaID : string
Gets the persona ID of the participant as a GUID in string format
SessionID : string
Gets the session ID of the participant as a GUID in string format
Abilities : AbilitySet
Gets the ability set for this participant which can be used to create ability groups and abilities and modify their state

Properties (from CreatureManager)

CreatureType : string
Gets the creature type ID as a GUID in string format
IsMale : bool
Returns true if the participant’s creature type is male

Methods

InEntity(string id) : bool
Checks if this participant’s connection identity is in the requested entity (account, persona, entitygroup, dynamicgroup, etc)
HasAreaPermission(string id) : bool
Checks if this participant’s connection identity has the requested permission in the current area
ResetPosition() : void
Resets the user’s world position to their specified DOMStartPoint or the default DOMStartPoint or origin
SendUIScript(ResourceValue packageResource, string args) : bool
Pushes the requested UI package to the connected client
NavigateTo(string vwwUrl, bool designMode = false) : bool
Attempts to navigate the participant to another destination scene by vwwUrl and optionally in design mode

Methods (from GameCloud)

SetData(string key, string value) : bool
Sets the value of a persona scoped data item.
GetData(string key) : string
Gets the value of a persona scoped data item.
DeleteData(string key) : bool
Deletes the specified persona scoped data item.
SetAccountData(string key, string value) : bool
Sets the value of an account scoped data item.
GetAccountData(string key) : string
Gets the value of an account scoped data item.
DeleteAccountData(string key) : bool
Deletes the specified account scoped data item.
GiveObject(string id) : bool
Creates an ObjectTemplate of the ObjectType specified by the Guid in the id parameter and puts it in the participant’s persona’s inventory. Essentially, gives a person a thing, like clothing, or an object for scene editing.
ConfirmationRequest(string title, string description, string[] buttons, int defaultButton, int timeout) : ConfirmationHandle
Initiates a new Confirmation Request. The participant’s connection will be sent a packet asking them to confirm the activity described by title and description, by pressing one of the described buttons, with the defaultButton being a zero-based index into that list, with an optional timeout. Use -1 for infinite timeout. The confirmation will be automatically cancelled if the user disconnects or navigates.
SendUIScript(ResourceValue package, string arguments) : bool
Pushes a client UI script package to this participant.
NavigateTo(string vwwUrl, bool designMode = false) : bool
Attempts to navigate the target participant to the specified VWW URL
JoinGroup(string groupIdentifier, bool accountLevel) : bool
Joins the participant to an EntityGroup which has been registered to your application via the admin GameCloud configuration tool
LeaveGroup(string groupIdentifier, bool accountLevel) : bool
Removes the participant from an EntityGroup which has been registered to your application via the admin GameCloud configuration tool
CheckGroup(string groupIdentifier) : bool
Tests whether the participant is in the EntityGroup which has been registered to your application via the admin GameCloud configuration tool

Methods (from HumanAvatars)

EnableAbilityGroup(string identifier) : bool
Enables a group of abilities for the player. (eg, turning on dance moves when you enter the dance floor)
DisableAbilityGroup(string identifier) : bool
Disables a group of abilities for the player. (eg, turning off dance moves when you leave the dance floor)

AbilitySet (C# class: AbilitySetExtended)

Events

OnDisposed()
Fired when the ability set is destroyed.
OnAbilityFired(Ability ability, Participant participant)
Fires when the user fires an ability (usually by pressing a button on their quickbar).

Methods

Find(Guid id) : Ability | AbilityGroup
Finds an ability or ability group by ID.
CreateGroup(string identifier, ResourceValue iconResource = null) : AbilityGroup
Creates a new ability group with an optional iconResource.

AbilityGroup (C# class: AbilityGroupExtended) (Inherits: Ability)

Events

OnDisposed()
Fired when the AbilityGroup is destroyed.

Methods

CreateGroup(string identifier, ResourceValue iconResource = null) : AbilityGroup
Creates a child ability group under this one.
CreateAbility(string identifier, float cooldown = 0, ResourceValue iconResource = null) : Ability
Creates a new ability with an optional cooldown and icon resource.
Remove() : void
Removes the ability.

Ability (C# class: AbilityExtended)

Events

OnDisposed()
Fired when the Ability is destroyed.

Properties

ScriptCreated : bool
True if the ability or ability group was created by javascript.
Identifier : string (readonly)
The translatable identifier of the ability
Description : string (readonly)
The description of the ability (not currently used)
Enabled : bool
True if the ability is currently enabled. Note that setting an ability to enabled will make the change locally, but may not take effect if the ability is denied, or any of it’s parents are disabled or denied.
Denied : bool
True if the ability or any of it’s parents are denied. Setting this value may have no effect until parents are un-denied (allowed).
Active : bool
Marks an ability as active (in use). This is meant mainly for display purposes.
Cooldown : float (readonly)
True if the ability or any of it’s parents are denied. Setting this value may have no effect until parents are un-denied (allowed).
CooldownProgress : float
A number between 0 and 1 representing the percentage of cooldown time elapsed since the ability was last set Active.

Methods

Reset() : void
Attempts to reset the ability (Enabled, not Denied, not Active)
Remove() : void
Removes the ability.

ChatChannel (C# class: ChatChannelExtended)

Events

OnDisposed()
Fired when the channel is destroyed.
OnJoin(Participant participant)
Fired when a new participant enters the channel.
OnLeave(Participant participant)
Fired when a participant leaves the channel.
OnMessage(Participant participant, ChatMessageEventArgs message)
Fired when a message is sent in the channel.

Methods

Join(Participant participant) : bool
Add a participant to the channel.
Leave(Participant participant) : bool
Remove a participant from the channel.
Close() : void
Closes (Disposes) a channel.
Broadcast(string message, int messageStyle = 253) : void
Sends a message to all participants of a channel. By default, the message style is 253 (System)
SendMessageTo(Participant participant, string message, int messageStyle) : void
Sends a message to a single participant of a channel. By default, the message style is 253 (System)
GetParticipants() : Participant[]
Gets the participants of the channel

ChatMessageEventArgs (C# class: ChatMessageEventArgsExtended)

Properties

Message : string
The text of the message.
Source : Participant
The participant representing the sender of the message. Or null if it’s a system message.

ViewInfo (C# class: ViewExtended)

Events

OnEnter(Participant who)
Fired when a participant in an engagement uses one of their abilities
OnInteraction(Participant who, DOMObject target, Guid abilityID, object value)
Fired when a participant executes an interaction.
OnLeave(Participant who)
Fired when a participant in an engagement uses one of their abilities

Properties

ViewID : long
The unique ID of the view

Methods

AddInteraction(string selector, Guid abilityID, Guid entityID = null) : InteractionMapping
Add a participant to the shared view.
AddAbility (string identifier, string initialMetadata, float? cooldown = null, Guid? entityID = null) : ViewAbility
Creates a new view-local ability which will be automatically delivered to participants when they join the view. This ability is mean to be used by AddInteraction.
Join(Participant participant) : bool
Add a participant to the shared view.
Leave(Participant participant) : bool
Remove a participant from the shared view.
Release() : bool
Destroys the shared view.

InteractionMapping (C# class: InteractionMappingExtended)

Events

OnInteraction(Participant who, DOMObject target, Guid abilityID, object value)
Fired when a participant executes an interaction.

Properties

Selector : string (readonly)
The CSS-style selector string used to select possible target objects for an this interaction
AbilityID : Guid (readonly)
The ID of the ability bound to this mapping as an interaction
EntityID : Guid (readonly)
The optional ID of an entity to which a participant must belong to get this interaction

Methods

Release() : bool
Destroys the interaction mapping

ViewAbility (C# class: ViewAbilityExtended)

Properties

AbilityID : Guid (readonly)
The ID of the ability bound to this mapping as an interaction
EntityID : Guid (readonly)
The optional ID of an entity to which a participant must belong to get this interaction
Identifier : string (readonly)
The identifier of the ability (used for language translation)
Cooldown : float (readonly)
The cooldown timer for the ability. 0 if there is none.
InitialMetadata : string (readonly)
The initial metadata attached to the participant’s ability when it’s created.

Methods

Release() : bool
Destroys the view ability

EngagementControl (C# class: EngagementControlExtended)

Events

AbilityFired(Participant who, string identifier)
Fired when a participant in an engagement uses one of their abilities
StateChanged(string identifier)
Fired when the state of the angagement changes, and passes in the new state identifier
PlayerAdded(int who)
Fired when a new player is added to an engagement. ‘who’ is the ID of the controller of the new player, which may be a participant or a bot.
PlayerRemoved(int who)
Fired when a new player is added to an engagement. ‘who’ is the ID of the controller of the new player, which may be a participant or a bot.
OnDisposed()
Fired when this engagement control is shutting down

Properties

IsValid : bool
Ask dirk

Methods

Close() : void
Disposes this engagement control.
IsPlayerEngaged(DOMObject who) : bool
Tests if the player represented by the DOMObject is in this engagement.
AddPlayer(DOMObject who) : bool
Adds a player represented by the DOMObject to this engagement.
RemovePlayer(DOMObject who, bool restoreAnimator) : bool
Removes a player represented by the DOMObject from this engagement.
SetOptions(Vector3 position, Vector3 rotation)
Ask dirk. Looks like it sets the offset and rotation of the players from center of the target object of the engagement.

DOMObject (C# class: DOMObjectExtended)

Events

OnDisposed()
Fires when a DOMObject is being destroyed, usually because it’s being removed from the DOM.
OnSelect(Participant who, DOMObject source)
Fires when a user selects an object in world. Who is the Participant doing the selecting.
OnDeselect(Participant who, DOMObject source)
Fires when a user deselects an object in world. Who is Participant doing the deselecting.
OnTarget(Participant who, DOMObject source)
Fires when a user targets an object in world. Who is the Participant doing the targeting.
OnUnTarget(Participant who, DOMObject source)
Fires when a user un-targets an object in world. Who is the Participant doing the un-targeting.

Properties

Class : string (via attribution)
A space separated list of class names which are used by CSS-style selectors to match this node
Document : DOMDocument (readonly)
Gets a reference to the DOMDocument in which this DOMObject resides.
DocumentTitle : string (readonly)
A shortcut equivilant to DOMObject.Document.Title.
Enabled : bool (via attribution)
Indicates whether the client should carry out the effects of this object or it’s children. A disabled node tree should have no effect on the scene
ID : long (readonly) (via attribution)
The unique ID of the object in it’s current DOM tree
IsTemporary : bool (readonly) (via attribution)
An object marked as temporary will not be saved when the DOM is serialized for storage. Objects created by scripts are marked as temprary by default
IsTransient : bool (readonly) (via attribution)
An object marked as transient be sent to connected clients but will not be saved in the DOM.
IsTypeRoot : bool (readonly) (via attribution)
True if this node is the root node of an instantiated object type.
LocalProperties : DOMProperties (readonly)
Gets a DOMProperties object representing the properties of this object which are NOT send over the network.
Title : string (via attribution)
The title of the DOM node. Visible in curiosity.
Type : string (readonly)
A string version of this object’s type’s name, for derived objects, this will return the name of the derived object, so DOMRenderable.Type returns “DOMRenderable”
Parent : DOMObject (readonly)
Gets a reference to the DOMObject directly parenting this one.
Properties : DOMProperties (readonly)
Gets a DOMProperties object representing the properties of this object visible to all viewers of the DOM. Changes to these properties ARE sent over the network.
ProtectionFlags : int (readonly) (via attribution)
A bitfield specifying what sorts of operations are not allowed on this object. 1 = Delete, 2 = Move, 4 = Add (child), 8 = Remove (child), 16 = Change (properties)
Visible : bool (via attribution)
An object marked as not visible will not be delivered to connected clients or will be removed if it already has been. Usefull for hiding a tree from clients until it’s ready to be displayed.

Methods

AddClass(string className) : void
Adds a class name to the space separated list of class names found on the Class property of this DOMObject.
Clone(DOMObject newParent) : DOMObject
Clones this object and places it as a direct child of the specified parent object
CreateEmptyNode(bool visible) : DOMTransform
Creates a simple DOMTransform object, optionally initially invisible, as a direct child of this object.
CreateHookpoint(string title, bool visible) : DOMObject
Creates a simple DOMHookpoint object, optionally initially invisible, as a direct child of this object.
CreateLight(int color, float intensity, int shadowtype, float shadowstrength, Vector3 position, Vector3 rotation) : DOMLight
Creates a DOMLight object as a direct child of this object with the specified properties already set.
CreateNode(string templateID, bool visible) : DOMObject
Creates an instance of the specified ObjectTemplate given its GUID templateID, optionally initially invisible, as a direct child of this object.
CreateTitleNode(string title, int index, bool visible) : DOMObject
Creates a simple DOMTitle object, optionally initially invisible, as a direct child of this object.
DeleteNode() : bool
Removes this node from the DOM.
GetChildren() : DOMObject[]
Gets all direct children.
FindController() : DOMController
Returns the first child DOMController object found in the document in which this object is a member, as long as that document is a persona document (essentially finds the root of an avatar starting from some other object in the avatar’s document). Not so good for finding bot controllers.
FindNode(string name) : DOMObject
Find the first child node (recursive, deep search) with the specified name;
FindNodes(string name) : DOMObject[]
Finds child nodes (recursive, deep search) with the specified name;
FindParentController() : DOMController
Searches up the tree for the first DOMController. Better for finding bot controllers.
GetAttributeValue(string attributeName) : object
Looks for an attribute with the given name and returns its value. Attributes are like special properties placed on the DOM nodes and properties when they appear in an ObjectType definition. An ObjectType is a container for a small snippet of DOM which can be re-used at runtime to create instances of that same layout and inject it into a running document. Attributes placed on these object or properties can later be accessed on any instance of these objects or properties. Think of these like metadata “about” an object or property, rather than data describing the object instance itself.
HasAttribute(string attributeName) : bool
Checks to see if a given attribute exists on this object.
HasClass(string className) : void
Tasts if the specified class name is found in the space separated list of class names found on the Class property of this DOMObject.
ListenOnChannel(int channelID, function callback) : void
Starts listening for messages sent to this object from other scripts, or from client UI scripts. Callback will be called with (int channelID, string message, DOMObject source, DOMObject dest) describing the message. This is similar to System.ListenOnChannel but listens only for messages sent directly to this object.
MatchesSelector(string selector) : bool
Parses the specified CSS-style selector string and then tests itself (the current node) for a match.
QuerySelectorAll(string selector) : DOMObject[]
Parses the specified CSS-style selector string and then queries the DOM from this node down, looking for objects that match. Returns an array of found objects.
QuerySelector(string selector) : DOMObject
Parses the specified CSS-style selector string and then queries the DOM from this node down, looking for objects that match. Returns the first found object.
ReloadScript() : void
If this object is a DOMScript node, causes the script associated with it to reload. This should be moved onto a DOMScriptExtended at some point.
RemoveClass(string className) : void
Removes a class name from the space separated list of class names found on the Class property of this DOMObject.
SendMessage(int channel, string message, DOMObject source) : bool
Sends a message on the specified script communication channel given another object as the source. Someone else having previously used ListenOnChannel could receive this message to their callback function.
ToggleClass(string className) : void
Toggles a class name in the space separated list of class names found on the Class property of this DOMObject.

DOMTransform (C# class: DOMTransformExtended) (Inherits DOMObject)

Properties

AttachToBone : string (via attribution)
When this transform is under a renderable with a skeleton, it’s transform is further modified by the current animated position of a bone in the renderable’s skeleton as well as the transform of the parent renderable itself
IsClickable : bool (via attribution)
Allows an object to receive client click events.
IsSelectable : bool (via attribution)
Allows an object to be selected.
IsTargetable : bool (via attribution)
Allows an object to be the users target.
ToolTip : string (via attribution)
Specifies a tool tip to display when the user hovers their pointer over this object.
ToolTipTitle : string (via attribution)
For large-style tool tips, allows for a title displayed over the tool main tip text
ToolTipIcon : ResourceUri (via attribution)
For large-style tool tips, allows for an icon displayed beside the main tip text
TransformParent : DOMTransform
Gets a reference to this object’s DOMTransform parent, if it has been set to something other than normal node hierarchy.
TransformParentID : int (via attribution)
The ID of the node of the specified TransformParent
X : float (via attribution)
Gets or sets the X component of the transform’s position
Y : float (via attribution)
Gets or sets the Y component of the transform’s position
Z : float (via attribution)
Gets or sets the Z component of the transform’s position
RX : float (via attribution)
Gets or sets the X component of the transform’s rotation
RY : float (via attribution)
Gets or sets the Y component of the transform’s rotation
RZ : float (via attribution)
Gets or sets the Z component of the transform’s rotation
SX : float (via attribution)
Gets or sets the X component of the transform’s scale
SY : float (via attribution)
Gets or sets the Y component of the transform’s scale
SZ : float (via attribution)
Gets or sets the Z component of the transform’s scale

Events

OnClick(Participant who, DOMObject source) Fires when a user clicks an object in world. Who is the Participant doing the clicking. OnRightClick(Participant who, DOMObject source) Fires when a user right-clicks an object in world. Who is the Participant doing the right-clicking. Methods: MoveTo(float x, float y, float z, float speed) : bool Moves this object smoothly, and linearly to the specified x,y,z location over time specified by speed. This is accomplished using a child DOMInterpolation node. MoveToWithCallback(float x, float y, float z, float speed, function callback) : bool Same as above, but requests a callback when the operation completes. PhysicsSpawn(float radius, bool stack) : DOMPhysics Creates a DOMPhysics node as a direct child of this node requesting the Spawn operation and given the specified parameters. The returned DOMPhysics node can be used to start / stop the operation and monitor for its completion. PhysicsPathTo(float targetX, float targetY, float targetZ, float speed) :: DOMPhysics Creates a DOMPhysics node as a direct child of this node requesting the PathTo operation and given the specified parameters. The returned DOMPhysics node can be used to start / stop the operation and monitor for its completion. PhysicsPathToVector(Vector3 target, float speed) : DOMPhysics Creates a DOMPhysics node as a direct child of this node requesting the PathToVector operation and given the specified parameters. The returned DOMPhysics node can be used to start / stop the operation and monitor for its completion. PhysicsFollow(DOMTransform target, float minDistance, float, maxDistance) : DOMPhysics Creates a DOMPhysics node as a direct child of this node requesting the Follow operation and given the specified parameters. The returned DOMPhysics node can be used to start / stop the operation and monitor for its completion. PhysicsProjectile(float directionX, float directionY, float directionZ, float speed, bool gravity, float maxDistance) : DOMPhysics Creates a DOMPhysics node as a direct child of this node requesting the Projectile operation and given the specified parameters. The returned DOMPhysics node can be used to start / stop the operation and monitor for its completion. PhysicsProjectileVector(Vector3 direction, float speed, bool gravity, float maxDistance) : DOMPhysics Creates a DOMPhysics node as a direct child of this node requesting the ProjectileVector operation and given the specified parameters. The returned DOMPhysics node can be used to start / stop the operation and monitor for its completion. ResetTransformParent(bool restoreLastPosition) : void Resets this object’s transform parent reference to null so that it behaves normaly, transforming relative to the next DOMTransform up the hierarchy. SetPosition(float x, float y, float z) : void Sets the position (transform) of this object from its next parent DOMTransform or from world origin (0,0,0). SetRotation(float x, float y, float z) : void Sets the rotation of this object relative to its next parent DOMTransform or from (0,0,0) SetScale(float x, float y, float z) : void Sets the scale of this object relative to its next parent DOMTransform or from (1,1,1) SetTransformParent(DOMTransform target, Vector3 position, Vector3 rotation, Vector3 scale) : void Sets this objects transform parent reference to the specified DOMTransform preventing it from transforming relative to the next DOMTransform up the hierarchy, but rather, the specified object instead. Sets the position, rotation, and scale to new values along with the transform parent change as a single atomic operation.

DOMRenderable (C# class: DOMRenderableExtended) (Inherits DOMTransform) Properties: AnimationName : string (via attribution) The name of an animation to play CamPassable : bool (via attribution) Specifies that this object allow the camera to pass through it CastShadows : bool (via attribution) Specifies that this object should cast shadows onto surrounding geometry InteractionDistance : int (via attribution) The distance in worldspace units beyond which the user should not be able to interact with the object (see tool tips, respond to clicks, etc) LightProbes : bool (via attribution) Specifies that this object should use light probe information in it’s lighting calculations PhysicsEnabled : bool (via attribution) Specifies that physics is enabled for this object ReceiveShadows : bool (via attribution) Specifies that this object should receive shadows from surrounding geometry Methods: SetClickable(bool clickable) : void Apparently sets property #Clickable EnablePhysics(bool enabled) : void Apparently sets property #Physics

DOMController (C# class: DOMControllerExtended) (Inherits DOMRenderable) Properties: AnimationController : DOMAnimationController

               Returns the DOMAnimationController that this controller should use for animation.  If none is specified an immediate child DOMAnimationController will be used instead.

AnimationController ID : int (via attribution)

      The ID of the node of the specified AnimationController override.

ActiveController : DOMController

               Returns the DOMController that this controller should use to overide control.  If none is specified this DOMController controls itself.

ActiveControllerID : int (via attribution)

      The ID of the node of the specified ActiveController override.

BlendshapeTypeNodeID : int (via attribution)

      No idea what this does.

Direction : int (readonly) (via attribution)

      The direction the avatar is pointing in degrees.

IsParticipant : bool (readonly)

               Returns true if this object is in a persona document.

LookAt : DOMTransform

               Returns the DOMTransform object that this controller should try to “look at” if any

LookAtID : int (via attribution)

      The ID of the node of the specified LookAt target

LookAtBone : string (via attribution)

               Gets or sets the name of the bone in the LookAt target to fine-tune the looking.

Participant : Participant (readonly)

               Returns the Participant object associated with the persona document in which this controller resides.

ParticipantID : int (readonly) (via attribution)

      When in a multiplayer engagement, specifies the participant (slot) ID  (OMG… why is this here and why is it named so ambiguously close to Participant which has a really different meaning!)

PositionLocked : bool (readonly) (via attribution)

               Specifies whether the controller is allowed to move.

Running : int (readonly) (via attribution)

      Indicates the controller’s running speed.

Speed : float (readonly) (via attribution)

      The speed the avatar is moving in units per second.

Methods: LockPosition(bool locked) : void

               Position locks this object so it can’t move or be controlled to move. Useful for playing animations where locked position is necessary.

SetAnimationInt(string name, int value) : bool

               Sets the specified name and integer value of a property on the first child animation controller. This is super cheesy and should be replaced.

StartAnimation(string layerName, string animKey, bool looping, int timeOffset) : bool

               Creates a DOMAnimation node and puts it on the specified DOMAnimationLayer. This function is in the wrong place. Should be on DOMController

StartLookAt(DOMTransform target, string boneName) : bool

               Sets the LookAt and BoneName properties in a single update

StopAnimation(string layerName, string animKey) : bool

               Stops an animation from playing.

StopAnimationLayer(string layerName) : bool

               Stops all animations on the specified animation layer from playing.

StopLookAt() : bool

               Clears the LookAt and BoneName properties in a single update

DOMAnimation (C# class: DOMAnimationExtended) (Inherits DOMObject) none

DOMPhysics (C# class: DOMPhysicsExtended) (Inherits DOMObject) Events: OnComplete()

               Fires when the physics host says the physics operation represented by this object has been completed.

Methods: Start() : void

               Asks the physics host to start carrying out the physics operation represented by this object.

Stop() : void

               Asks the physics host to stop carrying out the physics operation represented by this object.

DOMVolume (C# class: DOMVolumeExtended) (Inherits DOMTransform) Events: OnEnter(Participant who, DOMObject source) Fires when a user enters an DOMVolume in world. Who is the Participant doing the entering. OnLeave(Participant who, DOMObject source) Fires when a user leaves an DOMVolume in world. Who is the Participant doing the entering.

DOMProperties (C# class: DOMPropertiesExtended) Methods: GetAttributeValue(string propertyName, string attributeName) : object Gets the value of an attribute placed on the specified property. Attributes are like special properties placed on the DOM nodes and properties when they appear in an ObjectType definition. An ObjectType is a container for a small snippet of DOM which can be re-used at runtime to create instances of that same layout and inject it into a running document. Attributes placed on these object or properties can later be accessed on any instance of these objects or properties. Think of these like metadata “about” an object or property, rather than data describing the object instance itself. HasAttribute(string propertyName, string attributeName) : bool Checks if the specified property has the specified attribute defined. WithAttribute(string attributeName) : string[] Gets the name of all properties with the given attribute defined.

SetInt32(string propertyName, int value, bool silent = false, bool persist = false)  : bool SetInt64(string propertyName, int value, bool silent = false, bool persist = false)  : bool SetInt64(string propertyName, int value, bool silent = false, bool persist = false)  : bool SetSingle(string propertyName, float value, bool silent = false, bool persist = false)  : bool SetGuid(string propertyName, string value, bool silent = false, bool persist = false)  : bool SetString(string propertyName, string value, bool silent = false, bool persist = false)  : bool SetBoolean(string propertyName, bool value, bool silent = false, bool persist = false)  : bool SetInt32Array(string propertyName, string JSONValue, bool silent = false, bool persist = false)  : bool SetStringArray(string propertyName, string JSONValue, bool silent = false, bool persist = false)  : bool SetColor(string propertyName, int value, bool silent = false, bool persist = false)  : bool SetPoint3D(string propertyName, Vector3 value, bool silent = false, bool persist = false)  : bool All of these functions set the value of a property in a type-safe manner.

RemoveProperty(string propertyName) Removes the specified property.

GetProperty(string propertyName) : ProtoValue GetInt32(string propertyName) : int GetSingle(string propertyName) : float GetGuid(string propertyName) : string GetBoolean(string propertyName) : bool GetString(string propertyName) : string GetColor(string propertyName) : Color32 GetPoint3D(string propertyName) : Point3D All of these functions get the value of a property in a type-safe manner.

AddWatcher(string propertyName, function callback) : void Begins watching for changes to a property, specifying a callback to be invoked when the property changes.

RemoveWatcher(string propertyName) : void Stops watching for changes to the specified property.