Director Class major Problem

Hey ladies and gentleman, i seriosly need your help on this really annoying bug in one of my director class files. the scene/file is the game part of the app and is coming up with these following ERROR messages.

Game.lua 202:attempt to call method "insert"(a nil value)   

the Error is near the bottom of the page, it is at spawnEnemy, enemyBalloon

i have tried cleaning the memory by canceling timers in the clean function, that did not work :(.

so i am asking for your elp, i am really urgent!, please help me. her is the game file i was talking about. hope you can help!

cheers ,Hazza

module(..., package.seeall) -- Project: sticky balloons -- Description:&nbsp; -- -- Version: 1.0 -- Managed with http://CoronaProjectManager.com -- -- Copyright 2013 Harry Newton. All Rights Reserved. --&nbsp; local localGroup function clean (event) &nbsp;&nbsp;&nbsp;&nbsp;print("cleaned") end new = function () local widget = require "widget-v1" widget.setTheme("theme\_ios") display.setStatusBar(display.HiddenStatusBar) local physics = require "physics" physics.start();physics.setGravity(0,1) physics.setDrawMode("normal") localGroup = display.newGroup() local ox, oy = math.abs(display.screenOriginX), math.abs(display.screenOriginY) local cw, ch = display.contentWidth, display.contentHeight local stage = display.getCurrentStage() --------------------------------------------------------------------- --FOREGROUND OBJECTS -------------------------------------------------------------------- local background = display.newImage("background.jpg") localGroup:insert(background) local ground = display.newImage("floor.png") physics.addBody(ground,"static") ground.y = 480 localGroup:insert(ground) local turret = display.newImageRect("BalloonTurret.png",134,134) turret.x = 160 turret.y = 420 localGroup:insert(turret) ------------------------------------------------------------- ------------------------------------------------------------- local function buttonHit() &nbsp;&nbsp;&nbsp;&nbsp;director:changeScene("menu", "fade") &nbsp;&nbsp;&nbsp;&nbsp; end local back = widget.newButton {style = "backSmall",label = "back", onRelease = buttonHit} localGroup:insert(back) local projFiring = false local proj local physicsData = (require "Balloon").physicsData(1.0) local function newProj() &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;proj = display.newImage("Balloon.png"); proj.x =160 ; proj.y = 420 - 20 &nbsp;&nbsp;&nbsp;&nbsp;physics.addBody( proj, "dynamic",physicsData:get("balloon") ) &nbsp;&nbsp;&nbsp;&nbsp;proj.gravityScale = -7 &nbsp;&nbsp;&nbsp;&nbsp;projFiring = false &nbsp;&nbsp;&nbsp;&nbsp;proj.isBullet = true &nbsp;&nbsp;&nbsp;&nbsp;proj.isBodyActive = false &nbsp;&nbsp;&nbsp;&nbsp;proj.isVisible = false &nbsp;&nbsp;&nbsp;&nbsp; localGroup:insert(proj) &nbsp;&nbsp;&nbsp;&nbsp; end --collision handler local function projCollide( self,event ) &nbsp;&nbsp;&nbsp;&nbsp;if ( event.phase == "began" ) then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--get world coordinates of projectile for joint reference&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self:removeEventListener( "collision", self ) ; self.collision = nil &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--delay function to resolve collision &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local function resolveColl( timerRef ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( timerRef.source.action == "makeJoint" ) then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local weldJoint = physics.newJoint( "weld", self, event.other, self.x, self.y ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--check if velocity of projectile is sufficient to "stick" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local vx,vy = self:getLinearVelocity() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local dirVel = math.sqrt( (vx\*vx)+(vy\*vy) ) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( dirVel \> 100 ) &nbsp; then &nbsp;--if sufficient, stop velocity and trigger joint creation &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self:setLinearVelocity( 0,0 ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local t = timer.performWithDelay( 10, resolveColl, 1 ) ; t.action = "makeJoint" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;--if not sufficient, "break" projectile and create new &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local t = timer.performWithDelay( 10, resolveColl, 1 ) ; t.action = "none" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp;end end local function touchAction(event) &nbsp;&nbsp;&nbsp;&nbsp;if ( event.phase == "began" and projFiring == false ) then &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;projFiring = true &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj.isBodyActive = true &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj.isVisible = true &nbsp; &nbsp; &nbsp; &nbsp; local px,py = event.x-proj.x, event.y-proj.y &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj:applyLinearImpulse( px/8, py/8, proj.x, proj.y ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj:applyTorque( 50 ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj.gravityScale = -7 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj.collision = projCollide ; proj:addEventListener( "collision", proj ) &nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;if (projFiring == true) then &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newProj() &nbsp;&nbsp;&nbsp;&nbsp;end end newProj() background:addEventListener( "touch", touchAction ) --------------------------------------------------------------------------------------------------------------- --NEED TO PUT LOCAL GROUP AFTER X AND Y COORDINATES, SO I HAVE TO REWRITE THE FUNCTION ---------------------------------------------------------------------------------------------------------------z &nbsp;function spawnEnemy() &nbsp;&nbsp;&nbsp;&nbsp;local enemyBalloon = display.newImage("Balloon.png") physics.addBody(enemyBalloon,"dynamic", physicsData:get("balloon") ) enemyBalloon:setFillColor( 214, 0, 19 ) enemyBalloon:applyTorque( 50 ) enemyBalloon.x = math.random(0,320) enemyBalloon.y = -60 localGroup:insert(enemyBalloon) end local spawnTmr local spawnTime = 5000 local difficultyLevels = 4 --local spawnTimer = timer.performWithDelay(5000,spawnEnemy, 0 )---- THIS IS AN &nbsp;INFINITE LOOP HARRY ,U MUST YOU'SE THIS A LOT local function increaseDifficulty() &nbsp; &nbsp; &nbsp; &nbsp; if spawnTmr ~= nil then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timer.cancel(spawnTmr) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; spawnTmr = nil &nbsp; &nbsp; &nbsp; &nbsp; end &nbsp; &nbsp; &nbsp; &nbsp;spawnTime = spawnTime - 250 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- just to be safe, set this to whatever spawn rate would be the &nbsp; &nbsp; &nbsp; &nbsp;-- fastest, so game never spawns to fast &nbsp; &nbsp; &nbsp; &nbsp;if spawnTime \< 250 then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;spawnTime = 250 &nbsp; &nbsp; &nbsp; &nbsp;end &nbsp; &nbsp; &nbsp; &nbsp;-- spawn at this rate until this timer is canceled&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;spawnTmr = &nbsp;timer.performWithDelay(spawnTime,spawnEnemy, 0) &nbsp; &nbsp; end &nbsp; &nbsp; -- this timer loops only till spawning at most difficult speed is reached &nbsp; &nbsp; local difficultyTmr = &nbsp;timer.performWithDelay(5000, increaseDifficulty,difficultyLevels ) return localGroup &nbsp;&nbsp;&nbsp;&nbsp; end &nbsp;

Have you checked the path for Balloon.png?  Is the capitalization correct?

the capitalization  is correct. i have tried creating two balloon  image names for instance “balloon.png” and “balloon2.png”

What is line 202 of Game.lua?

Have you checked the path for Balloon.png?  Is the capitalization correct?

the capitalization  is correct. i have tried creating two balloon  image names for instance “balloon.png” and “balloon2.png”

What is line 202 of Game.lua?