Commit Graph
87 Commits
Author SHA1 Message Date
Samuel Lison 2aae8d9db7 Merge pull request #65 from TemujinCalidius/dev
release: v0.7.1 → main
v0.7.1
2026-07-06 14:38:46 +10:00
Samuel Lison 92a8773239 Merge pull request #64 from TemujinCalidius/release/v0.7.1
chore(release): v0.7.1
2026-07-06 14:37:54 +10:00
Samuel LisonandClaude Opus 4.8 75f3a009db chore(release): v0.7.1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 14:37:07 +10:00
Samuel Lison dae3face26 Merge pull request #63 from TemujinCalidius/fix/ghost-tools-spawn-safety
fix: ghost tools from unowned hotbar pins + demo spawn safety
2026-07-06 14:37:03 +10:00
Samuel LisonandClaude Opus 4.8 96dc0799ad fix: ghost tools from unowned hotbar pins + inert-pin dim + demo spawn safety
- ToolEquip: possession gate — a pin is only a pointer; never equip an item
  the player doesn't carry (a stale/seeded pin without a backing stack could
  conjure a usable ghost Tool).
- Hotbar UI: dim a pinned icon to 0.45 (the Crafting-tab convention) when the
  player owns none of the item, so an inert pin reads as inert.
- Demo: husks spawn beyond aggro+wander reach of the spawn point — no more
  farming fresh players before they pick up a weapon.

