Skip to content
Calpheon Labs Binary Schemas
Esc
navigateopen⌘Jpreview
On this page

characterfunction.dbss

Binary layout, byte coverage, field semantics, and validation evidence for the characterfunction decoder used by calpheonlabs.

Investigation status

Status Value
Coverage 100%
Iteration 3
Review state No open blockers
Last reviewed 2026-07-16
Captures examined installed (2,083 rows), independent decoder, historical SQLite schema
Decoder packages/scraper/src/tables/characterfunction.ts
Remaining blockers None

See Decoder methodology for the confidence scale and evidence rules.

Field ledger

Field/path Offset and width Representation Claimed meaning Physical confidence Representation confidence Semantic confidence Evidence Status
companion key/span offset directory key returned; span controls omitted row identity and boundary Certain Certain Certain Both decoders produce the same 2,083 key/offset/length triples; spans exactly partition the primary file Closed
CharacterFunctionString variable u32 codeUnits + u32 flags + UTF-16LE text returned; zero flags validated/omitted menu label or availability expression Certain Certain High Every sequential string envelope decodes with zero flags; nonzero flag corruption rejects Closed
shop descriptor variable prefix typed fields/strings; reserved byte omitted shop/servant types and buying group Certain Certain High Sequential grammar, legacy client enums, and item-main-group joins Closed
groups variable middle typed selectors/slots; reserved capacity omitted selling, guild, trade, and auction groups Certain Certain High Fixed positions and exhaustive group correlations Closed
fixed enabled slots variable label/condition plus strict Boolean learn, repair, trace, and storage Certain Certain High Enable flags and comparable spawn capabilities agree on every shared row Closed
servantManagement variable typed slot/profile/counted codes stable/wharf/guild servant service Certain Certain High Self-framing list and legacy client vehicle enum Closed
transport/conversation/guild creation variable typed slots and controls transport and dialogue/name-tag services Certain Certain High Exact Boolean and reserved-byte structure Closed
managed/governed lists counted u32[] retained nodes and territories Certain Certain High Self-framing counts and independent-decoder agreement Closed
additionalServices.lordInformation, .extraction, .knowledgeManagement, .skillAddon sequential variable slots + u8 forward label/condition and strict enable Boolean fixed named services Certain Certain High Stable Korean labels; each enable Boolean equals label presence across all rows Closed
.minorLordInformation, .territorySupply, .legacyGuildSupply sequential variable slots; first two add u16 inactive slots retained; controls neutral historical minor-lord, territory-supply, and guild-supply capacity Certain Certain Medium Historical CharacterFunction_Table column order fixes the positions; all current labels are empty and controls are 0, 0xffff, and absent respectively Closed neutral
.imperialDelivery slot + u16 label/condition and territory key Imperial delivery service and territory Certain Certain High Seven populated labels exactly equal seven non-sentinel territory keys and the spawn capability population Closed
.imperialCraftingDelivery, .imperialFishingDelivery each slot + u16 labels typed; adjacent selectors retained neutrally Imperial crafting/fishing delivery; selector namespace unresolved Certain Certain High for service; Medium for selector Each 12-row label population exactly matches its nonzero selector and spawn capability; selector domains are {0,257} and {0,1} Closed neutral
.stallionSkillExperienceTraining u8 strict Boolean stallion skill-experience training Certain Certain High Historical column name plus three positive rows; all three are repair-capable stable/horse-market NPCs Closed
.gift, .equipmentPurification, .blackSpiritsAdventure condition then label + u8 reversed slots normalized to {label, condition} with strict enable Boolean fixed named services Certain Certain High Sequential cursor proves the reversed order; enable Boolean equals label presence for 24, 27, and 1 rows Closed
.centralMarket slot + u16 label/condition and territory key Central Market service and territory Certain Certain High 21 labels exactly equal 21 non-sentinel keys and the central-market spawn population Closed
.barter slot + u16 label/condition and neutral selector barter service; selector namespace unresolved Certain Certain High for service; Medium for selector 91 labels exactly equal 91 nonzero row-specific selectors Closed neutral
.sailorHiring slot + 5-byte struct label/condition and neutral u8/u16/u16 tuple sailor hiring; tuple namespace unresolved Certain Certain High for service; Medium for controls 23 labels exactly use (0,1,1..23); all inactive rows use (2,0,0) Closed neutral
.seasonSpecialGift, .arenaOfGlory each slot + u8 forward slot and strict enable Boolean fixed named services Certain Certain High One populated label in each slot and exact enable correlation; inactive season rows retain <Null>/empty labels Closed
.yarr.control slot + u8 service named; neighboring Boolean neutral Yar service; wider control meaning unresolved Certain Certain High for service; Unknown for control Eight labels but nine positive controls; the extra key falsifies equivalence Closed neutral
.tier5PetTraining.enabled, .stableControl slot + two u8 two strict Booleans retained separately Tier-5 pet training; second control meaning unresolved Certain Certain High for service/first Boolean; Unknown for second First Boolean exactly matches six labels; second is positive on 22 stable/repair rows Closed neutral
.lightstoneExchangePurification.control slot + u8 service named; neighboring Boolean neutral lightstone exchange/purification; wider control meaning unresolved Certain Certain High for service; Unknown for control One label but 33 positive controls, so the control is not the service enable bit Closed neutral
.tradeStateCode trailer +0, u8 validated codes 1/2 trade-row state Certain Certain High Code 1 is equivalent to a nonzero trade item-main-group on all 2,083 rows; code 2 covers all others Closed
.field01 trailer +1, u8 strict Boolean with offset-qualified neutral name later-build control Certain Certain Unknown One positive row (character 62327); no total local correlation justifies a semantic name Closed neutral
trailer reserved/marker trailer +2..+6 four zero bytes and final marker 1 validated/omitted framing only Certain Certain Certain Exact seven-byte trailer on every row; reserved and marker mutations reject Closed

Active assumptions

Findings

ID Finding Evidence Schema/documentation impact Status
F-01 The former opaque tail is a complete sequential grammar. A single cursor consumes every companion-bounded row exactly: 21 label/condition slots, one standalone stallion Boolean, and a seven-byte trailer; no bytes remain. additionalServiceData: remaining() was replaced by additionalServices. Closed
F-02 The independent decoder corroborates labels but is not an oracle for empty-slot condition ownership. All 2,774 service labels and every populated sequential condition agree; its arbitrary string scan can attach a later reversed-slot condition to an earlier empty slot. Tests compare all labels and populated conditions while preserving the falsified legacy misassociation as evidence. Closed
F-03 Four newly typed service populations exactly match independent spawn capabilities. Imperial delivery 7/7, Imperial crafting 12/12, Imperial fishing 12/12, and Central Market 21/21 agree bidirectionally on shared rows. These service names moved from unknown tail bytes to High semantic confidence. Closed
F-04 Several adjacent controls are broader than their visible menu labels. Yar is 9 controls vs. 8 labels, tier-5 stable control is 22 vs. 6, and lightstone control is 33 vs. 1. Controls remain offset-qualified and semantically neutral instead of inheriting the neighboring service name. Closed
F-05 Tail framing and cross-field relationships reject corruption. Tests mutate string flags, state/Boolean/reserved/marker bytes, the trade-state relationship, and the companion pointer. Physical confidence is Certain rather than capture-only plausibility. Closed

Historical inactive-slot ordering and the stallion column name are corroborated by the archived CharacterFunction table schema; it is evidence only and is not a decoder dependency.

Was this page helpful?