Get the BloxStrike Skin Changer Script for Roblox! Instantly swap weapon skins, unlock exclusive looks, and execute with ease — no key needed. Free!
Script
”[OASIS!
🎯Aimbot🔮Show FOV Circle📏FOV Radius🔮Aimbot Smoothing🔫Trigger Bot🔮Shot Delay📦Hitbox🐇Bunny Hop🎨Skin Changer🔪Custom Knife🗡️Karambit Knife Skins
💻 LUA CODE:
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 = "Yukio",
Icon = 0,
LoadingTitle = "loading Yukio (Blox Strike)",
LoadingSubtitle = "by Yukio",
ShowText = "Menu",
Theme = {
TextColor = Color3.fromRGB(255,255,255),Background = Color3.fromRGB(8,8,8),
Topbar = Color3.fromRGB(20,0,0),
Shadow = Color3.fromRGB(0,0,0),NotificationBackground = Color3.fromRGB(15,15,15),
NotificationActionsBackground = Color3.fromRGB(35,0,0),TabBackground = Color3.fromRGB(15,15,15),
TabStroke = Color3.fromRGB(255,0,0),
TabBackgroundSelected = Color3.fromRGB(80,0,0),
TabTextColor = Color3.fromRGB(255,255,255),
SelectedTabTextColor = Color3.fromRGB(255,255,255),ElementBackground = Color3.fromRGB(12,12,12),
ElementBackgroundHover = Color3.fromRGB(30,0,0),SecondaryElementBackground = Color3.fromRGB(18,18,18),
ElementStroke = Color3.fromRGB(255,0,0),
SecondaryElementStroke = Color3.fromRGB(120,0,0),SliderBackground = Color3.fromRGB(50,0,0),
SliderProgress = Color3.fromRGB(255,0,0),
SliderStroke = Color3.fromRGB(255,0,0),ToggleBackground = Color3.fromRGB(20,20,20),
ToggleEnabled = Color3.fromRGB(255,0,0),
ToggleDisabled = Color3.fromRGB(60,60,60),ToggleEnabledStroke = Color3.fromRGB(255,40,40),
ToggleDisabledStroke = Color3.fromRGB(100,100,100),ToggleEnabledOuterStroke = Color3.fromRGB(120,0,0),
ToggleDisabledOuterStroke = Color3.fromRGB(60,60,60),DropdownSelected = Color3.fromRGB(80,0,0),
DropdownUnselected = Color3.fromRGB(20,20,20),InputBackground = Color3.fromRGB(20,20,20),
InputStroke = Color3.fromRGB(255,0,0),PlaceholderColor = Color3.fromRGB(170,170,170)
},
ToggleUIKeybind = Enum.KeyCode.RightShift,
DisableRayfieldPrompts = false,
DisableBuildWarnings = false,
ConfigurationSaving = {
Enabled = true,
FolderName = "Yukio",
FileName = "Sqilss_config"
}
})--// 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("skin changerby twistedk1d (not made by me)", "code", Color3.fromRGB(80,80,80), false)--// SHARED LOGIC
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 (unchanged)
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 = 1local 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
endUserInputService.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, Hitbox, Bhop (unchanged)
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)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
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
if originalHeadSizes[head] and head.Size ~= originalHeadSizes[head] then
head.Size = originalHeadSizes[head]
head.Transparency = 0
end
end
end
end
end
end
end)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 (unchanged)
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, Swing2Animlocal 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
endlocal 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
endlocal 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
endlocal 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
endlocal 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)
endRunService.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)
endTab_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)
endTab_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
endcamera.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)--// ESP + CHAMS (unchanged)
local EspEnabled = false
local EspBox = true
local EspName = true
local EspHealth = true
local EspDistance = true
local EspSkeleton = false
local EspHeadDot = false
local EspTracers = false
local EspMaxDistance = 0local RainbowESP = false
local RainbowESP_Speed = 2.0
local RainbowChams = false
local RainbowChams_Speed = 2.0local BoxColor = Color3.fromRGB(255, 50, 50)
local TextColor = Color3.fromRGB(255, 255, 255)
local SkeletonColor = Color3.fromRGB(255, 255, 255)
local TracerColor = Color3.fromRGB(255, 50, 50)
local HeadDotColor = Color3.fromRGB(255, 255, 255)
local EspTextSize = 15
local BoxThickness = 1.5local ChamsEnabled = false
local ChamsColor = Color3.fromRGB(255, 0, 255)
local ChamsFillTransparency = 0.7
local ChamsOutlineTransparency = 0local WeaponChamsEnabled = false
local WeaponChamsColor = Color3.fromRGB(0, 255, 255)
local WeaponChamsFillTransparency = 0.5
local WeaponChamsOutlineTransparency = 0.0local espCache = {}
local chamsCache = {}
local weaponChamsCache = {}local function getRainbowColor(speed)
local time = tick() * speed
return Color3.fromHSV(time % 1, 1, 1)
endlocal function createESP()
local esp = {
boxOutline = Drawing.new("Square"),
box = Drawing.new("Square"),
name = Drawing.new("Text"),
distance = Drawing.new("Text"),
healthOutline = Drawing.new("Line"),
healthBackground = Drawing.new("Line"),
healthBar = Drawing.new("Line"),
headDot = Drawing.new("Circle"),
tracer = Drawing.new("Line"),
skeleton = {
headToNeck = Drawing.new("Line"),
neckToTorso = Drawing.new("Line"),
torsoToLeftUpper = Drawing.new("Line"),
torsoToRightUpper = Drawing.new("Line"),
leftUpperToLower = Drawing.new("Line"),
rightUpperToLower = Drawing.new("Line"),
leftLowerToFoot = Drawing.new("Line"),
rightLowerToFoot = Drawing.new("Line")
}
}esp.boxOutline.Thickness = 3
esp.boxOutline.Filled = false
esp.boxOutline.Color = Color3.new(0, 0, 0)esp.box.Thickness = BoxThickness
esp.box.Filled = falseesp.name.Center = true
esp.name.Outline = true
esp.name.Size = EspTextSizeesp.distance.Center = true
esp.distance.Outline = true
esp.distance.Size = EspTextSize - 2esp.healthOutline.Thickness = 3
esp.healthOutline.Color = Color3.new(0, 0, 0)esp.healthBackground.Thickness = 4
esp.healthBackground.Color = Color3.new(0, 0, 0)
esp.healthBackground.Transparency = 0.7esp.healthBar.Thickness = 2esp.headDot.Radius = 3
esp.headDot.Filled = true
esp.headDot.Transparency = 1esp.tracer.Thickness = 1.5
esp.tracer.Transparency = 0.8for _, line in pairs(esp.skeleton) do
line.Thickness = 1.5
line.Transparency = 0.9
endreturn esp
endRunService.RenderStepped:Connect(function()
if not EspEnabled or not isAlive() then
for _, e in pairs(espCache) do
for _, drawing in pairs(e) do
if typeof(drawing) == "table" then
for _, line in pairs(drawing) do line.Visible = false end
else
drawing.Visible = false
end
end
end
return
endlocal enemyFolder = getEnemyFolder()
if not enemyFolder then return endlocal currentAlive = {}
local screenCenter = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y)
local rainbowColor = RainbowESP and getRainbowColor(RainbowESP_Speed) or nilfor _, enemy in ipairs(enemyFolder:GetChildren()) do
local hum = enemy:FindFirstChildOfClass("Humanoid")
local root = enemy:FindFirstChild("HumanoidRootPart")
local head = 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() endlocal esp = espCache[enemy]
local rootPos, onScreen = camera:WorldToViewportPoint(root.Position)
local headPos = camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.4, 0))
local legPos = camera:WorldToViewportPoint(root.Position - Vector3.new(0, 3.2, 0))local distance = (camera.CFrame.Position - root.Position).Magnitudeif EspMaxDistance > 0 and distance > EspMaxDistance then
for _, d in pairs(esp) do
if typeof(d) == "table" then
for _, l in pairs(d) do l.Visible = false end
else
d.Visible = false
end
end
continue
endif onScreen then
local boxHeight = math.abs(headPos.Y - legPos.Y) * 1.05
local boxWidth = boxHeight * 0.55
local boxX = rootPos.X - boxWidth / 2
local boxY = headPos.Ylocal currentBoxColor = RainbowESP and rainbowColor or BoxColor
local currentTextColor = RainbowESP and rainbowColor or TextColor
local currentSkeletonColor = RainbowESP and rainbowColor or SkeletonColor
local currentTracerColor = RainbowESP and rainbowColor or TracerColor
local currentHeadDotColor = RainbowESP and rainbowColor or HeadDotColorif EspBox then
esp.boxOutline.Size = Vector2.new(boxWidth, boxHeight)
esp.boxOutline.Position = Vector2.new(boxX, boxY)
esp.boxOutline.Visible = trueesp.box.Size = Vector2.new(boxWidth, boxHeight)
esp.box.Position = Vector2.new(boxX, boxY)
esp.box.Color = currentBoxColor
esp.box.Thickness = BoxThickness
esp.box.Visible = true
else
esp.boxOutline.Visible = false
esp.box.Visible = false
endif EspHealth then
local hpPct = hum.Health / hum.MaxHealth
local barX = boxX - 7
local barTop = boxY
local barBottom = boxY + boxHeightesp.healthBackground.From = Vector2.new(barX, barTop)
esp.healthBackground.To = Vector2.new(barX, barBottom)
esp.healthBackground.Visible = trueesp.healthOutline.From = Vector2.new(barX - 1, barTop - 1)
esp.healthOutline.To = Vector2.new(barX + 1, barBottom + 1)
esp.healthOutline.Visible = trueesp.healthBar.From = Vector2.new(barX, barBottom)
esp.healthBar.To = Vector2.new(barX, barBottom - (boxHeight * hpPct))
esp.healthBar.Color = Color3.fromHSV(hpPct * 0.33, 1, 1)
esp.healthBar.Visible = true
else
esp.healthBackground.Visible = false
esp.healthOutline.Visible = false
esp.healthBar.Visible = false
endif EspName then
esp.name.Text = enemy.Name
esp.name.Position = Vector2.new(rootPos.X, headPos.Y - 22)
esp.name.Color = currentTextColor
esp.name.Size = EspTextSize
esp.name.Visible = true
else
esp.name.Visible = false
endif EspDistance then
esp.distance.Text = string.format("[%d studs]", math.floor(distance))
esp.distance.Position = Vector2.new(rootPos.X, boxY + boxHeight + 4)
esp.distance.Color = currentTextColor
esp.distance.Size = EspTextSize - 2
esp.distance.Visible = true
else
esp.distance.Visible = false
endif EspHeadDot then
esp.headDot.Position = Vector2.new(headPos.X, headPos.Y)
esp.headDot.Color = currentHeadDotColor
esp.headDot.Visible = true
else
esp.headDot.Visible = false
endif EspTracers then
esp.tracer.From = screenCenter
esp.tracer.To = Vector2.new(rootPos.X, rootPos.Y + boxHeight / 2)
esp.tracer.Color = currentTracerColor
esp.tracer.Visible = true
else
esp.tracer.Visible = false
endif EspSkeleton then
local neck = enemy:FindFirstChild("Neck") or head
local torso = enemy:FindFirstChild("UpperTorso") or enemy:FindFirstChild("Torso")
local leftUpper = enemy:FindFirstChild("LeftUpperArm")
local rightUpper = enemy:FindFirstChild("RightUpperArm")
local leftLower = enemy:FindFirstChild("LeftLowerArm")
local rightLower = enemy:FindFirstChild("RightLowerArm")
local leftFoot = enemy:FindFirstChild("LeftFoot") or enemy:FindFirstChild("Left Leg")
local rightFoot = enemy:FindFirstChild("RightFoot") or enemy:FindFirstChild("Right Leg")local function w2s(pos)
local p = camera:WorldToViewportPoint(pos)
return Vector2.new(p.X, p.Y)
endlocal lines = esp.skeleton
for _, line in pairs(lines) do
line.Color = currentSkeletonColor
line.Visible = true
endlines.headToNeck.From = Vector2.new(headPos.X, headPos.Y)
lines.headToNeck.To = w2s(neck.Position)lines.neckToTorso.From = w2s(neck.Position)
lines.neckToTorso.To = w2s(torso and torso.Position or root.Position)lines.torsoToLeftUpper.From = w2s(torso and torso.Position or root.Position)
lines.torsoToLeftUpper.To = w2s(leftUpper and leftUpper.Position or root.Position)lines.torsoToRightUpper.From = w2s(torso and torso.Position or root.Position)
lines.torsoToRightUpper.To = w2s(rightUpper and rightUpper.Position or root.Position)lines.leftUpperToLower.From = w2s(leftUpper and leftUpper.Position or root.Position)
lines.leftUpperToLower.To = w2s(leftLower and leftLower.Position or root.Position)lines.rightUpperToLower.From = w2s(rightUpper and rightUpper.Position or root.Position)
lines.rightUpperToLower.To = w2s(rightLower and rightLower.Position or root.Position)lines.leftLowerToFoot.From = w2s(leftLower and leftLower.Position or root.Position)
lines.leftLowerToFoot.To = w2s(leftFoot and leftFoot.Position or root.Position)lines.rightLowerToFoot.From = w2s(rightLower and rightLower.Position or root.Position)
lines.rightLowerToFoot.To = w2s(rightFoot and rightFoot.Position or root.Position)
else
for _, line in pairs(esp.skeleton) do line.Visible = false end
end
else
for _, d in pairs(esp) do
if typeof(d) == "table" then
for _, l in pairs(d) do l.Visible = false end
else
d.Visible = false
end
end
end
end
endfor cEnemy, e in pairs(espCache) do
if not currentAlive[cEnemy] then
for _, d in pairs(e) do
if typeof(d) == "table" then
for _, l in pairs(d) do l:Remove() end
else
d:Remove()
end
end
espCache[cEnemy] = nil
end
end
end)local function updatePlayerChams()
local enemyFolder = getEnemyFolder()
if not enemyFolder then return end
local rainbowColor = RainbowChams and getRainbowColor(RainbowChams_Speed) or ChamsColorfor _, enemy in ipairs(enemyFolder:GetChildren()) do
local hum = enemy:FindFirstChildOfClass("Humanoid")
if hum and hum.Health > 0 then
if not chamsCache[enemy] then
local highlight = Instance.new("Highlight")
highlight.Adornee = enemy
highlight.Parent = enemy
highlight.FillTransparency = ChamsFillTransparency
highlight.OutlineTransparency = ChamsOutlineTransparency
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
chamsCache[enemy] = highlight
end
local hl = chamsCache[enemy]
hl.FillColor = rainbowColor
hl.OutlineColor = rainbowColor
hl.FillTransparency = ChamsFillTransparency
hl.OutlineTransparency = ChamsOutlineTransparency
end
endfor model, hl in pairs(chamsCache) do
if not model.Parent or (model:FindFirstChildOfClass("Humanoid") and model:FindFirstChildOfClass("Humanoid").Health 0) and BulletTracerTransparency or 1
RunService.Heartbeat:Wait()
end
if tracer.Parent then tracer:Destroy() end
end)
else
task.delay(BulletTracerDuration, function()
if tracer and tracer.Parent then tracer:Destroy() end
end)
endtable.insert(tracerParts, tracer)
endUserInputService.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 and BulletTracersEnabled and isAlive() then
local origin = camera.CFrame.Position
local direction = camera.CFrame.LookVector * 300
createAdvancedTracer(origin, direction)
end
end)RunService.Heartbeat:Connect(function()
for i = #tracerParts, 1, -1 do
if not tracerParts[i].Parent then
table.remove(tracerParts, i)
end
end
end)--// PARTICLE EFFECTS (unchanged)
local ParticleEffectsEnabled = false
local ParticleColor = Color3.fromRGB(255, 100, 0)
local ParticleAmount = 25
local ParticleLifetime = 1.2
local ParticleStyle = "Spark"local function createParticleEffect(position)
if not ParticleEffectsEnabled then return endlocal attachment = Instance.new("Attachment")
attachment.Position = position
attachment.Parent = Workspace.Terrainlocal particle = Instance.new("ParticleEmitter")
particle.Color = ColorSequence.new(ParticleColor)
particle.Texture = "rbxassetid://243660364"
particle.Lifetime = NumberRange.new(ParticleLifetime * 0.6, ParticleLifetime)
particle.Rate = 0
particle.EmissionDirection = Enum.NormalId.Front
particle.SpreadAngle = Vector2.new(35, 35)
particle.Speed = NumberRange.new(8, 18)
particle.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.6), NumberSequenceKeypoint.new(1, 0.1)})
particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1)})
particle.Parent = attachmentif ParticleStyle == "Smoke" then
particle.Texture = "rbxassetid://243098098"
particle.Speed = NumberRange.new(2, 6)
elseif ParticleStyle == "Fire" then
particle.Texture = "rbxassetid://241650934"
particle.Speed = NumberRange.new(5, 12)
elseif ParticleStyle == "Explosion" then
particle.Lifetime = NumberRange.new(0.4, 0.8)
particle.Speed = NumberRange.new(15, 30)
particle.SpreadAngle = Vector2.new(80, 80)
particle.Amount = ParticleAmount * 2
elseif ParticleStyle == "Magic" then
particle.Texture = "rbxassetid://243098098"
particle.RotSpeed = NumberRange.new(-200, 200)
endparticle:Emit(ParticleAmount)task.delay(ParticleLifetime + 0.5, function()
if attachment then attachment:Destroy() end
end)
endUserInputService.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 and ParticleEffectsEnabled and isAlive() then
local ray = camera:ViewportPointToRay(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.FilterDescendantsInstances = {camera, player.Character or {}}
local result = Workspace:Raycast(ray.Origin, ray.Direction * 500, raycastParams)if result and result.Position then
createParticleEffect(result.Position)
else
local muzzlePos = camera.CFrame.Position + camera.CFrame.LookVector * 3
createParticleEffect(muzzlePos)
end
end
end)--// KILL EFFECTS (NEW)
local KillEffectsEnabled = false
local KillEffectColor = Color3.fromRGB(255, 0, 100)
local KillEffectDuration = 0.8
local KillEffectIntensity = 0.6local killFlashGui = nil
local killText = nillocal function createKillEffects()
if not KillEffectsEnabled then return end-- Screen Flash
if not killFlashGui then
killFlashGui = Instance.new("ScreenGui")
killFlashGui.ResetOnSpawn = false
killFlashGui.Parent = player:WaitForChild("PlayerGui")local flashFrame = Instance.new("Frame")
flashFrame.Size = UDim2.new(1, 0, 1, 0)
flashFrame.BackgroundColor3 = KillEffectColor
flashFrame.BackgroundTransparency = 1
flashFrame.BorderSizePixel = 0
flashFrame.Parent = killFlashGui
killFlashGui.Frame = flashFrame
endlocal flash = killFlashGui.Frame
flash.BackgroundTransparency = 0.2
TweenService:Create(flash, TweenInfo.new(KillEffectDuration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play()-- Floating Kill Text
local text = Instance.new("TextLabel")
text.Size = UDim2.new(0, 300, 0, 100)
text.Position = UDim2.new(0.5, -150, 0.4, 0)
text.BackgroundTransparency = 1
text.Text = "KILL"
text.TextColor3 = KillEffectColor
text.TextScaled = true
text.Font = Enum.Font.GothamBold
text.TextStrokeTransparency = 0
text.TextStrokeColor3 = Color3.new(0, 0, 0)
text.Parent = player.PlayerGuiTweenService:Create(text, TweenInfo.new(KillEffectDuration * 0.7, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0.5, -150, 0.25, 0), TextTransparency = 1}):Play()task.delay(KillEffectDuration, function()
if text and text.Parent then text:Destroy() end
end)
end-- Detect kills (monitor enemy health dropping to 0)
task.spawn(function()
local lastHealth = {}
while task.wait(0.1) do
if not KillEffectsEnabled then continue end
local enemyFolder = getEnemyFolder()
if not enemyFolder then continue endfor _, enemy in ipairs(enemyFolder:GetChildren()) do
local hum = enemy:FindFirstChildOfClass("Humanoid")
if hum then
local currentHealth = hum.Health
if lastHealth[enemy] and lastHealth[enemy] > 0 and currentHealth
