Skip to main content

serverOwned()

function serverOwned\<T\>(options: SyncedObservableOptions\<T\>): ServerOwnedObservable\<T\>;

Defined in: src/lib/observable/serverOwned.ts:92

Create a server-owned observable.

On server: Returns a writable observable that syncs to clients. On client: Returns a read-only observable that receives updates from server. On web: Returns a stub (web uses the React integration layer).

Type Parameters

Type Parameter
T

Parameters

ParameterTypeDescription
optionsSyncedObservableOptions<T>Configuration options

Returns

ServerOwnedObservable<T>

Server-owned observable

Example

// Global state (same value for all players)
const gameState = serverOwned({
    id: "game:state",
    initialValue: { phase: "lobby", timer: 0 },
    broadcast: true, // All players receive updates
});
 
// Per-player state (each player has their own value)
// On server - create one per player:
const playerNeeds = serverOwned({
    id: "player:needs",
    initialValue: { hunger: 100, thirst: 100 },
    perPlayer: true, // Per-player mode
});
playerNeeds.subscribePlayer(playerId);
playerNeeds.set({ hunger: 80, thirst: 90 }); // Syncs to that player
 
// On client - create once, receives updates automatically:
const playerNeeds = serverOwned({
    id: "player:needs",
    initialValue: { hunger: 100, thirst: 100 },
    perPlayer: true,
});
playerNeeds.subscribe((needs) => {
    console.log("My needs:", needs);
});