L2Off / PTS

Configure the L2Off connector

Adapt the generated portal.toml to your SQL Server pack

portal.toml is the complete connector configuration. It is required and must sit beside the .mjs file. The generated profile is a retail High Five starting point; it is not a claim that every L2Off schema is identical.

File layout

portal-connector-pts-1.2.0.mjs
portal.toml

Core sections

SectionWhat you configure
[portal]Generated gateway URL, token, enabled state, heartbeat
[pack]Free-text pack name and chronicle shown in Admin
[database.world]SQL Server connection for characters, world data, and delivery queue
[database.account]Optional second connection when account tables live elsewhere
[account]Password format, ANSI codepage, and optional hAuthD MD5 key
[queries]Account, character, online, rankings, clan, siege, and boss SQL
[catalog]Paths to the item and skill scripts loaded by the server
[delivery.*]Queue statements and when each operation can reach a character
[queue]Result polling interval and expiry for abandoned jobs

The token prefix identifies the game server. Do not copy a profile from another server, and do not edit the generated token by hand.

Database permissions

Grant only what enabled sections use:

  • SELECT for account, character, online, ranking, clan, siege, boss, and Premium-status queries;
  • INSERT for account creation and delivery queue statements;
  • UPDATE for queue reporting, Premium delivery, and enabled services;
  • CREATE, SELECT, INSERT, and UPDATE for the connector's portal_grant_journal where journaled SQL requires it;
  • DELETE only when a configured expiry path removes abandoned queue rows.

Test with the same SQL login the connector uses.

Parameters are mandatory

The connector binds names such as @account, @characterId, @itemId, @count, @commandId, and @limit. It rejects a query that omits a required parameter because valid SQL without the account filter could expose every character.

Queries must alias their result columns to the names described on the relevant feature page. The connector validates rows before returning them.

Delivery windows

Every [delivery.*] section declares when its statement reaches the player:

windowUse when the configured path works
bothwhether the character is online or offline, such as an extender queue
onlineonly against a live character
offlineonly while the character is logged out

Forgeport filters targets and products using this value. A product with grants whose windows never overlap cannot be sold on this server.

The wrong window can report success without delivery

The SQL may run successfully while the game ignores or overwrites the result. Set the window from observed pack behavior, then test both player states.

Optional custom bridge

If the SQL profile cannot express a pack behavior, place bridge.mjs beside portal.toml. It must default-export the connector's GameBridge contract and takes over the profile-backed bridge completely. This is an advanced explicit override; a missing or misnamed file fails at startup.

Verify

  1. Start the connector from the directory containing both files.
  2. Confirm the startup log names no profile validation error.
  3. Confirm the server shows Connected.
  4. Run Connector check.
  5. Verify each enabled write in the game client, not only in SQL Server.

On this page