Bullet Tracers For Fast Cast

I am building a realistic weapon using FastCast and the projectile speed is set the the foot/second of the real life identical weapon; however, if the projectile is too fast and the tracers cannot be identified. Are there any solutions that allows the tracers to be visible while having the same projectile speed?

I have tried using ā€œtrailsā€ instead of ā€œbeamsā€ but it leaves a mark in the sky because how the part cache work.

Screenshot 2022-01-25 180155
ā€œmark in the skyā€(basically vertical lines that arenā€™t where the bullet is going

1 Like

I was going to say trails almost immediately and then I read this:

Oh well. :wink:

Anyways, Iā€™ve never used the fast-cast module so I canā€™t help you there. However, a few solutions I can think of off the top of my head are:

  1. Use trails, but switch them to disabled before returning the part to the cache (to remove the streak in the sky) and to enabled after cframing them to the first position.
  2. Use beams with one of the attachments trailing behind the bullet.
  3. Use RunService to create a trail of bullets by creating small parts spanning between the position and the previous position. While this is possible, I wouldnā€™t reccomend it, as itā€™d be the least performant (although you could still optimize it to a workable degree) and take a lot of work to actually get to look good.
3 Likes

Yep :+1: this is usually the simplest solution with the system already built in. I shared it here, also itā€™s best to initially disable the trail first.

are there simular ways to do this without having to create a fastcast handler module? I tried but Iā€™m not sure how to get the cosmeticbulletobject correctly

weaponEvent.OnServerEvent:Connect(function(plr,action,part1,part2,damage)
	if action == "trigger" then
		local origin = part2.p
		local lookdirection = part2.lookVector*1000

		local weaponCaster:Fire(origin,lookdirection,script.Parent.Variables.mVelocity.Value,fastBehavior)		
		local bullet = weaponCaster.RayInfo.CosmeticBulletObject
		local trail = bullet:FindFirstChildWhichIsA("Trail")
		if trail then		
					trail.Enabled = true				
		end
    end
end)

Edit: Nope i figured it out, the code above is corrected

I used trails and the method u provided but thereā€™s a HUGE gap between the ray origin and the tracerā€™s origin; Another problem is that once the tracer gets far away it becomes undetectable again. I am looking for the tracers similar to those of Deadline and Phantom Forces.

ā€œHUUUGE GAPā€:
robloxapp-20220126-2343192.wmv (896.0 KB)

I believe then you can use beams instead and just use the particle framework in that model, like how @Tidyen used it. The delay is a flaw in fascast where it waits one frame from the fire point I believe, eti talks about it.

The flaw with fastcast rendering issue: