diff --git a/CHANGELOG.md b/CHANGELOG.md index a79ab9f..22099e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to SurvivorCore are recorded here. The format follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). At release time, `## Unreleased` is promoted to the new version and `main` is tagged `vX.Y.Z`. -## Unreleased +## 0.9.0 — 2026-07-30 ### Security - **Bow shots are now rate-limited server-side.** The bow release handler enforced no cooldown — the diff --git a/README.md b/README.md index 7581d98..0a4a720 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ -> **Status: v0.8.0 — pre-release.** The core survival loop is in and working; the engine is +> **Status: v0.9.0 — pre-release.** The core survival loop is in and working; the engine is > being grown toward v1.0 and APIs may still shift. Production-tested in > [The Counter Earth](https://thecounterearth.com). @@ -71,7 +71,7 @@ into `ReplicatedStorage`, or add it via [Wally](https://wally.run): ```toml # wally.toml [dependencies] -SurvivorCore = "temujincalidius/survivorcore@0.8.0" +SurvivorCore = "temujincalidius/survivorcore@0.9.0" ``` Working from source? Clone and `rojo serve` the `demo.project.json` place. @@ -102,6 +102,7 @@ The **admin plugin** turns all of this into Studio forms — see [Inventory](docs/inventory.md) · [Harvesting](docs/harvesting.md) · [Crafting](docs/crafting.md) · [Combat](docs/combat.md) · [Mobs & AI](docs/mobs.md) · [Quests](docs/quests.md) · [Achievements](docs/achievements.md) · [Loot bags](docs/loot-bags.md) · +[Player trading](docs/trading.md) · [Interact window](docs/interact.md) · [No-code content](docs/content-authoring.md) · [Admin plugin](docs/admin-plugin.md) · [Design language](docs/design-language.md) · [Extending](docs/extending.md) diff --git a/docs/getting-started.md b/docs/getting-started.md index f2b3b98..65a4aec 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -34,7 +34,7 @@ Once published, add it to your game's `wally.toml`: ```toml [dependencies] -SurvivorCore = "temujincalidius/survivorcore@0.8.0" +SurvivorCore = "temujincalidius/survivorcore@0.9.0" ``` Then: diff --git a/docs/interact.md b/docs/interact.md index c1b858e..c971392 100644 --- a/docs/interact.md +++ b/docs/interact.md @@ -1,5 +1,7 @@ # Player interact window +> 📹 **Demo:** [the interact window + player trading](https://makertube.net/w/sJmS6L15jRmwxhQCE4Zgmi) + Walk up to another player and a **"[E] Interact"** badge appears over *their* head. Press **E** (or tap the badge) to open an **interact window** showing that player's name and survival stats, plus a list of **actions** — **Trade** ships built-in; games add their own diff --git a/docs/trading.md b/docs/trading.md index a53e66b..4b40f81 100644 --- a/docs/trading.md +++ b/docs/trading.md @@ -1,5 +1,7 @@ # Player trading +> 📹 **Demo:** [walk up, offer, confirm — a dupe-proof player trade](https://makertube.net/w/sJmS6L15jRmwxhQCE4Zgmi) + Two survivors standing near each other can **trade items** face-to-face ([`src/systems/Trade.luau`](../src/systems/Trade.luau), issue #15). The swap is fully server-authoritative and **dupe-proof**: nothing moves until both players confirm, and even then it diff --git a/site/index.html b/site/index.html index b055f44..d899c71 100644 --- a/site/index.html +++ b/site/index.html @@ -55,7 +55,7 @@
- v0.8.0 · pre-release + v0.9.0 · pre-release

The survival game engine for Roblox

@@ -140,6 +140,13 @@

Quests & achievements

Event-driven goals: quest chains with objectives, rewards and quest-giver NPCs, plus milestone achievements with toasts — tracked automatically from what players already do.

+
+ +

Player trading

+

Walk up to another survivor and an interact window opens — their name, their condition, and what you can do. Choose Trade and both of you stage items, see each other's offer live, and confirm. The swap is dupe-proof by construction: nothing leaves an inventory until both sides agree, and then it moves in one atomic step that can't create or destroy an item.

+
@@ -187,7 +195,7 @@

Grab the drop-in model from the latest release, or add it with Wally:

# wally.toml
 [dependencies]
-SurvivorCore = "temujincalidius/survivorcore@0.8.0"
+SurvivorCore = "temujincalidius/survivorcore@0.9.0"

…or drop SurvivorCore.rbxm into ReplicatedStorage.

Latest release ↗ diff --git a/src/init.luau b/src/init.luau index f40d9d8..c02caa9 100644 --- a/src/init.luau +++ b/src/init.luau @@ -74,7 +74,7 @@ local EngineConfig = require(script.shared.EngineConfig) local SurvivorCore = {} -SurvivorCore.VERSION = "0.8.0" +SurvivorCore.VERSION = "0.9.0" -- Foundation SurvivorCore.Config = Config diff --git a/wally.toml b/wally.toml index daa2efa..01d126c 100644 --- a/wally.toml +++ b/wally.toml @@ -1,7 +1,7 @@ [package] name = "temujincalidius/survivorcore" description = "Batteries-included, creator-extensible survival game framework for Roblox." -version = "0.8.0" +version = "0.9.0" license = "MIT" authors = ["Samuel Lison"] registry = "https://github.com/UpliftGames/wally-index"