Nevzyn

Untitled

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