Below is a basic Rising World Unity plugin example that lets a player throw fireballs which can damage NPCs and destroy terrain blocks. This assumes the Rising World Unity Java plugin API (same structure as other RW plugins). It works like this: Player types /fireball A fireball projectile spawns in front of the player It flies forward On impact it: destroys terrain blocks in a small radius damages nearby NPCs Rising World Unity Fireball Plugin package fireballplugin; import net.risingworld.api.Plugin; import net.risingworld.api.Server; import net.risingworld.api.World; import net.risingworld.api.Player; import net.risingworld.api.objects.Npc; import net.risingworld.api.utils.Vector3f; import net.risingworld.api.Timer; import java.util.List; public class FireballPlugin extends Plugin { @Override public void onEnable() { System.out.println("Fireball Plugin Loaded"); } @Override public void onPlayerCommand(Player player, String command, String[] args) { if (command.equalsIgnoreCase("fireball")) { Vector3f pos = player.getPosition(); Vector3f dir = player.getViewDirection(); spawnFireball(player, pos, dir); } } public void spawnFireball(Player player, Vector3f pos, Vector3f dir) { final Vector3f fireballPos = new Vector3f( pos.x + dir.x * 2, pos.y + 1.5f, pos.z + dir.z * 2 ); final Vector3f velocity = new Vector3f( dir.x * 0.6f, dir.y * 0.6f, dir.z * 0.6f ); Timer timer = new Timer(50, true, () -> { fireballPos.x += velocity.x; fireballPos.y += velocity.y; fireballPos.z += velocity.z; checkImpact(player, fireballPos); }); timer.start(); } private void checkImpact(Player player, Vector3f pos) { World world = getServer().getWorld(); int x = Math.round(pos.x); int y = Math.round(pos.y); int z = Math.round(pos.z); int block = world.getBlock(x, y, z); if (block != 0) { explode(player, pos); } } private void explode(Player player, Vector3f pos) { World world = getServer().getWorld(); int radius = 3; for (int x = -radius; x <= radius; x++) { for (int y = -radius; y <= radius; y++) { for (int z = -radius; z <= radius; z++) { world.setBlock( (int)pos.x + x, (int)pos.y + y, (int)pos.z + z, 0 ); } } } List npcs = world.getNpcs(); for (Npc npc : npcs) { if (npc.getPosition().distance(pos) < 5) { npc.damage(50); } } player.sendTextMessage("Fireball exploded!"); } } plugin.yml name: FireballPlugin version: 1.0 main: fireballplugin.FireballPlugin author: YourName How to Install Create a plugin folder: /plugins/FireballPlugin/ Compile the Java file Put the compiled .jar inside the plugin folder Restart the server In-game type: /fireball What This Plugin Currently Does ✔ Player can cast fireballs ✔ Fireball travels forward ✔ Breaks terrain blocks ✔ Damages NPCs ✔ Explosion radius