I think I’m right in saying that a GKC Report executes before the body of the GKC runs. Documentation on the GKC talks describes the report running “after the key is pressed” which implies immediately.
It would perhaps have been better if the GKC report fields executed afterwards, as this would have been more flexible. However, it’s usually possible to workaround this.
I am having a particular problem with the Startup GKC. If there was an option to run the GKC report after the GKC runs, this would solve it; either a checkbox either/or on the existing report field or another report field for post-run report only.
I’m working round my particular issue by ignoring the advice that the execution order of Startup GKCs can’t be relied on, whilst somewhat relying on the execution order that I get on both my machines. Luckily it is not a critical function. Also, my problem could be solved in a different way if the module version that a Save Game was saved under were available as a Vassal GP (like Vassal and Module versions are in Vassal 3.5).
Still some control over GKC Report and Report Trait execution order would be helpful. See also this post by m3tan.
One other workaround that might make things easier for you is to start by sending (one) SGKC to just a single piece (e.g. some secret invisible piece somewhere, and you can use fast-match to speed this up). And then the piece can break the stuff down you want into bite size chunks and the order you want, e.g.:
- SGKC picked up by a Trigger Action Trait, which then:
a. Does the first thing. Via GKC or whatever.
b. Does the second thing, which will definitely happen after the first thing because only one SGKC.
c. Does other things as needed
d. Fires off a new key command that will be picked up by a Report Trait
- Report Trait will now definitely execute LAST.
I think this is the way that the guy who wrote the SGKC code oh-so-long-ago meant this problem to be overcome.
Thanks Brian. I would use that method for any other situation but the one that it can’t handle is to distinguish a “new” save file from an older one, where the older one doesn’t have the update to run the STARTUP GKC in the first place. Hence my “workaround”. Maybe there is a completely different technique that can be used but this is the only one I could get working.