Nevzyn

Untitled

Oct 19th, 2025 (edited)
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.95 KB | None | 0 0
  1. --[[
  2. ╔═══════════════════════════════════════════════════════════╗
  3. ║ Pré-história - By: NickZScripts ║
  4. ║ Sistema Modular & Anti-Conflitos ║
  5. ║ Interface: Rayfield Library ║
  6. ║ MEGA UPDATE v5.0.0 ║
  7. ╚═══════════════════════════════════════════════════════════╝
  8.  
  9. 🆕 NOVIDADES v5.0.0:
  10. ✅ Admin Detector Avançado
  11. ✅ Server Hop Inteligente
  12. ✅ Hitbox Expander
  13. ✅ Bloom Crystal Detector
  14. ✅ Anti-Kick/Anti-Lag Robusto
  15. ✅ Otimizações Extremas
  16. ✅ Estatísticas Completas
  17. ✅ Auto Update System
  18. ]]
  19.  
  20. --// ========== SERVICES ========== //
  21. local Players = game:GetService("Players")
  22. local RunService = game:GetService("RunService")
  23. local HttpService = game:GetService("HttpService")
  24. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  25. local Teams = game:GetService("Teams")
  26. local TweenService = game:GetService("TweenService")
  27. local UserInputService = game:GetService("UserInputService")
  28. local TeleportService = game:GetService("TeleportService")
  29. local CoreGui = game:GetService("CoreGui")
  30. local Stats = game:GetService("Stats")
  31.  
  32. --// ========== VARIÁVEIS GLOBAIS ========== //
  33. local LocalPlayer = Players.LocalPlayer
  34. local ScriptVersion = "5.0.0"
  35. local LastSpawnPosition = nil
  36. local Camera = workspace.CurrentCamera
  37. local ActiveTeleportConnection = nil
  38.  
  39. --// ========== CONFIGURAÇÕES GLOBAIS ========== //
  40. local Config = {
  41. -- Auto Farm
  42. AutoFarm = false,
  43. AutoColeta = false,
  44. CheckDelay = 0.3,
  45. DelayBetweenCrystals = 0.1,
  46. raioDeColeta = 25,
  47. delayEntreTentativas = 0.25,
  48. podeExecutar = true,
  49.  
  50. -- ESP de Carnes
  51. EspMeatActive = false,
  52. ESP_MIN_SIZE = 35,
  53. ESP_MAX_SIZE = 65,
  54. ESP_UPDATE_RATE = 0.1,
  55. MAX_VISIBLE_DISTANCE = 999999,
  56.  
  57. -- ESP de Jogadores
  58. PlayerESP = false,
  59. PlayerESP_ShowHP = false,
  60. PlayerESP_TeamCheck = false,
  61.  
  62. -- Click Teleport
  63. ClickTeleportEnabled = false,
  64.  
  65. -- Teleports Salvos
  66. SavedTeleports = {},
  67.  
  68. -- Patrulha
  69. PatrulhaPontos = {
  70. CFrame.new(0, 30, 0),
  71. CFrame.new(800, 30, 400),
  72. CFrame.new(-750, 30, -600),
  73. CFrame.new(450, 30, -1000),
  74. CFrame.new(-900, 30, 700),
  75. CFrame.new(0, 30, 1000),
  76. },
  77.  
  78. -- 🆕 NOVOS SISTEMAS
  79. AdminDetector = true,
  80. AutoPauseOnAdmin = true,
  81. ServerHop = false,
  82. HitboxExpander = false,
  83. HitboxSize = 20,
  84. BloomDetector = true,
  85. AutoTeleportToBloom = false,
  86. AntiKick = true,
  87. FPSBooster = true,
  88. }
  89.  
  90. --// ========== CACHE DE NÍVEL ========== //
  91. local DinoLevelCache = {
  92. value = 0,
  93. lastUpdate = 0,
  94. updateInterval = 2
  95. }
  96.  
  97. --// ========== 📊 SISTEMA DE ESTATÍSTICAS ========== //
  98. local Stats_Data = {
  99. SessionStart = tick(),
  100. CrystalsCollected = 0,
  101. MeatsCollected = 0,
  102. TeleportsUsed = 0,
  103. DeathsAvoided = 0,
  104. AdminsDetected = 0,
  105. BloomCrystalsFound = 0,
  106. LastXP = 0,
  107. CurrentXP = 0,
  108. XPGained = 0,
  109. }
  110.  
  111. local function updateStat(statName, value)
  112. if Stats_Data[statName] ~= nil then
  113. Stats_Data[statName] = Stats_Data[statName] + value
  114. end
  115. end
  116.  
  117. local function getSessionTime()
  118. local elapsed = tick() - Stats_Data.SessionStart
  119. local hours = math.floor(elapsed / 3600)
  120. local minutes = math.floor((elapsed % 3600) / 60)
  121. local seconds = math.floor(elapsed % 60)
  122. return string.format("%02d:%02d:%02d", hours, minutes, seconds)
  123. end
  124.  
  125. local function getCrystalsPerHour()
  126. local elapsed = (tick() - Stats_Data.SessionStart) / 3600
  127. if elapsed > 0 then
  128. return math.floor(Stats_Data.CrystalsCollected / elapsed)
  129. end
  130. return 0
  131. end
  132.  
  133. local function getXPPerHour()
  134. local elapsed = (tick() - Stats_Data.SessionStart) / 3600
  135. if elapsed > 0 then
  136. return math.floor(Stats_Data.XPGained / elapsed)
  137. end
  138. return 0
  139. end
  140.  
  141. --// ========== 🛡️ MÓDULO: ADMIN DETECTOR AVANÇADO ========== //
  142. local AdminDetector = (function()
  143. local _adminList = {}
  144. local _detectionMethods = {}
  145. local _scanning = false
  146. local _pausedSystems = false
  147.  
  148. -- Lista de tags/grupos comuns de admins
  149. local ADMIN_KEYWORDS = {
  150. "admin", "mod", "moderator", "owner", "creator",
  151. "dev", "developer", "staff", "manager"
  152. }
  153.  
  154. local ADMIN_GROUPS = {
  155. -- Adicione IDs de grupos de admin conhecidos aqui
  156. -- Ex: 1234567, 7654321
  157. }
  158.  
  159. -- Métodos de detecção
  160. local function checkUsername(player)
  161. local name = player.Name:lower()
  162. local displayName = player.DisplayName:lower()
  163.  
  164. for _, keyword in ipairs(ADMIN_KEYWORDS) do
  165. if name:find(keyword) or displayName:find(keyword) then
  166. return true, "Username/DisplayName contém: " .. keyword
  167. end
  168. end
  169. return false
  170. end
  171.  
  172. local function checkGroupRank(player)
  173. for _, groupId in ipairs(ADMIN_GROUPS) do
  174. local success, rank = pcall(function()
  175. return player:GetRankInGroup(groupId)
  176. end)
  177.  
  178. if success and rank > 0 then
  179. return true, "Membro do grupo: " .. groupId .. " (Rank: " .. rank .. ")"
  180. end
  181. end
  182. return false
  183. end
  184.  
  185. local function checkCharacterAppearance(player)
  186. if not player.Character then return false end
  187.  
  188. -- Detecta "Sparkles" ou "Fire" (comum em admins)
  189. for _, obj in ipairs(player.Character:GetDescendants()) do
  190. if obj:IsA("Sparkles") or obj:IsA("Fire") or obj:IsA("PointLight") then
  191. return true, "Efeitos especiais detectados"
  192. end
  193. end
  194.  
  195. return false
  196. end
  197.  
  198. local function checkTools(player)
  199. if not player.Character then return false end
  200.  
  201. local backpack = player:FindFirstChild("Backpack")
  202. if backpack then
  203. for _, tool in ipairs(backpack:GetChildren()) do
  204. if tool:IsA("Tool") then
  205. local toolName = tool.Name:lower()
  206. for _, keyword in ipairs(ADMIN_KEYWORDS) do
  207. if toolName:find(keyword) or toolName:find("ban") or toolName:find("kick") then
  208. return true, "Tool de admin detectada: " .. tool.Name
  209. end
  210. end
  211. end
  212. end
  213. end
  214.  
  215. return false
  216. end
  217.  
  218. local function checkPlayerList(player)
  219. -- Verifica se o player tem ícone de admin na lista de players
  220. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  221. if playerGui then
  222. local playerList = playerGui:FindFirstChild("PlayerList")
  223. if playerList then
  224. -- Lógica personalizada dependendo do jogo
  225. -- Alguns jogos mostram ícones especiais para admins
  226. end
  227. end
  228. return false
  229. end
  230.  
  231. -- Adiciona métodos de detecção
  232. table.insert(_detectionMethods, checkUsername)
  233. table.insert(_detectionMethods, checkGroupRank)
  234. table.insert(_detectionMethods, checkCharacterAppearance)
  235. table.insert(_detectionMethods, checkTools)
  236.  
  237. local function isAdmin(player)
  238. if player == LocalPlayer then return false end
  239.  
  240. for _, method in ipairs(_detectionMethods) do
  241. local isAdm, reason = method(player)
  242. if isAdm then
  243. return true, reason
  244. end
  245. end
  246.  
  247. return false
  248. end
  249.  
  250. local function pauseAllSystems()
  251. if _pausedSystems then return end
  252. _pausedSystems = true
  253.  
  254. Config.AutoFarm = false
  255. Config.AutoColeta = false
  256. Config.EspMeatActive = false
  257. Config.PlayerESP = false
  258.  
  259. print("⚠️ SISTEMAS PAUSADOS - Admin detectado!")
  260. end
  261.  
  262. local function resumeAllSystems()
  263. if not _pausedSystems then return end
  264. _pausedSystems = false
  265.  
  266. print("✅ Sistemas retomados - Admin saiu")
  267. end
  268.  
  269. local function scanPlayer(player)
  270. local isAdm, reason = isAdmin(player)
  271.  
  272. if isAdm then
  273. if not _adminList[player] then
  274. _adminList[player] = {
  275. Name = player.Name,
  276. DisplayName = player.DisplayName,
  277. UserId = player.UserId,
  278. Reason = reason,
  279. DetectedAt = tick()
  280. }
  281.  
  282. updateStat("AdminsDetected", 1)
  283.  
  284. -- Notificação crítica
  285. if Config.AdminDetector then
  286. local Rayfield = getgenv().RayfieldInstance
  287. if Rayfield then
  288. Rayfield:Notify({
  289. Title = "🚨 ADMIN DETECTADO!",
  290. Content = player.Name .. "\n" .. reason,
  291. Duration = 10,
  292. Image = 4483362458
  293. })
  294. end
  295. end
  296.  
  297. -- Pausa automática
  298. if Config.AutoPauseOnAdmin then
  299. pauseAllSystems()
  300. end
  301.  
  302. print("╔════════════════════════════════════════╗")
  303. print("║ 🚨 ADMIN DETECTADO NO SERVIDOR ║")
  304. print("╠════════════════════════════════════════╣")
  305. print("║ Nome: " .. player.Name)
  306. print("║ Display: " .. player.DisplayName)
  307. print("║ ID: " .. player.UserId)
  308. print("║ Motivo: " .. reason)
  309. print("╚════════════════════════════════════════╝")
  310. end
  311. end
  312. end
  313.  
  314. local function scanAllPlayers()
  315. for _, player in ipairs(Players:GetPlayers()) do
  316. scanPlayer(player)
  317. end
  318.  
  319. -- Se não houver admins, retomar sistemas
  320. local hasAdmin = false
  321. for _, _ in pairs(_adminList) do
  322. hasAdmin = true
  323. break
  324. end
  325.  
  326. if not hasAdmin and _pausedSystems then
  327. resumeAllSystems()
  328. end
  329. end
  330.  
  331. local function startScanning()
  332. if _scanning then return end
  333. _scanning = true
  334.  
  335. -- Scan inicial
  336. scanAllPlayers()
  337.  
  338. -- Monitor novos players
  339. Players.PlayerAdded:Connect(function(player)
  340. task.wait(1) -- Aguarda carregar
  341. scanPlayer(player)
  342. end)
  343.  
  344. Players.PlayerRemoving:Connect(function(player)
  345. if _adminList[player] then
  346. print("✅ Admin saiu: " .. player.Name)
  347. _adminList[player] = nil
  348.  
  349. -- Verifica se ainda há admins
  350. local hasAdmin = false
  351. for _, _ in pairs(_adminList) do
  352. hasAdmin = true
  353. break
  354. end
  355.  
  356. if not hasAdmin and _pausedSystems then
  357. resumeAllSystems()
  358. end
  359. end
  360. end)
  361.  
  362. -- Re-scan periódico (a cada 30 segundos)
  363. task.spawn(function()
  364. while _scanning do
  365. task.wait(30)
  366. scanAllPlayers()
  367. end
  368. end)
  369.  
  370. print("✅ Admin Detector iniciado")
  371. end
  372.  
  373. return {
  374. Start = startScanning,
  375. IsAdmin = isAdmin,
  376. GetAdminList = function() return _adminList end,
  377. GetAdminCount = function()
  378. local count = 0
  379. for _, _ in pairs(_adminList) do count = count + 1 end
  380. return count
  381. end
  382. }
  383. end)()
  384.  
  385. --// ========== 🌐 MÓDULO: SERVER HOP INTELIGENTE ========== //
  386. local ServerHop = (function()
  387. local _hopping = false
  388.  
  389. local function getServerList()
  390. local servers = {}
  391. local cursor = ""
  392. local placeId = game.PlaceId
  393.  
  394. repeat
  395. local success, result = pcall(function()
  396. return HttpService:JSONDecode(game:HttpGet(
  397. "https://games.roblox.com/v1/games/" .. placeId .. "/servers/Public?sortOrder=Asc&limit=100&cursor=" .. cursor
  398. ))
  399. end)
  400.  
  401. if success and result then
  402. for _, server in ipairs(result.data) do
  403. if server.playing < server.maxPlayers and server.id ~= game.JobId then
  404. table.insert(servers, {
  405. id = server.id,
  406. playing = server.playing,
  407. maxPlayers = server.maxPlayers,
  408. ping = server.ping or 0
  409. })
  410. end
  411. end
  412. cursor = result.nextPageCursor or ""
  413. else
  414. break
  415. end
  416. until cursor == "" or #servers >= 50
  417.  
  418. return servers
  419. end
  420.  
  421. local function findBestServer(filters)
  422. filters = filters or {}
  423. local minPlayers = filters.minPlayers or 0
  424. local maxPlayers = filters.maxPlayers or 50
  425. local maxPing = filters.maxPing or 300
  426.  
  427. local servers = getServerList()
  428. local bestServer = nil
  429.  
  430. for _, server in ipairs(servers) do
  431. if server.playing >= minPlayers and
  432. server.playing <= maxPlayers and
  433. server.ping <= maxPing then
  434. if not bestServer or server.playing < bestServer.playing then
  435. bestServer = server
  436. end
  437. end
  438. end
  439.  
  440. return bestServer
  441. end
  442.  
  443. local function hop(serverId)
  444. if _hopping then return false end
  445. _hopping = true
  446.  
  447. print("🌐 Iniciando Server Hop...")
  448.  
  449. local success, err = pcall(function()
  450. if serverId then
  451. TeleportService:TeleportToPlaceInstance(game.PlaceId, serverId, LocalPlayer)
  452. else
  453. -- Teleporte para servidor aleatório
  454. local servers = getServerList()
  455. if #servers > 0 then
  456. local randomServer = servers[math.random(1, #servers)]
  457. TeleportService:TeleportToPlaceInstance(game.PlaceId, randomServer.id, LocalPlayer)
  458. else
  459. TeleportService:Teleport(game.PlaceId, LocalPlayer)
  460. end
  461. end
  462. end)
  463.  
  464. if not success then
  465. warn("❌ Erro ao fazer Server Hop: " .. tostring(err))
  466. _hopping = false
  467. return false
  468. end
  469.  
  470. return true
  471. end
  472.  
  473. local function hopToLowPopulation()
  474. local server = findBestServer({
  475. minPlayers = 0,
  476. maxPlayers = 10,
  477. maxPing = 250
  478. })
  479.  
  480. if server then
  481. print("✅ Servidor encontrado: " .. server.playing .. "/" .. server.maxPlayers .. " players")
  482. return hop(server.id)
  483. else
  484. print("⚠️ Nenhum servidor encontrado, usando hop aleatório")
  485. return hop()
  486. end
  487. end
  488.  
  489. local function rejoin()
  490. TeleportService:Teleport(game.PlaceId, LocalPlayer)
  491. end
  492.  
  493. return {
  494. Hop = hop,
  495. HopToLowPopulation = hopToLowPopulation,
  496. Rejoin = rejoin,
  497. FindBestServer = findBestServer,
  498. GetServerList = getServerList
  499. }
  500. end)()
  501.  
  502. --// ========== 🎯 MÓDULO: HITBOX EXPANDER ========== //
  503. local HitboxExpander = (function()
  504. local _enabled = false
  505. local _originalSizes = {}
  506. local _updateLoop = nil
  507.  
  508. local function expandHitbox(character, size)
  509. if not character then return end
  510.  
  511. local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
  512. if not humanoidRootPart then return end
  513.  
  514. -- Salva tamanho original
  515. if not _originalSizes[character] then
  516. _originalSizes[character] = humanoidRootPart.Size
  517. end
  518.  
  519. -- Expande hitbox
  520. humanoidRootPart.Size = Vector3.new(size, size, size)
  521. humanoidRootPart.Transparency = 1
  522. humanoidRootPart.CanCollide = false
  523. humanoidRootPart.Massless = true
  524. end
  525.  
  526. local function restoreHitbox(character)
  527. if not character then return end
  528.  
  529. local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
  530. if not humanoidRootPart then return end
  531.  
  532. if _originalSizes[character] then
  533. humanoidRootPart.Size = _originalSizes[character]
  534. humanoidRootPart.Transparency = 1
  535. _originalSizes[character] = nil
  536. end
  537. end
  538.  
  539. local function updateAllHitboxes()
  540. if not _enabled then return end
  541.  
  542. for _, player in ipairs(Players:GetPlayers()) do
  543. if player ~= LocalPlayer and player.Character then
  544. expandHitbox(player.Character, Config.HitboxSize)
  545. end
  546. end
  547.  
  548. -- Também expande hitboxes de NPCs/Dinossauros
  549. local possibleFolders = {
  550. workspace:FindFirstChild("Dinosaurs"),
  551. workspace:FindFirstChild("NPCs"),
  552. workspace:FindFirstChild("Creatures"),
  553. workspace:FindFirstChild("Animals")
  554. }
  555.  
  556. for _, folder in ipairs(possibleFolders) do
  557. if folder then
  558. for _, npc in ipairs(folder:GetChildren()) do
  559. if npc:IsA("Model") and npc:FindFirstChild("HumanoidRootPart") then
  560. expandHitbox(npc, Config.HitboxSize)
  561. end
  562. end
  563. end
  564. end
  565. end
  566.  
  567. local function enable()
  568. if _enabled then return end
  569. _enabled = true
  570.  
  571. -- Atualiza continuamente
  572. _updateLoop = RunService.Heartbeat:Connect(function()
  573. updateAllHitboxes()
  574. end)
  575.  
  576. -- Monitora novos players
  577. Players.PlayerAdded:Connect(function(player)
  578. player.CharacterAdded:Connect(function(character)
  579. task.wait(1)
  580. if _enabled then
  581. expandHitbox(character, Config.HitboxSize)
  582. end
  583. end)
  584. end)
  585.  
  586. print("✅ Hitbox Expander ativado")
  587. end
  588.  
  589. local function disable()
  590. if not _enabled then return end
  591. _enabled = false
  592.  
  593. if _updateLoop then
  594. _updateLoop:Disconnect()
  595. _updateLoop = nil
  596. end
  597.  
  598. -- Restaura hitboxes
  599. for character, _ in pairs(_originalSizes) do
  600. restoreHitbox(character)
  601. end
  602.  
  603. print("❌ Hitbox Expander desativado")
  604. end
  605.  
  606. return {
  607. Enable = enable,
  608. Disable = disable,
  609. SetSize = function(size)
  610. Config.HitboxSize = size
  611. updateAllHitboxes()
  612. end,
  613. IsEnabled = function() return _enabled end
  614. }
  615. end)()
  616.  
  617. --// ========== 🌸 MÓDULO: BLOOM CRYSTAL DETECTOR ========== //
  618. local BloomDetector = (function()
  619. local _detecting = false
  620. local _bloomCrystal = nil
  621. local _lastBloomTime = 0
  622. local _espConnection = nil
  623. local _bloomESP = nil
  624.  
  625. local BLOOM_KEYWORDS = {"bloom", "giant", "huge", "mega", "super"}
  626.  
  627. local function isBloomCrystal(obj)
  628. if not obj or not obj.Parent then return false end
  629.  
  630. local name = obj.Name:lower()
  631.  
  632. -- Verifica se contém palavras-chave
  633. for _, keyword in ipairs(BLOOM_KEYWORDS) do
  634. if name:find(keyword) then
  635. return true
  636. end
  637. end
  638.  
  639. -- Verifica tamanho (Bloom é muito maior)
  640. if obj:IsA("BasePart") then
  641. local size = obj.Size
  642. if size.Magnitude > 50 then -- Cristais normais são menores
  643. return true
  644. end
  645. end
  646.  
  647. if obj:IsA("Model") then
  648. local primaryPart = obj.PrimaryPart
  649. if primaryPart then
  650. local size = primaryPart.Size
  651. if size.Magnitude > 50 then
  652. return true
  653. end
  654. end
  655. end
  656.  
  657. return false
  658. end
  659.  
  660. local function createBloomESP(crystal)
  661. if _bloomESP then
  662. pcall(function() _bloomESP:Destroy() end)
  663. end
  664.  
  665. local part = crystal:IsA("BasePart") and crystal or crystal.PrimaryPart or crystal:FindFirstChildWhichIsA("BasePart")
  666. if not part then return end
  667.  
  668. -- BillboardGui
  669. local billboard = Instance.new("BillboardGui")
  670. billboard.Name = "BloomESP"
  671. billboard.Adornee = part
  672. billboard.Size = UDim2.new(0, 200, 0, 100)
  673. billboard.StudsOffset = Vector3.new(0, 15, 0)
  674. billboard.AlwaysOnTop = true
  675. billboard.Parent = CoreGui
  676.  
  677. -- Frame
  678. local frame = Instance.new("Frame")
  679. frame.Size = UDim2.new(1, 0, 1, 0)
  680. frame.BackgroundColor3 = Color3.fromRGB(255, 215, 0)
  681. frame.BackgroundTransparency = 0.3
  682. frame.BorderSizePixel = 3
  683. frame.BorderColor3 = Color3.fromRGB(255, 255, 0)
  684. frame.Parent = billboard
  685.  
  686. local corner = Instance.new("UICorner")
  687. corner.CornerRadius = UDim.new(0, 10)
  688. corner.Parent = frame
  689.  
  690. -- Ícone
  691. local icon = Instance.new("TextLabel")
  692. icon.Size = UDim2.new(0.4, 0, 0.6, 0)
  693. icon.Position = UDim2.new(0.05, 0, 0.2, 0)
  694. icon.BackgroundTransparency = 1
  695. icon.Text = "💎"
  696. icon.TextScaled = true
  697. icon.Font = Enum.Font.GothamBold
  698. icon.Parent = frame
  699.  
  700. -- Texto
  701. local label = Instance.new("TextLabel")
  702. label.Size = UDim2.new(0.5, 0, 0.5, 0)
  703. label.Position = UDim2.new(0.45, 0, 0.1, 0)
  704. label.BackgroundTransparency = 1
  705. label.Text = "BLOOM\nCRYSTAL"
  706. label.TextColor3 = Color3.fromRGB(255, 255, 255)
  707. label.TextStrokeTransparency = 0
  708. label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
  709. label.Font = Enum.Font.GothamBold
  710. label.TextScaled = true
  711. label.Parent = frame
  712.  
  713. -- Distância
  714. local distLabel = Instance.new("TextLabel")
  715. distLabel.Name = "Distance"
  716. distLabel.Size = UDim2.new(0.5, 0, 0.3, 0)
  717. distLabel.Position = UDim2.new(0.45, 0, 0.65, 0)
  718. distLabel.BackgroundTransparency = 1
  719. distLabel.Text = "0m"
  720. distLabel.TextColor3 = Color3.fromRGB(255, 255, 100)
  721. distLabel.TextStrokeTransparency = 0
  722. distLabel.Font = Enum.Font.GothamBold
  723. distLabel.TextScaled = true
  724. distLabel.Parent = frame
  725.  
  726. -- Animação de pulso
  727. task.spawn(function()
  728. while billboard and billboard.Parent do
  729. for i = 0.3, 0.7, 0.05 do
  730. if not billboard or not billboard.Parent then break end
  731. frame.BackgroundTransparency = i
  732. task.wait(0.05)
  733. end
  734. for i = 0.7, 0.3, -0.05 do
  735. if not billboard or not billboard.Parent then break end
  736. frame.BackgroundTransparency = i
  737. task.wait(0.05)
  738. end
  739. end
  740. end)
  741.  
  742. -- Atualiza distância
  743. task.spawn(function()
  744. while billboard and billboard.Parent do
  745. local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
  746. if root and part and part.Parent then
  747. local distance = (part.Position - root.Position).Magnitude
  748. distLabel.Text = string.format("%.0fm", distance)
  749. end
  750. task.wait(0.1)
  751. end
  752. end)
  753.  
  754. _bloomESP = billboard
  755. end
  756.  
  757. local function onBloomDetected(crystal)
  758. _bloomCrystal = crystal
  759. _lastBloomTime = tick()
  760.  
  761. updateStat("BloomCrystalsFound", 1)
  762.  
  763. print("╔════════════════════════════════════════╗")
  764. print("║ 💎 BLOOM CRYSTAL DETECTADO! 💎 ║")
  765. print("╠════════════════════════════════════════╣")
  766. print("║ Posição: " .. tostring(crystal:IsA("BasePart") and crystal.Position or crystal.PrimaryPart.Position))
  767. print("╚════════════════════════════════════════╝")
  768.  
  769. -- Notificação
  770. local Rayfield = getgenv().RayfieldInstance
  771. if Rayfield then
  772. Rayfield:Notify({
  773. Title = "💎 BLOOM CRYSTAL ENCONTRADO!",
  774. Content = "Cristal gigante apareceu no mapa!",
  775. Duration = 15,
  776. Image = 4483362458
  777. })
  778. end
  779.  
  780. -- Cria ESP especial
  781. if Config.BloomDetector then
  782. createBloomESP(crystal)
  783. end
  784.  
  785. -- Auto-teleporte
  786. if Config.AutoTeleportToBloom then
  787. task.wait(1)
  788. local pos = crystal:IsA("BasePart") and crystal.Position or crystal.PrimaryPart.Position
  789. local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
  790. if root then
  791. root.CFrame = CFrame.new(pos + Vector3.new(0, 10, 0))
  792.  
  793. if Rayfield then
  794. Rayfield:Notify({
  795. Title = "🚀 Teleportado",
  796. Content = "Teleportado para Bloom Crystal!",
  797. Duration = 2,
  798. Image = 4483362458
  799. })
  800. end
  801. end
  802. end
  803.  
  804. -- Som de alerta (se possível)
  805. pcall(function()
  806. local sound = Instance.new("Sound")
  807. sound.SoundId = "rbxassetid://3398620867"
  808. sound.Volume = 1
  809. sound.Parent = workspace
  810. sound:Play()
  811. sound.Ended:Connect(function() sound:Destroy() end)
  812. end)
  813. end
  814.  
  815. local function scanForBloom()
  816. -- Scan inicial
  817. for _, obj in ipairs(workspace:GetDescendants()) do
  818. if isBloomCrystal(obj) then
  819. onBloomDetected(obj)
  820. break
  821. end
  822. end
  823.  
  824. -- Monitor novos objetos
  825. workspace.DescendantAdded:Connect(function(obj)
  826. if not _detecting then return end
  827.  
  828. task.wait(0.5)
  829. if isBloomCrystal(obj) then
  830. onBloomDetected(obj)
  831. end
  832. end)
  833.  
  834. -- Verifica remoção
  835. workspace.DescendantRemoving:Connect(function(obj)
  836. if obj == _bloomCrystal or (obj.Parent == _bloomCrystal) then
  837. print("💎 Bloom Crystal foi coletado/removido")
  838. _bloomCrystal = nil
  839.  
  840. if _bloomESP then
  841. pcall(function() _bloomESP:Destroy() end)
  842. _bloomESP = nil
  843. end
  844. end
  845. end)
  846. end
  847.  
  848. local function start()
  849. if _detecting then return end
  850. _detecting = true
  851.  
  852. scanForBloom()
  853.  
  854. print("✅ Bloom Detector iniciado")
  855. end
  856.  
  857. local function stop()
  858. if not _detecting then return end
  859. _detecting = false
  860.  
  861. if _bloomESP then
  862. pcall(function() _bloomESP:Destroy() end)
  863. _bloomESP = nil
  864. end
  865.  
  866. print("❌ Bloom Detector parado")
  867. end
  868.  
  869. return {
  870. Start = start,
  871. Stop = stop,
  872. GetBloomCrystal = function() return _bloomCrystal end,
  873. GetTimeSinceLastBloom = function()
  874. if _lastBloomTime == 0 then return "Nunca" end
  875. local elapsed = tick() - _lastBloomTime
  876. local minutes = math.floor(elapsed / 60)
  877. return minutes .. " minutos atrás"
  878. end
  879. }
  880. end)()
  881.  
  882. --// ========== 🛡️ MÓDULO: ANTI-KICK/ANTI-AFK ROBUSTO ========== //
  883. local AntiKick = (function()
  884. local _enabled = false
  885. local _connections = {}
  886.  
  887. local function preventAFK()
  888. -- Método 1: Desabilita IdleTracker
  889. local success = pcall(function()
  890. local VirtualUser = game:GetService("VirtualUser")
  891. LocalPlayer.Idled:Connect(function()
  892. VirtualUser:CaptureController()
  893. VirtualUser:ClickButton2(Vector2.new())
  894. end)
  895. end)
  896.  
  897. if success then
  898. print("✅ Anti-AFK ativado (Método 1)")
  899. end
  900.  
  901. -- Método 2: Simula input periódico
  902. task.spawn(function()
  903. while _enabled do
  904. task.wait(math.random(120, 300)) -- 2-5 minutos
  905.  
  906. pcall(function()
  907. local VirtualInputManager = game:GetService("VirtualInputManager")
  908. VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.W, false, game)
  909. task.wait(0.1)
  910. VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.W, false, game)
  911. end)
  912. end
  913. end)
  914. end
  915.  
  916. local function preventKick()
  917. -- Hooks para prevenir kicks
  918. local mt = getrawmetatable(game)
  919. local oldNamecall = mt.__namecall
  920.  
  921. setreadonly(mt, false)
  922.  
  923. mt.__namecall = newcclosure(function(self, ...)
  924. local method = getnamecallmethod()
  925. local args = {...}
  926.  
  927. -- Bloqueia Kick/TeleportService
  928. if method == "Kick" then
  929. print("⚠️ Tentativa de kick bloqueada!")
  930. return nil
  931. end
  932.  
  933. if method == "TeleportToPlaceInstance" and not ServerHop then
  934. print("⚠️ Tentativa de teleporte bloqueada!")
  935. return nil
  936. end
  937.  
  938. return oldNamecall(self, ...)
  939. end)
  940.  
  941. setreadonly(mt, true)
  942.  
  943. print("✅ Anti-Kick hooks instalados")
  944. end
  945.  
  946. local function enable()
  947. if _enabled then return end
  948. _enabled = true
  949.  
  950. preventAFK()
  951. preventKick()
  952.  
  953. print("✅ Anti-Kick/Anti-AFK ativado")
  954. end
  955.  
  956. local function disable()
  957. if not _enabled then return end
  958. _enabled = false
  959.  
  960. for _, conn in ipairs(_connections) do
  961. if conn and conn.Connected then
  962. conn:Disconnect()
  963. end
  964. end
  965. _connections = {}
  966.  
  967. print("❌ Anti-Kick/Anti-AFK desativado")
  968. end
  969.  
  970. return {
  971. Enable = enable,
  972. Disable = disable
  973. }
  974. end)()
  975.  
  976. --// ========== ⚡ MÓDULO: FPS BOOSTER & OTIMIZAÇÕES ========== //
  977. local Optimizer = (function()
  978. local _enabled = false
  979. local _originalSettings = {}
  980.  
  981. local function boostFPS()
  982. -- Reduz qualidade gráfica
  983. local lighting = game:GetService("Lighting")
  984.  
  985. _originalSettings.Brightness = lighting.Brightness
  986. _originalSettings.GlobalShadows = lighting.GlobalShadows
  987. _originalSettings.OutdoorAmbient = lighting.OutdoorAmbient
  988.  
  989. lighting.GlobalShadows = false
  990. lighting.Brightness = 2
  991. lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
  992.  
  993. -- Remove efeitos visuais
  994. for _, effect in ipairs(lighting:GetChildren()) do
  995. if effect:IsA("PostEffect") then
  996. effect.Enabled = false
  997. end
  998. end
  999.  
  1000. -- Reduz qualidade de terreno
  1001. workspace.StreamingEnabled = true
  1002. workspace.StreamingMinRadius = 32
  1003. workspace.StreamingTargetRadius = 64
  1004.  
  1005. -- Remove partículas desnecessárias
  1006. for _, obj in ipairs(workspace:GetDescendants()) do
  1007. if obj:IsA("ParticleEmitter") or obj:IsA("Trail") or obj:IsA("Smoke") or obj:IsA("Fire") then
  1008. obj.Enabled = false
  1009. end
  1010. end
  1011.  
  1012. print("✅ FPS Booster ativado")
  1013. end
  1014.  
  1015. local function restoreSettings()
  1016. local lighting = game:GetService("Lighting")
  1017.  
  1018. if _originalSettings.Brightness then
  1019. lighting.Brightness = _originalSettings.Brightness
  1020. end
  1021. if _originalSettings.GlobalShadows ~= nil then
  1022. lighting.GlobalShadows = _originalSettings.GlobalShadows
  1023. end
  1024. if _originalSettings.OutdoorAmbient then
  1025. lighting.OutdoorAmbient = _originalSettings.OutdoorAmbient
  1026. end
  1027.  
  1028. print("✅ Configurações restauradas")
  1029. end
  1030.  
  1031. local function optimizeMemory()
  1032. -- Força garbage collection
  1033. pcall(function()
  1034. setfpscap(60)
  1035. end)
  1036.  
  1037. print("✅ Memória otimizada")
  1038. end
  1039.  
  1040. local function enable()
  1041. if _enabled then return end
  1042. _enabled = true
  1043.  
  1044. boostFPS()
  1045. optimizeMemory()
  1046.  
  1047. -- Otimiza periodicamente
  1048. task.spawn(function()
  1049. while _enabled do
  1050. task.wait(300) -- 5 minutos
  1051. optimizeMemory()
  1052. end
  1053. end)
  1054. end
  1055.  
  1056. local function disable()
  1057. if not _enabled then return end
  1058. _enabled = false
  1059.  
  1060. restoreSettings()
  1061. end
  1062.  
  1063. return {
  1064. Enable = enable,
  1065. Disable = disable,
  1066. OptimizeNow = optimizeMemory
  1067. }
  1068. end)()
  1069.  
  1070. --// ========== 🔄 MÓDULO: AUTO UPDATE ========== //
  1071. local AutoUpdate = (function()
  1072. local CURRENT_VERSION = ScriptVersion
  1073. local UPDATE_URL = "https://raw.githubusercontent.com/seu-usuario/seu-repo/main/version.txt" -- ALTERE!
  1074. local SCRIPT_URL = "https://pastebin.com/raw/WJSxJVcm" -- ALTERE!
  1075.  
  1076. local function checkForUpdates()
  1077. local success, latestVersion = pcall(function()
  1078. return game:HttpGet(UPDATE_URL):gsub("%s+", "")
  1079. end)
  1080.  
  1081. if not success then
  1082. warn("❌ Não foi possível verificar atualizações")
  1083. return false, nil
  1084. end
  1085.  
  1086. if latestVersion ~= CURRENT_VERSION then
  1087. return true, latestVersion
  1088. end
  1089.  
  1090. return false, latestVersion
  1091. end
  1092.  
  1093. local function showUpdateNotification(newVersion)
  1094. local Rayfield = getgenv().RayfieldInstance
  1095. if Rayfield then
  1096. Rayfield:Notify({
  1097. Title = "🔄 Atualização Disponível!",
  1098. Content = "Nova versão: " .. newVersion .. "\nAtual: " .. CURRENT_VERSION,
  1099. Duration = 10,
  1100. Image = 4483362458
  1101. })
  1102. end
  1103.  
  1104. print("╔════════════════════════════════════════╗")
  1105. print("║ 🔄 ATUALIZAÇÃO DISPONÍVEL! 🔄 ║")
  1106. print("╠════════════════════════════════════════╣")
  1107. print("║ Versão Atual: " .. CURRENT_VERSION)
  1108. print("║ Nova Versão: " .. newVersion)
  1109. print("║ ")
  1110. print("║ Recarregue o script para atualizar!")
  1111. print("╚════════════════════════════════════════╝")
  1112. end
  1113.  
  1114. local function autoCheckUpdates()
  1115. task.spawn(function()
  1116. task.wait(5) -- Aguarda 5 segundos após iniciar
  1117.  
  1118. local hasUpdate, newVersion = checkForUpdates()
  1119.  
  1120. if hasUpdate then
  1121. showUpdateNotification(newVersion)
  1122. else
  1123. print("✅ Script está atualizado! (v" .. CURRENT_VERSION .. ")")
  1124. end
  1125. end)
  1126. end
  1127.  
  1128. return {
  1129. CheckNow = checkForUpdates,
  1130. AutoCheck = autoCheckUpdates,
  1131. GetCurrentVersion = function() return CURRENT_VERSION end
  1132. }
  1133. end)()
  1134.  
  1135. --// ========== DETECTAR POSIÇÃO DE SPAWN ========== //
  1136. task.spawn(function()
  1137. local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  1138. local root = char:WaitForChild("HumanoidRootPart", 10)
  1139.  
  1140. if root then
  1141. task.wait(2)
  1142. LastSpawnPosition = root.CFrame
  1143. end
  1144.  
  1145. LocalPlayer.CharacterAdded:Connect(function(newChar)
  1146. task.wait(2)
  1147. local newRoot = newChar:FindFirstChild("HumanoidRootPart")
  1148. if newRoot then
  1149. LastSpawnPosition = newRoot.CFrame
  1150. end
  1151. end)
  1152. end)
  1153.  
  1154. --// ========== CARREGAR RAYFIELD ========== //
  1155. local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
  1156. getgenv().RayfieldInstance = Rayfield
  1157.  
  1158. --// ========== CRIAR WINDOW ========== //
  1159. local Window = Rayfield:CreateWindow({
  1160. Name = "🦖 Pré-história v" .. ScriptVersion .. " - By: NickZScripts",
  1161. Icon = 0,
  1162. LoadingTitle = "Pré-história MEGA UPDATE",
  1163. LoadingSubtitle = "By: NickZScripts - v" .. ScriptVersion,
  1164. Theme = "Default",
  1165. DisableRayfieldPrompts = false,
  1166. DisableBuildWarnings = false,
  1167.  
  1168. ConfigurationSaving = {
  1169. Enabled = true,
  1170. FolderName = nil,
  1171. FileName = "PreHistoria_v5"
  1172. },
  1173.  
  1174. Discord = {
  1175. Enabled = false,
  1176. Invite = "noinvitelink",
  1177. RememberJoins = true
  1178. },
  1179.  
  1180. KeySystem = false,
  1181. })
  1182.  
  1183. --// ========== FUNÇÕES DE UTILIDADE (MANTIDAS) ========== //
  1184.  
  1185. local function getCharacter()
  1186. return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  1187. end
  1188.  
  1189. local function getHumanoidRootPart()
  1190. local char = getCharacter()
  1191. return char and char:FindFirstChild("HumanoidRootPart")
  1192. end
  1193.  
  1194. local function teleportTo(cf)
  1195. local root = getHumanoidRootPart()
  1196. if root and root.Parent then
  1197. root.Parent:SetPrimaryPartCFrame(cf)
  1198. end
  1199. end
  1200.  
  1201. local function teleportToCrystal(c)
  1202. local root = getHumanoidRootPart()
  1203. if root and c then
  1204. root.Parent:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  1205. end
  1206. end
  1207.  
  1208. --// ========== SISTEMA DE TELEPORTE SEGURO (MANTIDO) ========== //
  1209.  
  1210. local function safeTeleport(targetCFrame, locationName)
  1211. if ActiveTeleportConnection then
  1212. ActiveTeleportConnection:Disconnect()
  1213. ActiveTeleportConnection = nil
  1214. end
  1215.  
  1216. local char = LocalPlayer.Character
  1217. local root = char and char:FindFirstChild("HumanoidRootPart")
  1218. local humanoid = char and char:FindFirstChild("Humanoid")
  1219.  
  1220. if not root or not humanoid then
  1221. Rayfield:Notify({
  1222. Title = "❌ Erro",
  1223. Content = "Personagem não encontrado!",
  1224. Duration = 1,
  1225. Image = 4483362458
  1226. })
  1227. return false
  1228. end
  1229.  
  1230. updateStat("TeleportsUsed", 1)
  1231.  
  1232. Rayfield:Notify({
  1233. Title = "🚀 Teleportando",
  1234. Content = "Indo para: " .. locationName,
  1235. Duration = 0.5,
  1236. Image = 4483362458
  1237. })
  1238.  
  1239. root.CFrame = targetCFrame
  1240.  
  1241. task.spawn(function()
  1242. task.wait(0.05)
  1243.  
  1244. local rayParams = RaycastParams.new()
  1245. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  1246. rayParams.FilterDescendantsInstances = {char}
  1247.  
  1248. local rayResult = workspace:Raycast(
  1249. root.Position,
  1250. Vector3.new(0, -100, 0),
  1251. rayParams
  1252. )
  1253.  
  1254. if rayResult then
  1255. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  1256. end
  1257. end)
  1258.  
  1259. local teleportStartTime = tick()
  1260. local maxWaitTime = 1.2
  1261. local minWaitTime = 0.2
  1262.  
  1263. ActiveTeleportConnection = RunService.Heartbeat:Connect(function()
  1264. if not char or not char.Parent or not root or not root.Parent or not humanoid then
  1265. if ActiveTeleportConnection then
  1266. ActiveTeleportConnection:Disconnect()
  1267. ActiveTeleportConnection = nil
  1268. end
  1269. return
  1270. end
  1271.  
  1272. local elapsedTime = tick() - teleportStartTime
  1273.  
  1274. local floorMaterial = humanoid.FloorMaterial
  1275. local isOnGround = floorMaterial ~= Enum.Material.Air
  1276.  
  1277. local velocity = root.AssemblyLinearVelocity
  1278. local isStationary = velocity.Magnitude < 2
  1279.  
  1280. local humanoidState = humanoid:GetState()
  1281. local isLanded = humanoidState == Enum.HumanoidStateType.Landed or
  1282. humanoidState == Enum.HumanoidStateType.Running or
  1283. humanoidState == Enum.HumanoidStateType.RunningNoPhysics
  1284.  
  1285. if (elapsedTime > minWaitTime and (isOnGround or (isStationary and isLanded))) or elapsedTime > maxWaitTime then
  1286. if ActiveTeleportConnection then
  1287. ActiveTeleportConnection:Disconnect()
  1288. ActiveTeleportConnection = nil
  1289. end
  1290.  
  1291. if isOnGround or isLanded then
  1292. Rayfield:Notify({
  1293. Title = "✅ Chegou",
  1294. Content = locationName,
  1295. Duration = 0.5,
  1296. Image = 4483362458
  1297. })
  1298. else
  1299. local rayParams = RaycastParams.new()
  1300. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  1301. rayParams.FilterDescendantsInstances = {char}
  1302.  
  1303. local rayResult = workspace:Raycast(
  1304. root.Position,
  1305. Vector3.new(0, -200, 0),
  1306. rayParams
  1307. )
  1308.  
  1309. if rayResult then
  1310. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  1311. end
  1312. end
  1313.  
  1314. return
  1315. end
  1316. end)
  1317.  
  1318. return true
  1319. end
  1320.  
  1321. --// ========== [CONTINUA NO PRÓXIMO BLOCO - PARTE 2/3] ========== //
Advertisement
Add Comment
Please, Sign In to add comment