Files
browser/openspec/changes/replace-scum-projections-with-real-data-management/evidence/scum-current-service-content-features-baseline-2026-08-13.md
T

9.6 KiB

SCUM current-service content features baseline (redacted)

  • diagnostic: scum-current-service-content-features-v1
  • observed_utc: 2026-08-13T03:56:41Z
  • target: 枣庄服务器 via server-management MCP
  • redaction: type, null, range, length, hash, XML-key, and log-skeleton features only; no raw rows, raw XML, raw log lines, host paths, IPs, credentials, sockets, or player identities

DB content feature sources

This file complements the full schema inventory in scum-current-service-db-schema-baseline-2026-08-13.md and the join/range diagnostic in scum-current-service-sqlite-diagnostic-2026-08-12.md. The following previously captured content features remain authoritative inputs for adapter design:

  • Identity/profile content: user has 74 rows, user_profile has 73 rows, all profiles join to user, and 72 profiles join to prisoner / prisoner_entity / entity; one profile has no current prisoner/entity.
  • XML-bearing columns: user_profile.template_xml is non-null for 73/73 profiles with length range 2541-2673; prisoner_skill.xml has 72/1656 non-null values with length 15-65; item_entity.xml has 42304/62844 non-null values with length 136-4781.
  • Squad content: squad has 7 rows; squad_member has 18 rows; observed rank distribution is 1:6, 2:2, 3:4, 4:6, but rank meanings remain unknown.
  • Economy content: bank_account_registry has 73 account rows and bank_account_registry_currencies has 146 rows; observed currency types are numeric 1 and 2, but labels/units and command confirmation remain unknown.
  • Coordinate content: joined prisoner positions, vehicle positions, base/base-element positions, and spawn-location coordinates have verified numeric ranges, but DB cadence did not prove sub-10s realtime updates.

XML content structure

The XML diagnostic sampled only tag names, attribute names, parser success counts, and value-shape digests. It did not emit XML documents or attribute values.

table column sampled parse_ok root_tags element_tags attribute_names value_shape_digest
user_profile template_xml 73 73 CharacterTemplate x73 Skill x1533; CharacterTemplate x73 Name x1606; Attribute x1533; ClassName x1533; Level x1533; Experience x1533; Strength x73; Constitution x73; Dexterity x73; Intelligence x73; Age x73; Gender x73; AppearanceIndex x73; TattooIndex x73; BodyHairIndex x73; HairStyleIndex x73; MoustacheStyleIndex x73; BeardStyleIndex x73; BreastSize x73; PenisSize x73; GrowOverTime x73; BirthDate x73; ArrestDate x73; FaceType x73; SkinTone x73; HairColor x73 sha256:9f839093a598edf3
prisoner_skill xml 72 0 - - - sha256:e3b0c44298fc1c14
item_entity xml 100 100 Item x100 Item x100; ContinuousFuelConsumption x25; Component x17; Stacks x15; ContainedItemsMetadata x15; ItemComponents x11; Locks x6; ContinuousFuelConsumptions x5; HeatSource_0 x5; HeatSource_1 x5; HeatSource_2 x5; HeatSource_3 x5; HeatSource_4 x5 _bloodStage x100; _dryBloodStage x100; _isCrafted x100; _uncraftTime x100; _lastAccessTime x100; _healthRatioWhenCrafted x100; UniqueId x25; CurrentEnergyConsumptionRate x25; HeatSourceID x25; DialValue x25; FuelConsumptionCreated x25; Name x17; _radiation x15; _weight x15; _weightUsed x15; _isPartOfEvent x15; WaterWeight x15; StacksCount x15; _owningUserProfileId x6; _activeAccessLevel x6; _pendingContainedItemsRadiationAmount x6; _forbiddenZoneEnterTimestamp x6; _protectingFlagId x6; _colorIndex x6; _name x6 sha256:5a62ccfa73af3694

XML conclusions

  • user_profile.template_xml is the only sampled profile-level XML source that parses cleanly and exposes named character attributes plus skill entries.
  • The content features support future named-field adapter design for attributes such as Strength, Constitution, Dexterity, Intelligence, and existing Skill attributes, but they do not by themselves prove safe write semantics, backup/offline requirements, readback behavior, or a 855 preset mapping.
  • prisoner_skill.xml is not a valid XML document in the sampled current-service rows, so it cannot be treated as the preserving XML mutation source.
  • item_entity.xml parses as item metadata and is not a profile attribute source.

