Connect and share your server
This article is about the address we issue your server, yourserver.truetick.gg. If you own a domain and want players to join by your name instead, that is a separate feature with its own article: Use your own domain. It adds an address; it never replaces the one described here.
The connect line sits at the top of every server page. It isn't a tab, so there's nothing to click into. It always shows your Java address (the server's hostname, port 25565) with a copy button, and a friend joins by putting that address straight into Minecraft's multiplayer server list. A second line for Bedrock only appears once Bedrock crossplay is enabled. Everything else below (extra ports, Bedrock crossplay, external backend) lives under Settings, not here.
There is one case where the address shown here doesn't work for a direct join. A server that's a private member of a server network (see the network badge near its name) doesn't accept joins on its own hostname at all; it's only reachable through the network's proxy address. The connect line doesn't detect or adjust for this. If your server shows "In a network · private," hand out the proxy's address instead of this one.
Extra ports
Settings → Extra ports opens additional network ports on your server. Most often that's for voice chat (Simple Voice Chat and similar) or a web map. It needs a paid plan; free servers don't get it. To add one, you give a label, a protocol (TCP or UDP), and the container port the plugin itself listens on inside the server. Presets exist for three common cases: Geyser (19132/UDP), Voice (24454/UDP) and Web-map (8100/TCP).
The Geyser preset is hidden on the metered plan, because traffic on it can't wake a sleeping server. That's the same reason Bedrock crossplay below is flat-only. You can still add that port manually on metered. You can also still get Geyser itself onto a Paper/Purpur server the ordinary way: search and install it from the plugin catalog, or upload the jar, as with any other plugin. The one-click bundle isn't the only path to it. One caveat for a hand-made Geyser setup: current Bedrock clients (26.60 and later) also need TCP on the same public port as the UDP one, and the Geyser preset opens UDP only. The one-click Bedrock crossplay is the setup that handles both. There's a limit of 10 extra ports per server; past that, adding another is refused until you remove one.
The number the panel gives out publicly is a different one: the host port, shown next to your hostname in the port list (e.g. yourserver.truetick.gg:27600). That's the number you put in the other end of a plugin's config, or hand to a friend. Docker maps that public host port to the plugin's own container port. They are not the same number, and mixing them up used to be the most common way a voice-chat setup went silent.
For Simple Voice Chat on a UDP row on port 24454, you don't have to copy either number into the plugin's config yourself. Once the row is UDP and Simple Voice Chat has created its own config file (it does that on its first boot, not before), we set port, bind_address and voice_host in it to match how the port is published, starting from the server start after that. See Set up voice chat for how that works and the one permission step that's still yours. For any other extra-port service, such as a web map, set its own port setting to the container port you entered when adding it, and give it the host address (hostname + host port) wherever it asks for the address other people connect to.
A port only answers while the server is running. The "server running" label next to each port describes the server's overall state. It isn't a live check of that specific port, so it can't confirm the port itself is bound and listening. On a metered plan, traffic on an extra port can't wake a sleeping server by itself: join in Java first, then the extra service is reachable.
Don't take a plugin's own success message as proof that the port works, either. A voice-chat plugin's initial handshake typically rides over the same TCP connection as the game, so the plugin's log can show success while the audio (UDP) never gets through. Adding the port and seeing "server running" doesn't confirm that voice works. Test with a second person and listen for audio before assuming it's fixed.
Adding or removing a port takes effect on the next server restart, not immediately, because Docker can't add a port binding to a container that's already running.
Bedrock crossplay
Settings → Bedrock crossplay depends on two separate conditions, and they're enforced in two different ways. Whether the tab itself shows up at all depends only on the core. A plain Paper or Purpur server with no modpack attached gets it. Vanilla, Fabric, Forge, NeoForge and any modpack (including a Paper- or Purpur-based one) don't, regardless of plan. This mirrors what the platform is able to install (Geyser + Floodgate), so the tab never offers something it can't deliver.
The flat-plan requirement is a second, separate gate, and it does not hide the tab. A metered plain-Paper server still sees "Bedrock crossplay" in the list, opens it, and finds a blocked message instead of a toggle: "Crossplay requires the flat plan, because Bedrock joins can't wake a sleeping server." with a link to switch plans. It's flat-only because Bedrock/Geyser traffic can't wake a sleeping server, so crossplay isn't offered where the server is expected to sleep.
Enabling it (flat plan, eligible core) is one click. It installs Geyser and Floodgate and opens the Bedrock port (19132) in the same step, and gives you a second address to hand to Bedrock players (phones, consoles): same hostname, different port. Disabling it removes both the plugins and the port. Changes here need a restart to take effect, same as any other extra port.
Since Bedrock 26.60, Bedrock clients connect over NetherNet instead of the old RakNet transport: the client first contacts the server over TCP, then plays over UDP. Crossplay opens that one public port for both TCP and UDP and sets Geyser to NetherNet on every start, so the address on the Connect line stays the same and there's nothing to change in Geyser's config. If your server had crossplay on before this, one restart picks it up. The first time a Bedrock player joins, Minecraft asks them whether to trust the server ("Trust on First Use"); that prompt is expected, and they confirm it once.
External backend
Settings → External backend is a different, narrower feature. It opens a dedicated public port that lets a Velocity or BungeeCord proxy running on another host you control dial straight into this server, bypassing normal hostname routing. It's useful if you run your own proxy elsewhere and want this server as one of its backends. It needs the same flat-plan-plus-plain-Paper/Purpur eligibility as Bedrock crossplay, but the tab itself behaves the opposite way: it's always shown, on every core and plan, never hidden. When you're not eligible there's no control at all, just a line of text naming what's missing (plan, core, or both). Bedrock crossplay's tab disappears for an ineligible core; this one doesn't. Once enabled, the panel shows the address your external proxy dials. If the node hasn't reported its public IP yet, the panel says so instead of showing a blank or a stale value. This opens a public port, and the only thing keeping a stranger out is your proxy's own forwarding secret, so keep that private.
Troubleshooting
No Bedrock crossplay tab at all. That's the core/modpack condition (see "Bedrock crossplay" above). It needs a plain Paper or Purpur server with no modpack; nothing else brings the tab back, whatever plan you're on.
Bedrock crossplay tab is there, but I can't turn it on. That's the plan condition. The tab shows up for any eligible core regardless of plan, but enabling it requires flat. The pane itself says so and links to the plan switch.
Voice chat (or another extra-port service) looks added but doesn't work. For Simple Voice Chat on a UDP row on port 24454, we set the plugin's own port, bind_address and voice_host for you. That only happens from the server start after the plugin has created its config file (its first boot creates it, not before), so give it a restart or two after installing before assuming it's broken. See Set up voice chat for the details and the one permission step (LuckPerms) that's still yours. For any other extra-port service, check that the plugin's own port setting is the container port you entered when adding it, not the public host port shown in the panel's list (see "Extra ports" above). In both cases, restart so the change goes out, then test it with a second person (for voice chat, listen for audio) instead of trusting a "connected" message in the plugin's own log.
"extra port limit reached (10)." You're at 10 ports for this server. Remove one before adding another.
External backend shows no dial address. The node hasn't reported its public IP yet, and the panel says so instead of showing a stale or made-up address. This resolves on its own once the node reports it.
Extra ports tab says it needs a paid plan. The tab itself is always there; only the content inside it refuses. That's the free plan: extra ports need metered or flat, with no core restriction. External backend's tab works the same way (never hidden, see above). If it shows a reason instead of a control, that reason is either plan (needs flat) or core (needs plain Paper/Purpur, no modpack), and it names which.
In the panel: Server page → Connect (top of every page) · Settings → Extra ports / Bedrock crossplay / External backend