Skip to main content

Multiple game servers in one Discord guild

Larger communities often run more than one game server โ€” for example a second map or a DLC server โ€” but want to keep a single community Discord. dzbot supports this: several dzbot servers can share the same Discord guild.

This page explains how to set that up, how dzbot decides which server a Discord event belongs to, and the pitfalls to avoid. The key setting is Owned Discord Categories, which is easy to misconfigure if you don't know how routing works.

When you need thisโ€‹

You need this setup only when two or more dzbot servers select the same Discord Server in Server Admin โ†’ Settings โ†’ Discord.

If your guild has just one dzbot server, nothing on this page applies โ€” everything keeps working as before and you can leave Owned Discord Categories empty.

How dzbot routes Discord eventsโ€‹

There are two directions to think about:

Outgoing (dzbot โ†’ Discord) is simple. Every dzbot server has its own channel settings โ€” killfeed, support channel, online players, base alarms category, and so on โ€” plus the ticket category of each support level. Each server posts to whatever channels you configured for it. Give each server its own channels and there is nothing more to do.

Incoming (Discord โ†’ dzbot) is where routing matters. When something happens in the guild โ€” someone mentions the AI companion, opens a ticket from Discord, or writes in a channel dzbot watches โ€” dzbot must decide which of the servers sharing the guild should handle it. It decides by the channel's category:

  1. dzbot looks up the category the channel belongs to (threads count as their parent channel's category).
  2. If a server's Owned Discord Categories setting contains that category, that server handles the event.
  3. If no server claims the category, the event goes to the fallback server โ€” the server whose owned categories list is empty.
  4. If there is no fallback either, the oldest dzbot server (the one created first) handles it.

Some events are not channel-specific and are intentionally delivered to every server sharing the guild: members joining or leaving the guild, for example, are processed by all servers.

The slash commands (/bank, /bet, /faction, /player, /logs and the others) follow the same rule: the channel's category decides which server answers, whatever server the player plays on. Someone without a player on that server is told which server's channels to use. See Discord commands.

The Owned Discord Categories settingโ€‹

You find it under Server Admin โ†’ Settings โ†’ Discord โ†’ Owned Discord Categories (shared guilds). It is a multi-select of the guild's categories.

The intended setup for two servers is asymmetric:

  • Main server: leave the list empty. It becomes the fallback and handles everything that is not explicitly claimed โ€” including all your existing channels, channels without a category, and anything you create later and forget to assign.
  • Second server: claim its categories. Select every category that belongs to the second server โ€” its general/chat categories, the ticket category of every support level, its base alarms category, and any category holding a ticket request-type panel.

Think of it as carving out the second server's area from the guild, not as distributing the whole guild between servers.

Setup guideโ€‹

  1. Keep your existing dzbot server connected to the guild as it is.
  2. Create the second dzbot server and select the same Discord Server in Server Admin โ†’ Settings โ†’ Discord. The bot is already installed on the guild โ€” you do not install it a second time.
  3. In Discord, create dedicated categories for the second server (for example Server 2 โ€” Community, Server 2 โ€” Tickets, Server 2 โ€” Alarms).
  4. On the second server, set Owned Discord Categories to exactly those categories.
  5. Leave Owned Discord Categories empty on the main server so it acts as the fallback.
  6. Configure the second server's channel settings (support channel, killfeed, online players, base alarms category, โ€ฆ) and the categories of its support levels to point at channels inside its owned categories, and publish its ticket request-type panels into channels inside them too.
  7. Reload the settings page after switching the Discord server so the channel and category dropdowns show the guild's live data.
  8. Whenever you add a support level on the second server later, come back and claim the category the bot created for it โ€” see the pitfall below.

Pitfallsโ€‹

dzbot does not validate this configuration โ€” overlapping or missing claims are resolved silently, so misconfiguration shows up as "the wrong server answered", not as an error message. These are the traps:

Both servers left emptyโ€‹

If no server claims any categories, there are two fallback candidates โ€” and the oldest server wins everything. The second server will never receive a single inbound Discord event. Ticket buttons and companion mentions in the second server's channels are answered by the main server. Always claim categories on at least one of the two servers.

Two servers claim the same categoryโ€‹

There is no warning. The oldest server wins the contested category. Keep every category in exactly one server's list.

Every server claims categories โ€” no fallback leftโ€‹

If all servers have a non-empty owned list, there is no fallback. Events in unclaimed categories and in channels without any category go to the oldest server, which may not be what you expect. Recommended: keep exactly one server (the main one) with an empty list.

Channels outside any categoryโ€‹

A channel at the guild root has no category, so it can never match an owned category โ€” it always routes to the fallback server. If the second server needs an "uncategorized-looking" channel, put it inside one of its owned categories anyway.

Forgetting the tickets and base alarms categoriesโ€‹

dzbot creates ticket and base alarm channels inside the categories you configured. For the second server, those categories must also be in its Owned Discord Categories list โ€” otherwise interactions inside those channels (ticket messages, companion replies) route to the fallback server. This is the most common misconfiguration.

Forgetting a support level's categoryโ€‹

Each support level owns its own ticket category, and the bot creates that category when you create the level (or, for level 1, when the setup wizard creates its default channels). It is therefore not a category you picked, and nothing adds it to the owned list for you. Every level of the second server needs its category claimed, and creating a level is a moment to come back to this setting โ€” otherwise the tickets of that one level answer as the wrong server while the other levels behave correctly.

The same applies when you swap a level's category later from Server Admin โ†’ Tickets โ†’ Levels: claim the new one.

Ticket panels in an unclaimed channelโ€‹

A request-type panel files its tickets on the server the request type belongs to, wherever the panel is posted โ€” the button names the type, and the type names the server. The same holds for /ticket once the player has picked a type. Keeping panels inside their server's owned categories is still tidy, but it is not what decides where the ticket lands.

/ticket itself has to pick a server before it can offer any types: it uses the channel's category, then the one server the player is linked on, then the fallback server. Players who are linked on both servers and type it in an unclaimed channel are asked to use it in a channel of their server.

Moved channelsโ€‹

dzbot caches the guild's channelโ†’category mapping and drops that cache as soon as Discord reports a channel change, so a channel moved into a different category is routed by its new category right away.

Voice channel countersโ€‹

Each server creates its own category for its voice channel counters, named after the server (๐Ÿ“Š <server name>). The counters cannot be joined or written in, so their category does not need to be claimed in Owned Discord Categories.

Guild-wide events fire on every serverโ€‹

Members joining or leaving the guild are processed by all servers sharing it. That is by design โ€” both servers need to know about the member โ€” but it means per-server join automation (welcome DMs, role assignment) runs on each server. Configure join-related features with that in mind.

The AI companion answers as one server per channelโ€‹

The companion responds as the server that owns the channel's category. In shared channels (owned by nobody), it answers as the fallback server. If you want channels where the companion speaks for the second server, those channels must live inside the second server's owned categories.

Quick checklistโ€‹

  • Both dzbot servers select the same Discord Server in settings
  • Exactly one server (the main one) has an empty Owned Discord Categories list
  • The second server claims all of its categories โ€” including the category of every support level and its base alarms category
  • No category appears in more than one server's list
  • Each server's channel settings point at channels inside its own area
  • Channels the second server should handle are not sitting at the guild root without a category