-- [[ GOD-EYE ANTI-CHEAT: 15 PUNISHMENTS + ADMIN + STEP BAN ]] --
local Players = game:GetService("Players")
local Debris = game:GetService("Debris")
local DataStoreService = game:GetService("DataStoreService")
local AntiCheatStore = DataStoreService:GetDataStore("GodEye_Final_Full_V12")
-- ==========================================
-- ⚙️ การตั้งค่าระบบ (Configuration)
-- ==========================================
local SETTINGS = {
MaxWalkSpeed = 35,
MaxCashGain = 10000,
StrikeToPunish = 5,
MaxPunishToBan = 50, -- 50 แต้มแบน
PunishCooldown = 10,
PunishLocation = Vector3.new(0, 10, 0),
}
-- 👑 รายชื่อ Admin (ปลอดภัย 100%)
local ADMIN_WHITELIST = {
["Sannnn5302"] = true,
}
local PlayerStrikes = {}
local PlayerPunishCount = {}
local LastPunishTime = {}
-- ฟังก์ชันช่วยจัดการสีและวัสดุ
local function ChangeVisuals(char, color, material)
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Color = color
part.Material = material or Enum.Material.Plastic
end
end
end
function ChatAnnounce(msg)
local m = Instance.new("Message", workspace)
m.Text = "🚨 [GOD-EYE] " .. msg .. " 🚨"
Debris:AddItem(m, 6)
end
-- ==========================================
-- 🎭 คลังบทลงโทษทั้ง 15 แบบ (The 15 Ceremonies)
-- ==========================================
local Punishments = {
function(c, r) -- 1. หมู (ID: 1591903)
ChatAnnounce(c.Name .. " กลายเป็นหมู! / Piggy!"); local m = Instance.new("SpecialMesh", r); m.MeshId = "rbxassetid://1591903"; m.Scale = Vector3.new(5,5,5); Debris:AddItem(m, 15)
end,
function(c, r) -- 2. รำแก้บน
ChatAnnounce(c.Name .. " รำแก้บน! / Forced Dance!"); r.Anchored = true; task.spawn(function() for i=1,30 do r.CFrame *= CFrame.Angles(0,math.rad(45),0); task.wait(0.1) end; r.Anchored = false end)
end,
function(c, r) -- 3. กรงขัง
ChatAnnounce("⛓️ ขังลืม! / Caged!"); r.Anchored = true; local p = Instance.new("Part", workspace); p.Size = Vector3.new(10,12,10); p.Position = r.Position; p.Material = "Neon"; p.Color = Color3.new(0,0,0); p.Transparency = 0.5; p.Anchored = true; Debris:AddItem(p, 15); task.delay(15, function() r.Anchored = false end)
end,
function(c, r) -- 4. เป้ายิง + ตัวแดงนีออน
ChatAnnounce(c.Name .. " กลายเป็นเป้าแดง! / Red Target!"); ChangeVisuals(c, Color3.new(1, 0, 0), Enum.Material.Neon)
local g = Instance.new("BillboardGui", r); g.Size = UDim2.new(5,0,5,0); local i = Instance.new("ImageLabel", g); i.Size = UDim2.new(1,0,1,0); i.Image = "rbxassetid://1254700"; i.BackgroundTransparency = 1; Debris:AddItem(g, 15)
end,
function(c, r) -- 5. ฝนเงินค้างถาวร
ChatAnnounce("💸 Cash ปลอมทับตัวถาวร! / Perm Cash Rain!"); for i=1,20 do local p = Instance.new("Part", workspace); p.Size = Vector3.new(2,0.2,1); p.Color = Color3.new(0,1,0); p.Position = r.Position + Vector3.new(math.random(-5,5), 15, math.random(-5,5)) end
end,
function(c, r) -- 6. หินสีเทา (Slate)
ChatAnnounce(c.Name .. " กลายเป็นหิน! / Stone Statue!"); ChangeVisuals(c, Color3.new(0.5, 0.5, 0.5), Enum.Material.Slate); r.Anchored = true; task.delay(10, function() r.Anchored = false end)
end,
function(c, r) -- 7. หัวโต
local h = c:FindFirstChild("Head"); if h then h.Size *= 3; task.delay(10, function() if h then h.Size /= 3 end end) end
end,
function(c, r) -- 8. ไก่ย่าง
local f = Instance.new("Fire", r); f.Size = 20; Debris:AddItem(f, 10)
end,
function(c, r) -- 9. ระเบิดตด
local s = Instance.new("Smoke", r); s.Color = Color3.new(0.3, 0.2, 0); Debris:AddItem(s, 10)
end,
function(c, r) -- 10. แช่แข็ง
r.Anchored = true; r.Material = "Ice"; r.Color = Color3.new(0,1,1); task.delay(10, function() r.Anchored = false end)
end,
function(c, r) -- 11. อุกกาบาตยักษ์ (60x60x60)
ChatAnnounce("☄️ อุกกาบาตยักษ์ล้างโลก! / GIANT METEOR!"); local m = Instance.new("Part", workspace); m.Shape = "Ball"; m.Size = Vector3.new(60,60,60); m.Position = r.Position + Vector3.new(0,150,0); m.Velocity = Vector3.new(0,-300,0); m.Touched:Connect(function() local e = Instance.new("Explosion", workspace); e.Position = m.Position; e.BlastRadius = 40; c:BreakJoints(); m:Destroy() end)
end,
function(c, r) -- 12. จรวดไปดวงจันทร์
local f = Instance.new("Fire", r); f.Size = 25; local bv = Instance.new("BodyVelocity", r); bv.MaxForce = Vector3.new(1e7,1e7,1e7); bv.Velocity = Vector3.new(0,800,0)
end,
function(c, r) -- 13. สายฟ้าฟาด
for i=1,3 do local e = Instance.new("Explosion", workspace); e.Position = r.Position; task.wait(0.3) end
end,
function(c, r) -- 14. หลุมดำดูด
local bl = Instance.new("Part", workspace); bl.Shape = "Ball"; bl.Size = Vector3.new(1,1,1); bl.Position = r.Position; bl.Anchored = true; bl.Color = Color3.new(0,0,0); for i=1,10 do bl.Size += Vector3.new(2,2,2); task.wait(0.1) end; Debris:AddItem(bl, 5)
end,
function(c, r) -- 15. พระเจ้าตบ
ChatAnnounce("✋ พระหัตถ์พระเจ้า! / Slapped by God!"); local h = Instance.new("Part", workspace); h.Size = Vector3.new(20,2,20); h.Position = r.Position + Vector3.new(0,20,0); h.Velocity = Vector3.new(0,-200,0); task.wait(0.5); c:BreakJoints()
end
}
-- ==========================================
-- ⚖️ ระบบแบนขั้นบันได (Tiered Ban)
-- ==========================================
local function ExecuteBan(player)
local userId = tostring(player.UserId)
local banTier = 0
pcall(function() banTier = AntiCheatStore:GetAsync("BanTier_" .. userId) or 0 end)
banTier += 1
local banDuration = 0
local banMsg = ""
if banTier == 1 then banDuration = 60; banMsg = "แบน 1 นาที"
elseif banTier == 2 then banDuration = 86400; banMsg = "แบน 1 วัน"
elseif banTier == 3 then banDuration = 604800; banMsg = "แบน 1 สัปดาห์"
else banTier = 4; banMsg = "แบนถาวร!" end
for i = 5, 1, -1 do
ChatAnnounce("🚫 " .. player.Name .. " จะถูก " .. banMsg .. " ใน " .. i .. " วิ...")
task.wait(1)
end
local banExpiry = (banTier < 4) and (os.time() + banDuration) or -1
pcall(function()
AntiCheatStore:SetAsync("BanTier_" .. userId, banTier)
AntiCheatStore:SetAsync("BanExpiry_" .. userId, banExpiry)
AntiCheatStore:SetAsync("Punish_" .. userId, 0) -- RESET แต้มเมื่อโดนแบนตามสั่ง
end)
player:Kick("\n[GOD-EYE]\n" .. banMsg .. "\nพ้นโทษแล้วแต้มสะสมจะเริ่มใหม่")
end
-- ==========================================
-- 🕵️ ระบบตรวจจับหลัก (Main Engine)
-- ==========================================
Players.PlayerAdded:Connect(function(player)
if ADMIN_WHITELIST[player.Name] then return end -- Admin รอด!
local userId = tostring(player.UserId)
local banTier, banExpiry = 0, 0
pcall(function()
banTier = AntiCheatStore:GetAsync("BanTier_" .. userId) or 0
banExpiry = AntiCheatStore:GetAsync("BanExpiry_" .. userId) or 0
end)
if banTier >= 4 then player:Kick("\nคุณถูกแบนถาวร") return end
if os.time() < banExpiry then player:Kick("\nติดแบนเหลืออีก: " .. (banExpiry - os.time()) .. " วิ") return end
local savedPunish = 0
pcall(function() savedPunish = AntiCheatStore:GetAsync("Punish_" .. userId) or 0 end)
PlayerPunishCount[player.UserId] = savedPunish
PlayerStrikes[player.UserId] = 0
LastPunishTime[player.UserId] = 0
local stats = Instance.new("Folder", player); stats.Name = "leaderstats"
local cash = Instance.new("IntValue", stats); cash.Name = "Cash"; cash.Value = 0
local punished = Instance.new("IntValue", stats); punished.Name = "Punished"; punished.Value = savedPunish
player.CharacterAdded:Connect(function(char)
local hrp = char:WaitForChild("HumanoidRootPart")
local lastPos = hrp.Position
while char and char.Parent do
task.wait(1)
local dist = (hrp.Position - lastPos).Magnitude
if dist > SETTINGS.MaxWalkSpeed then PlayerStrikes[player.UserId] += 1 end
if PlayerStrikes[player.UserId] >= SETTINGS.StrikeToPunish then
local cur = os.time()
if cur - LastPunishTime[player.UserId] >= SETTINGS.PunishCooldown then
LastPunishTime[player.UserId] = cur
PlayerStrikes[player.UserId] = 0
PlayerPunishCount[player.UserId] += 1
punished.Value = PlayerPunishCount[player.UserId]
-- 📍 วาร์ปไปจุด (0, 10, 0) ทุกครั้ง
hrp.CFrame = CFrame.new(SETTINGS.PunishLocation)
pcall(function() AntiCheatStore:SetAsync("Punish_" .. userId, PlayerPunishCount[player.UserId]) end)
if PlayerPunishCount[player.UserId] >= SETTINGS.MaxPunishToBan then
ExecuteBan(player)
break
else
ChatAnnounce(player.Name .. " โทษครั้งที่: " .. PlayerPunishCount[player.UserId] .. "/50")
-- สุ่มบทลงโทษจากทั้งหมด 15 แบบ
Punishments[math.random(1, #Punishments)](char, hrp)
end
end
end
lastPos = hrp.Position
end
end)
end)
ความคิดเห็น
แสดงความคิดเห็น