Line 37: | Line 37: | ||
− | {{ScriptFunction|void|SendMessageToAllClientScripts|(string messageName, Table message);|Sends a network message to all client scripts.|5=<pre>Space.SendMessageToAllClientScripts("thekey",{"themessage"})</pre>|6=<pre> | + | {{ScriptFunction|void|SendMessageToAllClientScripts|(string messageName, Table message);|Sends a network message to all client scripts.|5=<pre>Space.SendMessageToAllClientScripts("thekey",{"themessage"})</pre>|6=<pre>--Clicking the object by a single client will send a message to the server which triggers a message response to all clients |
+ | --server script-- | ||
+ | function OnScriptServerMessage(key, table) | ||
+ | if key == "testKey" then | ||
+ | Space.SendMessageToAllClientScripts("ServerResponse",{"message response to all client scripts in region that are subscribed to this key"}) | ||
+ | end | ||
− | {{ScriptFunction|void|SendMessageToClientScripts|(int playerID, string messageName, Table message);|Sends a network message to a client script belonging to a specific player|5=<pre>Space.SendMessageToAllClientScripts(APlayerID,"thekey",{"themessage"})</pre>|6=<pre></pre>}} | + | end |
+ | |||
+ | --client script-- | ||
+ | thisObject = Space.Host.ExecutingObject | ||
+ | |||
+ | OnClickFunction = function() | ||
+ | Space.Network.SendNetworkMessage("testKey",{"Test Message"}) | ||
+ | end | ||
+ | |||
+ | OnRecieveFunction = function(SNetworkMessage) | ||
+ | Space.Log(SNetworkMessage.Key) | ||
+ | Space.Log(SNetworkMessage.Message[1]) | ||
+ | end | ||
+ | |||
+ | Space.Network.SubscribeToNetwork("ServerResponse", OnRecieveFunction) | ||
+ | thisObject.AddClickable() | ||
+ | thisObject.Clickable.OnClick(OnClickFunction)</pre>}} | ||
+ | |||
+ | |||
+ | {{ScriptFunction|void|SendMessageToClientScripts|(int playerID, string messageName, Table message);|Sends a network message to a client script belonging to a specific player|5=<pre>Space.SendMessageToAllClientScripts(APlayerID,"thekey",{"themessage"})</pre>|6=<pre>--Clicking the object by a single client will send a message to the server which triggers... | ||
+ | --a message response only to that specific client | ||
+ | |||
+ | |||
+ | --server script-- | ||
+ | |||
+ | |||
+ | function OnScriptServerMessage(key, table) | ||
+ | if key == "testKey" then | ||
+ | local sender = table[2] | ||
+ | Space.SendMessageToClientScripts(sender,"ServerResponse",{"a message response to the clicker's client script in region that is subscribed to this key"}) | ||
+ | end | ||
+ | end | ||
+ | |||
+ | |||
+ | --client script-- | ||
+ | thisObject = Space.Host.ExecutingObject | ||
+ | |||
+ | OnClickFunction = function() | ||
+ | id = Space.Scene.PlayerAvatar.ID | ||
+ | Space.Network.SendNetworkMessage("testKey",{"Test Message", id}) | ||
+ | end | ||
+ | |||
+ | OnRecieveFunction = function(SNetworkMessage) | ||
+ | Space.Log(SNetworkMessage.Key) | ||
+ | Space.Log(SNetworkMessage.Message[1]) | ||
+ | end | ||
+ | |||
+ | Space.Network.SubscribeToNetwork("ServerResponse", OnRecieveFunction) | ||
+ | thisObject.AddClickable() | ||
+ | thisObject.Clickable.OnClick(OnClickFunction)</pre>}} | ||
{{ScriptFunction|void|StartCoroutine|(<nowiki>string name, DynValue parameter=default(DynValue))</nowiki>;|Runs the given function as a coroutine. A parameter is optional.|5=<pre>Space.StartCoroutine("AFunctionName")</pre>|6=<pre></pre>}} | {{ScriptFunction|void|StartCoroutine|(<nowiki>string name, DynValue parameter=default(DynValue))</nowiki>;|Runs the given function as a coroutine. A parameter is optional.|5=<pre>Space.StartCoroutine("AFunctionName")</pre>|6=<pre></pre>}} |
Log a message to console. (only works on preview grid)
Space.Log("Log")
--Clicking the object will make the server script log "Test Message" on all clients --server script function OnScriptServerMessage(key, table) if key == "testKey" then Space.Log("Message:" .. table[1]) end end --client script thisObject = Space.Host.ExecutingObject OnClickFunction = function() Space.Network.SendNetworkMessage("testKey",{"Test Message"}) end thisObject.AddClickable() thisObject.Clickable.OnClick(OnClickFunction)
Subscribe to network messages on "key".
Space.SubscribeToNetwork("thekey")
Unsubscribe from network messages on "key".
Space.UnsubscribeFromNetwork("thekey")
Sends a network message to all client scripts.
Space.SendMessageToAllClientScripts("thekey",{"themessage"})
--Clicking the object by a single client will send a message to the server which triggers a message response to all clients --server script-- function OnScriptServerMessage(key, table) if key == "testKey" then Space.SendMessageToAllClientScripts("ServerResponse",{"message response to all client scripts in region that are subscribed to this key"}) end end --client script-- thisObject = Space.Host.ExecutingObject OnClickFunction = function() Space.Network.SendNetworkMessage("testKey",{"Test Message"}) end OnRecieveFunction = function(SNetworkMessage) Space.Log(SNetworkMessage.Key) Space.Log(SNetworkMessage.Message[1]) end Space.Network.SubscribeToNetwork("ServerResponse", OnRecieveFunction) thisObject.AddClickable() thisObject.Clickable.OnClick(OnClickFunction)
Sends a network message to a client script belonging to a specific player
Space.SendMessageToAllClientScripts(APlayerID,"thekey",{"themessage"})
--Clicking the object by a single client will send a message to the server which triggers... --a message response only to that specific client --server script-- function OnScriptServerMessage(key, table) if key == "testKey" then local sender = table[2] Space.SendMessageToClientScripts(sender,"ServerResponse",{"a message response to the clicker's client script in region that is subscribed to this key"}) end end --client script-- thisObject = Space.Host.ExecutingObject OnClickFunction = function() id = Space.Scene.PlayerAvatar.ID Space.Network.SendNetworkMessage("testKey",{"Test Message", id}) end OnRecieveFunction = function(SNetworkMessage) Space.Log(SNetworkMessage.Key) Space.Log(SNetworkMessage.Message[1]) end Space.Network.SubscribeToNetwork("ServerResponse", OnRecieveFunction) thisObject.AddClickable() thisObject.Clickable.OnClick(OnClickFunction)
Runs the given function as a coroutine. A parameter is optional.
Space.StartCoroutine("AFunctionName")
Returns a unique identifier of this script runtime.
scriptID = Space.ScriptID
Returns a unique identifier for the instance of the region. Useful in the case of multiple shards/instances being used. InstanceID does not necessarily equal to the RegionID, even if there's only one instance running.
instance = Space.InstanceID
Returns a unique identifier for the region. (Same ID seen in curator)
region = Space.RegionID
Access to the SScene class methods and properties.
Space.Scene
Access to the SDatabase class methods and properties.
Space.Database
Access to the SMath class methods and properties.
Space.Math
Access to the SShared class methods and properties.
Space.Shared
Access to the SWebservice class methods and properties.
Space.WebServices
Returns "Server" if this script is a Server script
type = Space.RuntimeType
Returns true if in Editor. (this will return false on server scripts)
IsInEditor = Space.InEditor
Time, in seconds, since this script runtime has been awake.
SecondsAwake = Space.TimeSinceAwake
Returns a string of the current Date/Time in UTC
DateAndTime = Space.DateTimeUTC
Returns the current Unix time (in seconds) (same as ServerTimeUnix)
unixtime = Space.LocalTimeUnix
Returns the current Unix time (in seconds) (same as LocalTimeUnix)
unixtime = Space.ServerTimeUnix
Server script events are "Magic methods" which, unlike client scripts, you don't have to bind or subscribe to. They will be called as long as you have their methods implemented in your server script.
An event function which will be called whenever an Avatar joins and will also contain the Avatar's ID as a parameter.
function OnAvatarJoin(playerID) player = playerID end
An event function which will be called whenever an Avatar leaves and will also contain the Avatar's ID as a parameter.
function OnAvatarLeave(playerID) player = playerID end
An event function which will be called whenever the server script receives a Network Message, and will contain the network message key String and message Table as a parameter.
function OnScriptServerMessage(key, table) theKeyString = key theSNetworkMessageTable = table end
|