Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --// ========== ESP DE CARNES (MANTIDO E OTIMIZADO) ========== //
- local ActiveMeatESPs = {}
- local meatUpdateLoop = nil
- local meatScanLoop = nil
- local function isMeatObject(obj)
- if not obj then return false, nil end
- if obj:IsA("ProximityPrompt") and obj.Enabled then
- local action = (obj.ActionText or ""):lower()
- local objText = (obj.ObjectText or ""):lower()
- local foodActions = {"coma", "eat", "pegar", "pick", "grab", "take"}
- for _, foodAction in ipairs(foodActions) do
- if action:find(foodAction) then
- local fullText = action .. " " .. objText
- local excludeWords = {"plant", "fish", "berry", "fruit", "vegetable", "seed"}
- local isExcluded = false
- for _, word in ipairs(excludeWords) do
- if fullText:find(word) then
- isExcluded = true
- break
- end
- end
- if not isExcluded then
- local parent = obj.Parent
- if parent and parent:IsA("BasePart") then
- for _, player in ipairs(Players:GetPlayers()) do
- if player.Character and parent:IsDescendantOf(player.Character) then
- return false, nil
- end
- end
- return true, parent
- end
- end
- end
- end
- end
- if obj:IsA("Model") or obj:IsA("BasePart") then
- local name = (obj.Name or ""):lower()
- local meatWords = {
- "meat", "carne", "beef", "steak", "chicken",
- "frango", "pork", "porco", "bacon", "ham"
- }
- for _, word in ipairs(meatWords) do
- if name:find(word) then
- for _, player in ipairs(Players:GetPlayers()) do
- if player.Character and obj:IsDescendantOf(player.Character) then
- return false, nil
- end
- end
- if obj:IsA("Model") then
- local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
- return part ~= nil, part
- else
- return true, obj
- end
- end
- end
- end
- return false, nil
- end
- local function findNearestMeat()
- local char = LocalPlayer.Character
- local root = char and char:FindFirstChild("HumanoidRootPart")
- if not root then return nil, math.huge end
- local nearestMeat = nil
- local nearestDistance = math.huge
- for _, obj in ipairs(workspace:GetDescendants()) do
- local isMeat, part = isMeatObject(obj)
- if isMeat and part and part.Parent then
- local distance = (part.Position - root.Position).Magnitude
- if distance < nearestDistance then
- nearestDistance = distance
- nearestMeat = part
- end
- end
- end
- return nearestMeat, nearestDistance
- end
- local function createMeatESP(part)
- if not part or not part:IsA("BasePart") or not part.Parent then return end
- local id = tostring(part:GetDebugId())
- if ActiveMeatESPs[id] then return end
- local esp = Instance.new("BillboardGui")
- esp.Name = "MeatESP_" .. id
- esp.Adornee = part
- esp.Size = UDim2.new(0, Config.ESP_MAX_SIZE, 0, Config.ESP_MAX_SIZE * 0.4)
- esp.StudsOffset = Vector3.new(0, 3, 0)
- esp.AlwaysOnTop = true
- esp.LightInfluence = 0
- esp.MaxDistance = Config.MAX_VISIBLE_DISTANCE
- esp.Parent = workspace
- esp.Enabled = true
- local frame = Instance.new("Frame", esp)
- frame.Size = UDim2.new(1, 0, 1, 0)
- frame.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
- frame.BackgroundTransparency = 0.4
- frame.BorderSizePixel = 1
- frame.BorderColor3 = Color3.fromRGB(255, 200, 0)
- local corner = Instance.new("UICorner", frame)
- corner.CornerRadius = UDim.new(0, 6)
- local iconLabel = Instance.new("TextLabel", frame)
- iconLabel.Size = UDim2.new(0.3, 0, 0.9, 0)
- iconLabel.Position = UDim2.new(0, 2, 0.05, 0)
- iconLabel.BackgroundTransparency = 1
- iconLabel.Text = "๐ฅฉ"
- iconLabel.TextScaled = true
- iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
- iconLabel.Font = Enum.Font.SourceSansBold
- iconLabel.TextStrokeTransparency = 0.5
- local distLabel = Instance.new("TextLabel", frame)
- distLabel.Name = "Distance"
- distLabel.Size = UDim2.new(0.7, -4, 0.9, 0)
- distLabel.Position = UDim2.new(0.3, 2, 0.05, 0)
- distLabel.BackgroundTransparency = 1
- distLabel.Text = "0m"
- distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
- distLabel.TextStrokeTransparency = 0.3
- distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
- distLabel.Font = Enum.Font.GothamBold
- distLabel.TextScaled = true
- ActiveMeatESPs[id] = {
- gui = esp,
- part = part,
- distLabel = distLabel,
- frame = frame,
- iconLabel = iconLabel
- }
- return true
- end
- local function scanForMeats()
- if not Config.EspMeatActive then return end
- for id, data in pairs(ActiveMeatESPs) do
- if data.gui then
- pcall(function() data.gui:Destroy() end)
- end
- end
- ActiveMeatESPs = {}
- local meatCount = 0
- local checkedCount = 0
- for _, obj in ipairs(workspace:GetDescendants()) do
- checkedCount = checkedCount + 1
- if checkedCount % 300 == 0 then
- task.wait()
- if not Config.EspMeatActive then return end
- end
- local isMeat, part = isMeatObject(obj)
- if isMeat and part and part.Parent then
- if createMeatESP(part) then
- meatCount = meatCount + 1
- end
- end
- end
- end
- local function updateMeatESPInfo()
- if not Config.EspMeatActive then return end
- local char = LocalPlayer.Character
- local root = char and char:FindFirstChild("HumanoidRootPart")
- if not root then return end
- for id, data in pairs(ActiveMeatESPs) do
- if data.part and data.part.Parent and data.gui and data.gui.Parent then
- local distance = (data.part.Position - root.Position).Magnitude
- data.gui.Enabled = true
- if data.distLabel then
- if distance < 100 then
- data.distLabel.Text = string.format("%.0fm", distance)
- elseif distance < 1000 then
- data.distLabel.Text = string.format("%.0fm", distance)
- else
- data.distLabel.Text = string.format("%.1fkm", distance / 1000)
- end
- end
- local scaleFactor
- if distance <= 50 then scaleFactor = 1.0
- elseif distance <= 200 then scaleFactor = 0.75
- elseif distance <= 500 then scaleFactor = 0.6
- elseif distance <= 1000 then scaleFactor = 0.5
- elseif distance <= 2000 then scaleFactor = 0.4
- elseif distance <= 3000 then scaleFactor = 0.35
- elseif distance <= 5000 then scaleFactor = 0.3
- elseif distance <= 10000 then scaleFactor = 0.25
- else scaleFactor = 0.2 end
- local newSize = Config.ESP_MIN_SIZE + ((Config.ESP_MAX_SIZE - Config.ESP_MIN_SIZE) * scaleFactor)
- data.gui.Size = UDim2.new(0, newSize, 0, newSize * 0.4)
- if data.frame then
- local transparency
- if distance < 300 then transparency = 0.3
- elseif distance < 1000 then transparency = 0.5
- elseif distance < 2500 then transparency = 0.65
- elseif distance < 5000 then transparency = 0.75
- elseif distance < 10000 then transparency = 0.8
- else transparency = 0.85 end
- data.frame.BackgroundTransparency = transparency
- end
- if distance < 100 then
- data.frame.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
- data.frame.BorderColor3 = Color3.fromRGB(200, 255, 200)
- elseif distance < 500 then
- data.frame.BackgroundColor3 = Color3.fromRGB(255, 255, 100)
- data.frame.BorderColor3 = Color3.fromRGB(255, 255, 150)
- elseif distance < 1500 then
- data.frame.BackgroundColor3 = Color3.fromRGB(255, 180, 100)
- data.frame.BorderColor3 = Color3.fromRGB(255, 200, 150)
- elseif distance < 3000 then
- data.frame.BackgroundColor3 = Color3.fromRGB(255, 120, 120)
- data.frame.BorderColor3 = Color3.fromRGB(255, 150, 150)
- elseif distance < 5000 then
- data.frame.BackgroundColor3 = Color3.fromRGB(200, 150, 255)
- data.frame.BorderColor3 = Color3.fromRGB(220, 180, 255)
- elseif distance < 10000 then
- data.frame.BackgroundColor3 = Color3.fromRGB(180, 180, 255)
- data.frame.BorderColor3 = Color3.fromRGB(200, 200, 255)
- else
- data.frame.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
- data.frame.BorderColor3 = Color3.fromRGB(180, 180, 180)
- end
- else
- if data.gui then
- pcall(function() data.gui:Destroy() end)
- end
- ActiveMeatESPs[id] = nil
- end
- end
- end
- local function startMeatESP()
- if meatUpdateLoop then return end
- scanForMeats()
- meatUpdateLoop = RunService.Heartbeat:Connect(function()
- updateMeatESPInfo()
- end)
- meatScanLoop = task.spawn(function()
- while Config.EspMeatActive do
- task.wait(10)
- if Config.EspMeatActive then
- for _, obj in ipairs(workspace:GetDescendants()) do
- if not Config.EspMeatActive then break end
- local isMeat, part = isMeatObject(obj)
- if isMeat and part then
- local id = tostring(part:GetDebugId())
- if not ActiveMeatESPs[id] then
- createMeatESP(part)
- end
- end
- end
- for id, data in pairs(ActiveMeatESPs) do
- if not data.part or not data.part.Parent then
- if data.gui then
- pcall(function() data.gui:Destroy() end)
- end
- ActiveMeatESPs[id] = nil
- end
- end
- end
- end
- end)
- workspace.DescendantAdded:Connect(function(obj)
- if not Config.EspMeatActive then return end
- task.wait(0.1)
- local isMeat, part = isMeatObject(obj)
- if isMeat and part then
- local id = tostring(part:GetDebugId())
- if not ActiveMeatESPs[id] then
- createMeatESP(part)
- end
- end
- end)
- end
- local function stopMeatESP()
- if meatUpdateLoop then
- meatUpdateLoop:Disconnect()
- meatUpdateLoop = nil
- end
- if meatScanLoop then
- task.cancel(meatScanLoop)
- meatScanLoop = nil
- end
- for id, data in pairs(ActiveMeatESPs) do
- if data.gui then
- pcall(function() data.gui:Destroy() end)
- end
- end
- ActiveMeatESPs = {}
- end
- --// ========== ESP DE JOGADORES (MANTIDO) ========== //
- local PlayerESP_Data = {}
- local PlayerESP_UpdateLoop = nil
- local PlayerESP_ProcessQueue = {}
- local ESP_CONFIG = {
- UpdateInterval = 0.5,
- HPBarMaxDistance = 4000,
- HPBarSize = UDim2.new(0, 50, 0, 5),
- HPBarYOffset = 0.5,
- HighlightFillTransparency = 0.85,
- OutlineTransparency = 0.15,
- MaxPlayersPerFrame = 2,
- }
- local COLOR_ENEMY = Color3.fromRGB(255, 85, 85)
- local COLOR_FRIEND = Color3.fromRGB(85, 255, 85)
- local COLOR_NEUTRAL = Color3.fromRGB(240, 240, 240)
- local TeamColorMap = {}
- local UsedHues = {}
- local NextHueIndex = 0
- local function generateUniqueTeamColor()
- local goldenRatio = 0.618033988749895
- local hue = (NextHueIndex * goldenRatio) % 1
- if hue >= 0.25 and hue <= 0.45 then
- hue = (hue + 0.35) % 1
- end
- local minDistance = 0.15
- for _, usedHue in pairs(UsedHues) do
- local distance = math.abs(hue - usedHue)
- if distance < minDistance or distance > (1 - minDistance) then
- NextHueIndex = NextHueIndex + 1
- return generateUniqueTeamColor()
- end
- end
- table.insert(UsedHues, hue)
- NextHueIndex = NextHueIndex + 1
- local sat = 0.8 + (math.random() * 0.2)
- local val = 0.9 + (math.random() * 0.1)
- return Color3.fromHSV(hue, sat, val)
- end
- local function isNeutralPlayer(p)
- return p.Team == nil
- end
- local function isAllyPlayer(p)
- return LocalPlayer.Team and p.Team == LocalPlayer.Team
- end
- local function colorForPlayer(p)
- if isNeutralPlayer(p) then
- return COLOR_NEUTRAL
- end
- if isAllyPlayer(p) then
- return COLOR_FRIEND
- end
- if p.Team and not TeamColorMap[p.Team] then
- TeamColorMap[p.Team] = generateUniqueTeamColor()
- end
- return TeamColorMap[p.Team] or COLOR_ENEMY
- end
- local function shouldShowPlayerESP(p)
- if not Config.PlayerESP then return false end
- if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
- return true
- end
- local function shouldShowPlayerHP(p)
- if not Config.PlayerESP_ShowHP then return false end
- if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
- return true
- end
- local function isValidPlayerCharacter(char)
- if not char or not char.Parent then return false end
- return char:FindFirstChild("Humanoid") and char:FindFirstChild("HumanoidRootPart")
- end
- local function clearPlayerConns(pack)
- if not pack or not pack.conns then return end
- for _, c in ipairs(pack.conns) do
- if c and c.Connected then
- pcall(function() c:Disconnect() end)
- end
- end
- pack.conns = {}
- end
- local function detachPlayerESP(plr)
- local pack = PlayerESP_Data[plr]
- if not pack then return end
- clearPlayerConns(pack)
- if pack.highlight then
- pcall(function() pack.highlight:Destroy() end)
- pack.highlight = nil
- end
- if pack.hpGui then
- pcall(function() pack.hpGui:Destroy() end)
- pack.hpGui = nil
- end
- PlayerESP_Data[plr] = nil
- end
- local function ensurePlayerHighlight(plr, char)
- local pack = PlayerESP_Data[plr]
- if not pack or not isValidPlayerCharacter(char) then return end
- if not pack.highlight or not pack.highlight.Parent then
- for _, obj in ipairs(char:GetChildren()) do
- if obj:IsA("Highlight") and obj.Name == "PlayerESP_Highlight" then
- pcall(function() obj:Destroy() end)
- end
- end
- local hi = Instance.new("Highlight")
- hi.Name = "PlayerESP_Highlight"
- hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
- hi.FillTransparency = ESP_CONFIG.HighlightFillTransparency
- hi.OutlineTransparency = ESP_CONFIG.OutlineTransparency
- hi.Adornee = char
- hi.Parent = char
- pack.highlight = hi
- end
- local col = colorForPlayer(plr)
- pack.highlight.FillColor = col
- pack.highlight.OutlineColor = col
- pack.highlight.Adornee = char
- pack.highlight.Enabled = shouldShowPlayerESP(plr)
- end
- local function ensurePlayerHPGui(plr, char)
- local pack = PlayerESP_Data[plr]
- if not pack or not isValidPlayerCharacter(char) then return end
- local hum = char:FindFirstChildOfClass("Humanoid")
- local head = char:FindFirstChild("Head")
- local root = char:FindFirstChild("HumanoidRootPart")
- if not hum or not root then
- if pack.hpGui then
- pack.hpGui.Enabled = false
- end
- return
- end
- pack.hum = hum
- pack.head = head
- pack.root = root
- if not pack.hpGui or not pack.hpGui.Parent then
- for _, obj in ipairs(char:GetChildren()) do
- if obj:IsA("BillboardGui") and obj.Name == "PlayerESP_HP" then
- pcall(function() obj:Destroy() end)
- end
- end
- local bill = Instance.new("BillboardGui")
- bill.Name = "PlayerESP_HP"
- bill.AlwaysOnTop = true
- bill.LightInfluence = 0
- bill.Size = ESP_CONFIG.HPBarSize
- bill.MaxDistance = ESP_CONFIG.HPBarMaxDistance
- bill.Parent = char
- local bg = Instance.new("Frame")
- bg.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
- bg.BackgroundTransparency = 0.2
- bg.BorderSizePixel = 0
- bg.Size = UDim2.fromScale(1, 1)
- bg.Parent = bill
- local stroke = Instance.new("UIStroke")
- stroke.Color = Color3.fromRGB(0, 0, 0)
- stroke.Thickness = 1.5
- stroke.Parent = bg
- local corner1 = Instance.new("UICorner")
- corner1.CornerRadius = UDim.new(0, 2)
- corner1.Parent = bg
- local fill = Instance.new("Frame")
- fill.BackgroundColor3 = COLOR_FRIEND
- fill.BorderSizePixel = 0
- fill.Size = UDim2.fromScale(1, 1)
- fill.Parent = bg
- local corner2 = Instance.new("UICorner")
- corner2.CornerRadius = UDim.new(0, 2)
- corner2.Parent = fill
- pack.hpGui = bill
- pack.hpFill = fill
- end
- if head then
- pack.hpGui.Adornee = head
- local headSize = head.Size.Y
- pack.hpGui.StudsOffset = Vector3.new(0, headSize/2 + ESP_CONFIG.HPBarYOffset, 0)
- else
- pack.hpGui.Adornee = root
- pack.hpGui.StudsOffset = Vector3.new(0, 2.5 + ESP_CONFIG.HPBarYOffset, 0)
- end
- pack.hpGui.Enabled = shouldShowPlayerHP(plr)
- end
- local function updatePlayerHPBar(plr)
- local pack = PlayerESP_Data[plr]
- if not pack or not pack.hpGui or not pack.hpFill or not pack.hum then return end
- local h = pack.hum.Health
- local m = pack.hum.MaxHealth
- if m <= 0 then m = 100 end
- local ratio = math.clamp(h / m, 0, 1)
- pack.hpFill.Size = UDim2.new(ratio, 0, 1, 0)
- local r, g, b
- if ratio > 0.5 then
- r = (1 - ratio) * 2 * 255
- g = 255
- b = 0
- else
- r = 255
- g = ratio * 2 * 255
- b = 0
- end
- pack.hpFill.BackgroundColor3 = Color3.fromRGB(r, g, b)
- pack.hpGui.Enabled = shouldShowPlayerHP(plr) and (h > 0)
- end
- local function setupPlayerESP(plr, char)
- if plr == LocalPlayer or not isValidPlayerCharacter(char) then return end
- local pack = PlayerESP_Data[plr] or { conns = {} }
- PlayerESP_Data[plr] = pack
- if pack.char and pack.char ~= char then
- clearPlayerConns(pack)
- if pack.highlight then pcall(function() pack.highlight:Destroy() end) end
- if pack.hpGui then pcall(function() pack.hpGui:Destroy() end) end
- pack.char = nil
- pack.highlight = nil
- pack.hpGui = nil
- pack.hpFill = nil
- pack.hum = nil
- pack.head = nil
- end
- pack.char = char
- local hum = char:FindFirstChildOfClass("Humanoid")
- if not hum then return end
- pack.hum = hum
- hum.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff
- task.wait(0.1)
- ensurePlayerHighlight(plr, char)
- ensurePlayerHPGui(plr, char)
- updatePlayerHPBar(plr)
- table.insert(pack.conns, hum.HealthChanged:Connect(function()
- updatePlayerHPBar(plr)
- end))
- table.insert(pack.conns, plr:GetPropertyChangedSignal("Team"):Connect(function()
- task.spawn(function()
- ensurePlayerHighlight(plr, char)
- updatePlayerHPBar(plr)
- end)
- end))
- pack.initialized = true
- end
- local function hookPlayerESP(plr)
- if plr == LocalPlayer then return end
- table.insert(PlayerESP_ProcessQueue, plr)
- end
- local function reinitializeAllPlayerESP()
- for plr, _ in pairs(PlayerESP_Data) do
- detachPlayerESP(plr)
- end
- PlayerESP_ProcessQueue = {}
- task.wait(0.1)
- for _, p in ipairs(Players:GetPlayers()) do
- if p ~= LocalPlayer then
- hookPlayerESP(p)
- end
- end
- end
- task.spawn(function()
- while true do
- task.wait(0.2)
- if #PlayerESP_ProcessQueue > 0 and Config.PlayerESP then
- local plr = table.remove(PlayerESP_ProcessQueue, 1)
- if plr and plr.Parent then
- detachPlayerESP(plr)
- PlayerESP_Data[plr] = { conns = {} }
- if plr.Character then
- task.spawn(function()
- setupPlayerESP(plr, plr.Character)
- end)
- end
- table.insert(PlayerESP_Data[plr].conns, plr.CharacterAdded:Connect(function(char)
- task.wait(0.5)
- setupPlayerESP(plr, char)
- end))
- table.insert(PlayerESP_Data[plr].conns, plr.CharacterRemoving:Connect(function()
- local pack = PlayerESP_Data[plr]
- if pack then
- if pack.hpGui then
- pcall(function() pack.hpGui:Destroy() end)
- pack.hpGui = nil
- end
- if pack.highlight then
- pcall(function() pack.highlight:Destroy() end)
- pack.highlight = nil
- end
- pack.hum = nil
- pack.head = nil
- pack.initialized = false
- end
- end))
- end
- end
- end
- end)
- task.spawn(function()
- task.wait(2)
- Players.PlayerAdded:Connect(function(p)
- task.wait(0.5)
- hookPlayerESP(p)
- end)
- Players.PlayerRemoving:Connect(function(p)
- detachPlayerESP(p)
- end)
- end)
- task.spawn(function()
- while true do
- task.wait(ESP_CONFIG.UpdateInterval)
- if not Config.PlayerESP then
- task.wait(1)
- continue
- end
- local processed = 0
- for plr, pack in pairs(PlayerESP_Data) do
- if processed >= ESP_CONFIG.MaxPlayersPerFrame then
- task.wait()
- processed = 0
- end
- if plr and plr.Parent and plr ~= LocalPlayer then
- local char = plr.Character
- if char and isValidPlayerCharacter(char) then
- if not pack.initialized or pack.char ~= char then
- setupPlayerESP(plr, char)
- else
- if not pack.highlight or not pack.highlight.Parent then
- ensurePlayerHighlight(plr, char)
- end
- if not pack.hpGui or not pack.hpGui.Parent then
- ensurePlayerHPGui(plr, char)
- end
- if pack.highlight then
- pack.highlight.Enabled = shouldShowPlayerESP(plr)
- end
- if pack.hpGui then
- pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
- end
- updatePlayerHPBar(plr)
- end
- end
- end
- processed = processed + 1
- end
- end
- end)
- --// ========== SISTEMA DE TELEPORTS SALVOS ========== //
- local function loadSavedTeleports()
- local success, data = pcall(function()
- return HttpService:JSONDecode(readfile("PreHistoria_Teleports.json"))
- end)
- if success and data then
- Config.SavedTeleports = data
- print("๐ Carregado " .. #data .. " teleports salvos")
- else
- Config.SavedTeleports = {}
- print("๐ Nenhum teleport salvo encontrado")
- end
- end
- loadSavedTeleports()
- --// ========== ๐จ CRIAR TABS E INTERFACE ========== //
- local MenuTab = Window:CreateTab("๐ Menu", 4483362458)
- --// ========== ABA MENU - ESTATรSTICAS COMPLETAS ========== //
- local InfoSection = MenuTab:CreateSection("๐ Informaรงรตes do Script")
- MenuTab:CreateParagraph({
- Title = "๐ Script Info",
- Content = "Versรฃo: v" .. ScriptVersion .. "\nStatus: โ Operacional\nรltima Atualizaรงรฃo: 2024"
- })
- MenuTab:CreateParagraph({
- Title = "๐ค Jogador",
- Content = "Nome: " .. LocalPlayer.Name .. "\nDisplay: " .. LocalPlayer.DisplayName .. "\nID: " .. LocalPlayer.UserId
- })
- local PlayersCountLabel = MenuTab:CreateLabel("๐ฅ Players Online: 0/0")
- local function updatePlayerCount()
- local current = #Players:GetPlayers()
- local max = Players.MaxPlayers
- PlayersCountLabel:Set(string.format("๐ฅ Players Online: %d/%d", current, max))
- end
- updatePlayerCount()
- Players.PlayerAdded:Connect(function()
- task.wait(0.1)
- updatePlayerCount()
- end)
- Players.PlayerRemoving:Connect(function()
- task.wait(0.1)
- updatePlayerCount()
- end)
- -- Estatรญsticas em Tempo Real
- local StatsSection = MenuTab:CreateSection("๐ Estatรญsticas da Sessรฃo")
- local SessionTimeLabel = MenuTab:CreateLabel("โฑ๏ธ Tempo de Sessรฃo: 00:00:00")
- local DinoLevelLabel = MenuTab:CreateLabel("๐ฆ Nรญvel do Dino: 0/60")
- local CrystalsLabel = MenuTab:CreateLabel("๐ Cristais Coletados: 0")
- local MeatsLabel = MenuTab:CreateLabel("๐ฅฉ Carnes Coletadas: 0")
- local TeleportsLabel = MenuTab:CreateLabel("๐ Teleportes Usados: 0")
- local XPGainedLabel = MenuTab:CreateLabel("โญ XP Ganho: 0")
- local CrystalsPerHourLabel = MenuTab:CreateLabel("โก Cristais/Hora: 0")
- local XPPerHourLabel = MenuTab:CreateLabel("๐ซ XP/Hora: 0")
- -- Atualiza estatรญsticas a cada 2 segundos
- task.spawn(function()
- while true do
- task.wait(2)
- SessionTimeLabel:Set("โฑ๏ธ Tempo de Sessรฃo: " .. getSessionTime())
- local level = getDinoLevelSilent()
- DinoLevelLabel:Set(string.format("๐ฆ Nรญvel do Dino: %d/60", level))
- CrystalsLabel:Set("๐ Cristais Coletados: " .. Stats_Data.CrystalsCollected)
- MeatsLabel:Set("๐ฅฉ Carnes Coletadas: " .. Stats_Data.MeatsCollected)
- TeleportsLabel:Set("๐ Teleportes Usados: " .. Stats_Data.TeleportsUsed)
- XPGainedLabel:Set("โญ XP Ganho: " .. Stats_Data.XPGained)
- CrystalsPerHourLabel:Set("โก Cristais/Hora: " .. getCrystalsPerHour())
- XPPerHourLabel:Set("๐ซ XP/Hora: " .. getXPPerHour())
- end
- end)
- local SecuritySection = MenuTab:CreateSection("๐ก๏ธ Status de Seguranรงa")
- local AdminCountLabel = MenuTab:CreateLabel("๐ฎ Admins Detectados: 0")
- local BloomStatusLabel = MenuTab:CreateLabel("๐ รltimo Bloom: Nunca")
- task.spawn(function()
- while true do
- task.wait(5)
- AdminCountLabel:Set("๐ฎ Admins Detectados: " .. AdminDetector.GetAdminCount())
- BloomStatusLabel:Set("๐ รltimo Bloom: " .. BloomDetector.GetTimeSinceLastBloom())
- end
- end)
- local SystemsSection = MenuTab:CreateSection("โก Sistemas Ativos")
- local AutoFarmStatusLabel = MenuTab:CreateLabel("๐ Auto Farm - Desligado")
- local EspCarnesStatusLabel = MenuTab:CreateLabel("๐ฅฉ ESP Carnes - Desligado")
- local EspJogadoresStatusLabel = MenuTab:CreateLabel("๐ฅ ESP Jogadores - Desligado")
- local AutoColetaStatusLabel = MenuTab:CreateLabel("๐ Auto Colet - Desligado")
- local ClickTeleportStatusLabel = MenuTab:CreateLabel("๐ฏ Click Teleport - Desligado")
- local AdminDetectorStatusLabel = MenuTab:CreateLabel("๐ก๏ธ Admin Detector - " .. (Config.AdminDetector and "Ligado" or "Desligado"))
- local HitboxStatusLabel = MenuTab:CreateLabel("๐ฏ Hitbox Expander - Desligado")
- local BloomDetectorStatusLabel = MenuTab:CreateLabel("๐ Bloom Detector - " .. (Config.BloomDetector and "Ligado" or "Desligado"))
- local CreditsSection = MenuTab:CreateSection("๐จโ๐ป Crรฉditos")
- MenuTab:CreateParagraph({
- Title = "Desenvolvedor",
- Content = "Script: NickZScripts\nInterface: Rayfield Library\nVersรฃo: v" .. ScriptVersion .. "\n\n๐ MEGA UPDATE v5.0.0"
- })
- --// ========== ABA AUTO FARM (MANTIDA) ========== //
- local AutoFarmTab = Window:CreateTab("โก Auto Farm", 4483362458)
- local FarmSection = AutoFarmTab:CreateSection("๐ Farm de Cristais")
- local AutoFarmToggle = AutoFarmTab:CreateToggle({
- Name = "Auto Farm Cristais",
- CurrentValue = false,
- Flag = "AutoFarmToggle",
- Callback = function(Value)
- Config.AutoFarm = Value
- if Value then
- AutoFarmStatusLabel:Set("๐ Auto Farm - Ligado")
- else
- AutoFarmStatusLabel:Set("๐ Auto Farm - Desligado")
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Auto Farm " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local ColetaSection = AutoFarmTab:CreateSection("๐ Auto Colet")
- local AutoColetaToggle = AutoFarmTab:CreateToggle({
- Name = "Auto Colet",
- CurrentValue = false,
- Flag = "AutoColetToggle",
- Callback = function(Value)
- Config.AutoColeta = Value
- if Value then
- AutoColetaStatusLabel:Set("๐ Auto Colet - Ligado")
- else
- AutoColetaStatusLabel:Set("๐ Auto Colet - Desligado")
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Auto Colet " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- --// ========== ABA ESP (MANTIDA) ========== //
- local EspTab = Window:CreateTab("๐๏ธ ESP", 4483362458)
- local EspJogadoresSection = EspTab:CreateSection("๐ฅ ESP de Jogadores")
- local EspJogadoresToggle = EspTab:CreateToggle({
- Name = "ESP de Jogadores",
- CurrentValue = false,
- Flag = "EspJogadoresToggle",
- Callback = function(Value)
- Config.PlayerESP = Value
- if Value then
- EspJogadoresStatusLabel:Set("๐ฅ ESP Jogadores - Ligado")
- reinitializeAllPlayerESP()
- else
- EspJogadoresStatusLabel:Set("๐ฅ ESP Jogadores - Desligado")
- for plr, pack in pairs(PlayerESP_Data) do
- if pack.highlight then pack.highlight.Enabled = false end
- if pack.hpGui then pack.hpGui.Enabled = false end
- end
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "ESP Jogadores " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local EspHPToggle = EspTab:CreateToggle({
- Name = "Barra de Vida",
- CurrentValue = false,
- Flag = "EspHPToggle",
- Callback = function(Value)
- Config.PlayerESP_ShowHP = Value
- for plr, pack in pairs(PlayerESP_Data) do
- if pack.hpGui then
- pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
- end
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Barra de Vida " .. (Value and "ligada" or "desligada"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local EspTeamCheckToggle = EspTab:CreateToggle({
- Name = "TeamCheck (Sรณ Inimigos)",
- CurrentValue = false,
- Flag = "EspTeamCheckToggle",
- Callback = function(Value)
- Config.PlayerESP_TeamCheck = Value
- for plr, pack in pairs(PlayerESP_Data) do
- if pack.highlight then
- pack.highlight.Enabled = shouldShowPlayerESP(plr)
- end
- if pack.hpGui then
- pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
- end
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "TeamCheck " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local EspCarnesSection = EspTab:CreateSection("๐ฅฉ ESP de Carnes")
- local EspToggle = EspTab:CreateToggle({
- Name = "Esp de Carnes",
- CurrentValue = false,
- Flag = "EspToggle",
- Callback = function(Value)
- Config.EspMeatActive = Value
- if Value then
- EspCarnesStatusLabel:Set("๐ฅฉ ESP Carnes - Ligado")
- startMeatESP()
- else
- EspCarnesStatusLabel:Set("๐ฅฉ ESP Carnes - Desligado")
- stopMeatESP()
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "ESP Carnes " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- --// ========== ABA TELEPORT (MANTIDA) ========== //
- local TeleportTab = Window:CreateTab("๐ Teleport", 4483362458)
- local TeleportSection = TeleportTab:CreateSection("๐ Teleportes Rรกpidos")
- local TeleportMeatButton = TeleportTab:CreateButton({
- Name = "Teleportar para Carne Mais Prรณxima",
- Callback = function()
- local char = LocalPlayer.Character
- local root = char and char:FindFirstChild("HumanoidRootPart")
- if not root then
- Rayfield:Notify({
- Title = "โ Erro",
- Content = "Personagem nรฃo encontrado!",
- Duration = 1,
- Image = 4483362458
- })
- return
- end
- local meat, distance = findNearestMeat()
- if not meat then
- Rayfield:Notify({
- Title = "โ Erro",
- Content = "Nenhuma carne encontrada!",
- Duration = 1,
- Image = 4483362458
- })
- return
- end
- safeTeleport(CFrame.new(meat.Position + Vector3.new(0, 3, 0)), "Carne")
- updateStat("MeatsCollected", 1)
- end,
- })
- local SpawnSection = TeleportTab:CreateSection("๐ Teleporte para Spawn")
- local TeleportSpawnButton = TeleportTab:CreateButton({
- Name = "Voltar ao Spawn",
- Callback = function()
- if not LastSpawnPosition then
- Rayfield:Notify({
- Title = "โ Erro",
- Content = "Spawn nรฃo detectado!",
- Duration = 1,
- Image = 4483362458
- })
- return
- end
- safeTeleport(LastSpawnPosition, "Spawn")
- end,
- })
- local SavedTeleportsSection = TeleportTab:CreateSection("๐ Locais Salvos")
- if #Config.SavedTeleports > 0 then
- for i, data in ipairs(Config.SavedTeleports) do
- if data.position then
- local locationName = data.name or ("Local " .. i)
- TeleportTab:CreateButton({
- Name = "๐ " .. locationName,
- Callback = function()
- local pos = data.position
- if not pos or not pos.X or not pos.Y or not pos.Z then
- Rayfield:Notify({
- Title = "โ Erro",
- Content = "Posiรงรฃo invรกlida!",
- Duration = 1,
- Image = 4483362458
- })
- return
- end
- local targetCF = CFrame.new(pos.X, pos.Y, pos.Z)
- safeTeleport(targetCF, locationName)
- end,
- })
- end
- end
- else
- TeleportTab:CreateParagraph({
- Title = "โน๏ธ Nenhum Local Salvo",
- Content = "Vocรช ainda nรฃo possui locais salvos."
- })
- end
- --// ========== ๐ ABA SEGURANรA (NOVA) ========== //
- local SecurityTab = Window:CreateTab("๐ก๏ธ Seguranรงa", 4483362458)
- local AdminSection = SecurityTab:CreateSection("๐ฎ Admin Detector")
- SecurityTab:CreateParagraph({
- Title = "โน๏ธ Sobre Admin Detector",
- Content = "Detecta automaticamente admins no servidor usando mรบltiplos mรฉtodos:\n\nโ Verifica username/displayname\nโ Checa grupos\nโ Detecta ferramentas de admin\nโ Analisa aparรชncia do personagem"
- })
- local AdminDetectorToggle = SecurityTab:CreateToggle({
- Name = "Admin Detector",
- CurrentValue = Config.AdminDetector,
- Flag = "AdminDetectorToggle",
- Callback = function(Value)
- Config.AdminDetector = Value
- AdminDetectorStatusLabel:Set("๐ก๏ธ Admin Detector - " .. (Value and "Ligado" or "Desligado"))
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Admin Detector " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local AutoPauseToggle = SecurityTab:CreateToggle({
- Name = "Auto-Pausar ao Detectar Admin",
- CurrentValue = Config.AutoPauseOnAdmin,
- Flag = "AutoPauseToggle",
- Callback = function(Value)
- Config.AutoPauseOnAdmin = Value
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Auto-Pause " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- SecurityTab:CreateButton({
- Name = "๐ Mostrar Admins Detectados",
- Callback = function()
- local adminList = AdminDetector.GetAdminList()
- local count = 0
- print("\nโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ")
- print("โ ๐ฎ ADMINS DETECTADOS NO SERVIDOR โ")
- print("โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ")
- for player, data in pairs(adminList) do
- count = count + 1
- print("โ " .. count .. ". " .. data.Name)
- print("โ Motivo: " .. data.Reason)
- print("โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ")
- end
- if count == 0 then
- print("โ Nenhum admin detectado!")
- end
- print("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ\n")
- Rayfield:Notify({
- Title = "๐ฎ Admins Detectados",
- Content = count .. " admin(s) encontrado(s)\nVeja o console (F9)",
- Duration = 3,
- Image = 4483362458
- })
- end,
- })
- local AntiKickSection = SecurityTab:CreateSection("๐ก๏ธ Anti-Kick & Anti-AFK")
- SecurityTab:CreateParagraph({
- Title = "โน๏ธ Sobre Anti-Kick",
- Content = "Protege contra kicks automรกticos e inatividade:\n\nโ Bloqueia comandos de kick\nโ Simula atividade\nโ Previne AFK kick"
- })
- local AntiKickToggle = SecurityTab:CreateToggle({
- Name = "Anti-Kick & Anti-AFK",
- CurrentValue = Config.AntiKick,
- Flag = "AntiKickToggle",
- Callback = function(Value)
- Config.AntiKick = Value
- if Value then
- AntiKick.Enable()
- else
- AntiKick.Disable()
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Anti-Kick " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local ServerHopSection = SecurityTab:CreateSection("๐ Server Hop")
- SecurityTab:CreateParagraph({
- Title = "โน๏ธ Sobre Server Hop",
- Content = "Troca de servidor inteligente:\n\nโ Encontra servidores vazios\nโ Filtra por ping\nโ Evita servidores cheios"
- })
- SecurityTab:CreateButton({
- Name = "๐ Server Hop (Servidor Vazio)",
- Callback = function()
- Rayfield:Notify({
- Title = "๐ Server Hop",
- Content = "Procurando servidor...",
- Duration = 2,
- Image = 4483362458
- })
- task.wait(1)
- ServerHop.HopToLowPopulation()
- end,
- })
- SecurityTab:CreateButton({
- Name = "๐ Rejoin (Mesmo Servidor)",
- Callback = function()
- Rayfield:Notify({
- Title = "๐ Rejoin",
- Content = "Reconectando...",
- Duration = 1,
- Image = 4483362458
- })
- task.wait(0.5)
- ServerHop.Rejoin()
- end,
- })
- --// ========== ๐ ABA COMBAT (NOVA) ========== //
- local CombatTab = Window:CreateTab("โ๏ธ Combat", 4483362458)
- local HitboxSection = CombatTab:CreateSection("๐ฏ Hitbox Expander")
- CombatTab:CreateParagraph({
- Title = "โน๏ธ Sobre Hitbox Expander",
- Content = "Expande a hitbox de jogadores e dinossauros para facilitar combate:\n\nโ Expande hitbox de players\nโ Expande hitbox de NPCs/Dinos\nโ Tamanho ajustรกvel"
- })
- local HitboxToggle = CombatTab:CreateToggle({
- Name = "Hitbox Expander",
- CurrentValue = false,
- Flag = "HitboxToggle",
- Callback = function(Value)
- Config.HitboxExpander = Value
- if Value then
- HitboxExpander.Enable()
- HitboxStatusLabel:Set("๐ฏ Hitbox Expander - Ligado")
- else
- HitboxExpander.Disable()
- HitboxStatusLabel:Set("๐ฏ Hitbox Expander - Desligado")
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Hitbox Expander " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local HitboxSlider = CombatTab:CreateSlider({
- Name = "Tamanho da Hitbox",
- Range = {5, 50},
- Increment = 1,
- CurrentValue = Config.HitboxSize,
- Flag = "HitboxSlider",
- Callback = function(Value)
- Config.HitboxSize = Value
- HitboxExpander.SetSize(Value)
- end,
- })
- --// ========== ๐ ABA EVENTOS (NOVA) ========== //
- local EventsTab = Window:CreateTab("๐ธ Eventos", 4483362458)
- local BloomSection = EventsTab:CreateSection("๐ Bloom Crystal Detector")
- EventsTab:CreateParagraph({
- Title = "โน๏ธ Sobre Bloom Crystal",
- Content = "O Bloom Crystal รฉ o maior cristal do jogo e dรก MUITO XP!\n\nโ Detecta automaticamente\nโ ESP especial\nโ Auto-teleporte (opcional)\nโ Alerta sonoro"
- })
- local BloomDetectorToggle = EventsTab:CreateToggle({
- Name = "Bloom Crystal Detector",
- CurrentValue = Config.BloomDetector,
- Flag = "BloomDetectorToggle",
- Callback = function(Value)
- Config.BloomDetector = Value
- BloomDetectorStatusLabel:Set("๐ Bloom Detector - " .. (Value and "Ligado" or "Desligado"))
- if Value then
- BloomDetector.Start()
- else
- BloomDetector.Stop()
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Bloom Detector " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local AutoTeleportBloomToggle = EventsTab:CreateToggle({
- Name = "Auto-Teleportar para Bloom",
- CurrentValue = Config.AutoTeleportToBloom,
- Flag = "AutoTeleportBloomToggle",
- Callback = function(Value)
- Config.AutoTeleportToBloom = Value
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "Auto-Teleporte Bloom " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- EventsTab:CreateButton({
- Name = "๐ Teleportar para Bloom Agora",
- Callback = function()
- local bloom = BloomDetector.GetBloomCrystal()
- if not bloom or not bloom.Parent then
- Rayfield:Notify({
- Title = "โ Erro",
- Content = "Nenhum Bloom Crystal encontrado!",
- Duration = 2,
- Image = 4483362458
- })
- return
- end
- local pos = bloom:IsA("BasePart") and bloom.Position or bloom.PrimaryPart.Position
- local root = getHumanoidRootPart()
- if root then
- root.CFrame = CFrame.new(pos + Vector3.new(0, 10, 0))
- Rayfield:Notify({
- Title = "๐ Teleportado",
- Content = "Teleportado para Bloom Crystal!",
- Duration = 1,
- Image = 4483362458
- })
- end
- end,
- })
- --// ========== ๐ ABA OTIMIZAรรO (NOVA) ========== //
- local OptimizationTab = Window:CreateTab("โก Otimizaรงรฃo", 4483362458)
- local FPSSection = OptimizationTab:CreateSection("๐ FPS Booster")
- OptimizationTab:CreateParagraph({
- Title = "โน๏ธ Sobre FPS Booster",
- Content = "Melhora a performance do jogo:\n\nโ Remove sombras\nโ Reduz efeitos visuais\nโ Otimiza terreno\nโ Remove partรญculas"
- })
- local FPSBoosterToggle = OptimizationTab:CreateToggle({
- Name = "FPS Booster",
- CurrentValue = Config.FPSBooster,
- Flag = "FPSBoosterToggle",
- Callback = function(Value)
- Config.FPSBooster = Value
- if Value then
- Optimizer.Enable()
- else
- Optimizer.Disable()
- end
- Rayfield:Notify({
- Title = Value and "โ Ativado" or "โ Desativado",
- Content = "FPS Booster " .. (Value and "ligado" or "desligado"),
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- OptimizationTab:CreateButton({
- Name = "๐งน Otimizar Memรณria Agora",
- Callback = function()
- Optimizer.OptimizeNow()
- Rayfield:Notify({
- Title = "โ Otimizado",
- Content = "Memรณria otimizada!",
- Duration = 1,
- Image = 4483362458
- })
- end,
- })
- local UpdateSection = OptimizationTab:CreateSection("๐ Auto Update")
- OptimizationTab:CreateParagraph({
- Title = "โน๏ธ Sobre Auto Update",
- Content = "Verifica automaticamente se hรก atualizaรงรตes do script.\n\nVersรฃo Atual: v" .. ScriptVersion
- })
- OptimizationTab:CreateButton({
- Name = "๐ Verificar Atualizaรงรตes",
- Callback = function()
- local hasUpdate, newVersion = AutoUpdate.CheckNow()
- if hasUpdate then
- Rayfield:Notify({
- Title = "๐ Atualizaรงรฃo Disponรญvel!",
- Content = "Nova versรฃo: " .. newVersion .. "\nRecarregue o script!",
- Duration = 5,
- Image = 4483362458
- })
- else
- Rayfield:Notify({
- Title = "โ Atualizado",
- Content = "Vocรช estรก na versรฃo mais recente!",
- Duration = 2,
- Image = 4483362458
- })
- end
- end,
- })
- --// ========== ABA OUTROS (MANTIDA + MELHORADA) ========== //
- local OutrosTab = Window:CreateTab("โ๏ธ Outros", 4483362458)
- local ClickTeleportSection = OutrosTab:CreateSection("๐ฏ Click Teleport")
- OutrosTab:CreateParagraph({
- Title = "โน๏ธ Sobre Click Teleport",
- Content = "Teleporte instantรขneo clicando em qualquer superfรญcie.\n\nโ Personagem olha para onde clicou\nโ Anti-acidental\nโ Sem efeitos visuais\n\n๐ก Use o botรฃo โ na interface para desativar"
- })
- OutrosTab:CreateButton({
- Name = "๐ฏ Abrir Click Teleport",
- Callback = function()
- if not Config.ClickTeleportEnabled then
- ClickTeleportModule.Toggle(true)
- ClickTeleportStatusLabel:Set("๐ฏ Click Teleport - Ligado")
- Rayfield:Notify({
- Title = "โ Click Teleport",
- Content = "Interface aberta!\n\nPara fechar, clique no botรฃo โ na interface",
- Duration = 2,
- Image = 4483362458
- })
- else
- Rayfield:Notify({
- Title = "โน๏ธ Jรก Ativo",
- Content = "Click Teleport jรก estรก aberto!",
- Duration = 2,
- Image = 4483362458
- })
- end
- end,
- })
- local InfoSection = OutrosTab:CreateSection("โน๏ธ Informaรงรตes")
- OutrosTab:CreateParagraph({
- Title = "๐ Changelog v5.0.0",
- Content = "๐ Admin Detector Avanรงado\n๐ Server Hop Inteligente\n๐ Hitbox Expander\n๐ Bloom Crystal Detector\n๐ Anti-Kick Robusto\n๐ FPS Booster\n๐ Estatรญsticas Completas\n๐ Auto Update"
- })
- OutrosTab:CreateButton({
- Name = "๐ Copiar Discord (Em Breve)",
- Callback = function()
- Rayfield:Notify({
- Title = "โน๏ธ Discord",
- Content = "Link do Discord em breve!",
- Duration = 2,
- Image = 4483362458
- })
- end,
- })
- --// ========== AUTO FARM LOOP (OTIMIZADO) ========== //
- task.spawn(function()
- local index = 1
- while true do
- task.wait(Config.CheckDelay)
- if Config.AutoFarm then
- local currentLevel = getDinoLevelSilent()
- if currentLevel >= 60 then
- Config.AutoFarm = false
- AutoFarmToggle:Set(false)
- AutoFarmStatusLabel:Set("๐ Auto Farm - Desligado")
- Rayfield:Notify({
- Title = "โ Completo",
- Content = "Nรญvel 60 atingido!",
- Duration = 2,
- Image = 4483362458
- })
- else
- local crystals = getSortedCrystals()
- if #crystals > 0 then
- for _, c in ipairs(crystals) do
- if not Config.AutoFarm or not c or not c.Parent then break end
- teleportToCrystal(c)
- updateStat("CrystalsCollected", 1)
- local fixarConexao = RunService.Heartbeat:Connect(function()
- if Config.AutoFarm and c and c:IsDescendantOf(workspace) then
- local char = getCharacter()
- if char and char.PrimaryPart then
- char:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
- end
- end
- end)
- local elapsed = 0
- while c:IsDescendantOf(workspace) and elapsed < 12 and Config.AutoFarm do
- task.wait(Config.CheckDelay)
- elapsed += Config.CheckDelay
- end
- fixarConexao:Disconnect()
- task.wait(Config.DelayBetweenCrystals)
- end
- else
- index = (index % #Config.PatrulhaPontos) + 1
- teleportTo(Config.PatrulhaPontos[index])
- task.wait(2)
- end
- end
- end
- end
- end)
- --// ========== AUTO COLETA (OTIMIZADO) ========== //
- RunService.Heartbeat:Connect(function()
- if not (Config.AutoFarm or Config.AutoColeta) then return end
- if not Config.podeExecutar then return end
- Config.podeExecutar = false
- local root = getHumanoidRootPart()
- if root then
- for _, obj in ipairs(workspace:GetDescendants()) do
- if obj:IsA("ProximityPrompt") and obj.Parent and obj.Parent:IsA("BasePart") then
- if obj.Enabled and (obj.Parent.Position - root.Position).Magnitude <= Config.raioDeColeta then
- pcall(function()
- fireproximityprompt(obj)
- end)
- end
- end
- end
- end
- task.delay(Config.delayEntreTentativas, function()
- Config.podeExecutar = true
- end)
- end)
- --// ========== INICIALIZAรรO DE MรDULOS ========== //
- -- Admin Detector
- if Config.AdminDetector then
- AdminDetector.Start()
- end
- -- Bloom Detector
- if Config.BloomDetector then
- BloomDetector.Start()
- end
- -- Anti-Kick
- if Config.AntiKick then
- AntiKick.Enable()
- end
- -- FPS Booster
- if Config.FPSBooster then
- Optimizer.Enable()
- end
- -- Auto Update Check
- AutoUpdate.AutoCheck()
- --// ========== CLEANUP AO SAIR ========== //
- LocalPlayer.CharacterRemoving:Connect(function()
- ClickTeleportModule.Cleanup()
- end)
- game:GetService("CoreGui").DescendantRemoving:Connect(function(obj)
- if obj.Name == "Rayfield" then
- ClickTeleportModule.Cleanup()
- if Config.HitboxExpander then
- HitboxExpander.Disable()
- end
- stopMeatESP()
- end
- end)
- --// ========== LOGS FINAIS ========== //
- print("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ")
- print("โ Prรฉ-histรณria v" .. ScriptVersion .. " - By: NickZScripts โ")
- print("โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ")
- print("โ โ GUI Rayfield carregada! โ")
- print("โ ๐ Versรฃo: " .. ScriptVersion .. " โ")
- print("โ ๐ฎ Jogador: " .. LocalPlayer.Name)
- print("โ ๐ Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
- print("โ ๐ Teleports Salvos: " .. #Config.SavedTeleports)
- print("โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ")
- print("โ ๐ฅ MEGA UPDATE v5.0.0 CARREGADO! ๐ฅ โ")
- print("โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ")
- print("โ ๐ NOVOS SISTEMAS: โ")
- print("โ ๐ก๏ธ Admin Detector Avanรงado โ")
- print("โ ๐ Server Hop Inteligente โ")
- print("โ ๐ฏ Hitbox Expander โ")
- print("โ ๐ Bloom Crystal Detector โ")
- print("โ ๐ก๏ธ Anti-Kick/Anti-AFK Robusto โ")
- print("โ โก FPS Booster โ")
- print("โ ๐ Estatรญsticas Completas โ")
- print("โ ๐ Auto Update System โ")
- print("โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ")
- print("โ ๐ FUNCIONALIDADES MANTIDAS: โ")
- print("โ โก Auto Farm de Cristais โ")
- print("โ ๐ฅ ESP de Jogadores โ")
- print("โ ๐ฅฉ ESP de Carnes โ")
- print("โ ๐ Auto Colet โ")
- print("โ ๐ฏ Click Teleport โ")
- print("โ ๐ Teleportes Rรกpidos โ")
- print("โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ")
- print("โ โ ๏ธ SEGURANรA ATIVA: โ")
- print("โ " .. (Config.AdminDetector and "โ " or "โ") .. " Admin Detector โ")
- print("โ " .. (Config.AntiKick and "โ " or "โ") .. " Anti-Kick/Anti-AFK โ")
- print("โ " .. (Config.FPSBooster and "โ " or "โ") .. " FPS Booster โ")
- print("โ " .. (Config.BloomDetector and "โ " or "โ") .. " Bloom Detector โ")
- print("โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ")
- print("โ ๐ SCRIPT TOTALMENTE OPERACIONAL! ๐ โ")
- print("โ ๐ก Use a aba 'Menu' para ver estatรญsticas โ")
- print("โ ๐ก๏ธ Use a aba 'Seguranรงa' para proteรงรฃo โ")
- print("โ โ๏ธ Use a aba 'Combat' para Hitbox Expander โ")
- print("โ ๐ธ Use a aba 'Eventos' para Bloom Crystal โ")
- print("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ")
- -- Notificaรงรฃo de boas-vindas
- Rayfield:Notify({
- Title = "๐ฆ Prรฉ-histรณria v" .. ScriptVersion,
- Content = "Script carregado com sucesso!\n\n๐ MEGA UPDATE com " .. AdminDetector.GetAdminCount() .. " admin(s) detectado(s)",
- Duration = 5,
- Image = 4483362458
- })
Advertisement
Add Comment
Please, Sign In to add comment