Using Projectile Blueprints

ProjectileBlueprints are the desing models of your Projectiles. They serve as data containers used by the AP engine to create the real-time, in-game Projectile Objects.

Projectile Blueprints are custom Godot Resources, so treat them as they were Textures or Materials.


Creating Projectile Blueprints

Inside any folder off your File System Dock, right click and select Create New Resource and search for ProjectileBlueprint2D.

Once created, drag and drop it into your ProjectileCaller2D Resources array.

Now you have a simple way to alter the behavior and properties of your Projectiles.


Creating an Area Projectile

By default, all ProjectileBlueprint2D are set to create Area Projectiles. Area Projectiles are the most basic type of projectiles; they are created, processed and manipulated entirely through the PhysicServer2D and are batch drawn by the ProjectileProcessor2D.

Area Projectiles are extremely performance efficient but are restricted to a single Texture2D.


To create an Area Projectile, simply create a standard ProjectileBlueprint2D and set its Texture.

Here you can see the result, continuing on from our previous project.

You can download the used arrow texture here.


Creating an Instantiated Projectile

InstancedProjectile2Ds are instanced copies of your given Scenes. These contain all their original components and scripts, but follow the rules of normal projectiles.

InstancedProjectile2Ds are more performance intensive that AreaProjectile2Ds but not significantly.


To create an InstancedProjectile2D you first need to create the Scene that you want to use as a Projectile. A basic Node2D with a Sprite2D child will do the job.

Now this is important, all your InstancedProjectile2D scenes must have a mandatory Area2D component. Once again, this requirement is mandatory so your instanced projectiles can work properly.

Add an Area2D node as a child of your projectile along with its CollisionShape. Remember his name because we will use it later.

Now that we have our Scene to instantiate as a projectile simply create a standard ProjectileBlueprint2D, change its type to Instantiated and assign the Scene as its Instance.

Your projectile Collision Path must match the name of the Area2D component on your projectile Scene.

Here you can see the result, once again, continuing on from our previous project.