Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Instance not being created in a FilteringEnabled environment?

Asked by 6 years ago

Hi. I'm creating a simple gun in FilteringEnabled using a RemoteEvent. The gun has a local script, and there is a script in ServerScriptService. The local script has a function that runs when the tool is activated, which runs :FireServer() with all the correct arguments. Everything works fine in Play Mode, but when I run a server, the bullet just falls through the floor disappointingly.

Here's the script in ServerScriptService:

local gunre = game.ReplicatedStorage.RemoteEvents:WaitForChild("GunFire")

gunre.OnServerEvent:connect(function(player, part, mouse, damage)
    local bullet = Instance.new("Part", part.Parent)
    bullet.Name = "Bullet"
    bullet.Size = Vector3.new(3,3,3)
    bullet.BrickColor = BrickColor.new("New Yeller")
    bullet.CanCollide = false
    bullet.Anchored = false

    bullet.CFrame = part.CFrame
    bullet.CFrame = CFrame.new(bullet.Position, mouse.Hit.p)

    game.Debris:AddItem(bullet, 2)

    local vel = Instance.new("BodyVelocity", bullet)
    vel.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
    vel.Velocity = bullet.CFrame.lookVector * 800

    bullet.Touched:connect(function(part)
        local hum = part.Parent:findFirstChild("Humanoid")
        if hum and hum.Health > 0 and part.Parent ~= player.Character then
            hum.Health = hum.Health - damage
            bullet:Destroy()
        end
    end)

end)

The Part/Bullet instance is created, but I looked and only found that the BodyVelocity wasn't even created. There's no errors, it's just not making a new instance for BodyVelocity at all. Any help is appreciated.

Thanks :} ~Loughdough

Answer this question