Feature Specification

Player Character

Overview

Status: draftOwner: UnassignedUpdated: 2026-08-27

Production context

Canonical sourceGDD/01-Gameplay/02-Player-Character.md
Decision markers2 confirmed · 4 recommendations · 2 TBD
Browser document roleRead-only production view; edit the GDD source or this generated system through the project workflow.

Verified implementation evidence

  • Source/Lambeer/Character/LambeerCharacter.*
  • Source/Lambeer/Character/LambeerCameraComponent.*
  • Source/Lambeer/Character/LambeerLocomotionComponent.*
  • Source/Lambeer/Character/LambeerAimComponent.*

Relationships

Document contract coverage

Use these required Feature Specification areas during review. The imported GDD below is canonical; items not stated explicitly remain unresolved.

  • ReviewPurpose & Player Value
  • ReviewScope
  • ReviewOut of Scope
  • ReviewTerminology
  • ReviewFunctional Behavior
  • ReviewStates & Flows
  • ReviewRules & Edge Cases
  • ReviewDependencies
  • ReviewAcceptance Criteria
  • ReviewOpen Questions

Canonical GDD content

Overview

The player is a third-person, MetaHuman-based survivor. The character class is implemented in C++ (ALambeerCharacter or a renamed survival character) using a component-driven design so that survival, inventory, combat, and building are decoupled, reusable, and individually testable.

Camera & perspective — [CONFIRMED]

  • Third-person over-the-shoulder as the default camera when the player is actively aiming.
  • The game stays third-person in all aim states (no forced first-person swap).
  • Camera shoulder-swap (left/right) for corner peeking is [RECOMMENDATION].
  • Use USpringArmComponent + UCameraComponent. Aim state changes spring-arm length, socket offset, and FOV via timeline/interp (driven by ULambeerCameraComponent + replicated ULambeerAimComponent).

Aim modes — [CONFIRMED]

Three firearm aim states (DayZ-like). Input is not a single “always ADS” toggle:

Mode Input Weapon pose Camera
HipRelaxed Default (no shoulder-aim hold, ADS off) Weapon lowered at hip/ready-low Default over-shoulder; widest combat spread (see 03-Combat-System.md)
ShoulderAim Hold right mouse Weapon raised at shoulder (ready), not full ADS Shorter spring-arm / raised socket; intermediate spread
ADS Tap right mouse (quick click) Full ADS pose Shortest arm, reduced FOV (~70°), tightest spread
  • Right mouse is shared: quick click toggles ADS; hold past threshold (~0.2 s) enters ShoulderAim until release (no ADS toggle on that press).
  • ADS takes priority for camera/spread when toggled on while shoulder aim is held.
  • Replicate aim mode so remote players see the correct pose; server validates transitions.
  • Animation BP consumes replicated aim mode for weapon raise/lower and ADS overlays.

Locomotion

  • Walk / jog / sprint, crouch, jump, vault/mantle [RECOMMENDATION].
  • Sprint and most actions consume stamina (see 04-Survival-System.md).
  • Encumbrance from inventory weight affects move speed and stamina (full-sim survival). See 06-Inventory-and-Items.md.
  • Movement is networked via the replicated UCharacterMovementComponent; custom movement (climbing/vaulting) must be implemented network-safely.

Component architecture

The character is a thin actor that owns gameplay components. Recommended components (names indicative):

Component Responsibility C++/BP
USurvivalStatsComponent health, stamina, hunger, thirst, temperature C++
Wetness (name [TBD]) rain exposure, WetAmount on pawn / worn-held items — 11-Wetness-and-Rain.md C++
UInventoryComponent item stacks in worn containers, weight C++
UEquipmentComponent worn clothing/backpack, back weapons 1–2, use-quick assignments C++
UCombatComponent firing, melee, hit detection, recoil, chamber/mag C++
UBuildComponent enters build mode, previews & places pieces C++
UInteractionComponent look-at / use prompts (doors, loot, vehicles) C++
UCraftingComponent recipe access, craft requests C++
USkillProgressionComponent Phase 2 learn-by-doing skill state and activity progress C++
Ability/Buff layer permanent buffs, status effects [RECOMMENDATION] GAS — see ../05-Technical/01-Tech-Stack-and-Engine.md

Rationale: components keep ALambeerCharacter small and let the same systems be reused by NPCs/bots later. All gameplay-relevant state on these components must be properly replicated (server-authoritative).

Phase 2 skills are learn-by-doing and live outside Phase 1 character creation. Attribute-facing skills such as Endurance and Strength should modify shared GAS/inventory/combat systems rather than custom one-off character fields.

Player states & stances

  • Stances: standing / crouched (prone is [TBD]).
  • Combat stances: unarmed, melee-ready, firearm-hip-relaxed (HipRelaxed), firearm-shoulder (ShoulderAim), firearm-ADS (ADS), building mode.
  • Downed/incapacitated state for squad revive is [RECOMMENDATION] (good co-op tension; adds netcode/anim cost).

Identity & customization

  • Character appearance authored via the MetaHuman pipeline. See ../06-Art-Audio/01-Art-Direction-and-MetaHuman.md.
  • Character creation lets the player pick a curated preset (male/female base) and customize hairstyle, skin color, and eye color — editable later at an in-game barber. Cosmetic-only; no stat advantage. Body size is not adjustable (fixed hitbox for PvP fairness). Full spec: 08-Character-Creation.md.
  • Cosmetic customization (outfits) also fits the buy-to-play model. Cosmetic-only; no stat advantage.

Animation

  • Animation Blueprint(s) per the MetaHuman skeleton, driven by movement and combat state. Heavy logic stays in C++; the ABP consumes replicated/animation state.
  • The project ships with the StateTree and GameplayStateTree plugins enabled — these are primarily used for AI, but the player animation graph remains a standard Anim BP.

See: 03-Combat-System.md, 04-Survival-System.md.