Repository navigation
Moderation
Three admin-only pages deal with people behaving badly on a virtual server, or with a message that has to reach a client who is not there: Bans (in Security in the navigation), Complaints and Offline Messages (both in Content). They show and change what the TeamSpeak server itself keeps — nothing here is stored by the manager.
Kicking, banning and moving people who are connected right now is on the Clients page; banning someone from the list of everybody the server has seen is on the Client Database.
The Bans page is the server's ban list: every ban rule that is active on the selected virtual server, however it got there — made here, from the Clients page, the Client Database, a bot flow, the Query Console or the TeamSpeak client itself. A ban made from the Connection Journal on a TeamSpeak server lands here too, and is lifted here.
- Columns: the last nickname the banned client used, the address, the unique ID, the nickname pattern, the reason, how long the ban lasts, when it was made and by whom. The search field narrows by last nickname.
-
A ban rule can name an address, a nickname pattern, a unique ID — or several. TeamSpeak 6 matches the address and the nickname as patterns (regular expressions) that must fit the whole value, ignoring capitalisation, and the unique ID exactly. A rule that names more than one only matches when all of them do. In a pattern a dot stands for any character, so write
\.for a literal dot. -
Add Ban asks for what the rule names (IP address, Name (regex) or Unique ID), the value, an optional reason and the duration: one hour, one day, one week, 30 days or permanent. The examples in the field —
192.168.1.*,.*bad.*— show the pattern style. A rule on an address or a name is a pattern, so a careless one can lock out far more people than you meant; to ban one connected person precisely, use the Client Database, which builds an exact rule from the profile. - The bin at the end of a row lifts the ban straight away, without asking.
A ban on the TeamSpeak server keeps clients out of TeamSpeak. It does not stop anybody from opening this web interface — for that, see the web bans of the Connection Journal.
Complaints lists the complaints that clients have filed against each other on the virtual server: who complained (From), about whom (About), the text and when. The search field searches the text.
The page is read-only. Listing complaints needs the permission b_client_complain_list on the account the manager connects with; without it TeamSpeak refuses the request. To act on a complaint, ban or kick from the Clients or Client Database page.
TeamSpeak lets a client leave an offline message for another client's unique ID, to be read the next time that client is online. The Offline Messages page is the manager's window onto this:
-
The list is TeamSpeak's
messagelist: the offline messages in the inbox of the account the manager connects with — not a server-wide list. It shows who a message is from, its subject, its date and whether it was read; the bin deletes one (without asking). TeamSpeak names the sender only by unique ID, so the manager looks the nickname up in the client database: From shows the nickname (the unique ID appears when you hover it), or the bare unique ID when the database no longer knows that client, for instance because the profile was deleted. - Opening a message (the eye) fetches its text from TeamSpeak, which the list does not carry; the sender's nickname and unique ID, and the date, are shown above it. A message that was deleted in the meantime says so instead of showing text. TeamSpeak itself leaves the Unread flag alone when a message is fetched, so the manager sets it: opening an unread message marks it read (once its text has arrived) and its row turns to Read at once. A message that could not be loaded is not marked.
- Compose sends an offline message: the recipient's unique ID, a subject, and the text. Copy the unique ID from the Client Database (the copy button in a profile).
Why the list can stay empty. A message can only be left for a client's unique ID, and TeamSpeak refuses one it does not know. The built-in serveradmin query login is not a client, so nobody can leave a message for it: with an API key of that login the list is always empty. It only fills when the manager's API key belongs to a real client (a key can be created for another client, which needs the permission b_virtualserver_apikey_manage). A client who writes a message needs the permission b_client_offline_textmessage_send.
A short hint under the page's title says the same: the list is the inbox of the query login the manager is connected with, not a list for the whole server.
Listing, opening, marking as read, composing and deleting use TeamSpeak's messagelist, messageget, messageupdateflag, messageadd and messagedel; the nickname comes from clientgetnamefromuid, which needs no permission.
v0.3, last edited 10.10.2026
Getting started
Using the app
Running it
When something is odd
Contributing