@startuml skinparam shadowing false title After: everything goes through the front actor Player as player node "Master\netmaster.net:27950" as master node "Front (public IP)" { component "etrelay\n0.0.0.0:27960" as relay } node "Home" { component "nginx stream\n:27960" as nginx component "ET server\n:27960" as et } player <--> relay : game traffic master <--> relay : heartbeat / getChallenge / getInfo relay <--> nginx : WireGuard (wg0) nginx <--> et : LAN @enduml