Log content skeleton features

The log diagnostic sampled bounded prefixes from process-adjacent logs, grouped by filename pattern. Skeletons replace quoted text, numbers, network-shaped tokens, long hex identifiers, and ASCII words; marker sets record structural tokens only.

filename_pattern sampled_files sampled_lines bytes encodings marker_sets skeleton_digest top_skeletons
admin_{digits}.log 15 48 6816 utf-16-le x15 date x18; date,network x15; date,login-event x15 sha256:ffaf5a692fdcf219 date/network boilerplate x15; admin-login-event skeleton x15; admin-action skeleton x12
armor_absorption_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
base_building_destruction_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
chat_{digits}.log 15 24 2706 utf-16-le x15 date,network x15; date x9 sha256:8e42f8c5ba48c29b shared date/network boilerplate x15; redacted chat skeleton x9
chest_ownership_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
connection_log.txt 5 100 82695 utf-8-sig x5 date,time x65; date,time,login-event x35 sha256:80153240fb51639e service connection event skeletons x35/x35/x10
connection_log_{n}.txt 10 200 1248965 utf-16-le x5; utf-8-sig x5 none x100; date,time x90; date,time,network x5; date,time,login-event x5 sha256:346312bbea656ecd mixed encoded service connection skeletons
economy_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
event_kill_{digits}.log 12 12 1200 utf-16-le x12 date,network x12 sha256:2c509fc280f438aa shared date/network boilerplate x12
famepoints_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
gameplay_{digits}.log 15 159 987486 utf-16-le x15 date x78; date,coordinates x66; date,network x15 sha256:b8ae42ecfeb39fad gameplay header skeleton x33; coordinate event skeletons x18/x18
kill_{digits}.log 12 12 1200 utf-16-le x12 date,network x12 sha256:2c509fc280f438aa shared date/network boilerplate x12
login_{digits}.log 12 21 3456 utf-16-le x12 date,network x12; date,login-event,coordinates,network x9 sha256:e4f04da6e2da7470 shared date/network boilerplate x12; login/logout coordinate skeletons x6/x3
loot_{digits}.log 15 186 49164 utf-16-le x15 date x171; date,network x15 sha256:36e500f92b6c82f3 loot interaction skeletons x108/x18; shared date/network boilerplate x15
network_objects_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
quests_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
raid_protection_{digits}.log 15 33 2868 utf-16-le x15 date x18; date,network x15 sha256:80b32ec451bdbd18 shared date/network boilerplate x15; raid protection status skeletons x9/x9
sentry_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
server_notifications_{digits}.log 15 15 1500 utf-16-le x15 date,network x15 sha256:2c509fc280f438aa shared date/network boilerplate x15
service_log.txt 5 100 181445 utf-8-sig x5 time,login-event x100 sha256:096a96f507532516 service login-state skeletons x35/x35/x30
stats_log.txt 5 100 769140 utf-16-le x5 none x100 sha256:3eed2125dbb41774 encoded/stat payload skeletons x95/x5
vehicle_destruction_{digits}.log 15 72 503544 utf-16-le x15 date,coordinates x57; date,network x15 sha256:af9b5eb7bece3c6d vehicle coordinate event skeletons x18/x15; shared date/network boilerplate x15
violations_{digits}.log 12 12 1200 utf-16-le x12 date,network x12 sha256:2c509fc280f438aa shared date/network boilerplate x12

Additional runtime/backup logs (SCUM.log, backup SCUM logs, UE{n}SS.log, configstore_log.txt, systemmanager.txt, and empty dispatch test stdout/stderr logs) were observed as separate service/runtime families. Their sampled content either did not decode into useful event skeletons under the bounded text decoder or contained no sampled lines; they are not candidate gameplay/event parsers without a separate parser contract.

Log conclusions

  • login_{digits}.log remains the authenticated player-session parser source because it has login/logout, coordinate, date, and network-shaped content markers matching the existing sanitized fixtures.
  • gameplay_{digits}.log and vehicle_destruction_{digits}.log contain coordinate-shaped events, but they are separate parser candidates and must not be conflated with login/session events.
  • Many gameplay logs start with a repeated date/network boilerplate shape, so parsers must strip or reject network-shaped tokens before persistence or logical event fingerprinting.
  • Service/runtime logs (connection_log*.txt, service_log.txt, SCUM.log, stats/config/system logs) are structurally distinct from gameplay event files and require separate declarations if used.