so i got this script that damages players, and makes a part that welds to the damaged player then the part welds to your hand, and its just used for looks but it doesn't work on players at all. It works on npcs 100% of the time but for players it completely ignores them and just does the damage part. Heres a stripped down version of my code:
local Part = enemyplayer.Character.HumanoidRootPart --(placeholder)
local player = Nikkted -- me
local humanoidRootpart = Nikkted.Character.HumanoidRootPart
spawn(function()
local explosionPart = Instance.new("Part", player.Character)
explosionPart.Parent = player.Character
explosionPart.Anchored = false
explosionPart.Massless = true
explosionPart.CanCollide = false
explosionPart.Size = Vector3.new(0.616, 0.104,30)
explosionPart.BrickColor = BrickColor.new("New Yeller")
explosionPart.Material = Enum.Material.Neon
explosionPart.Transparency = 0
explosionPart.CFrame = player.Character.HumanoidRootPart.CFrame*CFrame.new(0,1,-89)
local weld = Instance.new("Weld",player.Character.RightHand)
weld.Part1 = player.Character.RightHand
weld.Part0 = explosionPart
weld.C0 = CFrame.new(0,0,15)*CFrame.Angles(math.pi/2,math.pi,0)
local attachment0 = Instance.new("Attachment",explosionPart)
attachment0.Position = Vector3.new(0,0,15)
local attachment1 = Instance.new("Attachment",explosionPart)
attachment1.Position = Vector3.new(0,0,-15)
local Stars = script.Stars:Clone()
Stars.Parent = explosionPart
local trail = script.Trail:Clone()
trail.Parent = explosionPart
trail.Attachment0 = attachment0
trail.Attachment1 = attachment1
part.Parent = player.Character
part.Anchored = false
part.Massless = true
part.CanCollide = false
part.CFrame = player.Character.RightHand.CFrame
local weld = Instance.new("Weld",player.Character.RightHand)
weld.Part1 = player.Character.RightHand
weld.Part0 = part
weld.C0 = CFrame.new(0,0,0)]]
local particle = script.Inside:Clone()
particle.Parent = player.Character.RightHand.Right
game.Debris:AddItem(particle,2)
for _,v in pairs(Part.Parent:GetDescendants()) do
if v:IsA("BasePart") then
--v:SetNetworkOwner(plr)
v.Massless = true
end
end
local Weld = Instance.new("ManualWeld")
Weld.Name = "DetainWeld"
Weld.Parent = explosionPart
Weld.Part0, Weld.Part1 = Weld.Parent, Part.Parent.PrimaryPart
Weld.C0 = Weld.Parent.CFrame:inverse()
Weld.C1 = CFrame.new((Weld.Parent.Position + Weld.Parent.CFrame.LookVector * 3), Weld.Parent.Position + Weld.Parent.CFrame.LookVector):inverse()
game.Debris:AddItem(Weld,3)
local anim = Part.Parent.Humanoid:LoadAnimation(script.Stun)
anim:Play()
local player2 = game.Players:GetPlayerFromCharacter(enemyHumanoid.Parent)
if player2 ~= nil then
game.ReplicatedStorage.StunRemote:FireClient(player2,false)
end
spawn(function()
wait(.8)
for i = 1,20 do
wait()
explosionPart.Transparency = explosionPart.Transparency+(0.05)
end
wait(.15)
explosionPart:Destroy()
weld:Destroy()
end)
wait(.9)
local sound = script.Knockback:Clone()
sound.Volume = 1
sound.Parent = Part.Parent.Head
sound:Destroy()
wait(.475)
particle:Destroy()
Weld:Destroy()
for _,v in pairs(Part.Parent:GetDescendants()) do
if v:IsA("BasePart") then
--v:SetNetworkOwner(plr)
v.Massless = false
end
end
Part.Parent.HumanoidRootPart.CFrame = player.Character.HumanoidRootPart.CFrame*CFrame.new(0,0,-10)
local bodyVelocity = Instance.new("BodyVelocity", Part.Parent.HumanoidRootPart)
bodyVelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
bodyVelocity.Velocity = CFrame.new(humanoidRootPart.Position, mouseHit).lookVector * 100
game.Debris:AddItem(bodyVelocity,.6)
wait(.5)
bodyVelocity:Destroy()
explosionPart:Destroy()
anim:Stop()
end)
-------------------------------
if enemyHumanoid and enemyHumanoid.Health > 0 then
enemyHumanoid:TakeDamage(100)
end
-------------------------------
i don't see where the barrier between whats a player and whats an npc stops it from working on players is it because welding players to players doesn't work or something? idk if I'm missing something but I hope you guys could help me out <3
