Skip to content

VEIN

The Linux dedicated server loads one native libtakaro-vein.so connector. It connects directly to Takaro; players install nothing and keep the vanilla VEIN client. The library must be preloaded on the game binary’s launch line. Windows and Workshop installation are not supported.

Runs on a VEIN Linux dedicated server (Steam app 2131400) only; Windows servers cannot run it. Players install nothing and keep the normal VEIN client. Game client and server must run the same VEIN version.

1. Get your registration token from Takaro

Section titled “1. Get your registration token from Takaro”

In the Takaro dashboard, add a game server of type Generic and copy the registration token it shows. You do not fill in anything else: the connector registers the server the first time it connects.

Download takaro-vein-plugin.tar.gz from the newest vein-v… release and extract it (on Windows, 7-Zip opens .tar.gz).

  1. Stop the server.
  2. With your panel’s file manager or SFTP, upload libtakaro-vein.so and libsteam.so from the TakaroVein folder into the game’s Vein/Binaries/Linux folder, the one that holds VeinServer-Linux-Test:
    • Pterodactyl / Pelican: /home/container/Vein/Binaries/Linux
    • AMP: vein/2131400/Vein/Binaries/Linux in the instance
    • Plain Linux: <server folder>/Vein/Binaries/Linux
  3. Start the server. The connector creates takaro.cfg in that same folder and prints a block of * lines naming it.
  4. Open Vein/Binaries/Linux/takaro.cfg, paste your token after TAKARO_REGISTRATION_TOKEN= and save. Saving is enough: the connector connects within a few seconds, no restart needed. The same goes for a corrected token.

The whole file, if you prefer to create it yourself before the first start (leave TAKARO_IDENTITY_TOKEN empty: the connector writes a new unique one into it):

TAKARO_REGISTRATION_TOKEN=<your registration token>
TAKARO_IDENTITY_TOKEN=
TAKARO_SERVER_NAME=My VEIN server
TAKARO_ADMIN_STEAMIDS=
TAKARO_PROTOCOL=1

TAKARO_IDENTITY_TOKEN identifies this server in Takaro; keep it when you move the server. TAKARO_SERVER_NAME is the name Takaro shows (a file the connector creates names it My VEIN server (<first 8 characters of the identity>)). TAKARO_ADMIN_STEAMIDS (optional, comma separated SteamID64s) get VEIN’s in-game admin rights. TAKARO_PROTOCOL: leave 1 (offers Takaro protocol 1 for the map and falls back to 0 on an older Takaro); 0 speaks protocol 0 only. A saved change to the token, identity, name, URL or TAKARO_PROTOCOL reconnects within a few seconds; TAKARO_ADMIN_STEAMIDS and every other key need a restart.

This works with every panel and needs no startup-line or setting change: while Steam starts, the game looks for an optional libsteam.so in that folder, and the small loader with that name starts the connector next to it. Steam itself is unaffected. A SteamCMD update or validate leaves the files in place. To remove the connector, delete libsteam.so.

If your host does not let you upload .so files into the game folder, ask their support to place the two files for you.

The server console shows [Takaro] lines; connected to Takaro as "…" means it works, and Takaro lists the server as reachable. Install the utils module on the server in Takaro and type @ping in game chat: Takaro answers Pong!. A block of * lines tells you what to fix: TAKARO_REGISTRATION_TOKEN not set means the token is missing, Takaro refused this server means it is wrong; both name the file to edit. no trusted CA bundle found means the server has no CA certificates (install the ca-certificates package or set TAKARO_CA_FILE); no [Takaro] line at all means the connector was not loaded (check file names and folder). The connector’s own log is Vein/Binaries/Linux/takaro/plugin.log.

Stop the server, upload the new libtakaro-vein.so and libsteam.so over the old ones, and start it. Replace only these two files; your takaro.cfg is never touched.

Admins who control the start command can preload the connector instead, from any folder: LD_PRELOAD=/full/path/to/libtakaro-vein.so ./VeinServer.sh -Port=7777 -QueryPort=27015. takaro.cfg is then created next to the library (TAKARO_CONFIG_FILE sets another path). The same keys also work as environment variables, which win over the file and are never written to it; a changed environment variable needs a restart. Do not also install libsteam.so; if both are present the connector still starts only once. Docker users: see docker-compose.example.yml and .env.example in the archive; INSTALL.md covers state directories, upgrades from v0.2.x and rollback.

Verified on the native connector (v0.3.0) with a real game client and Takaro on VEIN 0.025 Hotfix 1 (server build 25581145), 2026-09-29. ✅ = works, ⚠️ = works with a caveat, ❌ = unsupported.

