Configure the L2J connector
Install portal.properties and set runtime and delivery options
config/portal.properties tells the connector where to connect and how this
server schedules character actions. It is required. The generated file already
contains the correct gateway and server token.
Enabled=True
GatewayUrl=wss://wss.forgeport.net/
Token=gps_<game-server-id>.<secret>
#HeartbeatSeconds=15
#DeliveryWindow.DELIVER_ITEM_GRANT=online
#DeliveryWindow.DELIVER_SKILL_GRANT=online
#DeliveryWindow.CHARACTER_SERVICES=online
#DeliveryWindow.UNSTUCK_CHARACTER=offline
#Unstuck.X=82698
#Unstuck.Y=148638
#Unstuck.Z=-3473Required settings
| Setting | Purpose |
|---|---|
Enabled | Starts Forgeport when True |
GatewayUrl | Hosted connection endpoint; keep the generated value |
Token | Identifies and authenticates this game server |
Treat Token like a password. Regenerating it in Admin invalidates the old
value immediately, so update this file before restarting.
Delivery windows
A delivery window tells Forgeport when your pack-specific code can safely make the actual game change.
| Value | Meaning |
|---|---|
online | The selected character must be in the live world |
offline | The selected character must be logged out |
both | The operation is safe in either state |
The complete aCis and Mobius item/skill handlers use live player objects, so
their delivery window is online. Unstuck SQL runs against an offline
character, so its default is offline.
A wrong window can produce a silent failure
Match each window to what your implementation really does. Forgeport can enforce the selected state, but it cannot know whether a pack API or SQL write is safe while the character is online.
Unstuck coordinates
Unstuck.X, Unstuck.Y, and Unstuck.Z are read by pack-specific unstuck
code. The commented values point to Giran. Leave the .unstuck(...)
registration out if you do not offer this feature.
Verify
- Restart the GameServer.
- Confirm Admin → Game Servers shows Connected.
- Run Connector check.
- If you changed a delivery window, perform one real test in that player state.
See Troubleshooting if the server stays disconnected.