Nevzyn

Untitled

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