5 Commits
Author SHA1 Message Date
Samuel LisonandClaude Opus 4.8 4256edfd87 feat(plugin): add Survival Stats admin Studio plugin (deltas-only, locked tuning)
A Studio dock widget that lets the experience owner tune the survival stats
through a validated form instead of hand-editing Attributes on the
SurvivalStatsConfig instance — the first slice of the Builder/Admin plugin (#11).

The point is compatibility: edits are LOCKED against engine updates. StatAdmin
(the pure, headlessly-testable logic layer) writes deltas only — it sets an
attribute solely when the owner changes a field from the live engine default,
and removes it on reset / edit-back-to-default. So unset fields keep following
the (improvable) engine defaults across a SurvivorCore release, while explicit
overrides live on the owner's instance, which the engine only ever seeds and
never overwrites. Nothing tuned is lost; nothing left alone is frozen.

Hard guardrail: the plugin can read/write only the seven owner-tunable fields
(STUDIO_ATTR_MAP). A write() assert makes it impossible to ever set the
engine-owned semantics Invert / DangerHigh — re-freezing the affliction
fill-direction bug is structurally unreachable. Runtime-verified in Studio:
every write path exercised (including rejected Invert/DangerHigh attempts) left
zero banned attributes on the instance.

- plugin/StatAdmin.luau     — logic: roster, effective values, deltas-only writes
- plugin/StatAdminUi.luau   — the dock-widget form (per-field reset, override dots)
- plugin/init.server.luau   — toolbar/widget wiring + ChangeHistory undo steps
- plugin.project.json       — separate Rojo tree; build with --plugin to install
- CI: stylua + a plugin-sourcemap luau-lsp pass + a plugin build
- docs/admin-plugin.md + cross-links; fix stale Invert row in the no-code table

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 18:22:57 +10:00
Samuel LisonandClaude Opus 4.8 0d6ff2e064 docs: add the project design language (UI style, palette, icon pipeline)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:03:38 +10:00
Samuel LisonandClaude Opus 4.8 772b555578 Document survival stats; lint the HUD loader in CI
Add docs/survival-stats.md (the stat model, no-code SurvivalStatsConfig tuning, the
SurvivorStatBar/Stat contract, the Rojo one-way-sync caveat) and cross-link it.
CHANGELOG Unreleased entry. CI + CONTRIBUTING now run stylua/luau-lsp over assets/
so the HUD loader is checked.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 13:30:12 +10:00
Samuel LisonandClaude Opus 4.8 4436a4bbd6 Add CONTRIBUTING, CHANGELOG, and getting-started/extending docs
CONTRIBUTING mirrors FediHome's structure for the Roblox stack: prerequisites
(Studio + Rojo plugin 7.6.1, rokit, wally), local dev, code style (no hardcoded
asset IDs, content via register()/components, content-free core), the dev/main
branching model, PR flow, changelog rule, and label conventions. Seed
CHANGELOG.md (Keep a Changelog) with Unreleased + a 0.1.0 foundation entry. Add
getting-started (Rojo+Wally and drop-in .rbxm) and extending (register() API,
components, Hooks) guides; cross-link from architecture.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 18:05:33 +10:00
Samuel LisonandClaude Opus 4.8 286e2f5f91 Scaffold SurvivorCore foundation (v0.1.0)
Foundation (Config/Assets/EventBridge/Hooks/Registry), content registry family, creator-owned component layer + Gatherable example, runnable demo place, Rojo/Wally/Rokit config, and release CI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 16:30:32 +10:00