Okay so I have been creating a script over the past hour or so and I'm trying to figure out how to do this. I'm basically winging it as I go along. I've looked at some admin tablet scripts and saw how they used CFrame but I really want to use BodyPosition for nice smooth movements. Okay so here's what's wrong. For some reason the ClickDetector isn't working, and when I click on that hat it should create a hat inside my character and place it on my head, and also the fact that I am not sure how to make more than one hat appear and/or how to use the table to add or remove the hats. I am also unsure how to make them rotate around my body... I know I am asking quite a lot but it's probably quite easy for you more advanced scripters to answer for me and possibly explain. Here's my script so far:
Player = game.Players.LocalPlayer Char = Player.Character if not Char or not Char.Parent then Char = Player.CharacterAdded:wait() end Mouse = Player:GetMouse() Hats = {} function CreateTab(Name,TextureID,MeshID,AttachPos) local Tab = Instance.new("Part",Char) Tab.BottomSurface = "Smooth" Tab.TopSurface = "Smooth" Tab.Size = Vector3.new(2,2,2) local BodyPos = Instance.new("BodyPosition",Tab) local Update = coroutine.wrap(function() while wait() do BodyPos.position = Char.Torso.Position + Vector3.new(0,0,5) end end) Update() local PointLight = Instance.new("PointLight", Tab) PointLight.Color = BrickColor.new("Bright blue").Color PointLight.Range = 10 local Mesh = Instance.new("SpecialMesh",Tab) Mesh.MeshType = "FileMesh" Mesh.MeshId = "http://www.roblox.com/asset/?id="..MeshID Mesh.TextureId = "http://www.roblox.com/asset/?id="..TextureID local ClickDetector = Instance.new("ClickDetector",Tab) ClickDetector.MaxActivationDistance = math.huge ClickDetector.MouseHoverEnter:connect(function(plr) if plr.Name == Player.Name then Tab.Transparency = 0.5 end end) ClickDetector.MouseHoverLeave:connect(function(plr) if plr.Name == Player.Name then Tab.Transparency = 0 end end) ClickDetector.MouseClick:connect(function(plr) if plr.Name == Player.Name then local h = Instance.new("Hat") local p = Instance.new("Part") h.Name = Name p.Parent = h p.Position = Char.Head.Position p.Name = "Handle" p.formFactor = 0 p.Size = Vector3.new(1, 0.4, 1) p.BottomSurface = 0 p.TopSurface = 0 p.Locked = true script.Parent.Mesh:clone().Parent = p h.Parent = Char h.AttachmentForward = Vector3.new (-0, -0, -1) h.AttachmentPos = Vector3.new(AttachPos) h.AttachmentRight = Vector3.new (1, 0, 0) h.AttachmentUp = Vector3.new (0, 1, 0) end end) end Player.Chatted:connect(function(msg) if msg:lower() == "load" then CreateTab("TwistedTurquoise",211828518,16627529, 0, 0, 0) end end)
I have not played ROBLOX in a few months and am just getting back in to scripting so please forgive if I am making pretty basic mistakes.
And yes it is in a LocalScript