Nevzyn

Untitled

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