Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Can someone help me figure out what I'm doing wrong?

Just trying to shoot a basic bullet, still new to this, so I wasn't sure where else to go. I've been following some tutorials, but for some reason I keep getting a blue underline under the first "Bullet" and "Workspace"

Player = game.Players.LocalPlayer
Gun = script.Parent
Ammo = 5
mouse = Player:GetMouse()
function Shoot()
	if Ammo > 0 then
		Bullet = Instance.new("Part", Workspace)
		game.Debris:AddItem(Bullet, 2)
		Bullet.Shape = "Ball"
		Bullet.Size = Vector3.new(0.2, 0.2, 0.2)
		Bullet.TopSurface = "Smooth"
		Bullet.BottomSurface = "Smooth"
		Bullet.BrickColor = BrickColor.new("Dark stone grey")
		Bullet.CanCollide = false
		Bullet.CFrame = Gun.Handle.Cframe
		Bullet.CFrame = CFrame.new(Bullet.Position, mouse.Hit.p)
		v = Instance.new("BodyVelocity", Bullet)
		v.velocity = Bullet.CFrame.lookVector *90
		v.maxForce = Vector3.new(math.huge, math.huge, math.huge)
		
	end
end

Gun.Activated:connect(Shoot)

1 answer

The blue underlines, in this case, aren't actual errors. In this case they are harmless, but you should still correct it for, at the least, force of habit.

They are warnings that ROBLOX is guessing you're doing something bad.


It wants you to make Bullet local to the function (define it as local Bullet = Instance....) because using local variables is best practice.

It also wants you to use workspace instead of Workspace. While both work, ROBLOX has deprecated the Workspace variable (meaning they try to discourage people from using it) probably because it doesn't follow Lua's standard naming convention of using first-letter-lowercase-names.

The line in question would be corrected to this:

local Bullet = Instance.new("Part", workspace)

This discussion is preserved as it was. New answers, comments, and votes are closed.