Skip to content

Stuzhik Connect ​

Direct transfer of builds and modpacks between devices — no intermediate servers, no uploading to the cloud. Files go straight from you to your friend.

Important: works within a single network

Stuzhik finds devices by itself on the same network — an ordinary home/local one, or a virtual one set up by a VPN app. Stuzhik has no server of its own for connecting over the internet: if you and your friend are on different networks (different homes, cities, ISPs), your home routers will almost always block a direct connection between you.

If you're on the same network (same Wi-Fi/LAN), it just works. If you're on different ones, you need a shared VPN, see below.

Version 0.0.19 or newer required — for both of you

Since version 0.0.19, Connect uses a new protocol (Connect 2). Launchers 0.0.18 and older can't connect to it at all — both of you need to update. If there's a Stuzhik of a different version nearby, the connection status panel in the "Friends" section will tell you so.

Turning it on ​

  1. Open "Friends" in the sidebar
  2. Click "Turn on"
  3. The first time you turn it on, the launcher asks who can see you. By default, nobody: Connect is on, but you don't exist for the network until you choose "Friends only" or "Everyone" (more in the Visibility section)
  4. Your code is STUZHIK-XXXXXX, 6 characters after the prefix. The "Invite" button copies it

Connecting to a friend ​

Auto-discovery ​

If you're on the same network, Stuzhik finds each other's devices by itself — you don't need to type anything, the device shows up in the "People" list. Your friend must not be "Invisible", though.

By code ​

  1. Ask your friend for their code
  2. Click "Add device" and paste the code
  3. Confirm with the "Add device" button

The code looks for your friend through the same network broadcast as auto-discovery — it's there to reach exactly the right person when there are many devices in the list. That's why the code also only works on the same network (real or VPN) and only if your friend isn't "Invisible".

Old-format codes (4 characters) are no longer accepted. Ask your friend for a new one — their code updates by itself once they update the launcher.

By address ​

If the device isn't found by itself — for example, you're on Tailscale — click "Add device" and enter your friend's address: 100.64.0.5 or 100.64.0.5:19848. You can leave out the port; the standard 19848 is used. You only need to specify it if your friend's Connect took a fallback port.

Friends ​

A device you've found isn't a friend yet. To add one:

  1. Click "⋯" next to the person (or right-click them) → "Add friend". After adding by code or address, the launcher offers this itself
  2. Your friend accepts the request on their side — it arrives in "Inbox" (the bell) and in the "People" list
  3. After that you're friends: the launcher recognizes your friend by a signature made with their key, and nobody can pretend to be them

The launcher remembers friends together with their addresses — up to eight per friend: local network, VPN, internet. When you turn on Connect, it reaches out to them at every remembered address at once by itself — so a friend is found even where auto-discovery doesn't work, and after one of you has left the shared local network (see Tailscale).

Check connection ​

A person's card (click them in the list) has a "Check connection" button. It does a real handshake — the same one as before a modpack transfer — to every known address at once, and shows the result for each: "answers, N ms", "no answer", "different Stuzhik version" or "you are hidden from them". Next to the address you see what kind of network it is: local network, Tailscale, Radmin VPN, Hamachi or internet.

For a friend, the check is available even when they're "offline": if a remembered address comes back to life, your friend shows up in the list right away.

Visibility ​

You choose the mode in Connect Settings:

ModeWho sees you
InvisibleNobody. The device doesn't go on the network at all: it answers no one and announces nothing about itself. Friends won't find you — only you can find them
Friends onlyOnly friends see your nickname, modpacks and what you're playing. The device's presence on the network is noticeable to everyone — otherwise friends couldn't find you — but only a friend can tell that it's you: the identifying marker changes every 10 minutes and means nothing to outsiders
EveryoneAny Stuzhik user on this network sees you in the list — with your nickname, if showing it is turned on

You can also hide from a single friend: "Hide from this friend" in their menu. To them you're "Invisible"; everyone else sees you as usual.

Profile ​

