I just want to say that I made sure the part is unanchored.

I used remote events, so there are two scripts.

Server Script:

local tool = script.Parent
local event = tool.ClickEvent
local handle = tool.Handle

function createPart()
	local part = Instance.new("Part")
	part.Parent = workspace
	part.Size = Vector3.new(.2, .2, .2)
	part.BrickColor = BrickColor.Yellow()
	part.Anchored = false
	part.CanCollide = false
	return part
end

event.OnServerEvent:connect(function(player, mouseLocation)
	local part = createPart()
	part.CFrame = tool.Handle.CFrame
	part.CFrame = CFrame.new(part.Position, mouseLocation)
	local bodyVelocity = Instance.new("BodyVelocity", part)
	bodyVelocity.velocity = part.CFrame.lookVector * 90
	bodyVelocity.maxForce = Vector3.new(math.huge, math.huge, math.huge)
	game.Debris:AddItem(part, 15)
end)

Local Script:

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

local tool = script.Parent
local event = tool.ClickEvent


tool.Activated:connect(function()
	local mouseLocation = mouse.Hit.p
	event:FireServer(mouseLocation)
end)

1 comment

0

Just a thought: might the bullet be automatically creating welds with other objects when you put it into the workspace? If that is happening, the solution would be to call :BreakJoints on the bullet (after line 18).