ParticleProjectileApi
🟡 Updated this year🖼️ Gallery (1 images)
🔍 Analysis
- 🏆 #959 of 1224 bukkit mods in this game by downloads
📋 About This Mod
<h2> Description</h2> <hr /> <p>This API is designed to allow plugin developers to easily add customized particle projectiles, hence the name. ParticleProjectileApi comes with its own event classes giving the developer a way to cancel an effect when a particle hits, this is quite useful in say mini-games to prevent friendly-fire. It is completely possible to create multiple projectile classes and is encouraged too. When extending the ParticleProjectile class, the developer will be met with five methods: OnHit, OnHitBlock, OnHitEntity, OnPenetrateBlock, OnPenetrateEntity, and OnMove. These methods allow for adding code to run when a projectile hits, passes through something, or moves.</p> <h2>Features</h2> <hr /> <ul> <li>method to launch particles (No packets used)</li> <li>Custom events that can be canceled</li> <li>Create multiple projectile classes for different effects</li> <li>More to come!</li> </ul> <h2>Usage</h2> <hr /> <h3>MyProjectile.class</h3> <div class="spoiler"> <pre class="codeStyle">package com.aim.coltonjgriswold.projectiles; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.Damageable; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import com.aim.coltonjgriswold.api.ParticleProjectile; public class MyProjectile extends ParticleProjectile { public MyProjectile() { super(Particle.REDSTONE, 0.1, 7.5, 20.0 , 128.0); setColor(ParticleColor.fromRGB(255, 0, 0)); //Initialize a projectile with a color of red, a hitbox with size 0.1 cubed, Mass of 7.5 grams, speed of 20.0 meters/second, max distance of 128 meters } @Override public void OnLaunch(LivingEntity who, Location start) { //Do something when launch } @Override public void OnHit(LivingEntity who, Location end) { //Do something when reach max distance } @Override public void OnHitBlock(LivingEntity who, Location end, Block what) { //Do something when hit block } @Override public void OnHitEntity(LivingEntity who, Location end, Entity what) { //Do something when hit entity } @Override public void OnPenetrateBlock(LivingEntity who, Location where, Block what) { //Do something when passing through a block } @Override public void OnPenetrateEntity(LivingEntity who, Location where, Entity what) { //Do something when passing through an entity } public void OnMove(Location previous, Location current, double step) { //Do something when the the particle moves } } </pre> </div> <div class="spoiler"> <pre class="codeStyle">package com.aim.coltonjgriswold; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.util.Vector; import com.aim.coltonjgriswold.api.utilities.ParticleColor; import com.aim.coltonjgriswold.projectiles.MyProjectile; public class MyPlugin extends JavaPlugin implements Listener { MyProjectile projectile; public void onEnable() { getServer().getPluginManager().registerEvents(this, this); projectile = new MyProjectile(); } public void onDisable() { } @EventHandler public void oninteract(PlayerInteractEvent event) { Material item = event.getPlayer().getInventory().getItemInMainHand().getType(); if (item == Material.STICK) { //launch MyProjectile with physics turned on projectile.launch(event.getPlayer(), true); } } }</pre> </div> <h2>Example Plugin Utilizing ParticleProjectileApi & Javadocs</h2> <hr /> <p>Javadocs: <a href="https://coltonj96.github.io/">ParticleProjectileApi<br /></a></p> <p>Example plugin:<br /><iframe allowfullscreen="allowfullscreen" src="https://www.youtube.com/embed/dV9iV70-Ch8?wmode=transparent" height="358" width="638"></iframe></p> <p> </p> <h2 id="w-source">Affiliates</h2> <p>Thinking about getting a dedicated server? Try Kinetic hosting!<br />Save 15% on your first month by using code 'UberDiscount' at checkout!<br />Click the link below to get started now!<br /><br /></p> <p> </p> <p><strong><a href="https://billing.kinetichosting.net/aff.php?aff=340">https://billing.kinetichosting.net/aff.php?aff=340</a></strong></p>
Description
This API is designed to allow plugin developers to easily add customized particle projectiles, hence the name. ParticleProjectileApi comes with its own event classes giving the developer a way to cancel an effect when a particle hits, this is quite useful in say mini-games to prevent friendly-fire. It is completely possible to create multiple projectile classes and is encouraged too. When extending the ParticleProjectile class, the developer will be met with five methods: OnHit, OnHitBlock, OnHitEntity, OnPenetrateBlock, OnPenetrateEntity, and OnMove. These methods allow for adding code to run when a projectile hits, passes through something, or moves.
Features
- method to launch particles (No packets used)
- Custom events that can be canceled
- Create multiple projectile classes for different effects
- More to come!
Usage
MyProjectile.class
package com.aim.coltonjgriswold.projectiles;import org.bukkit. Location; import org.bukkit.block. Block; import org.bukkit.entity. Damageable; import org.bukkit.entity. Entity; import org.bukkit.entity. Player;
import com.aim.coltonjgriswold.api. ParticleProjectile;
public class MyProjectile extends ParticleProjectile {
public MyProjectile() { super(Particle. REDSTONE, 0. 1, 7. 5, 20. 0 , 128. 0); setColor(ParticleColor.fromRGB(255, 0, 0)); //Initialize a projectile with a color of red, a hitbox with size 0. 1 cubed, Mass of 7. 5 grams, speed of 20. 0 meters/second, max distance of 128 meters }
@Override public void OnLaunch(LivingEntity who, Location start) { //Do something when launch }
@Override public void OnHit(LivingEntity who, Location end) { //Do something when reach max distance }
@Override public void OnHitBlock(LivingEntity who, Location end, Block what) { //Do something when hit block }
@Override public void OnHitEntity(LivingEntity who, Location end, Entity what) { //Do something when hit entity }
@Override public void OnPenetrateBlock(LivingEntity who, Location where, Block what) { //Do something when passing through a block }
@Override public void OnPenetrateEntity(LivingEntity who, Location where, Entity what) { //Do something when passing through an entity }
public void OnMove(Location previous, Location current, double step) { //Do something when the the particle moves } }
package com.aim.coltonjgriswold; import org.bukkit. Material; import org.bukkit.event. EventHandler; import org.bukkit.event. Listener; import org.bukkit.event.player. PlayerInteractEvent; import org.bukkit.plugin.java. JavaPlugin; import org.bukkit.util. Vector;import com.aim.coltonjgriswold.api.utilities. ParticleColor; import com.aim.coltonjgriswold.projectiles. MyProjectile;
public class MyPlugin extends JavaPlugin implements Listener {
MyProjectile projectile; public void onEnable() { getServer().getPluginManager().registerEvents(this, this); projectile = new MyProjectile(); }
public void onDisable() {
} @EventHandler public void oninteract(PlayerInteractEvent event) { Material item = event.getPlayer().getInventory().getItemInMainHand().getType(); if (item == Material. STICK) { //launch MyProjectile with physics turned on projectile.launch(event.getPlayer(), true); } } }
Example Plugin Utilizing ParticleProjectileApi & Javadocs
Javadocs: ParticleProjectileApi
Example plugin:
Affiliates
Thinking about getting a dedicated server? Try Kinetic hosting! Save 15% on your first month by using code 'UberDiscount' at checkout! Click the link below to get started now!
📊 Mod Details
- Game
- Minecraft Plugins
- Author
- coltonj96
- Version
- 0.2.4
- Downloads
- 92
- Endorsements
- 0
- Category
- bukkit
- Created
- 9/17/2025
- Updated
- 6/8/2026
- Game Versions
- 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4
- Tags
- game-mechanics, library, utility
🔧 How to Install Minecraft Plugins Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
📖 Full step-by-step install guide for Minecraft Plugins →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Plugins commands, item IDs, and more.
❓ Frequently Asked Questions
Which Minecraft Plugins versions does ParticleProjectileApi support?
The author lists 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5. Other versions may work but are untested by the author.
What is the latest version of ParticleProjectileApi?
Version 0.2.4, published 2026-06-08 with 92 downloads recorded at the source.
Keep browsing — more Minecraft Plugins mods await
