'Send to' functions bug after viewing 2+ consecutive logs

A bug that seems to be caused by viewing 2 or more logs in succession using the ‘load continuation’ option.

After viewing the logs, all the send-to commands fail to send pieces to their destinations and instead send them to 0,0 on the board the piece is on.

I’m pretty sure that both the bug and the cause are Vassal issues and not module ones, unless I’m making some other kind of error or misunderstanding the purpose of ‘load continuation’… which is entirely possible. Are players required and expected to close and reload games after every log that doesn’t link to their own turn?

Thus spake Benkyo:

A bug that seems to be caused by viewing 2 or more logs in succession
using the ‘load continuation’ option.

After viewing the logs, all the send-to commands fail to send pieces to
their destinations and instead send them to 0,0 on the board the piece
is on.

I’m pretty sure that both the bug and the cause are Vassal issues and
not module ones, unless I’m making some other kind of error or
misunderstanding the purpose of ‘load continuation’… which is entirely
possible. Are players required and expected to close and reload games
after every log that doesn’t link to their own turn?

With which modules are you seeing this? Can you build a minimal test
module to exhibit the problem?

J.

Yes, replicated in a bare minimum test module just now.

dropbox.com/s/8p8jipdydzlxz … odule.vmod
dropbox.com/s/g1stz52b65vky14/1.vlog
dropbox.com/s/fz95ionufiyih86/2.vlog
dropbox.com/s/2wbalk35zg320xp/3.vlog

Steps taken: Load the module, join as player 1, start log 1, use ‘return to deck’ command on 2 pieces and end log.
Load saved game 1, join as player 2, playback log, start log 2, use ‘return to deck’ command on 2 pieces and end log.
Load saved game 1, join as player 3, playback log, load continuation log 2, playback log, start log 3. Try to use the ‘return to deck’ command and they get sent to 0,0 instead of 100,100.

Wow–this could explain an intermittent issue that’s been cropping up in a 6-player game I’m in. Every once in a while a player plays a card out of his hand using a context menu action and it’s going to the correct map window destination but not landing in the deck for played cards like it’s supposed to.

Thus spake Benkyo:

Yes, replicated in a bare minimum test module just now.

dropbox.com/s/8p8jipdydzlxz … odule.vmod[1]
dropbox.com/s/g1stz52b65vky14/1.vlog[2]
dropbox.com/s/fz95ionufiyih86/2.vlog[3]
dropbox.com/s/2wbalk35zg320xp/3.vlog[4]

Steps taken: Load the module, join as player 1, start log 1, use ‘return
to deck’ command on 2 pieces and end log.
Load saved game 1, join as player 2, playback log, start log 2, use
‘return to deck’ command on 2 pieces and end log.
Load saved game 1, join as player 3, playback log, load continuation log
2, playback log, start log 3. Try to use the ‘return to deck’ command
and they get sent to 0,0 instead of 100,100.

Sorry, I don’t follow the instructions. The three logs you link to
are the result of following the instructions? Or are they something
I need to load?


J.

The 3 logs are the result of following the actions I described.
In order to experience the bug you need to have a module with a ‘send to’/discard function, which is easy enough. You also need 2 log files generated by people with different names/passwords. Then you need to load both of those logfiles in succession and attempt a send to/discard action with a 3rd name/password. If you follow those steps the bug is readily apparent.
Simply viewing 3.vlog will show the bug effect (piece gets sent to 0,0 instead of 100,100), but it is probably better to follow the steps and experience the bug yourself.

Just so we get this straight, are you exactly following this procedure when creating the continuation logs:

  1. Player 1 creates a new log, does some moves, closes the log and sends it to player 2
  2. Player 2 opens the log, steps through to the very end, opens a new log, does some moves, closes the log and sends it to player 3.
  3. Player 3 repeats the player 2 process.

Thanks,
Brent.

Not quite.

Player 3 views both logs in succession after starting the Vassal program, so he is not repeating the Player 2 process.

It is viewing 2 logs in succession that triggers the bug.

Player 3 can avoid the bug by viewing Player 1’s log, closing the game, then re-starting the game to view Player 2’s log.

The erratic nature of the bug, and the reason some players experience it and others don’t, is because some players view all the logs between their previous turn and their current one in succession, while other players view each log as they arrive and thus only view one log immediately before starting their own.

Ah, ‘creating a continuation log’. That’s not something that the players here are aiming to do.

The goal is simply to view each log that was made between a given player’s turn, then create a log for that player’s turn.

Perhaps I (and the other 20+ players I have played with) misunderstand the purpose of ‘load log as a continuation’? I understood it to not only be used for creating continuous logs, but also to allow the viewing of several consecutive logs before creating the next log in sequence.

Player 3 opens the log from Player 1, steps through to the very end, opens the log from Player 2 ‘as a continuation’, steps through to the very end, opens a new log, tries to perform some actions but the bug occurs. Closes the log.

Well, that pretty much explains your problem.

When you are playing a PBEM game, you have to think of it like the children’s game of ‘chasings’. Some is ‘it’, they make changes to the game and save them to a log file. They then pass that log on to someone else who now becomes ‘it’ and it is their change to make changes. They do the same, make some changes and save them in a log file (or save file) and pass it to the next player.

The player who is ‘it’ is the only player in the whole group who has the complete and current game state, everyone else is out of date. What you are doing is trying to merge multiple out of date games into a single game, it just won’t work.

