Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

How do I make Rotations work using Vector3.new() with 'or' in between the numbers?

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)

2 comments

1

Your errors are on lines 12 and 19; You have set up more Arguments than you need (it only requires 3, you gave it 5 arguments). :)

1

What are you trying to accomplish with or? Picking randomly?

1 answer

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.

This discussion is preserved as it was. New answers, comments, and votes are closed.