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

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.