Nevzyn

Untitled

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