- Joined
- Apr 20, 2026
- Messages
- 64
- Reaction score
- 173
A Trickster Online server emulator. v0.55.2 Beta is out now.
What is it?
tPoseidon is a server emulator for Trickster Online, written from scratch in C# (.NET 8) with PostgreSQL behind it. My main target is what I call Original: the KR 2014 version of the game, and the goal there is simple. Behave like the original server did. Same rules, same packets, same timings, no invented features. When I don't know how something worked, I go and find out instead of guessing.
It was built through reverse engineering and my own packet captures. No original code, binaries or game files are included. You bring your own KR 2014 client.
It runs on Windows, Linux and macOS. There's a control panel for all three (so far I've only tried it on Windows), and the
tposeidon command line tool works everywhere.Download, docs and source
To view the content, you need to sign in or register
Releases with ready-made packages for Windows, Linux and macOS, the setup guide, the full list of systems, the scripting reference and the bug report form are all there.
What's working
Confirmed in live play with the real client:
- Login, character creation and entering the world
- Movement, portals and map changes
- Combat, exp and leveling
- NPCs, shops and quests, including quest rewards
- Guns and hammers
- Refining
- Opening your own player shop, selling and closing it
- The GM tools, the
@commands and the GM eagle
Built, needs live testing
All of this is built and passes my own tests, but hasn't been played live yet. This is where I need you most.
- Skills for every class, including status effects and PvP
- The full item and equipment side: refine, compound, reform, sets, bank and warehouse
- Trade, and player shops with more than one visitor: stock and sold-out updates, the visitor counters and the find-shop helper
- 1v1 duels and PvP
- Looking at another player's profile and equipment, and the options that hide them
- Resting, walking and running, emotes and the posture shortcuts
- Special items: key boxes and their window, gift boxes and the other use items
- The world map window and the microphone item
- Social: friends (including where they are), parties and the party recruit board, guilds, mail, angels and the instant chat rooms
- Guild game: rooms, matches, the ladder and the league ranking window
- Couples and weddings, including the marriage options
- Pets and guardians, including pet composing, the pet collection, and guardians that grow and cast their card skills
- Progression: job changes, honor titles, the fortune system, the soul system
- Drilling and treasure hunting
- Minigames: card battle (with the original rewards and special card sets), card identify, puzzle maps, Fiesta
- Harcon Defence: rooms, waves that attack the Harcon, turrets, records and the coin shop
- NPC services: equip merge, decompound, repair and phantom refine, item time recharge, warp gates, party zone entry and more
A quick honesty note: a few things are reconstructed. Harcon Defence's battle (the turrets and the waves), the slide puzzle and parts of the pet collection don't exist in any server files I could find, so I rebuilt them from the client and the game data. They may not match the original 100%.
Not included
- Purchase events, coupons and the Drill Egg gacha: the web shop starts empty, and what goes in it is up to each server owner
- Watching a guild game as a spectator: the 2014 client can't show it
- The guild depot and the guild Monster Match: coming after the beta
- One rule in the "Leviathan's Help" monster quest (Hunter Master Leviathan, at the 4th gate on the way to the Spicy Dragon's boss room in Tapasco Volcano). In the original, Leviathan says you can't hurt the Spicy Dragon without his water power. You choose "Receive Leviathan's help" to get his buff, then practise by killing a Magma Salamander within 5 minutes. The buff and the quest work here, but the rule that blocks damage to the Magma Salamander and the Spicy Dragon without the buff isn't in any server file I have, so anyone can hurt them
Under the hood
Getting the details right took a lot of digging, and in a few places tPoseidon goes past what the original could do:
- No caps on the server. Damage, HP, MP, EXP, TM EXP and Galder are held and saved as 64-bit numbers, so the server never cuts them off: a hit of 5 billion really takes 5 billion HP. The KR 2014 client can only display up to 2,147,483,647, so that's the biggest number you'll see on screen, while the server keeps applying the full value. Each stat can take up to 65,535 points, the client's own limit.
- You set the limits. Exp, TM, Galder and drop rates, the level caps and points per level are settings in one file, not hard-coded numbers, and the game server picks up changes without a restart. If you do want caps on damage, HP, MP or Galder, they're there as optional settings, off by default.
- The same server layout as the original. Lobby, channel, master, system and game servers talk to each other the way the original ones did, so things like warping between maps, guild data and GM orders travel the same path.
- Checked packet by packet. Every message was matched against the original server and the KR 2014 client, down to the byte. Where something was only a best guess, it's marked as one in the docs.
- Your own client is the source. Setup reads the game data (696 maps, every monster, NPC and item) and the network key straight from your client, so no game files ever need to be shared.
Hosting it
I wanted setup to be painless. The only thing you install yourself is PostgreSQL (14 or newer). Everything else is in the package, .NET included.
Code:
tposeidon setup
tposeidon start
tposeidon play
The panel walks you through the same setup the first time you open it.
setup asks where your client is, who's going to play (just you, your LAN or the internet), how to reach PostgreSQL and the name for your first account. It then creates the database and a limited login for the emulator. It never keeps your admin password. Finally, it builds the server's game data from your own client, so I don't have to ship any of it.Other handy commands:
tposeidon status,tposeidon stoptposeidon backup: run it before every updatetposeidon cash: the shop is free by default, but you can switch it to a points balance per account or turn it offtposeidon gm --help: GM tools from outside the gametposeidon security: see and manage the connection guard
Security. Every server has a connection guard built in: limits per address, timeouts for connections that stall, packet rate limits, slower retries after wrong passwords and automatic temporary bans for repeat offenders. Normal players never notice it. The settings are in
tposeidon.json, and there's a "Hosting securely" guide in the docs.GM tools
Make a character your account's GM with:
Code:
tposeidon gm register --character YourName
In game, type
@login <your account password> in chat and your character turns into the GM eagle, like the old official GMs. GM commands start with @ (the KR 2014 client keeps / for its own commands), so you can teleport, kick (with a reason), block chat, movement or trading for a set time, summon monsters, send notices and more. GM lines are never shown to other players. You can also switch the GM eagle on and off from the panel without typing anything.The panel also has a Game Master window, so you don't have to remember any commands:
- Find a player and kick, block, unblock, penalise, warp them to a map by name, bring them to you or give them items
- Spawn monsters, NPCs and items by picking them from searchable lists by name
- Notices, the OX quiz, EXP and ability rate events, opening and closing guild games
- A help tab with every in-game GM command
tposeidon gm from the command line.NPC scripting (tscript)
This is the part I'm most excited about for server owners. tPoseidon has its own small script language, so you can add NPCs, quests and events without touching any C#. If you've ever written an rAthena script, it'll feel familiar, just a bit cleaner.
Scripts are plain
.tscript files in the scripts/npc/ folder. They're completely opt-in: if you write nothing, every NPC behaves exactly like the original.A tiny example:
Code:
npc "Welcome Guide" sprite 1301 map 1 at 120, 340 face south {
mes "Hello, " + name() + "!";
menu {
"Tell me more" {
mes "Come back any time.";
close;
}
"Goodbye" {
end;
}
}
}
A daily login reward:
Code:
on login {
if (char.last_reward != today()) {
char.last_reward = today();
giveitem(2001, 5);
tell("Here's your daily reward. See you tomorrow!");
}
}
What you can do with it:
- Add new NPCs anywhere, or override an existing NPC's dialog.
fallback;hands it back to the original. - Dialogs with pages, menus and options that only show up under a condition (like a level check)
- Variables saved per character, per account or server-wide, kept in the database
- Give and take items, money, exp and TM, warp players, check levels, jobs and quests
- Open the original NPC windows from a script: shops, bank, warehouse, refine and so on
- Event hooks:
on login,on levelup,on mapenter,on kill, custom events - Timers:
every 30 minutes,at "20:30", cron schedules, server-wide announcements - Your own chat commands:
command "event" gm { ... }, typed in game as@event
You don't need to restart anything.
tposeidon scripts check finds mistakes and points to the file and line, and tposeidon scripts reload (or /script reload in game as a GM) loads your changes live. Scripts run with safety limits, so a broken loop can't freeze your server. The full reference and four ready-made examples come with the docs.About the beta
- Downloads, bug reports and suggestions only. Download it, run it, host it for your community, all fine. Forks, pull requests, modified copies and emulators built from it aren't allowed during the beta. I plan to move to an open-source license at 1.0, and code contributions open then.
- Bring your own client. Please don't share client files in the project's spaces.
- The first release is v0.55 Beta (shown as
0.55.0-betain the panel and the package names). Please put your version in every bug report.
Reporting bugs
The most useful thing you can do right now is play the "needs live testing" list above and tell me what breaks. When you report, please include:
Code:
Version:
OS:
Client version:
What I did (step by step):
What I expected:
What happened instead:
Server log lines from that moment (log/ folder):
Screenshot or video (if you have one):
Post it in this thread, or open an issue on GitHub using the bug report form (it asks for the same things). The more exact the steps, the faster I can fix it.
What's next
- Your bug reports, and fixing what the live testing turns up
- The guild depot and the guild Monster Match
- Then 1.0, and the move to an open-source license
Thanks to everyone who's followed the project so far, and to the people who kept old captures, guides and videos around. A lot of this would have been impossible without them.
Last edited:

