local Players = game:GetService('Players') local UserInputService = game:GetService('UserInputService') local ReplicatedStorage = game:GetService('ReplicatedStorage') local player = Players.LocalPlayer if not player then return end local LASER_TOOL_NAME = 'Laser Cape' local BLOCK_TOOL_NAME = 'Brainrot' local saved = { nil, nil, nil, nil } -- Sistema di key con scadenza 24 ore local KEY_VALIDITY = 10 -- 24 ore in secondi local REQUIRED_KEY = 'iaiuzz' local KEY_REMOTE_NAME = 'RemoteEventKey' local keySessionActive = false local keySessionExpire = 0 local function isKeyValid() return keySessionActive and (os.time() < keySessionExpire) end local function askKey() local gui = Instance.new('ScreenGui') gui.Name = 'KeyGui' gui.Parent = game.Players.LocalPlayer:WaitForChild('PlayerGui') local frame = Instance.new('Frame') frame.Size = UDim2.new(0, 340, 0, 180) frame.Position = UDim2.new(0.5, -170, 0.5, -90) frame.BackgroundColor3 = Color3.fromRGB(35, 30, 60) frame.BackgroundTransparency = 0.08 frame.BorderSizePixel = 0 frame.Parent = gui local corner = Instance.new('UICorner', frame) corner.CornerRadius = UDim.new(0, 18) local shadow = Instance.new('ImageLabel', frame) shadow.BackgroundTransparency = 1 shadow.Image = 'rbxassetid://1316045217' shadow.Size = UDim2.new(1, 40, 1, 40) shadow.Position = UDim2.new(0, -20, 0, -20) shadow.ImageColor3 = Color3.fromRGB(0, 0, 0) shadow.ImageTransparency = 0.85 shadow.ZIndex = 0 local title = Instance.new('TextLabel', frame) title.Size = UDim2.new(1, 0, 0, 38) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = '🔑 Inserisci la tua Key' title.Font = Enum.Font.GothamBold title.TextSize = 20 title.TextColor3 = Color3.fromRGB(200, 180, 255) title.TextStrokeTransparency = 0.7 title.ZIndex = 2 local box = Instance.new('TextBox', frame) box.Size = UDim2.new(0.85, 0, 0, 38) box.Position = UDim2.new(0.075, 0, 0.35, 0) box.PlaceholderText = 'Key...' box.Text = '' box.Font = Enum.Font.Gotham box.TextSize = 16 box.TextColor3 = Color3.fromRGB(220, 220, 255) box.BackgroundColor3 = Color3.fromRGB(45, 40, 80) box.BackgroundTransparency = 0.12 box.ClearTextOnFocus = false box.ZIndex = 2 Instance.new('UICorner', box).CornerRadius = UDim.new(0, 10) local btn = Instance.new('TextButton', frame) btn.Size = UDim2.new(0.85, 0, 0, 36) btn.Position = UDim2.new(0.075, 0, 0.68, 0) btn.Text = 'Conferma Key' btn.Font = Enum.Font.GothamBold btn.TextSize = 16 btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.BackgroundColor3 = Color3.fromRGB(120, 60, 220) btn.BackgroundTransparency = 0.08 btn.AutoButtonColor = true btn.ZIndex = 2 Instance.new('UICorner', btn).CornerRadius = UDim.new(0, 10) local info = Instance.new('TextLabel', frame) info.Size = UDim2.new(1, -20, 0, 22) info.Position = UDim2.new(0, 10, 1, -28) info.BackgroundTransparency = 1 info.Text = 'Key valida per questa sessione.' info.Font = Enum.Font.Gotham info.TextSize = 13 info.TextColor3 = Color3.fromRGB(180, 180, 220) info.TextStrokeTransparency = 0.8 info.ZIndex = 2 btn.MouseButton1Click:Connect(function() local key = box.Text if key == REQUIRED_KEY then keySessionActive = true keySessionExpire = os.time() + KEY_VALIDITY if game.ReplicatedStorage:FindFirstChild(KEY_REMOTE_NAME) then game.ReplicatedStorage[KEY_REMOTE_NAME]:FireServer(key) end gui:Destroy() else box.Text = 'Key errata!' box.TextColor3 = Color3.fromRGB(255, 120, 120) box.BackgroundColor3 = Color3.fromRGB(60, 30, 40) info.Text = 'Key non valida. Riprova.' info.TextColor3 = Color3.fromRGB(255, 120, 120) -- Animazione shake local orig = frame.Position for i = 1, 8 do frame.Position = orig + UDim2.new(0, math.random(-6, 6), 0, math.random(-2, 2)) wait(0.02) end frame.Position = orig wait(0.1) box.Text = '' box.TextColor3 = Color3.fromRGB(220, 220, 255) box.BackgroundColor3 = Color3.fromRGB(45, 40, 80) info.Text = 'Key valida per questa sessione.' info.TextColor3 = Color3.fromRGB(180, 180, 220) end end) end local function showMainScript() -- Tutto il resto dello script viene eseguito qui local function getCharacter() return player.Character or player.CharacterAdded:Wait() end local function getHRP(char) char = char or getCharacter() return char:FindFirstChild('HumanoidRootPart') or char.PrimaryPart end local function requestServerTeleport(cf) local ev = ReplicatedStorage:FindFirstChild('RequestTeleportCharacter') if ev and typeof(cf) == 'CFrame' then pcall(function() ev:FireServer(cf) end) return true end return false end local function uprightCharacter(char, targetCFrame) if not char then return end local hrp = char:FindFirstChild('HumanoidRootPart') or char.PrimaryPart if not hrp then return end local humanoid = char:FindFirstChildOfClass('Humanoid') local _, yaw, _ = targetCFrame:ToEulerAnglesYXZ() local upright = CFrame.new(targetCFrame.Position) * CFrame.Angles(0, yaw, 0) -- Safer teleport: disable physics-driven motion, move, wait a bit, then restore pcall(function() if humanoid then -- prevent ragdoll/physics from interfering humanoid.PlatformStand = true humanoid.Sit = false end if hrp then hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0) hrp.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end if char.PivotTo then char:PivotTo(upright) elseif char.PrimaryPart then char:SetPrimaryPartCFrame(upright) elseif hrp then hrp.CFrame = upright end end) -- short wait to let physics settle task.wait(0.06) pcall(function() if hrp then hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0) hrp.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end if humanoid then humanoid.PlatformStand = false humanoid.Sit = false end end) end local function teleportPreservePose(targetCFrame) local char = getCharacter() if not char then return false end local hrp = getHRP(char) if not hrp then if char.PrimaryPart then pcall(function() char:SetPrimaryPartCFrame(targetCFrame) end) uprightCharacter(char, targetCFrame) return true end return false end local rel = {} for _, part in ipairs(char:GetDescendants()) do if part:IsA('BasePart') and part ~= hrp then rel[part] = hrp.CFrame:ToObjectSpace(part.CFrame) end end local savedCanCollide = {} for _, part in ipairs(char:GetDescendants()) do if part:IsA('BasePart') then pcall(function() savedCanCollide[part] = part.CanCollide part.CanCollide = false part.AssemblyLinearVelocity = Vector3.new(0, 0, 0) part.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end) end end for i = 1, 2 do pcall(function() hrp.CFrame = targetCFrame end) for part, rcf in pairs(rel) do if part and part:IsA('BasePart') then pcall(function() part.CFrame = targetCFrame:ToWorldSpace(rcf) end) end end task.wait(0.03) for _, part in ipairs(char:GetDescendants()) do if part:IsA('BasePart') then pcall(function() part.AssemblyLinearVelocity = Vector3.new(0, 0, 0) part.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end) end end end task.delay(0.06, function() for part, original in pairs(savedCanCollide) do if part and part:IsA('BasePart') then pcall(function() part.CanCollide = original end) end end for _, part in ipairs(char:GetDescendants()) do if part:IsA('BasePart') then pcall(function() part.AssemblyLinearVelocity = Vector3.new(0, 0, 0) part.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end) end end end) uprightCharacter(char, targetCFrame) return true end local function safeTeleport(cf) local char = getCharacter() if not char then return false end local toolInHand for _, v in ipairs(char:GetChildren()) do if v:IsA('Tool') then toolInHand = v break end end local handle, originalHandleCanCollide if toolInHand and toolInHand.Name == BLOCK_TOOL_NAME then handle = toolInHand:FindFirstChildWhichIsA('BasePart') if handle then pcall(function() originalHandleCanCollide = handle.CanCollide handle.CanCollide = false handle.AssemblyLinearVelocity = Vector3.new(0, 0, 0) handle.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end) end end local hrp = getHRP(char) if hrp then local dy = cf.Position.Y - hrp.Position.Y if dy < -4 then local midPos = cf.Position + Vector3.new(0, 3, 0) local mid = CFrame.new(midPos, midPos + Vector3.new(0, 0, 1)) if requestServerTeleport(mid) then task.wait(0.12) requestServerTeleport(cf) else teleportPreservePose(mid) task.wait(0.12) teleportPreservePose(cf) end if handle and originalHandleCanCollide ~= nil then task.delay(0.25, function() if handle and handle.Parent then pcall(function() handle.CanCollide = originalHandleCanCollide end) end end) end return true end end if requestServerTeleport(cf) then task.delay(0.06, function() uprightCharacter(char, cf) end) if handle and originalHandleCanCollide ~= nil then task.delay(0.25, function() if handle and handle.Parent then pcall(function() handle.CanCollide = originalHandleCanCollide end) end end) end return true end local ok = teleportPreservePose(cf) if ok then task.delay(0.06, function() uprightCharacter(char, cf) end) end if handle and originalHandleCanCollide ~= nil then task.delay(0.25, function() if handle and handle.Parent then pcall(function() handle.CanCollide = originalHandleCanCollide end) end end) end return ok end local function SavePos(index) local hrp = getHRP() if hrp and index >= 0 and index <= 3 then saved[index] = hrp.CFrame return true end return false end local function TeleportToSaved(index) if index < 0 or index > 3 then return false end local cf = saved[index] if not cf then return false end local target = cf + Vector3.new(0, 0.8, 0) return safeTeleport(target) end local function runExtraOnEquip(tool) local args = { vector.create( -344.49200439453125, -6.641358375549316, 12.191412925720215 ), game:GetService('Players') :WaitForChild('tamaci88').Character :WaitForChild('UpperTorso'), } game:GetService('ReplicatedStorage') :WaitForChild('Packages') :WaitForChild('Net') :WaitForChild('RE/UseItem') :FireServer(unpack(args)) end local function runExtra() -- Controllo key prima di eseguire if not isKeyValid() then askKey() return end local char = getCharacter() local backpack = player:FindFirstChild('Backpack') or player:WaitForChild('Backpack') local humanoid = char and char:FindFirstChildOfClass('Humanoid') local starter = game:GetService('StarterPack') local laser = (backpack and backpack:FindFirstChild(LASER_TOOL_NAME)) or (char and char:FindFirstChild(LASER_TOOL_NAME)) or (starter and starter:FindFirstChild(LASER_TOOL_NAME)) if not laser then return end if laser.Parent == char then if laser:IsA('Tool') then local conn conn = laser.Equipped:Connect(function() runExtraOnEquip(laser) if conn then conn:Disconnect() conn = nil end end) task.defer(function() runExtraOnEquip(laser) if conn then conn:Disconnect() conn = nil end end) else runExtraOnEquip(laser) end return end for _, itm in ipairs(char:GetChildren()) do if itm:IsA('Tool') and itm ~= laser then itm.Parent = backpack end end laser.Parent = backpack if humanoid and laser:IsA('Tool') then local conn conn = laser.Equipped:Connect(function() runExtraOnEquip(laser) if conn then conn:Disconnect() conn = nil end end) pcall(function() humanoid:EquipTool(laser) end) task.delay(0.5, function() if laser.Parent ~= char then laser.Parent = char runExtraOnEquip(laser) end if conn then conn:Disconnect() conn = nil end end) else laser.Parent = char runExtraOnEquip(laser) end end local function buildGui() local pg = player:WaitForChild('PlayerGui') local existing = pg:FindFirstChild('PosGui') if existing then existing:Destroy() end local gui = Instance.new('ScreenGui') gui.Name = 'PosGui' gui.ResetOnSpawn = false gui.Parent = pg local frame = Instance.new('Frame', gui) frame.Size = UDim2.new(0, 340, 0, 180) frame.Position = UDim2.new(0, 20, 0, 60) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 40) frame.BorderSizePixel = 0 local title = Instance.new('TextLabel', frame) title.Size = UDim2.new(1, -16, 0, 24) title.Position = UDim2.new(0, 8, 0, 4) title.BackgroundTransparency = 1 title.Text = 'iaiuzz hub (test)' title.TextColor3 = Color3.fromRGB(220, 220, 255) title.Font = Enum.Font.GothamBold title.TextSize = 16 title.TextXAlignment = Enum.TextXAlignment.Left local status = Instance.new('TextLabel', frame) status.Size = UDim2.new(1, -16, 0, 20) status.Position = UDim2.new(0, 8, 0, 28) status.BackgroundTransparency = 0.5 status.BackgroundColor3 = Color3.fromRGB(40, 40, 50) status.Text = 'Ready' status.TextColor3 = Color3.fromRGB(220, 220, 220) status.Font = Enum.Font.Gotham status.TextSize = 12 local function makeBtn(text, x, y) local b = Instance.new('TextButton', frame) b.Size = UDim2.new(0, 150, 0, 34) b.Position = UDim2.new(0, x, 0, y) b.BackgroundColor3 = Color3.fromRGB(85, 85, 150) b.Text = text return b end local set0 = makeBtn('Set Pos0', 8, 56) set0.MouseButton1Click:Connect(function() if SavePos(0) then status.Text = 'Pos0 salvata' else status.Text = 'HRP non trovato' end end) local set1 = makeBtn('Set Pos1', 175, 56) set1.MouseButton1Click:Connect(function() if SavePos(1) then status.Text = 'Pos1 salvata' else status.Text = 'HRP non trovato' end end) local set2 = makeBtn('Set Pos2', 8, 98) set2.MouseButton1Click:Connect(function() if SavePos(2) then status.Text = 'Pos2 salvata' else status.Text = 'HRP non trovato' end end) local set3 = makeBtn('Set Pos3', 175, 98) set3.MouseButton1Click:Connect(function() if SavePos(3) then status.Text = 'Pos3 salvata' else status.Text = 'HRP non trovato' end end) local tpBtn = makeBtn('TP (0->1->2->3)', 8, 140) tpBtn.Size = UDim2.new(0, 317, 0, 34) tpBtn.MouseButton1Click:Connect(function() status.Text = 'Teleporting...' for i = 0, 3 do if saved[i] then TeleportToSaved(i) task.wait(0.25) end end status.Text = 'TP completato' end) end _G.PosGui_SavePos = SavePos _G.PosGui_TeleportToSaved = TeleportToSaved _G.PosGui_RunExtra = runExtra buildGui() UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.Q then runExtra() end end) -- PROXIMITY PROMPT TP TRIGGER + AUTO EQUIP LASER CAPE (runExtraOnEquip) local function isTpPrompt(prompt) return prompt:IsA('ProximityPrompt') and prompt.Parent and prompt.Parent:IsA('Attachment') end local function doLaserEquipThenTp() -- Equipaggia il Laser Cape se presente nello zaino o nel personaggio loca