สถานะและขอบเขตอำนาจ
[CONFIRMED] พฤติกรรม UI และ flow ที่มาจาก owner workshop วันที่ 5–6 กันยายน 2026 เป็น requirement สำหรับทุก phase แม้ gameplay backend บางระบบยังไม่ได้สร้าง
[CONFIRMED 2026-09-06] สี, typography, spacing, icon language และ layouts ในเอกสารนี้ได้รับอนุมัติเป็น target implementation contract แล้ว ชื่อ class/widget ที่ระบุว่า proposed ยังคงเป็น target และห้ามอ้างว่าเป็น asset จริงจนกว่าจะถูกสร้างและตรวจใน Unreal
[TBD] ห้าม implement จุดที่ระบุ TBD ด้วยการตั้งสมมติฐานเอง
Purpose & Player Value
UI ต้องทำให้ survival simulation ที่ลึกอ่านออกได้ทันทีโดยไม่เปลี่ยนเกมให้เป็น arcade HUD ผู้เล่นเห็นสภาวะร่างกายและทรัพยากรสำคัญตลอดเวลา แต่ข้อมูลอาวุธบางชนิดยังต้องได้มาจากการกระทำในโลก เช่น check chamber/check magazine ความกดดันจึงยังมาจากการสังเกต ภาพ เสียง และการเตรียมตัว
- เน้นข้อมูลเชิง survival แบบ SCUM โดยเฉพาะ metabolism, nutrition และ injury context
- รองรับ mouse/keyboard และ Xbox/PlayStation controller ตั้งแต่โครงสร้างแรก
- ใช้ flat, readable surfaces กับ visual language แบบ improvised survivor
- ไม่มี hit marker, kill confirmation หรือ directional damage indicator
- ทุก screen ต้องใช้ได้ที่ FHD, 2K, 4K และ ultrawide 16:10/21:9/32:9
Scope / Out of Scope
In scope
- Player-facing HUD และทุก menu/screen
- Single Player world/save selection
- Server Browser และ character-per-server flow
- CommonUI navigation + UMG passive HUD
- English UI copy, English/Thai localization and subtitles
- SVG icon sources และ controller glyph integration
- Acceptance criteria และ manual PIE checklist
Explicitly out of scope
- Custom launcher/patcher; Steam Client รับผิดชอบ distribution/update
- Closed captions สำหรับ environmental sound
- Hit marker, headshot marker, kill confirmation, damage direction
- Squad roster HUD panel
- Sleeping-bag respawn
- Clan Search/Join browser
- Item Compare และ destructive confirmation ใน inventory
- ลด/ปิด blood และ wet-lens effects
Visual System [CONFIRMED]
รูปแบบเป็นแผ่นโลหะ/อุปกรณ์เอาตัวรอดที่นำมาประกอบใหม่ แต่ตัด texture grunge ออกจากพื้นหลักเพื่อรักษาความอ่านง่าย ใช้ขอบเหลี่ยมมนเล็กน้อย, เส้นแบ่งชัด, shadow ต่ำ และสี brass เป็น accent เฉพาะ focus/selection/action
Background #0D0F0CSurface #161A15Raised #293126Accent #D1AA55Text #EEF0E8Danger #C6544FPositive #7EAA71Information #6D9FBATypography
- [APPROVED] UI English, Thai และ subtitles ใช้ Google Sans จาก
RawResource/Fonts/Google_Sans/; target composite/font-family asset คือ/Game/Lambeer/UI/Common/Fonts/FF_UI_Primary. - Default face:
GoogleSans-Regular.ttf; ใช้ Medium/SemiBold/Bold variants ตาม hierarchy และไม่ใช้ Italic เป็นข้อมูลสำคัญเพียงอย่างเดียว ไฟล์ที่ตรวจมี Thai-block glyph 87 codepoints รวม basic Thai set. - TBD-HUD-UI-002 RESOLVED 2026-09-06: Font metadata and the official Google Fonts source repository identify SIL Open Font License 1.1 without Reserved Font Names; the retained license is
RawResource/Fonts/Google_Sans/OFL.txt. - Numbers, timers, compass degrees and ammunition inspection use tabular figures; verify tabular-figure behavior in the imported composite font.
- Body text minimum at 1080p: 18 px equivalent; captions 20 px equivalent before user scaling.
Scale & ultrawide
- Reference canvas: 1920×1080; layout uses anchors and DPI scaling, never fixed full-screen coordinates.
- HUD anchors follow the physical viewport edges on ultrawide as confirmed.
- HUD Scale, Safe Zone, Text Size และ Crosshair Customization are required settings beyond the owner's minimum accessibility list.
- Critical prompt/reticle content stays near the view center; edge HUD observes user safe-zone inset.
UI Architecture & Layer Contract
[CONFIRMED] ใช้ Hybrid CommonUI + UMG: CommonUI สำหรับ navigable screens และ modal stack; UMG ปกติสำหรับ passive gameplay overlays และ world-space prompts
WBP_UIRoot→HUD LayerScreen LayerModal LayerToast LayerWBP_UIRoot : UCommonUserWidget [PROPOSED] ├─ Layer_GameHUD : Overlay │ ├─ WBP_HUDRoot : ULambeerHUDWidget │ ├─ WBP_ContextStatusList │ ├─ WBP_NotificationFeed │ └─ WBP_InteractionPromptHost / world prompt projection ├─ Layer_Screens : UCommonActivatableWidgetStack │ ├─ WBP_MainMenu / SaveWorldSelect / ServerBrowser │ ├─ WBP_CharacterCreation / SpawnMap │ ├─ WBP_Inventory / WorldMap / Crafting / Skills │ ├─ WBP_Achievements / ClanSquad / WeaponWorkbench │ └─ WBP_Settings / PauseMenu / DeathRespawn ├─ Layer_Modals : UCommonActivatableWidgetStack │ ├─ WBP_ContextMenu / WBP_ItemSplit │ ├─ WBP_MagazineLoadPlanner / WBP_InviteInbox │ └─ WBP_ErrorDialog / WBP_ExternalLinkConfirm └─ Layer_Toast : WBP_ToastQueue
Input modes
| State | CommonUI input config | World behavior |
|---|---|---|
| Passive HUD | Game | ไม่มี cursor; gameplay รับ input |
| Inventory/Map/Menu in Multiplayer | Menu | โลกไม่ pause; character ยังเสี่ยงและ gameplay movement ถูก block |
| Single Player pause | Menu | โลก pause จริง |
| Multiplayer menu | Menu | เปิด menu แต่ server world ไม่ pause |
| Radial menu | All | รับ look selection + game state ที่จำเป็น; ไม่ pause multiplayer |
CommonUI, CommonInput, CommonGameViewportClient และ controller data assets เป็น target dependency; ยังไม่พบว่าเปิดใช้ใน Lambeer.uproject ณ วันที่เอกสารนี้จัดทำ
Screen Catalog
| ID | Target Widget | หมวด | Phase | หน้าที่ |
|---|---|---|---|---|
| UI-SCR-MAIN | WBP_MainMenu | Frontend | 1 | Continue SP, Start SP, Server Browser, Settings, Feedback URL, Exit |
| UI-SCR-SAVES | WBP_SaveWorldSelect | Frontend | 1 | เลือก local persistent world; จำ world ล่าสุดสำหรับ Continue |
| UI-SCR-SERVER | WBP_ServerBrowser | Frontend | 2–3 | Official/Community, Favorite, Ping, Population, Search/Filter |
| UI-SCR-CHAR | WBP_CharacterCreation | Frontend | 1 | Preset, hair, skin/eye color, live preview; character per server |
| UI-SCR-SPAWN | WBP_SpawnMap | Frontend | 1 | เลือกหนึ่งในสี่ starter towns หรือ respawn point |
| UI-HUD-ROOT | WBP_HUDRoot | Gameplay HUD | 1 | Survival bars, compass, minimap, hands, quick slots |
| UI-HUD-PROMPT | WBP_InteractionPrompt | Gameplay HUD | 1 | Projected near target: key, action, item, quantity, hold, denied reason, alternatives |
| UI-HUD-BOSS | WBP_BossHUD | Gameplay HUD | 1+ | Boss health bar; marker inspection reveals respawn timer/status |
| UI-HUD-VEHICLE | WBP_VehicleHUD | Gameplay HUD | 2 | Diegetic speed/RPM + overlay fuel/damage/gear/seats/access |
| UI-SCR-INVENTORY | WBP_Inventory | Inventory | 1 | Paper doll, worn containers, both hands, back weapons, 10 quick slots |
| UI-SCR-CONTAINER | WBP_ContainerTransfer | Inventory | 1 | Player/container side-by-side, Take All/Transfer All |
| UI-SCR-CRAFT | WBP_Crafting | Inventory | 1+ | Searchable recipes, material reservation, player/station queues |
| UI-SCR-BUILD | WBP_BuildRadial | Inventory | 1 | Piece radial, cost, tier, snap, rotate, placement reason |
| UI-SCR-BUILD-ACTION | WBP_BuildActionRadial | Inventory | 1+ | Upgrade, repair, demolish, authorize |
| UI-SCR-WORKBENCH | WBP_WeaponWorkbench | Inventory | 1+ | 3D inspect + attachment rail + repair/salvage/action channel |
| UI-SCR-MAG | WBP_MagazineLoadPlanner | Inventory | 1 | Head rounds, repeat pattern, tail rounds; preserves fire order |
| UI-SCR-MAP | WBP_WorldMap | Inventory | 1+ | Full discovered map, marker visibility controls, squad pings |
| UI-SCR-SKILLS | WBP_Skills | Progression | 2 | XP number, progress bar, level, next bonus |
| UI-SCR-ACHIEVE | WBP_Achievements | Progression | 1+ | Catalog, progress, unlocked state, reward |
| UI-SCR-GROUP | WBP_ClanSquad | Social | 1–2 | Create, invite inbox, roster, roles, promote/kick/leave, activity log |
| UI-SCR-CHAT | WBP_TextChat | Social | 1+ | Server, proximity, squad channels |
| UI-SCR-VOICE | WBP_VoicePanel | Social | 1+ | Channel, PTT, speaker, per-player volume, mute/block |
| UI-SCR-DEATH | WBP_DeathRespawn | Gameplay HUD | 1 | Full map, last selected bed or fresh spawn, death location, killer/cause |
| UI-SCR-PAUSE | WBP_PauseMenu | Settings | 1 | Pause SP; menu-only in multiplayer |
| UI-SCR-SETTINGS | WBP_Settings | Settings | 1 | Graphics, Display, Audio, Voice, Controller, KBM, Gameplay, HUD, Accessibility |
Gameplay HUD Reference
Durability state only
Chamber: UNKNOWN
Field Cabinet · 1.4 s
Always-visible survival cluster
[CONFIRMED] แสดง Health, Stamina, Hunger, Thirst, Temperature, Energy, Sleep และ Immunity ตลอดเวลาเป็น icon + bar โดยไม่แสดงตัวเลข ค่าผิดปกติใช้รูปทรง/ไอคอน/ข้อความร่วมกับสี
Contextual statuses
Bleeding, infection, fracture, poison, cold, overheated, wetness, encumbrance และ buffs ปรากฏในรายการ contextual เรียงตาม severity แล้วตามเวลาที่เกิด ห้ามซ่อน critical status ด้วย overflow; แถวที่ล้นย้ายเป็น expandable stack
Low-health visual
| HP | State | Presentation |
|---|---|---|
| ≤30% | Warning | ขอบแดงบาง; heartbeat audio เริ่มเตือน |
| ≤20% | Critical | ขอบแดงเข้มขึ้นและ field-of-view edge breathing ช้า |
| ≤10% | Near death | ขอบแดงสูงสุด, desaturation เฉพาะรอบนอก; reticle/prompt ยังอ่านได้ |
Blood & water on lens
- Blood splash เกิดเมื่อเลือดจาก melee, gunshot หรือ explosion ระยะใกล้กระเด็นถึงกล้อง; hold 2 วินาที แล้ว fade 5 วินาที
- Wet droplets เริ่มทันทีเมื่อโดนฝนหรือจาก swimming/emerge; เมื่อไม่มี source แล้ว fade 5 วินาที
- ไม่มี option ลดหรือปิด blood/wet effects
- Disable Flashing เปลี่ยน white flash เป็น black-frame feedback โดยไม่ตัด critical information
World Map & Spawn Reference
Spawn flow uses the same full-map component with selectable starter-town regions or the last selected bed.
- Initial spawn: หลัง character creation เลือกหนึ่งในสี่ starter towns ได้อิสระ แล้ว server เลือก valid point ภายใน perimeter ที่เลือก
- Respawn: เลือกเฉพาะ bed ที่เลือกไว้ล่าสุด หรือ Fresh Spawn; ไม่มี sleeping bag
- Fresh Spawn หลังตายเลือกหนึ่งในสี่ starter towns ได้อิสระอีกครั้ง
- Death marker หายเมื่อ loot bag despawn หรือถูกเก็บหมด
Frontend, Saves & Server Flow
Main Menu
- Continue (Single Player): เข้า world ล่าสุดที่จำไว้; disabled พร้อมเหตุผลเมื่อไม่มี local world
- Start Single Player: เปิด Save World Select เสมอ ไม่เขียนทับอัตโนมัติ
- Server Browser: Official/Community tabs, favorite, ping, population, name search, hide full/empty, compatible version และ friendly-fire filter เมื่อ server metadata มีค่า
- Settings, Feedback (external URL), Exit
Single Player
ใช้ gameplay rules และ persistence เหมือน multiplayer แต่ไม่มีผู้เล่นอื่นและ pause ได้จริง แต่ละ local world แยก save/persistence เหมือน server world รายหนึ่ง Exact local server process topology remains TBD-HUD-UI-003 ใน technical design; UI ไม่ขึ้นกับว่าจะเป็น standalone process หรือ embedded authority
Steam distribution
ไม่มี custom launcher/patcher ใน scope Steam Client เป็น launch/update surface หลัก Steam App ID, branch UX และ exact Feedback URL remain TBD-HUD-UI-004.
Inventory, Containers & Quick Slots
- รองรับ drag-and-drop, click-to-select, context menu และ keyboard/controller navigation
- Actions: Split Stack, Transfer All, Take All, Sort, Search, Inspect, Use, Equip, Drop Quantity; ไม่มี Compare และไม่ต้อง confirmation
- Loot/container/corpse/death bag ใช้ player และ target container แบบ side-by-side
- Quick slots 10 ช่อง ปุ่ม 1–0; กดเพื่อถือ item แล้วใช้ด้วย left/right input ตาม item in hand
- [CONFIRMED] Slot 1–2 สงวนให้ Back Weapon 1–2 เท่านั้น ห้าม bind item อื่นลงสองช่องนี้ เมื่อไม่มี Back Weapon ช่องนั้นต้องว่างและไม่มี manual binding ที่ถูกซ่อนหรือ restore ภายหลัง
- Item ที่ผ่าน use/hold contract สามารถ bind ได้เฉพาะ Quick Slot 3–0; server ต้อง reject การ assign item อื่นเข้า display slots 1–2 (internal array indices 0–1).
Crafting, Queue, Skills & Achievements
Searchable recipe detail, source storage, requirements, station/tier, duration and output.
Reserved: Cloth ×8
Waiting
Order cannot be changed.
Queue contract [CONFIRMED]
- Reserve/deduct materials immediately when adding; availability calculation subtracts every earlier queue reservation
- Cancel returns all reserved materials
- Queue continues after leaving station and after logout
- Station queue and player queue are separate per player and per station; order cannot be changed
- Station craft consumes only that station's storage; general personal craft consumes only player's carried inventory
- If station is destroyed, cancel its pending crafts and return reserved items to the authoritative station-destruction recovery path; exact overflow destination remains TBD-HUD-UI-005
Skills
Dedicated screen displays every confirmed skill with exact XP, progress bar, level and next qualitative/numeric bonus. Level caps, XP curves and formulas remain canonical TBDs in Crafting & Progression.
Achievements
Catalog/progress screen is scoped per character on each server. Unlocks grant rewards. Achievement IDs, names, thresholds, icons, reward payload and platform-service integration remain TBD-E2F4910C; UI supports optional hidden criteria and claim/non-claim reward presentation without selecting one until the catalog is approved.
Weapon Workbench & Magazine Planner
Compatibility, current attachment, field/workbench rule and channel duration.
Durability state
[PROPOSED LAYOUT] ซ้ายเป็น slot rail, กลางเป็น 3D inspect ที่หมุน/zoom ได้, ขวาเป็น action/context panel การเลือก hotspot ใน 3D และ slot list ต้อง sync กัน Controller ใช้ shoulder buttons สลับ slot และ right stick หมุนโมเดล
Magazine planner [CONFIRMED]
FMagazineLoadPlan ├─ HeadRounds[] // ยิงก่อน เช่น AP ×3 ├─ LoopPattern[] // AP ×1, FMJ ×2 แล้ววนจนพื้นที่กลางเต็ม └─ TailRounds[] // ยิงท้าย เช่น FMJ ×10 BuildFireOrder(capacity): append HeadRounds repeat LoopPattern until remaining middle capacity is full if capacity ends mid-pattern, stop at that round append TailRounds in their specified fire order
Default load behavior ยังคงใช้ลำดับที่ผู้เล่น drag ammunition ใส่ magazine ผู้เล่นเปิด context menu ของ magazine เพื่อใช้ advanced planner สามส่วน Fire-order preview ต้องแสดงจากนัดแรกที่จะยิงไปนัดสุดท้ายอย่างชัดเจน
Building, Vehicle & Boss UI
Building radial
Piece selection, resource cost, material tier, snap mode, rotation และ placement failure reason เฉพาะที่เกี่ยวข้อง
Interaction radial แยกสำหรับ Upgrade, Repair, Demolish, Authorize
Vehicle
Diegetic speed/RPM บน dashboard; overlay แสดง fuel, overall/component damage, gear, seats และ key/access state
Storage เปิดผ่าน IA_Inventory เท่านั้น
Boss
Boss health bar ระหว่าง encounter ไม่มี damage numbers/hit marker
Respawn timer แสดงหลัง inspect marker เท่านั้น; เมื่อพื้นที่ยังมีผู้เล่นแสดง “Respawn blocked: area occupied”
Death, Pause, Settings & Accessibility
Death/respawn
แสดง killer/cause, death location และ full map ผู้เล่นเลือก bed ที่เลือกไว้ล่าสุดหรือ Fresh Spawn เท่านั้น Fresh Spawn เปิดการเลือกสี่ starter towns ไม่มี sleeping bag marker
Pause
Single Player หยุดโลกจริง Multiplayer เปิด menu และบล็อก player input แต่โลก/server ไม่หยุด พร้อม persistent warning “WORLD CONTINUES WHILE MENU IS OPEN.”
Settings taxonomy
Graphics, Display, Audio, Voice, Controller, Mouse + Keyboard, Gameplay, HUD และ Accessibility รองรับ full key rebinding, hold/toggle aim-crouch-sprint, sensitivity แยก hip/shoulder/ADS และ invert axes
Accessibility
- Semantic colorblind palette presets; สถานะไม่ใช้สีอย่างเดียว
- Subtitles สำหรับ dialogue/spoken narrative; ไม่มี environmental closed captions
- Reduce Camera Shake
- Disable Flashing: ใช้ black-frame feedback แทน white flash
- HUD Scale, Safe Zone, Text Size และ Crosshair Customization
- English/Thai localization; layout รองรับ text expansion และ Thai line breaking
- ทุก CommonUI screen ใช้ mouse, keyboard และ controller ได้โดยไม่เกิด focus trap
Implementation Contract: Classes, Data & Events
รายการต่อไปนี้เป็นชื่อ target เพื่อให้ implementation สม่ำเสมอ ไม่ได้อ้างว่า source/asset มีอยู่แล้ว
| Proposed type | Required fields / responsibility | Authority |
|---|---|---|
FUIHUDSnapshot | 8 survival normalized values, contextual statuses, weight state, aim state | Owning-client view of authoritative state |
FUIWeaponHandState | Hand, ItemId, handedness, durability state, fire mode, observed mag/chamber info, observation validity | Server truth + client knowledge mask |
FUIMapMarker | MarkerId, category, world location, label, visibility scope, expiry/source entity | Server for shared; local for filters |
FInteractionPromptState | TargetId, action, display name, quantity, glyph action, hold duration/progress, denied reason, alternatives | Server validates action |
FCraftingQueueEntry | QueueId, owner/station, recipe, count, reserved inputs, start/end, status, recovery destination | Server persistent |
FMagazineLoadPlan | HeadRounds, LoopPattern, TailRounds, preview fire order | Server validates compatible ammo/capacity |
FVehicleHUDState | Speed, RPM, gear, fuel, overall/component damage, seats, access | Relevant vehicle state |
FServerBrowserEntry | ServerId, type, name, ping, players/max, version, favorite, rules metadata | Session/backend |
FWorldSaveSummary | WorldId, display name, last played, character summary, compatibility/corrupt state | Local persistence index |
FUIAchievementEntry | AchievementId, title, description, progress, threshold, unlocked, reward payload/status | Per-character/server persistent |
FGroupActivityLogEntry | Timestamp, actor ID/name, action, target ID/name, event category | Server group registry |
Event surface [PROPOSED]
OnHUDSnapshotChanged(FUIHUDSnapshot) OnInteractionPromptChanged(FInteractionPromptState) OnObservedWeaponInfoChanged(EHand, FUIWeaponHandState) OnMapMarkersChanged(TArray<FUIMapMarker>) OnCraftQueueChanged(FGuid QueueId) OnAchievementUnlocked(FName AchievementId, FRewardPayload) OnGroupActivityLogged(FGroupActivityLogEntry) OnInputMethodChanged(ECommonInputType, GamepadName)
Gameplay Tags [PROPOSED]
UI.Layer.HUD | UI.Layer.Screen | UI.Layer.Modal | UI.Layer.Toast UI.Screen.Inventory | Map | Crafting | Skills | Achievements | Group | Settings UI.Status.Bleeding | Infection | Fracture | Poison | Cold | Hot | Wet | Encumbered UI.Marker.Squad | Ping | Landmark | Death | Boss | Bed | Base | Vehicle | POI UI.Input.Game | Menu | All UI.Notification.Info | Warning | Critical | Reward
Input Actions
| Status | Action | Purpose |
|---|---|---|
| Existing | IA_Inventory | Inventory/container/vehicle storage entry |
| Existing | IA_Interact | Context action |
| Proposed | IA_UI_Pause, IA_UI_Map | Top-level screens |
| Proposed | IA_QuickSlot_1…IA_QuickSlot_0 | Hold item from slot |
| Proposed | IA_UI_Ping, IA_UI_VoicePTT, IA_UI_Chat | Social/world communication |
| Proposed CommonUI | UI.Action.Accept, Back, Context, TabLeft, TabRight | Device-independent navigation and glyphs |
SVG Icon Asset Kit
[CONFIRMED 2026-09-06] Source: RawResource/UI/Icons/ · exactly 64 SVG files · 64×64 viewBox · white solid silhouette · transparent background · tint in UMG · approved import target /Game/Lambeer/UI/Common/Icons/T_UI_*
Platform glyphs ใช้ source ที่ตรวจพบแล้วใน Content/Lambeer/UI/ControllerGlyphs/PlayStation Series/Vector/ และ Xbox Series/Vector/ ห้ามเปลี่ยนชื่อหรือดัดแปลงโดยไม่ตรวจ license/source package
ui_stat_health.svgui_stat_stamina.svgui_stat_hunger.svgui_stat_thirst.svgui_stat_temperature.svgui_stat_energy.svgui_stat_sleep.svgui_stat_immunity.svgui_status_bleeding.svgui_status_infection.svgui_status_fracture.svgui_status_poison.svgui_nav_compass.svgui_nav_minimap.svgui_nav_map.svgui_marker_boss.svgui_combat_left_hand.svgui_combat_right_hand.svgui_combat_magazine.svgui_combat_chamber.svgui_system_crafting.svgui_system_building.svgui_system_vehicle.svgui_system_achievement.svgรายการไฟล์ทั้งหมด 64 รายการ
ui_stat_* 8, ui_status_* 8, navigation/markers 8, combat 8, actions 8, crafting/build/vehicle 8, inventory/social 8, system/navigation 8. ตรวจ XML แล้วทุกไฟล์ ณ 2026-09-06
Acceptance Criteria
| ID | Scenario | Expected outcome |
|---|---|---|
| AC-UI-001 | HUD at FHD/2K/4K and 16:10/21:9/32:9 | ทุก element anchor ถูกต้อง ไม่มี overlap/clipping; edge HUD ตาม physical viewport และ safe-zone setting |
| AC-UI-002 | Survival state updates | 8 bars แสดงตลอดเวลา ไม่มีตัวเลข; status contextual ใช้ icon/text ไม่ใช้สีอย่างเดียว |
| AC-UI-003 | ADS entered | Crosshair ซ่อน; HUD ไม่แสดง hit confirmation |
| AC-UI-004 | Weapon not inspected | Magazine/chamber แสดง UNKNOWN; check action เท่านั้นที่เปิดเผย observed state |
| AC-UI-005 | Blood reaches camera | Hold 2 s และ fade 5 s; near gunshot/explosion และ melee ใช้ contract เดียวกัน |
| AC-UI-006 | Rain/swim lens effect ends | Droplets เริ่มทันทีและ fade หมดใน 5 s หลัง source จบ |
| AC-UI-007 | Open menu in multiplayer | World continues; player input blocked; warning visible |
| AC-UI-008 | Pause in single player | World simulation pauses and resumes without losing menu state |
| AC-UI-009 | Craft queue reservation | Availability subtracts earlier queue entries; cancel refunds; queue persists across logout |
| AC-UI-010 | Station destroyed | Station queue cancels; no duplication/loss except unresolved overflow path is blocked from implementation |
| AC-UI-011 | Magazine plan capacity ends mid-pattern | Preview and authoritative sequence stop mid-pattern and preserve head→loop→tail fire order |
| AC-UI-012 | Controller changes Xbox↔PlayStation↔KBM | Glyphs update without closing screen; focus remains on same semantic control |
| AC-UI-013 | Death bag despawns/is emptied | Death marker disappears from compass, minimap and map |
| AC-UI-014 | Boss marker inspected | Timer/status appears; occupied area shows exact blocked message |
| AC-UI-015 | English↔Thai | No clipped labels; Thai subtitles wrap correctly; navigation/focus order unchanged |
| AC-UI-016 | Disable Flashing enabled | White flash is replaced with black feedback while information remains readable |
Manual PIE Checklist
| ID | Manual test | Result |
|---|---|---|
| PIE-UI-001 | เปิด HUD ที่ 1920×1080, 2560×1440, 3840×2160 และ ultrawide; ตรวจ anchor/safe zone | Not run |
| PIE-UI-002 | ลด survival stats ผ่านแต่ละ threshold และตรวจ 8 bars/status/low-HP edges | Not run |
| PIE-UI-003 | สลับ Hip/Shoulder/ADS/Melee/Throw/Interact และตรวจ reticle | Not run |
| PIE-UI-004 | ถืออาวุธซ้าย/ขวา/สองมือ; check magazine/chamber; ตรวจ hidden knowledge | Not run |
| PIE-UI-005 | ทดสอบ blood จาก melee/gunshot/explosion และ wet lens จาก rain/swim พร้อมจับเวลา | Not run |
| PIE-UI-006 | เปิด inventory/container; drag, click, context, keyboard/controller, split/take/transfer/sort/search | Not run |
| PIE-UI-007 | เพิ่ม/cancel/persist crafting queue และทำลาย station ระหว่าง craft | Not run |
| PIE-UI-008 | สร้าง magazine head/loop/tail plan ที่ capacity ตัดกลาง pattern | Not run |
| PIE-UI-009 | สลับ KBM/Xbox/PlayStation ระหว่างทุก CommonUI screen และตรวจ focus/back | Not run |
| PIE-UI-010 | เปิด menu ใน SP/MP และยืนยัน pause behavior ต่างกัน | Not run |
| PIE-UI-011 | สลับ English/Thai, UI scale, safe zone, text size และ colorblind presets | Not run |
| PIE-UI-012 | ตาย เลือก last bed/fresh town และตรวจ marker lifecycle เมื่อ bag ถูกเก็บ/หมดเวลา | Not run |
Decisions / Blocking TBDs
TBD-HUD-UI-001— Resolved 2026-09-06: Back Weapon 1–2 exclusively own slots 1–2; other bindings are rejected and no restore state exists.TBD-HUD-UI-002— Resolved 2026-09-06: Google Sans is approved; Thai coverage, repository/UE target paths, embedded OFL metadata, official source, and retainedOFL.txtare verified.TBD-HUD-UI-003— Single Player authority process topology; UI contract ไม่ขึ้นกับคำตอบTBD-HUD-UI-004— Steam App ID/integration metadata และ Feedback URLTBD-HUD-UI-005— destination เมื่อ station destruction refund เกิน storage capacityTBD-E2F4910C— achievement catalog, thresholds และ reward payloads (preserved canonical ID)TBD-HUD-UI-007— clan naming/tag rules, promote/kick permissions และ log retentionTBD-HUD-UI-008— Resolved 2026-09-06: visual tokens, layouts และ 64-icon solid/silhouette kit approved as documented.
Relationships & Source of Truth
เอกสารนี้เป็น source of truth สำหรับ presentation, navigation, widget hierarchy และ player-facing state เท่านั้น Gameplay values, authority และ persistence ยังคงอยู่ใน feature/technical document ที่เชื่อมโยง
FEAT-COMBAT, FEAT-SURVIVAL, FEAT-INVENTORY, FEAT-CRAFTING-PROGRESSION, FEAT-BUILDING, FEAT-WEAPON-CUSTOMIZATION, FEAT-PLAYER-STATISTICS-ACHIEVEMENTS
FEAT-WORLD-DESIGN, FEAT-VEHICLES, FEAT-CLANS-SQUADS, FEAT-PVP-RAIDING-TRADING, FEAT-BOSS-ZOMBIES
TECH-HUD-UI-IMPLEMENTATION, TECH-NETWORK-ARCH, TECH-SERVERS-HOSTING, TECH-FOLDER-STRUCTURE, AUDIO-DIRECTION
Clan, Squad, Chat & Voice
TBD-HUD-UI-007: Clan creation naming/tag rules, role authority สำหรับ promote/kick และ log retention/persistence ยังไม่ถูกกำหนด