RPG Maker MV/MZ: Projectile System
FEATURES
- Pixel based projectiles
- Animated bullets
- Explosion projectile effect
- Skill linking
- Enemy Item Map Drops
- Map Enemies (Separate from events) complete with random behavior (if set)
- Hit Tags
- Hit Priorities
- Follower AI (Basic)
- Follower Projectiles
- Map Enemy AI (Basic)
- Event Projectiles
- Projectile Deflection
- Custom projectile path creation
- Mouse targeting
- Supports attacks mainly. Healing is possible but not for allies via projectiles.
- Crosshair configuration
- Map UI configuration
- Keyboard/Native gamepad support
- Ammo System
If using a gamepad, please see this plugin for second axis setup
As of v1.3, you can setup a crosshair graphic to show on screen:
- Cold File is the graphic used when the crosshair is not over any event/map enemy
- Hot File is the graphic used when the crosshair is over any event/map enemy
- Move Speed is used for the keyboard/gamepad control setup.
- Max Distance is the maximum distance of the crosshair from the player. It is a circular range
- Keyboard and Gamepad controls use keycodes. The values here will override RPG Maker default values.
Default RPG Maker Keycodes used: 9, 13, 16, 17, 18, 27, 32, 33, 34, 37, 38, 39, 40, 45, 81, 87, 88, 90, 96, 98, 100, 102, 104, 120
Default RPG Maker Gamepad code used: 0, 1, 2, 3, 4, 5, 12, 13, 14, 15
To get started, first observe these plugin parameters:
- Projectile Configuration is used to setup the projectile groups. It is important that each projectile configuration has a UNIQUE name.
- Enemy Configuration is linked to the database for enemy stats and traits whereas in the plugin parameters, you configure the enemy map graphics and behavior.
- Map Enemy Configuration is used to setup the maps in which the enemies will spawn on. If not configured, map enemies will not spawn.
- Max Knockback Range refers to the range of knockback if 100% HP damage is done. If 10% HP damage is done, the range will be 1 if the max range is 10.
Special note should be made that you must tag the map with the note tag:
- <Projectile Map>
To enable the player to use projectiles.
A basic setup can get you something like the above.
Map enemies will move into range of the nearest (player or follower) and release projectile.
If player or follower moves within range of the map enemy, that can also act as a trigger.
You can set the projectiles the enemy will use in the parameters. The name used is the projectile configuration group name as shown below.
- Please ensure the UNIQUE name remains unique.
- Projectiles refer to the actual projectiles released.
- Cooldown is a global projectile use time in frames before projectile can be used again.
- MP Cost is the number of MP for projectile use.
- Deflection Duration is projectile invincibility for the time in frames.
Be wary in that the knockback can cause enemy to fly into an attackable area. When the map enemy is defeated, they disappear:
It would be rather boring to have single line bullet projectiles and as such, it is possible to make explosions, homing projectiles, wavy movement, etc
On impact, projectile explodes with reference to the projectile groups listed in each projectile in the group:
Move configuration is a complex array setup that allows for custom move paths
- Linear is a forced global direction without regard for angle settings.
- Angular will apply a rotation to the projectile.
- Scalar will resize the projectile.
- Direction will apply movement in current angle direction.
- Centric will apply movement centered on the user.
- Target will apply movement that goes towards the projectile target.
- Default is self-explanatory.
Please keep in mind that on-contact targeting will not work unless you have set the custom projectile move path to end at the clicked destination. Set the projectile collider type to "In-Transit" (value = 1) for a better experience.
Also, Set the "Ignore Target" parameter to true as well to allow for the full projectile motion regardless of click location.
Example Custom Setups Include:
Setup Data:
- Type: Angular, Wait: true, Wait Duration: 1, Angular: 1.571
- Type: Direction, Wait: true, Wait Duration: 45
- Type: Angular, Wait: true, Wait Duration: 1, Angular: -3.143
- Type: Direction, Wait: true, Wait Duration: 45
Setup Data:
- Type: Angular, Wait: true, Wait Duration: 1, Angular: 0.785
- Type: Direction, Wait: true, Wait Duration: 24, Speed: 6
- Type: Angular, Wait: true, Wait Duration: 1, Angular: -1.571
- Type: Direction, Wait: true, Wait Duration: 24, Speed: 6
- Type: Angular, Wait: true, Wait Duration: 1, Angular: 0.785
Setup Data:
- Type: Centric, Wait: true, Wait Duration: 60, Speed: 6, Centric: 0.1
Some projectile parameter setup explanations:
- Graphic is the project appearance on spawn. If you are using a projectile that requires a pointing direction, please ensure that the graphic is made with the direction facing towards the right. Graphic Impact works the same way in that it is used when the projectile contact life is consumed.
- Graphic Frames refers to the number of animation images on the graphic itself.
- Graphic Frame Rate will determine how fast those graphics frames will update. Higher value = Slower speed
Example single frame graphic. Used in the demo project for initial projectile graphic.
Example three (3) frame graphic. Used in the demo project for impact graphic.
The graphic used is important for calculating hit area of the projectile/impact area. Please minimize empty space when creating projectile graphics.
- Skill linked is the database skill used for projectile damage formula.
- Apply States will force apply states on the battler.
- Knockback Range allows for forcing a max range of knockback as well as forcing a minimum knockback range.
- Angle will apply (additionally) an angle to the initial direction angle. The value is read in Radians.
- Speed is the rate at which distance is covered on screen for default movement.
- Radius is the base hit area of the projectile and is used in certain custom movements.
- Duration is how long the projectile will last before expiring into impact
- Impact Duration is how long the impact area will last.
- Contact Life refers to the number of times the projectile can "hit" before it expires
- Ignore target will ignore the screen coordinates used to the destination to force expire the projectile
- Spawn Animation plays an animation on the projectile when it is spawned.
- Contact Type may be on impact (0) or during transit and on impact (1)
- Homing Projectile will have the projectile continuously follow the target until it expires into impact
- Collider refers to the calculation bounds of contact.
- Hit Priorities if empty will hit all events/map enemies regardless of set priority type. Otherwise, it will hit only those that are included in the list.
- Deflect Collide will allow the projectile to "Bounce" off of the contact target
- Explode Collide is a list of projectile groups to "Unleash" on contact.
- Hit Tags if empty will be ignored. Otherwise, it will only make contact with map enemies and events which have matching hit tags.
- Move Configuration allows for setup of custom move path.
Deflecting projectiles is fun.
Purchase
In order to download this tool you must purchase it at or above the minimum price of $25 USD. You will get access to the following files:
Development log
- v1.1.2 - BLARGHABAGARAG3 days ago
- v1.1.1 - Suction, Knockback and Some stuff6 days ago
- v1.0.9 - A whole lotta junk18 days ago
- v1.0.8 - Parabolics32 days ago
- v1.0.7 - Minor stuff95 days ago
- v1.0.6 - Tile B,C,D,E Jump oversAug 12, 2024
- v1.0.5 - Some more jumping stuff + a minor adjustmentAug 12, 2024
- v1.0.4 - Collider issuesAug 11, 2024