
The best BloxStrike (Roblox) script with Aimbot, Wall Bang, Esp, No Ban, and LegitBot features is available for free on PC and Mobile. Simply copy the script code or download it from this page. This is a full-fledged cheat with a variety of functions and a user-friendly GUI where you can customize the script settings, enable desired features, and more. For example, you can see enemies through the map's texture, shoot accurately with any weapon, and more. Currently, this is the best BloxStrike script, and we have also provided other BloxStrike scripts and hacks that are just as effective.
The BloxStrike Script is built for players who want full control in BloxStrike, a fast-paced, competitive 5v5 FPS experience designed from the ground up for Roblox. Inspired by classic tactical shooters, BloxStrike is all about smart positioning, clean aim, and team-based strategy. This script enhances that core gameplay with Aimbot, Wall Bang, and ESP, helping you read the battlefield, react faster, and outplay the enemy team round after round.
BloxStrike Script Pirno Hub (Free, No Key) - Aimbot, SkinChanger, ESP, Silent Aim

-- free no soo bad
local Rayfield = loadstring(game:HttpGet("https://raw.githubusercontent.com/twistedk1d/BloxStrike/refs/heads/main/Source/UI/source.lua"))()
--// Window creation
local Window = Rayfield:CreateWindow({
Name = "Pirno.ccx",
Icon = 0,
LoadingTitle = "loading pirno.ccx (Blox Strike)",
LoadingSubtitle = "by .Sparky9971",
ShowText = "Menu",
Theme = "Amethyst",
ToggleUIKeybind = Enum.KeyCode.RightShift,
DisableRayfieldPrompts = false,
DisableBuildWarnings = false,
ConfigurationSaving = {
Enabled = true,
FolderName = "Pirno.ccx",
FileName = "Pirno.ccx"
}
})
--// Services & Globals
local RS = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local CAS = game:GetService("ContextActionService")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local camera = Workspace.CurrentCamera
local CharactersFolder = Workspace:WaitForChild("Characters", 10)
--// ==========================================
--// TABS
--// ==========================================
local Tab_Combat = Window:CreateTab("Combat", "crosshair")
local Tab_Skins = Window:CreateTab("Skins", "swords")
local Tab_Visuals = Window:CreateTab("Visuals", "eye")
Tab_Skins:CreateLabel("this skin changer script by twistedk1d (not made me)", "code", Color3.fromRGB(80,80,80), false)
--// ==========================================
--// SHARED LOGIC (TEAM CHECK)
--// ==========================================
local function getTFolder() return CharactersFolder:FindFirstChild("Terrorists") end
local function getCTFolder() return CharactersFolder:FindFirstChild("Counter-Terrorists") end
local function isAlive()
local t, ct = getTFolder(), getCTFolder()
return (t and t:FindFirstChild(player.Name)) or (ct and ct:FindFirstChild(player.Name))
end
local function getEnemyFolder()
if not isAlive() then return nil end
local t, ct = getTFolder(), getCTFolder()
if t and t:FindFirstChild(player.Name) then return ct end
if ct and ct:FindFirstChild(player.Name) then return t end
return nil
end
--// ==========================================
--// AIMBOT & FOV LOGIC
--// ==========================================
local AimbotEnabled = false
local ShowFOV = false
local FOV_Radius = 100
local Smoothing = 3
local AimKey = Enum.UserInputType.MouseButton2
local isAiming = false
local FOVCircle = Drawing.new("Circle")
FOVCircle.Position = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
FOVCircle.Radius = FOV_Radius
FOVCircle.Filled = false
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Visible = false
FOVCircle.Thickness = 1
local function getClosestEnemyToMouse()
local closestEnemy = nil
local shortestDistance = FOV_Radius
local enemyFolder = getEnemyFolder()
if not enemyFolder or not AimbotEnabled then return nil end
local mousePos = UserInputService:GetMouseLocation()
for _, enemy in ipairs(enemyFolder:GetChildren()) do
local hum = enemy:FindFirstChildOfClass("Humanoid")
local head = enemy:FindFirstChild("Head")
if hum and hum.Health > 0 and head then
local headPos, onScreen = camera:WorldToViewportPoint(head.Position)
if onScreen then
local distance = (Vector2.new(headPos.X, headPos.Y) - mousePos).Magnitude
if distance < shortestDistance then
shortestDistance = distance
closestEnemy = head
end
end
end
end
return closestEnemy
end
UserInputService.InputBegan:Connect(function(input)
if input.UserInputType == AimKey then isAiming = true end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == AimKey then isAiming = false end
end)
RunService.RenderStepped:Connect(function()
if ShowFOV then
FOVCircle.Position = UserInputService:GetMouseLocation()
FOVCircle.Radius = FOV_Radius
FOVCircle.Visible = true
else
FOVCircle.Visible = false
end
if not isAiming or not isAlive() or not AimbotEnabled then return end
local targetHead = getClosestEnemyToMouse()
if targetHead then
local headPos = camera:WorldToViewportPoint(targetHead.Position)
local mousePos = UserInputService:GetMouseLocation()
local moveX = (headPos.X - mousePos.X) / Smoothing
local moveY = (headPos.Y - mousePos.Y) / Smoothing
if mousemoverel then
mousemoverel(moveX, moveY)
end
end
end)
Tab_Combat:CreateSection("Aimbot Settings")
Tab_Combat:CreateToggle({
Name = "Enable Aimbot (Hold Right Click)",
CurrentValue = false,
Flag = "AimbotToggle",
Callback = function(Value) AimbotEnabled = Value end
})
Tab_Combat:CreateToggle({
Name = "Show FOV Circle",
CurrentValue = false,
Flag = "FOVToggle",
Callback = function(Value) ShowFOV = Value end
})
Tab_Combat:CreateSlider({
Name = "FOV Radius",
Range = {10, 500},
Increment = 10,
Suffix = "px",
CurrentValue = 100,
Flag = "FOVSlider",
Callback = function(Value) FOV_Radius = Value end
})
Tab_Combat:CreateSlider({
Name = "Aimbot Smoothing",
Range = {1, 10},
Increment = 1,
Suffix = " (Lower is faster)",
CurrentValue = 3,
Flag = "AimbotSmoothing",
Callback = function(Value) Smoothing = Value end
})
--// ==========================================
--// TRIGGERBOT LOGIC
--// ==========================================
local TriggerBotEnabled = false
local TriggerBotDelay = 0
Tab_Combat:CreateSection("TriggerBot Settings")
Tab_Combat:CreateToggle({
Name = "Enable TriggerBot",
CurrentValue = false,
Flag = "TriggerBotToggle",
Callback = function(Value) TriggerBotEnabled = Value end
})
Tab_Combat:CreateSlider({
Name = "Shot Delay",
Range = {0, 500},
Increment = 10,
Suffix = "ms",
CurrentValue = 0,
Flag = "TriggerBotDelay",
Callback = function(Value) TriggerBotDelay = Value end
})
task.spawn(function()
while task.wait(0.01) do
if TriggerBotEnabled and isAlive() then
local viewportSize = camera.ViewportSize
local ray = camera:ViewportPointToRay(viewportSize.X / 2, viewportSize.Y / 2)
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
local ignoreList = {camera}
if player.Character then table.insert(ignoreList, player.Character) end
raycastParams.FilterDescendantsInstances = ignoreList
local result = Workspace:Raycast(ray.Origin, ray.Direction * 1000, raycastParams)
if result and result.Instance then
local hitPart = result.Instance
local model = hitPart:FindFirstAncestorOfClass("Model")
if model and model:FindFirstChildOfClass("Humanoid") then
local enemyFolder = getEnemyFolder()
if enemyFolder and model.Parent == enemyFolder then
local hum = model:FindFirstChildOfClass("Humanoid")
if hum and hum.Health > 0 then
if TriggerBotDelay > 0 then task.wait(TriggerBotDelay / 1000) end
if mouse1click then mouse1click() end
task.wait(0.05)
end
end
end
end
end
end
end)
--// ==========================================
--// SIMPLE HITBOX LOGIC (NO HOOKS)
--// ==========================================
local HitboxEnabled = false
local HitboxSize = 3
local originalHeadSizes = {}
Tab_Combat:CreateSection("Simple Hitbox (Max 3)")
Tab_Combat:CreateToggle({
Name = "Enable Hitbox",
CurrentValue = false,
Flag = "HitboxToggle",
Callback = function(Value)
HitboxEnabled = Value
end
})
Tab_Combat:CreateSlider({
Name = "Hitbox Size",
Range = {1, 3},
Increment = 0.1,
Suffix = " Studs",
CurrentValue = 3,
Flag = "HitboxSize",
Callback = function(Value)
HitboxSize = Value
end
})
task.spawn(function()
while task.wait(0.5) do
local enemyFolder = getEnemyFolder()
if enemyFolder then
for _, enemy in ipairs(enemyFolder:GetChildren()) do
local head = enemy:FindFirstChild("Head")
local hum = enemy:FindFirstChildOfClass("Humanoid")
if head and hum and hum.Health > 0 then
-- Cache original size if not saved
if not originalHeadSizes[head] then
originalHeadSizes[head] = head.Size
end
if HitboxEnabled then
head.Size = Vector3.new(HitboxSize, HitboxSize, HitboxSize)
head.CanCollide = false
head.Transparency = 0.5
else
-- Revert to normal if disabled
if originalHeadSizes[head] and head.Size ~= originalHeadSizes[head] then
head.Size = originalHeadSizes[head]
head.Transparency = 0
end
end
end
end
end
end
end)
--// ==========================================
--// BHOP (BUNNY HOP) LOGIC
--// ==========================================
local BhopEnabled = false
Tab_Combat:CreateSection("Movement Settings")
Tab_Combat:CreateToggle({
Name = "Enable Bunny Hop (Hold Space)",
CurrentValue = false,
Flag = "BhopToggle",
Callback = function(Value)
BhopEnabled = Value
end
})
RunService.RenderStepped:Connect(function()
if BhopEnabled and UserInputService:IsKeyDown(Enum.KeyCode.Space) and isAlive() then
if player.Character then
local hum = player.Character:FindFirstChildOfClass("Humanoid")
if hum and hum:GetState() ~= Enum.HumanoidStateType.Jumping and hum:GetState() ~= Enum.HumanoidStateType.Freefall then
hum.Jump = true
end
end
end
end)
--// ==========================================
--// SKINS TAB LOGIC
--// ==========================================
local scriptRunning = false
local selectedKnife = "Butterfly Knife"
local spawned = false
local inspecting = false
local swinging = false
local lastAttackTime = 0
local ATTACK_COOLDOWN = 1
local ACTION_INSPECT = "InspectKnifeAction"
local ACTION_ATTACK = "AttackKnifeAction"
pcall(function() RS.Assets.Weapons.Karambit.Camera.ViewmodelLight.Transparency = 1 end)
local knives = {
["Karambit"] = {Offset = CFrame.new(0, -1.5, 1.5)},
["Butterfly Knife"] = {Offset = CFrame.new(0, -1.5, 1.5)},
["M9 Bayonet"] = {Offset = CFrame.new(0, -1.5, 1)},
["Flip Knife"] = {Offset = CFrame.new(0, -1.5, 1.25)},
["Gut Knife"] = {Offset = CFrame.new(0, -1.5, 0.5)},
}
local vm, animator
local equipAnim, idleAnim, inspectAnim, HeavySwingAnim, Swing1Anim, Swing2Anim
local function getKnifeInCamera() return camera:FindFirstChild("T Knife") or camera:FindFirstChild("CT Knife") end
local function cleanPart(part)
if not part:IsA("BasePart") then return end
part.CanCollide, part.Anchored, part.CastShadow, part.CanTouch, part.CanQuery = false, false, false, false, false
end
local function disableCollisions(model)
for _, part in model:GetDescendants() do cleanPart(part) end
end
local function hideOriginalKnife(knife)
for _, part in knife:GetDescendants() do
if part:IsA("BasePart") or part:IsA("MeshPart") or part:IsA("Texture") then part.Transparency = 1 end
end
end
local function playSound(folder, name)
local weaponSounds = RS.Sounds:FindFirstChild(selectedKnife)
if not weaponSounds then return end
local sound = weaponSounds:WaitForChild(folder):WaitForChild(name):Clone()
sound.Parent = camera
sound:Play()
sound.Ended:Once(function() sound:Destroy() end)
return sound
end
local function attachAsset(folder, armPartName, assetModelName, finalName, offset)
local targetArm = vm:FindFirstChild(armPartName)
if not targetArm then return end
local assetMesh = folder:WaitForChild(assetModelName):Clone()
cleanPart(assetMesh)
assetMesh.Name = finalName
assetMesh.Parent = targetArm
local motor = Instance.new("Motor6D")
motor.Part0, motor.Part1, motor.C0, motor.Parent = targetArm, assetMesh, offset, targetArm
end
local function handleAction(actionName, inputState, inputObject)
if inputState ~= Enum.UserInputState.Begin or not spawned or not animator or not isAlive() then return Enum.ContextActionResult.Pass end
if actionName == ACTION_INSPECT then
if (equipAnim and equipAnim.IsPlaying) or inspecting or swinging then return Enum.ContextActionResult.Pass end
inspecting = true
if idleAnim then idleAnim:Stop() end
inspectAnim:Play()
inspectAnim.Stopped:Once(function() inspecting = false end)
elseif actionName == ACTION_ATTACK then
local currentTime = os.clock()
if (equipAnim and equipAnim.IsPlaying) or (currentTime - lastAttackTime < ATTACK_COOLDOWN) then return Enum.ContextActionResult.Pass end
lastAttackTime = currentTime
if inspecting then inspecting = false; if inspectAnim then inspectAnim:Stop() end end
swinging = true
if idleAnim then idleAnim:Stop() end
local anims = {HeavySwingAnim, Swing1Anim, Swing2Anim}
local chosenAnim = anims[math.random(1, #anims)]
local soundFolder = (chosenAnim == HeavySwingAnim and "HitOne") or (chosenAnim == Swing1Anim and "HitTwo") or "HitThree"
chosenAnim:Play()
local s = playSound(soundFolder, "1")
if s then s.Volume = 5 end
chosenAnim.Stopped:Once(function() swinging = false end)
end
return Enum.ContextActionResult.Pass
end
local function removeViewmodel()
spawned = false
CAS:UnbindAction(ACTION_INSPECT)
CAS:UnbindAction(ACTION_ATTACK)
if vm then vm:Destroy() vm = nil end
animator, inspecting, swinging = nil, false, false
end
local function spawnViewmodel(knife)
if spawned or not scriptRunning then return end
local myModel = isAlive()
if not myModel then return end
spawned = true
local knifeTemplate = RS.Assets.Weapons:WaitForChild(selectedKnife)
local knifeOffset = knives[selectedKnife].Offset
vm = knifeTemplate:WaitForChild("Camera"):Clone()
vm.Name, vm.Parent = selectedKnife, camera
disableCollisions(vm)
hideOriginalKnife(knife)
if myModel.Parent.Name == "Terrorists" then
local tGloves = RS.Assets.Weapons:WaitForChild("T Glove")
attachAsset(tGloves, "Left Arm", "Left Arm", "Glove", CFrame.new(0, 0, -1.5))
attachAsset(tGloves, "Right Arm", "Right Arm", "Glove", CFrame.new(0, 0, -1.5))
else
local sleeves = RS.Assets.Sleeves:WaitForChild("IDF")
local ctGloves = RS.Assets.Weapons:WaitForChild("CT Glove")
attachAsset(sleeves, "Left Arm", "Left Arm", "Sleeve", CFrame.new(0, 0, 0.5))
attachAsset(ctGloves, "Left Arm", "Left Arm", "Glove", CFrame.new(0, 0, -1.5))
attachAsset(sleeves, "Right Arm", "Right Arm", "Sleeve", CFrame.new(0, 0, 0.5))
attachAsset(ctGloves, "Right Arm", "Right Arm", "Glove", CFrame.new(0, 0, -1.5))
end
local animController = vm:FindFirstChildOfClass("AnimationController") or vm:FindFirstChildOfClass("Animator")
animator = animController:FindFirstChildWhichIsA("Animator") or animController
local animFolder = RS.Assets.WeaponAnimations:WaitForChild(selectedKnife):WaitForChild("CameraAnimations")
equipAnim = animator:LoadAnimation(animFolder:WaitForChild("Equip"))
idleAnim = animator:LoadAnimation(animFolder:WaitForChild("Idle"))
inspectAnim = animator:LoadAnimation(animFolder:WaitForChild("Inspect"))
HeavySwingAnim = animator:LoadAnimation(animFolder:WaitForChild("Heavy Swing"))
Swing1Anim = animator:LoadAnimation(animFolder:WaitForChild("Swing1"))
Swing2Anim = animator:LoadAnimation(animFolder:WaitForChild("Swing2"))
vm:SetPrimaryPartCFrame(camera.CFrame * CFrame.new(0, -1.5, 5))
TweenService:Create(vm.PrimaryPart, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
CFrame = camera.CFrame * knifeOffset
}):Play()
equipAnim:Play()
playSound("Equip", "1")
CAS:BindAction(ACTION_INSPECT, handleAction, false, Enum.KeyCode.F)
CAS:BindAction(ACTION_ATTACK, handleAction, false, Enum.UserInputType.MouseButton1)
end
RunService.RenderStepped:Connect(function()
if not scriptRunning or not vm or not vm.PrimaryPart then return end
vm.PrimaryPart.CFrame = camera.CFrame * knives[selectedKnife].Offset
if not (equipAnim and equipAnim.IsPlaying) and not inspecting and not swinging then
if idleAnim and not idleAnim.IsPlaying then idleAnim:Play() end
end
end)
task.spawn(function()
while task.wait(0.1) do
local living = isAlive()
local currentKnife = getKnifeInCamera()
if scriptRunning and living and currentKnife and not spawned then
spawnViewmodel(currentKnife)
elseif (not scriptRunning or not currentKnife or not living) and spawned then
removeViewmodel()
end
end
end)
local SkinChangerEnabled = false
local SelectedSkins = {}
local DropdownObjects = {}
local SkinOptions = {}
local COOLDOWN = 0.1
local WEAR = "Factory New"
local CT_ONLY = {["USP-S"]=true, ["Five-SeveN"]=true, ["MP9"]=true, ["FAMAS"]=true, ["M4A1-S"]=true, ["M4A4"]=true, ["AUG"]=true}
local SHARED = {["P250"]=true, ["Desert Eagle"]=true, ["Dual Berettas"]=true, ["Negev"]=true, ["P90"]=true, ["Nova"]=true, ["XM1014"]=true, ["AWP"]=true, ["SSG 08"]=true}
local KNIVES = {["Karambit"]=true, ["Butterfly Knife"]=true, ["M9 Bayonet"]=true, ["Flip Knife"]=true, ["Gut Knife"]=true, ["T Knife"]=true, ["CT Knife"]=true}
local GLOVES = {["Sports Gloves"]=true}
local SkinsFolder = RS:WaitForChild("Assets"):WaitForChild("Skins")
local IgnoreFolders = {["HE Grenade"]=true, ["Incendiary Grenade"]=true, ["Molotov"]=true, ["Smoke Grenade"]=true, ["Flashbang"]=true, ["Decoy Grenade"]=true, ["C4"]=true, ["CT Glove"]=true, ["T Glove"]=true}
local function applyWeaponSkin(model)
if not model or not SkinChangerEnabled or not isAlive() then return end
local skinName = SelectedSkins[model.Name]
if not skinName then return end
pcall(function()
local skinFolder = SkinsFolder:FindFirstChild(model.Name)
if not skinFolder then return end
local skinType = skinFolder:FindFirstChild(skinName)
local sourceFolder = skinType and skinType:FindFirstChild("Camera") and skinType.Camera:FindFirstChild(WEAR)
if not sourceFolder then return end
for _, obj in camera:GetChildren() do
local left, right = obj:FindFirstChild("Left Arm"), obj:FindFirstChild("Right Arm")
if left or right then
local gloveFolder = SkinsFolder:FindFirstChild("Sports Gloves")
local gloveSkin = gloveFolder and gloveFolder:FindFirstChild(SelectedSkins["Sports Gloves"])
local gloveSource = gloveSkin and gloveSkin:FindFirstChild("Camera") and gloveSkin.Camera:FindFirstChild(WEAR)
if gloveSource then
for _, side in {"Left Arm", "Right Arm"} do
local arm, src = obj:FindFirstChild(side), gloveSource:FindFirstChild(side)
if arm and src then
local gloveMesh = arm:FindFirstChild("Glove")
if gloveMesh then
local existing = gloveMesh:FindFirstChildOfClass("SurfaceAppearance")
if existing then existing:Destroy() end
local clone = src:Clone()
clone.Name, clone.Parent = "SurfaceAppearance", gloveMesh
end
end
end
end
end
end
if not GLOVES[model.Name] then
local weaponFolder = model:FindFirstChild("Weapon")
if weaponFolder then
for _, part in weaponFolder:GetDescendants() do
if part:IsA("BasePart") then
local newSkin = sourceFolder:FindFirstChild(part.Name)
if newSkin then
local existing = part:FindFirstChildOfClass("SurfaceAppearance")
if existing then existing:Destroy() end
local clone = newSkin:Clone()
clone.Name, clone.Parent = "SurfaceAppearance", part
end
end
end
end
end
model:SetAttribute("SkinApplied", skinName)
end)
end
Tab_Skins:CreateToggle({
Name = "Enable Skin Changer",
CurrentValue = false,
Flag = "SkinChangerToggle",
Callback = function(Value)
SkinChangerEnabled = Value
if not Value then for _, obj in camera:GetChildren() do obj:SetAttribute("SkinApplied", nil) end end
end
})
Tab_Skins:CreateButton({
Name = "🎲 Randomize All Skins",
Callback = function()
for weaponName, optionsList in pairs(SkinOptions) do
if #optionsList > 0 then
local randomSkin = optionsList[math.random(1, #optionsList)]
if DropdownObjects[weaponName] then
for _, dropdown in ipairs(DropdownObjects[weaponName]) do dropdown:Set({randomSkin}) end
end
end
end
end,
})
local function CreateSkinDropdown(weaponName)
local folder = SkinsFolder:FindFirstChild(weaponName)
if not folder then return end
local options = {}
for _, skin in folder:GetChildren() do table.insert(options, skin.Name) end
SkinOptions[weaponName] = options
if not SelectedSkins[weaponName] then SelectedSkins[weaponName] = options[1] end
local dp = Tab_Skins:CreateDropdown({
Name = weaponName,
Options = options,
CurrentOption = {SelectedSkins[weaponName]},
Flag = "Skin_" .. weaponName,
Callback = function(opt)
local newSkin = opt[1]
SelectedSkins[weaponName] = newSkin
if DropdownObjects[weaponName] then
for _, other in DropdownObjects[weaponName] do
if other.CurrentOption[1] ~= newSkin then other:Set({newSkin}) end
end
end
for _, obj in camera:GetChildren() do obj:SetAttribute("SkinApplied", nil); applyWeaponSkin(obj) end
end
})
DropdownObjects[weaponName] = DropdownObjects[weaponName] or {}
table.insert(DropdownObjects[weaponName], dp)
end
Tab_Skins:CreateToggle({
Name = "Enable Custom Knife",
CurrentValue = false,
Flag = "KnifeToggle",
Callback = function(Value)
scriptRunning = Value; if not Value then removeViewmodel() end
end
})
Tab_Skins:CreateDropdown({
Name = "Selected Custom Knife",
Options = {"Butterfly Knife", "Karambit", "M9 Bayonet", "Flip Knife", "Gut Knife"},
CurrentOption = {"Butterfly Knife"},
MultipleOptions = false,
Flag = "KnifeDropdown",
Callback = function(Options)
selectedKnife = Options[1]; if spawned then removeViewmodel() end
end
})
Tab_Skins:CreateSection("Knives Skins")
for name in pairs(KNIVES) do CreateSkinDropdown(name) end
Tab_Skins:CreateSection("Gloves")
for name in pairs(GLOVES) do CreateSkinDropdown(name) end
Tab_Skins:CreateSection("CT Weapons")
for name in pairs(CT_ONLY) do CreateSkinDropdown(name) end
Tab_Skins:CreateSection("T Weapons")
for name in pairs(SHARED) do CreateSkinDropdown(name) end
for _, folder in SkinsFolder:GetChildren() do
local n = folder.Name
if not IgnoreFolders[n] and not KNIVES[n] and not GLOVES[n] and not CT_ONLY[n] and not SHARED[n] then CreateSkinDropdown(n) end
end
camera.ChildAdded:Connect(function(obj)
if not SkinChangerEnabled or not isAlive() then return end
task.wait(COOLDOWN); applyWeaponSkin(obj)
end)
task.spawn(function()
while task.wait(0.5) do
if SkinChangerEnabled and isAlive() then
for _, obj in camera:GetChildren() do
if SelectedSkins[obj.Name] and obj:GetAttribute("SkinApplied") ~= SelectedSkins[obj.Name] then applyWeaponSkin(obj) end
end
end
end
end)
--// ==========================================
--// VISUALS TAB LOGIC (ESP & WORLD)
--// ==========================================
local EspEnabled, EspBox, EspName, EspHealth, EspDistance = false, true, true, true, true
local espCache = {}
local function createESP()
local esp = {
boxOutline = Drawing.new("Square"), box = Drawing.new("Square"),
name = Drawing.new("Text"), distance = Drawing.new("Text"),
healthOutline = Drawing.new("Line"), healthBar = Drawing.new("Line")
}
esp.boxOutline.Thickness = 3; esp.boxOutline.Filled = false; esp.boxOutline.Color = Color3.new(0, 0, 0)
esp.box.Thickness = 1; esp.box.Filled = false; esp.box.Color = Color3.fromRGB(255, 50, 50)
esp.name.Center = true; esp.name.Outline = true; esp.name.Color = Color3.new(1, 1, 1); esp.name.Size = 16
esp.distance.Center = true; esp.distance.Outline = true; esp.distance.Color = Color3.new(0.8, 0.8, 0.8); esp.distance.Size = 13
esp.healthOutline.Thickness = 3; esp.healthOutline.Color = Color3.new(0, 0, 0)
esp.healthBar.Thickness = 1; esp.healthBar.Color = Color3.new(0, 1, 0)
return esp
end
RunService.RenderStepped:Connect(function()
if not EspEnabled or not isAlive() then
for _, e in pairs(espCache) do for _, d in pairs(e) do d.Visible = false end end
return
end
local enemyFolder = getEnemyFolder()
if not enemyFolder then return end
local currentAlive = {}
for _, enemy in ipairs(enemyFolder:GetChildren()) do
local hum, root, head = enemy:FindFirstChildOfClass("Humanoid"), enemy:FindFirstChild("HumanoidRootPart"), enemy:FindFirstChild("Head")
if hum and hum.Health > 0 and root and head then
currentAlive[enemy] = true
if not espCache[enemy] then espCache[enemy] = createESP() end
local esp = espCache[enemy]
local rootPos, onScreen = camera:WorldToViewportPoint(root.Position)
local headPos = camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.5, 0))
local legPos = camera:WorldToViewportPoint(root.Position - Vector3.new(0, 3, 0))
if onScreen then
local boxH, boxW = math.abs(headPos.Y - legPos.Y), math.abs(headPos.Y - legPos.Y) / 2
local dist = math.floor((camera.CFrame.Position - root.Position).Magnitude)
if EspBox then
esp.boxOutline.Size = Vector2.new(boxW, boxH); esp.boxOutline.Position = Vector2.new(rootPos.X - boxW / 2, headPos.Y); esp.boxOutline.Visible = true
esp.box.Size = Vector2.new(boxW, boxH); esp.box.Position = Vector2.new(rootPos.X - boxW / 2, headPos.Y); esp.box.Visible = true
else esp.boxOutline.Visible, esp.box.Visible = false, false end
if EspHealth then
local hpPct, barX = hum.Health / hum.MaxHealth, rootPos.X - boxW / 2 - 6
esp.healthOutline.From = Vector2.new(barX, headPos.Y - 1); esp.healthOutline.To = Vector2.new(barX, headPos.Y + boxH + 1); esp.healthOutline.Visible = true
esp.healthBar.From = Vector2.new(barX, headPos.Y + boxH); esp.healthBar.To = Vector2.new(barX, headPos.Y + boxH - (boxH * hpPct)); esp.healthBar.Color = Color3.new(1 - hpPct, hpPct, 0); esp.healthBar.Visible = true
else esp.healthOutline.Visible, esp.healthBar.Visible = false, false end
if EspName then esp.name.Text = enemy.Name; esp.name.Position = Vector2.new(rootPos.X, headPos.Y - 20); esp.name.Visible = true
else esp.name.Visible = false end
if EspDistance then esp.distance.Text = "[" .. dist .. "m]"; esp.distance.Position = Vector2.new(rootPos.X, headPos.Y + boxH + 2); esp.distance.Visible = true
else esp.distance.Visible = false end
else for _, d in pairs(esp) do d.Visible = false end end
end
end
for cEnemy, e in pairs(espCache) do
if not currentAlive[cEnemy] then for _, d in pairs(e) do d:Remove() end; espCache[cEnemy] = nil end
end
end)
Tab_Visuals:CreateSection("ESP Master Switch")
Tab_Visuals:CreateToggle({Name = "Enable Player ESP", CurrentValue = false, Flag = "ESPToggle", Callback = function(Value) EspEnabled = Value end})
Tab_Visuals:CreateSection("ESP Settings")
Tab_Visuals:CreateToggle({Name = "Show Box", CurrentValue = true, Flag = "EspBoxToggle", Callback = function(Value) EspBox = Value end})
Tab_Visuals:CreateToggle({Name = "Show Health", CurrentValue = true, Flag = "EspHealthToggle", Callback = function(Value) EspHealth = Value end})
Tab_Visuals:CreateToggle({Name = "Show Name", CurrentValue = true, Flag = "EspNameToggle", Callback = function(Value) EspName = Value end})
Tab_Visuals:CreateToggle({Name = "Show Distance", CurrentValue = true, Flag = "EspDistanceToggle", Callback = function(Value) EspDistance = Value end})
local AntiFlashEnabled, AntiSmokeEnabled = false, false
Tab_Visuals:CreateSection("World & Effects")
Tab_Visuals:CreateToggle({Name = "Anti-Flashbang", CurrentValue = false, Flag = "AntiFlashToggle", Callback = function(Value) AntiFlashEnabled = Value end})
Tab_Visuals:CreateToggle({Name = "Anti-Smoke", CurrentValue = false, Flag = "AntiSmokeToggle", Callback = function(Value) AntiSmokeEnabled = Value end})
task.spawn(function()
while task.wait(0.2) do
if AntiFlashEnabled then
local gui, effect = player.PlayerGui:FindFirstChild("FlashbangEffect"), game:GetService("Lighting"):FindFirstChild("FlashbangColorCorrection")
if gui then gui:Destroy() end; if effect then effect:Destroy() end
end
end
end)
task.spawn(function()
while task.wait(0.5) do
if AntiSmokeEnabled then
local debris = Workspace:FindFirstChild("Debris")
if debris then
for _, folder in ipairs(debris:GetChildren()) do
if string.match(folder.Name, "Voxel") then folder:ClearAllChildren(); folder:Destroy() end
end
end
end
end
end)
Rayfield:LoadConfiguration()BloxStrike Script Best GUI - Silent Aim, ESP, Auto Shakanie, Speed, Fly

loadstring(game:HttpGet("https://gist.githubusercontent.com/mariusz123334434/97c1b508795305f25e38fbe59c79f3d3/raw/41b03a4d7c353893a4578ab94180a64b0407351c/galaxy"))()BloxStrike Script GUI | LegitBot, RageBot, Aimbot, ESP, TriggerBot

loadstring(game:HttpGet("https://raw.githubusercontent.com/ImNotFatBitch/LoaderScripts/refs/heads/main/LoaderScripts"))()BloxStrike Roblox Script NEW Chair Hub - Team Check, Visible Check, ESP, Aimbot and More

loadstring(game:HttpGet("https://raw.githubusercontent.com/ReWelp/ChairHub./refs/heads/main/universalaimbot.lua", true))()BloxStrike Script 2026 Expectional Hub - Aimbot, ESP, Visuals, Skinchanger

loadstring(game:HttpGet("https://expectional.dev/loadstring/Blox-Strike.lua"))()Script BloxStrike - LegitBot, RageBot, Aimbot, ESP and More
-- don't work on xeno/solara
getgenv().skipload = true
getgenv().AUTOLOAD = nil -- only if the key is valid / Example : nil -> "Flick"
loadstring(game:HttpGet("https://pandadevelopment.net/virtual/file/f46a7eb5a71f1048"))()
-- Discord: discord.gg/kqKdsN9hDP
--[[
Game list for the autoload
- getgenv().AUTOLOAD = "Counter Blox"
- getgenv().AUTOLOAD = "BloxStrike"
- getgenv().AUTOLOAD = "Prison Life"
- getgenv().AUTOLOAD = "Case Opening Simulator"
- getgenv().AUTOLOAD = "Frontlines"
- getgenv().AUTOLOAD = "Sniper Duels"
- getgenv().AUTOLOAD = "Flick"
]][❄️] BloxStrike Script - Aimlock, ESP and More
oadstring(game:HttpGet("https://raw.githubusercontent.com/Nickk-GG/BloxStrike-NickHub/refs/heads/main/101.lua"))()
BloxStrike Script SkinChanger
loadstring(game:HttpGet("https://expectional.dev/loadstring/Blox-Strike-Skinchanger.lua"))()