| # 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. | |