Nevzyn

Untitled

Oct 21st, 2025
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.00 KB | None | 0 0
  1. --[[
  2. ╔═══════════════════════════════════════════════════════════╗
  3. ║ Pré-história - By: NickZScripts ║
  4. ║ Sistema Modular & Anti-Conflitos ║
  5. ║ Interface: Redzlib v5 ║
  6. ╚═══════════════════════════════════════════════════════════╝
  7. ]]
  8.  
  9. --// ========== SERVICES ========== //
  10. local Players = game:GetService("Players")
  11. local RunService = game:GetService("RunService")
  12. local HttpService = game:GetService("HttpService")
  13. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  14. local Teams = game:GetService("Teams")
  15. local TweenService = game:GetService("TweenService")
  16. local UserInputService = game:GetService("UserInputService")
  17.  
  18. --// ========== VARIÁVEIS GLOBAIS ========== //
  19. local LocalPlayer = Players.LocalPlayer
  20. local ScriptVersion = "v4.5.1"
  21. local LastSpawnPosition = nil
  22. local Camera = workspace.CurrentCamera
  23. local ActiveTeleportConnection = nil
  24.  
  25. --// ========== CONFIGURAÇÕES DO AUTO FARM ========== //
  26. local Config = {
  27. AutoFarm = false,
  28. AutoColeta = false,
  29. CheckDelay = 0.3,
  30. DelayBetweenCrystals = 0.1,
  31. raioDeColeta = 25,
  32. delayEntreTentativas = 0.25,
  33. podeExecutar = true,
  34.  
  35. -- ESP de Carnes
  36. EspMeatActive = false,
  37. ESP_MIN_SIZE = 35,
  38. ESP_MAX_SIZE = 65,
  39. ESP_UPDATE_RATE = 0.1,
  40. MAX_VISIBLE_DISTANCE = 999999,
  41.  
  42. -- ESP de Jogadores
  43. PlayerESP = false,
  44. PlayerESP_ShowHP = false,
  45. PlayerESP_TeamCheck = false,
  46.  
  47. -- Click Teleport
  48. ClickTeleportEnabled = false,
  49.  
  50. -- Teleports Salvos
  51. SavedTeleports = {},
  52.  
  53. -- Patrulha
  54. PatrulhaPontos = {
  55. CFrame.new(0, 30, 0),
  56. CFrame.new(800, 30, 400),
  57. CFrame.new(-750, 30, -600),
  58. CFrame.new(450, 30, -1000),
  59. CFrame.new(-900, 30, 700),
  60. CFrame.new(0, 30, 1000),
  61. },
  62. }
  63.  
  64. --// ========== CACHE DE NÍVEL ========== //
  65. local DinoLevelCache = {
  66. value = 0,
  67. lastUpdate = 0,
  68. updateInterval = 2
  69. }
  70.  
  71. --// ========== DETECTAR POSIÇÃO DE SPAWN ========== //
  72. task.spawn(function()
  73. local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  74. local root = char:WaitForChild("HumanoidRootPart", 10)
  75.  
  76. if root then
  77. task.wait(2)
  78. LastSpawnPosition = root.CFrame
  79. end
  80.  
  81. LocalPlayer.CharacterAdded:Connect(function(newChar)
  82. task.wait(2)
  83. local newRoot = newChar:FindFirstChild("HumanoidRootPart")
  84. if newRoot then
  85. LastSpawnPosition = newRoot.CFrame
  86. end
  87. end)
  88. end)
  89.  
  90. --// ========== CARREGAR REDZLIB ========== //
  91. local redzlib = loadstring(game:HttpGet("https://raw.githubusercontent.com/tbao143/Library-ui/refs/heads/main/Redzhubui"))()
  92.  
  93. --// ========== CRIAR WINDOW ========== //
  94. local Window = redzlib:MakeWindow({
  95. Title = "🦖 Pré-história",
  96. SubTitle = "By: NickZScripts | " .. ScriptVersion,
  97. SaveFolder = "PreHistoria_RedzHub"
  98. })
  99.  
  100. --// ========== BOTÃO DE MINIMIZAR ========== //
  101. Window:AddMinimizeButton({
  102. Button = { Image = "rbxassetid://13536317727", BackgroundTransparency = 0 },
  103. Corner = { CornerRadius = UDim.new(35, 1) },
  104. })
  105.  
  106. --// ========== DEFINIR TEMA ========== //
  107. redzlib:SetTheme("Purple")
  108.  
  109. --// ========== FUNÇÕES DE UTILIDADE ========== //
  110.  
  111. local function getCharacter()
  112. return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  113. end
  114.  
  115. local function getHumanoidRootPart()
  116. local char = getCharacter()
  117. return char and char:FindFirstChild("HumanoidRootPart")
  118. end
  119.  
  120. local function teleportTo(cf)
  121. local root = getHumanoidRootPart()
  122. if root and root.Parent then
  123. root.Parent:SetPrimaryPartCFrame(cf)
  124. end
  125. end
  126.  
  127. local function teleportToCrystal(c)
  128. local root = getHumanoidRootPart()
  129. if root and c then
  130. root.Parent:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  131. end
  132. end
  133.  
  134. --// ========== SISTEMA DE TELEPORTE SEGURO ========== //
  135.  
  136. local function safeTeleport(targetCFrame, locationName)
  137. if ActiveTeleportConnection then
  138. ActiveTeleportConnection:Disconnect()
  139. ActiveTeleportConnection = nil
  140. end
  141.  
  142. local char = LocalPlayer.Character
  143. local root = char and char:FindFirstChild("HumanoidRootPart")
  144. local humanoid = char and char:FindFirstChild("Humanoid")
  145.  
  146. if not root or not humanoid then
  147. redzlib:Notify("❌ Erro", "Personagem não encontrado!")
  148. return false
  149. end
  150.  
  151. redzlib:Notify("🚀 Teleportando", "Indo para: " .. locationName)
  152.  
  153. root.CFrame = targetCFrame
  154.  
  155. task.spawn(function()
  156. task.wait(0.05)
  157.  
  158. local rayParams = RaycastParams.new()
  159. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  160. rayParams.FilterDescendantsInstances = {char}
  161.  
  162. local rayResult = workspace:Raycast(
  163. root.Position,
  164. Vector3.new(0, -100, 0),
  165. rayParams
  166. )
  167.  
  168. if rayResult then
  169. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  170. end
  171. end)
  172.  
  173. local teleportStartTime = tick()
  174. local maxWaitTime = 1.2
  175. local minWaitTime = 0.2
  176.  
  177. ActiveTeleportConnection = RunService.Heartbeat:Connect(function()
  178. if not char or not char.Parent or not root or not root.Parent or not humanoid then
  179. if ActiveTeleportConnection then
  180. ActiveTeleportConnection:Disconnect()
  181. ActiveTeleportConnection = nil
  182. end
  183. return
  184. end
  185.  
  186. local elapsedTime = tick() - teleportStartTime
  187.  
  188. local floorMaterial = humanoid.FloorMaterial
  189. local isOnGround = floorMaterial ~= Enum.Material.Air
  190.  
  191. local velocity = root.AssemblyLinearVelocity
  192. local isStationary = velocity.Magnitude < 2
  193.  
  194. local humanoidState = humanoid:GetState()
  195. local isLanded = humanoidState == Enum.HumanoidStateType.Landed or
  196. humanoidState == Enum.HumanoidStateType.Running or
  197. humanoidState == Enum.HumanoidStateType.RunningNoPhysics
  198.  
  199. if (elapsedTime > minWaitTime and (isOnGround or (isStationary and isLanded))) or elapsedTime > maxWaitTime then
  200. if ActiveTeleportConnection then
  201. ActiveTeleportConnection:Disconnect()
  202. ActiveTeleportConnection = nil
  203. end
  204.  
  205. if isOnGround or isLanded then
  206. redzlib:Notify("✅ Chegou", locationName)
  207. else
  208. local rayParams = RaycastParams.new()
  209. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  210. rayParams.FilterDescendantsInstances = {char}
  211.  
  212. local rayResult = workspace:Raycast(
  213. root.Position,
  214. Vector3.new(0, -200, 0),
  215. rayParams
  216. )
  217.  
  218. if rayResult then
  219. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  220. end
  221.  
  222. redzlib:Notify("⚠️ Ajustado", "Posição corrigida")
  223. end
  224.  
  225. return
  226. end
  227. end)
  228.  
  229. return true
  230. end
  231.  
  232. --// ========== MÓDULO: CLICK TELEPORT (SEM EFEITOS VISUAIS) ========== //
  233.  
  234. local ClickTeleportModule = (function()
  235. -- Variáveis privadas do módulo
  236. local _enabled = false
  237. local _uiVisible = false
  238. local _screenGui = nil
  239. local _mainFrame = nil
  240. local _minimizedBtn = nil
  241. local _connections = {}
  242.  
  243. local Mouse = LocalPlayer:GetMouse()
  244.  
  245. -- Estado do clique
  246. local ClickState = {
  247. StartTime = 0,
  248. StartPosition = nil,
  249. IsValid = false,
  250. }
  251.  
  252. -- Configurações do Click Teleport
  253. local CTConfig = {
  254. MaxClickTime = 0.3,
  255. MaxDragDistance = 10,
  256. RaycastDistance = 10000,
  257. TeleportOffset = 3,
  258. }
  259.  
  260. -- Tema compatível com Redzlib
  261. local CTTheme = {
  262. Background = Color3.fromRGB(25, 25, 35),
  263. Secondary = Color3.fromRGB(35, 35, 45),
  264. Accent = Color3.fromRGB(90, 170, 255),
  265. Success = Color3.fromRGB(90, 255, 140),
  266. Danger = Color3.fromRGB(255, 90, 90),
  267. Text = Color3.fromRGB(255, 255, 255),
  268. TextDim = Color3.fromRGB(180, 180, 200),
  269. }
  270.  
  271. -- Funções privadas
  272. local function _getMouseHit()
  273. local unitRay = Camera:ScreenPointToRay(Mouse.X, Mouse.Y)
  274.  
  275. local raycastParams = RaycastParams.new()
  276. raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
  277. raycastParams.FilterDescendantsInstances = {LocalPlayer.Character}
  278. raycastParams.IgnoreWater = false
  279.  
  280. local raycastResult = workspace:Raycast(
  281. unitRay.Origin,
  282. unitRay.Direction * CTConfig.RaycastDistance,
  283. raycastParams
  284. )
  285.  
  286. return raycastResult
  287. end
  288.  
  289. local function _teleportToPosition(position)
  290. local root = getHumanoidRootPart()
  291. if not root then return false end
  292.  
  293. local currentPosition = root.Position
  294. local teleportPos = position + Vector3.new(0, CTConfig.TeleportOffset, 0)
  295. local directionVector = (position - currentPosition)
  296. local horizontalDirection = Vector3.new(directionVector.X, 0, directionVector.Z)
  297. local lookDirection = horizontalDirection.Unit
  298. local targetCFrame = CFrame.new(teleportPos, teleportPos + lookDirection)
  299.  
  300. root.CFrame = targetCFrame
  301.  
  302. return true
  303. end
  304.  
  305. local function _isValidClick(startPos, endPos, duration)
  306. if duration > CTConfig.MaxClickTime then return false end
  307.  
  308. local dragDistance = (endPos - startPos).Magnitude
  309. if dragDistance > CTConfig.MaxDragDistance then return false end
  310.  
  311. return true
  312. end
  313.  
  314. local function _updateStatusLabel(text, color)
  315. if _mainFrame then
  316. local statusLabel = _mainFrame:FindFirstChild("Container"):FindFirstChild("StatusLabel")
  317. if statusLabel then
  318. statusLabel.Text = text
  319. statusLabel.TextColor3 = color
  320. end
  321. end
  322. end
  323.  
  324. local function _enableClickDetection()
  325. for _, conn in ipairs(_connections) do
  326. if conn and conn.Connected then
  327. conn:Disconnect()
  328. end
  329. end
  330. _connections = {}
  331.  
  332. table.insert(_connections, UserInputService.InputBegan:Connect(function(input, gameProcessed)
  333. if gameProcessed then return end
  334. if not _enabled then return end
  335.  
  336. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  337. input.UserInputType == Enum.UserInputType.Touch then
  338. ClickState.StartTime = tick()
  339. ClickState.StartPosition = Vector2.new(Mouse.X, Mouse.Y)
  340. ClickState.IsValid = true
  341. end
  342. end))
  343.  
  344. table.insert(_connections, UserInputService.InputEnded:Connect(function(input, gameProcessed)
  345. if gameProcessed then return end
  346. if not _enabled then return end
  347. if not ClickState.IsValid then return end
  348.  
  349. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  350. input.UserInputType == Enum.UserInputType.Touch then
  351.  
  352. local clickDuration = tick() - ClickState.StartTime
  353. local endPosition = Vector2.new(Mouse.X, Mouse.Y)
  354.  
  355. if _isValidClick(ClickState.StartPosition, endPosition, clickDuration) then
  356. local raycastResult = _getMouseHit()
  357.  
  358. if raycastResult then
  359. if _teleportToPosition(raycastResult.Position) then
  360. _updateStatusLabel("✅ Teleportado!", CTTheme.Success)
  361.  
  362. task.wait(1)
  363. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  364. end
  365. else
  366. _updateStatusLabel("❌ Não é possível teleportar para o céu", CTTheme.Danger)
  367.  
  368. task.wait(1.5)
  369. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  370. end
  371. end
  372.  
  373. ClickState.IsValid = false
  374. end
  375. end))
  376. end
  377.  
  378. local function _disableClickDetection()
  379. for _, conn in ipairs(_connections) do
  380. if conn and conn.Connected then
  381. conn:Disconnect()
  382. end
  383. end
  384. _connections = {}
  385. end
  386.  
  387. local function _minimizeUI()
  388. if _mainFrame then
  389. _mainFrame.Visible = false
  390. end
  391. if _minimizedBtn then
  392. _minimizedBtn.Visible = true
  393.  
  394. _minimizedBtn.Size = UDim2.new(0, 0, 0, 0)
  395. TweenService:Create(_minimizedBtn, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  396. Size = UDim2.new(0, 50, 0, 50)
  397. }):Play()
  398. end
  399. end
  400.  
  401. local function _maximizeUI()
  402. if _minimizedBtn then
  403. TweenService:Create(_minimizedBtn, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
  404. Size = UDim2.new(0, 0, 0, 0)
  405. }):Play()
  406.  
  407. task.wait(0.2)
  408. _minimizedBtn.Visible = false
  409. end
  410. if _mainFrame then
  411. _mainFrame.Visible = true
  412.  
  413. _mainFrame.Size = UDim2.new(0, 0, 0, 0)
  414. TweenService:Create(_mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  415. Size = UDim2.new(0, 260, 0, 180)
  416. }):Play()
  417. end
  418. end
  419.  
  420. local function _createUI()
  421. if _screenGui then
  422. pcall(function() _screenGui:Destroy() end)
  423. _screenGui = nil
  424. end
  425.  
  426. _screenGui = Instance.new("ScreenGui")
  427. _screenGui.Name = "ClickTeleportUI_PreHistoria"
  428. _screenGui.ResetOnSpawn = false
  429. _screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  430. _screenGui.Parent = game:GetService("CoreGui")
  431.  
  432. _mainFrame = Instance.new("Frame")
  433. _mainFrame.Name = "MainFrame"
  434. _mainFrame.Size = UDim2.new(0, 260, 0, 180)
  435. _mainFrame.Position = UDim2.new(0.5, -130, 0.5, -90)
  436. _mainFrame.BackgroundColor3 = CTTheme.Background
  437. _mainFrame.BackgroundTransparency = 0.05
  438. _mainFrame.BorderSizePixel = 0
  439. _mainFrame.Active = true
  440. _mainFrame.Draggable = true
  441. _mainFrame.Parent = _screenGui
  442.  
  443. local mainCorner = Instance.new("UICorner")
  444. mainCorner.CornerRadius = UDim.new(0, 12)
  445. mainCorner.Parent = _mainFrame
  446.  
  447. local mainStroke = Instance.new("UIStroke")
  448. mainStroke.Color = CTTheme.Accent
  449. mainStroke.Thickness = 2
  450. mainStroke.Transparency = 0.3
  451. mainStroke.Parent = _mainFrame
  452.  
  453. local bgGradient = Instance.new("UIGradient")
  454. bgGradient.Color = ColorSequence.new{
  455. ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 30, 40)),
  456. ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 30))
  457. }
  458. bgGradient.Rotation = 45
  459. bgGradient.Parent = _mainFrame
  460.  
  461. local header = Instance.new("Frame")
  462. header.Size = UDim2.new(1, 0, 0, 50)
  463. header.BackgroundColor3 = CTTheme.Secondary
  464. header.BackgroundTransparency = 0.2
  465. header.BorderSizePixel = 0
  466. header.Parent = _mainFrame
  467.  
  468. local headerCorner = Instance.new("UICorner")
  469. headerCorner.CornerRadius = UDim.new(0, 12)
  470. headerCorner.Parent = header
  471.  
  472. local headerFix = Instance.new("Frame")
  473. headerFix.Size = UDim2.new(1, 0, 0, 12)
  474. headerFix.Position = UDim2.new(0, 0, 1, -12)
  475. headerFix.BackgroundColor3 = CTTheme.Secondary
  476. headerFix.BackgroundTransparency = 0.2
  477. headerFix.BorderSizePixel = 0
  478. headerFix.Parent = header
  479.  
  480. local title = Instance.new("TextLabel")
  481. title.Size = UDim2.new(1, -85, 1, 0)
  482. title.Position = UDim2.new(0, 15, 0, 0)
  483. title.BackgroundTransparency = 1
  484. title.Text = "🎯 Click Teleport"
  485. title.TextColor3 = CTTheme.Text
  486. title.TextSize = 17
  487. title.Font = Enum.Font.GothamBold
  488. title.TextXAlignment = Enum.TextXAlignment.Left
  489. title.Parent = header
  490.  
  491. local minimizeBtn = Instance.new("TextButton")
  492. minimizeBtn.Size = UDim2.new(0, 35, 0, 35)
  493. minimizeBtn.Position = UDim2.new(1, -78, 0.5, -17.5)
  494. minimizeBtn.BackgroundColor3 = Color3.fromRGB(255, 200, 100)
  495. minimizeBtn.BackgroundTransparency = 0.2
  496. minimizeBtn.Text = "➖"
  497. minimizeBtn.TextColor3 = CTTheme.Text
  498. minimizeBtn.TextSize = 18
  499. minimizeBtn.Font = Enum.Font.GothamBold
  500. minimizeBtn.AutoButtonColor = false
  501. minimizeBtn.Parent = header
  502.  
  503. local minimizeCorner = Instance.new("UICorner")
  504. minimizeCorner.CornerRadius = UDim.new(0, 8)
  505. minimizeCorner.Parent = minimizeBtn
  506.  
  507. local closeBtn = Instance.new("TextButton")
  508. closeBtn.Size = UDim2.new(0, 35, 0, 35)
  509. closeBtn.Position = UDim2.new(1, -38, 0.5, -17.5)
  510. closeBtn.BackgroundColor3 = CTTheme.Danger
  511. closeBtn.BackgroundTransparency = 0.2
  512. closeBtn.Text = "✕"
  513. closeBtn.TextColor3 = CTTheme.Text
  514. closeBtn.TextSize = 20
  515. closeBtn.Font = Enum.Font.GothamBold
  516. closeBtn.AutoButtonColor = false
  517. closeBtn.Parent = header
  518.  
  519. local closeCorner = Instance.new("UICorner")
  520. closeCorner.CornerRadius = UDim.new(0, 8)
  521. closeCorner.Parent = closeBtn
  522.  
  523. local container = Instance.new("Frame")
  524. container.Name = "Container"
  525. container.Size = UDim2.new(1, -20, 1, -60)
  526. container.Position = UDim2.new(0, 10, 0, 55)
  527. container.BackgroundTransparency = 1
  528. container.Parent = _mainFrame
  529.  
  530. local toggleBtn = Instance.new("TextButton")
  531. toggleBtn.Name = "ToggleBtn"
  532. toggleBtn.Size = UDim2.new(1, 0, 0, 55)
  533. toggleBtn.Position = UDim2.new(0, 0, 0, 0)
  534. toggleBtn.BackgroundColor3 = CTTheme.Danger
  535. toggleBtn.BackgroundTransparency = 0.1
  536. toggleBtn.Text = "🔴 DESATIVADO"
  537. toggleBtn.TextColor3 = CTTheme.Text
  538. toggleBtn.TextSize = 16
  539. toggleBtn.Font = Enum.Font.GothamBold
  540. toggleBtn.AutoButtonColor = false
  541. toggleBtn.Parent = container
  542.  
  543. local toggleCorner = Instance.new("UICorner")
  544. toggleCorner.CornerRadius = UDim.new(0, 10)
  545. toggleCorner.Parent = toggleBtn
  546.  
  547. local toggleStroke = Instance.new("UIStroke")
  548. toggleStroke.Name = "Stroke"
  549. toggleStroke.Color = CTTheme.Danger
  550. toggleStroke.Thickness = 2
  551. toggleStroke.Transparency = 0.3
  552. toggleStroke.Parent = toggleBtn
  553.  
  554. local statusLabel = Instance.new("TextLabel")
  555. statusLabel.Name = "StatusLabel"
  556. statusLabel.Size = UDim2.new(1, 0, 0, 25)
  557. statusLabel.Position = UDim2.new(0, 0, 0, 65)
  558. statusLabel.BackgroundTransparency = 1
  559. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  560. statusLabel.TextColor3 = CTTheme.TextDim
  561. statusLabel.TextSize = 12
  562. statusLabel.Font = Enum.Font.Gotham
  563. statusLabel.TextWrapped = true
  564. statusLabel.Parent = container
  565.  
  566. local infoLabel = Instance.new("TextLabel")
  567. infoLabel.Size = UDim2.new(1, 0, 0, 20)
  568. infoLabel.Position = UDim2.new(0, 0, 0, 92)
  569. infoLabel.BackgroundTransparency = 1
  570. infoLabel.Text = "⚡ Teleporte limpo e instantâneo"
  571. infoLabel.TextColor3 = CTTheme.Success
  572. infoLabel.TextSize = 11
  573. infoLabel.Font = Enum.Font.Gotham
  574. infoLabel.Parent = container
  575.  
  576. _minimizedBtn = Instance.new("TextButton")
  577. _minimizedBtn.Name = "MinimizedBtn"
  578. _minimizedBtn.Size = UDim2.new(0, 50, 0, 50)
  579. _minimizedBtn.Position = UDim2.new(1, -60, 0, 10)
  580. _minimizedBtn.BackgroundColor3 = CTTheme.Accent
  581. _minimizedBtn.BackgroundTransparency = 0.1
  582. _minimizedBtn.Text = "🎯"
  583. _minimizedBtn.TextColor3 = CTTheme.Text
  584. _minimizedBtn.TextSize = 24
  585. _minimizedBtn.Font = Enum.Font.GothamBold
  586. _minimizedBtn.AutoButtonColor = false
  587. _minimizedBtn.Visible = false
  588. _minimizedBtn.Active = true
  589. _minimizedBtn.Draggable = true
  590. _minimizedBtn.Parent = _screenGui
  591.  
  592. local minimizedCorner = Instance.new("UICorner")
  593. minimizedCorner.CornerRadius = UDim.new(0, 12)
  594. minimizedCorner.Parent = _minimizedBtn
  595.  
  596. local minimizedStroke = Instance.new("UIStroke")
  597. minimizedStroke.Color = CTTheme.Accent
  598. minimizedStroke.Thickness = 2
  599. minimizedStroke.Parent = _minimizedBtn
  600.  
  601. local minimizedGradient = Instance.new("UIGradient")
  602. minimizedGradient.Color = ColorSequence.new{
  603. ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 180, 255)),
  604. ColorSequenceKeypoint.new(1, Color3.fromRGB(70, 140, 255))
  605. }
  606. minimizedGradient.Rotation = 90
  607. minimizedGradient.Parent = _minimizedBtn
  608.  
  609. toggleBtn.MouseButton1Click:Connect(function()
  610. _enabled = not _enabled
  611.  
  612. if _enabled then
  613. toggleBtn.Text = "🟢 ATIVADO"
  614. toggleBtn.BackgroundColor3 = CTTheme.Success
  615. toggleStroke.Color = CTTheme.Success
  616. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  617. _enableClickDetection()
  618. else
  619. toggleBtn.Text = "🔴 DESATIVADO"
  620. toggleBtn.BackgroundColor3 = CTTheme.Danger
  621. toggleStroke.Color = CTTheme.Danger
  622. statusLabel.Text = "Teleporte desativado"
  623. _disableClickDetection()
  624. end
  625. end)
  626.  
  627. minimizeBtn.MouseButton1Click:Connect(function()
  628. _minimizeUI()
  629. end)
  630.  
  631. _minimizedBtn.MouseButton1Click:Connect(function()
  632. _maximizeUI()
  633. end)
  634.  
  635. closeBtn.MouseButton1Click:Connect(function()
  636. _enabled = false
  637. _disableClickDetection()
  638.  
  639. if _screenGui then
  640. pcall(function() _screenGui:Destroy() end)
  641. _screenGui = nil
  642. _mainFrame = nil
  643. _minimizedBtn = nil
  644. end
  645.  
  646. _uiVisible = false
  647. Config.ClickTeleportEnabled = false
  648.  
  649. redzlib:Notify("🎯 Click Teleport", "Desativado completamente")
  650. end)
  651.  
  652. local function addHoverEffect(button, normalTrans)
  653. button.MouseEnter:Connect(function()
  654. TweenService:Create(button, TweenInfo.new(0.2), {
  655. BackgroundTransparency = 0
  656. }):Play()
  657. end)
  658.  
  659. button.MouseLeave:Connect(function()
  660. TweenService:Create(button, TweenInfo.new(0.2), {
  661. BackgroundTransparency = normalTrans or 0.1
  662. }):Play()
  663. end)
  664. end
  665.  
  666. addHoverEffect(toggleBtn, 0.1)
  667. addHoverEffect(minimizeBtn, 0.2)
  668. addHoverEffect(closeBtn, 0.2)
  669. addHoverEffect(_minimizedBtn, 0.1)
  670.  
  671. _uiVisible = true
  672. end
  673.  
  674. return {
  675. Init = function()
  676. print("✅ Módulo Click Teleport inicializado (Sem efeitos visuais)")
  677. end,
  678.  
  679. Toggle = function(state)
  680. Config.ClickTeleportEnabled = state
  681.  
  682. if state then
  683. if not _uiVisible then
  684. _createUI()
  685.  
  686. redzlib:Notify("🎯 Click Teleport", "Interface aberta!")
  687. end
  688. else
  689. if _screenGui then
  690. _enabled = false
  691. _disableClickDetection()
  692.  
  693. pcall(function() _screenGui:Destroy() end)
  694. _screenGui = nil
  695. _mainFrame = nil
  696. _minimizedBtn = nil
  697. end
  698.  
  699. _uiVisible = false
  700.  
  701. redzlib:Notify("🎯 Click Teleport", "Desativado")
  702. end
  703. end,
  704.  
  705. Cleanup = function()
  706. _enabled = false
  707. _disableClickDetection()
  708.  
  709. if _screenGui then
  710. pcall(function() _screenGui:Destroy() end)
  711. _screenGui = nil
  712. _mainFrame = nil
  713. _minimizedBtn = nil
  714. end
  715.  
  716. _uiVisible = false
  717. print("🧹 Click Teleport limpo")
  718. end,
  719.  
  720. IsEnabled = function()
  721. return Config.ClickTeleportEnabled
  722. end
  723. }
  724. end)()
  725.  
  726. ClickTeleportModule.Init()
  727.  
  728. --// ========== SISTEMA DE NÍVEL DO DINO ========== //
  729.  
  730. local function getDinoLevelSilent()
  731. local now = tick()
  732. if (now - DinoLevelCache.lastUpdate) < DinoLevelCache.updateInterval then
  733. return DinoLevelCache.value
  734. end
  735.  
  736. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  737. if leaderstats then
  738. for _, stat in ipairs(leaderstats:GetChildren()) do
  739. local name = stat.Name:lower()
  740. if name:find("level") or name:find("lvl") or name:find("nivel") then
  741. if stat:IsA("IntValue") or stat:IsA("NumberValue") then
  742. local val = tonumber(stat.Value) or 0
  743. if val > 0 then
  744. DinoLevelCache.value = val
  745. DinoLevelCache.lastUpdate = now
  746. return val
  747. end
  748. end
  749. end
  750. end
  751. end
  752.  
  753. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  754. if playerGui then
  755. for _, gui in ipairs(playerGui:GetDescendants()) do
  756. if gui:IsA("TextLabel") or gui:IsA("TextBox") then
  757. local text = gui.Text:lower()
  758.  
  759. if text:find("level") or text:find("lvl") or text:find("nivel") then
  760. local number = text:match("%d+")
  761. if number then
  762. local val = tonumber(number)
  763. if val and val > 0 and val <= 100 then
  764. DinoLevelCache.value = val
  765. DinoLevelCache.lastUpdate = now
  766. return val
  767. end
  768. end
  769. end
  770. end
  771.  
  772. if gui:IsA("IntValue") or gui:IsA("NumberValue") then
  773. local name = gui.Name:lower()
  774. if name:find("level") or name:find("lvl") or name:find("nivel") then
  775. local val = tonumber(gui.Value) or 0
  776. if val > 0 then
  777. DinoLevelCache.value = val
  778. DinoLevelCache.lastUpdate = now
  779. return val
  780. end
  781. end
  782. end
  783. end
  784. end
  785.  
  786. local char = LocalPlayer.Character
  787. if char then
  788. for _, obj in ipairs(char:GetDescendants()) do
  789. if obj:IsA("IntValue") or obj:IsA("NumberValue") then
  790. local name = obj.Name:lower()
  791. if name:find("level") or name:find("lvl") or name:find("nivel") then
  792. local val = tonumber(obj.Value) or 0
  793. if val > 0 then
  794. DinoLevelCache.value = val
  795. DinoLevelCache.lastUpdate = now
  796. return val
  797. end
  798. end
  799. end
  800. end
  801. end
  802.  
  803. local possibleFolders = {
  804. workspace:FindFirstChild("Dinosaurs"),
  805. workspace:FindFirstChild("Pets"),
  806. workspace:FindFirstChild("NPCs"),
  807. workspace:FindFirstChild("Creatures"),
  808. workspace:FindFirstChild("Animals")
  809. }
  810.  
  811. for _, folder in ipairs(possibleFolders) do
  812. if folder then
  813. for _, dino in ipairs(folder:GetChildren()) do
  814. local owner = dino:FindFirstChild("Owner") or dino:FindFirstChild("Player")
  815.  
  816. if owner and owner:IsA("ObjectValue") and owner.Value == LocalPlayer then
  817. for _, obj in ipairs(dino:GetDescendants()) do
  818. if obj:IsA("IntValue") or obj:IsA("NumberValue") or obj:IsA("StringValue") then
  819. local name = obj.Name:lower()
  820. if name:find("level") or name:find("lvl") or name:find("nivel") then
  821. local val = tonumber(obj.Value) or 0
  822. if val > 0 then
  823. DinoLevelCache.value = val
  824. DinoLevelCache.lastUpdate = now
  825. return val
  826. end
  827. end
  828. end
  829. end
  830. end
  831. end
  832. end
  833. end
  834.  
  835. DinoLevelCache.lastUpdate = now
  836. return DinoLevelCache.value
  837. end
  838.  
  839. local function debugPrintAllValues(parent, prefix)
  840. prefix = prefix or ""
  841.  
  842. for _, child in ipairs(parent:GetChildren()) do
  843. if child:IsA("IntValue") or child:IsA("NumberValue") or child:IsA("StringValue") then
  844. print(prefix .. "├─ " .. child.ClassName .. ": " .. child.Name .. " = " .. tostring(child.Value))
  845. end
  846.  
  847. if #child:GetChildren() > 0 then
  848. print(prefix .. "└─ Folder: " .. child.Name)
  849. debugPrintAllValues(child, prefix .. " ")
  850. end
  851. end
  852. end
  853.  
  854. local function getDinoLevelDebug()
  855. print("\n╔════════════════════════════════════════╗")
  856. print("║ INICIANDO BUSCA DE NÍVEL DO DINO ║")
  857. print("╚════════════════════════════════════════╝")
  858.  
  859. print("\n[1] Verificando leaderstats...")
  860. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  861. if leaderstats then
  862. print("✓ leaderstats encontrado!")
  863. debugPrintAllValues(leaderstats, " ")
  864.  
  865. for _, stat in ipairs(leaderstats:GetChildren()) do
  866. local name = stat.Name:lower()
  867. if name:find("level") or name:find("lvl") or name:find("nivel") then
  868. if stat:IsA("IntValue") or stat:IsA("NumberValue") then
  869. local val = tonumber(stat.Value) or 0
  870. print("✓✓✓ NÍVEL ENCONTRADO em leaderstats." .. stat.Name .. ": " .. val)
  871. return val
  872. end
  873. end
  874. end
  875. else
  876. print("✗ leaderstats não encontrado")
  877. end
  878.  
  879. print("\n[2] Verificando PlayerGui...")
  880. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  881. if playerGui then
  882. print("✓ PlayerGui encontrado!")
  883.  
  884. for _, gui in ipairs(playerGui:GetDescendants()) do
  885. if gui:IsA("TextLabel") or gui:IsA("TextBox") then
  886. local text = gui.Text:lower()
  887.  
  888. if text:find("level") or text:find("lvl") or text:find("nivel") then
  889. print(" └─ Texto encontrado: " .. gui.Text)
  890.  
  891. local number = text:match("%d+")
  892. if number then
  893. local val = tonumber(number)
  894. if val and val > 0 and val <= 100 then
  895. print("✓✓✓ NÍVEL ENCONTRADO em GUI: " .. val)
  896. return val
  897. end
  898. end
  899. end
  900. end
  901. end
  902. print("✗ Nível não encontrado no PlayerGui")
  903. end
  904.  
  905. print("\n╔════════════════════════════════════════╗")
  906. print("║ ✗ NÍVEL NÃO ENCONTRADO ║")
  907. print("╚════════════════════════════════════════╝\n")
  908.  
  909. return 0
  910. end
  911.  
  912. --// ========== SISTEMA DE CRISTAIS ========== //
  913.  
  914. local prioridadeMap = { legendary = 1, epic = 2, rare = 3, crystal = 4 }
  915.  
  916. local function getCrystalRank(name)
  917. name = name:lower()
  918. for key, rank in pairs(prioridadeMap) do
  919. if name:find(key) then return rank end
  920. end
  921. return 5
  922. end
  923.  
  924. local function getSortedCrystals()
  925. local found = {}
  926. for _, obj in ipairs(workspace:GetDescendants()) do
  927. if obj:IsA("BasePart") and obj.Parent and obj.Parent:IsA("Model") then
  928. local rank = getCrystalRank(obj.Parent.Name)
  929. if rank < 5 then
  930. table.insert(found, {part = obj, rank = rank})
  931. end
  932. end
  933. end
  934. table.sort(found, function(a, b) return a.rank < b.rank end)
  935. local parts = {}
  936. for _, entry in ipairs(found) do
  937. table.insert(parts, entry.part)
  938. end
  939. return parts
  940. end
  941.  
  942. --// ========== SISTEMA ESP DE CARNES ========== //
  943.  
  944. local ActiveMeatESPs = {}
  945. local meatUpdateLoop = nil
  946. local meatScanLoop = nil
  947.  
  948. local function isMeatObject(obj)
  949. if not obj then return false, nil end
  950.  
  951. if obj:IsA("ProximityPrompt") and obj.Enabled then
  952. local action = (obj.ActionText or ""):lower()
  953. local objText = (obj.ObjectText or ""):lower()
  954.  
  955. local foodActions = {"coma", "eat", "pegar", "pick", "grab", "take"}
  956.  
  957. for _, foodAction in ipairs(foodActions) do
  958. if action:find(foodAction) then
  959. local fullText = action .. " " .. objText
  960. local excludeWords = {"plant", "fish", "berry", "fruit", "vegetable", "seed"}
  961.  
  962. local isExcluded = false
  963. for _, word in ipairs(excludeWords) do
  964. if fullText:find(word) then
  965. isExcluded = true
  966. break
  967. end
  968. end
  969.  
  970. if not isExcluded then
  971. local parent = obj.Parent
  972. if parent and parent:IsA("BasePart") then
  973. for _, player in ipairs(Players:GetPlayers()) do
  974. if player.Character and parent:IsDescendantOf(player.Character) then
  975. return false, nil
  976. end
  977. end
  978. return true, parent
  979. end
  980. end
  981. end
  982. end
  983. end
  984.  
  985. if obj:IsA("Model") or obj:IsA("BasePart") then
  986. local name = (obj.Name or ""):lower()
  987.  
  988. local meatWords = {
  989. "meat", "carne", "beef", "steak", "chicken",
  990. "frango", "pork", "porco", "bacon", "ham"
  991. }
  992.  
  993. for _, word in ipairs(meatWords) do
  994. if name:find(word) then
  995. for _, player in ipairs(Players:GetPlayers()) do
  996. if player.Character and obj:IsDescendantOf(player.Character) then
  997. return false, nil
  998. end
  999. end
  1000.  
  1001. if obj:IsA("Model") then
  1002. local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
  1003. return part ~= nil, part
  1004. else
  1005. return true, obj
  1006. end
  1007. end
  1008. end
  1009. end
  1010.  
  1011. return false, nil
  1012. end
  1013.  
  1014. local function findNearestMeat()
  1015. local char = LocalPlayer.Character
  1016. local root = char and char:FindFirstChild("HumanoidRootPart")
  1017. if not root then return nil, math.huge end
  1018.  
  1019. local nearestMeat = nil
  1020. local nearestDistance = math.huge
  1021.  
  1022. for _, obj in ipairs(workspace:GetDescendants()) do
  1023. local isMeat, part = isMeatObject(obj)
  1024. if isMeat and part and part.Parent then
  1025. local distance = (part.Position - root.Position).Magnitude
  1026. if distance < nearestDistance then
  1027. nearestDistance = distance
  1028. nearestMeat = part
  1029. end
  1030. end
  1031. end
  1032.  
  1033. return nearestMeat, nearestDistance
  1034. end
  1035.  
  1036. local function createMeatESP(part)
  1037. if not part or not part:IsA("BasePart") or not part.Parent then return end
  1038.  
  1039. local id = tostring(part:GetDebugId())
  1040. if ActiveMeatESPs[id] then return end
  1041.  
  1042. local esp = Instance.new("BillboardGui")
  1043. esp.Name = "MeatESP_" .. id
  1044. esp.Adornee = part
  1045. esp.Size = UDim2.new(0, Config.ESP_MAX_SIZE, 0, Config.ESP_MAX_SIZE * 0.4)
  1046. esp.StudsOffset = Vector3.new(0, 3, 0)
  1047. esp.AlwaysOnTop = true
  1048. esp.LightInfluence = 0
  1049. esp.MaxDistance = Config.MAX_VISIBLE_DISTANCE
  1050. esp.Parent = workspace
  1051. esp.Enabled = true
  1052.  
  1053. local frame = Instance.new("Frame", esp)
  1054. frame.Size = UDim2.new(1, 0, 1, 0)
  1055. frame.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
  1056. frame.BackgroundTransparency = 0.4
  1057. frame.BorderSizePixel = 1
  1058. frame.BorderColor3 = Color3.fromRGB(255, 200, 0)
  1059.  
  1060. local corner = Instance.new("UICorner", frame)
  1061. corner.CornerRadius = UDim.new(0, 6)
  1062.  
  1063. local iconLabel = Instance.new("TextLabel", frame)
  1064. iconLabel.Size = UDim2.new(0.3, 0, 0.9, 0)
  1065. iconLabel.Position = UDim2.new(0, 2, 0.05, 0)
  1066. iconLabel.BackgroundTransparency = 1
  1067. iconLabel.Text = "🥩"
  1068. iconLabel.TextScaled = true
  1069. iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1070. iconLabel.Font = Enum.Font.SourceSansBold
  1071. iconLabel.TextStrokeTransparency = 0.5
  1072.  
  1073. local distLabel = Instance.new("TextLabel", frame)
  1074. distLabel.Name = "Distance"
  1075. distLabel.Size = UDim2.new(0.7, -4, 0.9, 0)
  1076. distLabel.Position = UDim2.new(0.3, 2, 0.05, 0)
  1077. distLabel.BackgroundTransparency = 1
  1078. distLabel.Text = "0m"
  1079. distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1080. distLabel.TextStrokeTransparency = 0.3
  1081. distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
  1082. distLabel.Font = Enum.Font.GothamBold
  1083. distLabel.TextScaled = true
  1084.  
  1085. ActiveMeatESPs[id] = {
  1086. gui = esp,
  1087. part = part,
  1088. distLabel = distLabel,
  1089. frame = frame,
  1090. iconLabel = iconLabel
  1091. }
  1092.  
  1093. return true
  1094. end
  1095.  
  1096. local function scanForMeats()
  1097. if not Config.EspMeatActive then return end
  1098.  
  1099. for id, data in pairs(ActiveMeatESPs) do
  1100. if data.gui then
  1101. pcall(function() data.gui:Destroy() end)
  1102. end
  1103. end
  1104. ActiveMeatESPs = {}
  1105.  
  1106. local meatCount = 0
  1107. local checkedCount = 0
  1108.  
  1109. for _, obj in ipairs(workspace:GetDescendants()) do
  1110. checkedCount = checkedCount + 1
  1111.  
  1112. if checkedCount % 300 == 0 then
  1113. task.wait()
  1114. if not Config.EspMeatActive then return end
  1115. end
  1116.  
  1117. local isMeat, part = isMeatObject(obj)
  1118. if isMeat and part and part.Parent then
  1119. if createMeatESP(part) then
  1120. meatCount = meatCount + 1
  1121. end
  1122. end
  1123. end
  1124. end
  1125.  
  1126. local function updateMeatESPInfo()
  1127. if not Config.EspMeatActive then return end
  1128.  
  1129. local char = LocalPlayer.Character
  1130. local root = char and char:FindFirstChild("HumanoidRootPart")
  1131. if not root then return end
  1132.  
  1133. for id, data in pairs(ActiveMeatESPs) do
  1134. if data.part and data.part.Parent and data.gui and data.gui.Parent then
  1135. local distance = (data.part.Position - root.Position).Magnitude
  1136.  
  1137. data.gui.Enabled = true
  1138.  
  1139. if data.distLabel then
  1140. if distance < 100 then
  1141. data.distLabel.Text = string.format("%.0fm", distance)
  1142. elseif distance < 1000 then
  1143. data.distLabel.Text = string.format("%.0fm", distance)
  1144. else
  1145. data.distLabel.Text = string.format("%.1fkm", distance / 1000)
  1146. end
  1147. end
  1148.  
  1149. local scaleFactor
  1150. if distance <= 50 then scaleFactor = 1.0
  1151. elseif distance <= 200 then scaleFactor = 0.75
  1152. elseif distance <= 500 then scaleFactor = 0.6
  1153. elseif distance <= 1000 then scaleFactor = 0.5
  1154. elseif distance <= 2000 then scaleFactor = 0.4
  1155. elseif distance <= 3000 then scaleFactor = 0.35
  1156. elseif distance <= 5000 then scaleFactor = 0.3
  1157. elseif distance <= 10000 then scaleFactor = 0.25
  1158. else scaleFactor = 0.2 end
  1159.  
  1160. local newSize = Config.ESP_MIN_SIZE + ((Config.ESP_MAX_SIZE - Config.ESP_MIN_SIZE) * scaleFactor)
  1161. data.gui.Size = UDim2.new(0, newSize, 0, newSize * 0.4)
  1162.  
  1163. if data.frame then
  1164. local transparency
  1165. if distance < 300 then transparency = 0.3
  1166. elseif distance < 1000 then transparency = 0.5
  1167. elseif distance < 2500 then transparency = 0.65
  1168. elseif distance < 5000 then transparency = 0.75
  1169. elseif distance < 10000 then transparency = 0.8
  1170. else transparency = 0.85 end
  1171. data.frame.BackgroundTransparency = transparency
  1172. end
  1173.  
  1174. if distance < 100 then
  1175. data.frame.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
  1176. data.frame.BorderColor3 = Color3.fromRGB(200, 255, 200)
  1177. elseif distance < 500 then
  1178. data.frame.BackgroundColor3 = Color3.fromRGB(255, 255, 100)
  1179. data.frame.BorderColor3 = Color3.fromRGB(255, 255, 150)
  1180. elseif distance < 1500 then
  1181. data.frame.BackgroundColor3 = Color3.fromRGB(255, 180, 100)
  1182. data.frame.BorderColor3 = Color3.fromRGB(255, 200, 150)
  1183. elseif distance < 3000 then
  1184. data.frame.BackgroundColor3 = Color3.fromRGB(255, 120, 120)
  1185. data.frame.BorderColor3 = Color3.fromRGB(255, 150, 150)
  1186. elseif distance < 5000 then
  1187. data.frame.BackgroundColor3 = Color3.fromRGB(200, 150, 255)
  1188. data.frame.BorderColor3 = Color3.fromRGB(220, 180, 255)
  1189. elseif distance < 10000 then
  1190. data.frame.BackgroundColor3 = Color3.fromRGB(180, 180, 255)
  1191. data.frame.BorderColor3 = Color3.fromRGB(200, 200, 255)
  1192. else
  1193. data.frame.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
  1194. data.frame.BorderColor3 = Color3.fromRGB(180, 180, 180)
  1195. end
  1196. else
  1197. if data.gui then
  1198. pcall(function() data.gui:Destroy() end)
  1199. end
  1200. ActiveMeatESPs[id] = nil
  1201. end
  1202. end
  1203. end
  1204.  
  1205. local function startMeatESP()
  1206. if meatUpdateLoop then return end
  1207.  
  1208. scanForMeats()
  1209.  
  1210. meatUpdateLoop = RunService.Heartbeat:Connect(function()
  1211. updateMeatESPInfo()
  1212. end)
  1213.  
  1214. meatScanLoop = task.spawn(function()
  1215. while Config.EspMeatActive do
  1216. task.wait(10)
  1217. if Config.EspMeatActive then
  1218. for _, obj in ipairs(workspace:GetDescendants()) do
  1219. if not Config.EspMeatActive then break end
  1220.  
  1221. local isMeat, part = isMeatObject(obj)
  1222. if isMeat and part then
  1223. local id = tostring(part:GetDebugId())
  1224. if not ActiveMeatESPs[id] then
  1225. createMeatESP(part)
  1226. end
  1227. end
  1228. end
  1229.  
  1230. for id, data in pairs(ActiveMeatESPs) do
  1231. if not data.part or not data.part.Parent then
  1232. if data.gui then
  1233. pcall(function() data.gui:Destroy() end)
  1234. end
  1235. ActiveMeatESPs[id] = nil
  1236. end
  1237. end
  1238. end
  1239. end
  1240. end)
  1241.  
  1242. workspace.DescendantAdded:Connect(function(obj)
  1243. if not Config.EspMeatActive then return end
  1244.  
  1245. task.wait(0.1)
  1246. local isMeat, part = isMeatObject(obj)
  1247. if isMeat and part then
  1248. local id = tostring(part:GetDebugId())
  1249. if not ActiveMeatESPs[id] then
  1250. createMeatESP(part)
  1251. end
  1252. end
  1253. end)
  1254. end
  1255.  
  1256. local function stopMeatESP()
  1257. if meatUpdateLoop then
  1258. meatUpdateLoop:Disconnect()
  1259. meatUpdateLoop = nil
  1260. end
  1261.  
  1262. if meatScanLoop then
  1263. task.cancel(meatScanLoop)
  1264. meatScanLoop = nil
  1265. end
  1266.  
  1267. for id, data in pairs(ActiveMeatESPs) do
  1268. if data.gui then
  1269. pcall(function() data.gui:Destroy() end)
  1270. end
  1271. end
  1272. ActiveMeatESPs = {}
  1273. end
  1274.  
  1275. --// ========== SISTEMA ESP DE JOGADORES ========== //
  1276.  
  1277. local PlayerESP_Data = {}
  1278. local PlayerESP_UpdateLoop = nil
  1279. local PlayerESP_ProcessQueue = {}
  1280.  
  1281. local ESP_CONFIG = {
  1282. UpdateInterval = 0.5,
  1283. HPBarMaxDistance = 4000,
  1284. HPBarSize = UDim2.new(0, 50, 0, 5),
  1285. HPBarYOffset = 0.5,
  1286. HighlightFillTransparency = 0.85,
  1287. OutlineTransparency = 0.15,
  1288. MaxPlayersPerFrame = 2,
  1289. }
  1290.  
  1291. local COLOR_ENEMY = Color3.fromRGB(255, 85, 85)
  1292. local COLOR_FRIEND = Color3.fromRGB(85, 255, 85)
  1293. local COLOR_NEUTRAL = Color3.fromRGB(240, 240, 240)
  1294.  
  1295. local TeamColorMap = {}
  1296. local UsedHues = {}
  1297. local NextHueIndex = 0
  1298.  
  1299. local function generateUniqueTeamColor()
  1300. local goldenRatio = 0.618033988749895
  1301. local hue = (NextHueIndex * goldenRatio) % 1
  1302.  
  1303. if hue >= 0.25 and hue <= 0.45 then
  1304. hue = (hue + 0.35) % 1
  1305. end
  1306.  
  1307. local minDistance = 0.15
  1308. for _, usedHue in pairs(UsedHues) do
  1309. local distance = math.abs(hue - usedHue)
  1310. if distance < minDistance or distance > (1 - minDistance) then
  1311. NextHueIndex = NextHueIndex + 1
  1312. return generateUniqueTeamColor()
  1313. end
  1314. end
  1315.  
  1316. table.insert(UsedHues, hue)
  1317. NextHueIndex = NextHueIndex + 1
  1318.  
  1319. local sat = 0.8 + (math.random() * 0.2)
  1320. local val = 0.9 + (math.random() * 0.1)
  1321.  
  1322. return Color3.fromHSV(hue, sat, val)
  1323. end
  1324.  
  1325. local function isNeutralPlayer(p)
  1326. return p.Team == nil
  1327. end
  1328.  
  1329. local function isAllyPlayer(p)
  1330. return LocalPlayer.Team and p.Team == LocalPlayer.Team
  1331. end
  1332.  
  1333. local function colorForPlayer(p)
  1334. if isNeutralPlayer(p) then
  1335. return COLOR_NEUTRAL
  1336. end
  1337.  
  1338. if isAllyPlayer(p) then
  1339. return COLOR_FRIEND
  1340. end
  1341.  
  1342. if p.Team and not TeamColorMap[p.Team] then
  1343. TeamColorMap[p.Team] = generateUniqueTeamColor()
  1344. end
  1345.  
  1346. return TeamColorMap[p.Team] or COLOR_ENEMY
  1347. end
  1348.  
  1349. local function shouldShowPlayerESP(p)
  1350. if not Config.PlayerESP then return false end
  1351. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1352. return true
  1353. end
  1354.  
  1355. local function shouldShowPlayerHP(p)
  1356. if not Config.PlayerESP_ShowHP then return false end
  1357. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1358. return true
  1359. end
  1360.  
  1361. local function isValidPlayerCharacter(char)
  1362. if not char or not char.Parent then return false end
  1363. return char:FindFirstChild("Humanoid") and char:FindFirstChild("HumanoidRootPart")
  1364. end
  1365.  
  1366. local function clearPlayerConns(pack)
  1367. if not pack or not pack.conns then return end
  1368. for _, c in ipairs(pack.conns) do
  1369. if c and c.Connected then
  1370. pcall(function() c:Disconnect() end)
  1371. end
  1372. end
  1373. pack.conns = {}
  1374. end
  1375.  
  1376. local function detachPlayerESP(plr)
  1377. local pack = PlayerESP_Data[plr]
  1378. if not pack then return end
  1379.  
  1380. clearPlayerConns(pack)
  1381.  
  1382. if pack.highlight then
  1383. pcall(function() pack.highlight:Destroy() end)
  1384. pack.highlight = nil
  1385. end
  1386.  
  1387. if pack.hpGui then
  1388. pcall(function() pack.hpGui:Destroy() end)
  1389. pack.hpGui = nil
  1390. end
  1391.  
  1392. PlayerESP_Data[plr] = nil
  1393. end
  1394.  
  1395. local function ensurePlayerHighlight(plr, char)
  1396. local pack = PlayerESP_Data[plr]
  1397. if not pack or not isValidPlayerCharacter(char) then return end
  1398.  
  1399. if not pack.highlight or not pack.highlight.Parent then
  1400. for _, obj in ipairs(char:GetChildren()) do
  1401. if obj:IsA("Highlight") and obj.Name == "PlayerESP_Highlight" then
  1402. pcall(function() obj:Destroy() end)
  1403. end
  1404. end
  1405.  
  1406. local hi = Instance.new("Highlight")
  1407. hi.Name = "PlayerESP_Highlight"
  1408. hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
  1409. hi.FillTransparency = ESP_CONFIG.HighlightFillTransparency
  1410. hi.OutlineTransparency = ESP_CONFIG.OutlineTransparency
  1411. hi.Adornee = char
  1412. hi.Parent = char
  1413. pack.highlight = hi
  1414. end
  1415.  
  1416. local col = colorForPlayer(plr)
  1417. pack.highlight.FillColor = col
  1418. pack.highlight.OutlineColor = col
  1419. pack.highlight.Adornee = char
  1420. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  1421. end
  1422.  
  1423. local function ensurePlayerHPGui(plr, char)
  1424. local pack = PlayerESP_Data[plr]
  1425. if not pack or not isValidPlayerCharacter(char) then return end
  1426.  
  1427. local hum = char:FindFirstChildOfClass("Humanoid")
  1428. local head = char:FindFirstChild("Head")
  1429. local root = char:FindFirstChild("HumanoidRootPart")
  1430.  
  1431. if not hum or not root then
  1432. if pack.hpGui then
  1433. pack.hpGui.Enabled = false
  1434. end
  1435. return
  1436. end
  1437.  
  1438. pack.hum = hum
  1439. pack.head = head
  1440. pack.root = root
  1441.  
  1442. if not pack.hpGui or not pack.hpGui.Parent then
  1443. for _, obj in ipairs(char:GetChildren()) do
  1444. if obj:IsA("BillboardGui") and obj.Name == "PlayerESP_HP" then
  1445. pcall(function() obj:Destroy() end)
  1446. end
  1447. end
  1448.  
  1449. local bill = Instance.new("BillboardGui")
  1450. bill.Name = "PlayerESP_HP"
  1451. bill.AlwaysOnTop = true
  1452. bill.LightInfluence = 0
  1453. bill.Size = ESP_CONFIG.HPBarSize
  1454. bill.MaxDistance = ESP_CONFIG.HPBarMaxDistance
  1455. bill.Parent = char
  1456.  
  1457. local bg = Instance.new("Frame")
  1458. bg.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
  1459. bg.BackgroundTransparency = 0.2
  1460. bg.BorderSizePixel = 0
  1461. bg.Size = UDim2.fromScale(1, 1)
  1462. bg.Parent = bill
  1463.  
  1464. local stroke = Instance.new("UIStroke")
  1465. stroke.Color = Color3.fromRGB(0, 0, 0)
  1466. stroke.Thickness = 1.5
  1467. stroke.Parent = bg
  1468.  
  1469. local corner1 = Instance.new("UICorner")
  1470. corner1.CornerRadius = UDim.new(0, 2)
  1471. corner1.Parent = bg
  1472.  
  1473. local fill = Instance.new("Frame")
  1474. fill.BackgroundColor3 = COLOR_FRIEND
  1475. fill.BorderSizePixel = 0
  1476. fill.Size = UDim2.fromScale(1, 1)
  1477. fill.Parent = bg
  1478.  
  1479. local corner2 = Instance.new("UICorner")
  1480. corner2.CornerRadius = UDim.new(0, 2)
  1481. corner2.Parent = fill
  1482.  
  1483. pack.hpGui = bill
  1484. pack.hpFill = fill
  1485. end
  1486.  
  1487. if head then
  1488. pack.hpGui.Adornee = head
  1489. local headSize = head.Size.Y
  1490. pack.hpGui.StudsOffset = Vector3.new(0, headSize/2 + ESP_CONFIG.HPBarYOffset, 0)
  1491. else
  1492. pack.hpGui.Adornee = root
  1493. pack.hpGui.StudsOffset = Vector3.new(0, 2.5 + ESP_CONFIG.HPBarYOffset, 0)
  1494. end
  1495.  
  1496. pack.hpGui.Enabled = shouldShowPlayerHP(plr)
  1497. end
  1498.  
  1499. local function updatePlayerHPBar(plr)
  1500. local pack = PlayerESP_Data[plr]
  1501. if not pack or not pack.hpGui or not pack.hpFill or not pack.hum then return end
  1502.  
  1503. local h = pack.hum.Health
  1504. local m = pack.hum.MaxHealth
  1505. if m <= 0 then m = 100 end
  1506.  
  1507. local ratio = math.clamp(h / m, 0, 1)
  1508. pack.hpFill.Size = UDim2.new(ratio, 0, 1, 0)
  1509.  
  1510. local r, g, b
  1511. if ratio > 0.5 then
  1512. r = (1 - ratio) * 2 * 255
  1513. g = 255
  1514. b = 0
  1515. else
  1516. r = 255
  1517. g = ratio * 2 * 255
  1518. b = 0
  1519. end
  1520.  
  1521. pack.hpFill.BackgroundColor3 = Color3.fromRGB(r, g, b)
  1522. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and (h > 0)
  1523. end
  1524.  
  1525. local function setupPlayerESP(plr, char)
  1526. if plr == LocalPlayer or not isValidPlayerCharacter(char) then return end
  1527.  
  1528. local pack = PlayerESP_Data[plr] or { conns = {} }
  1529. PlayerESP_Data[plr] = pack
  1530.  
  1531. if pack.char and pack.char ~= char then
  1532. clearPlayerConns(pack)
  1533. if pack.highlight then pcall(function() pack.highlight:Destroy() end) end
  1534. if pack.hpGui then pcall(function() pack.hpGui:Destroy() end) end
  1535. pack.char = nil
  1536. pack.highlight = nil
  1537. pack.hpGui = nil
  1538. pack.hpFill = nil
  1539. pack.hum = nil
  1540. pack.head = nil
  1541. end
  1542.  
  1543. pack.char = char
  1544. local hum = char:FindFirstChildOfClass("Humanoid")
  1545.  
  1546. if not hum then return end
  1547.  
  1548. pack.hum = hum
  1549. hum.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff
  1550.  
  1551. task.wait(0.1)
  1552. ensurePlayerHighlight(plr, char)
  1553. ensurePlayerHPGui(plr, char)
  1554. updatePlayerHPBar(plr)
  1555.  
  1556. table.insert(pack.conns, hum.HealthChanged:Connect(function()
  1557. updatePlayerHPBar(plr)
  1558. end))
  1559.  
  1560. table.insert(pack.conns, plr:GetPropertyChangedSignal("Team"):Connect(function()
  1561. task.spawn(function()
  1562. ensurePlayerHighlight(plr, char)
  1563. updatePlayerHPBar(plr)
  1564. end)
  1565. end))
  1566.  
  1567. pack.initialized = true
  1568. end
  1569.  
  1570. local function hookPlayerESP(plr)
  1571. if plr == LocalPlayer then return end
  1572. table.insert(PlayerESP_ProcessQueue, plr)
  1573. end
  1574.  
  1575. local function reinitializeAllPlayerESP()
  1576. for plr, _ in pairs(PlayerESP_Data) do
  1577. detachPlayerESP(plr)
  1578. end
  1579.  
  1580. PlayerESP_ProcessQueue = {}
  1581.  
  1582. task.wait(0.1)
  1583.  
  1584. for _, p in ipairs(Players:GetPlayers()) do
  1585. if p ~= LocalPlayer then
  1586. hookPlayerESP(p)
  1587. end
  1588. end
  1589. end
  1590.  
  1591. task.spawn(function()
  1592. while true do
  1593. task.wait(0.2)
  1594.  
  1595. if #PlayerESP_ProcessQueue > 0 and Config.PlayerESP then
  1596. local plr = table.remove(PlayerESP_ProcessQueue, 1)
  1597.  
  1598. if plr and plr.Parent then
  1599. detachPlayerESP(plr)
  1600. PlayerESP_Data[plr] = { conns = {} }
  1601.  
  1602. if plr.Character then
  1603. task.spawn(function()
  1604. setupPlayerESP(plr, plr.Character)
  1605. end)
  1606. end
  1607.  
  1608. table.insert(PlayerESP_Data[plr].conns, plr.CharacterAdded:Connect(function(char)
  1609. task.wait(0.5)
  1610. setupPlayerESP(plr, char)
  1611. end))
  1612.  
  1613. table.insert(PlayerESP_Data[plr].conns, plr.CharacterRemoving:Connect(function()
  1614. local pack = PlayerESP_Data[plr]
  1615. if pack then
  1616. if pack.hpGui then
  1617. pcall(function() pack.hpGui:Destroy() end)
  1618. pack.hpGui = nil
  1619. end
  1620. if pack.highlight then
  1621. pcall(function() pack.highlight:Destroy() end)
  1622. pack.highlight = nil
  1623. end
  1624. pack.hum = nil
  1625. pack.head = nil
  1626. pack.initialized = false
  1627. end
  1628. end))
  1629. end
  1630. end
  1631. end
  1632. end)
  1633.  
  1634. task.spawn(function()
  1635. task.wait(2)
  1636. Players.PlayerAdded:Connect(function(p)
  1637. task.wait(0.5)
  1638. hookPlayerESP(p)
  1639. end)
  1640.  
  1641. Players.PlayerRemoving:Connect(function(p)
  1642. detachPlayerESP(p)
  1643. end)
  1644. end)
  1645.  
  1646. task.spawn(function()
  1647. while true do
  1648. task.wait(ESP_CONFIG.UpdateInterval)
  1649.  
  1650. if not Config.PlayerESP then
  1651. task.wait(1)
  1652. continue
  1653. end
  1654.  
  1655. local processed = 0
  1656. for plr, pack in pairs(PlayerESP_Data) do
  1657. if processed >= ESP_CONFIG.MaxPlayersPerFrame then
  1658. task.wait()
  1659. processed = 0
  1660. end
  1661.  
  1662. if plr and plr.Parent and plr ~= LocalPlayer then
  1663. local char = plr.Character
  1664. if char and isValidPlayerCharacter(char) then
  1665. if not pack.initialized or pack.char ~= char then
  1666. setupPlayerESP(plr, char)
  1667. else
  1668. if not pack.highlight or not pack.highlight.Parent then
  1669. ensurePlayerHighlight(plr, char)
  1670. end
  1671. if not pack.hpGui or not pack.hpGui.Parent then
  1672. ensurePlayerHPGui(plr, char)
  1673. end
  1674. if pack.highlight then
  1675. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  1676. end
  1677. if pack.hpGui then
  1678. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
  1679. end
  1680. updatePlayerHPBar(plr)
  1681. end
  1682. end
  1683. end
  1684. processed = processed + 1
  1685. end
  1686. end
  1687. end)
  1688.  
  1689. --// ========== SISTEMA DE TELEPORTS SALVOS ========== //
  1690.  
  1691. local function loadSavedTeleports()
  1692. local success, data = pcall(function()
  1693. return game:GetService("HttpService"):JSONDecode(readfile("PreHistoria_Teleports.json"))
  1694. end)
  1695.  
  1696. if success and data then
  1697. Config.SavedTeleports = data
  1698. print("📍 Carregado " .. #data .. " teleports salvos")
  1699. else
  1700. Config.SavedTeleports = {}
  1701. print("📍 Nenhum teleport salvo encontrado")
  1702. end
  1703. end
  1704.  
  1705. loadSavedTeleports()
  1706.  
  1707. --// ========== CRIAR TABS ========== //
  1708.  
  1709. local TabMenu = Window:MakeTab({"🏠 Menu", "home"})
  1710. local TabAutoFarm = Window:MakeTab({"⚡ Auto Farm", "zap"})
  1711. local TabESP = Window:MakeTab({"👁️ ESP", "eye"})
  1712. local TabTeleport = Window:MakeTab({"🚀 Teleport", "map-pin"})
  1713. local TabOutros = Window:MakeTab({"⚙️ Outros", "settings"})
  1714.  
  1715. --// ========== TAB MENU ========== //
  1716.  
  1717. local SectionInfo = TabMenu:AddSection({"📊 Informações"})
  1718.  
  1719. local PlayersCountLabel = TabMenu:AddLabel("👥 Players Online: 0/0")
  1720.  
  1721. local function updatePlayerCount()
  1722. local current = #Players:GetPlayers()
  1723. local max = Players.MaxPlayers
  1724. PlayersCountLabel:Set(string.format("👥 Players Online: %d/%d", current, max))
  1725. end
  1726.  
  1727. updatePlayerCount()
  1728.  
  1729. Players.PlayerAdded:Connect(function()
  1730. task.wait(0.1)
  1731. updatePlayerCount()
  1732. end)
  1733.  
  1734. Players.PlayerRemoving:Connect(function()
  1735. task.wait(0.1)
  1736. updatePlayerCount()
  1737. end)
  1738.  
  1739. task.spawn(function()
  1740. while true do
  1741. task.wait(2)
  1742. updatePlayerCount()
  1743. end
  1744. end)
  1745.  
  1746. TabMenu:AddParagraph({
  1747. "📜 Script Info",
  1748. "Versão: " .. ScriptVersion .. "\nStatus: ✅ Operacional"
  1749. })
  1750.  
  1751. TabMenu:AddParagraph({
  1752. "👤 Jogador",
  1753. "Nome: " .. LocalPlayer.Name .. "\nDisplay: " .. LocalPlayer.DisplayName .. "\nID: " .. LocalPlayer.UserId
  1754. })
  1755.  
  1756. local SectionSystems = TabMenu:AddSection({"⚡ Sistemas Ativos"})
  1757.  
  1758. local AutoFarmStatusLabel = TabMenu:AddLabel("💎 Auto Farm - Desligado")
  1759. local EspCarnesStatusLabel = TabMenu:AddLabel("🥩 ESP Carnes - Desligado")
  1760. local EspJogadoresStatusLabel = TabMenu:AddLabel("👥 ESP Jogadores - Desligado")
  1761. local AutoColetaStatusLabel = TabMenu:AddLabel("🔄 Auto Colet - Desligado")
  1762. local ClickTeleportStatusLabel = TabMenu:AddLabel("🎯 Click Teleport - Desligado")
  1763.  
  1764. local SectionCredits = TabMenu:AddSection({"👨‍💻 Créditos"})
  1765.  
  1766. TabMenu:AddParagraph({
  1767. "Desenvolvedor",
  1768. "Script: NickZScripts\nInterface: Redzlib v5\nVersão: " .. ScriptVersion
  1769. })
  1770.  
  1771. --// ========== TAB AUTO FARM ========== //
  1772.  
  1773. local SectionFarm = TabAutoFarm:AddSection({"💎 Farm de Cristais"})
  1774.  
  1775. local DinoLevelLabel = TabAutoFarm:AddLabel("🦖 Nível do Dino: 0/60")
  1776.  
  1777. task.spawn(function()
  1778. while true do
  1779. task.wait(2)
  1780. local level = getDinoLevelSilent()
  1781. DinoLevelLabel:Set(string.format("🦖 Nível do Dino: %d/60", level))
  1782. end
  1783. end)
  1784.  
  1785. TabAutoFarm:AddToggle({
  1786. Name = "Auto Farm Cristais",
  1787. Description = "Farma cristais automaticamente",
  1788. Default = false,
  1789. Flag = "AutoFarmToggle",
  1790. Callback = function(Value)
  1791. Config.AutoFarm = Value
  1792.  
  1793. if Value then
  1794. AutoFarmStatusLabel:Set("💎 Auto Farm - Ligado")
  1795. else
  1796. AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
  1797. end
  1798.  
  1799. redzlib:Notify(Value and "✅ Ativado" or "❌ Desativado", "Auto Farm " .. (Value and "ligado" or "desligado"))
  1800. end,
  1801. })
  1802.  
  1803. local SectionColeta = TabAutoFarm:AddSection({"🔄 Auto Colet"})
  1804.  
  1805. TabAutoFarm:AddToggle({
  1806. Name = "Auto Colet",
  1807. Description = "Coleta itens automaticamente (raio 25 studs)",
  1808. Default = false,
  1809. Flag = "AutoColetToggle",
  1810. Callback = function(Value)
  1811. Config.AutoColeta = Value
  1812.  
  1813. if Value then
  1814. AutoColetaStatusLabel:Set("🔄 Auto Colet - Ligado")
  1815. else
  1816. AutoColetaStatusLabel:Set("🔄 Auto Colet - Desligado")
  1817. end
  1818.  
  1819. redzlib:Notify(Value and "✅ Ativado" or "❌ Desativado", "Auto Colet " .. (Value and "ligado" or "desligado"))
  1820. end,
  1821. })
  1822.  
  1823. --// ========== TAB ESP ========== //
  1824.  
  1825. local SectionEspJogadores = TabESP:AddSection({"👥 ESP de Jogadores"})
  1826.  
  1827. TabESP:AddToggle({
  1828. Name = "ESP de Jogadores",
  1829. Description = "Mostra jogadores através das paredes",
  1830. Default = false,
  1831. Flag = "EspJogadoresToggle",
  1832. Callback = function(Value)
  1833. Config.PlayerESP = Value
  1834.  
  1835. if Value then
  1836. EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Ligado")
  1837. reinitializeAllPlayerESP()
  1838. else
  1839. EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Desligado")
  1840. for plr, pack in pairs(PlayerESP_Data) do
  1841. if pack.highlight then pack.highlight.Enabled = false end
  1842. if pack.hpGui then pack.hpGui.Enabled = false end
  1843. end
  1844. end
  1845.  
  1846. redzlib:Notify(Value and "✅ Ativado" or "❌ Desativado", "ESP Jogadores " .. (Value and "ligado" or "desligado"))
  1847. end,
  1848. })
  1849.  
  1850. TabESP:AddToggle({
  1851. Name = "Barra de Vida",
  1852. Description = "Mostra a vida dos jogadores",
  1853. Default = false,
  1854. Flag = "EspHPToggle",
  1855. Callback = function(Value)
  1856. Config.PlayerESP_ShowHP = Value
  1857.  
  1858. for plr, pack in pairs(PlayerESP_Data) do
  1859. if pack.hpGui then
  1860. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
  1861. end
  1862. end
  1863.  
  1864. redzlib:Notify(Value and "✅ Ativado" or "❌ Desativado", "Barra de Vida " .. (Value and "ligada" or "desligada"))
  1865. end,
  1866. })
  1867.  
  1868. TabESP:AddToggle({
  1869. Name = "TeamCheck (Só Inimigos)",
  1870. Description = "Mostra apenas jogadores inimigos",
  1871. Default = false,
  1872. Flag = "EspTeamCheckToggle",
  1873. Callback = function(Value)
  1874. Config.PlayerESP_TeamCheck = Value
  1875.  
  1876. for plr, pack in pairs(PlayerESP_Data) do
  1877. if pack.highlight then
  1878. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  1879. end
  1880. if pack.hpGui then
  1881. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
  1882. end
  1883. end
  1884.  
  1885. redzlib:Notify(Value and "✅ Ativado" or "❌ Desativado", "TeamCheck " .. (Value and "ligado" or "desligado"))
  1886. end,
  1887. })
  1888.  
  1889. local SectionEspCarnes = TabESP:AddSection({"🥩 ESP de Carnes"})
  1890.  
  1891. TabESP:AddToggle({
  1892. Name = "Esp de Carnes",
  1893. Description = "Mostra carnes no mapa",
  1894. Default = false,
  1895. Flag = "EspToggle",
  1896. Callback = function(Value)
  1897. Config.EspMeatActive = Value
  1898.  
  1899. if Value then
  1900. EspCarnesStatusLabel:Set("🥩 ESP Carnes - Ligado")
  1901. startMeatESP()
  1902. else
  1903. EspCarnesStatusLabel:Set("🥩 ESP Carnes - Desligado")
  1904. stopMeatESP()
  1905. end
  1906.  
  1907. redzlib:Notify(Value and "✅ Ativado" or "❌ Desativado", "ESP Carnes " .. (Value and "ligado" or "desligado"))
  1908. end,
  1909. })
  1910.  
  1911. --// ========== TAB TELEPORT ========== //
  1912.  
  1913. local SectionTeleportRapido = TabTeleport:AddSection({"🍖 Teleportes Rápidos"})
  1914.  
  1915. TabTeleport:AddButton({
  1916. Name = "Teleportar para Carne Mais Próxima",
  1917. Description = "Teleporta para a carne mais próxima",
  1918. Callback = function()
  1919. local char = LocalPlayer.Character
  1920. local root = char and char:FindFirstChild("HumanoidRootPart")
  1921. if not root then
  1922. redzlib:Notify("❌ Erro", "Personagem não encontrado!")
  1923. return
  1924. end
  1925.  
  1926. local meat, distance = findNearestMeat()
  1927.  
  1928. if not meat then
  1929. redzlib:Notify("❌ Erro", "Nenhuma carne encontrada!")
  1930. return
  1931. end
  1932.  
  1933. safeTeleport(CFrame.new(meat.Position + Vector3.new(0, 3, 0)), "Carne")
  1934. end,
  1935. })
  1936.  
  1937. local SectionSpawn = TabTeleport:AddSection({"🏠 Teleporte para Spawn"})
  1938.  
  1939. TabTeleport:AddButton({
  1940. Name = "Voltar ao Spawn",
  1941. Description = "Teleporta de volta ao spawn",
  1942. Callback = function()
  1943. if not LastSpawnPosition then
  1944. redzlib:Notify("❌ Erro", "Spawn não detectado!")
  1945. return
  1946. end
  1947.  
  1948. safeTeleport(LastSpawnPosition, "Spawn")
  1949. end,
  1950. })
  1951.  
  1952. local SectionSavedTeleports = TabTeleport:AddSection({"📍 Locais Salvos"})
  1953.  
  1954. if #Config.SavedTeleports > 0 then
  1955. for i, data in ipairs(Config.SavedTeleports) do
  1956. if data.position then
  1957. local locationName = data.name or ("Local " .. i)
  1958.  
  1959. TabTeleport:AddButton({
  1960. Name = "📍 " .. locationName,
  1961. Description = "Teleportar para " .. locationName,
  1962. Callback = function()
  1963. local pos = data.position
  1964.  
  1965. if not pos or not pos.X or not pos.Y or not pos.Z then
  1966. redzlib:Notify("❌ Erro", "Posição inválida!")
  1967. return
  1968. end
  1969.  
  1970. local targetCF = CFrame.new(pos.X, pos.Y, pos.Z)
  1971. safeTeleport(targetCF, locationName)
  1972. end,
  1973. })
  1974. end
  1975. end
  1976. else
  1977. TabTeleport:AddParagraph({
  1978. "ℹ️ Nenhum Local Salvo",
  1979. "Você ainda não possui locais salvos.\n\nUse outros scripts para salvar posições."
  1980. })
  1981. end
  1982.  
  1983. --// ========== TAB OUTROS ========== //
  1984.  
  1985. local SectionDebug = TabOutros:AddSection({"🔍 Ferramentas de Debug"})
  1986.  
  1987. TabOutros:AddButton({
  1988. Name = "🔍 Debug: Buscar Nível (Veja Console F9)",
  1989. Description = "Busca o nível do dino (debug mode)",
  1990. Callback = function()
  1991. local level = getDinoLevelDebug()
  1992. redzlib:Notify("🔍 Debug", "Nível encontrado: " .. level .. "\nVeja o console (F9) para detalhes")
  1993. end,
  1994. })
  1995.  
  1996. local SectionClickTeleport = TabOutros:AddSection({"🎯 Click Teleport"})
  1997.  
  1998. TabOutros:AddParagraph({
  1999. "ℹ️ Sobre Click Teleport",
  2000. "Teleporte instantâneo clicando em qualquer superfície.\n\n✅ Personagem olha para onde clicou\n✅ Anti-acidental\n✅ Interface móvel\n✅ Sem efeitos visuais\n\n💡 Use o botão ✕ na interface para desativar"
  2001. })
  2002.  
  2003. TabOutros:AddButton({
  2004. Name = "🎯 Abrir Click Teleport",
  2005. Description = "Abre a interface do Click Teleport",
  2006. Callback = function()
  2007. if not Config.ClickTeleportEnabled then
  2008. ClickTeleportModule.Toggle(true)
  2009. ClickTeleportStatusLabel:Set("🎯 Click Teleport - Ligado")
  2010.  
  2011. redzlib:Notify("✅ Click Teleport", "Interface aberta!\n\nPara fechar, clique no botão ✕ na interface")
  2012. else
  2013. redzlib:Notify("ℹ️ Já Ativo", "Click Teleport já está aberto!\n\nPara desativar, use o botão ✕ na interface")
  2014. end
  2015. end,
  2016. })
  2017.  
  2018. local SectionInfo = TabOutros:AddSection({"ℹ️ Informações"})
  2019.  
  2020. TabOutros:AddParagraph({
  2021. "⚙️ Sobre",
  2022. "Todas as informações importantes estão na aba Menu.\n\nO sistema de Auto Colet funciona de forma independente!\n\nTeleports salvos são carregados do arquivo JSON."
  2023. })
  2024.  
  2025. --// ========== SELECIONAR TAB INICIAL ========== //
  2026. Window:SelectTab(TabMenu)
  2027.  
  2028. --// ========== AUTO FARM LOOP ========== //
  2029.  
  2030. task.spawn(function()
  2031. local index = 1
  2032. while true do
  2033. task.wait(Config.CheckDelay)
  2034. if Config.AutoFarm then
  2035. local currentLevel = getDinoLevelSilent()
  2036.  
  2037. if currentLevel >= 60 then
  2038. Config.AutoFarm = false
  2039. AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
  2040.  
  2041. redzlib:Notify("✅ Completo", "Nível 60 atingido!")
  2042. else
  2043. local crystals = getSortedCrystals()
  2044. if #crystals > 0 then
  2045. for _, c in ipairs(crystals) do
  2046. if not Config.AutoFarm or not c or not c.Parent then break end
  2047. teleportToCrystal(c)
  2048.  
  2049. local fixarConexao = RunService.Heartbeat:Connect(function()
  2050. if Config.AutoFarm and c and c:IsDescendantOf(workspace) then
  2051. local char = getCharacter()
  2052. if char and char.PrimaryPart then
  2053. char:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  2054. end
  2055. end
  2056. end)
  2057.  
  2058. local elapsed = 0
  2059. while c:IsDescendantOf(workspace) and elapsed < 12 and Config.AutoFarm do
  2060. task.wait(Config.CheckDelay)
  2061. elapsed += Config.CheckDelay
  2062. end
  2063. fixarConexao:Disconnect()
  2064. task.wait(Config.DelayBetweenCrystals)
  2065. end
  2066. else
  2067. index = (index % #Config.PatrulhaPontos) + 1
  2068. teleportTo(Config.PatrulhaPontos[index])
  2069. task.wait(2)
  2070. end
  2071. end
  2072. end
  2073. end
  2074. end)
  2075.  
  2076. --// ========== AUTO COLETA (FUNCIONA COM AUTO FARM OU INDIVIDUAL) ========== //
  2077.  
  2078. RunService.Heartbeat:Connect(function()
  2079. if not (Config.AutoFarm or Config.AutoColeta) then return end
  2080.  
  2081. if not Config.podeExecutar then return end
  2082. Config.podeExecutar = false
  2083.  
  2084. local root = getHumanoidRootPart()
  2085. if root then
  2086. for _, obj in ipairs(workspace:GetDescendants()) do
  2087. if obj:IsA("ProximityPrompt") and obj.Parent and obj.Parent:IsA("BasePart") then
  2088. if obj.Enabled and (obj.Parent.Position - root.Position).Magnitude <= Config.raioDeColeta then
  2089. pcall(function()
  2090. fireproximityprompt(obj)
  2091. end)
  2092. end
  2093. end
  2094. end
  2095. end
  2096.  
  2097. task.delay(Config.delayEntreTentativas, function()
  2098. Config.podeExecutar = true
  2099. end)
  2100. end)
  2101.  
  2102. --// ========== CLEANUP AO SAIR ========== //
  2103.  
  2104. game:GetService("Players").LocalPlayer.CharacterRemoving:Connect(function()
  2105. ClickTeleportModule.Cleanup()
  2106. end)
  2107.  
  2108. --// ========== LOGS FINAIS ========== //
  2109.  
  2110. print("╔═══════════════════════════════════════════════════════════╗")
  2111. print("║ Pré-história - By: NickZScripts ║")
  2112. print("╠═══════════════════════════════════════════════════════════╣")
  2113. print("║ ✅ GUI Redzlib carregada! ║")
  2114. print("║ 📌 Versão: " .. ScriptVersion .. " ║")
  2115. print("║ 🎮 Jogador: " .. LocalPlayer.Name)
  2116. print("║ 📊 Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
  2117. print("║ 📍 Teleports Salvos: " .. #Config.SavedTeleports)
  2118. print("╠═══════════════════════════════════════════════════════════╣")
  2119. print("║ 🔍 Sistema de Debug disponível na aba Outros ║")
  2120. print("║ 🔄 Auto Colet: Integrado com Auto Farm ║")
  2121. print("║ 🚀 Sistema de Teleporte Ultra-Rápido ║")
  2122. print("║ 🎨 ESP com cores únicas garantidas por time ║")
  2123. print("║ 🎯 Click Teleport: SEM EFEITOS VISUAIS ║")
  2124. print("╠═══════════════════════════════════════════════════════════╣")
  2125. print("║ 📋 FUNCIONALIDADES ATIVAS: ║")
  2126. print("║ ⚡ Auto Farm de Cristais (com Auto Colet integrado) ║")
  2127. print("║ 👥 ESP de Jogadores (com HP Bar e cores únicas) ║")
  2128. print("║ 🥩 ESP de Carnes ║")
  2129. print("║ 🍖 Teleporte para Carnes ║")
  2130. print("║ 🏠 Teleporte para Spawn ║")
  2131. print("║ 📍 Teleporte Seguro para Locais Salvos ║")
  2132. print("║ 🔄 Auto Colet Inteligente (25 studs) ║")
  2133. print("║ 🎯 Click Teleport (Orientação + Sem Efeitos) ║")
  2134. print("╠═══════════════════════════════════════════════════════════╣")
  2135. print("║ 🆕 INTERFACE REDZLIB v5: ║")
  2136. print("║ ✨ Interface moderna e profissional ║")
  2137. print("║ ⚡ Performance otimizada ║")
  2138. print("║ 🎯 100% das funcionalidades preservadas ║")
  2139. print("║ 💨 Sistema de notificações integrado ║")
  2140. print("║ 🚀 Compatível com todas as features ║")
  2141. print("╚═══════════════════════════════════════════════════════════╝")
Add Comment
Please, Sign In to add comment