Nevzyn

Untitled

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