Your own card — "My profile" → "Customize", the "Appearance" tab. Others see the card exactly as you see it yourself:

  • Banner — a live effect in the header or across the whole card, and "Banner colour"
  • Avatar — the picture is cropped to a 256×256 square. "Behind the picture": "Default", a colour of your choice or "Transparent" — for PNG and WebP with a transparent background
  • Frames — separately for the avatar and for the whole card: line, double, glow, gradient and animated ones. "Frame colour" — the accent or your own
  • Accent and the "About you" line

A colour can be picked on the square, with an eyedropper from the screen, or pasted as text: #4f8cff, rgb(79 140 255), hsl(…) or just a colour name.

Who sees the appearance is decided by "Who sees my profile style" in Connect settings: "Everyone who can see me" or "Friends only". Nickname and online visibility are set separately.

Transferring modpacks ​

You can't send a modpack to a friend: Connect only works by "pulling". Your friend takes the modpack themselves, and your launcher asks you for permission — and the question says plainly what your friend wants to get from you.

Opening a modpack to friends ​

By default, modpacks aren't published — they don't exist for the network. To open one: right-click the modpack (or "⋯") → "Sharing" → "Friends only" or "Everyone on the network". For your friends to have something to choose from, "Show modpack list" must be turned on in Connect Settings.

Who can ask for a modpack, and whether you're asked every time, is also set in Connect Settings. By default only friends can ask, and every transfer happens only with your consent.

Getting a modpack from a friend ​

  1. Open your friend's card → "Modpacks" → "Refresh" to get the list
  2. Click "Get" next to the modpack you want. Or use "Get modpack…" in your friend's menu — there you first see what will be downloaded and what you already have
  3. Your friend gets the question "Transfer request: … wants to receive from you …" — the files start moving only when they click "Allow"

The question doesn't disappear on a timer: it waits for an answer as long as the person asking is connected. One "Allow" covers the whole transfer — if the connection drops, resuming won't ask again. The "Remember for this user" checkbox remembers the answer for this friend and this modpack.

During a transfer ​

  • Progress is in the transfers block of the "Friends" section; the full list is in "All transfers"
  • Cancel is there too, and whoever is getting the modpack can also pause and resume
  • Only missing and changed files are transferred
  • If the connection drops, the transfer continues from where it stopped, not from the beginning
  • Every downloaded file is checked against its hash before it goes into the modpack

Co-op build ​

Experimental feature

Turned on in Settings → General → "Experimental features". While it's off, it isn't anywhere in the interface.

A build can be put together with friends: the host opens a room, friends join, propose and discuss mods, and edit configs.

Opening a room ​

"Friends" → "Build together" → one of your builds, "New build" (from scratch — friends add the mods themselves) or a project from the Builder. The same window has "Who can join":

  • "Friends" — the default, confirmed friends only
  • "Anyone who sees me" — strangers can only watch
  • "By invitation" — only those ticked in the room settings

In the room ​

  • Roles. An "Editor" changes the contents directly, a "Member" puts changes to a vote, a "Viewer" watches and discusses. A stranger is always a viewer. The host sets roles and permissions (view and edit configs, vote, take the build without asking, copy the room) in the room settings
  • Build editor — "Open the build editor": the tabs "Build", "Catalog", "Compatibility", "Configs". Only the host installs mods: a member's edit is a proposal, and the host's launcher takes the files themselves from Modrinth and CurseForge
  • Compatibility — "By composition" and "Dependency graph" are open to everyone in the room, no need to install the build for that
  • Proposals and discussion — votes, the "Pack edits" feed (a change to the contents can be undone) and "Discussion" — the room's shared chat

Your own copy ​

"Get the pack" installs a copy of the host's build for you; "Update my copy automatically" keeps up with the host's changes. Making a room of your own based on someone else's ("My own room based on this one") is possible only if the host gave the "Copy the room" permission — by default nobody has it.

When the host goes offline, the room closes. A pinned room ("Pin the room") comes back by itself when the host reappears.

If you are on different networks ​

Home routers and mobile internet almost always block a direct connection between different networks — that's how NAT works; it's not a Stuzhik bug and not something we can get around on our own. What works is a shared virtual network over the internet: you both install the same VPN app, it puts your devices on one network, and Connect then works on that network.

We don't develop or support these apps — this is just a recommendation of what works. Stuzhik isn't affiliated with these services and doesn't distribute them: only the names are given here; find the official website with a search engine.

OptionDifficultyHow friends are found
Radmin VPNEasyBy themselves, like on a regular LAN
ZeroTierMediumBy themselves, when you're both in the same ZeroTier network
TailscaleHardBy address once, by themselves after that — see below

Hamachi also puts devices on a shared network, and discovery works in it by itself. Tips on these options are also in the launcher itself, in the "Friends" section (also without links — names only).

Tailscale and other networks without broadcast ​

Tailscale and other IP-level tunnels don't carry broadcast packets, so auto-discovery and the code find nobody in them. You need to add your friend by address — but only once:

  1. Ask your friend for their Tailscale address — it looks like 100.x.y.z
  2. "Add device" → enter that address. You can leave out the port: it's 19848 by default
  3. Add them as a friend — your friend accepts the request

After that, everything happens by itself. Once you're friends, after the very first handshake in which your friend proved who they are with their signature, the launcher remembers their address. When Connect is turned on, and then every 5 minutes, it reaches out to the remembered address by itself, and once it gets through, keeps your friend online as long as they respond. A friend who got through to you on their own also shows up in the list. Co-op build rooms, profile style and "playing …" reach such a friend the same way as over a local network.

Only confirmed friends are remembered. In "Invisible" mode the launcher reaches out to nobody, and it never reaches out to a friend you're hidden from.

Firewall ​

Connect works over UDP only: discovery on port 19847, connections on 19848. If a port is taken by another program, Connect takes a fallback one (+10, +20 or +30).

On Windows, both ports need one firewall rule — "Stuzhik Connect". The "Add firewall rule" button in the "Friends" section adds it (Windows will ask for permission). The rule from versions before 0.0.19 opened transfers over TCP and no longer helps — the connection screen notices it and offers to set the rule up again: press "Add firewall rule" once more, and the new one replaces the old one.

Security ​

  • Connect connections run over QUIC with TLS 1.3 and are encrypted entirely — both the files and every message, including the handshake itself. Key exchange is a hybrid of X25519 and ML-KEM-768; the keys are new for every connection
  • The launcher recognizes a friend by a signature made with their key, bound to this connection: an overheard signature can't be presented in another connection
  • An observer on the same network sees that a connection exists, its size and that it's Stuzhik — but not its contents
  • Files leave only after you click "Allow" — nothing is taken from you without asking. That's the default; in the "Sharing modpacks" settings, "Ask for permission" can be switched to "Except friends" or "Never"
  • Executable files (.exe, .bat, .ps1, .sh, etc.) are never transferred — not even with a .disabled suffix
  • A blocked user can't send requests and isn't visible in the list

Troubleshooting ​

My friend can't be found on the network ​

  1. Have you both turned on Connect, and are you both on version 0.0.19 or newer?
  2. Is your friend not "Invisible"? In that mode there's no way to find them
  3. Are you really on the same network — physical or through a shared VPN? The VPN app must be connected on both sides, not just installed
  4. Auto-discovery doesn't work in Tailscale — add your friend by address (see above)
  5. Firewall: in the "Friends" section — "Add firewall rule"
  6. If you're already friends — "Check connection" in their card will show what exactly is wrong

A transfer is stuck ​

  1. Check the transfers in the "Friends" section — it may be paused
  2. Resume it manually
  3. Still stuck — cancel it and get the modpack again: only missing and changed files are transferred

A friend request doesn't arrive ​

  • Your friend may have "Accept friend requests" turned off in Connect Settings — then requests are dropped silently, and the sender never finds out
  • If your friend is "Invisible", they can't be seen — so there's nowhere to send the request
  • In "Friends only" mode, strangers see you without a nickname, as "Anonymous". To make sure your friend finds exactly you, give them your code

What's next? ​