KROYSDOCS
HomeWhat's newv0.1.0

Network

Networked play from scripts: connecting to servers, the local player, and custom messages between clients and the server.

Kindclass
NamespaceKroys.EngineScripting
Members32
SourceNetwork.cs
EXAMPLE

In a script

A complete script that uses Network; copy it into your scripts project.

Multiplayer.cs
// Client side: ask the server, show its answer.
[ClientOnly]
public sealed class CraftingClient : EntityScript
{
    protected override void OnUpdate(float deltaTime)
    {
        if (!Network.IsClient || !Network.IsConnected || !Input.IsKeyPressed(KeyCode.F)) return;
        NetworkWriter writer = new();
        writer.Write("IronSword");
        writer.Write(Transform.WorldPosition);
        Network.SendToServer("Craft.Start", writer, NetworkDelivery.ReliableOrdered);
    }

    protected override void OnNetworkMessage(NetworkMessage message)
    {
        if (message.Name != "Craft.Accepted") return;
        NetworkReader reader = message.CreateReader();
        Debug.Log($"crafting {reader.ReadString()} for {reader.ReadSingle():0.0} s");
    }
}
REFERENCE

Members

Properties
#public static NetworkConnectionState ConnectionState { get; }
The state of the connection started by Connect.
propertystatic
#public static NetworkRuntimeMode Mode { get; }
Whether this world is a client, the dedicated server, or not networked.
propertystatic
#public static bool IsServer { get; }
True on the dedicated server.
propertystatic
#public static bool IsClient { get; }
True in a client connected (or connecting) to a server.
propertystatic
#public static bool IsConnected { get; }
True while a client is connected to a server.
propertystatic
#public static uint LocalClientId { get; }
The client id the server gave this client (zero when not connected).
propertystatic
#public static Entity LocalPlayer { get; }
The local player's network object as an entity handle (invalid when not connected).
propertystatic
#public static NetId LocalPlayerNetId { get; }
Network id of the local player's object (invalid when not connected).
propertystatic
#public static NetworkMessage[] Messages { get; }
Custom messages received for this world and not cleared yet (OnNetworkMessage receives them one by one).
propertystatic
Methods
#public static bool Connect(string address, string playerName)
Joins a server from a shipped game. Watch ConnectionState for the result.
methodstatic
#public static void Disconnect()
Leaves the server.
methodstatic
#public static void SearchServers()
Asks servers on the local network to identify themselves.
methodstatic
#public static NetworkServerInfo[] GetServers()
Servers that have answered the latest search so far.
methodstatic
#public static NetworkMessage[] ConsumeMessages()
Returns the received messages and clears them.
methodstatic
#public static void ClearMessages()
Drops the received messages.
methodstatic
#public static bool SendToServer(string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Client: sends a custom message to the server; its scripts receive it in OnNetworkMessage. False when it cannot be sent.
methodstatic
#public static bool SendToServer(string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
Client: sends raw bytes to the server as a custom message.
methodstatic
#public static bool SendToClient(uint clientId, string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: sends a custom message to one client.
methodstatic
#public static bool SendToClient(uint clientId, string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: sends raw bytes to one client.
methodstatic
#public static bool SendToAllClients(string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: sends a custom message to every client.
methodstatic
#public static bool SendToAllClients(string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: sends raw bytes to every client.
methodstatic
#public static bool SendToAllClientsExceptSender(string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: sends a custom message to every client except the sender of the message being handled.
methodstatic
#public static bool SendToAllClientsExceptSender(string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: sends raw bytes to every client except the sender of the message being handled.
methodstatic
#public static bool SendToAllClientsExceptSender(NetworkMessage sourceMessage, string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: forwards to every client except the one that sent sourceMessage.
methodstatic
#public static bool SendToAllClientsExceptSender(NetworkMessage sourceMessage, string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: forwards raw bytes to every client except the one that sent sourceMessage.
methodstatic
#public static bool SendToAllClientsExcept(uint excludedClientId, string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: sends a custom message to every client except one.
methodstatic
#public static bool SendToAllClientsExcept(uint excludedClientId, string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
Server: sends raw bytes to every client except one.
methodstatic
#public static bool SendToServerTarget(string name, Entity target, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Client: sends a custom message to the server addressed to one network object (NetworkMessage.Target).
methodstatic
#public static bool SendToServerTarget(string name, Entity target, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
Client: sends raw bytes to the server addressed to one network object.
methodstatic
#public static bool SendToServerTarget(string name, NetId target, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Client: sends a custom message addressed to the network object with this id.
methodstatic
#public static bool SendToServerTarget(string name, uint targetNetId, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
Client: sends a custom message addressed to the network object with this id.
methodstatic
#public static bool SendToServerTarget(string name, uint targetNetId, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
Client: sends raw bytes addressed to the network object with this id.
methodstatic
Signatures
public static bool Connect(string address, string playerName)
public static void Disconnect()
public static NetworkConnectionState ConnectionState { get; }
public static void SearchServers()
public static NetworkServerInfo[] GetServers()
public static NetworkRuntimeMode Mode { get; }
public static bool IsServer { get; }
public static bool IsClient { get; }
public static bool IsConnected { get; }
public static uint LocalClientId { get; }
public static Entity LocalPlayer { get; }
public static NetId LocalPlayerNetId { get; }
public static NetworkMessage[] Messages { get; }
public static NetworkMessage[] ConsumeMessages()
public static void ClearMessages()
public static bool SendToServer(string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToServer(string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToClient(uint clientId, string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToClient(uint clientId, string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToAllClients(string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToAllClients(string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToAllClientsExceptSender(string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToAllClientsExceptSender(string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToAllClientsExceptSender(NetworkMessage sourceMessage, string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToAllClientsExceptSender(NetworkMessage sourceMessage, string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToAllClientsExcept(uint excludedClientId, string name, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToAllClientsExcept(uint excludedClientId, string name, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToServerTarget(string name, Entity target, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToServerTarget(string name, Entity target, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToServerTarget(string name, NetId target, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToServerTarget(string name, uint targetNetId, NetworkWriter writer, NetworkDelivery delivery = NetworkDelivery.Reliable)
public static bool SendToServerTarget(string name, uint targetNetId, byte[] payload, NetworkDelivery delivery = NetworkDelivery.Reliable)

KroysEngine 0.1.0 documentation, built from the engine repository by Tools/BuildDocsSite.py.