Server 1.1
For Server-sided operations.
Getting the Server Object
local Server = Warp.Server().reg_namespaces
Register namespaces to ensure all of the namespaces is being registered earlier on the server to prevent any unexpected issues on the client.
INFO
this is optional and conditional, you may have to use this if you had a problem with identifier namespace on client.
(
namespaces: { string },
) -> ConnectionServer.reg_namespaces({
"ServerNotify",
"ServerMessage",
"WelcomeMessage",
"Broadcast",
"DataReplication",
"RequestData",
"Update"
}).Connect
Connect to an event to receive incoming data from clients.
(
remoteName: string,
fn: (player: Player, ...any) -> ...any
) -> Connectionlocal connection = Server.Connect("ServerNotify", function(player, message)
print(`Client message from {player}: {message}`)
end)
print(connection.Connected).Once
Similar to :Connect but automatically disconnects after the first firing.
(
remoteName: string,
fn: (player: Player, ...any) -> ...any
) -> ConnectionServer.Once("WelcomeMessage", function(welcomeText)
print(`Welcome: {welcomeText}`)
end).Wait yield
Wait for an event to be triggered.
(
remoteName: string
) -> (number, ...any)local elapsed, message = Server.Wait("ServerMessage")
print(`Received message after {elapsed} seconds: {message}`).DisconnectAll
Disconnect all connections for a specific event.
(
remoteName: string
)Server.DisconnectAll("ServerNotify").Destroy
Disconnect all connections and remove the event.
(
remoteName: string
)Server.Destroy("ServerNotify").Fire
Fire an event to a specific player.
(
remoteName: string,
reliable: boolean,
player: Player,
...: any
)Server.Fire("ServerNotify", true, player, "Hello from server!").Fires
Fire an event to all connected players.
(
remoteName: string,
reliable: boolean,
...: any
)Server.Fires("Broadcast", true, "Server announcement!").FireExcept
Fire an event to all players except specified ones.
(
remoteName: string,
reliable: boolean,
except: { Player },
...: any
)local excludedPlayers = { player1, player2 }
Server.FireExcept("Update", true, excludedPlayers, "Game update").Invoke yield
Invoke a client with timeout support.
(
remoteName: string,
player: Player,
timeout: number?,
...: any
) -> ...anylocal response = Server.Invoke("RequestData", player, 3, "userInfo")
if response then
print("Client responded:", response)
else
print("Request timed out")
endWARNING
This function is yielded. Returns nil if timeout occurs.
.useSchema
Define a schema for strict data packing on a specific event.
(
remoteName: string,
schema: Buffer.SchemaType
)local Server = Warp.Server()
local dataSchema = Server.Schema.struct({
Coins = Server.Schema.u32,
Level = Server.Schema.u8,
Inventory = Server.Schema.array(Server.Schema.u32),
Settings = Server.Schema.struct({
VFX = Server.Schema.boolean,
Volume = Server.Schema.f32,
Language = Server.Schema.string,
})
})
Server.useSchema("DataReplication", dataSchema).Schema
Access to Buffer.Schema for creating data schemas.