Nevzyn

Untitled

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