Shop Forum More Submit  Join Login
Newest updates:
5/8: New attachments and other items, bugfixes
4/20: Save to script feature added
3/11: A bunch more attachments; updated icons; inputs/outputs now have labels on mouseover
3/9: Frisbee, rocket attachment, and motor attachment added; 'Circuits' folder renamed 'Connectors', reorganized
3/4: Barrel behavior enhanced.

Here is what is essentially the beta version of IB2. I am releasing it under this different name just so it doesn't attract too much attention for the time being.


--Press up/down/left/right to move camera, +/- to zoom in/out.

--About FIRE-- right now the only way to light things on fire is to select the Circle item and move its temperature slider past 200 degrees. It will then appear on the stage hot and on fire. It can, however, catch other objects on fire (if they are flammable) and more generally transfer its heat.

--About CIRCUITS--check out this video where I explain them and show what you can do... [link]

--(for script creators/editors) The built-in scripts (the ones whose ID's begin with '!' are automatically reset each time the game runs. To edit these items I'd suggest copying their scripts over to a new item and editing them from there. This way it will save correctly.

Any other questions, please ask! And all suggestions/comments are welcome--that's why I am posting this after all!

And if you really want to go above and beyond, I'd love to see user created weapons and other items made with scripting--if they are good enough I will include them in the final game for sure (along with proper credit of course, though unfortunately I have no ability to compensate script developers monetarily at this point).

If you have any questions about scripting please ask, although my best advice is to look at all the scripts of the built-in items to see how they work, maybe copy their scripts over to a new item and do some tweaking to see what can be done. Then if you are ready, try to tackle a new item.

At this point there is no help or official API reference, but the in-game autocompletion should be a big help for identifying the available functions. Feel free to ask me about any of them.
Add a Comment:
Matigol9000SuperMMOS Featured By Owner Apr 21, 2017  Professional Digital Artist
i like this game
Matigol9000SuperMMOS Featured By Owner Apr 10, 2017  Professional Digital Artist
can save this game in ZIP Pack, please?
BIEL23Y Featured By Owner Jan 30, 2017
Men in Black Men in Black 
BIEL23Y Featured By Owner Jan 30, 2017
IRAwarrior Featured By Owner Mar 27, 2016  Hobbyist General Artist
LandMine Tower Challenge! How many landmines can you stack before they explode? My record is 29.
SonicTheHedgeTrimmer Featured By Owner Jan 24, 2016  Hobbyist Filmographer
Nice engine, could pave way for lots of stuff
foxythebabyfoxy Featured By Owner Mar 7, 2015
BARRELSBarrel Side Barrel Side Barrel Side Barrel Side Barrel Side Barrel Side Barrel Side Barrel Side Barrel Side Barrel Side 
IRAwarrior Featured By Owner Mar 3, 2015  Hobbyist General Artist
I made a tower of land mines, and with 20 full powered gravity vortex, they can't fall or explode! XD
Hidden by Commenter
latestset Featured By Owner Oct 12, 2013
AnaPegasusX Featured By Owner Dec 27, 2012
how "user avatar" works?
Kfir40Art Featured By Owner Oct 26, 2012
You should program the shop to ACTUALLY work!
mario1423 Featured By Owner Oct 6, 2012
how do you make stuff true/false
Snowfall-The-Cat Featured By Owner Sep 9, 2012  Hobbyist General Artist
i love it i just hope in the future buddy doesn't keep falling down the endless pit. xD

lot's of work to go. good luck!
MMDgirl33 Featured By Owner Jun 29, 2012  Student Artist
Neo909 Featured By Owner Jun 18, 2012  Student General Artist
i love it
pielover88888 Featured By Owner Jun 4, 2012
umm we're screwed if he doesn't update this..
Army-of-Zero Featured By Owner Jun 9, 2012  Student General Artist
heh heh, no kidding
mattcloud0414 Featured By Owner May 24, 2012
umm please put some lever and lever
mattcloud0414 Featured By Owner May 24, 2012
This needs many things! like a buddy,store!
Cougar200 Featured By Owner May 20, 2012  Hobbyist General Artist
i just like seeing thing explode XD
Kfir40Art Featured By Owner Apr 9, 2012
The shop is also broken. No, it's empty. add some stuff to the store!
mario1423 Featured By Owner Oct 6, 2012
maby if u tell du arther dat
Kfir40Art Featured By Owner Apr 9, 2012
The object spawner object menu is broken.
Army-of-Zero Featured By Owner Mar 15, 2012  Student General Artist
i managed to make aremote controll rocket out ofwelding together a bunch of user avitars!
thesuitman Featured By Owner Mar 8, 2012  Hobbyist
IceyZomby Featured By Owner Feb 23, 2012
Joshinatorky Featured By Owner Jan 4, 2012
You should upload this to Kongregate. My friends love this game. Kong would give you a bit of money I think for the number of plays you get and there is a similar game to this that is one of the top rated games (Mutilate a Doll). Best part is that you can update it even after you upload it. Anyway at least let me know if you might do so in the future. Lol that way if you aren't I won't be anxious for it to happen XD Been waiting for almost a year! lol.
Joshinatorky Featured By Owner Jan 4, 2012
The reason I keep insisting on you doing this cause I feel like this doesn't get enough attention or praise and I know if you uploaded this to Kongregate you would get a great score right from the beginning and also lots and LOTS of feedback... D: please don't make me beg...
Forzatoadx Featured By Owner Jan 9, 2012
Did you read the description? He EXPLICITELY says that he doesn't want it to get attention for now.
Ikillnukes Featured By Owner Dec 3, 2011
I want create a game...
Darksamus101 Featured By Owner Nov 29, 2011
I felt like an evil genius when I got circuits down! You know, using a light switch to make something explode. :evillaugh: I love this game!
DudeDude2211 Featured By Owner Sep 25, 2011
I made a script for super explosion and missile. here is explosion:


(copyBitmapToData (new utils.AssetManager.ICON_Explosion) meta.icon)

(uiExpressOpen meta.panel)
(new UILabel "Intensity:")(uiNewLine)
(set slider:UIFloatSlider (new UIFloatSlider 0 5 1))


(set explode:ib2.ibParticleGeneratorProperties (new ib2.ibParticleGeneratorProperties))
(set explode.gravity_multiplier_base 0)
(set explode.use_radial_coords true)
(set explode.xv_dv_base 0)
(set explode.yv_rv_base 0)
(set explode.xv_dv_random 0)
(set explode.yv_rv_random 0)
(set explode.life_base .2)
(set explode.life_random .1)
(set explode.blends (new Array null))
(set explode.blendProbabilities (new Array 1))
(set explode.period .01)
(set explode.s_base 0)
(set explode.s_random 0)
(set explode.sv_base 0)
(set explode.r_random 360)
(set explode.rv_random 100)
(set explode.maxParticles 1)
(set explode.custom_disp_obj (new Array utils.AssetManager.PNG_Explode1 utils.AssetManager.PNG_Explode2 utils.AssetManager.PNG_Explode3))
(set explode.custom_disp_obj_probabilities (new Array 1 1 1))
(set explode.custom_disp_obj_x -100)
(set explode.custom_disp_obj_y -100)

(set explode2:ib2.ibParticleGeneratorProperties (explode.copy))
(set explode2.custom_disp_obj (new Array utils.AssetManager.PNG_Explode1 utils.AssetManager.PNG_Explode2 utils.AssetManager.PNG_Explode3))
(set explode2.custom_disp_obj_probabilities (new Array 1 1 1))
(set explode2.blends (new Array flash.BlendMode.NORMAL))
(set explode2.s_base (* 6 .06))
(set explode2.sv_base 590)
(set explode2.sv_random 100)
(set explode2.fadeout_time .35)
(set explode2.fadein_time .03)
(set explode2.sv_drag .0001)
(set explode2.maxParticles 2)
(set explode2.period .075)
(set explode2.renderThermal true)

(set explode3:ib2.ibParticleGeneratorProperties (explode2.copy))
(set explode3.custom_disp_obj (new Array utils.AssetManager.PNG_ExplodeLight1 utils.AssetManager.PNG_ExplodeLight2 utils.AssetManager.PNG_ExplodeLight3))
(set explode3.custom_disp_obj_probabilities (new Array 1 1 1))
(set explode3.blends (new Array flash.BlendMode.ADD))
(set explode3.s_base (* 6 .06))
(set explode3.sv_base 150)
(set explode3.sv_random 20)
(set explode3.sv_drag .001)
(set explode3.maxParticles 1)
(set explode3.start_delay .12)

(set explode4:ib2.ibParticleGeneratorProperties (explode2.copy))
(set explode4.maxParticles 1)
(set explode4.start_delay .00000001)

(set globalData.explosionParticleFGProps explode3)
(set globalData.explosionParticleBGProps explode2)
(set globalData.explosionParticleLoFiProps explode4)

(set global.Explosion (bound x y intensity callback entity (exec
(if (== null intensity) (set intensity 1))
(set ointensity intensity)
(set intensity (Math.sqrt intensity))
(if (> (ui.getActualFramerate) 30) (exec

(set globalData.explosionParticleBGProps.s_base (* intensity 10))
(set globalData.explosionParticleFGProps.s_base (* intensity 60))
(set this.gen1:ParticleGenerator (new ParticleGenerator x y globalData.explosionParticleBGProps))
(set this.gen2:ParticleGenerator (new ParticleGenerator x y globalData.explosionParticleFGProps))
) (exec
(set globalData.explosionParticleLoFiProps.s_base (* intensity 10.5))(set globalData.explosionParticleSmokeLoFiProps.yv_rv_random (* intensity 800))
(set this.gen2:ParticleGenerator (new ParticleGenerator x y globalData.explosionParticleLoFiProps))
(stage.message "shockwave" (new Array x y ointensity ointensity callback entity))
(set soundClass utils.AssetManager.MP3_BlastCloseEighthSpeed)
(if (> ui.gamespeed .15)(set soundClass utils.AssetManager.MP3_BlastCloseQuarterSpeed))
(if (> ui.gamespeed .35)(set soundClass utils.AssetManager.MP3_BlastCloseHalfSpeed))
(if (> ui.gamespeed .75)(set soundClass utils.AssetManager.MP3_BlastClose))
(set soundClass2 utils.AssetManager.MP3_BlastMediumEighthSpeed)
(if (> ui.gamespeed .15)(set soundClass2 utils.AssetManager.MP3_BlastMediumQuarterSpeed))
(if (> ui.gamespeed .35)(set soundClass2 utils.AssetManager.MP3_BlastMediumHalfSpeed))
(if (> ui.gamespeed .75)(set soundClass2 utils.AssetManager.MP3_BlastMedium))
(stage.message "playSound" (new Array (new soundClass) (* .5 ointensity) true x y (new soundClass2)))
(set makeExplosion (bound x y (exec

(set p (stage.newBlankEntity))
(p.addModule (new ib2.ibTimeEvents))
(p.addModule (new ib2.ibPositionManager x y 0))
(p.addModule (new ib2.ibPointsListener))
(p.addModule (new ib2.ibLifeLimiter 1.0))
(p.message "addPoints" (new Array (* 9 (this.slider.getValue))))
(set e (new Explosion x y (this.slider.getValue)))
(new templates.Drop meta.hook makeExplosion false)
(new templates.AddToGlobalGroupOnPurchase meta.hook "spawnFunctions" "Explosion" makeExplosion)

Here is Missile:


(copyBitmapToData (new utils.AssetManager.ICON_Missile) meta.icon)

(set globalData.missileScript (script (

(set hit (func contactInfo:box2d.b2Contact direction manifold impulseData:box2d.b2ContactImpulse (exec
(if (! this.dead) (exec
(set this.dead true)
(set p (this.entity.request "getPos"))
(new Explosion p.x p.y
(this.entity.message "doNextFrame" (new Array this.entity.shutdown))
(set fix contactInfo.m_fixtureB)
(set node (entity.request "impulseListener" (new Array 80 hit true)))
(set node2 (entity.registerListener "detonate" hit))

(set bpv:VectorNumber (new VectorNumber))
(bpv.push 2.5)(bpv.push -30)
(bpv.push 0)(bpv.push -31)
(bpv.push 2.5)(bpv.push -30)
(bpv.push 3)(bpv.push 10)
(bpv.push 3)(bpv.push 30)
(bpv.push -3)(bpv.push 390)
(bpv.push -3)(bpv.push 10)
(for (set i 0) (< i bpv.length) (set i (+ i 1)) (set bpv[i] (* bpv[i] 2)))

(set global.globalData.missileVertices bpv)

(set global.Missile (bound x y r v p blast (exec
(if (== r null) (set r 0))
(if (== v null) (set v 0))
(if (== p null) (set p 30))
(if (== blast null) (set blast 6.0))
(set this._entity (stage.newBlankEntity))
(this._entity.addModule (new ib2.ibSimplePoly x y r globalData.missileVertices 6))
(this._entity.addModule (new ib2.ibBodyHelperSet))
(this._entity.addModule (new ib2.ibFadeSet .1))
(set graph (new utils.AssetManager.PNG_Missile))
(this._entity.addModule (new ib2.ibDisplayObjectDrawer graph -15 -30 (* 60 .005)))
(this._entity.message Messages.REDRAW_SPRITE)
(this._entity.message Messages.UPDATE_SPRITE)
(this._entity.addModule (new ib2.ibTemperatureControl))
(this._entity.addModule (new ib2.ibContactEvents))
(this._entity.addModule (new ib2.ibScriptComponent globalData.missileScript))
(this._entity.addModule (new ib2.ibPropulsion 0 p))
(set p)
(set v2:box2d.V2 (new box2d.V2 0 (- 0 v)))
(v2.rotate r)
(this._entity.message "setXYVelV2" (new Array v2))
(set blast)

(set fuse)
(set (utils.getUniqueName))
(this._entity.manageListener "toScript" (func (exec
(set s (utils.formatSimpleConstructor
(this.this._entity.request "getX")
(this.this._entity.request "getY")
(this.this._entity.request "getR")
(set out (+++ "(set " " " s ")"))
(if (set out (+++ out "\n(" ".pullPin)")))
(set out (+++ out "\n" (utils.specialStateConversion this.this._entity)))

( this)
(set global.Missile.prototype (new PhysEntity))
(set global.Missile.prototype.constructor Missile)
(set global.Missile.prototype.detonate (bound (this._entity.message "detonate")))

(set launch (bound x y (exec
(this.meta.hook.message "timeListener" (new Array .3 this.makeMissile (this.numSlider.getValue)))
(set makeMissileMouse (func (exec
(set x (getWorldMouseX))
(set y (getWorldMouseY))
(set tx (+ x (* 600 (- (Math.random) .5))))
(set ty (- y 600))
(set diff (new box2d.V2 (- tx x) (- ty y)))
(set r (diff.angle))
(set missile:Missile (new Missile tx ty (- r (/ Math.PI 2)) 3500))
(set makeMissile (func x y r (exec
(set missile:Missile (new Missile x y r 0))
(set makeOutline (bound (exec
(set sprite (new flash.Sprite))
( 0xFFFFFF .2)
( 0 0 10)
(new SimpleGraphic sprite)

(uiExpressOpen meta.panel)
(new UILabel "Click to launch missile.")

(new templates.Drop meta.hook makeMissileMouse false)
(new templates.AddToGlobalGroupOnPurchase meta.hook "spawnDirectedFunctions" "Missile" makeMissile)
JaydenMontoya9899 Featured By Owner Dec 5, 2012
Crashes if used 3 times... :(
DudeDude2211 Featured By Owner Sep 20, 2011
I cant find rocket and i made the water more AWESOME
DudeDude2211 Featured By Owner Sep 19, 2011
DudeDude2211 Featured By Owner Sep 19, 2011
ADENED298498JEW Featured By Owner Sep 17, 2011
The rocket attachment=Omfg Its a flying mine!
Realsmmk Featured By Owner Sep 10, 2011  Hobbyist Digital Artist
How do i select the circle item after i spawn it, the select tool only buts a red outline on it and gives me the option to delete it. I cant find a temperature slider?
Army-of-Zero Featured By Owner Mar 15, 2012  Student General Artist
after selecting you change the tool to the move tool to move it, if you want to change the temp then put temp atatchment on it then put something that outputs a number of your choosing in the game the conect the two
giftedgrrl Featured By Owner Sep 2, 2011   Interface Designer
i am ok at computer stuff but this confused me :-( maybe tile make more sense when its finished but all i could do was throw base balls every where :-( it looks cool but confusing
unknown8900 Featured By Owner Aug 21, 2011  Student General Artist
Found a bug. when you put alot of line connectors in one thing, it just goes crazy.
Tha1337er Featured By Owner Aug 18, 2011  Hobbyist Digital Artist
in the finished version you should be able to script your buddy to do objective like things like tag a barrel and escape an exploding shaft or something
Realsmmk Featured By Owner Aug 17, 2011  Hobbyist Digital Artist
never mind
Realsmmk Featured By Owner Aug 17, 2011  Hobbyist Digital Artist
It will not let me delete things.
SirSaltiness Featured By Owner Aug 10, 2011  Hobbyist Digital Artist
lightthehedgefox Featured By Owner Aug 7, 2011
Add a Comment:


Submitted on
March 3, 2010
Image Size
3.4 MB


119,173 (2 today)
302 (who?)