-- [[ 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)


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Script key