Nevzyn

Untitled

Nov 3rd, 2025
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.49 KB | None | 0 0
  1. --[[
  2. ╔═══════════════════════════════════════════════════════════╗
  3. ║ Pré-história - By: NickZScripts ║
  4. ║ Sistema Modular & Anti-Conflitos ║
  5. ║ Interface: WindUI Library ║
  6. ╚═══════════════════════════════════════════════════════════╝
  7. ]]
  8.  
  9. print("🔄 Iniciando carregamento do script...")
  10.  
  11. --// ========== SERVICES ========== //
  12. local Players = game:GetService("Players")
  13. local RunService = game:GetService("RunService")
  14. local HttpService = game:GetService("HttpService")
  15. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  16. local Teams = game:GetService("Teams")
  17. local TweenService = game:GetService("TweenService")
  18. local UserInputService = game:GetService("UserInputService")
  19. local CoreGui = game:GetService("CoreGui")
  20.  
  21. --// ========== VARIÁVEIS GLOBAIS ========== //
  22. local LocalPlayer = Players.LocalPlayer
  23. local ScriptVersion = "v5.0.0"
  24. local LastSpawnPosition = nil
  25. local Camera = workspace.CurrentCamera
  26. local ActiveTeleportConnection = nil
  27.  
  28. --// ========== CONFIGURAÇÕES DO AUTO FARM ========== //
  29. local Config = {
  30. AutoFarm = false,
  31. AutoColeta = false,
  32. CheckDelay = 0.3,
  33. DelayBetweenCrystals = 0.1,
  34. raioDeColeta = 25,
  35. delayEntreTentativas = 0.25,
  36. podeExecutar = true,
  37.  
  38. -- ESP de Carnes
  39. EspMeatActive = false,
  40. ESP_MIN_SIZE = 35,
  41. ESP_MAX_SIZE = 65,
  42. ESP_UPDATE_RATE = 0.1,
  43. MAX_VISIBLE_DISTANCE = 999999,
  44.  
  45. -- ESP de Jogadores
  46. PlayerESP = false,
  47. PlayerESP_ShowHP = false,
  48. PlayerESP_TeamCheck = false,
  49.  
  50. -- Click Teleport
  51. ClickTeleportEnabled = false,
  52.  
  53. -- Teleports Salvos
  54. SavedTeleports = {},
  55.  
  56. -- Patrulha
  57. PatrulhaPontos = {
  58. CFrame.new(0, 30, 0),
  59. CFrame.new(800, 30, 400),
  60. CFrame.new(-750, 30, -600),
  61. CFrame.new(450, 30, -1000),
  62. CFrame.new(-900, 30, 700),
  63. CFrame.new(0, 30, 1000),
  64. },
  65. }
  66.  
  67. --// ========== CACHE DE NÍVEL ========== //
  68. local DinoLevelCache = {
  69. value = 0,
  70. lastUpdate = 0,
  71. updateInterval = 2
  72. }
  73.  
  74. --// ========== DETECTAR POSIÇÃO DE SPAWN ========== //
  75. task.spawn(function()
  76. local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  77. local root = char:WaitForChild("HumanoidRootPart", 10)
  78.  
  79. if root then
  80. task.wait(2)
  81. LastSpawnPosition = root.CFrame
  82. end
  83.  
  84. LocalPlayer.CharacterAdded:Connect(function(newChar)
  85. task.wait(2)
  86. local newRoot = newChar:FindFirstChild("HumanoidRootPart")
  87. if newRoot then
  88. LastSpawnPosition = newRoot.CFrame
  89. end
  90. end)
  91. end)
  92.  
  93. --// ========== FUNÇÕES DE UTILIDADE ========== //
  94.  
  95. local function getCharacter()
  96. return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  97. end
  98.  
  99. local function getHumanoidRootPart()
  100. local char = getCharacter()
  101. return char and char:FindFirstChild("HumanoidRootPart")
  102. end
  103.  
  104. local function teleportTo(cf)
  105. local root = getHumanoidRootPart()
  106. if root and root.Parent then
  107. root.Parent:SetPrimaryPartCFrame(cf)
  108. end
  109. end
  110.  
  111. local function teleportToCrystal(c)
  112. local root = getHumanoidRootPart()
  113. if root and c then
  114. root.Parent:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  115. end
  116. end
  117.  
  118. --// ========== SISTEMA DE TELEPORTE SEGURO ========== //
  119.  
  120. local function safeTeleport(targetCFrame, locationName)
  121. if ActiveTeleportConnection then
  122. ActiveTeleportConnection:Disconnect()
  123. ActiveTeleportConnection = nil
  124. end
  125.  
  126. local char = LocalPlayer.Character
  127. local root = char and char:FindFirstChild("HumanoidRootPart")
  128. local humanoid = char and char:FindFirstChild("Humanoid")
  129.  
  130. if not root or not humanoid then
  131. return false
  132. end
  133.  
  134. root.CFrame = targetCFrame
  135.  
  136. task.spawn(function()
  137. task.wait(0.05)
  138.  
  139. local rayParams = RaycastParams.new()
  140. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  141. rayParams.FilterDescendantsInstances = {char}
  142.  
  143. local rayResult = workspace:Raycast(
  144. root.Position,
  145. Vector3.new(0, -100, 0),
  146. rayParams
  147. )
  148.  
  149. if rayResult then
  150. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  151. end
  152. end)
  153.  
  154. local teleportStartTime = tick()
  155. local maxWaitTime = 1.2
  156. local minWaitTime = 0.2
  157.  
  158. ActiveTeleportConnection = RunService.Heartbeat:Connect(function()
  159. if not char or not char.Parent or not root or not root.Parent or not humanoid then
  160. if ActiveTeleportConnection then
  161. ActiveTeleportConnection:Disconnect()
  162. ActiveTeleportConnection = nil
  163. end
  164. return
  165. end
  166.  
  167. local elapsedTime = tick() - teleportStartTime
  168.  
  169. local floorMaterial = humanoid.FloorMaterial
  170. local isOnGround = floorMaterial ~= Enum.Material.Air
  171.  
  172. local velocity = root.AssemblyLinearVelocity
  173. local isStationary = velocity.Magnitude < 2
  174.  
  175. local humanoidState = humanoid:GetState()
  176. local isLanded = humanoidState == Enum.HumanoidStateType.Landed or
  177. humanoidState == Enum.HumanoidStateType.Running or
  178. humanoidState == Enum.HumanoidStateType.RunningNoPhysics
  179.  
  180. if (elapsedTime > minWaitTime and (isOnGround or (isStationary and isLanded))) or elapsedTime > maxWaitTime then
  181. if ActiveTeleportConnection then
  182. ActiveTeleportConnection:Disconnect()
  183. ActiveTeleportConnection = nil
  184. end
  185.  
  186. if not (isOnGround or isLanded) then
  187. local rayParams = RaycastParams.new()
  188. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  189. rayParams.FilterDescendantsInstances = {char}
  190.  
  191. local rayResult = workspace:Raycast(
  192. root.Position,
  193. Vector3.new(0, -200, 0),
  194. rayParams
  195. )
  196.  
  197. if rayResult then
  198. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  199. end
  200. end
  201.  
  202. return
  203. end
  204. end)
  205.  
  206. return true
  207. end
  208.  
  209. --// ========== MÓDULO: CLICK TELEPORT ========== //
  210.  
  211. local ClickTeleportModule = (function()
  212. local _enabled = false
  213. local _uiVisible = false
  214. local _screenGui = nil
  215. local _mainFrame = nil
  216. local _minimizedBtn = nil
  217. local _connections = {}
  218.  
  219. local Mouse = LocalPlayer:GetMouse()
  220.  
  221. local ClickState = {
  222. StartTime = 0,
  223. StartPosition = nil,
  224. IsValid = false,
  225. }
  226.  
  227. local CTConfig = {
  228. MaxClickTime = 0.3,
  229. MaxDragDistance = 10,
  230. RaycastDistance = 10000,
  231. TeleportOffset = 3,
  232. }
  233.  
  234. local CTTheme = {
  235. Background = Color3.fromRGB(25, 25, 35),
  236. Secondary = Color3.fromRGB(35, 35, 45),
  237. Accent = Color3.fromRGB(90, 170, 255),
  238. Success = Color3.fromRGB(90, 255, 140),
  239. Danger = Color3.fromRGB(255, 90, 90),
  240. Text = Color3.fromRGB(255, 255, 255),
  241. TextDim = Color3.fromRGB(180, 180, 200),
  242. }
  243.  
  244. local function AddCorner(parent, radius)
  245. local corner = Instance.new("UICorner")
  246. corner.CornerRadius = UDim.new(0, radius or 8)
  247. corner.Parent = parent
  248. return corner
  249. end
  250.  
  251. local function AddStroke(parent, color, thickness, transparency)
  252. local stroke = Instance.new("UIStroke")
  253. stroke.Color = color or Color3.fromRGB(60, 60, 80)
  254. stroke.Thickness = thickness or 1
  255. stroke.Transparency = transparency or 0
  256. stroke.Parent = parent
  257. return stroke
  258. end
  259.  
  260. local function _getMouseHit()
  261. local unitRay = Camera:ScreenPointToRay(Mouse.X, Mouse.Y)
  262.  
  263. local raycastParams = RaycastParams.new()
  264. raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
  265. raycastParams.FilterDescendantsInstances = {LocalPlayer.Character}
  266. raycastParams.IgnoreWater = false
  267.  
  268. local raycastResult = workspace:Raycast(
  269. unitRay.Origin,
  270. unitRay.Direction * CTConfig.RaycastDistance,
  271. raycastParams
  272. )
  273.  
  274. return raycastResult
  275. end
  276.  
  277. local function _teleportToPosition(position)
  278. local root = getHumanoidRootPart()
  279. if not root then return false end
  280.  
  281. local currentPosition = root.Position
  282. local teleportPos = position + Vector3.new(0, CTConfig.TeleportOffset, 0)
  283. local directionVector = (position - currentPosition)
  284. local horizontalDirection = Vector3.new(directionVector.X, 0, directionVector.Z)
  285. local lookDirection = horizontalDirection.Unit
  286. local targetCFrame = CFrame.new(teleportPos, teleportPos + lookDirection)
  287.  
  288. root.CFrame = targetCFrame
  289.  
  290. return true
  291. end
  292.  
  293. local function _isValidClick(startPos, endPos, duration)
  294. if duration > CTConfig.MaxClickTime then return false end
  295.  
  296. local dragDistance = (endPos - startPos).Magnitude
  297. if dragDistance > CTConfig.MaxDragDistance then return false end
  298.  
  299. return true
  300. end
  301.  
  302. local function _updateStatusLabel(text, color)
  303. if _mainFrame then
  304. local statusLabel = _mainFrame:FindFirstChild("Container"):FindFirstChild("StatusLabel")
  305. if statusLabel then
  306. statusLabel.Text = text
  307. statusLabel.TextColor3 = color
  308. end
  309. end
  310. end
  311.  
  312. local function _enableClickDetection()
  313. for _, conn in ipairs(_connections) do
  314. if conn and conn.Connected then
  315. conn:Disconnect()
  316. end
  317. end
  318. _connections = {}
  319.  
  320. table.insert(_connections, UserInputService.InputBegan:Connect(function(input, gameProcessed)
  321. if gameProcessed then return end
  322. if not _enabled then return end
  323.  
  324. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  325. input.UserInputType == Enum.UserInputType.Touch then
  326. ClickState.StartTime = tick()
  327. ClickState.StartPosition = Vector2.new(Mouse.X, Mouse.Y)
  328. ClickState.IsValid = true
  329. end
  330. end))
  331.  
  332. table.insert(_connections, UserInputService.InputEnded:Connect(function(input, gameProcessed)
  333. if gameProcessed then return end
  334. if not _enabled then return end
  335. if not ClickState.IsValid then return end
  336.  
  337. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  338. input.UserInputType == Enum.UserInputType.Touch then
  339.  
  340. local clickDuration = tick() - ClickState.StartTime
  341. local endPosition = Vector2.new(Mouse.X, Mouse.Y)
  342.  
  343. if _isValidClick(ClickState.StartPosition, endPosition, clickDuration) then
  344. local raycastResult = _getMouseHit()
  345.  
  346. if raycastResult then
  347. if _teleportToPosition(raycastResult.Position) then
  348. _updateStatusLabel("✅ Teleportado!", CTTheme.Success)
  349.  
  350. task.wait(1)
  351. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  352. end
  353. else
  354. _updateStatusLabel("❌ Não é possível teleportar para o céu", CTTheme.Danger)
  355.  
  356. task.wait(1.5)
  357. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  358. end
  359. end
  360.  
  361. ClickState.IsValid = false
  362. end
  363. end))
  364. end
  365.  
  366. local function _disableClickDetection()
  367. for _, conn in ipairs(_connections) do
  368. if conn and conn.Connected then
  369. conn:Disconnect()
  370. end
  371. end
  372. _connections = {}
  373. end
  374.  
  375. local function _minimizeUI()
  376. if _mainFrame then
  377. _mainFrame.Visible = false
  378. end
  379. if _minimizedBtn then
  380. _minimizedBtn.Visible = true
  381.  
  382. _minimizedBtn.Size = UDim2.new(0, 0, 0, 0)
  383. TweenService:Create(_minimizedBtn, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  384. Size = UDim2.new(0, 50, 0, 50)
  385. }):Play()
  386. end
  387. end
  388.  
  389. local function _maximizeUI()
  390. if _minimizedBtn then
  391. TweenService:Create(_minimizedBtn, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
  392. Size = UDim2.new(0, 0, 0, 0)
  393. }):Play()
  394.  
  395. task.wait(0.2)
  396. _minimizedBtn.Visible = false
  397. end
  398. if _mainFrame then
  399. _mainFrame.Visible = true
  400.  
  401. _mainFrame.Size = UDim2.new(0, 0, 0, 0)
  402. TweenService:Create(_mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  403. Size = UDim2.new(0, 260, 0, 180)
  404. }):Play()
  405. end
  406. end
  407.  
  408. local function _createUI()
  409. if _screenGui then
  410. pcall(function() _screenGui:Destroy() end)
  411. _screenGui = nil
  412. end
  413.  
  414. _screenGui = Instance.new("ScreenGui")
  415. _screenGui.Name = "ClickTeleportUI_PreHistoria"
  416. _screenGui.ResetOnSpawn = false
  417. _screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  418. _screenGui.Parent = game:GetService("CoreGui")
  419.  
  420. _mainFrame = Instance.new("Frame")
  421. _mainFrame.Name = "MainFrame"
  422. _mainFrame.Size = UDim2.new(0, 260, 0, 180)
  423. _mainFrame.Position = UDim2.new(0.5, -130, 0.5, -90)
  424. _mainFrame.BackgroundColor3 = CTTheme.Background
  425. _mainFrame.BackgroundTransparency = 0.05
  426. _mainFrame.BorderSizePixel = 0
  427. _mainFrame.Active = true
  428. _mainFrame.Draggable = true
  429. _mainFrame.Parent = _screenGui
  430.  
  431. AddCorner(_mainFrame, 12)
  432. AddStroke(_mainFrame, CTTheme.Accent, 2, 0.3)
  433.  
  434. local bgGradient = Instance.new("UIGradient")
  435. bgGradient.Color = ColorSequence.new{
  436. ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 30, 40)),
  437. ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 30))
  438. }
  439. bgGradient.Rotation = 45
  440. bgGradient.Parent = _mainFrame
  441.  
  442. local header = Instance.new("Frame")
  443. header.Size = UDim2.new(1, 0, 0, 50)
  444. header.BackgroundColor3 = CTTheme.Secondary
  445. header.BackgroundTransparency = 0.2
  446. header.BorderSizePixel = 0
  447. header.Parent = _mainFrame
  448.  
  449. AddCorner(header, 12)
  450.  
  451. local headerFix = Instance.new("Frame")
  452. headerFix.Size = UDim2.new(1, 0, 0, 12)
  453. headerFix.Position = UDim2.new(0, 0, 1, -12)
  454. headerFix.BackgroundColor3 = CTTheme.Secondary
  455. headerFix.BackgroundTransparency = 0.2
  456. headerFix.BorderSizePixel = 0
  457. headerFix.Parent = header
  458.  
  459. local title = Instance.new("TextLabel")
  460. title.Size = UDim2.new(1, -85, 1, 0)
  461. title.Position = UDim2.new(0, 15, 0, 0)
  462. title.BackgroundTransparency = 1
  463. title.Text = "🎯 Click Teleport"
  464. title.TextColor3 = CTTheme.Text
  465. title.TextSize = 17
  466. title.Font = Enum.Font.GothamBold
  467. title.TextXAlignment = Enum.TextXAlignment.Left
  468. title.Parent = header
  469.  
  470. local minimizeBtn = Instance.new("TextButton")
  471. minimizeBtn.Size = UDim2.new(0, 35, 0, 35)
  472. minimizeBtn.Position = UDim2.new(1, -78, 0.5, -17.5)
  473. minimizeBtn.BackgroundColor3 = Color3.fromRGB(255, 200, 100)
  474. minimizeBtn.BackgroundTransparency = 0.2
  475. minimizeBtn.Text = "➖"
  476. minimizeBtn.TextColor3 = CTTheme.Text
  477. minimizeBtn.TextSize = 18
  478. minimizeBtn.Font = Enum.Font.GothamBold
  479. minimizeBtn.AutoButtonColor = false
  480. minimizeBtn.Parent = header
  481.  
  482. AddCorner(minimizeBtn, 8)
  483.  
  484. local closeBtn = Instance.new("TextButton")
  485. closeBtn.Size = UDim2.new(0, 35, 0, 35)
  486. closeBtn.Position = UDim2.new(1, -38, 0.5, -17.5)
  487. closeBtn.BackgroundColor3 = CTTheme.Danger
  488. closeBtn.BackgroundTransparency = 0.2
  489. closeBtn.Text = "✕"
  490. closeBtn.TextColor3 = CTTheme.Text
  491. closeBtn.TextSize = 20
  492. closeBtn.Font = Enum.Font.GothamBold
  493. closeBtn.AutoButtonColor = false
  494. closeBtn.Parent = header
  495.  
  496. AddCorner(closeBtn, 8)
  497.  
  498. local container = Instance.new("Frame")
  499. container.Name = "Container"
  500. container.Size = UDim2.new(1, -20, 1, -60)
  501. container.Position = UDim2.new(0, 10, 0, 55)
  502. container.BackgroundTransparency = 1
  503. container.Parent = _mainFrame
  504.  
  505. local toggleBtn = Instance.new("TextButton")
  506. toggleBtn.Name = "ToggleBtn"
  507. toggleBtn.Size = UDim2.new(1, 0, 0, 55)
  508. toggleBtn.Position = UDim2.new(0, 0, 0, 0)
  509. toggleBtn.BackgroundColor3 = CTTheme.Danger
  510. toggleBtn.BackgroundTransparency = 0.1
  511. toggleBtn.Text = "🔴 DESATIVADO"
  512. toggleBtn.TextColor3 = CTTheme.Text
  513. toggleBtn.TextSize = 16
  514. toggleBtn.Font = Enum.Font.GothamBold
  515. toggleBtn.AutoButtonColor = false
  516. toggleBtn.Parent = container
  517.  
  518. AddCorner(toggleBtn, 10)
  519.  
  520. local toggleStroke = Instance.new("UIStroke")
  521. toggleStroke.Name = "Stroke"
  522. toggleStroke.Color = CTTheme.Danger
  523. toggleStroke.Thickness = 2
  524. toggleStroke.Transparency = 0.3
  525. toggleStroke.Parent = toggleBtn
  526.  
  527. local statusLabel = Instance.new("TextLabel")
  528. statusLabel.Name = "StatusLabel"
  529. statusLabel.Size = UDim2.new(1, 0, 0, 25)
  530. statusLabel.Position = UDim2.new(0, 0, 0, 65)
  531. statusLabel.BackgroundTransparency = 1
  532. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  533. statusLabel.TextColor3 = CTTheme.TextDim
  534. statusLabel.TextSize = 12
  535. statusLabel.Font = Enum.Font.Gotham
  536. statusLabel.TextWrapped = true
  537. statusLabel.Parent = container
  538.  
  539. local infoLabel = Instance.new("TextLabel")
  540. infoLabel.Size = UDim2.new(1, 0, 0, 20)
  541. infoLabel.Position = UDim2.new(0, 0, 0, 92)
  542. infoLabel.BackgroundTransparency = 1
  543. infoLabel.Text = "⚡ Teleporte limpo e instantâneo"
  544. infoLabel.TextColor3 = CTTheme.Success
  545. infoLabel.TextSize = 11
  546. infoLabel.Font = Enum.Font.Gotham
  547. infoLabel.Parent = container
  548.  
  549. _minimizedBtn = Instance.new("TextButton")
  550. _minimizedBtn.Name = "MinimizedBtn"
  551. _minimizedBtn.Size = UDim2.new(0, 50, 0, 50)
  552. _minimizedBtn.Position = UDim2.new(1, -60, 0, 10)
  553. _minimizedBtn.BackgroundColor3 = CTTheme.Accent
  554. _minimizedBtn.BackgroundTransparency = 0.1
  555. _minimizedBtn.Text = "🎯"
  556. _minimizedBtn.TextColor3 = CTTheme.Text
  557. _minimizedBtn.TextSize = 24
  558. _minimizedBtn.Font = Enum.Font.GothamBold
  559. _minimizedBtn.AutoButtonColor = false
  560. _minimizedBtn.Visible = false
  561. _minimizedBtn.Active = true
  562. _minimizedBtn.Draggable = true
  563. _minimizedBtn.Parent = _screenGui
  564.  
  565. AddCorner(_minimizedBtn, 12)
  566. AddStroke(_minimizedBtn, CTTheme.Accent, 2)
  567.  
  568. toggleBtn.MouseButton1Click:Connect(function()
  569. _enabled = not _enabled
  570.  
  571. if _enabled then
  572. toggleBtn.Text = "🟢 ATIVADO"
  573. toggleBtn.BackgroundColor3 = CTTheme.Success
  574. toggleStroke.Color = CTTheme.Success
  575. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  576. _enableClickDetection()
  577. else
  578. toggleBtn.Text = "🔴 DESATIVADO"
  579. toggleBtn.BackgroundColor3 = CTTheme.Danger
  580. toggleStroke.Color = CTTheme.Danger
  581. statusLabel.Text = "Teleporte desativado"
  582. _disableClickDetection()
  583. end
  584. end)
  585.  
  586. minimizeBtn.MouseButton1Click:Connect(function()
  587. _minimizeUI()
  588. end)
  589.  
  590. _minimizedBtn.MouseButton1Click:Connect(function()
  591. _maximizeUI()
  592. end)
  593.  
  594. closeBtn.MouseButton1Click:Connect(function()
  595. _enabled = false
  596. _disableClickDetection()
  597.  
  598. if _screenGui then
  599. pcall(function() _screenGui:Destroy() end)
  600. _screenGui = nil
  601. _mainFrame = nil
  602. _minimizedBtn = nil
  603. end
  604.  
  605. _uiVisible = false
  606. Config.ClickTeleportEnabled = false
  607. end)
  608.  
  609. _uiVisible = true
  610. end
  611.  
  612. return {
  613. Init = function()
  614. print("✅ Módulo Click Teleport inicializado")
  615. end,
  616.  
  617. Toggle = function(state)
  618. Config.ClickTeleportEnabled = state
  619.  
  620. if state then
  621. if not _uiVisible then
  622. _createUI()
  623. end
  624. else
  625. if _screenGui then
  626. _enabled = false
  627. _disableClickDetection()
  628.  
  629. pcall(function() _screenGui:Destroy() end)
  630. _screenGui = nil
  631. _mainFrame = nil
  632. _minimizedBtn = nil
  633. end
  634.  
  635. _uiVisible = false
  636. end
  637. end,
  638.  
  639. Cleanup = function()
  640. _enabled = false
  641. _disableClickDetection()
  642.  
  643. if _screenGui then
  644. pcall(function() _screenGui:Destroy() end)
  645. _screenGui = nil
  646. _mainFrame = nil
  647. _minimizedBtn = nil
  648. end
  649.  
  650. _uiVisible = false
  651. print("🧹 Click Teleport limpo")
  652. end,
  653.  
  654. IsEnabled = function()
  655. return Config.ClickTeleportEnabled
  656. end
  657. }
  658. end)()
  659.  
  660. ClickTeleportModule.Init()
  661.  
  662. --// ========== SISTEMA DE NÍVEL DO DINO ========== //
  663.  
  664. local function getDinoLevelSilent()
  665. local now = tick()
  666. if (now - DinoLevelCache.lastUpdate) < DinoLevelCache.updateInterval then
  667. return DinoLevelCache.value
  668. end
  669.  
  670. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  671. if leaderstats then
  672. for _, stat in ipairs(leaderstats:GetChildren()) do
  673. local name = stat.Name:lower()
  674. if name:find("level") or name:find("lvl") or name:find("nivel") then
  675. if stat:IsA("IntValue") or stat:IsA("NumberValue") then
  676. local val = tonumber(stat.Value) or 0
  677. if val > 0 then
  678. DinoLevelCache.value = val
  679. DinoLevelCache.lastUpdate = now
  680. return val
  681. end
  682. end
  683. end
  684. end
  685. end
  686.  
  687. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  688. if playerGui then
  689. for _, gui in ipairs(playerGui:GetDescendants()) do
  690. if gui:IsA("TextLabel") or gui:IsA("TextBox") then
  691. local text = gui.Text:lower()
  692.  
  693. if text:find("level") or text:find("lvl") or text:find("nivel") then
  694. local number = text:match("%d+")
  695. if number then
  696. local val = tonumber(number)
  697. if val and val > 0 and val <= 100 then
  698. DinoLevelCache.value = val
  699. DinoLevelCache.lastUpdate = now
  700. return val
  701. end
  702. end
  703. end
  704. end
  705. end
  706. end
  707.  
  708. DinoLevelCache.lastUpdate = now
  709. return DinoLevelCache.value
  710. end
  711.  
  712. --// ========== SISTEMA DE CRISTAIS ========== //
  713.  
  714. local prioridadeMap = { legendary = 1, epic = 2, rare = 3, crystal = 4 }
  715.  
  716. local function getCrystalRank(name)
  717. name = name:lower()
  718. for key, rank in pairs(prioridadeMap) do
  719. if name:find(key) then return rank end
  720. end
  721. return 5
  722. end
  723.  
  724. local function getSortedCrystals()
  725. local found = {}
  726. for _, obj in ipairs(workspace:GetDescendants()) do
  727. if obj:IsA("BasePart") and obj.Parent and obj.Parent:IsA("Model") then
  728. local rank = getCrystalRank(obj.Parent.Name)
  729. if rank < 5 then
  730. table.insert(found, {part = obj, rank = rank})
  731. end
  732. end
  733. end
  734. table.sort(found, function(a, b) return a.rank < b.rank end)
  735. local parts = {}
  736. for _, entry in ipairs(found) do
  737. table.insert(parts, entry.part)
  738. end
  739. return parts
  740. end
  741.  
  742. --// ========== SISTEMA ESP DE CARNES ========== //
  743.  
  744. local ActiveMeatESPs = {}
  745. local meatUpdateLoop = nil
  746. local meatScanLoop = nil
  747.  
  748. local function isMeatObject(obj)
  749. if not obj then return false, nil end
  750.  
  751. if obj:IsA("ProximityPrompt") and obj.Enabled then
  752. local action = (obj.ActionText or ""):lower()
  753. local objText = (obj.ObjectText or ""):lower()
  754.  
  755. local foodActions = {"coma", "eat", "pegar", "pick", "grab", "take"}
  756.  
  757. for _, foodAction in ipairs(foodActions) do
  758. if action:find(foodAction) then
  759. local fullText = action .. " " .. objText
  760. local excludeWords = {"plant", "fish", "berry", "fruit", "vegetable", "seed"}
  761.  
  762. local isExcluded = false
  763. for _, word in ipairs(excludeWords) do
  764. if fullText:find(word) then
  765. isExcluded = true
  766. break
  767. end
  768. end
  769.  
  770. if not isExcluded then
  771. local parent = obj.Parent
  772. if parent and parent:IsA("BasePart") then
  773. for _, player in ipairs(Players:GetPlayers()) do
  774. if player.Character and parent:IsDescendantOf(player.Character) then
  775. return false, nil
  776. end
  777. end
  778. return true, parent
  779. end
  780. end
  781. end
  782. end
  783. end
  784.  
  785. if obj:IsA("Model") or obj:IsA("BasePart") then
  786. local name = (obj.Name or ""):lower()
  787.  
  788. local meatWords = {
  789. "meat", "carne", "beef", "steak", "chicken",
  790. "frango", "pork", "porco", "bacon", "ham"
  791. }
  792.  
  793. for _, word in ipairs(meatWords) do
  794. if name:find(word) then
  795. for _, player in ipairs(Players:GetPlayers()) do
  796. if player.Character and obj:IsDescendantOf(player.Character) then
  797. return false, nil
  798. end
  799. end
  800.  
  801. if obj:IsA("Model") then
  802. local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
  803. return part ~= nil, part
  804. else
  805. return true, obj
  806. end
  807. end
  808. end
  809. end
  810.  
  811. return false, nil
  812. end
  813.  
  814. local function findNearestMeat()
  815. local char = LocalPlayer.Character
  816. local root = char and char:FindFirstChild("HumanoidRootPart")
  817. if not root then return nil, math.huge end
  818.  
  819. local nearestMeat = nil
  820. local nearestDistance = math.huge
  821.  
  822. for _, obj in ipairs(workspace:GetDescendants()) do
  823. local isMeat, part = isMeatObject(obj)
  824. if isMeat and part and part.Parent then
  825. local distance = (part.Position - root.Position).Magnitude
  826. if distance < nearestDistance then
  827. nearestDistance = distance
  828. nearestMeat = part
  829. end
  830. end
  831. end
  832.  
  833. return nearestMeat, nearestDistance
  834. end
  835.  
  836. local function createMeatESP(part)
  837. if not part or not part:IsA("BasePart") or not part.Parent then return end
  838.  
  839. local id = tostring(part:GetDebugId())
  840. if ActiveMeatESPs[id] then return end
  841.  
  842. local esp = Instance.new("BillboardGui")
  843. esp.Name = "MeatESP_" .. id
  844. esp.Adornee = part
  845. esp.Size = UDim2.new(0, Config.ESP_MAX_SIZE, 0, Config.ESP_MAX_SIZE * 0.4)
  846. esp.StudsOffset = Vector3.new(0, 3, 0)
  847. esp.AlwaysOnTop = true
  848. esp.LightInfluence = 0
  849. esp.MaxDistance = Config.MAX_VISIBLE_DISTANCE
  850. esp.Parent = workspace
  851. esp.Enabled = true
  852.  
  853. local frame = Instance.new("Frame", esp)
  854. frame.Size = UDim2.new(1, 0, 1, 0)
  855. frame.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
  856. frame.BackgroundTransparency = 0.4
  857. frame.BorderSizePixel = 1
  858. frame.BorderColor3 = Color3.fromRGB(255, 200, 0)
  859.  
  860. local corner = Instance.new("UICorner")
  861. corner.CornerRadius = UDim.new(0, 6)
  862. corner.Parent = frame
  863.  
  864. local iconLabel = Instance.new("TextLabel", frame)
  865. iconLabel.Size = UDim2.new(0.3, 0, 0.9, 0)
  866. iconLabel.Position = UDim2.new(0, 2, 0.05, 0)
  867. iconLabel.BackgroundTransparency = 1
  868. iconLabel.Text = "🥩"
  869. iconLabel.TextScaled = true
  870. iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  871. iconLabel.Font = Enum.Font.SourceSansBold
  872. iconLabel.TextStrokeTransparency = 0.5
  873.  
  874. local distLabel = Instance.new("TextLabel", frame)
  875. distLabel.Name = "Distance"
  876. distLabel.Size = UDim2.new(0.7, -4, 0.9, 0)
  877. distLabel.Position = UDim2.new(0.3, 2, 0.05, 0)
  878. distLabel.BackgroundTransparency = 1
  879. distLabel.Text = "0m"
  880. distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  881. distLabel.TextStrokeTransparency = 0.3
  882. distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
  883. distLabel.Font = Enum.Font.GothamBold
  884. distLabel.TextScaled = true
  885.  
  886. ActiveMeatESPs[id] = {
  887. gui = esp,
  888. part = part,
  889. distLabel = distLabel,
  890. frame = frame,
  891. iconLabel = iconLabel
  892. }
  893.  
  894. return true
  895. end
  896.  
  897. local function scanForMeats()
  898. if not Config.EspMeatActive then return end
  899.  
  900. for id, data in pairs(ActiveMeatESPs) do
  901. if data.gui then
  902. pcall(function() data.gui:Destroy() end)
  903. end
  904. end
  905. ActiveMeatESPs = {}
  906.  
  907. local meatCount = 0
  908. local checkedCount = 0
  909.  
  910. for _, obj in ipairs(workspace:GetDescendants()) do
  911. checkedCount = checkedCount + 1
  912.  
  913. if checkedCount % 300 == 0 then
  914. task.wait()
  915. if not Config.EspMeatActive then return end
  916. end
  917.  
  918. local isMeat, part = isMeatObject(obj)
  919. if isMeat and part and part.Parent then
  920. if createMeatESP(part) then
  921. meatCount = meatCount + 1
  922. end
  923. end
  924. end
  925. end
  926.  
  927. local function updateMeatESPInfo()
  928. if not Config.EspMeatActive then return end
  929.  
  930. local char = LocalPlayer.Character
  931. local root = char and char:FindFirstChild("HumanoidRootPart")
  932. if not root then return end
  933.  
  934. for id, data in pairs(ActiveMeatESPs) do
  935. if data.part and data.part.Parent and data.gui and data.gui.Parent then
  936. local distance = (data.part.Position - root.Position).Magnitude
  937.  
  938. data.gui.Enabled = true
  939.  
  940. if data.distLabel then
  941. if distance < 100 then
  942. data.distLabel.Text = string.format("%.0fm", distance)
  943. elseif distance < 1000 then
  944. data.distLabel.Text = string.format("%.0fm", distance)
  945. else
  946. data.distLabel.Text = string.format("%.1fkm", distance / 1000)
  947. end
  948. end
  949.  
  950. local scaleFactor
  951. if distance <= 50 then scaleFactor = 1.0
  952. elseif distance <= 200 then scaleFactor = 0.75
  953. elseif distance <= 500 then scaleFactor = 0.6
  954. elseif distance <= 1000 then scaleFactor = 0.5
  955. else scaleFactor = 0.4 end
  956.  
  957. local newSize = Config.ESP_MIN_SIZE + ((Config.ESP_MAX_SIZE - Config.ESP_MIN_SIZE) * scaleFactor)
  958. data.gui.Size = UDim2.new(0, newSize, 0, newSize * 0.4)
  959.  
  960. if data.frame then
  961. local transparency
  962. if distance < 300 then transparency = 0.3
  963. elseif distance < 1000 then transparency = 0.5
  964. else transparency = 0.7 end
  965. data.frame.BackgroundTransparency = transparency
  966. end
  967.  
  968. if distance < 100 then
  969. data.frame.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
  970. data.frame.BorderColor3 = Color3.fromRGB(200, 255, 200)
  971. elseif distance < 500 then
  972. data.frame.BackgroundColor3 = Color3.fromRGB(255, 255, 100)
  973. data.frame.BorderColor3 = Color3.fromRGB(255, 255, 150)
  974. else
  975. data.frame.BackgroundColor3 = Color3.fromRGB(255, 120, 120)
  976. data.frame.BorderColor3 = Color3.fromRGB(255, 150, 150)
  977. end
  978. else
  979. if data.gui then
  980. pcall(function() data.gui:Destroy() end)
  981. end
  982. ActiveMeatESPs[id] = nil
  983. end
  984. end
  985. end
  986.  
  987. local function startMeatESP()
  988. if meatUpdateLoop then return end
  989.  
  990. scanForMeats()
  991.  
  992. meatUpdateLoop = RunService.Heartbeat:Connect(function()
  993. updateMeatESPInfo()
  994. end)
  995.  
  996. meatScanLoop = task.spawn(function()
  997. while Config.EspMeatActive do
  998. task.wait(10)
  999. if Config.EspMeatActive then
  1000. scanForMeats()
  1001. end
  1002. end
  1003. end)
  1004.  
  1005. workspace.DescendantAdded:Connect(function(obj)
  1006. if not Config.EspMeatActive then return end
  1007.  
  1008. task.wait(0.1)
  1009. local isMeat, part = isMeatObject(obj)
  1010. if isMeat and part then
  1011. local id = tostring(part:GetDebugId())
  1012. if not ActiveMeatESPs[id] then
  1013. createMeatESP(part)
  1014. end
  1015. end
  1016. end)
  1017. end
  1018.  
  1019. local function stopMeatESP()
  1020. if meatUpdateLoop then
  1021. meatUpdateLoop:Disconnect()
  1022. meatUpdateLoop = nil
  1023. end
  1024.  
  1025. if meatScanLoop then
  1026. task.cancel(meatScanLoop)
  1027. meatScanLoop = nil
  1028. end
  1029.  
  1030. for id, data in pairs(ActiveMeatESPs) do
  1031. if data.gui then
  1032. pcall(function() data.gui:Destroy() end)
  1033. end
  1034. end
  1035. ActiveMeatESPs = {}
  1036. end
  1037.  
  1038. --// ========== SISTEMA ESP DE JOGADORES ========== //
  1039.  
  1040. local PlayerESP_Data = {}
  1041.  
  1042. local ESP_CONFIG = {
  1043. UpdateInterval = 0.5,
  1044. HPBarMaxDistance = 4000,
  1045. HPBarSize = UDim2.new(0, 50, 0, 5),
  1046. HPBarYOffset = 0.5,
  1047. HighlightFillTransparency = 0.85,
  1048. OutlineTransparency = 0.15,
  1049. }
  1050.  
  1051. local COLOR_ENEMY = Color3.fromRGB(255, 85, 85)
  1052. local COLOR_FRIEND = Color3.fromRGB(85, 255, 85)
  1053. local COLOR_NEUTRAL = Color3.fromRGB(240, 240, 240)
  1054.  
  1055. local function isNeutralPlayer(p)
  1056. return p.Team == nil
  1057. end
  1058.  
  1059. local function isAllyPlayer(p)
  1060. return LocalPlayer.Team and p.Team == LocalPlayer.Team
  1061. end
  1062.  
  1063. local function colorForPlayer(p)
  1064. if isNeutralPlayer(p) then
  1065. return COLOR_NEUTRAL
  1066. end
  1067.  
  1068. if isAllyPlayer(p) then
  1069. return COLOR_FRIEND
  1070. end
  1071.  
  1072. return COLOR_ENEMY
  1073. end
  1074.  
  1075. local function shouldShowPlayerESP(p)
  1076. if not Config.PlayerESP then return false end
  1077. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1078. return true
  1079. end
  1080.  
  1081. local function shouldShowPlayerHP(p)
  1082. if not Config.PlayerESP_ShowHP then return false end
  1083. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1084. return true
  1085. end
  1086.  
  1087. local function clearPlayerESP(plr)
  1088. local pack = PlayerESP_Data[plr]
  1089. if not pack then return end
  1090.  
  1091. if pack.highlight then
  1092. pcall(function() pack.highlight:Destroy() end)
  1093. pack.highlight = nil
  1094. end
  1095.  
  1096. if pack.hpGui then
  1097. pcall(function() pack.hpGui:Destroy() end)
  1098. pack.hpGui = nil
  1099. end
  1100.  
  1101. PlayerESP_Data[plr] = nil
  1102. end
  1103.  
  1104. local function setupPlayerESP(plr)
  1105. if plr == LocalPlayer then return end
  1106. if not plr.Character then return end
  1107.  
  1108. clearPlayerESP(plr)
  1109.  
  1110. local char = plr.Character
  1111. local hum = char:FindFirstChildOfClass("Humanoid")
  1112. local root = char:FindFirstChild("HumanoidRootPart")
  1113. local head = char:FindFirstChild("Head")
  1114.  
  1115. if not hum or not root then return end
  1116.  
  1117. PlayerESP_Data[plr] = {}
  1118.  
  1119. -- Highlight
  1120. local hi = Instance.new("Highlight")
  1121. hi.Name = "PlayerESP_Highlight"
  1122. hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
  1123. hi.FillTransparency = ESP_CONFIG.HighlightFillTransparency
  1124. hi.OutlineTransparency = ESP_CONFIG.OutlineTransparency
  1125. hi.Adornee = char
  1126. hi.Parent = char
  1127.  
  1128. local col = colorForPlayer(plr)
  1129. hi.FillColor = col
  1130. hi.OutlineColor = col
  1131. hi.Enabled = shouldShowPlayerESP(plr)
  1132.  
  1133. PlayerESP_Data[plr].highlight = hi
  1134.  
  1135. -- HP Bar
  1136. local bill = Instance.new("BillboardGui")
  1137. bill.Name = "PlayerESP_HP"
  1138. bill.AlwaysOnTop = true
  1139. bill.LightInfluence = 0
  1140. bill.Size = ESP_CONFIG.HPBarSize
  1141. bill.MaxDistance = ESP_CONFIG.HPBarMaxDistance
  1142. bill.Parent = char
  1143.  
  1144. if head then
  1145. bill.Adornee = head
  1146. local headSize = head.Size.Y
  1147. bill.StudsOffset = Vector3.new(0, headSize/2 + ESP_CONFIG.HPBarYOffset, 0)
  1148. else
  1149. bill.Adornee = root
  1150. bill.StudsOffset = Vector3.new(0, 2.5 + ESP_CONFIG.HPBarYOffset, 0)
  1151. end
  1152.  
  1153. local bg = Instance.new("Frame", bill)
  1154. bg.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
  1155. bg.BackgroundTransparency = 0.2
  1156. bg.BorderSizePixel = 0
  1157. bg.Size = UDim2.fromScale(1, 1)
  1158.  
  1159. local bgCorner = Instance.new("UICorner")
  1160. bgCorner.CornerRadius = UDim.new(0, 2)
  1161. bgCorner.Parent = bg
  1162.  
  1163. local bgStroke = Instance.new("UIStroke")
  1164. bgStroke.Color = Color3.fromRGB(0, 0, 0)
  1165. bgStroke.Thickness = 1.5
  1166. bgStroke.Parent = bg
  1167.  
  1168. local fill = Instance.new("Frame", bg)
  1169. fill.BackgroundColor3 = COLOR_FRIEND
  1170. fill.BorderSizePixel = 0
  1171. fill.Size = UDim2.fromScale(1, 1)
  1172.  
  1173. local fillCorner = Instance.new("UICorner")
  1174. fillCorner.CornerRadius = UDim.new(0, 2)
  1175. fillCorner.Parent = fill
  1176.  
  1177. bill.Enabled = shouldShowPlayerHP(plr)
  1178.  
  1179. PlayerESP_Data[plr].hpGui = bill
  1180. PlayerESP_Data[plr].hpFill = fill
  1181. PlayerESP_Data[plr].hum = hum
  1182. end
  1183.  
  1184. task.spawn(function()
  1185. while true do
  1186. task.wait(ESP_CONFIG.UpdateInterval)
  1187.  
  1188. for plr, pack in pairs(PlayerESP_Data) do
  1189. if plr and plr.Parent and plr.Character then
  1190. local hum = pack.hum
  1191.  
  1192. if hum and pack.hpFill then
  1193. local h = hum.Health
  1194. local m = hum.MaxHealth
  1195. if m <= 0 then m = 100 end
  1196.  
  1197. local ratio = math.clamp(h / m, 0, 1)
  1198. pack.hpFill.Size = UDim2.new(ratio, 0, 1, 0)
  1199.  
  1200. local r, g
  1201. if ratio > 0.5 then
  1202. r = (1 - ratio) * 2 * 255
  1203. g = 255
  1204. else
  1205. r = 255
  1206. g = ratio * 2 * 255
  1207. end
  1208.  
  1209. pack.hpFill.BackgroundColor3 = Color3.fromRGB(r, g, 0)
  1210.  
  1211. if pack.hpGui then
  1212. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and (h > 0)
  1213. end
  1214. end
  1215.  
  1216. if pack.highlight then
  1217. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  1218. end
  1219. else
  1220. clearPlayerESP(plr)
  1221. end
  1222. end
  1223. end
  1224. end)
  1225.  
  1226. Players.PlayerAdded:Connect(function(plr)
  1227. plr.CharacterAdded:Connect(function()
  1228. task.wait(1)
  1229. setupPlayerESP(plr)
  1230. end)
  1231. end)
  1232.  
  1233. Players.PlayerRemoving:Connect(function(plr)
  1234. clearPlayerESP(plr)
  1235. end)
  1236.  
  1237. for _, plr in ipairs(Players:GetPlayers()) do
  1238. if plr ~= LocalPlayer and plr.Character then
  1239. setupPlayerESP(plr)
  1240. end
  1241.  
  1242. plr.CharacterAdded:Connect(function()
  1243. task.wait(1)
  1244. setupPlayerESP(plr)
  1245. end)
  1246. end
  1247.  
  1248. --// ========== CARREGAR TELEPORTS SALVOS ========== //
  1249.  
  1250. local function loadSavedTeleports()
  1251. if not isfile then
  1252. Config.SavedTeleports = {}
  1253. print("📍 Nenhum teleport salvo (executor sem suporte)")
  1254. return
  1255. end
  1256.  
  1257. local success, data = pcall(function()
  1258. if isfile("PreHistoria_Teleports.json") then
  1259. return HttpService:JSONDecode(readfile("PreHistoria_Teleports.json"))
  1260. end
  1261. return {}
  1262. end)
  1263.  
  1264. if success and data then
  1265. Config.SavedTeleports = data
  1266. print("📍 Carregado " .. #data .. " teleports salvos")
  1267. else
  1268. Config.SavedTeleports = {}
  1269. print("📍 Nenhum teleport salvo encontrado")
  1270. end
  1271. end
  1272.  
  1273. loadSavedTeleports()
  1274.  
  1275. --// ========== CARREGAR WINDUI ========== //
  1276.  
  1277. print("🔄 Carregando WindUI...")
  1278.  
  1279. local success, WindUI = pcall(function()
  1280. return loadstring(game:HttpGet("https://raw.githubusercontent.com/Footagesus/WindUI/refs/heads/main/source.lua"))()
  1281. end)
  1282.  
  1283. if not success or not WindUI then
  1284. error("❌ ERRO: Não foi possível carregar WindUI!\n" .. tostring(WindUI))
  1285. return
  1286. end
  1287.  
  1288. print("✅ WindUI carregada com sucesso!")
  1289.  
  1290. --// ========== CRIAR INTERFACE WINDUI ========== //
  1291.  
  1292. local Window = WindUI:CreateWindow({
  1293. Title = "🦖 Pré-história - " .. ScriptVersion,
  1294. Icon = "rbxassetid://10723415766",
  1295. Author = "NickZScripts",
  1296. Folder = "PreHistoriaConfig",
  1297. Size = UDim2.fromOffset(550, 650),
  1298. KeySystem = false,
  1299. Transparent = false,
  1300. Theme = "Dark",
  1301. SideBarWidth = 170,
  1302. })
  1303.  
  1304. --// ========== VARIÁVEL DE NOTIFICAÇÃO ========== //
  1305.  
  1306. local Notify = function(title, description, duration)
  1307. if Window and Window.Notify then
  1308. Window:Notify({
  1309. Title = title,
  1310. Description = description,
  1311. Duration = duration or 3
  1312. })
  1313. end
  1314. end
  1315.  
  1316. --// ========== ABA MENU ========== //
  1317.  
  1318. local MenuTab = Window:Tab({
  1319. Title = "Menu",
  1320. Icon = "home"
  1321. })
  1322.  
  1323. local InfoSection = MenuTab:Section({
  1324. Title = "📊 Informações do Servidor"
  1325. })
  1326.  
  1327. local PlayersCountLabel = InfoSection:Label({
  1328. Text = "👥 Players Online: 0/0"
  1329. })
  1330.  
  1331. local function updatePlayerCount()
  1332. local current = #Players:GetPlayers()
  1333. local max = Players.MaxPlayers
  1334. PlayersCountLabel:Set(string.format("👥 Players Online: %d/%d", current, max))
  1335. end
  1336.  
  1337. updatePlayerCount()
  1338.  
  1339. Players.PlayerAdded:Connect(updatePlayerCount)
  1340. Players.PlayerRemoving:Connect(updatePlayerCount)
  1341.  
  1342. task.spawn(function()
  1343. while true do
  1344. task.wait(5)
  1345. updatePlayerCount()
  1346. end
  1347. end)
  1348.  
  1349. InfoSection:Label({
  1350. Text = "📜 Versão: " .. ScriptVersion
  1351. })
  1352.  
  1353. InfoSection:Label({
  1354. Text = "✅ Status: Operacional"
  1355. })
  1356.  
  1357. InfoSection:Label({
  1358. Text = "🎨 Interface: WindUI"
  1359. })
  1360.  
  1361. local PlayerSection = MenuTab:Section({
  1362. Title = "👤 Informações do Jogador"
  1363. })
  1364.  
  1365. PlayerSection:Label({
  1366. Text = "Nome: " .. LocalPlayer.Name
  1367. })
  1368.  
  1369. PlayerSection:Label({
  1370. Text = "Display: " .. LocalPlayer.DisplayName
  1371. })
  1372.  
  1373. PlayerSection:Label({
  1374. Text = "ID: " .. LocalPlayer.UserId
  1375. })
  1376.  
  1377. local SystemsSection = MenuTab:Section({
  1378. Title = "⚡ Sistemas Ativos"
  1379. })
  1380.  
  1381. local AutoFarmStatusLabel = SystemsSection:Label({
  1382. Text = "💎 Auto Farm - Desligado"
  1383. })
  1384.  
  1385. local EspCarnesStatusLabel = SystemsSection:Label({
  1386. Text = "🥩 ESP Carnes - Desligado"
  1387. })
  1388.  
  1389. local EspJogadoresStatusLabel = SystemsSection:Label({
  1390. Text = "👥 ESP Jogadores - Desligado"
  1391. })
  1392.  
  1393. local AutoColetaStatusLabel = SystemsSection:Label({
  1394. Text = "🔄 Auto Coleta - Desligado"
  1395. })
  1396.  
  1397. local CreditsSection = MenuTab:Section({
  1398. Title = "👨‍💻 Créditos"
  1399. })
  1400.  
  1401. CreditsSection:Label({
  1402. Text = "Desenvolvedor: NickZScripts"
  1403. })
  1404.  
  1405. CreditsSection:Label({
  1406. Text = "Interface: WindUI Library"
  1407. })
  1408.  
  1409. CreditsSection:Label({
  1410. Text = "Versão: " .. ScriptVersion
  1411. })
  1412.  
  1413. --// ========== ABA AUTO FARM ========== //
  1414.  
  1415. local FarmTab = Window:Tab({
  1416. Title = "Auto Farm",
  1417. Icon = "zap"
  1418. })
  1419.  
  1420. local CrystalSection = FarmTab:Section({
  1421. Title = "💎 Farm de Cristais"
  1422. })
  1423.  
  1424. local DinoLevelLabel = CrystalSection:Label({
  1425. Text = "🦖 Nível do Dino: 0/60"
  1426. })
  1427.  
  1428. task.spawn(function()
  1429. while true do
  1430. task.wait(2)
  1431. local level = getDinoLevelSilent()
  1432. DinoLevelLabel:Set(string.format("🦖 Nível do Dino: %d/60", level))
  1433. end
  1434. end)
  1435.  
  1436. CrystalSection:Toggle({
  1437. Title = "Auto Farm Cristais",
  1438. Description = "Farma cristais automaticamente",
  1439. Default = false,
  1440. Callback = function(Value)
  1441. Config.AutoFarm = Value
  1442.  
  1443. if Value then
  1444. AutoFarmStatusLabel:Set("💎 Auto Farm - Ligado")
  1445. Notify("✅ Ativado", "Auto Farm ligado", 2)
  1446. else
  1447. AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
  1448. Notify("❌ Desativado", "Auto Farm desligado", 2)
  1449. end
  1450. end
  1451. })
  1452.  
  1453. local ColetaSection = FarmTab:Section({
  1454. Title = "🔄 Auto Coleta"
  1455. })
  1456.  
  1457. ColetaSection:Toggle({
  1458. Title = "Auto Coleta",
  1459. Description = "Coleta itens automaticamente",
  1460. Default = false,
  1461. Callback = function(Value)
  1462. Config.AutoColeta = Value
  1463.  
  1464. if Value then
  1465. AutoColetaStatusLabel:Set("🔄 Auto Coleta - Ligado")
  1466. Notify("✅ Ativado", "Auto Coleta ligado", 2)
  1467. else
  1468. AutoColetaStatusLabel:Set("🔄 Auto Coleta - Desligado")
  1469. Notify("❌ Desativado", "Auto Coleta desligado", 2)
  1470. end
  1471. end
  1472. })
  1473.  
  1474. --// ========== ABA ESP ========== //
  1475.  
  1476. local EspTab = Window:Tab({
  1477. Title = "ESP",
  1478. Icon = "eye"
  1479. })
  1480.  
  1481. local PlayerESPSection = EspTab:Section({
  1482. Title = "👥 ESP de Jogadores"
  1483. })
  1484.  
  1485. PlayerESPSection:Toggle({
  1486. Title = "ESP de Jogadores",
  1487. Description = "Mostra jogadores através de paredes",
  1488. Default = false,
  1489. Callback = function(Value)
  1490. Config.PlayerESP = Value
  1491.  
  1492. if Value then
  1493. EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Ligado")
  1494.  
  1495. for _, plr in ipairs(Players:GetPlayers()) do
  1496. if plr ~= LocalPlayer then
  1497. setupPlayerESP(plr)
  1498. end
  1499. end
  1500.  
  1501. Notify("✅ Ativado", "ESP Jogadores ligado", 2)
  1502. else
  1503. EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Desligado")
  1504.  
  1505. for plr, pack in pairs(PlayerESP_Data) do
  1506. if pack.highlight then pack.highlight.Enabled = false end
  1507. if pack.hpGui then pack.hpGui.Enabled = false end
  1508. end
  1509.  
  1510. Notify("❌ Desativado", "ESP Jogadores desligado", 2)
  1511. end
  1512. end
  1513. })
  1514.  
  1515. PlayerESPSection:Toggle({
  1516. Title = "Barra de Vida",
  1517. Description = "Mostra HP dos jogadores",
  1518. Default = false,
  1519. Callback = function(Value)
  1520. Config.PlayerESP_ShowHP = Value
  1521.  
  1522. for plr, pack in pairs(PlayerESP_Data) do
  1523. if pack.hpGui then
  1524. pack.hpGui.Enabled = shouldShowPlayerHP(plr)
  1525. end
  1526. end
  1527.  
  1528. Notify(Value and "✅ Ativado" or "❌ Desativado", "Barra de Vida " .. (Value and "ligada" or "desligada"), 2)
  1529. end
  1530. })
  1531.  
  1532. PlayerESPSection:Toggle({
  1533. Title = "TeamCheck (Só Inimigos)",
  1534. Description = "Mostra apenas jogadores inimigos",
  1535. Default = false,
  1536. Callback = function(Value)
  1537. Config.PlayerESP_TeamCheck = Value
  1538.  
  1539. for plr, pack in pairs(PlayerESP_Data) do
  1540. if pack.highlight then
  1541. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  1542. end
  1543. if pack.hpGui then
  1544. pack.hpGui.Enabled = shouldShowPlayerHP(plr)
  1545. end
  1546. end
  1547.  
  1548. Notify(Value and "✅ Ativado" or "❌ Desativado", "TeamCheck " .. (Value and "ligado" or "desligado"), 2)
  1549. end
  1550. })
  1551.  
  1552. local MeatESPSection = EspTab:Section({
  1553. Title = "🥩 ESP de Carnes"
  1554. })
  1555.  
  1556. MeatESPSection:Toggle({
  1557. Title = "ESP de Carnes",
  1558. Description = "Mostra carnes no mapa",
  1559. Default = false,
  1560. Callback = function(Value)
  1561. Config.EspMeatActive = Value
  1562.  
  1563. if Value then
  1564. EspCarnesStatusLabel:Set("🥩 ESP Carnes - Ligado")
  1565. startMeatESP()
  1566. Notify("✅ Ativado", "ESP Carnes ligado", 2)
  1567. else
  1568. EspCarnesStatusLabel:Set("🥩 ESP Carnes - Desligado")
  1569. stopMeatESP()
  1570. Notify("❌ Desativado", "ESP Carnes desligado", 2)
  1571. end
  1572. end
  1573. })
  1574.  
  1575. --// ========== ABA TELEPORT ========== //
  1576.  
  1577. local TeleportTab = Window:Tab({
  1578. Title = "Teleport",
  1579. Icon = "navigation"
  1580. })
  1581.  
  1582. local QuickTPSection = TeleportTab:Section({
  1583. Title = "🍖 Teleportes Rápidos"
  1584. })
  1585.  
  1586. QuickTPSection:Button({
  1587. Title = "Teleportar para Carne Mais Próxima",
  1588. Description = "TP para a carne mais perto",
  1589. Callback = function()
  1590. local meat, distance = findNearestMeat()
  1591.  
  1592. if not meat then
  1593. Notify("❌ Erro", "Nenhuma carne encontrada!", 2)
  1594. return
  1595. end
  1596.  
  1597. safeTeleport(CFrame.new(meat.Position + Vector3.new(0, 3, 0)), "Carne")
  1598. Notify("✅ Teleportado", "Teleportado para carne!", 2)
  1599. end
  1600. })
  1601.  
  1602. local SpawnTPSection = TeleportTab:Section({
  1603. Title = "🏠 Teleporte para Spawn"
  1604. })
  1605.  
  1606. SpawnTPSection:Button({
  1607. Title = "Voltar ao Spawn",
  1608. Description = "TP para seu spawn inicial",
  1609. Callback = function()
  1610. if not LastSpawnPosition then
  1611. Notify("❌ Erro", "Spawn não detectado!", 2)
  1612. return
  1613. end
  1614.  
  1615. safeTeleport(LastSpawnPosition, "Spawn")
  1616. Notify("✅ Teleportado", "Voltou ao spawn!", 2)
  1617. end
  1618. })
  1619.  
  1620. if #Config.SavedTeleports > 0 then
  1621. local SavedTPSection = TeleportTab:Section({
  1622. Title = "📍 Locais Salvos"
  1623. })
  1624.  
  1625. for i, data in ipairs(Config.SavedTeleports) do
  1626. if data.position then
  1627. local locationName = data.name or ("Local " .. i)
  1628.  
  1629. SavedTPSection:Button({
  1630. Title = "📍 " .. locationName,
  1631. Description = "Teleportar para este local",
  1632. Callback = function()
  1633. local pos = data.position
  1634.  
  1635. if not pos or not pos.X or not pos.Y or not pos.Z then
  1636. Notify("❌ Erro", "Posição inválida!", 2)
  1637. return
  1638. end
  1639.  
  1640. local targetCF = CFrame.new(pos.X, pos.Y, pos.Z)
  1641. safeTeleport(targetCF, locationName)
  1642. Notify("✅ Teleportado", locationName, 2)
  1643. end
  1644. })
  1645. end
  1646. end
  1647. end
  1648.  
  1649. --// ========== ABA OUTROS ========== //
  1650.  
  1651. local OthersTab = Window:Tab({
  1652. Title = "Outros",
  1653. Icon = "settings"
  1654. })
  1655.  
  1656. local ClickTPSection = OthersTab:Section({
  1657. Title = "🎯 Click Teleport"
  1658. })
  1659.  
  1660. ClickTPSection:Label({
  1661. Text = "ℹ️ Sobre Click Teleport"
  1662. })
  1663.  
  1664. ClickTPSection:Label({
  1665. Text = "Teleporte clicando em superfícies"
  1666. })
  1667.  
  1668. ClickTPSection:Label({
  1669. Text = "✅ Personagem olha para onde clicou"
  1670. })
  1671.  
  1672. ClickTPSection:Label({
  1673. Text = "✅ Sem efeitos visuais"
  1674. })
  1675.  
  1676. ClickTPSection:Button({
  1677. Title = "🎯 Abrir Click Teleport",
  1678. Description = "Abre interface independente",
  1679. Callback = function()
  1680. if not Config.ClickTeleportEnabled then
  1681. ClickTeleportModule.Toggle(true)
  1682. Notify("✅ Click Teleport", "Interface aberta!", 2)
  1683. else
  1684. Notify("ℹ️ Já Ativo", "Click Teleport já está aberto!", 2)
  1685. end
  1686. end
  1687. })
  1688.  
  1689. local AboutSection = OthersTab:Section({
  1690. Title = "ℹ️ Informações do Script"
  1691. })
  1692.  
  1693. AboutSection:Label({
  1694. Text = "⚙️ Interface WindUI"
  1695. })
  1696.  
  1697. AboutSection:Label({
  1698. Text = "Todas funcionalidades mantidas!"
  1699. })
  1700.  
  1701. AboutSection:Label({
  1702. Text = "✨ Design moderno e responsivo"
  1703. })
  1704.  
  1705. --// ========== AUTO FARM LOOP ========== //
  1706.  
  1707. task.spawn(function()
  1708. local index = 1
  1709. while true do
  1710. task.wait(Config.CheckDelay)
  1711. if Config.AutoFarm then
  1712. local currentLevel = getDinoLevelSilent()
  1713.  
  1714. if currentLevel >= 60 then
  1715. Config.AutoFarm = false
  1716. AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
  1717.  
  1718. Notify("✅ Completo", "Nível 60 atingido!", 3)
  1719. else
  1720. local crystals = getSortedCrystals()
  1721. if #crystals > 0 then
  1722. for _, c in ipairs(crystals) do
  1723. if not Config.AutoFarm or not c or not c.Parent then break end
  1724. teleportToCrystal(c)
  1725.  
  1726. local fixarConexao = RunService.Heartbeat:Connect(function()
  1727. if Config.AutoFarm and c and c:IsDescendantOf(workspace) then
  1728. local char = getCharacter()
  1729. if char and char.PrimaryPart then
  1730. char:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  1731. end
  1732. end
  1733. end)
  1734.  
  1735. local elapsed = 0
  1736. while c:IsDescendantOf(workspace) and elapsed < 12 and Config.AutoFarm do
  1737. task.wait(Config.CheckDelay)
  1738. elapsed += Config.CheckDelay
  1739. end
  1740. fixarConexao:Disconnect()
  1741. task.wait(Config.DelayBetweenCrystals)
  1742. end
  1743. else
  1744. index = (index % #Config.PatrulhaPontos) + 1
  1745. teleportTo(Config.PatrulhaPontos[index])
  1746. task.wait(2)
  1747. end
  1748. end
  1749. end
  1750. end
  1751. end)
  1752.  
  1753. --// ========== AUTO COLETA ========== //
  1754.  
  1755. RunService.Heartbeat:Connect(function()
  1756. if not (Config.AutoFarm or Config.AutoColeta) then return end
  1757.  
  1758. if not Config.podeExecutar then return end
  1759. Config.podeExecutar = false
  1760.  
  1761. local root = getHumanoidRootPart()
  1762. if root then
  1763. for _, obj in ipairs(workspace:GetDescendants()) do
  1764. if obj:IsA("ProximityPrompt") and obj.Parent and obj.Parent:IsA("BasePart") then
  1765. if obj.Enabled and (obj.Parent.Position - root.Position).Magnitude <= Config.raioDeColeta then
  1766. pcall(function()
  1767. fireproximityprompt(obj)
  1768. end)
  1769. end
  1770. end
  1771. end
  1772. end
  1773.  
  1774. task.delay(Config.delayEntreTentativas, function()
  1775. Config.podeExecutar = true
  1776. end)
  1777. end)
  1778.  
  1779. --// ========== CLEANUP AO SAIR ========== //
  1780.  
  1781. LocalPlayer.CharacterRemoving:Connect(function()
  1782. ClickTeleportModule.Cleanup()
  1783. end)
  1784.  
  1785. --// ========== LOGS FINAIS ========== //
  1786.  
  1787. print("╔═══════════════════════════════════════════════════════════╗")
  1788. print("║ Pré-história - By: NickZScripts ║")
  1789. print("╠═══════════════════════════════════════════════════════════╣")
  1790. print("║ ✅ Interface WindUI carregada com sucesso! ║")
  1791. print("║ 📌 Versão: " .. ScriptVersion .. " ║")
  1792. print("║ 🎮 Jogador: " .. LocalPlayer.Name)
  1793. print("║ 📊 Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
  1794. print("║ 📍 Teleports Salvos: " .. #Config.SavedTeleports)
  1795. print("╠═══════════════════════════════════════════════════════════╣")
  1796. print("║ 🎨 Interface: WindUI Library ║")
  1797. print("║ 🚀 Sistema de Teleporte Ultra-Rápido ║")
  1798. print("║ 👁️ ESP de Jogadores e Carnes ║")
  1799. print("║ ⚡ Auto Farm + Auto Coleta ║")
  1800. print("║ 🎯 Click Teleport Integrado ║")
  1801. print("╚═══════════════════════════════════════════════════════════╝")
  1802.  
  1803. Notify("🦖 Pré-história", "Script carregado!\nVersão: " .. ScriptVersion, 3)
  1804.  
  1805. print("✅ Script totalmente carregado e funcional!")
Add Comment
Please, Sign In to add comment