local unanchoredparts = {} local movers = {} local tog = true local move = false local Player = game:GetService("Players").LocalPlayer local Character = Player.Character local mov = {}; local mov2 = {}; local Hats = {Hat1 = Character:WaitForChild("Shattered Diamond Fedora"), -- Hat2 = Character:WaitForChild("Hat2"), -- Hat3 = Character:WaitForChild("Hat3"), } --Dont touch below for i,v in next, Hats do v.Handle.AccessoryWeld:Remove() for _,mesh in next, v:GetDescendants() do if mesh:IsA("Mesh") or mesh:IsA("Mesh") then -- change mesh to Specialmesh if u want to destroy the mesh mesh:Remove() end end end function ftp(str) local pt = {}; if str ~= 'me' and str ~= 'random' then for i, v in pairs(game.Players:GetPlayers()) do if v.Name:lower():find(str:lower()) then table.insert(pt, v); end end elseif str == 'me' then table.insert(pt, plr); elseif str == 'random' then table.insert(pt, game.Players:GetPlayers()[math.random(1, #game.Players:GetPlayers())]); end return pt; end local function align(i,v) local att0 = Instance.new("Attachment", i) att0.Position = Vector3.new(0,0,0) local att1 = Instance.new("Attachment", v) att1.Position = Vector3.new(0,0,0) local AP = Instance.new("AlignPosition", i) AP.Attachment0 = att0 AP.Attachment1 = att1 AP.RigidityEnabled = false AP.ReactionForceEnabled = false AP.ApplyAtCenterOfMass = false AP.MaxForce = 9999999 AP.MaxVelocity = math.huge AP.Responsiveness = 65 local AO = Instance.new("AlignOrientation", i) AO.Attachment0 = att0 AO.Attachment1 = att1 AO.ReactionTorqueEnabled = false AO.PrimaryAxisOnly = false AO.MaxTorque = 9999999 AO.MaxAngularVelocity = math.huge AO.Responsiveness = 50 end --Dont touch above align(Hats.Hat1.Handle, Character["Torso"]) -- align(Hats.Hat2.Handle, Character["Torso"]) -- align(Hats.Hat3.Handle, Character["Torso"]) Hats.Hat1.Handle.Attachment.Rotation = Vector3.new(0,0,0) -- Hats.Hat2.Handle.Attachment.Rotation = Vector3.new(0,0,0) -- Hats.Hat4.Handle.Attachment.Rotation = Vector3.new(0,0,0) Character:WaitForChild("Torso"):FindFirstChild("Attachment").Name = "Attachment1" -- make a new attachment to --Character:WaitForChild("Torso"):FindFirstChild("Attachment").Name = "Attachment2" --Character:WaitForChild("Torso"):FindFirstChild("Attachment").Name = "Attachment3" Character:WaitForChild("Torso").Attachment1.Position = Vector3.new(0, 0, 0) --Character:WaitForChild("Torso").Attachment2.Position = Vector3.new(0, 0, 0) --Character:WaitForChild("Torso").Attachment3.Position = Vector3.new(0, 0, 0) -- the mid value is up or down it depends it goes down if u have a minus infront of it and up if u dont -- the last value is forwards or backwards if u put a minus infront of it it goes forward and if u remove the minus it goes backwards -- the first value is to the side if u dont have minus and to the other side if u have minus im bad at explaining lol --Character:WaitForChild("Torso").Attachment1.Position = Vector3.new(-0, 0, -0) - position of hat2 -- Position or Rotation game.Players.LocalPlayer:GetMouse().KeyDown:Connect(function(KeyPressed) if KeyPressed == "Key" then -- key to play animation if toggle == false then Character:WaitForChild("Torso").Attachment1.Position = Vector3.new(0,0,0) -- value for animation -- Position or Rotation wait(.1) Character:WaitForChild("Torso").Attachment1.Position = Vector3.new(0,0,0) -- normal value -- Position or Rotation toggle = true else toggle = false end end end) --[[ while true do Character:WaitForChild("Torso").Attachment1.Position = Vector3.new(0,0,0) -- value for loop -- Position or Rotation wait(.1) Character:WaitForChild("Torso").Attachment1.Position = Vector3.new(0,0,0) -- value for loop end Position or Rotation end]]