-
1.
ZANDRONUM SPECTATOR STREAM SETUP
-
2.
A no-player-slot camera client, and how to switch between your top players
-
3.
==========================================================================
-
4.
-
5.
PURPOSE — WHY THIS MATTERS
-
6.
-
7.
If you cast (or want to cast) Zandronum matches that are being streamed live,
-
8.
you face a classic problem: every connected client normally counts against the
-
9.
server's player limit. If you also need a spectator client purely to *film* the
-
10.
action (feeding OBS or your chosen capture software), that client eats a seat a
-
11.
real player could have used. On a small match that is often the difference
-
12.
between a full server and a shorthanded one.
-
13.
-
14.
This guide sets up Zandronum so a dedicated stream client can watch the match —
-
15.
and switch its camera between the top two or four players — without ever taking
-
16.
a player slot. The result: competitors keep their seats, and a director (or just
-
17.
one person mashing a key) can follow the leaders while the match plays out.
-
18.
-
19.
This is useful for:
-
20.
* Live casters who want POV footage of the leading players.
-
21.
* Recording/archiving matches from a neutral camera that does not interfere.
-
22.
* LAN or small-community matches where every player slot is precious.
-
23.
* CTF / Possession / Terminator casts, where following the objective carrier
-
24.
is far more exciting than watching a fixed wall.
-
25.
-
26.
THE KEY INSIGHT — TWO DIFFERENT LIMITS
-
27.
-
28.
Zandronum separates two concepts that many people assume are the same thing:
-
29.
-
30.
sv_maxplayers how many clients may actually JOIN the game (the real players)
-
31.
sv_maxclients the TOTAL number of connections allowed (players + spectators)
-
32.
-
33.
Anyone who connects beyond sv_maxplayers is automatically seated in the stands
-
34.
as a spectator instead of on the field. That single distinction is the whole
-
35.
trick: make room in sv_maxclients for exactly one (or a few) extra connection(s)
-
36.
reserved for your stream client, and that client spectates without costing a
-
37.
competitive seat.
-
38.
-
39.
-
40.
PART 1 — SERVER SETUP (on the Zandronum server)
-
41.
-
42.
Set these in the server config (INISECTION, server.cfg, or via console):
-
43.
-
44.
sv_maxplayers 8
-
45.
sv_maxclients 9
-
46.
-
47.
Adjust the numbers to taste. sv_maxplayers is your true match size; just add one
-
48.
for each spectator/stream client you want to allow in beyond the players:
-
49.
-
50.
sv_maxplayers 4 -> sv_maxclients 5 (one spectator)
-
51.
sv_maxplayers 8 -> sv_maxclients 9 (one spectator)
-
52.
sv_maxplayers 8 -> sv_maxclients 10 (two spectators)
-
53.
-
54.
(Optionally) keep random folks out of the game while letting the stream client
-
55.
sit harmlessly in the stands:
-
56.
-
57.
sv_forcejoinpassword true
-
58.
sv_joinpassword "yourSecretWord"
-
59.
-
60.
A join password only gates the act of joining the GAME. Spectators do not need it,
-
61.
so your stream client still connects and watches without a hitch. This also means
-
62.
an anonymous stray who joins can only spectate, which is fine for your broadcast.
-
63.
-
64.
Two more server variables worth knowing:
-
65.
-
66.
sv_maxclientsperip 2 Default. Counts same-IP connections. If your players
-
67.
and the stream client all share one internet address
-
68.
(common on a LAN), raise this so the total is covered,
-
69.
e.g. sv_maxclientsperip 8.
-
70.
-
71.
sv_disallowspying false Default, and what you want. If it is true (or the map
-
72.
has the flag set), spectators cannot spy on players at
-
73.
all, and none of Part 3 works.
-
74.
-
75.
sv_afk2spec N Optional. Idle players are moved to spectate after N
-
76.
minutes, keeping the field tidy.
-
77.
-
78.
-
79.
PART 2 — STREAM CLIENT SETUP (on the machine that captures/streams)
-
80.
-
81.
Before connecting, set this so the client arrives as a spectator from the first
-
82.
instant and never tries to take a player slot:
-
83.
-
84.
cl_startasspectator true
-
85.
-
86.
This forces the client to spectate immediately on connect. (Set it false to make
-
87.
the client auto-join the game instead — the opposite behavior.)
-
88.
-
89.
Comfort and cleanup options on the stream machine:
-
90.
-
91.
r_drawspectatingstring false
-
92.
Hides the "Spectating - Press USE to join" prompt so it never appears on
-
93.
your broadcast.
-
94.
-
95.
cl_telespy true (optional)
-
96.
When true, the spectator's body is teleported to the player being spied,
-
97.
snapping the camera onto them.
-
98.
-
99.
cl_spectatormove 0/1
-
100.
Adjusts how freely the spectator can move around the map while spectating.
-
101.
-
102.
fov <value>
-
103.
Raise the field of view for a wider, more cinematic look.
-
104.
-
105.
-
106.
PART 3 — SWITCHING BETWEEN YOUR TOP TWO OR FOUR PLAYERS
-
107.
-
108.
This is the heart of the broadcast. Zandronum's spectator mode gives you point-
-
109.
of-view "spying" on the other players, and — crucially — you can cycle through
-
110.
them. There is NO single built-in button that jumps to "the player currently in
-
111.
first place on the scoreboard," so a human (or a director) drives the switch.
-
112.
The commands:
-
113.
-
114.
SpyNext Cycle forward through the player list (ascending)
-
115.
SpyPrev Cycle backward through the player list (descending)
-
116.
Spy <name> Spy a specific player by name
-
117.
Spy <index> Spy a specific player by their player-list index
-
118.
SpyCarrier Snap straight to the player carrying the objective
-
119.
(flag, skull, possession/terminator artifact)
-
120.
-
121.
To switch between your stream's featured two or four players, bind two keys:
-
122.
-
123.
bind F5 SpyPrev
-
124.
bind F6 SpyNext
-
125.
-
126.
Press F5/F6 to approach a leader's camera. If you only care about who currently
-
127.
has the objective (best for CTF / Possession / Terminator / Skulltag), bind one
-
128.
key to SpyCarrier and ride whoever is clutching the item.
-
129.
-
130.
By default, in team and co-op modes, spying shows you each player's actual POV
-
131.
in first person. That is what makes this a real "casting" experience rather than
-
132.
a floating freecam, though you can also enter free-fly spectator (Spectate /
-
133.
fly) and pilot the camera yourself for wide shots between switches.
-
134.
-
135.
-
136.
PART 4 — CAPTURING IT FOR THE STREAM
-
137.
-
138.
Point your capture software at the stream client's window:
-
139.
-
140.
* OBS (or similar): add a Window Capture / Game Capture source targeting the
-
141.
spectator Zandronum window.
-
142.
* Switch POV with your Spy keys (F5/F6) as the match unfolds.
-
143.
* For objective game modes, camp the SpyCarrier binding so the camera follows
-
144.
whoever holds the flag/artifact — usually exactly who the stream wants to see.
-
145.
-
146.
The client itself does not need a human to play; it only watches. One operator
-
147.
(or an auto-hotkey script pressing SpyPrev/SpyNext on a timer) is enough for a
-
148.
dynamic, edited-feel broadcast.
-
149.
-
150.
THE SHORT VERSION (copy-paste cheat sheet)
-
151.
-
152.
SERVER:
-
153.
sv_maxplayers 8
-
154.
sv_maxclients 9
-
155.
-
156.
STREAM CLIENT, before connect:
-
157.
cl_startasspectator true
-
158.
-
159.
BINDINGS on stream client:
-
160.
bind F5 SpyPrev
-
161.
bind F6 SpyNext
-
162.
(optional) bind F7 SpyCarrier
-
163.
-
164.
THAT'S IT. The stream client connects, is seated in the stands (no player slot
-
165.
used), and you switch between your top players with F5/F6.
-
166.
-
167.
CLEAR LIMITATIONS (so nobody is surprised)
-
168.
-
169.
* No automatic scoreboard-aware camera. Zandronum will not rotate on its own to
-
170.
"the current #1 player." Switching is manual (Spy keys) or scripted
-
171.
(auto-keypress on a timer). True auto-following of the scoreboard leader is
-
172.
NOT a built-in feature.
-
173.
* The stream client's view is driven by the client itself; for a fully
-
174.
automated multi-view production you would be adding OBS scene-switching or a
-
175.
custom script on top.
-
176.
* Same-IP connections count: watch sv_maxclientsperip on LAN setups.
-
177.
-
178.
Everything above is verified against the official Zandronum wiki
-
179.
(console commands, server variables, and console variables pages) and reflects
-
180.
standard, stable behavior in current Zandronum 3.x releases.
by Guest
by Guest
by Guest
by Guest
by Guest