Files
SurvivorCore/selene.toml
T
Samuel LisonandClaude Opus 4.8 649ff0c192 Add survival-stats engine + designer-editable HUD
Server tick (src/systems/SurvivalStats) simulates per-stat drain/regen stored as
Player Attributes, which auto-replicate so the client HUD (src/client/Hud) binds
reactively via GetAttributeChangedSignal — no RemoteEvents. Stats are defined in
src/stats/StatDefs and resolved through three layers (defaults < Config.override <
a Studio SurvivalStatsConfig instance) by src/stats/StatConfig, so owners retune
rates with no code.

The HUD is a real, designer-editable ScreenGui in StarterGui, authored as
diff-friendly JSON (assets/hud/SurvivalHud.model.json); bars bind by a `Stat`
attribute + a `Fill` child, so re-texturing needs zero code. It ships for every
distribution: the demo/Rojo source mount it, the drop-in .rbxm bundles it under a
Templates folder and start()/installHud() deploys it, and HudFallback guarantees a
HUD always appears. Adds the engine's first client layer (startClient()).

Allow committing *.rbxmx/model templates (.gitignore) and skip the CI-fetched
globalTypes.d.luau in selene.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 13:30:12 +10:00

13 lines
534 B
TOML

# Selene lint configuration — CI runs `selene .` on every push/PR.
# Uses the Roblox standard library (globals like `game`, `task`, `typeof`, `warn`).
std = "roblox"
# Generated Wally/Rojo artifacts (and the CI-fetched Roblox type defs) are not ours to lint.
exclude = ["Packages", "ServerPackages", "DevPackages", "globalTypes.d.luau"]
[lints]
# Roblox code legitimately leaves some values unused (e.g. connection handles);
# keep the high-signal lints and let the formatter own style.
empty_if = "warn"
unused_variable = "warn"