# Logging remote player actions

**URL:** <https://forum.vassalengine.org/t/logging-remote-player-actions/77958>\
**Category:** Development\
**Created:** [September 29, 2023, 7:09pm UTC](https://forum.vassalengine.org/t/logging-remote-player-actions/77958 "2023-09-29T19:09:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pixelpshr](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/pixelpshr/32/243_2.png) [@pixelpshr](https://forum.vassalengine.org/u/pixelpshr)\
**Post date:** [September 29, 2023, 7:09pm UTC](https://forum.vassalengine.org/t/logging-remote-player-actions/77958/1 "2023-09-29T19:09:40Z")

</div>

I’m still trying to add database logging to the vassal engine. The problem is with server-based multi-player games. I can capture actions performed by the local player but I cannot figure out how actions performed by remote players get into the local map. Their actions are obviously getting onto the map (since I can see the tokens move) and are captured by the vlog and vsav files.  
Where should I look to find where those commands are read from the server?

---

<div class="post-metadata">

**Author:** ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)\
**Post date:** [September 29, 2023, 7:25pm UTC](https://forum.vassalengine.org/t/logging-remote-player-actions/77958/2 "2023-09-29T19:25:42Z")

</div>

The code you are probably looking for is in `VASASL.chat.CommandDecoder`.

---

<div class="post-metadata">

**Author:** ![Brent\_Easton](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/brent_easton/32/10_2.png) [@Brent\_Easton](https://forum.vassalengine.org/u/Brent_Easton)\
**Post date:** [September 30, 2023, 8:37am UTC](https://forum.vassalengine.org/t/logging-remote-player-actions/77958/3 "2023-09-30T08:37:38Z")

</div>

Actions by a player that end up in a log, or sent across the network are encoded as subclasses of Command.  
GameModle.getGameModule().sendAndLog(command) serializes and sends an action to the log and/or other players. The registered CommandEnoders on each client are then checked to see if they know what to do with the Command when it is received, de-serialise it and execute the reconstituted action
