PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience
Collapse Sidebar

Anchored

BasePart

bool

The Anchored property determines whether the part will be immovable by physics. When enabled, a part will never change position due to gravity, other parts collisions, overlapping other parts, or any other physics-related causes. A part that is not anchored is called unanchored. As a result, two anchored parts will never fire the /BasePart/Touched event on each other. An anchored part may still be moved by changing its /BasePart/CFrame or /BasePart/Position, and it still may have a nonzero /BasePart/Velocity and /BasePart/RotVelocity. Finally, if an unanchored part is joined with an anchored part through an object like a /ManualWeld, it too will act anchored. If such a joint breaks the part may be affected by physics again.

It’s a good idea to anchor parts that are part of your game’s environment (and therefore shouldn’t move). In fact, if you don’t have a good reason to keep a part unanchored, you should anchor it. Unanchored parts can cause performance issues if there are many. In Roblox Studio, you can anchor/unanchor an entire model using the Anchor tool. Be sure to keep static environment models anchored, like in-world buttons, signs and trees. You don’t want these moving or falling over by accident!

Network ownership cannot be set on anchored parts. If a part’s anchored status changes on the server, the network ownership of that part will be affected.


Code Samples


Part Anchored Toggle

This code sample will allow a part to be clicked to toggle its anchored property. When toggled, the visual appearance of the part is updated (red means anchored, yellow means free).

local part = script.Parent

-- Create a ClickDetector so we can tell when the part is clicked 
local cd = Instance.new("ClickDetector", part)

-- This function updates how the part looks based on its Anchored state
local function updateVisuals()
	if part.Anchored then
		-- When the part is anchored...
		part.BrickColor = BrickColor.new("Bright red")
		part.Material = Enum.Material.DiamondPlate
	else
		-- When the part is unanchored...
		part.BrickColor = BrickColor.new("Bright yellow")
		part.Material = Enum.Material.Wood
	end
end

local function onToggle()
	-- Toggle the anchored property
	part.Anchored = not part.Anchored
	
	-- Update visual state of the brick
	updateVisuals()
end

-- Update, then start listening for clicks
updateVisuals()
cd.MouseClick:connect(onToggle)