Capabilities

LIST_ACCOUNT_CHARACTERS

Return all characters owned by one game account

Every delivery needs a target, and this is where the list of targets comes from. It is also what the player sees on their Characters page, so it must include offline characters — a player who logs out has not stopped owning them.

What it must return

Up to 30 characters for the account, best first. The reference implementations sort by level descending. An account with no characters returns an empty list, which is a success, not a failure.

{
  "characterId": 268437506,
  "name": "Ravenblade",
  "level": 40,
  "classId": 88,
  "race": "human",
  "sex": "male",
  "online": true,
  "pvpKills": 3,
  "pkKills": 0,
  "clanName": null
}

race is one of human, elf, darkelf, orc, dwarf, kamael — in that order, which is the race id every L2 schema stores, so a column holding 5 is kamael. sex is male or female. clanName is null when the character is in no clan.

Implementing it

JsonArray listCharacters(String accountName) throws Exception;

Bind the account as a query parameter. Map the database's numeric race and sex to the protocol strings above.

The character identifier column differs between packs: aCis reads obj_Id, Mobius reads charId. Check yours rather than copying either.

Verification

Connector check requests an account that cannot exist. An answer containing an empty list passes — it proves the round trip without depending on any particular character existing.

On this page