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 @@
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.
+
@@ -172,6 +179,7 @@
Quests & achievements
Hunting & loot bags
SurvivorCore Studio
+
Player trading
@@ -187,7 +195,7 @@
Grab the drop-in model from the latest release, or add it with Wally: