Gun Smoke Effects

I am trying to replicate a smoke effect on a gun I found in another game.

When the user shoots at a wall, there should be smoke on that wall in the place that they shot. While my system does achieve this, it is extremely delayed and looks really bad. I am using smoke but I’m pretty sure there is a way to do this with ParticleEmitters (if so, then I don’t know how).


My System

Ideal System (From Another Game)


Here is a snippet of my code. Please note that it runs on the server side.

if key == "RayResult" then
		local P = Instance.new("Part", val.Instance)
		P.Transparency = 1
		P.Size = Vector3.new(0.1,0.1,0.1)
		P.Position = val.Position
		P.Anchored = true
		P.CanCollide = false
		P.CanTouch = false
		P.CanQuery = false

		local S = Instance.new("Smoke", P)
		S.Opacity = 1
		S.Color = Color3.new(0.486275, 0.486275, 0.486275)
		S.Size = 0.5
		S.RiseVelocity = 1

		S.Parent = P
		P.Parent = workspace.GunSmokeEffects

		Debris:AddItem(P, 2)
		Debris:AddItem(S, 2)
	end

Any help or ideas are appreciated. I want my system to look like the one from the second video.

1 Like

Don’t use smoke for this. Instead, create a ParticleEmitter and parent it to the part which has the hit position. Here’s an example (add this to your current script).

local emitter = Instance.new("ParticleEmitter")
-- Set emitter settings here, such as texture
emitter.Parent = P

Look for a nice spark or smoke effect, and use it’s texture for your emitter. Then with this line, you can emit the particles for a nice bullet smoke effect!

emitter:Emit()