What I am asking is this. I made a script where when I click it, it rotates to the number I provided. Well, just in case if people moved it around, I want it to still work so I added another numbers to make it work. So, let's say if I move it anywhere and rotate the whole model, I want it to still work no matter where it is. If the Rotation is this 'or' that, then it should still work. That is what I want it to happen. This is the script to make it more sense:
local tune = game.Workspace.Radio.Tune local pic = workspace.SongPosters.Decal sound = Instance.new("Sound", tune) debounce = false radioOn = false function onClicked() if debounce then return end --Stop the function if debounce is true. debounce = true if not radioOn then radioOn = true tune.Rotation = Vector3.new(tune.Rotation.X, -69.598, tune.Rotation.Z or 20.084, tune.Rotation.Y, tune.Rotation.Z) pic.Texture = "rbxassetid://174956680" sound.SoundId = "rbxassetid://142295308" --Playing It's Raining Tacos sound:Play() elseif radioOn and sound.SoundId == "rbxassetid://174654610" then radioOn = false sound:Stop() tune.Rotation = Vector3.new(tune.Rotation.X, -89.282, tune.Rotation.Z or 0.718, tune.Rotation.Y, tune.Rotation.Z) pic.Texture = "rbxassetid://271952704" print("Off") end debounce = false end script.Parent.ClickDetector.MouseClick:connect(onClicked)
The "or" operator returns its first statement if it is not false, otherwise it returns its second argument. Using "or" like this will always position the CFrame to "tune.Rotation.X, -69.598, tune.Rotation.Z", because that is a "true" statement.
I would recommend checking the current CFrame of the brick, and rotating it based on whichever the CFrame is. Upvote if this helped.