-- [[ MINECRAFT FONT CHANGER - SAFE VERSION ]] -- -- Ganti font jadi Minecraft tanpa bikin layout berantakan if _G.MinecraftSafe then pcall(function() _G.MinecraftSafe:Stop() end) end local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LP = Players.LocalPlayer -- ============================================================================ -- CONFIG -- ============================================================================ local MC_FONT = Enum.Font.Arcade -- Daftar nama GUI yang DI-SKIP (biar gak berantakan) local SKIP_NAMES = { ["Chat"] = true, ["RobloxChat"] = true, ["TopBarApp"] = true, ["SettingsMenu"] = true, ["RobloxGui"] = true, } -- Scan delay (makin gede, makin ringan) local SCAN_DELAY = 1 -- ============================================================================ -- STATE -- ============================================================================ local running = true local changedCount = 0 local changedList = {} -- ============================================================================ -- CEK APAKAH OBJECT HARUS DI-SKIP -- ============================================================================ local function shouldSkip(obj) local current = obj local depth = 0 while current and depth < 5 do if SKIP_NAMES[current.Name] then return true end current = current.Parent depth = depth + 1 end return false end -- ============================================================================ -- GANTI FONT (TANPA UBAH SIZE) -- ============================================================================ local function changeFont(obj) if not obj or not obj.Parent then return end -- Cek apakah ini text object local isTextObj = false pcall(function() isTextObj = obj:IsA("TextLabel") or obj:IsA("TextButton") or obj:IsA("TextBox") end) if not isTextObj then return end -- Skip kalo di daftar skip if shouldSkip(obj) then return end -- Skip kalo udah pake font Minecraft pcall(function() if obj.Font == MC_FONT then return end -- Simpen original font (buat restore) if not obj:GetAttribute("OriginalFont") then obj:SetAttribute("OriginalFont", obj.Font.Name) end -- GANTI FONT DOANG — JANGAN UBAH SIZE/LAYOUT obj.Font = MC_FONT changedCount = changedCount + 1 table.insert(changedList, obj) end) end -- ============================================================================ -- SCAN SEMUA GUI -- ============================================================================ local function scanAll() -- 1. PlayerGui (GUI game) pcall(function() local pg = LP:FindFirstChild("PlayerGui") if pg then for _, obj in pairs(pg:GetDescendants()) do changeFont(obj) end end end) -- 2. Workspace (BillboardGui / nametag) pcall(function() for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("BillboardGui") or obj:IsA("SurfaceGui") then for _, child in pairs(obj:GetDescendants()) do changeFont(child) end end end end) end -- ============================================================================ -- LOOP SCAN -- ============================================================================ task.spawn(function() while running do scanAll() task.wait(SCAN_DELAY) end end) -- ============================================================================ -- FUNGSI RESTORE (balikin ke font asli) -- ============================================================================ local function restoreAll() for _, obj in pairs(changedList) do pcall(function() if obj and obj.Parent then local origName = obj:GetAttribute("OriginalFont") if origName then -- Balikin font asli for _, font in pairs(Enum.Font:GetEnumItems()) do if font.Name == origName then obj.Font = font break end end obj:SetAttribute("OriginalFont", nil) end end end) end changedList = {} changedCount = 0 end -- ============================================================================ -- API -- ============================================================================ _G.MinecraftSafe = { Stop = function() running = false print("⛏ Minecraft Font stopped.") end, Restore = function() restoreAll() print("⛏ Semua font dibalikin ke aslinya.") end, Status = function() return running, changedCount end, SkipGUI = function(name) SKIP_NAMES[name] = true print("⛏ Skip GUI: " .. name) end, } print("⛏ MINECRAFT FONT - SAFE VERSION LOADED!") print("📌 Font diganti tanpa ubah size/layout") print("📌 Kalo ada GUI berantakan, ketik: _G.MinecraftSafe.SkipGUI('NamaGUI')") print("📌 Buat balikin: _G.MinecraftSafe.Restore()") print("📌 Buat matiin: _G.MinecraftSafe.Stop()")