Reviewed October 6, 2026. This page covers the root, registered subcommands and documented internal actions.
Registration permissions
| Registration | Handler | Required status (local DB, Oct 6) | Implementation |
|---|---|---|---|
/faction |
1012 | 200 | Implemented |
Search factions and inspect or persist player faction standing.
Implementation: Implemented.
Syntax
/faction search <text> [page]
/faction search <name|type|description|id> <value> [page]
/faction search all [page]
/faction <get|reset> <id> [self|target|player]
/faction <set|add|remove> <id> <amount> [self|target|player]
Arguments
Position is zero-based in sep, after a registered database subcommand has been removed. Internal action tokens remain at position 0. Angle brackets are required; square brackets are optional. Alternative forms may change field meanings.
| Position | Argument | Accepted value / type | Meaning |
|---|---|---|---|
| 0 | action |
text | search/get/reset/set/add/remove. |
| 1 | selector |
integer or text | Faction ID or search field/text. |
| 2 | value |
integer or text | Standing amount, search value or target; form dependent. |
| 3 | target_or_page |
integer or text | Optional player selector or search page. |
Behavior and restrictions
- Standing is limited to -50000..50000. Set accepts that range; add/remove require 1..2147483647 points. Results are clamped. Faction IDs 0..10 have fixed con and cannot be changed.
- Targets default to the selected player, or self with no target. Explicit target requires a player; named recipients must be online and ready in this zone. Multiword search text must be quoted.
- Search returns 10 results per page, default page 1; invalid/out-of-range pages and unknown IDs are reported. Changes send a faction update and immediately SavePlayerFactions. Extra arguments are rejected.
Persistence evidence in the active path: database.SavePlayerFactions. Each call is subject to its surrounding validation; not every branch saves.
Current argument/client/target checks (exact source excerpts; branch-dependent):
if (EQ2Packet* packet = player->GetFactions()->FactionUpdate(recipient->GetVersion()))
if (!target || !target->IsPlayer()) {
Handler failure/help feedback (sent to the player or logged; % fields are formatted at runtime):
Standing: -50000 to 50000. Add/remove: positive points. Defaults to selected player, or self with no target; named players must be in this zone.
The player must be online in your current zone.
Permissions
Local database snapshot, October 6, 2026: /faction requires status 200 (handler 1012). Other worlds may configure different values.
The dispatcher checks the resolved registration status before invoking the handler. In-handler guild, group, ownership, client-version and target checks still apply.
Examples
/faction search all
/faction get 11 self
Source-checked forms; not executed against a live world.
Source evidence
Dispatch: COMMAND_FACTION (handler 1012).
WorldServer/Commands/Commands.cpp:6328—COMMAND_FACTION.WorldServer/Commands/Commands.cpp:8688—Command_ModifyFaction.WorldServer/Commands/Commands.cpp:8630—GMPlayerArg.WorldServer/Commands/Commands.cpp:8634—ParseGMPlayerInteger.WorldServer/Commands/Commands.cpp:8680—SendFactionCommandHelp.WorldServer/Commands/Commands.cpp:8655—ResolveGMPlayer.
Reviewed local revision: 9efddf962ffee075d0db2059d3914c36b0acbdf3; working-tree file checksums identify the exact reviewed bytes. Reviewed dispatch/helper evidence · Reconciliation report.
No upstream Markdown file exists for this registration in the retrieved revision.