Nevzyn

Untitled

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