--======================================================== -- TELEPORT CARTOON STUD UI + CINEMATIC INTRO -- LocalScript -- Place in StarterPlayerScripts or StarterGui --======================================================== --======================================================== -- SERVICES --======================================================== local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local Debris = game:GetService("Debris") local Workspace = game:GetService("Workspace") local Lighting = game:GetService("Lighting") --======================================================== -- PLAYER --======================================================== local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local mouse = player:GetMouse() --======================================================== -- CONFIG --======================================================== local CONFIG = { ToggleKey = Enum.KeyCode.F, UIName = "TeleportCartoonStudUI", IntroUIName = "TeleportCartoonStudIntro", CreatorLine = "Script Made By", CreatorName = "pauschalStudio", MainTitle = "Teleport", InfoText = "Klick zum Teleportieren", HintText = "F = AN / AUS", ButtonTextOn = "Teleport: ON", ButtonTextOff = "Teleport: OFF", StudTexture = "rbxassetid://18878365966", StudTransparency = 0.58, Width = 320, Height = 178, ButtonHeight = 58, CornerRadius = 18, StrokeThickness = 4, ShadowOffset = 6, RGBSpeed = 0.62, RGBUpdateRate = 0.04, IntroDuration = 3.2, IntroFadeTime = 0.42, TeleportYOffset = 3, TeleportCooldown = 0.12, MarkerSize = Vector3.new(1.25, 0.2, 1.25), MarkerLifetime = 0.45, MarkerTransparency = 0.28, MaxMarkers = 8, BasePanelColor = Color3.fromRGB(167, 112, 68), BaseButtonOffColor = Color3.fromRGB(255, 191, 74), TextLightColor = Color3.fromRGB(255, 248, 235), TextDarkStroke = Color3.fromRGB(45, 28, 18), IntroBlurSize = 12, IntroParticleCount = 12, IntroLightCount = 4, } local INTRO_SOUND_ID = "rbxassetid://..." local INTRO_SOUND_VOLUME = 0.45 --======================================================== -- STATE --======================================================== local state = { enabled = false, lastTeleportTime = 0, currentAccent = Color3.fromRGB(255, 255, 255), dragging = false, dragStart = nil, frameStart = nil, dragInput = nil, markerCount = 0, introRunning = true, } local character = nil local humanoidRootPart = nil --======================================================== -- CLEANUP OLD UI --======================================================== do local oldMain = playerGui:FindFirstChild(CONFIG.UIName) if oldMain then oldMain:Destroy() end local oldIntro = playerGui:FindFirstChild(CONFIG.IntroUIName) if oldIntro then oldIntro:Destroy() end end --======================================================== -- HELPERS --======================================================== local function now() return time() end local function isPlayableSoundId(id) return typeof(id) == "string" and id:match("^rbxassetid://%d+$") ~= nil end local function getRainbowColor() local hue = (tick() * CONFIG.RGBSpeed) % 1 return Color3.fromHSV(hue, 1, 1) end local function safeDestroy(obj) if obj then pcall(function() obj:Destroy() end) end end local function createCorner(parent, radius) local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, radius) corner.Parent = parent return corner end local function createStroke(parent, thickness, transparency) local stroke = Instance.new("UIStroke") stroke.Thickness = thickness stroke.Transparency = transparency or 0 stroke.Color = CONFIG.TextDarkStroke stroke.Parent = parent return stroke end local function createStudPattern(parent) local pattern = Instance.new("ImageLabel") pattern.Name = "StudPattern" pattern.BackgroundTransparency = 1 pattern.Image = CONFIG.StudTexture pattern.ImageTransparency = CONFIG.StudTransparency pattern.ScaleType = Enum.ScaleType.Tile pattern.TileSize = UDim2.new(0, 40, 0, 40) pattern.Size = UDim2.fromScale(1, 1) pattern.Position = UDim2.fromScale(0, 0) pattern.ZIndex = parent.ZIndex + 1 pattern.Parent = parent return pattern end local function createHighlight(parent) local shine = Instance.new("Frame") shine.Name = "Highlight" shine.BackgroundColor3 = Color3.fromRGB(255, 255, 255) shine.BackgroundTransparency = 0.8 shine.BorderSizePixel = 0 shine.Size = UDim2.new(1, 0, 0.36, 0) shine.Position = UDim2.new(0, 0, 0, 0) shine.ZIndex = parent.ZIndex + 2 shine.Parent = parent createCorner(shine, CONFIG.CornerRadius) return shine end local function getCharacter() if character and character.Parent then return character end character = player.Character or player.CharacterAdded:Wait() return character end local function getHumanoidRootPart() local char = getCharacter() if not char then return nil end if humanoidRootPart and humanoidRootPart.Parent == char then return humanoidRootPart end humanoidRootPart = char:FindFirstChild("HumanoidRootPart") or char:WaitForChild("HumanoidRootPart", 5) return humanoidRootPart end local function canTeleport() return state.enabled and (now() - state.lastTeleportTime) >= CONFIG.TeleportCooldown end local function hasTextFocus() return UserInputService:GetFocusedTextBox() ~= nil end local function getWorldHitPosition() local camera = Workspace.CurrentCamera if not camera then return nil end local unitRay = camera:ViewportPointToRay(mouse.X, mouse.Y) local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Blacklist params.IgnoreWater = true local blacklist = {} local char = player.Character if char then table.insert(blacklist, char) end params.FilterDescendantsInstances = blacklist local result = Workspace:Raycast(unitRay.Origin, unitRay.Direction * 1000, params) if result then return result.Position end local hit = mouse.Hit if hit then return hit.Position end return nil end --======================================================== -- MARKER --======================================================== local function spawnMarker(position, accentColor) if state.markerCount >= CONFIG.MaxMarkers then return end state.markerCount += 1 local marker = Instance.new("Part") marker.Name = "TeleportMarker" marker.Anchored = true marker.CanCollide = false marker.CastShadow = false marker.Material = Enum.Material.Neon marker.Size = CONFIG.MarkerSize marker.Transparency = CONFIG.MarkerTransparency marker.Color = accentColor or state.currentAccent marker.CFrame = CFrame.new(position) marker.Parent = Workspace Debris:AddItem(marker, CONFIG.MarkerLifetime) task.delay(CONFIG.MarkerLifetime, function() state.markerCount = math.max(0, state.markerCount - 1) end) end --======================================================== -- TELEPORT --======================================================== local function teleportTo(position) if not position then return end local hrp = getHumanoidRootPart() if not hrp then return end local target = position + Vector3.new(0, CONFIG.TeleportYOffset, 0) local char = getCharacter() local ok = pcall(function() if char and char:IsA("Model") then char:PivotTo(CFrame.new(target)) else hrp.CFrame = CFrame.new(target) end end) if ok then state.lastTeleportTime = now() spawnMarker(position, state.currentAccent) end end --======================================================== -- INTRO GUI --======================================================== local introGui = Instance.new("ScreenGui") introGui.Name = CONFIG.IntroUIName introGui.ResetOnSpawn = false introGui.IgnoreGuiInset = true introGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling introGui.Parent = playerGui local introBlackout = Instance.new("Frame") introBlackout.Name = "Blackout" introBlackout.Size = UDim2.fromScale(1, 1) introBlackout.BackgroundColor3 = Color3.fromRGB(0, 0, 0) introBlackout.BackgroundTransparency = 1 introBlackout.BorderSizePixel = 0 introBlackout.Parent = introGui local introSound = nil local introObjects = {} local introOrbs = {} local introParticles = {} local function track(obj) table.insert(introObjects, obj) return obj end local function createOrb(size, zIndex) local orb = Instance.new("Frame") orb.Name = "Orb" orb.AnchorPoint = Vector2.new(0.5, 0.5) orb.Size = size orb.BackgroundTransparency = 0.86 orb.BackgroundColor3 = getRainbowColor() orb.BorderSizePixel = 0 orb.ZIndex = zIndex orb.Parent = introGui createCorner(orb, 999) return orb end local function createParticle(kind, pos, color) local label = Instance.new("TextLabel") label.Name = "Particle" label.BackgroundTransparency = 1 label.AnchorPoint = Vector2.new(0.5, 0.5) label.Position = pos label.ZIndex = 20 label.Text = kind == "Star" and "✦" or (kind == "Circle" and "●" or "•") label.Font = Enum.Font.GothamBlack label.TextColor3 = color label.TextTransparency = 0 label.TextSize = kind == "Star" and math.random(16, 24) or math.random(10, 18) label.Parent = introGui return label end local function playIntroSound() if not isPlayableSoundId(INTRO_SOUND_ID) then return nil end local sound = Instance.new("Sound") sound.Name = "IntroMusic" sound.SoundId = INTRO_SOUND_ID sound.Volume = INTRO_SOUND_VOLUME sound.Looped = false sound.Parent = introGui pcall(function() sound:Play() end) return sound end local function typingEffect(label, text, speed) label.Text = "" for i = 1, #text do if not label.Parent then return end label.Text = text:sub(1, i) task.wait(speed) end end local function destroyIntro() state.introRunning = false if introSound then pcall(function() introSound:Stop() end) safeDestroy(introSound) end for _, obj in ipairs(introObjects) do safeDestroy(obj) end local fadeInfo = TweenInfo.new(CONFIG.IntroFadeTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) TweenService:Create(introBlackout, fadeInfo, { BackgroundTransparency = 1 }):Play() for _, obj in ipairs(introObjects) do if obj and obj.Parent then if obj:IsA("TextLabel") then TweenService:Create(obj, fadeInfo, { TextTransparency = 1, TextStrokeTransparency = 1, }):Play() elseif obj:IsA("Frame") then TweenService:Create(obj, fadeInfo, { BackgroundTransparency = 1, }):Play() end end end task.delay(CONFIG.IntroFadeTime + 0.15, function() safeDestroy(introGui) end) end local function runIntro() local camera = Workspace.CurrentCamera local originalFov = camera and camera.FieldOfView or 70 local blur = Instance.new("BlurEffect") blur.Name = "IntroBlur" blur.Size = 0 blur.Parent = Lighting track(blur) TweenService:Create(blur, TweenInfo.new(0.35, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Size = CONFIG.IntroBlurSize, }):Play() TweenService:Create(introBlackout, TweenInfo.new(0.28, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundTransparency = 0.18, }):Play() if camera then TweenService:Create(camera, TweenInfo.new(0.7, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), { FieldOfView = math.max(48, originalFov - 10), }):Play() end introSound = playIntroSound() local centerPos = UDim2.new(0.5, 0, 0.5, 0) for i = 1, CONFIG.IntroLightCount do local orb = createOrb(UDim2.fromOffset(math.random(180, 280), math.random(180, 280)), 4) track(orb) table.insert(introOrbs, orb) local side = (i % 2 == 0) and -1 or 1 orb.Position = UDim2.new(0.5, side * math.random(130, 180), 0.5, math.random(-120, 120)) local driftTween = TweenService:Create(orb, TweenInfo.new(math.random(35, 55) / 10, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), { Position = UDim2.new(0.5, -side * math.random(150, 210), 0.5, math.random(-100, 100)), BackgroundTransparency = 0.9, }) driftTween:Play() end for i = 1, CONFIG.IntroParticleCount do local kind = (i % 3 == 0) and "Star" or ((i % 2 == 0) and "Circle" or "Spark") local startPos = UDim2.new(0.5, math.random(-110, 110), 0.5, math.random(-45, 45)) local particle = createParticle(kind, startPos, getRainbowColor()) track(particle) table.insert(introParticles, particle) local endPos = UDim2.new(0.5, math.random(-140, 140), 0.5, math.random(-150, -70)) local tween = TweenService:Create(particle, TweenInfo.new(math.random(18, 28) / 10, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Position = endPos, TextTransparency = 1, Rotation = math.random(120, 260), }) tween:Play() task.delay(2.2, function() safeDestroy(particle) end) end local shadow = Instance.new("Frame") shadow.Name = "PanelShadow" shadow.Size = UDim2.new(0, 440, 0, 150) shadow.Position = UDim2.new(0.5, -220 + CONFIG.ShadowOffset, 0.37, CONFIG.ShadowOffset) shadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0) shadow.BackgroundTransparency = 0.55 shadow.BorderSizePixel = 0 shadow.Parent = introGui createCorner(shadow, CONFIG.CornerRadius) track(shadow) local panel = Instance.new("Frame") panel.Name = "IntroPanel" panel.AnchorPoint = Vector2.new(0.5, 0.5) panel.Size = UDim2.new(0, 440, 0, 150) panel.Position = UDim2.new(0.5, 0, 0.37, 0) panel.BackgroundColor3 = CONFIG.BasePanelColor panel.BorderSizePixel = 0 panel.Rotation = -3 panel.ZIndex = 10 panel.Parent = introGui createCorner(panel, CONFIG.CornerRadius) local panelStroke = createStroke(panel, CONFIG.StrokeThickness, 0) createStudPattern(panel) createHighlight(panel) track(panel) local panelScale = Instance.new("UIScale") panelScale.Scale = 0.36 panelScale.Parent = panel local glowTitle = Instance.new("TextLabel") glowTitle.Name = "GlowTitle" glowTitle.BackgroundTransparency = 1 glowTitle.Size = UDim2.new(1, -30, 0, 28) glowTitle.Position = UDim2.new(0, 15, 0, 18) glowTitle.Text = "" glowTitle.Font = Enum.Font.GothamBlack glowTitle.TextSize = 23 glowTitle.TextColor3 = getRainbowColor() glowTitle.TextTransparency = 0.72 glowTitle.TextStrokeTransparency = 1 glowTitle.ZIndex = 11 glowTitle.Parent = panel track(glowTitle) local title = Instance.new("TextLabel") title.Name = "Title" title.BackgroundTransparency = 1 title.Size = UDim2.new(1, -30, 0, 28) title.Position = UDim2.new(0, 15, 0, 18) title.Text = "" title.Font = Enum.Font.GothamBlack title.TextSize = 23 title.TextColor3 = CONFIG.TextLightColor title.TextStrokeTransparency = 0 title.TextStrokeColor3 = CONFIG.TextDarkStroke title.ZIndex = 13 title.Parent = panel track(title) local creatorGlow = Instance.new("TextLabel") creatorGlow.Name = "CreatorGlow" creatorGlow.BackgroundTransparency = 1 creatorGlow.Size = UDim2.new(1, -30, 0, 58) creatorGlow.Position = UDim2.new(0, 15, 0, 54) creatorGlow.Text = "" creatorGlow.Font = Enum.Font.GothamBlack creatorGlow.TextSize = 42 creatorGlow.TextColor3 = getRainbowColor() creatorGlow.TextTransparency = 0.72 creatorGlow.TextStrokeTransparency = 1 creatorGlow.ZIndex = 11 creatorGlow.Parent = panel track(creatorGlow) local creatorText = Instance.new("TextLabel") creatorText.Name = "CreatorText" creatorText.BackgroundTransparency = 1 creatorText.Size = UDim2.new(1, -30, 0, 58) creatorText.Position = UDim2.new(0, 15, 0, 54) creatorText.Text = "" creatorText.Font = Enum.Font.GothamBlack creatorText.TextSize = 42 creatorText.TextColor3 = CONFIG.TextLightColor creatorText.TextStrokeTransparency = 0 creatorText.TextStrokeColor3 = CONFIG.TextDarkStroke creatorText.ZIndex = 13 creatorText.Parent = panel track(creatorText) local scanBar = Instance.new("Frame") scanBar.Name = "ScanBar" scanBar.AnchorPoint = Vector2.new(0.5, 0.5) scanBar.Size = UDim2.new(0, 100, 1, 0) scanBar.Position = UDim2.new(0, -80, 0.5, 0) scanBar.BackgroundColor3 = Color3.fromRGB(255, 255, 255) scanBar.BackgroundTransparency = 0.55 scanBar.BorderSizePixel = 0 scanBar.ZIndex = 12 scanBar.Parent = panel createCorner(scanBar, 999) track(scanBar) local scanGrad = Instance.new("UIGradient") scanGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(0.5, getRainbowColor()), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 255, 255)), }) scanGrad.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.3, 0.5), NumberSequenceKeypoint.new(0.5, 0.2), NumberSequenceKeypoint.new(0.7, 0.5), NumberSequenceKeypoint.new(1, 1), }) scanGrad.Parent = scanBar local scaleUp = TweenService:Create(panelScale, TweenInfo.new(0.44, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Scale = 1.06, }) local rotateUp = TweenService:Create(panel, TweenInfo.new(0.34, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Rotation = 0, }) scaleUp:Play() rotateUp:Play() scaleUp.Completed:Wait() TweenService:Create(panelScale, TweenInfo.new(0.16, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Scale = 1, }):Play() TweenService:Create(scanBar, TweenInfo.new(0.92, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), { Position = UDim2.new(1, 80, 0.5, 0), }):Play() task.spawn(function() typingEffect(title, CONFIG.CreatorLine, 0.035) glowTitle.Text = title.Text glowTitle.TextColor3 = state.currentAccent end) task.wait(0.42) typingEffect(creatorText, CONFIG.CreatorName, 0.045) creatorGlow.Text = creatorText.Text creatorGlow.TextColor3 = state.currentAccent TweenService:Create(creatorGlow, TweenInfo.new(0.22, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { TextTransparency = 0.42, }):Play() local pulse = TweenService:Create(panelScale, TweenInfo.new(0.22, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 0, true), { Scale = 1.035, }) pulse:Play() if camera then TweenService:Create(camera, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), { FieldOfView = originalFov, }):Play() end task.wait(math.max(0.1, CONFIG.IntroDuration - 1.8)) destroyIntro() task.wait(CONFIG.IntroFadeTime + 0.1) end --======================================================== -- MAIN GUI --======================================================== local mainGui = Instance.new("ScreenGui") mainGui.Name = CONFIG.UIName mainGui.ResetOnSpawn = false mainGui.IgnoreGuiInset = true mainGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling mainGui.Enabled = false mainGui.Parent = playerGui local mainShadow = Instance.new("Frame") mainShadow.Name = "MainShadow" mainShadow.Size = UDim2.new(0, CONFIG.Width, 0, CONFIG.Height) mainShadow.Position = UDim2.new(0.5, -(CONFIG.Width / 2) + CONFIG.ShadowOffset, 0.78, -(CONFIG.Height / 2) + CONFIG.ShadowOffset) mainShadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0) mainShadow.BackgroundTransparency = 0.55 mainShadow.BorderSizePixel = 0 mainShadow.Parent = mainGui createCorner(mainShadow, CONFIG.CornerRadius) local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, CONFIG.Width, 0, CONFIG.Height) mainFrame.Position = UDim2.new(0.5, -(CONFIG.Width / 2), 0.82, 20) mainFrame.BackgroundColor3 = CONFIG.BasePanelColor mainFrame.BorderSizePixel = 0 mainFrame.Parent = mainGui createCorner(mainFrame, CONFIG.CornerRadius) local mainStroke = createStroke(mainFrame, CONFIG.StrokeThickness, 0) createStudPattern(mainFrame) createHighlight(mainFrame) local mainScale = Instance.new("UIScale") mainScale.Scale = 0.82 mainScale.Parent = mainFrame local topBar = Instance.new("Frame") topBar.Name = "TopBar" topBar.BackgroundTransparency = 1 topBar.Size = UDim2.new(1, -24, 0, 34) topBar.Position = UDim2.new(0, 12, 0, 8) topBar.Active = true topBar.ZIndex = mainFrame.ZIndex + 3 topBar.Parent = mainFrame local titleLabel = Instance.new("TextLabel") titleLabel.Name = "Title" titleLabel.Size = UDim2.new(1, -4, 1, 0) titleLabel.Position = UDim2.new(0, 0, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = CONFIG.MainTitle titleLabel.Font = Enum.Font.GothamBlack titleLabel.TextSize = 28 titleLabel.TextColor3 = CONFIG.TextLightColor titleLabel.TextStrokeTransparency = 0 titleLabel.TextStrokeColor3 = CONFIG.TextDarkStroke titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.ZIndex = topBar.ZIndex + 1 titleLabel.Parent = topBar local infoLabel = Instance.new("TextLabel") infoLabel.Name = "Info" infoLabel.Size = UDim2.new(1, -24, 0, 20) infoLabel.Position = UDim2.new(0, 12, 0, 40) infoLabel.BackgroundTransparency = 1 infoLabel.Text = CONFIG.InfoText infoLabel.Font = Enum.Font.GothamBold infoLabel.TextSize = 14 infoLabel.TextColor3 = CONFIG.TextLightColor infoLabel.TextStrokeTransparency = 1 infoLabel.TextXAlignment = Enum.TextXAlignment.Left infoLabel.ZIndex = mainFrame.ZIndex + 2 infoLabel.Parent = mainFrame local buttonShadow = Instance.new("Frame") buttonShadow.Name = "ButtonShadow" buttonShadow.Size = UDim2.new(1, -24, 0, CONFIG.ButtonHeight) buttonShadow.Position = UDim2.new(0, 12, 0, 60) buttonShadow.BackgroundColor3 = Color3.fromRGB(0, 0, 0) buttonShadow.BackgroundTransparency = 0.55 buttonShadow.BorderSizePixel = 0 buttonShadow.Parent = mainFrame createCorner(buttonShadow, CONFIG.CornerRadius) local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(1, -24, 0, CONFIG.ButtonHeight) toggleButton.Position = UDim2.new(0, 12, 0, 60) toggleButton.BackgroundColor3 = CONFIG.BaseButtonOffColor toggleButton.BorderSizePixel = 0 toggleButton.AutoButtonColor = false toggleButton.Text = CONFIG.ButtonTextOff toggleButton.Font = Enum.Font.GothamBlack toggleButton.TextSize = 22 toggleButton.TextColor3 = CONFIG.TextLightColor toggleButton.TextStrokeTransparency = 0 toggleButton.TextStrokeColor3 = CONFIG.TextDarkStroke toggleButton.Parent = mainFrame createCorner(toggleButton, CONFIG.CornerRadius) local buttonStroke = createStroke(toggleButton, CONFIG.StrokeThickness, 0) createStudPattern(toggleButton) createHighlight(toggleButton) local buttonScale = Instance.new("UIScale") buttonScale.Scale = 1 buttonScale.Parent = toggleButton local statusLabel = Instance.new("TextLabel") statusLabel.Name = "Status" statusLabel.Size = UDim2.new(1, -24, 0, 18) statusLabel.Position = UDim2.new(0, 12, 0, 122) statusLabel.BackgroundTransparency = 1 statusLabel.Text = "Status: INAKTIV" statusLabel.Font = Enum.Font.GothamBold statusLabel.TextSize = 14 statusLabel.TextColor3 = CONFIG.TextLightColor statusLabel.TextStrokeTransparency = 1 statusLabel.TextXAlignment = Enum.TextXAlignment.Center statusLabel.ZIndex = mainFrame.ZIndex + 2 statusLabel.Parent = mainFrame local hintLabel = Instance.new("TextLabel") hintLabel.Name = "Hint" hintLabel.Size = UDim2.new(1, -24, 0, 18) hintLabel.Position = UDim2.new(0, 12, 0, 141) hintLabel.BackgroundTransparency = 1 hintLabel.Text = CONFIG.HintText hintLabel.Font = Enum.Font.GothamBold hintLabel.TextSize = 13 hintLabel.TextColor3 = CONFIG.TextLightColor hintLabel.TextStrokeTransparency = 1 hintLabel.TextXAlignment = Enum.TextXAlignment.Center hintLabel.ZIndex = mainFrame.ZIndex + 2 hintLabel.Parent = mainFrame --======================================================== -- DRAG --======================================================== local function beginDrag(input) state.dragging = true state.dragStart = input.Position state.frameStart = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then state.dragging = false end end) end local function updateDrag(input) if not state.dragging or not state.dragStart or not state.frameStart then return end local delta = input.Position - state.dragStart mainFrame.Position = UDim2.new( state.frameStart.X.Scale, state.frameStart.X.Offset + delta.X, state.frameStart.Y.Scale, state.frameStart.Y.Offset + delta.Y ) mainShadow.Position = UDim2.new( mainFrame.Position.X.Scale, mainFrame.Position.X.Offset + CONFIG.ShadowOffset, mainFrame.Position.Y.Scale, mainFrame.Position.Y.Offset + CONFIG.ShadowOffset ) end topBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then beginDrag(input) end end) topBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then state.dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == state.dragInput and state.dragging then updateDrag(input) end end) --======================================================== -- UI UPDATE --======================================================== local function refreshUi() if state.enabled then toggleButton.Text = CONFIG.ButtonTextOn toggleButton.BackgroundColor3 = state.currentAccent statusLabel.Text = "Status: AKTIV" statusLabel.TextColor3 = state.currentAccent hintLabel.TextColor3 = state.currentAccent mainStroke.Color = state.currentAccent buttonStroke.Color = CONFIG.TextDarkStroke else toggleButton.Text = CONFIG.ButtonTextOff toggleButton.BackgroundColor3 = CONFIG.BaseButtonOffColor statusLabel.Text = "Status: INAKTIV" statusLabel.TextColor3 = CONFIG.TextLightColor hintLabel.TextColor3 = CONFIG.TextLightColor mainStroke.Color = state.currentAccent buttonStroke.Color = CONFIG.TextDarkStroke end titleLabel.TextColor3 = state.currentAccent infoLabel.TextColor3 = state.currentAccent end local function setEnabled(value) state.enabled = value and true or false refreshUi() end local function toggleEnabled() setEnabled(not state.enabled) local pulse = TweenService:Create(buttonScale, TweenInfo.new(0.1, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Scale = 1.05, }) pulse:Play() pulse.Completed:Connect(function() if buttonScale and buttonScale.Parent then TweenService:Create(buttonScale, TweenInfo.new(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { Scale = 1, }):Play() end end) end --======================================================== -- INPUT --======================================================== toggleButton.Activated:Connect(function() toggleEnabled() end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == CONFIG.ToggleKey then toggleEnabled() return end if input.UserInputType == Enum.UserInputType.MouseButton1 then if canTeleport() and not hasTextFocus() then local position = getWorldHitPosition() if position then teleportTo(position) end end end end) --======================================================== -- CHARACTER REFRESH --======================================================== local function refreshCharacterReferences() character = player.Character or player.CharacterAdded:Wait() humanoidRootPart = character:WaitForChild("HumanoidRootPart", 5) end refreshCharacterReferences() player.CharacterAdded:Connect(function(newCharacter) character = newCharacter humanoidRootPart = newCharacter:WaitForChild("HumanoidRootPart", 5) state.lastTeleportTime = 0 end) --======================================================== -- RGB LOOP --======================================================== task.spawn(function() while true do task.wait(CONFIG.RGBUpdateRate) state.currentAccent = getRainbowColor() if state.introRunning and introGui and introGui.Parent then for _, obj in ipairs(introObjects) do if obj and obj.Parent and obj:IsA("TextLabel") then if obj.Name == "Title" or obj.Name == "GlowTitle" or obj.Name == "CreatorGlow" then obj.TextColor3 = state.currentAccent end end end local panel = introGui:FindFirstChild("IntroPanel") if panel then local stroke = panel:FindFirstChildOfClass("UIStroke") if stroke then stroke.Color = state.currentAccent end end end if mainGui and mainGui.Parent then refreshUi() end end end) --======================================================== -- START --======================================================== task.spawn(function() local success, err = pcall(runIntro) if not success then warn("[Teleport Intro Error]", err) destroyIntro() end mainGui.Enabled = true mainFrame.Position = UDim2.new(0.5, -(CONFIG.Width / 2), 0.78, -(CONFIG.Height / 2)) mainScale.Scale = 0.82 local openTween = TweenService:Create(mainScale, TweenInfo.new(0.42, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Scale = 1, }) openTween:Play() local slideTween = TweenService:Create(mainFrame, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Position = UDim2.new(0.5, -(CONFIG.Width / 2), 0.78, -(CONFIG.Height / 2)), }) slideTween:Play() TweenService:Create(mainShadow, TweenInfo.new(0.38, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { BackgroundTransparency = 0.55, }):Play() setEnabled(false) refreshUi() end)