Nevzyn

Untitled

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