         network.serverConnection.controls.Set(CTRL_ALL, false);
 }
 
+void HandleParticleEffect(StringHash eventType, VariantMap& eventData)
+{
+    Vector3 position = eventData["Position"].GetVector3();
+    String effectName = eventData["EffectName"].GetString();
+    float duration = eventData["Duration"].GetFloat();
+    SpawnParticleEffect(position, effectName, duration, LOCAL);
+}
+
 int FindPlayerIndex(uint nodeID)
 {
     for (uint i = 0; i < players.length; ++i)


Node@ SpawnParticleEffect(const Vector3&in position, const String&in effectName, float duration, CreateMode mode = REPLICATED)
{
    // \todo Should be refactored to use an RPC mechanism in networked mode, as a ParticleEmitter has a lot of attributes
    // which cost network traffic
    Node@ newNode = scene.CreateChild("", mode);
    newNode.position = position;

    // Create the particle emitter

    network.RegisterRemoteEvent("PlayerSpawned");
    network.RegisterRemoteEvent("UpdateScore");
    network.RegisterRemoteEvent("UpdateHiscores");
    network.RegisterRemoteEvent("ParticleEffect");

    if (runServer)
    {
