tPoseidon Trickster Emulator

Newbie Spellweaver
Runner-up #2
Joined
Apr 20, 2026
Messages
64
Reaction score
173
tPoseidon logo - tPoseidon Trickster Emulator - RaGEZONE Forums

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

​

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 stop
  • tposeidon backup: run it before every update
  • tposeidon cash: the shop is free by default, but you can switch it to a points balance per account or turn it off
  • tposeidon gm --help: GM tools from outside the game
  • tposeidon 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
Everything in the window can also be done with 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-beta in 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:


Updates:

18/05

I keep forgetting to update this post.

Currently working on combat, more specifically skills. I got most of it working, but the hard part has been working with animation triggers. Once I get that decoded it's pretty much smooth sailing having all wired. After combat is decoded the emulator will be in a good ''playable'' state to be available pubicly and available on github so more people can test and help improve it if they want.
 
I just updated that thread with the Korean clients that had dead links as well.
Hope you don't mind me advertising the thread ;3
I don't mind at all, that thread has helped many ppl and the more sources we have the better! Feel free to advertise anything like that
 
Minor update

Rebranded the emulator to tPoseidon since it was inspired by rAthena and makes more sense considering the scope. T obviously stands for Turd...I'm joking, its Trickster! See what I did there? Hah!

Poseidon because it's part of Trick lore and also follows the naming pattern of the emulator that inspired me and my love for the game.
 
You can find the 2013 S2 English client in the S2 client thread . Fully updated too, since I updated it after the server play was closed.
I downloaded it but its packed unfortunately. I have been trying to unpack it for a while with no success. If you happen to know where I can find that same client unpacked please let me know
 
I downloaded it but its packed unfortunately. I have been trying to unpack it for a while with no success. If you happen to know where I can find that same client unpacked please let me know
I see. Well, that is the completely unmodified gamerage client. So if they packed it, then I guess you'll probably have others in the community trying to unpack it as well. You just have to find them.
 
Last edited:
Update 20/06

I've been having to deal with some IRL stuff and that slowed me down significantly, the project is not and will not be abandoned, I'm still working on it but it's a lot slower than before unfortunately. I do hope to get things sorted by the end of next month and go back fully into it.
 
No, just on a small hiatus since I'm sorting out irl stuff. Planning to come back to it soon
Would it be possible to set up the server in a Linux environment with MySQL/MariaDB?
Forgive the comparison, but I can set up a Ragnarok Online server in a Linux environment using only Docker/containers.
I mention this because, regarding hosting/VPS...
 
Back