I have encountered a weird issue when using ACS (Advanced Combat System) version 1.7.5. Every time I shoot at a torso, left leg, right leg, left arm, or right arm, it doesn’t damage the player. But if I hit the head it’s an instant kill. Does anyone know how to fix this issue and make it so that you can be damaged from all parts?
Give me your damage script please
I would Assume its this
local Debris = game:GetService(“Debris”)
local Engine = game.ReplicatedStorage:WaitForChild(“ACS_Engine”)
local Holes = Engine.Holes
local TS = game:GetService(“TweenService”)
local RS = game:GetService(“RunService”)
local Explosion = {“187137543”; “169628396”; “926264402”; “169628396”; “926264402”; “169628396”; “187137543”;}
local Hitmarker = {}
local RicoSounds = {“253951210”,“253951228”,“253951272”,“253951309”,“253951341”,}
local ACS_Storage= workspace:WaitForChild(“ACS_WorkSpace”)
local BulletModel = ACS_Storage.Server
local ServerConfig = require(Engine:WaitForChild(“ServerConfigs”):WaitForChild(“Config”))
local holescopy = {
WoodPlanks = “Wood”,
LeafyGrass = “Grass”,
Mud = “Ground”,
DiamondPlate = “Metal”,
}
for v1, v2 in pairs(holescopy) do
if not Holes:FindFirstChild(v1) then
local folder = Holes:FindFirstChild(v2)
if folder then
local newFolder = folder:Clone()
newFolder.Name = v1
newFolder.Parent = Holes
end
end
end
local RGB = Color3.fromRGB
local NSn = NumberSequence.new
local NRn = NumberRange.new
local V3n = Vector3.new
local BodyParts = {
“Head”,
“Torso”,
“Left Arm”,
“Right Arm”,
“Left Leg”,
“Right Leg”,
“HumanoidRootPart”,
}
function rlist(Table)
return Table[math.random(1,#Table)]
end
function randf(low,top)
local diff = math.random()*(top - low)
return low + diff
end
function colorseq(r,g,b)
return ColorSequence.new(Color3.new(r,g,b))
end
function CreatePO(att,color,brightness,rangemin,rangemax,Time)
local Po = Instance.new(“PointLight”, att)
Po.Color = color
Po.Brightness = brightness
Po.Shadows = true
Po.Range = math.random(rangemin, rangemax)
Debris:AddItem(Po, Time)
end
function Hitmarker.HitEffect(Ray_Ignore,ACS_Storage,Pos,Hitpart,Norm,Mat,Settings)
local Attachment = Instance.new(“Attachment”)
Attachment.CFrame = CFrame.new(Pos, Pos + Norm)
Attachment.Parent = workspace.Terrain
-- materials folder selection process
local MatFolder
if Holes:FindFirstChild("Name:"..Hitpart.Name) then
MatFolder = Holes["Name:"..Hitpart.Name]
elseif table.find(BodyParts,Hitpart.Name) then
MatFolder = Holes.Human
elseif Holes:FindFirstChild(Hitpart.Material) then
MatFolder = Holes:FindFirstChild(Hitpart.Material)
end
if not MatFolder then
MatFolder = Holes.Default
end
-- hole decal and part
if MatFolder:FindFirstChild("Holes") then
local part = Instance.new("Part")
part.FormFactor = "Custom"
part.TopSurface = 0
part.BottomSurface = 0
part.Transparency = 1
part.CanCollide = false
part.Material = Enum.Material.Air
-- bullet hole size per caliber
local multiplier = Settings.BulletHoleSize
if not multiplier then
multiplier = ServerConfig.BulletHoleSizes[Settings.BulletType]
if not multiplier then
multiplier = ServerConfig.BulletHoleSizes["default"]
end
end
local hs = MatFolder.HoleSize
local size = randf(hs.MinValue,hs.MaxValue) * multiplier
part.Size = Vector3.new(size,0,size)
part.CFrame = CFrame.new(Pos,Pos-Norm) * CFrame.Angles(math.pi/2,randf(0,2)*math.pi,0)
local Dec = rlist(MatFolder.Holes:GetChildren()):Clone()
Dec.Face = "Top"
if not MatFolder:FindFirstChild("DontRecolor") then
Dec.Color3 = Hitpart.Color
end
Dec.Parent = part
local b = Instance.new("WeldConstraint")
b.Parent = part
b.Part0 = part
b.Part1 = Hitpart
part.Parent = BulletModel
end
-- particles
if MatFolder:FindFirstChild("Particles") then
local Particles = MatFolder.Particles.Used:GetChildren()
for _, Particle in pairs(Particles) do
local NewParticle = Particle:Clone()
NewParticle.Enabled = true
NewParticle.Parent = Attachment
local dur = .05
if NewParticle:FindFirstChild("Duration") then
dur = NewParticle.Duration.Value
end
if NewParticle:FindFirstChild("HitpartColor") then
NewParticle.Color = ColorSequence.new(Hitpart.Color)
end
delay(dur,function()
NewParticle.Enabled = false
Debris:AddItem(NewParticle, NewParticle.Lifetime.Max)
end)
end
end
-- flash
if MatFolder:FindFirstChild("Flash") then
local po = MatFolder.Flash:Clone()
po.Shadows = true
po.Range = po.Range * randf(1/1.35,1.35)
po.Enabled = true
po.Parent = Attachment
if MatFolder.Flash:FindFirstChild("Duration") then
Debris:AddItem(po,MatFolder.Flash.Duration.Value)
else
Debris:AddItem(po,0.05)
end
end
-- flash decal
if MatFolder:FindFirstChild("FlashDecals") then
local bg = Instance.new("BillboardGui")
bg.Adornee = Attachment
bg.Parent = Attachment
local flash = rlist(MatFolder.FlashDecals:GetChildren()):Clone()
local size = flash:FindFirstChild("Size")
local flashsize
if size then
flashsize = randf(size.MinValue,size.MaxValue)
else
flashsize = randf(0.8,1.25)
end
bg.Size = UDim2.new(flashsize,0,flashsize,0)
local trans = flash:FindFirstChild("Trans")
if trans then
flash.ImageTransparency = randf(trans.MinValue,trans.MaxValue)
end
flash.Visible = true
flash.Rotation = math.random(0,360)
flash.Size = UDim2.new(.05,0,.05,0)
local dur = .07
if flash:FindFirstChild("Duration") then
dur = flash.Duration.Value
end
flash.Parent = bg
flash:TweenSize(UDim2.new(1,0,1,0),"Out","Quad",dur*2)
Debris:AddItem(bg,dur)
end
-- sound
local Sound = rlist(MatFolder.Sounds:GetChildren()):Clone()
Sound.PlaybackSpeed = randf(.8,1.25) * Sound.PlaybackSpeed
Sound.Parent = Attachment
Sound:Play()
Debris:AddItem(Sound,Sound.TimeLength/Sound.PlaybackSpeed)
if Hitpart.Name == "Hitmaker" then
local Marca = Instance.new("Part")
Marca.Material = Enum.Material.Neon
Marca.Anchored = true
Marca.CanCollide = false
Marca.Color = Color3.fromRGB(math.random(0,255),math.random(0,255),math.random(0,255))
Marca.Size = Vector3.new(0.1,0.1,0.01)
Marca.Parent = ACS_Storage.Server
Marca.CFrame = CFrame.new(Pos, Pos + Norm)
table.insert(Ray_Ignore, Marca)
Debris:AddItem(Attachment, 5)
game.Debris:AddItem(Marca, 20)
elseif Hitpart.Name == "alvo" then
--local BulletWhizz = Instance.new("Sound")
--BulletWhizz.Parent = Attachment
--BulletWhizz.Volume = math.random(20,30)/10
--BulletWhizz.MaxDistance = 500
--BulletWhizz.EmitterSize = 25
--BulletWhizz.PlaybackSpeed = math.random(38, 58)/40
--BulletWhizz.SoundId = "rbxassetid://" .. rlist(Metal)
--BulletWhizz:Play()
local Marca = Instance.new("Part")
Marca.Anchored = true
Marca.CanCollide = false
Marca.Transparency = 1
Marca.Size = Vector3.new(0.2,0.2,0.01)
Marca.Parent = ACS_Storage.Server
Marca.CFrame = CFrame.new(Pos, Pos + Norm)
Debris:AddItem(Attachment, 5)
game.Debris:AddItem(Marca, 20)
table.insert(Ray_Ignore, Marca)
local Dec = Instance.new("Decal")
Dec.Texture = "rbxassetid://359667865"
Dec.Parent = Marca
elseif Hitpart.Name == "Knob" and Settings.CanBreachDoor then
local DoorModel = Hitpart.Parent
if DoorModel:FindFirstChild("Hinge") then
DoorModel.Hinge.HingeConstraint.ActuatorType = Enum.ActuatorType.None
end
Hitpart:Destroy()
elseif Hitpart.Name == "DoorHinge" and Settings.CanBreachDoor then
local DoorModel = Hitpart.Parent
Hitpart:Destroy()
if DoorModel:FindFirstChild("DoorHinge") == nil and DoorModel:FindFirstChild("Hinge") then
if DoorModel:FindFirstChild("Hinge") then
DoorModel.Hinge.HingeConstraint:Destroy()
DoorModel.Hinge:Destroy()
end
end
end
coroutine.wrap(function()
repeat RS.Heartbeat:Wait() until #Attachment:GetChildren() == 0
Attachment:Destroy()
end)()
end
function Hitmarker.Explosion(Position, HitPart, Normal)
local Hitmark = Instance.new("Attachment")
Hitmark.CFrame = CFrame.new(Position, Position + Normal)
Hitmark.Parent = workspace.Terrain
local S = Instance.new("Sound")
S.EmitterSize = 50
S.MaxDistance = 1500
S.SoundId = "rbxassetid://".. rlist(Explosion)
S.PlaybackSpeed = math.random(30,55)/40
S.Volume = 2
S.Parent = Hitmark
S.PlayOnRemove = true
S:Destroy()
local Exp = Instance.new("Explosion")
Exp.BlastPressure = 0
Exp.BlastRadius = 0
Exp.DestroyJointRadiusPercent = 0
Exp.Position = Hitmark.Position
Exp.Parent = Hitmark
Debris:AddItem(Hitmark, 5)
end
function Hitmarker.RicoSound(pos)
local part = Instance.new(“Part”)
part.Anchored = true
part.CanCollide = false
part.Transparency = 1
part.Material = Enum.Material.Air
part.Size = Vector3.new(.1,.1,1)
local sound = Instance.new("Sound")
sound.RollOffMode = Enum.RollOffMode.InverseTapered
sound.RollOffMinDistance = 24
sound.RollOffMaxDistance = 120
sound.SoundId = "rbxassetid://" .. rlist(RicoSounds)
sound.Parent = part
part.Parent = BulletModel
sound:Play()
spawn(function()
sound.Played:Wait()
part:Destroy()
end)
end
return Hitmarker
I didn’t see any :TakeDamage()
Just to be clear, you do know what acs is right?
Not really, no. But the devforum only allows me to type three times ten characters before I can send something.
This script is only compatible with R6 avatars.
local BodyParts = {
“Head”,
“Torso”,
“Left Arm”,
“Right Arm”,
“Left Leg”,
“Right Leg”,
“HumanoidRootPart”,
}
If you want to make it compatible with R15 avatars I assume you’ll need to add the R15 joints to this table value.
I am currently using r6 avatars.
Tell me what ACS is pls! Btw I need more letters.
Advanced Combat System, relatively popular FPS module.
Ok, but I don’t know what the damage script is.
Yeah, That’s where I’m stuck at. I don’t exactly know what script allows guns to damage players
Send me an ACS gun, 3x10 characters
There are two different models. The client model and the server model. But none of those have scripts in them. Just parts, particles, and surface guis. The only thing that would contain a script for the gun would be the tool itself. But the tool only has a settings and animations script so I don’t think sending the gun models and tool would help.
The ACS you are using is for R6 characters, rather change ur game settings or get the R15 version. ACS 2.0.0 - Official Release (R15) - Roblox
there is an R15 version OP just got the wrong one
i don’t think you need to involve the humanoid root part since that is invisible and torso is already an exact substitute, i also don’t see anything about a line that withdraws the health from the humanoid
No its not the wrong one. Its A modded acs that was originally for r15, but then got optimized to allow the use of r6 avatars.
I prefer to use r6 avatars as r15 ones can be quite glitchy at times.
Edit: if you look at the model you sent and then look at the comments you’ll see what I mean.