I think this is a good place to start
script.Parent.MouseEnter:Connect(function(GUI) -- Move the gui code goes in here end)
Great question, you can just use TweenPosition, that would be the best way to do this.
TweenPosition can be used to move GUIs to a certain place, with cool effects.
How do you use it?
local Gui = script.Parent --reference variable for the gui object --tweens the gui to the position you set it to, with the out and quad style, and over time of 2 seconds. The time parameter is optional by the way, Gui:TweenPosition(UDim2.new(Position here),"Out", "Quad", 2)
Links: If you want to see all the different styles you can use, check out this page:
Hope I helped, and have a wonderful day! :)