Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

The problem is that you are actually using the same object, not creating a new one.

Quick solution would be to clone your template bullet object

Add this function on the top:

--clone table
function clone(t)
local r={}
for k,v in pairs(t) do r[k]=v end
return r
end

Then, in your function, instead of doing:

local obj = {} 
obj = bullet

do

local obj = clone(bullet)