TimberWoods / studio_setup_guide.md
algorembrant's picture
Upload 88 files
0712d5f verified
# Timberbound Expeditions: Studio Setup & Tagging Guide
To bring the overarching logic to life, your physical objects in Roblox Studio need to be identified by the engine scripts. We use Roblox's **CollectionService (Tags)** and **Attributes** to do this securely and efficiently, avoiding thousands of `.Touched` connections on generic parts.
## How to Apply Tags & Attributes
- **Tags:** Use the built-in **Tag Editor** in Roblox Studio (View -> Tag Editor). Select your part/model, and tick the box for the specific tag name.
- **Attributes:** Select an object, scroll to the bottom of the **Properties** panel, and click "Add Attribute" (usually a String, Number, or Boolean type).
---
## 1. Core Mechanics: Trees & Dragging
### `TreeSegment` (Tag)
* **What it goes on:** Any physical cylinder/block that represents a piece of a choppable tree or a cut log.
* **Required Attributes:**
* `TreeType` (String): e.g., `"Oak"`, `"Pine"`. This maps exactly to the names in [ChoppingConfig.lua](file:///c:/Users/User/Desktop/VSCode2/RobloxStudio-MCP-GoogleAntigravity/src/ReplicatedStorage/Shared/ChoppingConfig.lua).
* `Health` (Number - *Optional*): The server will auto-assign MaxHealth from the config if you don't provide this.
### `Draggable` (Tag)
* **What it goes on:** Furniture, tools, or boxes that the player can pick up and move around using the physics dragger.
* *(Note: Anything tagged `TreeSegment` is automatically draggable, you do not need both tags).*
---
## 2. Economy & Processing
### `ProcessingMachine` (Tag)
* **What it goes on:** The main `Model` grouping your sawmill or stripper.
* **Required Parts Inside:**
* `ProcessTrigger` (Part): An invisible, non-colliding block inside the machine where the sawblade/stripper is. When a log touches this, it gets processed.
* **Required Attributes (on the Model):**
* `MachineType` (String): `"Stripper"` or `"Sawmill"`.
### `MarketDropoff` (Tag)
* **What it goes on:** A large, invisible, non-colliding `Part` at your market location. When processed wood touches it, the wood is sold and cash is given.
### `ShopCounter` (Tag)
* **What it goes on:** An invisible `Part` resting just above the checkout counter in your shop.
* **How it works:** Players drop boxed items onto this part. The script counts their prices when the player interacts with the NPC.
### `BoxedItem` (Tag)
* **What it goes on:** The physical cardboard box mesh sitting on the shop shelves.
* **Required Attributes:**
* `ItemId` (String): e.g., `"BasicAxe"`, `"Sawmill"`. Must match the IDs in [ShopConfig.lua](file:///c:/Users/User/Desktop/VSCode2/RobloxStudio-MCP-GoogleAntigravity/src/ReplicatedStorage/Shared/ShopConfig.lua).
---
## 3. Base Building & Plots
### `EmptyPlot` (Tag)
* **What it goes on:** The massive, flat baseplate `Part` representing a claimable piece of land.
* **How it works:** When a player without a plot touches this part, the server assigns it to them and loads their Datastore objects onto it.
---
## 4. Vehicle Logistics
### `Vehicle` (Tag)
* **What it goes on:** The root `Model` of whatever vehicle chassis you are using (A-Chassis, Constraint Chassis, etc.).
* **Required Parts Inside:**
* Either name the bed of the truck `"FlatbedPart"` OR tag that single part `"Flatbed"`. The script will apply massive friction to this specific part so logs don't slide off.
---
## 5. Wiring & Logic
### `LogicSource` (Tag)
* **What it goes on:** The interactable object like a button or lever `Part`.
* **Required Attributes:**
* `SourceType` (String): `"Button"` or `"Lever"`. A button pulses power for 1 second; a lever toggles it indefinitely.
---
## 6. Adventure & Hazards
### `HazardZone` (Tag)
* **What it goes on:** A large invisible part representing an area affecting nearby flora.
* **Required Attributes:**
* `HazardType` (String): `"Lava"` or `"Toxic"`. Mutates nearby trees into Fireproof or Glowing variants.
### `WeightSwitch` (Tag)
* **What it goes on:** A `Model` representing an environmental puzzle switch.
* **Required Parts Inside:**
* `Plate` (Part): The physical button that gets stepped on.
* `LinkedDoor` (Part): The wall/door that disappears when the puzzle is solved.
### `SwampZone` (Tag)
* **What it goes on:** A large invisible part representing deep mud or swamp liquid. Heavy items sinking into it are physically forced downwards unless they possess the `SwampTires` tag.