Nevzyn

Untitled

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