{
 "title": "DAoC 1.130 protocol opcodes",
 "generated": "2026-10-28",
 "sources": {
  "client": "daoc-re (EU-based project): its map of the official 1.130 game client's receive dispatcher and its TCP and UDP send sites",
  "server": "OpenDAoC-Core source: handler registrations and send methods",
  "retail": "one decoded official-server session, 2026-10-27"
 },
 "families": [
  {
   "key": "session",
   "title": "Session & login",
   "colour": "#4E79A7",
   "ink": "#fff",
   "tint": "#e6ecf3"
  },
  {
   "key": "charsel",
   "title": "Character select & create",
   "colour": "#59A14F",
   "ink": "#1d232b",
   "tint": "#e8f2e6"
  },
  {
   "key": "world",
   "title": "World entry & regions",
   "colour": "#9C755F",
   "ink": "#fff",
   "tint": "#f1ece9"
  },
  {
   "key": "move",
   "title": "Movement & position",
   "colour": "#76B7B2",
   "ink": "#1d232b",
   "tint": "#ecf5f4"
  },
  {
   "key": "objects",
   "title": "Objects, NPCs & targeting",
   "colour": "#EDC948",
   "ink": "#1d232b",
   "tint": "#fcf7e5"
  },
  {
   "key": "combat",
   "title": "Combat, death & pets",
   "colour": "#E15759",
   "ink": "#1d232b",
   "tint": "#fbe7e8"
  },
  {
   "key": "magic",
   "title": "Spells, skills & effects",
   "colour": "#B07AA1",
   "ink": "#1d232b",
   "tint": "#f4ecf2"
  },
  {
   "key": "progress",
   "title": "Character progression",
   "colour": "#FF9DA7",
   "ink": "#1d232b",
   "tint": "#fff1f3"
  },
  {
   "key": "items",
   "title": "Inventory & items",
   "colour": "#F28E2B",
   "ink": "#1d232b",
   "tint": "#fdefe1"
  },
  {
   "key": "trade",
   "title": "Trade, merchants & market",
   "colour": "#D4A017",
   "ink": "#1d232b",
   "tint": "#f9f2df"
  },
  {
   "key": "chat",
   "title": "Chat, commands & UI",
   "colour": "#5F6B7A",
   "ink": "#fff",
   "tint": "#e9eaec"
  },
  {
   "key": "social",
   "title": "Groups, LFG, guilds & friends",
   "colour": "#2CA58D",
   "ink": "#1d232b",
   "tint": "#e1f2ef"
  },
  {
   "key": "quests",
   "title": "Quests & tasks",
   "colour": "#8CD17D",
   "ink": "#1d232b",
   "tint": "#eff9ed"
  },
  {
   "key": "craft",
   "title": "Crafting",
   "colour": "#B6992D",
   "ink": "#1d232b",
   "tint": "#f5f1e2"
  },
  {
   "key": "housing",
   "title": "Housing",
   "colour": "#A0CBE8",
   "ink": "#1d232b",
   "tint": "#f2f8fc"
  },
  {
   "key": "rvr",
   "title": "Keeps, RvR & siege",
   "colour": "#C0392B",
   "ink": "#fff",
   "tint": "#f6e3e1"
  },
  {
   "key": "relics",
   "title": "Relics",
   "colour": "#7B4F9D",
   "ink": "#fff",
   "tint": "#ede6f1"
  },
  {
   "key": "unknown",
   "title": "Unclassified",
   "colour": "#BAB0AC",
   "ink": "#1d232b",
   "tint": "#f5f4f3"
  }
 ],
 "counts": {
  "cs": {
   "handled": 76,
   "unhandled": 12,
   "obsolete": 4
  },
  "sc": {
   "sent": 108,
   "never-sent": 22,
   "obsolete": 4,
   "old-clients": 2
  }
 },
 "opcodes": [
  {
   "dir": "cs",
   "code": 0,
   "op": "0x00",
   "name": "HouseMenuRequest",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Open a house menu or merchant window",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "HousingOutsideShop",
     "note": null
    },
    {
     "value": "1",
     "name": "HousingInsideShop",
     "note": null
    },
    {
     "value": "2",
     "name": "HousingDeedMenu",
     "note": null
    },
    {
     "value": "3",
     "name": "HousingOutsideMenu",
     "note": null
    },
    {
     "value": "4",
     "name": "HousingNPCHookpoint",
     "note": null
    },
    {
     "value": "5",
     "name": "HousingVaultHookpoint",
     "note": null
    },
    {
     "value": "6",
     "name": "HousingCraftingHookpoint",
     "note": null
    },
    {
     "value": "7",
     "name": "HousingBindstoneHookpoint",
     "note": null
    },
    {
     "value": "8",
     "name": "HousingInsideMenu",
     "note": "flag byte: 0x00 roof, 0xFF floor/wall"
    },
    {
     "value": "9",
     "name": "HouseInfo",
     "note": "sends house info instead of a window"
    }
   ],
   "subtypes_total": 10,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 1,
   "op": "0x01",
   "name": "HouseEdit",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Change house exterior appearance (up to 10 changes)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 3,
   "op": "0x03",
   "name": "HouseUserPermissionRequest",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request house per-player permission list",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 5,
   "op": "0x05",
   "name": "HousePermissionRequest",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request house permission levels table",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 6,
   "op": "0x06",
   "name": "HouseUserPermissionSet",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Set or remove a player's house permission slot",
   "note": "a new level of 100 removes the slot",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 7,
   "op": "0x07",
   "name": "HousePermissionSet",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Save one house permission level's flags",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 11,
   "op": "0x0B",
   "name": "HouseEnterLeave",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Enter or leave a house",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "leave",
     "note": null
    },
    {
     "value": "1",
     "name": "enter",
     "note": "requires within 1000 units and entry permission"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 12,
   "op": "0x0C",
   "name": "HousePlaceItem",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Place item, decoration or rent money in a house",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "garden",
     "note": "server-forced for garden object type 49"
    },
    {
     "value": "2",
     "name": "wall",
     "note": "client-sent"
    },
    {
     "value": "3",
     "name": "floor",
     "note": "client-sent"
    },
    {
     "value": "4",
     "name": "porch",
     "note": "server-forced for porch/consignment deeds"
    },
    {
     "value": "5",
     "name": "hookpoint",
     "note": "server-forced for object types 53/55/68"
    },
    {
     "value": "6",
     "name": "banner/shield",
     "note": "server-forced for object types 57/58/66/67"
    },
    {
     "value": "7",
     "name": "vault",
     "note": "server-forced for HouseVault on hookpoint"
    }
   ],
   "subtypes_total": 7,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 13,
   "op": "0x0D",
   "name": "PlayerPickupHouseItem",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Remove a placed house item back to inventory",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "garden",
     "note": null
    },
    {
     "value": "2",
     "name": "wall",
     "note": null
    },
    {
     "value": "3",
     "name": "floor",
     "note": null
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 14,
   "op": "0x0E",
   "name": "HouseDecorationRotate",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Rotate a placed indoor decoration",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 16,
   "op": "0x10",
   "name": "CharacterSelectRequest",
   "label": null,
   "family": "charsel",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Character chosen; server grants login and session ID",
   "note": "payload ignored",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 17,
   "op": "0x11",
   "name": "MarketSearchRequest",
   "label": null,
   "family": "trade",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Market explorer item search query",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 20,
   "op": "0x14",
   "name": "UDPInitRequest",
   "label": null,
   "family": "session",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Client local UDP address; server replies UDP init",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": true,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 24,
   "op": "0x18",
   "name": "HouseDecorationRequest",
   "label": null,
   "family": "housing",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request rotation info for a house decoration",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 26,
   "op": "0x1A",
   "name": "SetMarketPrice",
   "label": null,
   "family": "trade",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Set consignment merchant price for a slot",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 28,
   "op": "0x1C",
   "name": "WithDrawMerchantMoney",
   "label": null,
   "family": "trade",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Withdraw money from consignment merchant",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 29,
   "op": "0x1D",
   "name": null,
   "label": "World-entry notice",
   "family": "world",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "likely",
   "evidence": "Sent 3x (zeros) on every world entry; retail sends no specific reply",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 55,
   "op": "0x37",
   "name": "ClientCrash",
   "label": null,
   "family": "session",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Client crash report; server disconnects",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 64,
   "op": "0x40",
   "name": "QuestRewardChosen",
   "label": null,
   "family": "quests",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Accept quest and chosen reward items",
   "note": "response byte 1 confirms; anything else is ignored",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 65,
   "op": "0x41",
   "name": null,
   "label": "Task request",
   "family": "quests",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "likely",
   "evidence": "Its caller prints [Task] messages",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 66,
   "op": "0x42",
   "name": null,
   "label": "Area-list notice",
   "family": "world",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "likely",
   "evidence": "Sent with 0x43 from the zone/area-list code on world entry",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 67,
   "op": "0x43",
   "name": null,
   "label": "Refresh request",
   "family": "world",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "likely",
   "evidence": "Sent on world entry, after dialog responses and with warmap requests",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 72,
   "op": "0x48",
   "name": "ShowWarmapRequest",
   "label": null,
   "family": "rvr",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Warmap page select, refresh, or teleport",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "set_page",
     "note": "stores realm map page"
    },
    {
     "value": "1",
     "name": "update",
     "note": "sends keep list and fight info"
    },
    {
     "value": "2",
     "name": "teleport",
     "note": "teleport to border keep (ids 1-6) or keep portal stone"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 76,
   "op": "0x4C",
   "name": "MinotaurRelicWindow",
   "label": null,
   "family": "relics",
   "status": "obsolete",
   "status_label": "client never sends",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": "Minotaur relic window command (unimplemented)",
   "note": "server handler is empty",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 79,
   "op": "0x4F",
   "name": "RemoveQuestRequest",
   "label": null,
   "family": "quests",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Abandon a quest by journal index",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 82,
   "op": "0x52",
   "name": null,
   "label": "Character-select request with name",
   "family": "charsel",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Built in character-select code; u16 + 24-char name. Not delete",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 83,
   "op": "0x53",
   "name": "TrainHandler",
   "label": null,
   "family": "progress",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Train specializations and realm abilities from trainer window",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 100,
   "op": "0x64",
   "name": "BuyHookPoint",
   "label": null,
   "family": "rvr",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Buy siege weapon or guard for keep hookpoint",
   "note": null,
   "subtypes": [
    {
     "value": "0x00-0x20",
     "name": "RedHPInventory",
     "note": "guards"
    },
    {
     "value": "0x21-0x40",
     "name": "BlueHPInventory",
     "note": "NPCs"
    },
    {
     "value": "0x41-0x60",
     "name": "LightGreenHPInventory",
     "note": "small siege"
    },
    {
     "value": "0x61-0x80",
     "name": "GreenHPInventory",
     "note": "large siege"
    },
    {
     "value": "0x81+",
     "name": "YellowHPInventory",
     "note": "oil"
    }
   ],
   "subtypes_total": 5,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 102,
   "op": "0x66",
   "name": "WarmapBonusRequest",
   "label": null,
   "family": "rvr",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request realm warmap bonuses",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 111,
   "op": "0x6F",
   "name": "KeepComponentInteract",
   "label": null,
   "family": "rvr",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Keep wall/tower info and hookpoint selection",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "show_info",
     "note": "SendKeepComponentInteract"
    },
    {
     "value": "1",
     "name": "hookpoint_button",
     "note": "SendKeepComponentHookPoint"
    },
    {
     "value": "2",
     "name": "select_hookpoint",
     "note": "clears hookpoint and sends hookpoint store"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 113,
   "op": "0x71",
   "name": "UseSlot",
   "label": null,
   "family": "items",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Use an inventory or quickbar item slot",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "Click",
     "note": "simple click on icon"
    },
    {
     "value": "1",
     "name": "Use1",
     "note": "/use"
    },
    {
     "value": "2",
     "name": "Use2",
     "note": "/use2"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 116,
   "op": "0x74",
   "name": "PlayerAttackRequest",
   "label": null,
   "family": "combat",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Toggle melee attack mode on or off",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 118,
   "op": "0x76",
   "name": "RemoveConcentrationEffect",
   "label": null,
   "family": "magic",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Cancel a concentration spell by index",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 120,
   "op": "0x78",
   "name": "BuyRequest",
   "label": null,
   "family": "trade",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Buy item from merchant or housing menu",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "Normal",
     "note": "default: forwarded to targeted merchant/guard merchant/lot marker"
    },
    {
     "value": "3",
     "name": "HousingDeedMenu",
     "note": null
    },
    {
     "value": "5",
     "name": "HousingNPCHookpoint",
     "note": null
    },
    {
     "value": "6",
     "name": "HousingInsideShop",
     "note": null
    },
    {
     "value": "7",
     "name": "HousingOutsideShop",
     "note": null
    },
    {
     "value": "8",
     "name": "HousingVaultHookpoint",
     "note": null
    },
    {
     "value": "9",
     "name": "HousingCraftingHookpoint",
     "note": null
    },
    {
     "value": "10",
     "name": "HousingBindstoneHookpoint",
     "note": null
    }
   ],
   "subtypes_total": 8,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 121,
   "op": "0x79",
   "name": "SellRequest",
   "label": null,
   "family": "trade",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Sell inventory item to targeted merchant",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 122,
   "op": "0x7A",
   "name": "ObjectInteractRequest",
   "label": null,
   "family": "objects",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Interact with (right-click) a world object",
   "note": "no sub-type: the server passes it to the target object",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 123,
   "op": "0x7B",
   "name": "TrainWindowHandler",
   "label": null,
   "family": "progress",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request trainer window",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 124,
   "op": "0x7C",
   "name": "ChampionTrainHandler",
   "label": null,
   "family": "progress",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Train a champion-level ability",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 125,
   "op": "0x7D",
   "name": "UseSpell",
   "label": null,
   "family": "magic",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Cast spell, style or ability from a spell line",
   "note": "the server decides whether the index is a spell, style or ability",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 128,
   "op": "0x80",
   "name": "DestroyItemRequest",
   "label": null,
   "family": "items",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Destroy an inventory item by slot",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 130,
   "op": "0x82",
   "name": "DialogResponse",
   "label": null,
   "family": "chat",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Player answer to a server dialog box",
   "note": null,
   "subtypes": [
    {
     "value": "0x03",
     "name": "GuildInvite",
     "note": "accept/decline guild invite"
    },
    {
     "value": "0x05",
     "name": "GroupInvite",
     "note": "accept group invite"
    },
    {
     "value": "0x06",
     "name": "CustomDialog",
     "note": "invokes stored callback when data2==1"
    },
    {
     "value": "0x08",
     "name": "GuildLeave",
     "note": "confirm leaving guild"
    },
    {
     "value": "0x14",
     "name": "HousePayRent",
     "note": "deposit money/BPs into house lockbox"
    },
    {
     "value": "0x19",
     "name": "MasterLevelWindow",
     "note": "request ML window page"
    },
    {
     "value": "0x1A",
     "name": "KeepClaim",
     "note": "guild claims nearby keep"
    },
    {
     "value": "0x64",
     "name": "QuestSubscribe",
     "note": "accept/decline/abort quest offer"
    }
   ],
   "subtypes_total": 8,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 132,
   "op": "0x84",
   "name": "LookingForGroupFlag",
   "label": null,
   "family": "social",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Toggle LFG flag or set group status",
   "note": null,
   "subtypes": [
    {
     "value": "0x00",
     "name": "RemovePlayerLooking",
     "note": "clear LFG flag"
    },
    {
     "value": "0x01",
     "name": "SetPlayerLooking",
     "note": "set LFG flag"
    },
    {
     "value": "other",
     "name": "GroupStatus",
     "note": "value stored as group.Status"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 133,
   "op": "0x85",
   "name": "LookingForGroup",
   "label": null,
   "family": "social",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request Find Group window list",
   "note": null,
   "subtypes": [
    {
     "value": "0x00",
     "name": "players only",
     "note": "list LFG players"
    },
    {
     "value": "nonzero",
     "name": "include groups",
     "note": "also list leaders of groups with status 0"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 135,
   "op": "0x87",
   "name": "InviteToGroup",
   "label": null,
   "family": "social",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Invite current target to group",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 138,
   "op": "0x8A",
   "name": "PetWindow",
   "label": null,
   "family": "combat",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Pet window button: stance, movement or command",
   "note": null,
   "subtypes": [
    {
     "value": "b0=1",
     "name": "aggro Aggressive",
     "note": null
    },
    {
     "value": "b0=2",
     "name": "aggro Defensive",
     "note": null
    },
    {
     "value": "b0=3",
     "name": "aggro Passive",
     "note": null
    },
    {
     "value": "b1=1",
     "name": "walk Follow",
     "note": null
    },
    {
     "value": "b1=2",
     "name": "walk Stay",
     "note": null
    },
    {
     "value": "b1=3",
     "name": "walk GoTarget",
     "note": null
    },
    {
     "value": "b1=4",
     "name": "walk ComeHere",
     "note": null
    },
    {
     "value": "b2=1",
     "name": "command Attack",
     "note": null
    },
    {
     "value": "b2=2",
     "name": "command Release",
     "note": null
    }
   ],
   "subtypes_total": 9,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 144,
   "op": "0x90",
   "name": "PlayerRegionChangeRequest",
   "label": null,
   "family": "world",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Use zone point / jump to another region",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 152,
   "op": "0x98",
   "name": null,
   "label": "Appeal sub-request",
   "family": "chat",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Built inside the /appeal command code; the appeal dialog doesn't send it",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 153,
   "op": "0x99",
   "name": "DoorRequest",
   "label": null,
   "family": "objects",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Open or close a door",
   "note": "the door ID says which kind: keep door or house door",
   "subtypes": [
    {
     "value": "0x01",
     "name": "open",
     "note": null
    },
    {
     "value": "other",
     "name": "close",
     "note": null
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 157,
   "op": "0x9D",
   "name": "RegionListRequest",
   "label": null,
   "family": "world",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request region list for character-select slot",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 159,
   "op": "0x9F",
   "name": "DisbandFromGroup",
   "label": null,
   "family": "social",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Leave group or remove targeted member",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 163,
   "op": "0xA3",
   "name": "PingRequest",
   "label": null,
   "family": "session",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "TCP ping; server echoes timestamp",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 165,
   "op": "0xA5",
   "name": "ObjectUpdateRequest",
   "label": null,
   "family": "objects",
   "status": "obsolete",
   "status_label": "client never sends",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request object refresh (ignored by server)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 167,
   "op": "0xA7",
   "name": "LoginRequest",
   "label": null,
   "family": "session",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Account login with version, username, password",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 169,
   "op": "0xA9",
   "name": "PositionUpdate",
   "label": null,
   "family": "move",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Player position, speed, zone, heading and state",
   "note": "state and action fields are bit flags, not sub-types",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 172,
   "op": "0xAC",
   "name": null,
   "label": "Leave-world notice",
   "family": "session",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "confirmed",
   "evidence": "Sent on /quit to character select and on exit; 1 byte, always 0",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 175,
   "op": "0xAF",
   "name": "CommandHandler",
   "label": null,
   "family": "chat",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Slash command text from the player",
   "note": "182 player slash commands route through this opcode",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 176,
   "op": "0xB0",
   "name": "PlayerTarget",
   "label": null,
   "family": "objects",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Change current target (with LOS/examine flags)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 179,
   "op": "0xB3",
   "name": null,
   "label": "Group-finder request",
   "family": "social",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Builder next to LookingForGroup; called via a UI table",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 180,
   "op": "0xB4",
   "name": null,
   "label": "Group-finder request",
   "family": "social",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Builder next to LookingForGroup; pairs with S->C 0xB4",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 181,
   "op": "0xB5",
   "name": "PickUpRequest",
   "label": null,
   "family": "objects",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Pick up targeted ground object",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 184,
   "op": "0xB8",
   "name": null,
   "label": "Quit notice with reason",
   "family": "session",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "confirmed",
   "evidence": "Sent only on game exit; 01 clean exit, 00 after a crash",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 186,
   "op": "0xBA",
   "name": "PlayerHeadingUpdate",
   "label": null,
   "family": "move",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Heading and state flags update (short state)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 187,
   "op": "0xBB",
   "name": "UseSkill",
   "label": null,
   "family": "magic",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Use ability, style, spell or spec from skill list",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "full list index",
     "note": "index into all usable skills incl. specializations"
    },
    {
     "value": ">0",
     "name": "non-spec index",
     "note": "index offset past specializations"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 190,
   "op": "0xBE",
   "name": "CreateObjectRequest",
   "label": null,
   "family": "objects",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request creation packet for an object ID",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 191,
   "op": "0xBF",
   "name": "GameOpenRequest",
   "label": null,
   "family": "world",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Enter play state; UDP confirmation flag",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 192,
   "op": "0xC0",
   "name": "CharacterDeleteRequest",
   "label": null,
   "family": "charsel",
   "status": "obsolete",
   "status_label": "client never sends",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": "Delete character by name",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 194,
   "op": "0xC2",
   "name": null,
   "label": null,
   "family": "charsel",
   "status": "obsolete",
   "status_label": "client never sends",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": "Check character name against invalid-name list",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 199,
   "op": "0xC7",
   "name": "PlayerSitRequest",
   "label": null,
   "family": "move",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Sit down or stand up",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 200,
   "op": "0xC8",
   "name": "PlayerDismountRequest",
   "label": null,
   "family": "move",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Dismount from steed",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 202,
   "op": "0xCA",
   "name": "BonusesListRequest",
   "label": null,
   "family": "magic",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request item/stat bonuses text window",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 203,
   "op": "0xCB",
   "name": "DuplicateNameCheck",
   "label": null,
   "family": "charsel",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Check if character name is taken or invalid",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 208,
   "op": "0xD0",
   "name": "CheckLosRequest",
   "label": null,
   "family": "move",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Client reply to a server line-of-sight check",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 212,
   "op": "0xD4",
   "name": "WorldInitRequest",
   "label": null,
   "family": "world",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Load selected character and enter world",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 213,
   "op": "0xD5",
   "name": "CreatePlayerRequest",
   "label": null,
   "family": "charsel",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Request creation packet for another player",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 216,
   "op": "0xD8",
   "name": "DetailRequest",
   "label": null,
   "family": "magic",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Delve/info request for item, spell, style, etc.",
   "note": "more values: 3 hybrid spells, 15 chat group, 20-23 trainer styles, songs, spells and abilities, 101 self-craft, 102 salvage; anything else is champion lines",
   "subtypes": [
    {
     "value": "1",
     "name": "inventory item",
     "note": null
    },
    {
     "value": "2",
     "name": "spell list",
     "note": null
    },
    {
     "value": "4",
     "name": "merchant item",
     "note": null
    },
    {
     "value": "5",
     "name": "buff/effect icon",
     "note": null
    },
    {
     "value": "6",
     "name": "style",
     "note": null
    },
    {
     "value": "7",
     "name": "trade window item",
     "note": null
    },
    {
     "value": "8",
     "name": "ability",
     "note": null
    },
    {
     "value": "9",
     "name": "trainer window info",
     "note": null
    },
    {
     "value": "10",
     "name": "market search item",
     "note": null
    },
    {
     "value": "12",
     "name": "item info to guild chat",
     "note": null
    },
    {
     "value": "14",
     "name": "item info to group chat",
     "note": null
    },
    {
     "value": "17",
     "name": "item info to battlegroup",
     "note": null
    },
    {
     "value": "19",
     "name": "quest reward item",
     "note": null
    },
    {
     "value": "24",
     "name": "SpellsNew tooltip",
     "note": null
    },
    {
     "value": "25",
     "name": "StylesNew tooltip",
     "note": null
    },
    {
     "value": "26",
     "name": "SongsNew tooltip",
     "note": null
    },
    {
     "value": "27",
     "name": "RANew tooltip",
     "note": null
    },
    {
     "value": "28",
     "name": "AbilityNew tooltip",
     "note": null
    },
    {
     "value": "29",
     "name": "quest window item (1.115+)",
     "note": null
    },
    {
     "value": "100",
     "name": "repair",
     "note": null
    }
   ],
   "subtypes_total": 28,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 220,
   "op": "0xDC",
   "name": "ClientFilterSettings",
   "label": null,
   "family": "chat",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Chat-type and spell-effect filter settings",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 221,
   "op": "0xDD",
   "name": "PlayerMoveItem",
   "label": null,
   "family": "items",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Move/split item between slots, drop or give",
   "note": null,
   "subtypes": [
    {
     "value": ">1000",
     "name": "give to object",
     "note": "object ID = toSlot - 1000 (trade/NPC/give)"
    },
    {
     "value": "100 / 600",
     "name": "PlayerPaperDoll / NewPlayerPaperDoll",
     "note": "auto-equip into resolved slot"
    },
    {
     "value": "1",
     "name": "Ground",
     "note": "drop item"
    },
    {
     "value": "601",
     "name": "GeneralVault",
     "note": "shift-click move with vault open"
    }
   ],
   "subtypes_total": 4,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 224,
   "op": "0xE0",
   "name": "PlayerAppraiseItemRequest",
   "label": null,
   "family": "items",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Ask merchant or lot marker to appraise item",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 226,
   "op": "0xE2",
   "name": "EmblemDialogResponse",
   "label": null,
   "family": "social",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Guild leader picks guild emblem",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 228,
   "op": "0xE4",
   "name": "ShipHookPoint",
   "label": null,
   "family": "rvr",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Boat hookpoint interaction (switch seat)",
   "note": "other flag values are logged as unhandled",
   "subtypes": [
    {
     "value": "0",
     "name": "none",
     "note": null
    },
    {
     "value": "3",
     "name": "switch seat",
     "note": "move to empty boat seat"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 230,
   "op": "0xE6",
   "name": null,
   "label": "Group-finder request",
   "family": "social",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Builder next to LookingForGroup; structured payload",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 231,
   "op": "0xE7",
   "name": null,
   "label": "Group-finder request",
   "family": "social",
   "status": "unhandled",
   "status_label": "no handler",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Builder next to LookingForGroup; pairs with S->C 0xE7",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 232,
   "op": "0xE8",
   "name": "PlayerInitRequest",
   "label": null,
   "family": "world",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Region-enter init; server sends world state",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 235,
   "op": "0xEB",
   "name": "ModifyTrade",
   "label": null,
   "family": "trade",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Update, accept or close trade window",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "close",
     "note": "CloseTrade"
    },
    {
     "value": "1",
     "name": "update",
     "note": "repair/combine flags, 10 item slots, money"
    },
    {
     "value": "2",
     "name": "accept",
     "note": "AcceptTrade"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 236,
   "op": "0xEC",
   "name": "PlayerGroundTarget",
   "label": null,
   "family": "objects",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Set ground target position",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 237,
   "op": "0xED",
   "name": "CraftRequest",
   "label": null,
   "family": "craft",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Craft selected recipe item",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 242,
   "op": "0xF2",
   "name": "UDPPingRequest",
   "label": null,
   "family": "session",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "UDP keepalive; confirms UDP path",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": true,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 244,
   "op": "0xF4",
   "name": "CryptKeyRequest",
   "label": null,
   "family": "session",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Client type and version handshake",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 245,
   "op": "0xF5",
   "name": "SiegeCommandRequest",
   "label": null,
   "family": "rvr",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Siege weapon control command",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "load",
     "note": "select ammo (ammo byte at offset 3)"
    },
    {
     "value": "2",
     "name": "arm",
     "note": null
    },
    {
     "value": "3",
     "name": "aim",
     "note": null
    },
    {
     "value": "4",
     "name": "fire",
     "note": null
    },
    {
     "value": "5",
     "name": "move",
     "note": null
    },
    {
     "value": "6",
     "name": "repair",
     "note": null
    },
    {
     "value": "7",
     "name": "salvage",
     "note": null
    },
    {
     "value": "8",
     "name": "release",
     "note": null
    },
    {
     "value": "9",
     "name": "stop move",
     "note": null
    },
    {
     "value": "10",
     "name": "swing",
     "note": "calls Fire"
    }
   ],
   "subtypes_total": 10,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 248,
   "op": "0xF8",
   "name": "PlayerCancelsEffect",
   "label": null,
   "family": "magic",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Cancel own effect by tooltip ID",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "cs",
   "code": 252,
   "op": "0xFC",
   "name": "CharacterOverviewRequest",
   "label": null,
   "family": "charsel",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Choose realm / request character list",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "realm query",
     "note": "SendRealm"
    },
    {
     "value": "1",
     "name": "Albion",
     "note": "SendCharacterOverview"
    },
    {
     "value": "2",
     "name": "Midgard",
     "note": null
    },
    {
     "value": "3",
     "name": "Hibernia",
     "note": null
    }
   ],
   "subtypes_total": 4,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "cs",
   "code": 255,
   "op": "0xFF",
   "name": "CharacterCreateRequest",
   "label": null,
   "family": "charsel",
   "status": "handled",
   "status_label": "handled",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Create, customize or delete a character",
   "note": "pre-1.125 clients used 32-bit operation codes",
   "subtypes": [
    {
     "value": "1",
     "name": "create",
     "note": null
    },
    {
     "value": "2",
     "name": "customize",
     "note": "CustomizeType byte follows: 1 face, 2 attributes, 3 both"
    },
    {
     "value": "3",
     "name": "delete",
     "note": "only when name empty"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 2,
   "op": "0x02",
   "name": "InventoryUpdate",
   "label": null,
   "family": "items",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Inventory slot contents update, optionally opening a window",
   "note": null,
   "subtypes": [
    {
     "value": "0x00",
     "name": "Update",
     "note": "slot refresh, no window"
    },
    {
     "value": "0x01",
     "name": "Equipment",
     "note": null
    },
    {
     "value": "0x02",
     "name": "Inventory",
     "note": null
    },
    {
     "value": "0x03",
     "name": "PlayerVault",
     "note": null
    },
    {
     "value": "0x04",
     "name": "HouseVault",
     "note": "byte 3 carries vault number"
    },
    {
     "value": "0x05",
     "name": "ConsignmentOwner",
     "note": null
    },
    {
     "value": "0x06",
     "name": "ConsignmentViewer",
     "note": null
    },
    {
     "value": "0x07",
     "name": "HorseBags",
     "note": null
    }
   ],
   "subtypes_total": 8,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 3,
   "op": "0x03",
   "name": "HouseUserPermissions",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "House per-player/guild permission list",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 4,
   "op": "0x04",
   "name": "CharacterJump",
   "label": null,
   "family": "move",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Teleport/jump player to position and heading",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 5,
   "op": "0x05",
   "name": "HousingPermissions",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "House permission level table",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 8,
   "op": "0x08",
   "name": "HouseEnter",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Enter house interior: model, emblem, rug colours",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 9,
   "op": "0x09",
   "name": "HousingItem",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "House interior furniture list or single item update",
   "note": null,
   "subtypes": [
    {
     "value": "0x00",
     "name": "update",
     "note": "single item add/change/remove"
    },
    {
     "value": "0x80",
     "name": "complete",
     "note": "full furniture list"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 10,
   "op": "0x0A",
   "name": "HouseExit",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Leave house interior",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 15,
   "op": "0x0F",
   "name": "HouseTogglePoints",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Toggle house decoration placement points",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 18,
   "op": "0x12",
   "name": "MovingObjectCreate",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Create boat/siege moving object",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 19,
   "op": "0x13",
   "name": "MasterLevelWindow",
   "label": null,
   "family": "progress",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Master level progress bars and step descriptions",
   "note": "byte 8 is the requested master level (0 = current)",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 21,
   "op": "0x15",
   "name": "EquipmentUpdate",
   "label": null,
   "family": "items",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Visible equipment models of a living",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 22,
   "op": "0x16",
   "name": "VariousUpdate",
   "label": null,
   "family": "progress",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Multiplexed character sheet updates (skills, stats, group, crafting)",
   "note": null,
   "subtypes": [
    {
     "value": "0x01",
     "name": "skills",
     "note": "usable skills/specs/abilities/styles list; subtype 0x03, 99 = more pages"
    },
    {
     "value": "0x02",
     "name": "spell lines",
     "note": "non-hybrid spell lines; subtype 0x02 per line, 99 footer"
    },
    {
     "value": "0x03",
     "name": "player info",
     "note": "name, class, realm rank, guild, titles"
    },
    {
     "value": "0x05",
     "name": "weapon/armor stats",
     "note": "weapon damage, weapon skill, effective AF"
    },
    {
     "value": "0x06",
     "name": "group window",
     "note": "group member names, classes, levels"
    },
    {
     "value": "0x08",
     "name": "crafting skills",
     "note": "crafting skill points list"
    }
   ],
   "subtypes_total": 6,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 23,
   "op": "0x17",
   "name": "MerchantWindow",
   "label": null,
   "family": "trade",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Merchant item list page",
   "note": null,
   "subtypes": [
    {
     "value": "0x00",
     "name": "Normal",
     "note": null
    },
    {
     "value": "0x01",
     "name": "Bp",
     "note": null
    },
    {
     "value": "0x02",
     "name": "Count",
     "note": null
    },
    {
     "value": "0x03",
     "name": "HousingDeedMenu",
     "note": null
    },
    {
     "value": "0x04",
     "name": "HousingOutsideMenu",
     "note": null
    },
    {
     "value": "0x05",
     "name": "HousingNPCHookpoint",
     "note": null
    },
    {
     "value": "0x06",
     "name": "HousingInsideShop",
     "note": null
    },
    {
     "value": "0x07",
     "name": "HousingOutsideShop",
     "note": null
    },
    {
     "value": "0x08",
     "name": "HousingVaultHookpoint",
     "note": null
    },
    {
     "value": "0x09",
     "name": "HousingCraftingHookpoint",
     "note": null
    },
    {
     "value": "0x0A",
     "name": "HousingBindstoneHookpoint",
     "note": null
    },
    {
     "value": "0x0B",
     "name": "HousingInsideMenu",
     "note": null
    },
    {
     "value": "0x0C",
     "name": "HousingTicket",
     "note": null
    },
    {
     "value": "0x0D",
     "name": "HousingGuildTicket",
     "note": null
    }
   ],
   "subtypes_total": 14,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 24,
   "op": "0x18",
   "name": "HouseDecorationRotate",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Acknowledge house decoration rotate request",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 27,
   "op": "0x1B",
   "name": "SpellEffectAnimation",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Spell hit/bolt visual effect on target",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 30,
   "op": "0x1E",
   "name": "ConsignmentMerchantMoney",
   "label": null,
   "family": "trade",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Consignment merchant stored money",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 31,
   "op": "0x1F",
   "name": "MarketExplorerWindow",
   "label": null,
   "family": "trade",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Market explorer search results page",
   "note": "count 255 means an empty result window",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 32,
   "op": "0x20",
   "name": "PositionAndObjectID",
   "label": null,
   "family": "world",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Own position, object ID and region on zone-in",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 33,
   "op": "0x21",
   "name": "DebugMode",
   "label": null,
   "family": "session",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Toggle client debug mode",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 34,
   "op": "0x22",
   "name": "CryptKey",
   "label": null,
   "family": "session",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Server version and encryption handshake",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 35,
   "op": "0x23",
   "name": null,
   "label": "Pairs with 0xA6",
   "family": "unknown",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "unknown",
   "evidence": "Handler related to 0xA6",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 36,
   "op": "0x24",
   "name": null,
   "label": "World-entry flag",
   "family": "world",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Retail sends 4 zero bytes in the world-entry burst",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 40,
   "op": "0x28",
   "name": "SessionID",
   "label": null,
   "family": "session",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Assign client session ID",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 41,
   "op": "0x29",
   "name": "PingReply",
   "label": null,
   "family": "session",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Reply to client ping with timestamp",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 42,
   "op": "0x2A",
   "name": "LoginGranted",
   "label": null,
   "family": "session",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Login accepted: account, server name, ruleset",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 43,
   "op": "0x2B",
   "name": "CharacterInitFinished",
   "label": null,
   "family": "world",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Character world initialisation complete",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 44,
   "op": "0x2C",
   "name": "LoginDenied",
   "label": null,
   "family": "session",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Login refused with error reason",
   "note": null,
   "subtypes": [
    {
     "value": "0x01",
     "name": "IncorrectPassword",
     "note": null
    },
    {
     "value": "0x02",
     "name": "InvalidAccount",
     "note": null
    },
    {
     "value": "0x03",
     "name": "AuthorizationServerUnavailable",
     "note": null
    },
    {
     "value": "0x05",
     "name": "IncorrectClientVersion",
     "note": null
    },
    {
     "value": "0x06",
     "name": "Error",
     "note": null
    },
    {
     "value": "0x07",
     "name": "AccountNotFound",
     "note": null
    },
    {
     "value": "0x08",
     "name": "AccountNoAccessAnyGame",
     "note": null
    },
    {
     "value": "0x09",
     "name": "AccountNoAccessThisGame",
     "note": null
    },
    {
     "value": "0x0A",
     "name": "ClosedAccount",
     "note": null
    },
    {
     "value": "0x0B",
     "name": "AccountAlreadyLoggedIn",
     "note": null
    },
    {
     "value": "0x0C",
     "name": "TooManyPlayersLoggedIn",
     "note": null
    },
    {
     "value": "0x0D",
     "name": "GameCurrentlyClosed",
     "note": null
    },
    {
     "value": "0x10",
     "name": "AccountAlreadyLoggedInToOtherServer",
     "note": null
    },
    {
     "value": "0x11",
     "name": "AccountIsInLogoutProcedure",
     "note": null
    },
    {
     "value": "0x12",
     "name": "TooManyFreeAccountsLoggedIn",
     "note": null
    },
    {
     "value": "0x13",
     "name": "AccountNeedsInvite",
     "note": null
    },
    {
     "value": "0x14",
     "name": "BannedAccount",
     "note": null
    },
    {
     "value": "0x15",
     "name": "Unknown",
     "note": null
    },
    {
     "value": "0x19",
     "name": "RequestedServerNotFound",
     "note": null
    },
    {
     "value": "0xAA",
     "name": "ServiceNotAvailable",
     "note": null
    }
   ],
   "subtypes_total": 23,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 45,
   "op": "0x2D",
   "name": "GameOpenReply",
   "label": null,
   "family": "world",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Acknowledge game open request",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 47,
   "op": "0x2F",
   "name": "UDPInitReply",
   "label": null,
   "family": "session",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "UDP channel initialised (UDP)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": true,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 56,
   "op": "0x38",
   "name": null,
   "label": null,
   "family": "unknown",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "unknown",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 68,
   "op": "0x44",
   "name": null,
   "label": "Minotaur relic update",
   "family": "relics",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "likely",
   "evidence": "Handler next to the relic-map handlers; opcode just below 0x45",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 69,
   "op": "0x45",
   "name": "MinotaurRelicMapRemove",
   "label": null,
   "family": "relics",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Remove minotaur relic from map",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 70,
   "op": "0x46",
   "name": "MinotaurRelicMapUpdate",
   "label": null,
   "family": "relics",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Minotaur relic map position",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 71,
   "op": "0x47",
   "name": null,
   "label": "Minotaur relic update",
   "family": "relics",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "likely",
   "evidence": "Handler next to the relic-map handlers; opcode just above 0x46",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 72,
   "op": "0x48",
   "name": null,
   "label": null,
   "family": "unknown",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "unknown",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 73,
   "op": "0x49",
   "name": "WarMapClaimedKeeps",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Warmap keep/tower ownership, claims, relics",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 74,
   "op": "0x4A",
   "name": "WarMapDetailUpdate",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Warmap fight and group markers",
   "note": "no sub-type: fight records, then group records",
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 75,
   "op": "0x4B",
   "name": "PlayerCreate172",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Create another player in view",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 76,
   "op": "0x4C",
   "name": "VisualEffect",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Multiplexed per-object visual/UI effects",
   "note": null,
   "subtypes": [
    {
     "value": "0x03",
     "name": "hex / warlock chamber",
     "note": "5 effect bytes; used by SendHexEffect and SendWarlockChamberEffect"
    },
    {
     "value": "0x04",
     "name": "vampiir flight",
     "note": "0 enable, 1 disable"
    },
    {
     "value": "0x05",
     "name": "region colour scheme",
     "note": null
    },
    {
     "value": "0x07",
     "name": "NPC quest indicator",
     "note": "eQuestIndicator: None/Available/Finish/Lesson/Lore/Pending"
    },
    {
     "value": "0x08",
     "name": "blink UI panel",
     "note": null
    },
    {
     "value": "0x09",
     "name": "free level state",
     "note": null
    },
    {
     "value": "0x0B",
     "name": "player title",
     "note": null
    },
    {
     "value": "0x0C",
     "name": "RvR guild banner",
     "note": null
    },
    {
     "value": "0x0D",
     "name": "minotaur relic window",
     "note": null
    },
    {
     "value": "0x0E",
     "name": "minotaur relic bar XP",
     "note": null
    }
   ],
   "subtypes_total": 10,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 77,
   "op": "0x4D",
   "name": null,
   "label": null,
   "family": "unknown",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "unknown",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 78,
   "op": "0x4E",
   "name": "ControlledHorse",
   "label": null,
   "family": "move",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Player horse appearance (self when OID 0)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 80,
   "op": "0x50",
   "name": null,
   "label": "World-entry value",
   "family": "world",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Retail sends 4 bytes (00000bdc) just before GameOpenReply",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 81,
   "op": "0x51",
   "name": null,
   "label": null,
   "family": "unknown",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "unknown",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 82,
   "op": "0x52",
   "name": null,
   "label": "Character-select reply",
   "family": "charsel",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Handled before entering the world; pairs with C->S 0x52",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 89,
   "op": "0x59",
   "name": "MinotaurRelicRealm",
   "label": null,
   "family": "relics",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 90,
   "op": "0x5A",
   "name": null,
   "label": "Minotaur relic state",
   "family": "relics",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Follows 0x59 MinotaurRelicRealm in numbering and code",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 91,
   "op": "0x5B",
   "name": null,
   "label": "Minotaur relic state",
   "family": "relics",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Follows 0x59 MinotaurRelicRealm in numbering and code",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 92,
   "op": "0x5C",
   "name": "XFire",
   "label": null,
   "family": "world",
   "status": "obsolete",
   "status_label": "client ignores",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": "XFire integration flag",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 95,
   "op": "0x5F",
   "name": null,
   "label": "World-entry notice",
   "family": "world",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Retail sends it 3x (1 byte, 00) on world entry",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 97,
   "op": "0x61",
   "name": "KeepComponentInteractResponse",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Keep component info: realm, health, level, guild",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 98,
   "op": "0x62",
   "name": "KeepClaim",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Keep claim/lord window",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "Info",
     "note": null
    },
    {
     "value": "1",
     "name": "KeepTargetLevel",
     "note": null
    },
    {
     "value": "2",
     "name": "KeepLordType",
     "note": null
    },
    {
     "value": "4",
     "name": "Release",
     "note": "only value sent"
    }
   ],
   "subtypes_total": 4,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 99,
   "op": "0x63",
   "name": "KeepComponentHookpointStore",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Hookpoint purchase list (guards, siege, oil)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 101,
   "op": "0x65",
   "name": "KeepComponentHookpointUpdate",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Free hookpoints on keep component",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 102,
   "op": "0x66",
   "name": "WarmapBonuses",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Realm keep/tower/relic bonus counts",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 103,
   "op": "0x67",
   "name": "KeepComponentUpdate",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Keep level and component state flags",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 105,
   "op": "0x69",
   "name": "KeepInfo",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Create keep: position, realm, level",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 106,
   "op": "0x6A",
   "name": "KeepRealmUpdate",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Keep realm and level change",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 107,
   "op": "0x6B",
   "name": "KeepRemove",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Remove keep",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 108,
   "op": "0x6C",
   "name": "KeepComponentInfo",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Create keep component (wall/tower piece)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 109,
   "op": "0x6D",
   "name": "KeepComponentDetailUpdate",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Keep component health/status update",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 110,
   "op": "0x6E",
   "name": "KeepComponentRemove",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Remove keep component",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 112,
   "op": "0x70",
   "name": "GroupMemberUpdate",
   "label": null,
   "family": "social",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Group member status, buff icons or map position",
   "note": null,
   "subtypes": [
    {
     "value": "0x20",
     "name": "status",
     "note": "health/mana/endurance %, status flags"
    },
    {
     "value": "0x40",
     "name": "map position",
     "note": "zone and x/y for group map dots"
    },
    {
     "value": "0x80",
     "name": "icons",
     "note": "member effect icon list"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 114,
   "op": "0x72",
   "name": "SpellCastAnimation",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Start spell casting animation",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 115,
   "op": "0x73",
   "name": "InterruptSpellCast",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Interrupt casting animation",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 116,
   "op": "0x74",
   "name": "AttackMode",
   "label": null,
   "family": "combat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Toggle player melee attack mode",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 117,
   "op": "0x75",
   "name": "ConcentrationList",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Concentration buffs list",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 123,
   "op": "0x7B",
   "name": "TrainerWindow",
   "label": null,
   "family": "progress",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Trainer window: specs, realm abilities, champion lines",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "specs",
     "note": "trainable spec levels"
    },
    {
     "value": "1",
     "name": "realm abilities",
     "note": "RA list with costs"
    },
    {
     "value": "2",
     "name": "champion",
     "note": "champion line tree"
    },
    {
     "value": "3",
     "name": "skill descriptions",
     "note": "per-spec skill entries"
    },
    {
     "value": "4",
     "name": "name index",
     "note": "skill names"
    },
    {
     "value": "5",
     "name": "realm ability details",
     "note": "RA levels and per-level costs"
    }
   ],
   "subtypes_total": 6,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 126,
   "op": "0x7E",
   "name": "Time",
   "label": null,
   "family": "world",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Game time and day increment",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 127,
   "op": "0x7F",
   "name": "UpdateIcons",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Player active effect icons",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 129,
   "op": "0x81",
   "name": "Dialog",
   "label": null,
   "family": "chat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Show dialog box (invite, confirm, quest offer)",
   "note": null,
   "subtypes": [
    {
     "value": "0x00",
     "name": "SimpleWarning",
     "note": "OK-only warning dialog"
    },
    {
     "value": "0x03",
     "name": "GuildInvite",
     "note": "guild invite yes/no (SendGuildInviteCommand)"
    },
    {
     "value": "0x05",
     "name": "GroupInvite",
     "note": "group invite yes/no (SendGroupInviteCommand)"
    },
    {
     "value": "0x06",
     "name": "CustomDialog",
     "note": "custom server message with callback"
    },
    {
     "value": "0x08",
     "name": "GuildLeave",
     "note": "confirm leaving guild"
    },
    {
     "value": "0x14",
     "name": "HousePayRent",
     "note": "house rent payment dialog"
    },
    {
     "value": "0x19",
     "name": "MasterLevelWindow",
     "note": "master level dialog"
    },
    {
     "value": "0x1A",
     "name": "KeepClaim",
     "note": "confirm keep claim"
    },
    {
     "value": "0x20",
     "name": "BuyRespec",
     "note": "enum member; no caller in source"
    },
    {
     "value": "0x21",
     "name": "QuestFinish",
     "note": "quest window, finish/not-yet (SendQuestWindow offer=false)"
    },
    {
     "value": "0x22",
     "name": "QuestOffer",
     "note": "quest window, accept/decline (SendQuestWindow offer=true)"
    },
    {
     "value": "0x30",
     "name": "WarmapWindowHibernia",
     "note": "warmap teleport confirm, Hibernia"
    },
    {
     "value": "0x31",
     "name": "WarmapWindowAlbion",
     "note": "warmap teleport confirm, Albion"
    },
    {
     "value": "0x32",
     "name": "WarmapWindowMidgard",
     "note": "warmap teleport confirm, Midgard"
    },
    {
     "value": "0x64",
     "name": "QuestSubscribe",
     "note": "quest accept (data3=0) or abort (data3=1)"
    }
   ],
   "subtypes_total": 15,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 131,
   "op": "0x83",
   "name": "QuestEntry",
   "label": null,
   "family": "quests",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Journal quest/task entry at index",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 134,
   "op": "0x86",
   "name": "FindGroupUpdate",
   "label": null,
   "family": "social",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Looking-for-group list; 0xFF variant crashes client",
   "note": null,
   "subtypes": [
    {
     "value": "N",
     "name": "player list",
     "note": "first byte = number of LFG entries (SendFindGroupWindowUpdate)"
    },
    {
     "value": "0xFF",
     "name": "crash",
     "note": "SendCrash: 0xFF + pascal string, used to crash client"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 136,
   "op": "0x88",
   "name": "PetWindow",
   "label": null,
   "family": "combat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Open/update/close pet window with stance and buffs",
   "note": null,
   "subtypes": [
    {
     "value": "2",
     "name": "Open",
     "note": "ePetWindowAction.Open: create window"
    },
    {
     "value": "1",
     "name": "Update",
     "note": "ePetWindowAction.Update"
    },
    {
     "value": "0",
     "name": "Close",
     "note": "ePetWindowAction.Close / released"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 137,
   "op": "0x89",
   "name": "PlayerRevive",
   "label": null,
   "family": "combat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Player was resurrected",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 141,
   "op": "0x8D",
   "name": "PlayerModelTypeChange",
   "label": null,
   "family": "combat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Change player model type (e.g. form)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 145,
   "op": "0x91",
   "name": "CharacterPointsUpdate",
   "label": null,
   "family": "progress",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Realm/bounty/skill points and XP progress",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 146,
   "op": "0x92",
   "name": "Weather",
   "label": null,
   "family": "world",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Region weather/storm parameters",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 153,
   "op": "0x99",
   "name": "DoorState",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Door open/closed state and sound flag",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 158,
   "op": "0x9E",
   "name": "ClientRegions",
   "label": null,
   "family": "world",
   "status": "obsolete",
   "status_label": "client ignores",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": "Region list with server IP and ports",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 161,
   "op": "0xA1",
   "name": "ObjectUpdate",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "NPC/object position, speed, target and health",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": true,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 162,
   "op": "0xA2",
   "name": "RemoveObject",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Remove object from client view",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 164,
   "op": "0xA4",
   "name": "Quit",
   "label": null,
   "family": "session",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Logout: quit game or back to character select",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "to character select",
     "note": "totalOut=false"
    },
    {
     "value": "1",
     "name": "total quit",
     "note": "totalOut=true"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 166,
   "op": "0xA6",
   "name": null,
   "label": "Zone-entry info (new in 1.130)",
   "family": "world",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "likely",
   "evidence": "Only opcode new in 1.130; retail sends 72 00 00 after \"You have entered\"",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 169,
   "op": "0xA9",
   "name": "PlayerPosition",
   "label": null,
   "family": "move",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Broadcast another player's position, speed, state",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": true,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 172,
   "op": "0xAC",
   "name": null,
   "label": "Object removal",
   "family": "objects",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Handler removes an object ID from a client-side table",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 173,
   "op": "0xAD",
   "name": "CharacterStatusUpdate",
   "label": null,
   "family": "combat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Own health/mana/endurance/concentration values",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 174,
   "op": "0xAE",
   "name": "PlayerDeath",
   "label": null,
   "family": "combat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Player killed, with killer object",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 175,
   "op": "0xAF",
   "name": "Message",
   "label": null,
   "family": "chat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Chat or system text message",
   "note": "38 of the 39 chat types are used; the most common are listed",
   "subtypes": [
    {
     "value": "0x01",
     "name": "CT_Say",
     "note": null
    },
    {
     "value": "0x12",
     "name": "CT_System",
     "note": null
    },
    {
     "value": "0x1C",
     "name": "CT_Important",
     "note": null
    },
    {
     "value": "0x1B",
     "name": "CT_SpellResisted",
     "note": null
    },
    {
     "value": "0x10",
     "name": "CT_Spell",
     "note": null
    },
    {
     "value": "0x04",
     "name": "CT_Guild",
     "note": null
    },
    {
     "value": "0x05",
     "name": "CT_Broadcast",
     "note": null
    },
    {
     "value": "0xC8",
     "name": "CT_ScreenCenter",
     "note": null
    },
    {
     "value": "0x11",
     "name": "CT_YouHit",
     "note": null
    },
    {
     "value": "0x08",
     "name": "CT_Chat",
     "note": null
    },
    {
     "value": "0x19",
     "name": "CT_SpellExpires",
     "note": null
    },
    {
     "value": "0x06",
     "name": "CT_Emote",
     "note": null
    },
    {
     "value": "0x0F",
     "name": "CT_Staff",
     "note": null
    },
    {
     "value": "0x14",
     "name": "CT_Merchant",
     "note": null
    },
    {
     "value": "0x13",
     "name": "CT_Items",
     "note": null
    },
    {
     "value": "0x0C",
     "name": "CT_BattleGroup",
     "note": null
    },
    {
     "value": "0x1E",
     "name": "CT_Action",
     "note": null
    },
    {
     "value": "0x1A",
     "name": "CT_Loot",
     "note": null
    },
    {
     "value": "0x03",
     "name": "CT_Group",
     "note": null
    },
    {
     "value": "0x02",
     "name": "CT_Send",
     "note": null
    }
   ],
   "subtypes_total": 38,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 177,
   "op": "0xB1",
   "name": "ClientRegion",
   "label": null,
   "family": "world",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Region server IP and port (1.126+)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 180,
   "op": "0xB4",
   "name": null,
   "label": "Group-finder reply",
   "family": "social",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Handler adjacent to S->C 0xE7; pairs with C->S 0xB4",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 182,
   "op": "0xB6",
   "name": "MaxSpeed",
   "label": null,
   "family": "move",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Max speed percent, turning lock, water speed",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 183,
   "op": "0xB7",
   "name": "RegionChanged",
   "label": null,
   "family": "world",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Client region/zone changed",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 184,
   "op": "0xB8",
   "name": null,
   "label": "Realm lockout notice",
   "family": "session",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "likely",
   "evidence": "Handler prints \"cannot log into this realm for another N minutes\"",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 186,
   "op": "0xBA",
   "name": "PlayerHeading",
   "label": null,
   "family": "move",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Broadcast another player's heading and state",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": true,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 188,
   "op": "0xBC",
   "name": "CombatAnimation",
   "label": null,
   "family": "combat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Melee attack animation and result",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 189,
   "op": "0xBD",
   "name": "Encumberance",
   "label": null,
   "family": "progress",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Carrying capacity and inventory weight",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 195,
   "op": "0xC3",
   "name": "BadNameCheckReply",
   "label": null,
   "family": "charsel",
   "status": "obsolete",
   "status_label": "client ignores",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": "Character name allowed/forbidden reply",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 196,
   "op": "0xC4",
   "name": "DetailWindow",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Text detail window (stats/titles or custom text)",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "player statistics + titles",
     "note": "SendPlayerTitles: stats lines, 200 marker, then titles list"
    },
    {
     "value": "0",
     "name": "custom text window",
     "note": "SendCustomTextWindow: caption + text lines"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 197,
   "op": "0xC5",
   "name": "AddFriend",
   "label": null,
   "family": "social",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Add names to friends list",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 198,
   "op": "0xC6",
   "name": "RemoveFriend",
   "label": null,
   "family": "social",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Remove names from friends list",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 200,
   "op": "0xC8",
   "name": "Riding",
   "label": null,
   "family": "move",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Mount or dismount rider on steed",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "mount",
     "note": "with seat slot"
    },
    {
     "value": "0",
     "name": "dismount",
     "note": null
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 201,
   "op": "0xC9",
   "name": "SoundEffect",
   "label": null,
   "family": "chat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Play positional sound effect in zone",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 204,
   "op": "0xCC",
   "name": "DupNameCheckReply",
   "label": null,
   "family": "charsel",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Character name duplicate check result",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 208,
   "op": "0xD0",
   "name": "CheckLOSRequest",
   "label": null,
   "family": "move",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Ask client to check line of sight",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 209,
   "op": "0xD1",
   "name": "HouseCreate",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Create or remove house on lot",
   "note": null,
   "subtypes": [
    {
     "value": "create",
     "name": "SendHouse",
     "note": "full house model/materials/name"
    },
    {
     "value": "remove",
     "name": "SendRemoveHouse",
     "note": "model/material bytes zeroed, byte 0x03 at offset 27, empty name"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 210,
   "op": "0xD2",
   "name": "HouseChangeGarden",
   "label": null,
   "family": "housing",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "House garden items or occupied flag",
   "note": null,
   "subtypes": [
    {
     "value": "count,0x80",
     "name": "full garden",
     "note": "SendGarden(house): all outdoor items"
    },
    {
     "value": "0x01,0x00",
     "name": "single item update",
     "note": "SendGarden(house,i)"
    },
    {
     "value": "0x00,flag",
     "name": "occupied flag",
     "note": "SendHouseOccupied: flag 1/0"
    }
   ],
   "subtypes_total": 3,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 211,
   "op": "0xD3",
   "name": "PlaySound",
   "label": null,
   "family": "chat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Play sound by type and ID",
   "note": null,
   "subtypes": [
    {
     "value": "0x01",
     "name": "Craft",
     "note": null
    },
    {
     "value": "0x02",
     "name": "Divers",
     "note": null
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 212,
   "op": "0xD4",
   "name": "PlayerCreate",
   "label": null,
   "family": "charsel",
   "status": "old-clients",
   "status_label": "older clients only",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 213,
   "op": "0xD5",
   "name": null,
   "label": null,
   "family": "unknown",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "unknown",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 214,
   "op": "0xD6",
   "name": "DisableSkills",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Skill/spell cooldown (disabled) timers",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "hybrid skill",
     "note": "entries: skill index + duration"
    },
    {
     "value": "2",
     "name": "list spells",
     "note": "entries: line index + spell index; shared duration"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 216,
   "op": "0xD8",
   "name": "DelveInfo",
   "label": null,
   "family": "magic",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Delve (item/spell info) text",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 217,
   "op": "0xD9",
   "name": "ObjectCreate",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Create static object/door in world",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 218,
   "op": "0xDA",
   "name": "NPCCreate",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Create NPC with model, level, flags, name",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 219,
   "op": "0xDB",
   "name": "ModelChange",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Change object model and size",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 222,
   "op": "0xDE",
   "name": "ObjectGuildID",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Set object's guild ID",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 225,
   "op": "0xE1",
   "name": "ObjectDelete",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Delete object from client",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 226,
   "op": "0xE2",
   "name": "EmblemDialogue",
   "label": null,
   "family": "social",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Open guild emblem selection dialog",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 227,
   "op": "0xE3",
   "name": "SiegeWeaponAnimation",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Siege weapon aim/arm/load/fire animation",
   "note": null,
   "subtypes": [
    {
     "value": "0x00",
     "name": "None",
     "note": null
    },
    {
     "value": "0x01",
     "name": "Aiming",
     "note": "+ target health, target ID"
    },
    {
     "value": "0x02",
     "name": "Arming",
     "note": "+ target health"
    },
    {
     "value": "0x03",
     "name": "Loading",
     "note": null
    },
    {
     "value": "0x04",
     "name": "Fire",
     "note": "SendSiegeWeaponFireAnimation"
    }
   ],
   "subtypes_total": 5,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 229,
   "op": "0xE5",
   "name": null,
   "label": "Keep-related",
   "family": "rvr",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Handler sits among the keep handlers",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 231,
   "op": "0xE7",
   "name": null,
   "label": "Group-finder reply",
   "family": "social",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "guess",
   "evidence": "Handler adjacent to S->C 0xB4; pairs with C->S 0xE7",
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 234,
   "op": "0xEA",
   "name": "TradeWindow",
   "label": null,
   "family": "trade",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Trade window contents; all-zero closes it",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 236,
   "op": "0xEC",
   "name": "ChangeGroundTarget",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Set ground target (GroundAssist)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 237,
   "op": "0xED",
   "name": null,
   "label": null,
   "family": "unknown",
   "status": "never-sent",
   "status_label": "never sent",
   "missing": true,
   "obsolete": false,
   "confidence": "unknown",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 238,
   "op": "0xEE",
   "name": "ObjectDataUpdate",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Update living level, guild and name",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 239,
   "op": "0xEF",
   "name": "RegionSound",
   "label": null,
   "family": "world",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Level-up or region-enter sound",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "level up sound",
     "note": "+ realm byte"
    },
    {
     "value": "2",
     "name": "region enter sound",
     "note": "+ sound ID"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 240,
   "op": "0xF0",
   "name": "CharacterCreateReply",
   "label": null,
   "family": "charsel",
   "status": "obsolete",
   "status_label": "client ignores",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": "Confirm character created",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 243,
   "op": "0xF3",
   "name": "TimerWindow",
   "label": null,
   "family": "chat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Open or close countdown timer window",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "open",
     "note": "seconds + title"
    },
    {
     "value": "0",
     "name": "close",
     "note": "SendCloseTimerWindow"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 245,
   "op": "0xF5",
   "name": "SiegeWeaponInterface",
   "label": null,
   "family": "rvr",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Open/update or close siege weapon UI",
   "note": null,
   "subtypes": [
    {
     "value": "0",
     "name": "open/update",
     "note": "ammo list, action, name"
    },
    {
     "value": "1",
     "name": "close",
     "note": "SendSiegeWeaponCloseInterface"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 246,
   "op": "0xF6",
   "name": "ChangeTarget",
   "label": null,
   "family": "objects",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Force client target change",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 247,
   "op": "0xF7",
   "name": "HelpWindow",
   "label": null,
   "family": "chat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Open help topic window",
   "note": null,
   "subtypes": [
    {
     "value": "1",
     "name": "starter help",
     "note": "SendStarterHelp"
    },
    {
     "value": "106",
     "name": "rent reminder",
     "note": "SendRentReminder, + house lot"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 249,
   "op": "0xF9",
   "name": "EmoteAnimation",
   "label": null,
   "family": "chat",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Play emote animation on object",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 250,
   "op": "0xFA",
   "name": "MoneyUpdate",
   "label": null,
   "family": "items",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Player money (copper..mithril)",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 251,
   "op": "0xFB",
   "name": "StatsUpdate",
   "label": null,
   "family": "progress",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Character stats or resists breakdown",
   "note": null,
   "subtypes": [
    {
     "value": "0x00",
     "name": "stats",
     "note": "SendCharStatsUpdate: base/buff/item/cap/RA per stat"
    },
    {
     "value": "0xFF",
     "name": "resists",
     "note": "SendCharResistsUpdate"
    }
   ],
   "subtypes_total": 2,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 252,
   "op": "0xFC",
   "name": "CharacterOverview1126",
   "label": null,
   "family": "charsel",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Character select list for a realm",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  },
  {
   "dir": "sc",
   "code": 253,
   "op": "0xFD",
   "name": "CharacterOverview",
   "label": null,
   "family": "charsel",
   "status": "old-clients",
   "status_label": "older clients only",
   "missing": false,
   "obsolete": true,
   "confidence": "named",
   "evidence": null,
   "purpose": null,
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": false
  },
  {
   "dir": "sc",
   "code": 254,
   "op": "0xFE",
   "name": "Realm",
   "label": null,
   "family": "charsel",
   "status": "sent",
   "status_label": "sent",
   "missing": false,
   "obsolete": false,
   "confidence": "named",
   "evidence": null,
   "purpose": "Selected realm for character screen",
   "note": null,
   "subtypes": [],
   "subtypes_total": 0,
   "udp": false,
   "retail_seen": true
  }
 ]
}
