Lineage 2 · L2J

A hosted L2J web panel with in-game delivery.

Connect an L2J server to a hosted donation store, player portal and website. Delivery runs through a connector core inside your game server and one type-safe integration class containing only the SQL and game APIs specific to your pack.

Forgeport portal, store and owner console
outbound wss, no inbound ports
Connector core JAR connection, protocol, delivery safety
Your ForgeportIntegration pack SQL and game calls
Game world live player objects, your database, your rules

The exact architecture, stated plainly.

Forgeport provides the connector core JAR and its small JSON dependency. The core opens one outbound WSS connection, authenticates, heartbeats and carries protocol messages. It needs Java 17 or newer and uses the database connection you provide only for its own delivery journal. Your ForgeportIntegration class owns the pack-specific work: account and character queries, password verification, data mapping and live-world operations.

Register the functions your server supports with the builder. Forgeport automatically enables the matching portal features, handles protocol JSON, searches catalogs and protects deliveries against replays. You do not maintain capability strings or a command journal. The full list is in the L2J features reference.

What your integration provides.

Start with the functions players need, then register optional features when your pack supports them.

Credential verification

Game-account password checks in your pack's own format, so players can link accounts.

Characters and rankings

Character lists per account, plus PvP, PK and level boards for the website.

Item and skill delivery

Pack calls that change the live player. Forgeport controls the delivery journal and safe execution order.

Status and online count

Server status and live player counts for the site and the console.

Catalog search

Item and skill search so the store picker shows real names from your data.

Optional services

Account creation, rename, gender change and unstuck, each advertised only if you implement it.

Two complete integrations, not universal adapters.

Forgeport does not ship a plug-and-play aCis or Mobius adapter. It publishes two complete, single-file integrations to adapt to your revision.

aCis 409 · Interlude

The aCis integration

One complete ForgeportIntegration.java with aCis SQL, bcrypt credentials and aCis world APIs. The connector core supplies the protocol, capability inference and delivery journal.

Read the aCis 409 integration

Mobius CT_2.6 · High Five

The Mobius integration

One complete integration against a Mobius High Five baseline, with Mobius package names, SHA-1 credentials and Mobius world APIs.

Read the Mobius CT_2.6 High Five integration

Chronicle names alone do not prove compatibility. Verify the password format, columns and APIs in your exact revision, or start from the small integration template. Both complete examples are published in the documentation.

Delivery that survives the real world.

Live player objectYour integration prepares the pack's normal call against the live player, not a database write that a running server ignores.
Replay safetyThe connector core owns the command id and delivery journal. A retry, a double webhook or a reconnect recognizes the command and grants nothing twice.
Offline charactersAn offline character is a retryable failure, delivered on the character's next login event instead of guessed at.
Honest failure statesInput that can never succeed is refused before anything is written, so the player's coins are released instead of stuck. A crash mid-grant is flagged for reconciliation, not silently retried.

Installation, end to end.

  1. Add the game server in the consoleAdmin, Game Servers, add server. Pick L2J as the family.
  2. Download the required filesAdd the connector core JAR and minimal-json to the classpath, and keep the generated portal.properties. Java 17 or newer.
  3. Add ForgeportIntegration.javaAdapt the aCis or Mobius integration, or fill in the smaller installation template for your pack.
  4. Configure portal.propertiesDownload it from the console into your config directory. The token identifies and authenticates the server.
  5. Build and startStart Forgeport after game data is ready, publish the player login event and add the shutdown call.
  6. Run Connector checkThe console sends small requests through the production connection and checks every registered function.
  7. Verify in the game clientBuy a test item and watch it arrive. Until you have, treat a capability as unconfirmed.

You compile the code that touches your world.

The only Forgeport code inside your game server is the small, pack-agnostic connector core and the integration class you compile. The core handles the Forgeport protocol, capability inference and delivery safety. Your class contains only the SQL, password rules, data mapping and game calls Forgeport cannot know. The store, payments and website stay hosted so you maintain none of that.