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

How to have two different GUIs make another move toward them when clicked?

I made three different frames, two with buttons. The buttons are supposed to make the third frame move towards them. Although the GUI moves, it only moves to ayy.Position, even though I clicked on the other GUI.

This is the script under one of the frames with the buttons:

local plr = game:GetService("Players").LocalPlayer 

local gui = plr.PlayerGui:WaitForChild("THING")

 

script.Parent.MouseButton1Click:Connect(function()



    gui.Moving:TweenPosition(UDim2.new(gui.ayy.Position), "Out", 4)

    wait(1)

end)

--THING is a screenGui, Moving is the Gui that is supposed to move, and ayy is the gui it's supposed to move to

This is the other:

script.Parent.MouseButton1Click:Connect(function()
	
	
	local plr=game.Players.LocalPlayer
	
	local gls=plr.PlayerGui:WaitForChild("THING")
	
	gls.Moving:TweenPosition(UDim2.new(gls.Oot.Position), "Out", 4 )
end)

--THING is a screenGui, Moving is the Gui that is supposed to move, and Oot is the gui it's supposed to move to

1 answer

I mimicked your frame setup, and was able to get it to function properly. For easier use, I put a local script inside "THING" that checks for either button to be pressed, instead of two different scripts for each button. If you wish to have a script within each button instead, by all means.

local plr = game:GetService("Players").LocalPlayer
local gui = plr.PlayerGui:WaitForChild("THING")

gui.ayy.TextButton.MouseButton1Click:Connect(function()

    gui.Moving:TweenPosition(UDim2.new(gui.ayy.Position.X,gui.ayy.Position.Y),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,2,true)
-- I believe this was your issue. Using your script just moved the gui's to 0,0,0,0. Position.X and position.Y are the scale and offset for each value, (X is 0,0, Y is the second set of 0,0)
    wait()
end)


gui.Oot.TextButton.MouseButton1Click:Connect(function()

    gui.Moving:TweenPosition(UDim2.new(gui.Oot.Position.X,gui.Oot.Position.Y),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,2,true)
    wait()
end)

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