local module = {
Wisp = function()
local blast = bulletStorageAPI.getBullet()
local blastshape = blast:FindFirstChild("Mesh") or Instance.new("SpecialMesh", blast)
local blastCenter = blast:FindFirstChild("Attachment") or Instance.new("Attachment",blast)
local blastParticle = blast:FindFirstChild("ParticleEmitter") or blastCenter:FindFirstChild("ParticleEmitter") or Instance.new("ParticleEmitter")
blastParticle.Parent = blastCenter
blastParticle.Color = ColorSequence.new(Color3.fromRGB(100,200,255), Color3.fromRGB(20,100,255))
blastParticle.Size = NumberSequence.new(0.5,0)
blastParticle.RotSpeed = NumberRange.new(-200,200)
blastParticle.Transparency = NumberSequence.new(0,1)
blastParticle.Lifetime = NumberRange.new(0.5,1)
blastParticle.Speed = NumberRange.new(4,6)
blastParticle.LockedToPart = true
blastParticle.Texture = "rbxassetid://4449786143"
blastParticle.LightEmission = 0.4
blastParticle.Rate = 100
blastParticle.ZOffset = -2
blastParticle.Drag = 0
blastshape.TextureId = ""
blastshape.MeshType = Enum.MeshType.Sphere
blastshape.VertexColor = Vector3.new(1,1,1)
blastshape.Scale = Vector3.new(1,1,1)
blast.Transparency = 0.5
blast.Color = Color3.fromRGB(100,225,255)
blast.Material = "Neon"
blast.Size = Vector3.new(1,1,1)
return blast,blastshape, blastCenter, blastParticle
end,
FoxfireDagger = function()
local blast = bulletStorageAPI.getBullet()
local blastshape = blast:FindFirstChild("Mesh") or Instance.new("SpecialMesh", blast)
local blastCenter = blast:FindFirstChild("Attachment") or Instance.new("Attachment")
local blastParticle = blast:FindFirstChild("ParticleEmitter") or blastCenter:FindFirstChild("ParticleEmitter") or Instance.new("ParticleEmitter")
blastParticle.Parent = blast
blastshape.MeshType = Enum.MeshType.FileMesh
blastshape.MeshId = "rbxassetid://4817006049"
blastshape.TextureId = "rbxassetid://4449786143"
blastshape.VertexColor = Vector3.new(0,1,10)
blastshape.Scale = Vector3.new(1,1,1)
blast.Size = Vector3.new(1,0.25,4)
blast.Transparency = 0.6
blast.Material = Enum.Material.Neon
blast.CanCollide = false
blast.Anchored = true
blastParticle.Texture = "rbxassetid://4449786143"
blastParticle.Color = ColorSequence.new(Color3.fromRGB(60,200,255), Color3.fromRGB(0,60,255))
blastParticle.RotSpeed = NumberRange.new(-200,200)
blastParticle.Transparency = NumberSequence.new(0,1)
blastParticle.Size = NumberSequence.new(0.15,0)
blastParticle.Speed = NumberRange.new(0)
blastParticle.Lifetime = NumberRange.new(0.1,1.5)
blastParticle.Rate = 100
blastParticle.LightEmission = 0.5
blastParticle.ZOffset = 0
blastParticle.LockedToPart = false
blastParticle.Drag = 0
return blast, blastshape, blastParticle
end,
GenericBullet = function()
local blast = bulletStorageAPI.getBullet()
local blastshape = blast:FindFirstChild("Mesh") or Instance.new("SpecialMesh", blast)
local blastCenter = blast:FindFirstChild("Attachment") or Instance.new("Attachment",blast)
local blastParticle = blast:FindFirstChild("ParticleEmitter") or blastCenter:FindFirstChild("ParticleEmitter") or Instance.new("ParticleEmitter")
blastParticle.Parent = blastCenter
blastParticle.Enabled = false
blastshape.TextureId = ""
blastshape.MeshType = Enum.MeshType.Sphere
blastshape.VertexColor = Vector3.new(1,1,1)
blastshape.Scale = Vector3.new(1,1,1)
blast.Transparency = 0.5
blast.Color = Color3.fromRGB(255,255,255)
blast.Material = "Neon"
blast.Size = Vector3.new(1,1,1)
return blast
end
}
this is the index so far
i meant ‘tedious’ as it is fairly easy to forget one or two properties of an object and then the entire bullet is now changed - and then it becomes hard to even figure out which property i had missed, etc, etc. It’s also going to be a problem, say, if i want to add trails in the future because then every bullet that doesn’t need trails would have to manually disable the trails, and in the future adding new things would result in combing through a lot of different bullets
although, i might consider having a baseline bullet and have the script that recycles the bullets return them manually