Repository navigation
Client Database
The Client Database page (Management in the navigation, admins only) lists every profile the server has ever seen, including clients that are offline and have not been back for years. It is where you look someone up, ban or delete a profile, switch server group memberships for many people in one table, and export the lot.
The people who are connected right now are on the Clients page.
TeamSpeak hands the profiles over in blocks, and so does the page: it loads the first 200 and says how many it has ("200 of 5816 profiles loaded"). Load 200 more fetches the next block, Load all keeps going until everything is there, and Stop ends that after the block in flight. Leaving the page stops it too.
- The filter field under the list narrows by nickname — but only among the profiles that are already loaded. To search the whole database, use the search bar below.
- Columns: a status column (see below), nickname, database ID, unique ID, last seen, number of connections, last IP address and description by default. Columns in the header adds First seen and Login name and removes the others; Reset to default puts them back. Your choice is remembered in your browser. The nickname column cannot be hidden.
- Click a row to open its profile; ⋯ at the end of a row offers Details, Ban and Delete.
- Refresh reloads the list and the ban list.
The status column carries up to two marks: a red ban symbol on a profile that an active ban rule covers (the whole row is tinted red too), and a green dot on a profile that is connected right now. Hover for the explanation. Whether a ban rule covers a profile is worked out by the page from the server's ban list, the way TeamSpeak 6 evaluates it: a rule can name a unique ID (compared exactly), a nickname and an address (both patterns that must match the whole value, ignoring capitalisation), and when it names several of them all must match. A rule that also names a myTeamSpeak ID can only be judged by the server, so the page does not mark such a rule's profiles.
The search bar asks TeamSpeak itself, which is the only way to reach profiles that are not loaded. Pick what to search by:
| Search by | How it matches |
|---|---|
| Nickname | Text without % matches anywhere in the nickname; % stands for any characters. |
| Unique ID | Text without % matches anywhere in the unique ID. |
| Database ID | Exactly that ID. |
| Custom info | TeamSpeak needs the identifier exactly; only the value accepts %, and an empty value means any value. A Matched on column then shows which entry matched. |
| Channel group | Profiles that hold a channel group other than the default one, in one channel or in all of them (and, optionally, one particular group). The Matched on column shows channel and group. TeamSpeak has no channel owner; this is the closest equivalent. |
TeamSpeak returns at most 50 matches for a nickname or unique ID search, so a broad search can hide more — the page says so and asks you to narrow it. Back to the list returns to the loaded profiles.
The profile dialog shows what TeamSpeak keeps about it:
- database ID, unique ID (with a copy button), when it was first and last seen, the number of connections, the last IP address, the description, and whether it has an avatar. If the client is connected right now, it says as which client and in which channel;
- the traffic: uploaded and downloaded this month and in total;
- its server groups, its channel groups (per channel), and its custom info;
- the ban rules that cover it — with their ID, how long they last, what they name (unique ID, address, nickname) and the reason.
A section TeamSpeak refuses to show says Not available (TeamSpeak refused access) instead of staying silent. The same buttons for banning and deleting are at the bottom.
Ban in the row menu, the dialog, or — for several profiles at once — in the bar that appears when you tick rows. You choose what the rule names; one rule is created per profile and ticked item:
| Rule on | What it does |
|---|---|
| Unique ID | Bans this identity only. Anyone can get around it with a new identity. (Ticked by default.) |
| Nickname | Bans exactly this nickname, in any capitalisation. (The rule is the nickname as an anchored pattern with its special characters escaped, so it does not catch nicknames that merely contain it.) |
| IP address | Bans the last known address — and so everyone else who connects from it. (Again an exact, anchored pattern.) |
An item is greyed out when none of the selected profiles has a value for it (no address on record, say); if only some have none, the dialog tells you how many get no rule. Duration: one hour (the default), one day, one week, 30 days or permanent; the reason is optional. A message afterwards says how many rules were created and, if any failed, why.
A ban from the Connection Journal works the other way round: it starts from an address that was seen, not from a profile.
Delete removes the profile from the server's database together with its custom info, avatar, server group memberships, channel group assignments and client permissions. A client that connects again afterwards is treated as new and gets a new database ID. That cannot be undone, and the dialog says so.
Profiles whose client is connected right now cannot be deleted; they are skipped, and the button is disabled in their row. If you delete several at once, the dialog counts how many will be skipped, and afterwards how many were deleted or failed.
The Group mode switch turns the table into a membership editor: one checkbox column per server group, ticked where the profile is a member. Ticking or unticking changes the membership at once, and a message with an Undo button stays for a few seconds.
- Only the regular server groups are offered — not TeamSpeak's template groups and not the groups ServerQuery accounts use. The server's default group is left out as well: everybody is in it, and it cannot be listed or changed.
- Columns → Server groups (group mode) chooses which groups appear as columns, per server. Groups you create later show up by themselves.
- A group whose members TeamSpeak refused to list has its checkboxes disabled, with the reason as a tooltip (typically a missing permission).
This is the quick way to hand out or take away a group for many people, online or not. For who is in this one group, the Server and Channel Groups page is the other view.
Export writes the table to a file. It always contains the columns you currently show (and the group columns, if group mode is on), and you choose:
- What to export: the selected profiles, the current view (after filter and sort), everything loaded, or the whole database — which first loads every remaining block.
- The format: CSV, an HTML table or JSON.
- For CSV: the encoding (UTF-8 with BOM, which Excel opens correctly; UTF-8 without BOM; UTF-16LE with BOM), and the delimiter (comma, semicolon or tab). JSON is always UTF-8 without a BOM.
- The date format: ISO 8601 in local time or in UTC, the interface's own format, or Unix seconds.
The file is made in your browser; nothing about the export is stored on the server.
The list contains IP addresses. They are data your TeamSpeak server reports to your admins, and in many places count as personal data — see Privacy and Hosting.
v0.1, last edited 09.10.2026
Getting started
Using the app
Running it
When something is odd
Contributing