Newbie Spellweaver
- Joined
- Apr 20, 2026
- Messages
- 16
- Reaction score
- 48
What is tPoseidon?
tPoseidon is a C# / .NET 8 server emulator for Trickster Online. It targets both the 2013 EN client (last NA build) and the KR2014 client as supported targets in the same server. Open source for everyone to use and improve.
The game client reads from libconfig (the original 2013 game data). But the interface is shaped so that a second implementation (a custom one, reading from JSON or Postgres or whatever) can be slotted in alongside the libconfig one, with custom content checked first and the original 2013 data as the fallback, that way future new content can be implemented without having to rely on hardcoded rules.
Tech Stack :
C#Runtime: .NET 8
Networking: System.Net.Sockets async TCP
Database: PostgreSQL (Npgsql) with per-client schema isolation.
Operator UI: WPF MVVM ControlPanel with one-click client IP patcher
Roadmap / Feature Checklist
Features:
S2 Server:
KR2014 Server:
Images:
Tools:
Control Panel:
## What it does
- Start All / Stop All in the toolbar — boots or kills all four servers plus Postgres in one click.
- Service tile per server with a status(green = running, yellow = starting/stopping, red = crashed) and its own Start/Stop buttons.
- Active Client dropdown— switch between 2013 EN and KR2014. All four running servers hot-swap their Postgres schema, no restart. Each client keeps its own character roster.
- Configure Clients dialog (in Settings) — point the panel at your 2013 EN client and your KR2014 `Trickster.bin`. KR has eight cmdline-arg fields with a live preview, because the binary won't start without the right blob.
- Patch Client IP button inside that dialog — one click rewrites KR2014's hardcoded publisher IP to whatever you set, and writes a `.bak-{timestamp}` first.
- Per-server log tabs at the bottom with filter, auto-scroll, clear, and a Detach button to pop a log into its own window for a second monitor.
- Resizable split between the service tiles and the log pane.
- Mini bar mode — when the panel sees your client launch, the main window hides and a small always-on-top pill appears (status orbs + Stop All + expand). Stays out of the way while you play. Pops back forward if a server crashes.
- Toast notifications top-right for start/stop events, schema switches, patch results, and server-ready confirmations, so you don't have to watch the panel.
- Built-in TCP capture — flip on Debug logs and the panel records each server's wire traffic via SharpPcap. On Stop, it decrypts the pcap and writes per-opcode summary files under `log/captures/`.
- Path scrubbing — every filesystem path shown in the UI or in child server logs gets trimmed to the last two folder names, so screenshots don't leak your home directory.
Github Repo will be posted on a later phase
Contributing
The project is in pre-alpha. If you played Trickster Online and want to help with anything
Feel free to reach out.
tPoseidon is a C# / .NET 8 server emulator for Trickster Online. It targets both the 2013 EN client (last NA build) and the KR2014 client as supported targets in the same server. Open source for everyone to use and improve.
The game client reads from libconfig (the original 2013 game data). But the interface is shaped so that a second implementation (a custom one, reading from JSON or Postgres or whatever) can be slotted in alongside the libconfig one, with custom content checked first and the original 2013 data as the fallback, that way future new content can be implemented without having to rely on hardcoded rules.
Tech Stack :
C#Runtime: .NET 8
Networking: System.Net.Sockets async TCP
Database: PostgreSQL (Npgsql) with per-client schema isolation.
Operator UI: WPF MVVM ControlPanel with one-click client IP patcher
Roadmap / Feature Checklist
Features:
Per-client DB schema isolation(done)
NPC Script inspired by rAthena (Partially done, working on it) -Drop a new .tscript file in data/scripts/, restart the server, and any NPC of that chrType in the world will run your script instead of its libconfig dialog. Variables, branches, multi-line
bodies, menus, suspend/resume, all work.
Server Rates Hot Swap(Implemented but needs more testing) - There is now an option on the Control Panel app that hot swaps the server rates, you can freely control exp, tm, hp/mp recovery, drops, etc changing them to 1x/2x/3x/4x(initially) and its directly applied in game. rates were based on the official server rate comparing on ggftw mirror for proper scalling, so 1x is the true original experience.
NPC Script inspired by rAthena (Partially done, working on it) -Drop a new .tscript file in data/scripts/, restart the server, and any NPC of that chrType in the world will run your script instead of its libconfig dialog. Variables, branches, multi-line
bodies, menus, suspend/resume, all work.
Server Rates Hot Swap(Implemented but needs more testing) - There is now an option on the Control Panel app that hot swaps the server rates, you can freely control exp, tm, hp/mp recovery, drops, etc changing them to 1x/2x/3x/4x(initially) and its directly applied in game. rates were based on the official server rate comparing on ggftw mirror for proper scalling, so 1x is the true original experience.
S2 Server:
Lobby + Server List + Server Selection (done)
Channel Server + character list / create / delete / select (done)
Zone entry & map loading (done)
Movement(done)
Combat(In Progress)
Channel Server + character list / create / delete / select (done)
Zone entry & map loading (done)
Movement(done)
Combat(In Progress)
KR2014 Server:
Lobby + Server List + Server Selection (done)
Channel Server + character list / create / delete / select (done)
Zone entry & map loading (done)
Movement(done)
Combat(In Progress)
Channel Server + character list / create / delete / select (done)
Zone entry & map loading (done)
Movement(done)
Combat(In Progress)
Images:
Tools:
Control Panel:
## What it does
- Start All / Stop All in the toolbar — boots or kills all four servers plus Postgres in one click.
- Service tile per server with a status(green = running, yellow = starting/stopping, red = crashed) and its own Start/Stop buttons.
- Active Client dropdown— switch between 2013 EN and KR2014. All four running servers hot-swap their Postgres schema, no restart. Each client keeps its own character roster.
- Configure Clients dialog (in Settings) — point the panel at your 2013 EN client and your KR2014 `Trickster.bin`. KR has eight cmdline-arg fields with a live preview, because the binary won't start without the right blob.
- Patch Client IP button inside that dialog — one click rewrites KR2014's hardcoded publisher IP to whatever you set, and writes a `.bak-{timestamp}` first.
- Per-server log tabs at the bottom with filter, auto-scroll, clear, and a Detach button to pop a log into its own window for a second monitor.
- Resizable split between the service tiles and the log pane.
- Mini bar mode — when the panel sees your client launch, the main window hides and a small always-on-top pill appears (status orbs + Stop All + expand). Stays out of the way while you play. Pops back forward if a server crashes.
- Toast notifications top-right for start/stop events, schema switches, patch results, and server-ready confirmations, so you don't have to watch the panel.
- Built-in TCP capture — flip on Debug logs and the panel records each server's wire traffic via SharpPcap. On Stop, it decrypts the pcap and writes per-opcode summary files under `log/captures/`.
- Path scrubbing — every filesystem path shown in the UI or in child server logs gets trimmed to the last two folder names, so screenshots don't leak your home directory.
Github Repo will be posted on a later phase
Contributing
The project is in pre-alpha. If you played Trickster Online and want to help with anything
Feel free to reach out.
Last edited:

