This sample code doesn’t seem to work or have the intended effect. I’m trying to make a bullet eject from a specific part in the gun, but it just spawns inside the ejection part and drops. Help?
local EjectionSpeed = 100
local ShellCasing = game.ReplicatedStorage.GunStuff.Casings.ELY36Casing:Clone()
local EjectionPort = script.Parent.EjectionPort
ShellCasing:PivotTo(EjectionPort.CFrame)
ShellCasing:ApplyImpulse(EjectionPort.CFrame.RightVector * EjectionSpeed)
ShellCasing.Parent = workspace
script.Parent.Handle.CasingDrop:Play()
It looks like the issue is with the line ShellCasing:PivotTo(EjectionPort.CFrame)
. The PivotTo
method is not a built-in function in Roblox and is likely causing the code to fail.
Instead, you can try setting the CFrame
of the shell casing to the CFrame
of the ejection port and then applying an impulse to it in the direction you want it to eject. Here’s an updated version of the code:
local EjectionSpeed = 100
local ShellCasing = game.ReplicatedStorage.GunStuff.Casings.ELY36Casing:Clone()
local EjectionPort = script.Parent.EjectionPort
ShellCasing.CFrame = EjectionPort.CFrame
ShellCasing.Velocity = EjectionPort.CFrame.RightVector * EjectionSpeed
ShellCasing.Parent = workspace
script.Parent.Handle.CasingDrop:Play()
This should set the initial position of the shell casing to the position of the ejection port and then apply an impulse to it in the direction specified by the RightVector
of the ejection port’s CFrame
. You may need to adjust the EjectionSpeed
value to achieve the desired effect.
PivotTo
is a valid method for Models.