Skip to content

Server 1.1 ​

For Server-sided operations.

Getting the Server Object ​

lua
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.

luau
(
	namespaces: { string },
)
luau
Server.reg_namespaces({
	"ServerNotify",
	"ServerMessage",
	"WelcomeMessage",
	"Broadcast",
	"DataReplication",
	"RequestData",
	"Update"
})

.Connect ​

Connect to an event to receive incoming data from clients.

luau
(
	remoteName: string,
	fn: (player: Player, ...any) -> ...any
) -> Connection
luau
local 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.

luau
(
	remoteName: string,
	fn: (player: Player, ...any) -> ...any
) -> Connection
luau
Server.Once("WelcomeMessage", function(welcomeText)
	print(`Welcome: {welcomeText}`)
end)

.Wait yield ​

Wait for an event to be triggered.

luau
(
	remoteName: string
) -> (number, ...any)
luau
local elapsed, message = Server.Wait("ServerMessage")
print(`Received message after {elapsed} seconds: {message}`)

.DisconnectAll ​

Disconnect all connections for a specific event.

luau
(
	remoteName: string
)
luau
Server.DisconnectAll("ServerNotify")

.Destroy ​

Disconnect all connections and remove the event.

luau
(
	remoteName: string
)
luau
Server.Destroy("ServerNotify")

.Fire ​

Fire an event to a specific player.

luau
(
	remoteName: string,
	reliable: boolean,
	player: Player,
	...: any
)
luau
Server.Fire("ServerNotify", true, player, "Hello from server!")

.Fires ​

Fire an event to all connected players.

luau
(
	remoteName: string,
	reliable: boolean,
	...: any
)
luau
Server.Fires("Broadcast", true, "Server announcement!")

.FireExcept ​

Fire an event to all players except specified ones.

luau
(
	remoteName: string,
	reliable: boolean,
	except: { Player },
	...: any
)
luau
local excludedPlayers = { player1, player2 }
Server.FireExcept("Update", true, excludedPlayers, "Game update")

.Invoke yield ​

Invoke a client with timeout support.

luau
(
	remoteName: string,
	player: Player,
	timeout: number?,
	...: any
) -> ...any
luau
local response = Server.Invoke("RequestData", player, 3, "userInfo")
if response then
	print("Client responded:", response)
else
	print("Request timed out")
end

WARNING

This function is yielded. Returns nil if timeout occurs.

.useSchema ​

Define a schema for strict data packing on a specific event.

luau
(
	remoteName: string,
	schema: Buffer.SchemaType
)
luau
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.