I wrote a script that makes the players torso face the mouse whenever active.Value == true (boolean value), but for some reason, it doesn’t work. I wrote it in different ways, and the only way for it to work is if it’s not checking for whether active is true, why?
local players = game:GetService("Players")
local plr = players.LocalPlayer
local Mouse = plr:GetMouse()
local Character = plr.Character or plr.CharacterAdded:Wait()
local HumRP = Character:WaitForChild("HumanoidRootPart")
local Humanoid = Character:WaitForChild("Humanoid")
local active = script.Parent.Active
coroutine.resume(coroutine.create(function()
while true do
wait()
if active.Value == true then
local aim = CFrame.new(HumRP.Position, Vector3.new(Mouse.Hit.p.X, HumRP.Position.Y, Mouse.Hit.p.Z))
local direction = aim.LookVector
local headingA = math.atan2(direction.X, direction.Z)
headingA = math.deg(headingA)
HumRP.CFrame = CFrame.new(HumRP.Position) * CFrame.Angles(0, math.rad(headingA), 0)
end
end
end))
local players = game:GetService("Players")
local plr = players.LocalPlayer
local Mouse = plr:GetMouse()
local Character = plr.Character or plr.CharacterAdded:Wait()
local HumRP = Character:WaitForChild("HumanoidRootPart")
local Humanoid = Character:WaitForChild("Humanoid")
local active = script.Parent.Active
coroutine.resume(coroutine.create(function()
while true do
wait()
if active.Value == true then
local LookAtCFrame = CFrame.new(HumRP.Position, Mouse.Hit.Position)
local _,Yaw,_ = LookAtCFrame:ToOrientation()
HumRP.CFrame = CFrame.new(HumRP.Position) * CFrame.Angles(0,Yaw,0)
end
end
end))