In a 6 player PBEM game, player 1 must do his turn and send it to player 2. Player 2 does his turn and sends it to player 3. And so on (the actual order does not matter). You CANNOT have player 6 send a save file to the other 5, have each of the 5 do their turn and send them back to 6 and have 6 then merge them all in. Unless the module has been VERY carefully crafted with exactly this in mind, each of the 5 log files will be overwriting parts of the game state that other players have changed and you will get bizarre and erratic behaviour (sound familiar?)

Yes, as long each log was created by a player who first loaded up the log (or save) from the previous player, maintaining the continuous chain of the games current state.

So you are saying that the end of player 1’s log is not the same game state as the beginning of player 2’s log. Two logs cannot be viewed back-to-back.

The only way a player can view all the intervening turns and make their own log without bugs is to load the first log, view it, close the game, load the next log, view it, close the game etc. until they load the most recent log, view it, then start their own log.

This seems very counter-intuitive, and really something that should be emblazoned somewhere very obvious for all to see. Every single person who has played my module with 3 or more players has encountered this bug, intermittently because of player behaviour, and been baffled by it. I have taken to prefacing all games with strict instructions to only view the most recent log before starting your own, and added such instructions to all tutorial logs and instructions… it just isn’t something any user I know of has thought of on their own, and only through extensive trial and error did we discover the ‘bug’ and the work-around.

Thanks for the responses though, and thanks for clarifying that this isn’t technically a bug, but is working as intended (however mystifying that may seem to us laymen).

It is if at the end of creating his log, player 1 sends it to player 2. Then player 2 opens the log just sent to him and plays through to the end. Now player 2 is in the same state as player 1 was when he finished creating his log. Player 2 can now open a log file and start recording his moves.

There should be no need to close the game and load the next log. That is what Load Continuation is for, but it requires that logs have been correctly created.

I am still unsure of the exact sequence and which moves you want to see. If you want each player to seethe last 6 moves, then here is one way:

Turn 1, Player 1 - creates a log file, makes moves, closes log file and sends to player 2
Turn 1, Player 2 - loads log file from P1, opens a new log file, replays moves from player 1, makes moves, closes log file and sends to player 3.
Turn 1, Player 3 - loads log file from P2, opens a new log file, replays moves from player 1 and player 2, makes moves, closes log file and sends to player 4.
Turn 1, Player 4 - loads log file from P3, opens a new log file, replays moves from players 1, 2 and 3, makes moves, closes log file and sends to player 4.
Turn 1, Player 5 - loads log file from P4, opens a new log file, replays moves from players 1-4, makes moves, closes log file and sends to player 6.
Turn 1, Player 6 - loads log file from P5, opens a new log file, replays moves from players 1-5, makes moves, closes log file and sends to player 1.
Turn 2, Player 1 - loads log file from P6, replays own moves from turn 1, opens a new log file, replays moves from players 2-6, closes log file and sends to player 2

and so on.

Here’s another way, keeping each players logs separate.

Turn 1 Player 1 - creates a log file, makes moves, closes log file and sends to player 2
Turn 1 Player 2 - Opens log file from P1, play to end. Open new log file, make moves, close log file and send own log and log from P1 to P3.
Turn 1 Player 3 -
If player 3 want to see all moves, then
- Open Log from P1 and play to end
- Load continuation Log from P2 and play to end
- Open new log file, make moves, close log file and send all 3 logs to player 4
If player 3 isn’t interested in old moves then
- Just open Log from P2 and play to end, then do own moves.
and so on.

I am still not quite sure of exactly what you are doing, but unless you play follow-the-leader with logs in order, it should seem obvious that players will be overwriting and corrupting each others moves.

I have not heard of a game being played PBEM with more than 2 players before, so you are a pathfinder.

This is the sequence that causes the bug and the default way that most new players assume things work. So it is a bug. If you try this for yourself you should see that any piece Player 3 tries to send to a deck or similar gets sent to coordinates 0,0 instead. The test module I uploaded is a perfect example as there is simply nothing in it except a pile of pieces and a ‘send to’ function.

Let’s go back to here:

Where you said

I may have misunderstood you there, I realise now I am not actually sure what you are doing exactly.

Let’s back up to there and try again.

Can you please describe EXACTLY the sequence of steps, menu commands etc, that players 1,2 and 3 do in the course of a turn. Who sends which log files to who and when?

Thx,
Brent.

I know it seems strange, and I can think of no reason why it would cause a bug, but the exact same process that you yourself described always reproduces the bug. I am in no doubt that the very same steps you described here describe perfectly the steps that I and many other PBEM players have made:

This is the exact sequence I tried to describe myself and this will reproduce the bug, I guarantee it. You can even do it on one computer if you load up Vassal and change your name and password 2 times in between those steps to simulate 3 players playing in succession.

I know you are asking for further clarification and there has been a lot of misunderstandings in this thread, but the only way you’ll see the bug is to act out those exact steps with any module you care to try it with (as before, I suggest the test module I linked near the beginning of the thread).

Ok, thanks. Just wanted to make sure that nothing simple had been missed. I will try and look into this over the weekend.

Regards.

There are tons and tons of 3+ player games being played PBEM with VASSAL, this isn’t a new phenomenon by any stretch! :slight_smile:

Which makes me wonder why this bug isn’t seen all the time :exclamation:

Perhaps it is, or perhaps only in recent Vassal updates. I think the bug has been present since I started working on my module near the beginning of this year, though I can’t say with any certainty, and it seems other people have encountered it with other modules: https://forum.vassalengine.org/t/return-to-deck-bug/5844/1

Have reproduced the problem and added It as

Bug 10249 - Deck loses position over loading multiple player logs

The Return to Deck is fine, it is a problem with the Deck internally losing track of it’s location. Working on it.