local rs = game:GetService('ReplicatedStorage')
if rs:FindFirstChild('GameRemotes') then
local HttpService = game:GetService("HttpService")
Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/VeztWare/KavoUi/main/KavoUi.lua"))()
local Window = Library.CreateLib("Craft blox gui", "Midnight")
local Players = game.Players
local lp = Players.LocalPlayer
local blocks = workspace.Blocks
local inventory, plr, tempplr
local data = {}
local plrs = {}
local blockPosX = 0
local blockPosY = 0
local blockPosZ = 0
local Tab = Window:NewTab("Main")
local Tab2 = Window:NewTab("Xray/ESP")
local Section = Tab:NewSection("Blocks")
local Section2 = Tab:NewSection("Chests")
local Section3 = Tab:NewSection("Players")
local Section4 = Tab2:NewSection("Main")
local KillAuraDis = 18
local BBAdis = 21
local IBM = false
local NeededIBM = false
local BBA = false
local KillAura = false
local CoalESP = false
local SteelESP = false
local GoldESP = false
local DiamondESP = false
local RubyESP = false
local SapphireESP = false
local SproutedWheatESP = false
local CustomESP = false
local CustomName = ''
local gr = rs.GameRemotes
local abb = gr.AcceptBreakBlock
local bb = gr.BreakBlock
local atck = gr.Attack
local mi = gr.MoveItem
local si = gr.SortItem
local ub = gr.UseBlock
local pb = gr.PlaceBlock
gr.Demo:Destroy()
function ftp(str)
local pt = nil
if str ~= 'me' and str ~= 'random' then
for i, v in pairs(Players:GetPlayers()) do
if v.Name:lower():find(str:lower()) or v.DisplayName:lower():find(str:lower()) then
pt = v
break
end
end
elseif str == 'me' then
pt = lp
elseif str == 'random' then
pt = Players:GetPlayers()[math.random(1, #Players:GetPlayers())]
end
return pt;
end
Section:NewToggle("Instant mining", "Works only on some blocks", function(state)
IBM = state
end)
Section:NewSlider("Break block aura distance", "Sets maximum break block aura distance", 21, 1, function(s)
BBAdis = s
end)
Section:NewToggle("Break block aura", "Works only on some blocks", function(state)
NeededIBM = state
BBA = state
end)
local label = Section:NewLabel("Your wroten cords:")
Section:NewButton("Set your game pos", "Sets pos for other functions", function()
blockPosX, blockPosY, blockPosZ = lp.PlayerGui.HUDGui.DataFrame.Coord.Text:match("(-?%d+),%s*(-?%d+),%s*(-?%d+)")
label:UpdateLabel("Your wroten cords: "..tostring(blockPosX)..', '..tostring(blockPosY)..', '..tostring(blockPosZ))
end)
Section:NewButton("Flood pos", "Set the 1 slot water, 3 more set to 64 blocks", function()
local pos = 0
local oldPos = lp.Character.HumanoidRootPart.CFrame
for j=1,3 do
for i=0,63 do
pb:InvokeServer(pos+blockPosX,254-pos,blockPosZ,j)
pos = pos+1
end
end
workspace.Gravity = 0
lp.Character.HumanoidRootPart.CFrame = CFrame.new(blockPosX*3, 765, blockPosZ*3)
wait(0.25)
ub:InvokeServer(blockPosX,255,blockPosZ,0)
wait(0.25)
lp.Character.HumanoidRootPart.CFrame = oldPos
workspace.Gravity = 96
end)
Section2:NewButton("Steal chest", "You need to have empty inventory(only that shows with toggle E)", function()
for i=36,62 do
mi:InvokeServer(i, -1)
mi:InvokeServer(-1, i-27, true)
end
end)
Section2:NewButton("Instant chest dupe", "It may seem that the chest is empty, but you need to close it and open it again", function()
for i=36,62 do
spawn(function()
si:InvokeServer(i)
end)
end
end)
Section3:NewTextBox("Player name(ONLY ONE)", "You can type here part of real/display name, me, and random", function(txt)
plr = ftp(txt)
end)
Section3:NewButton("Print inventory to console", "Dont forget to fill player name(ONLY ONE)", function()
inventory = plr.Character.Inventory
print(plr.Name.."'s inventory: ")
for _,v in pairs(inventory:GetDescendants()) do
data = HttpService:JSONDecode(v.Value)
if data.count > 0 then
print('Item: '..data.name)
if data.durability ~= false then
print('Durability: '..tostring(data.durability))
end
print('Count: '..tostring(data.count))
print('---------------------------')
end
end
print('---------------------------')
end)
Section3:NewTextBox("Player name(MANY)", "You can type here part of real/display name, me, and random", function(txt)
local plr111 = ftp(txt)
if plr111 ~= nil then
table.insert(plrs, plr111)
end
end)
Section3:NewButton("Print player list", "Prints players that you added to Player name(MANY)", function()
for _,plr12 in pairs(plrs) do
print(plr12.Name)
end
end)
Section3:NewButton("Clear player list", "Clears player list", function()
plrs = {}
end)
Section3:NewSlider("Kill aura distance", "Sets maximum kill aura distance", 18, 1, function(s)
KillAuraDis = s
end)
Section3:NewToggle("Enable/Disable kill aura", "Kills players nearby you, excluding players in the player list", function(state)
KillAura = state
end)
local partName2Color = {
CoalOre = "Really black",
SteelOre = "Medium stone grey",
GoldOre = "Gold",
DiamondOre = "Cyan",
RubyOre = "Really red",
SapphireOre = "Really blue",
Wheat5 = "Wheat"
}
local function createESP(adornee, color)
local a = Instance.new("BoxHandleAdornment")
a.Parent = adornee
a.Adornee = adornee
a.AlwaysOnTop = true
a.ZIndex = 0
a.Size = adornee.Size
a.Transparency = 0.5
a.Color = BrickColor.new(color)
end
local function init(name, state)
if state then
local color = partName2Color[name]
if color == nil then
color = 'Institutional white'
end
for _,v in pairs(blocks:GetDescendants()) do
if v.Name == name then
createESP(v, color)
end
end
else
for _,v in pairs(blocks:GetDescendants()) do
if v:IsA('BoxHandleAdornment') and v.Parent.Name == name then
v:Destroy()
end
end
end
end
blocks.DescendantAdded:Connect(function(v)
if v.Name == 'CoalOre' and CoalESP then
createESP(v, "Really black")
elseif v.Name == 'SteelOre' and SteelESP then
createESP(v, "Medium stone grey")
elseif v.Name == 'GoldOre' and GoldESP then
createESP(v, "Gold")
elseif v.Name == 'DiamondOre' and DiamondESP then
createESP(v, "Cyan")
elseif v.Name == 'RubyOre' and RubyESP then
createESP(v, "Really red")
elseif v.Name == 'SapphireOre' and SapphireESP then
createESP(v, "Really blue")
elseif v.Name == 'Wheat5' and SproutedWheatESP then
createESP(v, "Wheat")
elseif v.Name == CustomName and CustomESP then
createESP(v, "Institutional white")
end
end)
Section4:NewToggle("ESP Coal ore", "Locates it", function(state)
CoalESP = state
wait()
init('CoalOre', state)
end)
Section4:NewToggle("ESP Steel ore", "Locates it", function(state)
SteelESP = state
wait()
init('SteelOre', state)
end)
Section4:NewToggle("ESP Gold ore", "Locates it", function(state)
GoldESP = state
wait()
init('GoldOre', state)
end)
Section4:NewToggle("ESP Diamond ore", "Locates it", function(state)
DiamondESP = state
wait()
init('DiamondOre', state)
end)
Section4:NewToggle("ESP Ruby ore", "Locates it", function(state)
RubyESP = state
wait()
init('RubyOre', state)
end)
Section4:NewToggle("ESP Sapphire ore", "Locates it", function(state)
SapphireESP = state
wait()
init('SapphireOre', state)
end)
Section4:NewToggle("ESP Sprouted wheat", "Locates it", function(state)
SproutedWheatESP = state
wait()
init('Wheat5', state)
end)
Section4:NewTextBox("Custom ESP name", "Type here custom block to esp", function(txt)
CustomName = txt
end)
Section4:NewToggle("Custom ESP", "Locates it", function(state)
CustomESP = state
wait()
init(CustomName, state)
end)
local function isElementInTable(element, table)
for _, v in pairs(table) do
if v == element then
return true
end
end
return false
end
local function getClosestPlayer()
local closestDistance = KillAuraDis
local closestPlayer = nil
for _, player in pairs(Players:GetPlayers()) do
if player ~= lp and not isElementInTable(player, plrs) then
local distance = (lp.Character.PrimaryPart.Position - player.Character.PrimaryPart.Position).Magnitude
if distance < closestDistance then
closestDistance = distance
closestPlayer = player
end
end
end
return closestPlayer
end
spawn(function()
while wait(0.1) do
if KillAura then
pcall(function()
tempplr = getClosestPlayer()
if tempplr ~= nil then
if tempplr.Character ~= nil then
atck:InvokeServer(tempplr.Character)
end
end
end)
end
end
end)
spawn(function()
while true do
if BBA then
for _, v in pairs(blocks:GetDescendants()) do
if v:IsA('MeshPart') then
pos = v.Position
if (lp.Character.HumanoidRootPart.Position - pos).magnitude < BBAdis then
bb:FireServer(pos.x/3, pos.y/3, pos.z/3)
wait()
end
end
end
end
wait()
end
end)
while task.wait() do
if IBM or NeededIBM then
abb:InvokeServer()
end
end
end
Comments
still works?
@DucNam Yes
banned game D:
@JjdjdjddDdjjdd Find other craftblox
@OuterTrees oh okay
i can't esp sapphire pls fix
@DucNam Actually, you can, but some craftbloxes don't have it, but if they have, it's VERY rare, so don't expect a lot of blue esps to appear on the screen