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

How do you make it so when your in first person you can move your mouse when a gui pops up?

So when a player join my game they are greeted my a "Character Selection" but the thing is you cant move your mouse because your in first person how do you make it so you can move your mouse in the gui but when you select a character it goes back to first person and you cant move your mouse? The GUI script i have rn

local Player = script.Parent.Parent.Parent
local Content = script.Parent.MainFrame.ScrollingFrame.Content
local Characters = game.ReplicatedStorage.Characters
local SetSubject = Characters.Parent.SetSubject
 
for index,item in pairs(Characters:GetChildren()) do
    if item:FindFirstChild("Humanoid") then
        local ViewportFrame = Instance.new("ViewportFrame")
        ViewportFrame.Parent = Content
        ViewportFrame.BackgroundTransparency = 1
       
        local Button = Instance.new("TextButton")
        Button.Parent = ViewportFrame
        Button.Position = UDim2.new(0,0,1,0)
        Button.Size = UDim2.new(1,0,0,15)
        Button.BorderSizePixel = 0
        Button.BackgroundColor3 = Color3.fromRGB(255,255,255)
        Button.Text = "Spawn"
        Button.TextScaled = true
       
        local Preview = item:Clone()
        Preview.Parent = ViewportFrame
       
        local Camera = Instance.new("Camera")
        Camera.Parent = ViewportFrame
        Camera.CFrame = Preview.Head.CFrame + Preview.Head.CFrame.LookVector * 5
        Camera.CFrame = CFrame.new(Camera.CFrame.Position,Preview.Head.Position)
       
        ViewportFrame.CurrentCamera = Camera
       
        Button.MouseButton1Down:Connect(function()
            script.Parent.Enabled = false
            local ChosenCharacter = item:Clone()
            local CurrentCharacter = Player.Character
            local LocalScripts = {}
           
            for index2,item2 in pairs(game.StarterPlayer.StarterCharacterScripts:GetChildren()) do
                if item2:IsA('LocalScript') then
                    table.insert(LocalScripts,item2:Clone())
                else
                    item2:Clone().Parent = ChosenCharacter
                end
            end
           
            CurrentCharacter.Health:Clone().Parent = ChosenCharacter
            table.insert(LocalScripts,CurrentCharacter.Animate:Clone())    
            ChosenCharacter.Parent = workspace
            Player.Character = ChosenCharacter
            for index2,item2 in pairs(LocalScripts) do
                item2.Parent = ChosenCharacter
            end
            SetSubject:FireClient(Player,ChosenCharacter.Humanoid)
           
            local Connection
           
            local function onDied()
                wait(game.Players.RespawnTime)
                Player:LoadCharacter()
                script.Parent.Enabled = true
                if Connection then
                    Connection:Disconnect()
                end
            end
           
            Connection = ChosenCharacter.Humanoid.Died:Connect(onDied)
           
        end)
       
    end
end

1 answer

✓ Accepted answer

It automatically unlocks your mouse when a GUI is active

local Player = script.Parent.Parent.Parent
local Content = script.Parent.MainFrame.ScrollingFrame.Content
local Characters = game.ReplicatedStorage.Characters
local SetSubject = Characters.Parent.SetSubject

for index,item in pairs(Characters:GetChildren()) do
    if item:FindFirstChild("Humanoid") then
        local ViewportFrame = Instance.new("ViewportFrame")
        ViewportFrame.Parent = Content
        ViewportFrame.BackgroundTransparency = 1

        local Button = Instance.new("TextButton")
        Button.Parent = ViewportFrame
        Button.Position = UDim2.new(0,0,1,0)
        Button.Size = UDim2.new(1,0,0,15)
        Button.BorderSizePixel = 0
        Button.BackgroundColor3 = Color3.fromRGB(255,255,255)
        Button.Text = "Spawn"
        Button.TextScaled = true
	Button.Active = true

        local Preview = item:Clone()
        Preview.Parent = ViewportFrame

        local Camera = Instance.new("Camera")
        Camera.Parent = ViewportFrame
        Camera.CFrame = Preview.Head.CFrame + Preview.Head.CFrame.LookVector * 5
        Camera.CFrame = CFrame.new(Camera.CFrame.Position,Preview.Head.Position)

        ViewportFrame.CurrentCamera = Camera

        Button.MouseButton1Down:Connect(function()
            script.Parent.Enabled = false
            local ChosenCharacter = item:Clone()
            local CurrentCharacter = Player.Character
            local LocalScripts = {}

            for index2,item2 in pairs(game.StarterPlayer.StarterCharacterScripts:GetChildren()) do
                if item2:IsA('LocalScript') then
                    table.insert(LocalScripts,item2:Clone())
                else
                    item2:Clone().Parent = ChosenCharacter
                end
            end

            CurrentCharacter.Health:Clone().Parent = ChosenCharacter
            table.insert(LocalScripts,CurrentCharacter.Animate:Clone())    
            ChosenCharacter.Parent = workspace
            Player.Character = ChosenCharacter
            for index2,item2 in pairs(LocalScripts) do
                item2.Parent = ChosenCharacter
            end
            SetSubject:FireClient(Player,ChosenCharacter.Humanoid)

            local Connection

            local function onDied()
                wait(game.Players.RespawnTime)
                Player:LoadCharacter()
                script.Parent.Enabled = true
                if Connection then
                    Connection:Disconnect()
                end
            end

            Connection = ChosenCharacter.Humanoid.Died:Connect(onDied)

        end)

    end
end

1 comment

0

still does not work. What im think is that the script i made for it to be first person but yeah thanks so much for the help :D

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