You can do it in PlayerMoveEvent by obtaining the player's coordinates public function onParticle(PlayerMoveEvent $event){ $player = $event->getPlayer(); $x = $player->getX(); $y = $player->getY(); $z = $player->getZ(); $level = $this->getServer()->getLevelByName($player->getLevel()->getFolderName()); //$level->addParticle($partcile(vector3)) Example DustParticle $level->addParticle(new DustParticle(new Vector3($x,$y,$z), mt_rand(219, 255), mt_rand(0, 20), mt_rand(180, 203))); }