It has been almost a year, but I’ll take my chances that some will reply.
So I have been currently working on a Jojo Game and I have encountered this bug regarding this module.
The barrage effect works completely as intended in server sided, (which is idiotic of me to do that initially) however when I decided to swap to client sided to handle the barrage effects, the visuals are bugged.
Bugged as in the arms are invisible.
I tried tweaking the speed, rates and etc but doesn’t seem like it did anything, the bug still persists.
Barrage handled by server:
Barrage handled by client:
You can see the arms are gone…
Client sided activation of module:
local distance = 7
local speed = 15
local rate = 0.01 -- delay between punches
--local damage = 0.3
local Stand = player.Character:FindFirstChild("Stand_Model")
barragemodule.barragestart(Stand, distance, speed, rate, true)
Cloned barrage model in workspace:
The “parts” are the decorative parts on the barraging arm. (The Star Platinum’s arm)
I was hoping and guessing streaming enabled would be the fix or somehow related but it wasn’t either.
I have no clue to what is causing this issue.
The module I used is the exactly same.
I did tweak a little but nothing to affect the barrage visual.
Just incase I’ll include it here too.
local module = {}
local function lerp(a, b, t)
--a value is start position
--b value is end position
--t value is time
return a + (b-a) * t
end
local ts = game:GetService("TweenService")
local function barrage(character, distance, speed, rate, armCopy)
task.spawn(function()
local random = math.random(1,100)/100
local xr = math.random(-6,0) + random
local yr = math.random(-5,5) + random
local zr = (distance * -1)/2
local startpoint = character["Left Arm"].Position
local dis = distance * -1
local endpoint = character.HumanoidRootPart.CFrame * CFrame.new(xr/3,yr/3,dis)
local endp = endpoint.Position
local curvepoint = character.HumanoidRootPart.CFrame * CFrame.new(xr,yr,zr)
local curvep = curvepoint.Position
local model = Instance.new("Model")
model.Parent = workspace
local hum = Instance.new("Humanoid")
hum.Parent = model
if character:FindFirstChild("Shirt") then
local clothing = Instance.new("Shirt")
clothing.ShirtTemplate = character.Shirt.ShirtTemplate
clothing.Parent = model
end
local LeftArm = character["Left Arm"]:Clone()
LeftArm.Name = "Left Arm"
LeftArm.Parent = model
LeftArm.Transparency = 1
LeftArm.CanCollide = false
LeftArm.Anchored = true
LeftArm.Material = "SmoothPlastic"
if armCopy then
for i, v in pairs(character:GetChildren()) do
if v:IsA("CharacterMesh") then
if v.BodyPart == Enum.BodyPart.LeftArm then
local mesh = v:Clone()
mesh.Parent = model
end
end
end
end
local att1 = Instance.new("Attachment")
att1.CFrame = CFrame.new(0,-0.45,0)
local att2 = Instance.new("Attachment")
att2.CFrame = CFrame.new(0,0.45,0)
local trail = script.Trail:Clone()
att1.Parent = LeftArm
att2.Parent = LeftArm
trail.Parent = LeftArm
trail.Attachment1 = att1
trail.Attachment0 = att2
local trail2 = script.Trail2:Clone()
trail2.Parent = LeftArm
local att3 = Instance.new("Attachment")
att3.CFrame = CFrame.new(0,-0.8,0)
local att4 = Instance.new("Attachment")
att4.CFrame = CFrame.new(0,0.8,0)
att3.Parent = LeftArm
att4.Parent = LeftArm
trail2.Attachment1 = att3
trail2.Attachment0 = att4
ts:Create(LeftArm, TweenInfo.new(0.4), {Transparency = 0}):Play()
game.Debris:AddItem(model, speed * 0.02)
local i = 0
local t = i/speed
local l1 = lerp(startpoint, curvep, t)
local l2 = lerp(curvep, endp, t)
local last = lerp(l1,l2,t)
for i = 0, speed, 1 do
local t = i/speed
local l1 = lerp(startpoint, curvep, t)
local l2 = lerp(curvep, endp, t)
--lerp1.Position = l1
--lerp2.Position = l2
local quad = lerp(l1,l2,t)
LeftArm.CFrame = CFrame.lookAt(quad, last) * CFrame.Angles(math.rad(-90),90,0)
task.wait(0.0001)
last = quad
if LeftArm.Position == endp then
local biggersize = Vector3.new(1.196, 0.053, 1.196)
local ring = script.PUNCHRING:Clone()
ring.Transparency = 1
ring.Parent = character
ring.CanCollide = false
ring.Anchored = true
--ts:Create(ring, TweenInfo.new(0.1), {Transparency = 0.4}):Play()
ts:Create(ring, TweenInfo.new(0.1), {Size = biggersize}):Play()
ring.CFrame = LeftArm.CFrame
ring.CFrame = endpoint * CFrame.new(0,0,-1.5) * CFrame.Angles(math.rad(90),90,0)
game.Debris:AddItem(ring, 0.3)
for i, particle in pairs(script.hit:GetChildren()) do
local clone = particle:Clone()
clone.Parent = ring
clone:Emit(clone:GetAttribute("EmitCount"))
game.Debris:AddItem(clone, 1)
end
end
end
end)
task.wait(rate)
task.spawn(function()
local random = math.random(1,100)/100
local xr = math.random(0,6) + random
local yr = math.random(-5,5) + random
local zr = (distance * -1)/2
local startpoint = character["Right Arm"].Position
local dis = distance * -1
local endpoint = character.HumanoidRootPart.CFrame * CFrame.new(xr/3,yr/3,dis)
local endp = endpoint.Position
local curvepoint = character.HumanoidRootPart.CFrame * CFrame.new(xr,yr,zr)
local curvep = curvepoint.Position
local model = Instance.new("Model")
model.Parent = workspace
local hum = Instance.new("Humanoid")
hum.Parent = model
if character:FindFirstChild("Shirt") then
local clothing = Instance.new("Shirt")
clothing.ShirtTemplate = character.Shirt.ShirtTemplate
clothing.Parent = model
end
local RightArm = character["Right Arm"]:Clone()
RightArm.Name = "Right Arm"
RightArm.Parent = model
RightArm.Transparency = 1
RightArm.CanCollide = false
RightArm.Anchored = true
RightArm.Material = "SmoothPlastic"
if armCopy then
for i, v in pairs(character:GetChildren()) do
if v:IsA("CharacterMesh") then
if v.BodyPart == Enum.BodyPart.RightArm then
local mesh = v:Clone()
mesh.Parent = model
end
end
end
end
local att1 = Instance.new("Attachment")
att1.CFrame = CFrame.new(0,-0.45,0)
local att2 = Instance.new("Attachment")
att2.CFrame = CFrame.new(0,0.45,0)
local trail = script.Trail:Clone()
att1.Parent = RightArm
att2.Parent = RightArm
trail.Parent = RightArm
trail.Attachment1 = att1
trail.Attachment0 = att2
local trail2 = script.Trail2:Clone()
trail2.Parent = RightArm
local att3 = Instance.new("Attachment")
att3.CFrame = CFrame.new(0,-0.8,0)
local att4 = Instance.new("Attachment")
att4.CFrame = CFrame.new(0,0.8,0)
att3.Parent = RightArm
att4.Parent = RightArm
trail2.Attachment1 = att3
trail2.Attachment0 = att4
ts:Create(RightArm, TweenInfo.new(0.4), {Transparency = 0}):Play()
game.Debris:AddItem(model, speed * 0.02)--speed * 0.02
local i = 0
local t = i/speed
local l1 = lerp(startpoint, curvep, t)
local l2 = lerp(curvep, endp, t)
local last = lerp(l1,l2,t)
for i = 0, speed, 1 do
local t = i/speed
local l1 = lerp(startpoint, curvep, t)
local l2 = lerp(curvep, endp, t)
--lerp1.Position = l1
--lerp2.Position = l2
local quad = lerp(l1,l2,t)
RightArm.CFrame = CFrame.lookAt(quad, last) * CFrame.Angles(math.rad(-90),-90,0)
task.wait(0.0001)
last = quad
if RightArm.Position == endp then
local biggersize = Vector3.new(1.196, 0.053, 1.196)
local ring = script.PUNCHRING:Clone()
ring.Transparency = 1
ring.Parent = character
ring.CanCollide = false
ring.Anchored = true
--ts:Create(ring, TweenInfo.new(0.1), {Transparency = 0.4}):Play()
ts:Create(ring, TweenInfo.new(0.1), {Size = biggersize}):Play()
ring.CFrame = RightArm.CFrame
ring.CFrame = endpoint * CFrame.new(0,0,-1.5) * CFrame.Angles(math.rad(90),90,0)
game.Debris:AddItem(ring, 0.3)
for i, particle in pairs(script.hit:GetChildren()) do
local clone = particle:Clone()
clone.Parent = ring
clone:Emit(clone:GetAttribute("EmitCount"))
game.Debris:AddItem(clone, 1)
end
end
end
end)
end
function module.barragestart(char, distance, speed, rate, armCopy)
if char:FindFirstChild("Pilot_Stand_Indicator_Bool") and char:FindFirstChild("Pilot_Stand_Indicator_Bool"):IsA("StringValue") then
if char:FindFirstChild("Status_Folder"):FindFirstChild("Stunned_BoolValue").Value == true then return end
if char then
if char:FindFirstChild("InBarrage") == nil then
local check = Instance.new("IntValue")
check.Parent = char
check.Name = "InBarrage"
local light = Instance.new("PointLight")
light.Parent = char.HumanoidRootPart
light.Name = "BarrageLight"
light.Color = Color3.fromRGB(255,255,255)
light.Range = 8
light.Brightness = 4
char["Left Arm"].Transparency = 0
char["Right Arm"].Transparency = 0
local ATT = Instance.new("Attachment")
ATT.Name = "BarrageAttachment"
ATT.Parent = char.HumanoidRootPart
local dis = distance * -1
ATT.Position = Vector3.new(0,0,dis)
local smoke = script.HeavySmoke3:Clone()
smoke.Parent = ATT
smoke.Enabled = true
repeat
barrage(char, distance, speed, rate, armCopy)
task.wait(rate)
until char:FindFirstChild("InBarrage") == nil
--track:Stop()
end
end
else
if char.Parent:FindFirstChild("Status_Folder") and char.Parent:FindFirstChild("Status_Folder"):FindFirstChild("Stunned_BoolValue") then
if char.Parent:FindFirstChild("Status_Folder"):FindFirstChild("Stunned_BoolValue").Value == true then return end
if char then
if char:FindFirstChild("InBarrage") == nil then
local check = Instance.new("IntValue")
check.Parent = char
check.Name = "InBarrage"
local light = Instance.new("PointLight")
light.Parent = char.HumanoidRootPart
light.Name = "BarrageLight"
light.Color = Color3.fromRGB(255,255,255)
light.Range = 8
light.Brightness = 4
char["Left Arm"].Transparency = 0
char["Right Arm"].Transparency = 0
local ATT = Instance.new("Attachment")
ATT.Name = "BarrageAttachment"
ATT.Parent = char.HumanoidRootPart
local dis = distance * -1
ATT.Position = Vector3.new(0,0,dis)
local smoke = script.HeavySmoke3:Clone()
smoke.Parent = ATT
smoke.Enabled = true
repeat
barrage(char, distance, speed, rate, armCopy)
task.wait(rate)
until char:FindFirstChild("InBarrage") == nil or char == nil
end
end
end
end
--player.Character:FindFirstChild("Pilot_Stand_Indicator_Bool") and player.Character:FindFirstChild("Pilot_Stand_Indicator_Bool"):IsA("StringValue") then
end
function module.barragend(char)
if char:FindFirstChild("InBarrage") then
char.InBarrage:Destroy()
end
if char.HumanoidRootPart:FindFirstChild("BarrageLight") then
char.HumanoidRootPart.BarrageLight:Destroy()
end
if char.HumanoidRootPart:FindFirstChild("BarrageAttachment") then
char.HumanoidRootPart.BarrageAttachment:Destroy()
end
char["Left Arm"].Transparency = 0
char["Right Arm"].Transparency = 0
end
return module
Any help would be great, thank you! 
EDIT:
I FOUND OUT THE ISSUE THAT IS CAUSING THIS.
I tried removing the humanoid that is created in the model of the barraging arms. This fixed the visuals instantly.