Oh, that’s why. Im guessing your script makes a clone of the GUI and parents it to the playerGUI. That means you have all this time been interacting with a GUI that the player can’t see.
The solution is to detect the playergui’s version of the gui then
local Player = game.Players.LocalPlayer
Player.PlayerGui:WaitForChild("GuiS"):WaitForChild("TextButton").MouseButton1Click:Connect(function()
print("Button was clicked!")
local tween = game:GetService("TweenService"):Create(script.Parent.Parent["Seat"], TweenInfo.new(5), {CFrame = script.Parent["Seat"].CFrame})
tween:Play()
end)
edit: if your doing this in a server script then detect who’s touching the seat and from there get the player through GetPlayerFromCharacter()