Nevzyn

Untitled

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