Verified live in Studio: a war_bow pin with zero carried refuses to equip and
renders dimmed; owned pins equip normally at full opacity.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 14:36:12 +10:00
Samuel Lison 5ccdf19849 Merge pull request #62 from TemujinCalidius/main
sync: v0.7.0 release → dev
2026-07-06 14:09:50 +10:00
Samuel Lison 1c764aa16a Merge pull request #60 from TemujinCalidius/dev
release: v0.7.0 → main
v0.7.0
2026-07-06 14:08:27 +10:00
Samuel Lison 688b89d0a6 Merge pull request #59 from TemujinCalidius/release/v0.7.0
chore(release): v0.7.0
2026-07-06 14:07:29 +10:00
Samuel LisonandClaude Opus 4.8 c74e1c3509 chore(release): v0.7.0
Promote CHANGELOG Unreleased → 0.7.0 and bump wally.toml. (VERSION already
0.7.0 in src/init.luau.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 14:06:40 +10:00
Samuel Lison 82706c88d8 Merge pull request #58 from TemujinCalidius/feat/hunting-lootbags
feat: hunting/butchering + death loot bags (#13, #19)
2026-07-06 14:06:36 +10:00
Samuel LisonandClaude Opus 4.8 9951e09a3f feat: hunting/butchering + death loot bags (#13, #19)
Hunting & butchering (#13): mob defs gain flat carcass fields (carcassItem/Hp/
Tool/YieldMin/Max/Seconds); a slain mob leaves a butcherable CARCASS that is a
tagged Gatherable — the whole harvesting pipeline (tool gate, per-hit yields,
HP bar, gather:* hooks, progression counters) is reused as the butcher flow.
Carcass looks come from SurvivorCoreContent.Carcasses.<mobType>; reactions key
on "<mobType>_carcass"; fields editable in the admin Mobs editor. Gatherable
gains generic PromptText/PromptObject attributes.

Death loot bags (#19, TCE port): dying drops inventory AND worn equipment
(config-toggleable) into an anchored ground-clamped bag — IntValue contents,
instant-loot prompt for anyone, floating countdown, owner-only beacon, death
toast, LifetimeSeconds despawn. Pickup is loss-proof: equipment restores to
empty slots first (satchel re-grows capacity before stacks), the rest grants
up-to-fit and the remainder stays bagged. New player:died lifecycle → deaths
counters via Progression; lootbag:dropped/collected hooks; TCE respawn camera
fix. New Inventory APIs: getEquipment, clearAll (capacity-safe order), addUpTo,
restoreEquip.

Fixed: ToolEquip forces CanBeDropped=false on cloned creator templates.

Demo: stone_knife + raw_meat (risky raw: Hunger -25, Poison +8), boar carcass,
multi-objective hunt_boar quest, hunter/butcher/hard_way achievements. Docs:
mobs.md butchering section + loot-bags.md; CHANGELOG; site card copy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 14:05:22 +10:00
Samuel Lison 991d1b0d80 Merge pull request #57 from TemujinCalidius/main
sync: v0.6.0 video docs → dev
2026-07-03 18:39:35 +10:00
Samuel Lison 83e7c293eb Merge pull request #56 from TemujinCalidius/docs/v0.6.0-video
docs: v0.6.0 demo video + site video grid refresh
2026-07-03 18:38:44 +10:00
Samuel LisonandClaude Opus 4.8 ce676fa4d5 docs: add v0.6.0 quests/achievements demo video + refresh site video grid
Wire the demo video (makertube uSGJ2MHEFjSSKxMiJBJ6Y5) into quests.md,
achievements.md, content-authoring.md and admin-plugin.md, and feature it in
the landing page's video grid (replacing the oldest embed; that video stays
linked from docs/inventory.md).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 18:37:58 +10:00
Samuel Lison 9937f8d641 Merge pull request #55 from TemujinCalidius/main
sync: v0.6.0 release → dev
2026-07-03 15:31:30 +10:00
Samuel Lison 6623e1c0bd Merge pull request #53 from TemujinCalidius/dev
release: v0.6.0 → main
v0.6.0
2026-07-03 15:29:47 +10:00
Samuel Lison f71685e8fd Merge pull request #52 from TemujinCalidius/release/v0.6.0
chore(release): v0.6.0
2026-07-03 15:28:58 +10:00
Samuel LisonandClaude Opus 4.8 a8f1114f81 fix(release): promote the section heading, not the header prose
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:28:12 +10:00
Samuel LisonandClaude Opus 4.8 4a4b54a723 chore(release): v0.6.0
Promote CHANGELOG Unreleased → 0.6.0 and bump wally.toml. (SurvivorCore.VERSION
is already 0.6.0 in src/init.luau.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:27:54 +10:00
Samuel Lison 8445d66dab Merge pull request #51 from TemujinCalidius/feat/quests-achievements
feat: quests + achievements — goals & progression (#10)
2026-07-03 15:27:28 +10:00
Samuel LisonandClaude Opus 4.8 9caa888369 feat: quests + achievements — the goals & progression release (#10)
Quests (#10): a Quests registry + server runtime — objectives (gather/craft/
kill/use × count, blank target = any) and rewards, autoStart + requires chains
(completing a prerequisite auto-starts dependents), optional turn-in at a
tagged QuestGiver (component + prompt). Rewards are never lost: a full
inventory parks the quest as ready and the grant retries on inventory change.
Quests menu tab (L) with per-objective progress bars; QuestLog JSON attribute
replicates state; quest:started/progress/completed/blocked via Hooks + bus.

Achievements: an always-on runtime for the existing registry, ported
architecturally from TCE. A shared Progression layer translates bus events
into auto-derived counters (gathers_reed, crafts_total, kills_husk, …) so a
def is just { key, name, counter, threshold } — flat in code and no-code.
Unlock-once + toast + Achievements tab (J) with progress bars.

Toasts: themed top-right notification queue (Notify remote + Toasts.show).

No-code: admin plugin gains Quests (single-objective + "+ Quest giver" drop)
and Achievements (counter/threshold) editors; the engine loads both from
SurvivorCoreContent. Demo: a 3-quest chain + 4 achievements + a giver post.

Fixed: registerPanel now ADOPTS a template-scaffolded tab (hides the
placeholder, builds into the authored frame) instead of silently no-opping —
this replaces the Quests/Achievements "coming soon" placeholders.

EventBridge parity: gather:*, craft:* and item:use now also cross the bus.
Changed: rojo 7.6.1 → 7.7.0 (rokit pin; CI follows; gate verified).

Docs: quests.md + achievements.md (new), content-authoring/admin-plugin/
extending/README updated, CHANGELOG Unreleased, site feature card.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:26:19 +10:00
Samuel Lison 0892bf948e Merge pull request #50 from TemujinCalidius/main
sync: landing page polish → dev
2026-07-01 09:35:03 +10:00
Samuel Lison d8996930f4 Merge pull request #49 from TemujinCalidius/fix/landing-polish
docs(site): UI screenshot, Get Started overflow fix, Sponsor link
2026-07-01 09:33:35 +10:00
Samuel LisonandClaude Opus 4.8 9ae708ceeb docs(site): add UI showcase screenshot, fix Get Started overflow, add Sponsor link
- "See it in action": wire in the in-game UI screenshot (HUD + tabbed menu +
  hotbar), AI-relit with an atmospheric dusk backdrop so it suits the dark page.
- Fix the Get Started "Boot it" panel overflowing the viewport — the grid items
  now `min-width: 0` so the code block scrolls internally instead of pushing wide.
- Add a GitHub Sponsors link (nav button + footer).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 09:32:52 +10:00
Samuel Lison aadf659a76 Merge pull request #48 from TemujinCalidius/main
sync: landing page + README → dev
2026-07-01 09:21:37 +10:00
Samuel Lison a9bbedd9cd Merge pull request #47 from TemujinCalidius/feat/landing-page
docs: SurvivorCore landing page + README refresh
2026-07-01 09:19:34 +10:00
Samuel LisonandClaude Opus 4.8 e674772a45 docs: add SurvivorCore landing page + refresh README
A static landing page (site/) deployed to GitHub Pages via Actions:
- AI-generated brand: the survival-shield logo (favicon → 1024 + .ico) and an
  atmospheric campfire hero, on the docs/design-language palette.
- Sections: hero, value props, feature grid (stats, inventory/crafting, gathering,
  combat, mobs & AI, no-code admin), an "in action" showcase with the demo videos,
  and a get-started/install panel. Dark translucent theme, responsive, self-contained.
- README refreshed to v0.5.0 with the full feature set, badges, and the site link.

The "See it in action" screenshot (site/assets/img/ui-showcase.png) drops in next.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 09:18:20 +10:00
Samuel Lison 16608201bf Merge pull request #45 from TemujinCalidius/dev
release: v0.5.0 → main
v0.5.0
2026-06-25 20:22:52 +10:00
Samuel Lison 7c89683e4e Merge pull request #44 from TemujinCalidius/release/v0.5.0
chore(release): v0.5.0
2026-06-25 20:21:54 +10:00
Samuel LisonandClaude Opus 4.8 4d910a3b89 chore(release): v0.5.0
Promote CHANGELOG Unreleased → 0.5.0 and bump wally.toml. (SurvivorCore.VERSION
is already 0.5.0 in src/init.luau.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 20:21:08 +10:00
Samuel Lison 9a09d997a9 Merge pull request #43 from TemujinCalidius/feat/mob-combat
feat: mob & AI engine + combat (melee + ranged)
2026-06-25 20:20:02 +10:00
Samuel LisonandClaude Opus 4.8 2c68bcc6b0 feat: mob & AI engine + combat (melee + ranged) (#17, #12, #14)
Mob & AI engine (#17): a `Mob` component + a `Mobs` FSM runtime
(idle/wander/chase/attack/flee/leash/death), faction-driven profiles
(hostile/passive/neutral), Humanoid-based mobs so combat/health/death share one
path, per-mob-type reactions, and a `Mobs` Config section.

Combat (#12, #14): server-authoritative melee + ranged reusing the v0.4.0 swing
pipeline; the `combat:hit`/`combat:kill` kill-event schema designed once. Bows use
a TCE-style aim (hold RMB to aim with an over-the-shoulder camera + crosshair and
charge ring, hold LMB to draw, release to fire); the server simulates the gravity
arc and sends the path so the client flies a cosmetic arrow along the real curve.
Arrows are their own configurable ammo item (weight/damage/curve/range/speed).

No-code: admin plugin gains Mob, Weapon and Arrow editors (+ "Add to World" /
"Tool model" drops); the engine loads Weapons/Arrows/Mobs from SurvivorCoreContent.

Fix: scope the orphan hotbar-pin sweep to the removed/consumed item, so consuming
one item never clears an unrelated hotbar-pinned weapon.

Docs: combat.md + mobs.md (with demo video); CHANGELOG Unreleased entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 20:18:51 +10:00
Samuel Lison 92dbf956da Merge pull request #42 from TemujinCalidius/main
chore: sync docs (v0.4.0 videos) main → dev
2026-06-24 16:13:40 +10:00
Samuel Lison 3e97b4f502 Merge pull request #41 from TemujinCalidius/docs/v0.4.0-videos
docs: link v0.4.0 demo videos
2026-06-24 16:13:03 +10:00
Samuel LisonandClaude Opus 4.8 8606564b83 docs: link v0.4.0 demo videos (gathering/crafting + no-code content)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:12:21 +10:00
Samuel Lison ddaacb96bf Merge pull request #38 from TemujinCalidius/dev
release: v0.4.0 → main
v0.4.0
2026-06-24 15:46:58 +10:00
Samuel Lison aa84746520 Merge pull request #37 from TemujinCalidius/release/v0.4.0
chore(release): v0.4.0
2026-06-24 15:46:24 +10:00
Samuel LisonandClaude Opus 4.8 76cdd17b97 chore(release): v0.4.0 — promote CHANGELOG (gather/craft + no-code content), bump version
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 15:45:48 +10:00
Samuel Lison afad44c204 Merge pull request #36 from TemujinCalidius/feat/gather-craft
feat: tool-swing harvesting, hand crafting & no-code content (#1, #4, #11)
2026-06-24 15:44:38 +10:00
Samuel LisonandClaude Opus 4.8 d679850f90 feat: tool-swing harvesting, hand crafting & no-code content (#1, #4, #11)
Closes the gather → craft loop and lays the no-code content layer.

- Tool-swing harvesting (#1): equip a hotbar tool (a real Tool via the new
  ToolEquip bridge), click a node, server-validated hit (range / line-of-sight
  / equipped tool / cooldown) granting a per-hit random yield, blocking the hit
  when the inventory is full. Bare-hand hold-E kept. The engine's first
  client-input → RemoteEvent → server-validation pipeline (combat reuses it).
  A floating HP bar shows a node's remaining hits.
- Hand crafting (#4): server-authoritative consume → produce with a
  complexity-scaled craft channel + a progress bar above the crafter; a
  Crafting tab lists hand recipes and gates each on what you carry.
- No-code content (#11, Builder first slice): a Resources registry + a
  content-from-instances loader (Registry.loadFromFolder reads a
  SurvivorCoreContent folder at start), Gatherable binds to a named Resource,
  and a per-resource-type reaction API (reed sways, tree fells + leaves a
  stump). The admin plugin becomes one widget with Stats + Content tabs to
  create/edit items + gatherables, including "Add to World".

New hooks: gather:blocked, craft:start / craft:end / craft:blocked. Docs +
CHANGELOG. Engine stays content-free; the demo supplies the sample content.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 15:43:34 +10:00
Samuel Lison c9bf78300e Merge pull request #34 from TemujinCalidius/dev
release: v0.3.0 → main
v0.3.0
2026-06-23 18:05:29 +10:00
Samuel Lison 2b705487e5 Merge pull request #33 from TemujinCalidius/release/v0.3.0
chore(release): v0.3.0
2026-06-23 18:04:36 +10:00
Samuel LisonandClaude Opus 4.8 f6f4fa8ebf chore(release): v0.3.0 — promote CHANGELOG (inventory/hotbar/menu UI), bump version
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:03:59 +10:00
Samuel Lison f70bb5b4da Merge pull request #31 from TemujinCalidius/feat/inventory-hotbar-ui
feat(ui): inventory, hotbar & tabbed menu UI (#7, #9, #3)
2026-06-23 17:57:20 +10:00
Samuel LisonandClaude Opus 4.8 1b5ef088b3 fix(hud): keep a single HUD, preferring the authored one over the fallback
Both the authored template and the built-in fallback name their ScreenGui
"SurvivalHud", and the fallback fires on a 1s timer if no bars have bound
yet. The dedupe ran only once at startup, so a fallback that raced the
template (more likely now startClient does more before the template copies
in) left two HUDs on screen — a restart usually shuffled the timing enough
to hide it, until it didn't.

Tag the fallback, make the dedupe continuous (re-runs whenever another HUD
appears) and always prefer the authored HUD, and don't build the fallback
when a HUD ScreenGui already exists. Also link the inventory/hotbar demo
video in docs/inventory.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 17:23:17 +10:00
Samuel LisonandClaude Opus 4.8 5ab855fa1b feat(ui): inventory, hotbar & tabbed menu UI (#7, #9, #3)
Server-authoritative slots+weight inventory, a 9-slot hotbar (keys 1-9),
equipment slots, and a restyleable tabbed menu (functional Inventory +
Character Sheet; Codex/Achievements/Quests scaffolded), built the engine's
way: authored ScreenGui templates + attribute-discovering binders, with a
zero-setup fallback.

- Drag-and-drop is driven by a per-frame cursor poll (immune to the grid
  ScrollingFrame that swallows InputChanged) with GUI-inset-corrected drop
  hit-testing so releases land on the actual slot.
- Menu key defaults to Tab; the engine frees it by disabling the CoreGui
  player roster (ReclaimCoreKeys) and moves the chat to bottom-left so it
  clears the top-left HUD (Chat config). Toggle ignores focused TextBoxes.
- Consumables apply onConsume via the stat-effects layer + fire item:use;
  gather yields flow into the inventory; pickups auto-pin to the hotbar.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 17:06:54 +10:00
Samuel Lison 3132c8d214 Merge pull request #30 from TemujinCalidius/main
chore: forward-merge main → dev (SECURITY.md + CONTRIBUTING)
2026-06-22 10:28:10 +10:00
Samuel Lison 60f8e436a4 Merge pull request #28 from TemujinCalidius/dev
Release v0.2.1
v0.2.1
2026-06-22 10:26:49 +10:00
Samuel Lison 6547611c78 Merge pull request #27 from TemujinCalidius/release/v0.2.1
chore(release): v0.2.1
2026-06-22 10:26:09 +10:00
Samuel LisonandClaude Opus 4.8 9a10523965 chore(release): v0.2.1 — promote CHANGELOG (#20 fix), bump version
Promote the Unreleased #20 fix to 0.2.1 and bump SurvivorCore.VERSION + wally.toml.
Promotes WITHOUT re-adding an empty `## Unreleased` section, so the released
changelog on `main` doesn't carry a confusing dangling heading (a fresh
`## Unreleased` reappears when the next change adds an entry).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 10:25:46 +10:00