Nevzyn

Untitled

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