Creating a roster spreadsheet that saves between sessions (Up Front campaign)

I’m attempting to incorporate the campaign system into the Up Front module. it requires keeping track of individual soldier’s stats as seen in the image.

I tried attaching the spreadsheet trait to a game piece and it worked to fill out the static info. That is the info put in by the module creator continued to appear between sessions. However testing it out as a player the info I put in for the soldier’s new stats didn’t last between sessions.

Any ideas on what I can do?

Here’s a thought I have. What if I make each roster sheet basically into a map? Each cell (spreadsheet language) would be a zone on the map where pre-placed (at start right) counters would exist. These counters would be simple VP like counters where they could adjust the number or image layers for stats that aren’t a number (rank). The names I might go with the actually card or make game pieces that show their name. Is there a way to make game pieces unmovable? Certainly the info put in this way by players would persist across sessions right?

Hi,

I hope you mean one map? If so, yes, that makes sense. If you mean one map per piece, I would be weary. See for example Battle of the Bulge - Smithsonian Edition. There I have a map with each and every counter in the game as rows, and columns with a check-button if the unit has been broken down into it detachments. In this case, it is mainly used for book-keeping (It’s in the OOB window - short-cut Alt-B - as Allied/German Detachments

To make pieces “immovable”, you would typically use a RestrictAccessTrait. That means that the pieces can only be manipulated through GlobabHotKeys and the user (possibly limited tto a side) cannot interact with the piece. Probably not what you want.

You still need the data to persist over sessions. For that, it probably means you have to store the data in GlobalPropertys.

However, I think that approach might become very hard to maintain. As I mentioned in another thread, I would make these stats Propertys of the pieces themselves. This should be implemented as a Prototype with properties Rank, KIA, Replaced, Morale, Panic, Rout, ELan, Survival, and Promotion.

Morale: 0-7
Panic: 1-7
Kia: 6-8
Rank: 1-3

I guess Promotion is really a function of some of the other properties.

This also has the benefit that the pieces themselves can use the information as needed. For example, your LayerTrait could follow these properties to show the correct image - or you can put LabelTraits on your piece that shows the information - as discussed in the references thread.

If you still want an overview table, that can be done too. In that case, when a piece has one of the properties changed (via a TriggerTrait), then that change is sent to a specific piece on the spreadsheet map too. For example, if the main piece’s name is Hessel_MP, and Rank is changed, then a key command is sent to Hessel_MP_Rank piece. It’s a little tricky, but it can be done.

Incidentally, for these kinds of things, I like to use my pywargame Python module to make the various pieces and command, because it allows me to program the behaviour making sure names are consistent and so on. I find that a pain to do in the Editor.

Hope that helps.

Yours,
Christian

Your map idea can work. To make pieces immobile though, the “does not stack” trait is more what you want. “Does not stack” is a poor name in my opinion because it has several functions besides stacking, primarily controlling movement. You can use it to lock down a piece or to move it only through special key commands. You can then change the values of these immobile pieces with right-click commands or even make them into buttons.

I think restricted access is designed to control who can manipulate a piece rather than controlling its movement in general, but if It can control movement, that’s something I didn’t know.

1 Like


Screenshot 2024-11-21 232104

Here’s what I got right now. The spreadsheet graphic is just an image file from a google sheets. I have transparent rectangle game pieces in the cells. The Text Label trait allows the player to input whatever number they want. When they right click on a cell the transparent piece gets the standard vassal active black border. Right click menu shows an input option with hot key option.

I’ll eventually remove delete and clone. What I have to now figure out is how to make those game pieces always be on the map right where I put them.

which is at-start stack I see. I’ve read the reference manual but I’m not getting it.

Am I going to have to make 279 (the number of cells that all need "input-ability) instances of a start stack on top of the 279 “roster points” pieces that need to go into the cell?

I’m also considering not populating every single cell with the textlabel game piece as no player will need to input something in every cell. Instead just give directions to drag the piece into the cell they want new info in.

I’d still need those pieces to show up via at-start stack and be arranged off to the side.

Why isn’t this working?

The “Morale 4” is the At-Start_test[single piece]. It shows up in the reposition stack “field”. But never in the actual map in the “player field”.

In your image, it appears (slightly cutoff) that you have a saved game loaded (Start Setting Standard.vsav). If this saved game file pre-dates the creation of the At-Start Stack you’re testing, it will not display this newly-created stack–even after refreshing counters. You’ll have to start a “new game” in the sense that no saved game or predefined setup is loaded at all in order to see new At-Start Stacks you create.

I don’t know. I have tried that now. Still not getting it. Does the at start stack piece need to be in a zone? The map currently has no zones

No, this is not a requirement. Once you create an At-Start Stack in a given location, it’ll be right where you place it unless you subsequently go back into the Editor and change its XY coordinates.

It’s simply not doing that for me. I see it when I hit “reposition stack” but no matter what I do (save, refresh counter, completely close out the game, enter as a player not an editor…) I can never get the piece to be there when I open the map window.

Add Desk with option Can be saved…
Add Card with Spreadsheet
Configure Spreadsheet

while game move your card out stack for change session data in table


when you need save data for next session put back card to stack and Save
image

May be you can create large piece (table image) add Mat cargo to save other pieces on it using this method

Describe the process by which you are re-entering the game as a player. Are you loading a scenario that already exists in the module? If you are using the “wizard” process, it would first prompt you about a play mode (start a game offline, look for a game online, load a saved game), then if you choose “start a game offline”, it would prompt you to choose an existing setup, which would look like this:

If you confirm this is what you’re doing, that’s going to explain why your newly-created At-Start Stacks are not showing. If you’re doing something else, please describe in additional detail and we can go from there.

Yes that’s how I’m entering as a player not an editor. But it needs to work this way too doesn’t it?

Yes, if you want to test your changes, you use the module in play mode. But the issue here is the type of change you’ve made–adding a new At-Start Stack. When you play the module and step through the screens shown above, you are loading one of the 5 predefined setup files embedded in the module. These setup files pre-date the creation of your At-Start Stack. Due to the nature of the VASSAL saved game format, that means the pieces/maps/configs that existed in the module at the time those setup files were created are sort of frozen in amber–they cannot auto-incorporate certain kinds of new features that get added to the module later on. At-Start Stacks are one of these kinds of features.

image

Bracketed red are the existing predefined setups in the Up Front module. If you load any of those, you will not see the new At-Start Stacks you’ve edited in. Neither refreshing counters in-game nor using the Refresh Predefined Setups tool in the Editor are sufficient to overcome this. I’d suggest putting in an additional predefined setup (name is up to you) that doesn’t load any file at all. This will give you a truly blank canvas from which to start, and the At-Start Stacks you’ve created should appear when choosing this item in the “Select Setup” dropdown list.

I see. So what happens if I just delete (after copying) the entire “Pre-Defined Setting” folder and save the module? Then edit the folder back in and with the At-Start Stack? Would that “trick” it?

Well, if you delete the references to the predefined setups altogether, then every time the module starts it will by default give you this “blank canvas” new game that should show your new At-Start Stacks.

Removing and then restoring the references to the predefined setups is not going to work–there is no “tricking” the system. It’s not the listing of the predefined setups that you see in the Editor that poses the problem–it’s the contents of the very predefined setup files (ending in .vsav, the VASSAL saved game format) embedded in the module. Every module is just a renamed ZIP archive. Here is a picture of the contents of the module as viewed in 7-Zip:

image

There is no “easy button” updating of these files to auto-include your new stacks. There is a potentially labor intensive way of updating these setup files–putting your new pieces in an additional piece palette and dragging them onto maps where they need to go. Each setup could be loaded, new pieces placed, then save the setup and re-insert it into the module. Later on you make the new piece palette hidden or remove it. The scale of the task will correspond to how many new pieces need to be added.

okay not going down that route. I’ll just include a transparent text label in the counter tray that the players can drag into their roster “sheet” and clone it where necessary.

You can try this:

  1. start new game and start new vlog
  2. if you have At-Start Stack on the map then make Tools - Refresh Counters (it’s important for see counters which was adding before starting log)
  3. save vlog

Start new game (or open last game) and load saved your Stack by Tools - Load Continuation
Press PgDown

Save game and put into module as pre-defined game (replace file in zip)