Sextant module — report your real online count =============================================== The module is a signed HTTP POST of your online count, sent every five minutes. There is no protocol to reverse-engineer and no game-specific code: one integration covers every build. Sextant cross-checks the number you report against the count it reads from outside; when the two agree, your server reaches FIXED — the highest automatic class — and its live population widget turns on. Only one integer ever leaves your server: how many players are online right now. No account names, no IPs, no character data. The contract ------------ POST https://sextant.gg/api/module/report x-sextant-server: x-sextant-timestamp: x-sextant-signature: hex( HMAC-SHA256( ".", ) ) body (JSON): { "players": 212 } Get your secret from sextant.gg -> Account -> your server -> module secret. The timestamp must be within 5 minutes of real time (keep your clock in sync). Note: the OUTSIDE measurement (uptime, and the player count where the login exposes it) works on ANY Lineage 2 server — L2J, L2jMobius, or L2OFF/C++ — with no module at all, because it speaks the game's login protocol, not a fork's internals. The module below is only for FIXED: confirming the count from inside. Ready-made ---------- SextantReporter.java The whole L2J FAMILY — L2J, L2jMobius, L2jUnity, aCis, L2jFrozen, derivatives. Put it in data/scripts/custom/sextant/, fix the World import + the count line for your fork (comments in the file list the common ones), fill in two values, and call SextantReporter.start() once after load. sextant-report.sh L2OFF / C++ servers and everything else (Ragnarok/ rAthena, custom stacks). L2OFF can't run a Java datapack script, so it reports here instead: set COUNT_CMD to a query that prints your online count, run it from cron every 5 minutes. Needs sh, openssl, curl. Any stack signs the request the same way in a few lines — the two files above are the reference, and the endpoint is identical for all of them.