local Players=game:GetService("Players") local UserInputService=game:GetService("UserInputService") local RunService=game:GetService("RunService") local HapticService=game:GetService("HapticService") local ReplicatedStorage=game:GetService("ReplicatedStorage") local player=Players.LocalPlayer local playerGui=player:WaitForChild("PlayerGui") local old=playerGui:FindFirstChild("AutoChatGui") if old then old:Destroy()end local C={ panel=Color3.fromRGB(20,10,10), topBar=Color3.fromRGB(120,15,15), border=Color3.fromRGB(180,30,30), btn=Color3.fromRGB(140,20,20), btnGreen=Color3.fromRGB(30,120,50), text=Color3.fromRGB(255,220,220), textDim=Color3.fromRGB(180,120,120), modOn=Color3.fromRGB(30,140,60), modOff=Color3.fromRGB(100,15,15), } local modActive=false local modConnection=nil local isShiftLockEnabled=false local slSpawned=false local slCircleRef=nil local userGameSettings=nil local OFFSET_VAL=1.75 local camera=workspace.CurrentCamera local tpwalkSpeed=1.5 local minimized=false local sg=Instance.new("ScreenGui",playerGui) sg.Name="AutoChatGui" sg.ResetOnSpawn=false sg.IgnoreGuiInset=true sg.ZIndexBehavior=Enum.ZIndexBehavior.Sibling local Crosshair=Instance.new("ImageLabel",sg) Crosshair.AnchorPoint=Vector2.new(0.5,0.5) Crosshair.Position=UDim2.new(0.5,0,0.5,-29) Crosshair.Size=UDim2.new(0.04,0,0.04,0) Crosshair.BackgroundTransparency=1 Crosshair.Image="rbxasset://textures/MouseLockedCursor.png" Crosshair.Visible=false Crosshair.ZIndex=10 Instance.new("UIAspectRatioConstraint",Crosshair).AspectRatio=1 local panel=Instance.new("Frame",sg) panel.Size=UDim2.new(0,220,0,240) panel.Position=UDim2.new(0.5,-110,0,60) panel.BackgroundColor3=C.panel panel.BorderSizePixel=0 Instance.new("UICorner",panel).CornerRadius=UDim.new(0,14) Instance.new("UIStroke",panel).Color=C.border local ptb=Instance.new("Frame",panel) ptb.Size=UDim2.new(1,0,0,34) ptb.BackgroundColor3=C.topBar ptb.BorderSizePixel=0 Instance.new("UICorner",ptb).CornerRadius=UDim.new(0,14) local ptbFix=Instance.new("Frame",ptb) ptbFix.Size=UDim2.new(1,0,0.5,0) ptbFix.Position=UDim2.new(0,0,0.5,0) ptbFix.BackgroundColor3=C.topBar ptbFix.BorderSizePixel=0 local dot=Instance.new("Frame",ptb) dot.Size=UDim2.new(0,6,0,6) dot.Position=UDim2.new(0,10,0.5,-3) dot.BackgroundColor3=Color3.fromRGB(255,100,100) dot.BorderSizePixel=0 Instance.new("UICorner",dot).CornerRadius=UDim.new(1,0) local ptl=Instance.new("TextLabel",ptb) ptl.Text="TBB REMASTER" ptl.Size=UDim2.new(1,-140,1,0) ptl.Position=UDim2.new(0,22,0,0) ptl.BackgroundTransparency=1 ptl.TextColor3=C.text ptl.Font=Enum.Font.GothamBold ptl.TextSize=10 ptl.TextXAlignment=Enum.TextXAlignment.Left local speedBox=Instance.new("TextBox",ptb) speedBox.Size=UDim2.new(0,28,0,22) speedBox.Position=UDim2.new(1,-134,0.5,-11) speedBox.BackgroundColor3=Color3.fromRGB(35,10,10) speedBox.Text="1.5" speedBox.TextColor3=C.text speedBox.Font=Enum.Font.GothamBold speedBox.TextSize=9 speedBox.BorderSizePixel=0 speedBox.ClearTextOnFocus=false Instance.new("UICorner",speedBox).CornerRadius=UDim.new(0,4) Instance.new("UIStroke",speedBox).Color=C.border local modBtn=Instance.new("TextButton",ptb) modBtn.Size=UDim2.new(0,42,0,22) modBtn.Position=UDim2.new(1,-100,0.5,-11) modBtn.BackgroundColor3=C.modOff modBtn.Text="MOD" modBtn.TextColor3=C.text modBtn.Font=Enum.Font.GothamBold modBtn.TextSize=9 modBtn.BorderSizePixel=0 Instance.new("UICorner",modBtn).CornerRadius=UDim.new(0,5) Instance.new("UIStroke",modBtn).Color=C.border local minimizeBtn=Instance.new("TextButton",ptb) minimizeBtn.Size=UDim2.new(0,22,0,22) minimizeBtn.Position=UDim2.new(1,-52,0.5,-11) minimizeBtn.BackgroundColor3=Color3.fromRGB(80,60,10) minimizeBtn.Text="-" minimizeBtn.TextColor3=Color3.fromRGB(255,220,100) minimizeBtn.Font=Enum.Font.GothamBold minimizeBtn.TextSize=14 minimizeBtn.BorderSizePixel=0 Instance.new("UICorner",minimizeBtn).CornerRadius=UDim.new(0,5) local closeBtn=Instance.new("TextButton",ptb) closeBtn.Size=UDim2.new(0,22,0,22) closeBtn.Position=UDim2.new(1,-26,0.5,-11) closeBtn.BackgroundColor3=Color3.fromRGB(80,10,10) closeBtn.Text="X" closeBtn.TextColor3=Color3.fromRGB(255,120,120) closeBtn.Font=Enum.Font.GothamBold closeBtn.TextSize=10 closeBtn.BorderSizePixel=0 Instance.new("UICorner",closeBtn).CornerRadius=UDim.new(0,5) speedBox.FocusLost:Connect(function() local val=tonumber(speedBox.Text) if val then val=math.clamp(val,1,10) tpwalkSpeed=val speedBox.Text=tostring(val) else speedBox.Text=tostring(tpwalkSpeed) end end) local modStatus=Instance.new("TextLabel",panel) modStatus.Text="MOD: OFF" modStatus.Size=UDim2.new(1,-16,0,16) modStatus.Position=UDim2.new(0,8,0,38) modStatus.BackgroundTransparency=1 modStatus.TextColor3=C.textDim modStatus.Font=Enum.Font.GothamBold modStatus.TextSize=10 modStatus.TextXAlignment=Enum.TextXAlignment.Left local scroll=Instance.new("ScrollingFrame",panel) scroll.Size=UDim2.new(1,-12,1,-60) scroll.Position=UDim2.new(0,6,0,56) scroll.BackgroundTransparency=1 scroll.BorderSizePixel=0 scroll.ScrollBarThickness=3 scroll.ScrollBarImageColor3=C.border scroll.CanvasSize=UDim2.new(0,0,0,0) scroll.AutomaticCanvasSize=Enum.AutomaticSize.Y local layout=Instance.new("UIListLayout",scroll) layout.Padding=UDim.new(0,6) layout.SortOrder=Enum.SortOrder.LayoutOrder Instance.new("UIPadding",scroll).PaddingTop=UDim.new(0,4) minimizeBtn.MouseButton1Click:Connect(function() minimized=not minimized if minimized then scroll.Visible=false modStatus.Visible=false panel.Size=UDim2.new(0,220,0,34) minimizeBtn.Text="+" else scroll.Visible=true modStatus.Visible=true panel.Size=UDim2.new(0,220,0,240) minimizeBtn.Text="-" end end) local function makeBtn(label,order,callback) local btn=Instance.new("TextButton",scroll) btn.Size=UDim2.new(1,-6,0,36) btn.BackgroundColor3=C.btn btn.Text=label btn.TextColor3=C.text btn.Font=Enum.Font.GothamBold btn.TextSize=12 btn.BorderSizePixel=0 btn.LayoutOrder=order Instance.new("UICorner",btn).CornerRadius=UDim.new(0,8) Instance.new("UIStroke",btn).Color=C.border btn.MouseButton1Click:Connect(function() callback(btn) end) return btn end local CHARS={ {label="krip", remote="Krip", arg="Switch"}, {label="fatboy", remote="fatboy", arg="Switch"}, {label="doombringer", remote="DoomBringer", arg="Switch"}, {label="Mrdoombringer", remote="DoomBringer", arg="MrDoomBringer"}, {label="turking", remote="Turking", arg="Switch"}, {label="exec", remote="Exec", arg="Switch"}, } for i,data in ipairs(CHARS) do makeBtn(data.label,i,function(btn) local ok=pcall(function() local events=ReplicatedStorage:WaitForChild("CharacterSwitchEvents") events:WaitForChild(data.remote):FireServer(data.arg) end) btn.BackgroundColor3=ok and C.btnGreen or Color3.fromRGB(100,20,20) task.delay(0.3,function() btn.BackgroundColor3=C.btn end) end) end makeBtn("Shiftlock",7,function(btn) if slSpawned then return end slSpawned=true btn.Text="Spawned!" btn.BackgroundColor3=C.btnGreen task.wait(1.2) btn.Text="Shiftlock" btn.BackgroundColor3=C.btn local slCircle=Instance.new("ImageButton",sg) slCircle.AnchorPoint=Vector2.new(0.5,0.5) slCircle.Position=UDim2.new(0.85,0,0.8,0) slCircle.Size=UDim2.new(0.075,0,0.075,0) slCircle.BackgroundColor3=Color3.fromRGB(12,8,8) slCircle.BackgroundTransparency=0.1 slCircle.BorderSizePixel=0 slCircle.Image="" slCircle.ZIndex=10 Instance.new("UIAspectRatioConstraint",slCircle).AspectRatio=1 Instance.new("UICorner",slCircle).CornerRadius=UDim.new(1,0) local slStroke=Instance.new("UIStroke",slCircle) slStroke.Color=C.border slStroke.Thickness=2 slCircleRef=slCircle local slIcon=Instance.new("ImageLabel",slCircle) slIcon.BackgroundTransparency=1 slIcon.Position=UDim2.new(0.15,0,0.15,0) slIcon.Size=UDim2.new(0.7,0,0.7,0) slIcon.Image="rbxasset://textures/ui/mouseLock_off.png" slIcon.ScaleType=Enum.ScaleType.Fit slIcon.ImageColor3=Color3.fromRGB(220,50,50) slCircle.MouseButton1Click:Connect(function() isShiftLockEnabled=not isShiftLockEnabled Crosshair.Visible=isShiftLockEnabled RunService:UnbindFromRenderStep("FinalNailSync") if isShiftLockEnabled then slIcon.ImageColor3=Color3.fromRGB(80,220,100) slStroke.Color=Color3.fromRGB(80,220,100) RunService:BindToRenderStep("FinalNailSync",Enum.RenderPriority.Camera.Value+1,function() if not isShiftLockEnabled then RunService:UnbindFromRenderStep("FinalNailSync") return end local char=player.Character local hrp=char and char:FindFirstChild("HumanoidRootPart") if not hrp then return end if not userGameSettings then pcall(function() userGameSettings=UserSettings():GetService("UserGameSettings") end) end if userGameSettings then pcall(function() userGameSettings.RotationType=Enum.RotationType.CameraRelative end) end local dist=(camera.Focus.Position-camera.CFrame.Position).Magnitude if dist>0.90 then local camPos=camera.CFrame.Position local safeY=math.max(camPos.Y,hrp.Position.Y-2) local newCF=CFrame.new(Vector3.new(camPos.X,safeY,camPos.Z),camera.Focus.Position)*CFrame.new(OFFSET_VAL,0,0) camera.CFrame=newCF camera.Focus=newCF*CFrame.new(0,0,-dist) end end) else slIcon.ImageColor3=Color3.fromRGB(220,50,50) slStroke.Color=Color3.fromRGB(180,30,30) if userGameSettings then pcall(function() userGameSettings.RotationType=Enum.RotationType.MovementRelative end) end UserInputService.MouseBehavior=Enum.MouseBehavior.Default end end) local slDragging,slDragStart,slStartPos=false,nil,nil slCircle.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.Touch or i.UserInputType==Enum.UserInputType.MouseButton1 then slDragging=true slDragStart=i.Position slStartPos=slCircle.Position end end) slCircle.InputChanged:Connect(function(i) if slDragging and (i.UserInputType==Enum.UserInputType.Touch or i.UserInputType==Enum.UserInputType.MouseMovement) then local d=i.Position-slDragStart slCircle.Position=UDim2.new(slStartPos.X.Scale,slStartPos.X.Offset+d.X,slStartPos.Y.Scale,slStartPos.Y.Offset+d.Y) end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType==Enum.UserInputType.Touch or i.UserInputType==Enum.UserInputType.MouseButton1 then slDragging=false end end) end) local function startTpwalk() if modConnection then modConnection:Disconnect() modConnection=nil end modConnection=RunService.Heartbeat:Connect(function() local char=player.Character if not char then return end local hrp=char:FindFirstChild("HumanoidRootPart") local hu=char:FindFirstChild("Humanoid") if not hrp or not hu then return end if hu.MoveDirection.Magnitude>0 then hrp.CFrame=hrp.CFrame+hu.MoveDirection*tpwalkSpeed end end) end local function stopTpwalk() if modConnection then modConnection:Disconnect() modConnection=nil end end closeBtn.MouseButton1Click:Connect(function() modActive=false stopTpwalk() isShiftLockEnabled=false Crosshair.Visible=false RunService:UnbindFromRenderStep("FinalNailSync") if userGameSettings then pcall(function() userGameSettings.RotationType=Enum.RotationType.MovementRelative end) end if slCircleRef then slCircleRef:Destroy() slCircleRef=nil end sg:Destroy() end) modBtn.MouseButton1Click:Connect(function() modActive=not modActive if modActive then modBtn.BackgroundColor3=C.modOn modStatus.Text="MOD: ON — spd "..tpwalkSpeed modStatus.TextColor3=Color3.fromRGB(80,220,100) startTpwalk() else modBtn.BackgroundColor3=C.modOff modStatus.Text="MOD: OFF" modStatus.TextColor3=C.textDim stopTpwalk() end end) player.CharacterAdded:Connect(function() RunService:UnbindFromRenderStep("FinalNailSync") if isShiftLockEnabled then task.wait(0.5) RunService:BindToRenderStep("FinalNailSync",Enum.RenderPriority.Camera.Value+1,function() local char=player.Character local hrp=char and char:FindFirstChild("HumanoidRootPart") if not hrp then return end local dist=(camera.Focus.Position-camera.CFrame.Position).Magnitude if dist>0.90 then local camPos=camera.CFrame.Position local safeY=math.max(camPos.Y,hrp.Position.Y-2) local newCF=CFrame.new(Vector3.new(camPos.X,safeY,camPos.Z),camera.Focus.Position)*CFrame.new(OFFSET_VAL,0,0) camera.CFrame=newCF camera.Focus=newCF*CFrame.new(0,0,-dist) end end) end end) local dragging,dragStart,startPos=false,nil,nil ptb.InputBegan:Connect(function(i) if i.UserInputType==Enum.UserInputType.Touch then dragging=true dragStart=i.Position startPos=panel.Position i.Changed:Connect(function()if i.UserInputState==Enum.UserInputState.End then dragging=false end end) end end) UserInputService.InputChanged:Connect(function(i) if dragging and i.UserInputType==Enum.UserInputType.Touch then local d=i.Position-dragStart panel.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+d.X,startPos.Y.Scale,startPos.Y.Offset+d.Y) end end)