Can a bullet have bullet drop and bullet reflection

The title might be a bit confusing so i will provide a demonstration:

the blue line is meant to be the bullet trayectory

this is the codei have so far:

	local ignore = {plr.Character}

	local params =
	params.FilterDescendantsInstances = ignore
	params.FilterType = Enum.RaycastFilterType.Blacklist
	local connection

	connection = run.Heartbeat:Connect(function(dt)
		local hum
		local hat
		local newpos = bullet.CFrame.LookVector * 100
		local oldpos = bullet.Position
		local hite

		for i, v in pairs(bullet:GetChildren()) do
			if v:IsA("Attachment") and v.Name == "detector" then

				local oldpos = v.WorldPosition

				local newpos = v.WorldCFrame.LookVector * 100

				newpos = newpos - (, workspace.Gravity, 0) * dt)
				oldpos = oldpos + newpos * dt

				local hit = game.Workspace:Raycast(oldpos, newpos, params)
				hite = hit
				if hit then
					if hit.Instance.Parent:FindFirstChild("Humanoid") then
						hum = hit.Instance.Parent:FindFirstChild("Humanoid")
						hat = true


		if hum == nil then

			newpos = newpos - (, workspace.Gravity, 0) * dt)
			oldpos = oldpos + newpos * dt
			bullet.Position = oldpos
			bullet.CFrame =, newpos)
		elseif hat == true then
			local norm = hite.Normal
			local reflect = (newpos - (2 * newpos:Dot(norm) * norm))
			newpos = reflect
			oldpos = oldpos + newpos * dt
			bullet.CFrame =, newpos)
			hat = false

try using :ApplyImpulse(). Here’s a video that can help you with this Projectile Physics - Roblox Scripting Tutorial - YouTube. What I did was clone the bullet and position it at the gun then I used :ApplyImpulse.
note: If the bullet is really small and traveling at high speeds it might phase through things.
Here’s a video of the gun I created:
Roblox Bullet Physics - YouTube

Well the thing is that if i were to use physics i would depend on touched events, these are very unreliable, thus why im using raycasts.

Im not very good at this type of stuff so I cant help you.