What Notes
Connection & heartbeat ✅ The plugin holds the Takaro connection itself; the server shows as reachable while the game runs.
Player list ✅ Name, ping and spawned state; gameId is the SteamID64.
Single player lookup ✅ Same data for one player; offline players answer with a last-known record.
Player location ✅ The live position, following walking and teleports.
Player inventory ✅ Matches the in-game bag; unavailable (404) without a character pawn, including before respawn.
Give an item ✅ The item appears in the bag without a relog.
Item catalogue ✅ Every loaded item class, with the in-game display names.
Entity catalogue ⚠️ Creature types sync, but Takaro never deletes rows from older builds.
Locations / points of interest ⚠️ Served by the connector, but Takaro never asks for them.
Run a console command ✅ The connector’s own set: help, players, say, give, tp, ban, save, …
Broadcast a message ✅ Everyone sees it, as a chat line prefixed with the server name.
Whisper a player ✅ Reaches the one player, as an on-screen notification.
Teleport a player ✅ The player is moved to the requested position.
Kick a player ✅ The player is dropped and can rejoin afterwards.
Ban a player (timed and permanent) ✅ Works offline too; the connector lifts timed bans at expiry.
Unban a player ✅ The player can rejoin at once.
Ban list ✅ The game’s bans plus the connector’s, with reason and expiry.
Shut the server down ✅ Saves the world first, then quits cleanly.
Player joined event ✅ Arrives on every join, with the SteamID64.
Player left event ✅ Arrives on a clean quit and after a crash.
Player chat event ✅ Real player chat reaches Takaro; the connector’s own messages are not echoed.
Player death event ✅ Position and cause included; falls and drowning have no attacker.
Entity kill event ✅ Creature, player and held item. AI-on-AI kills are not reported.
Log events ⚠️ Forwarded with secrets redacted, but Takaro does not store log events.
Map info ⚠️ Needs Takaro protocol 1 (proven on Takaro staging, not yet on takaro.io). The connector declares the 12 km map area to Takaro, so player dots land in the right place.
Map tiles ⚠️ Needs Takaro protocol 1 (not yet on takaro.io). The server files carry no map picture. Upload the in-game map once in the Takaro dashboard (INSTALL.md).
Modules: chat commands ✅ In-game commands reach the module and answer in chat.
Modules: hooks ✅ Chat and join hooks fire and run their code.
Modules: cronjobs ✅ Scheduled module runs fire and can message the server.
Modules: teleports (@settp, @tp, …) ✅ The teleports module’s in-game commands move the player.
Modules: server messages / onboarding ✅ Timed messages and the welcome message are delivered in game.
Shop: buy in game ✅ Buying with the in-game chat command works.
Shop: order in Takaro and claim in game ✅ The items are delivered to the player.
Shop: bundle of several items ✅ One claim delivers every item in the listing.
Shop: order while offline, claim later ✅ The order is paid while offline and delivered when claimed after rejoining.
Shop: not enough currency ✅ The purchase is refused and the balance is unchanged.
Economy: currency ✅ Balances are set, read and debited by Takaro.
Economy: balance in game ✅ @balance answers in chat.
Discord: game chat → Discord ✅ In-game chat is relayed to the linked channel.
Discord: Discord → game chat ✅ Real human posts are relayed into game chat; bot posts are ignored.
Discord: module hook / cronjob posts ✅ Hooks and cronjobs post to Discord and edit their messages.
Discord: join/leave notices ✅ Posted to Discord by the chat-bridge module.
Discord: no echo of server messages ✅ Stock chatBridge re-posts server messages; the chatBridgeNoEcho fork does not.
Events while the Takaro connection is down ✅ Kept on disk and delivered once the connection is back (tested with a 2-minute outage).
Reconnects after a server or container restart ✅ Re-identifies on its own after a restart, a crash or a container restart.
No duplicate events after a connector restart ✅ Unconfirmed events are replayed once from the on-disk outbox; a lost confirmation can rarely cause one duplicate.
Survives a network drop to Takaro ✅ The WebSocket reconnects by itself and re-identifies.
Timed bans expire on their own ✅ Lifted at expiry, including across a restart.
Keeps running after a game update breaks a feature ✅ The broken feature reports degraded; everything else keeps working.
  • The three-file install relies on the game’s libsteam_api.so looking for an optional libsteam.so while Steam starts. If a game or Steam update stops doing that, no [Takaro] line appears; please report it, and use LD_PRELOAD meanwhile.
  • Upgrading from the old sidecar release (v0.2.x) needs a short maintenance window; follow the upgrade instructions.
  • A broadcast shows as a chat line prefixed with the server name; a whisper as an on-screen notification.
  • Local and global chat cannot be told apart — proximity chat also reports as global.
  • AdminSteamIDs in Game.ini is ignored by the game. Use TAKARO_ADMIN_STEAMIDS instead.
  • The server log contains the join password and Steam tickets; the connector redacts them from Takaro.
  • Renamed or removed items and creatures linger in Takaro’s catalogue, because its sync never deletes.
  • A timed ban shows as permanent in Takaro until gettakaro/takaro#3981; it is still lifted on time.
  • Characters do not survive a server restart. This is the game’s own behaviour — warn your players.

Developers: see DEVELOPMENT.md.


This page is generated from the VEIN connector’s README in the gettakaro/connectors repository. Corrections belong there.

Download the VEIN connector