Snippets:
local TweenService = game:GetService("TweenService")
local button = script.Parent
local player = game.Players.LocalPlayer
local gui = button.Parent
local fade = gui:WaitForChild("Fade")
local raftSpawn = workspace:WaitForChild("PlayerRaftSpawn")
local cameraPart = workspace:WaitForChild("CameraPart")
local camera = workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable
camera.CFrame = cameraPart.CFrame
local function fadeTween(targetTransparency, duration)
fade.Visible = true
local tween = TweenService:Create(fade, TweenInfo.new(duration), {BackgroundTransparency = targetTransparency})
tween:Play()
tween.Completed:Wait()
end
local function fadeTeleport()
fadeTween(0, 0.6)
local char = player.Character or player.CharacterAdded:Wait()
local hrp = char:WaitForChild("HumanoidRootPart")
hrp.CFrame = raftSpawn.CFrame + Vector3.new(0,3,0)
local tween = TweenService:Create(camera, TweenInfo.new(1), {CFrame = CFrame.new(hrp.Position + Vector3.new(0,10,15), hrp.Position)})
tween:Play()
tween.Completed:Wait()
camera.CameraType = Enum.CameraType.Custom
fadeTween(1, 0.6)
fade.Visible = false
end
button.MouseButton1Click:Connect(fadeTeleport)