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