Updates and connector check

Update the connector core and verify advertised capabilities

Current release

Each family has its own connector and its own version line. Download either from Admin → Game Servers; the page offers the one your server was created for.

L2J coreL2Off connector
Current1.0.01.0.0
RuntimeJava 17 or newerNode 22 or newer
Artifactportal-connector-core-<version>.jarportal-connector-pts-<version>.mjs
Dependencyminimal-json-0.9.5.jarnone

Both speak protocol v1 and need outbound WSS to wss.forgeport.net:443. The two version lines are independent: an L2Off connector is not behind because the L2J core is further along, and neither can run the other's artifact.

Version status

The connector handshake reports its version in the protocol field named adapterVersion. The field name is retained for protocol compatibility; it does not mean Forgeport supplies a pack-specific adapter. Forgeport compares the value with the release catalog of that server's family and displays one of the following states in Admin → Game Servers:

  • Core up to date
  • Core update available
  • Unsupported core build

Pack name, chronicle, and revision are not part of protocol v1.

Update a JAR installation

  1. Download the latest connector core from Admin → Game Servers.
  2. Stop the game server.
  3. Remove the previous portal-connector-core-<version>.jar.
  4. Add the new JAR.
  5. Rebuild if the pack bundles dependencies during compilation.
  6. Start the game server and confirm the reported version.
  7. Run Connector check.

Keep only one connector core version on the classpath.

A new core may add an interface method. Compile the bridge against the new JAR before deploying it, and advertise a new capability only after its method is implemented.

Recompile the bridge

Forgeport does not publish a pack-specific adapter. The bridge remains part of the game server source and must compile against the installed connector core.

  1. Stop the game server.
  2. Replace the connector core JAR with the new version.
  3. Compile the game server and its bridge against that JAR.
  4. Implement any required interface change before starting the server.
  5. Start the game server, confirm the reported version, and run Connector check.

Keep one connector core version on the build and runtime classpath.

Update an L2Off connector

  1. Download the latest connector from Admin → Game Servers.
  2. Stop the running connector process.
  3. Replace the previous portal-connector-pts-<version>.mjs next to portal.toml.
  4. When the release notes name a profile change, regenerate portal.toml from Admin → Game Servers and carry your own paths, credentials, and edited queries across.
  5. Start the connector, confirm the reported version, and run Connector check.

Connector check coverage

The check uses the capabilities reported by the connected bridge.

CapabilityCheck
GET_SERVER_STATUSConfirms an active, ready connection
GET_ONLINE_COUNTConfirms that a heartbeat contains an online count
VERIFY_GAME_CREDENTIALSSubmits a non-existent account and expects a clean rejection. If you supply a test account name, a second row reports whether that name exists in the account database — a missing name and a wrong password are the same message to a player and completely different fixes
LIST_ACCOUNT_CHARACTERSRequests a non-existent account and accepts an empty list
LIST_RANKINGSRequests one PvP ranking row
SEARCH_GAME_CATALOGSearches the item catalog
SEARCH_SKILL_CATALOGSearches the skill catalog
DELIVER_ITEM_GRANTDelivers one Adena to the selected online character
DELIVER_SKILL_GRANTNot exercised — a granted skill cannot be taken back
CHARACTER_SERVICESSets the selected online character's gender to its current value. A connector that declines a change doing nothing passes on that answer — it proves the same round trip without writing. A Kamael test character is reported as skipped, since it can never be the target
PLAYER_ONLINE_EVENTVerified by the installed EnterWorld hook during integration
UNSTUCK_CHARACTERRuns the configured unstuck operation for the selected character

DELIVER_ITEM_GRANT, CHARACTER_SERVICES, and UNSTUCK_CHARACTER require a game account and character ID.

State-changing checks

The grant check adds one Adena. The unstuck check moves the character to the recovery coordinates the bridge or [delivery.unstuck] defines — where the declared window is offline, an online character is refused instead, and the check reports the refusal as a confirmed round trip rather than a failure. Use a designated test character.

Connector check is not proof that a capability works

It proves the connector answers, that the command reaches it, and that the query is pointed somewhere real. It cannot prove a player receives anything — on an L2Off pack a delivery queue nobody collects answers exactly like one that works, and a wrong passwordFormat agrees with itself perfectly.

Once per pack, per capability: do the thing from the portal and confirm it in the game client.

CREATE_GAME_ACCOUNT and DELIVER_SKILL_GRANT are not exercised by Connector check. Both change state in a way the check cannot undo — a created account lingers, a granted skill has no revocation path at all.

On this page