Using a custom script init function (so this is ran before map starts), I have reduced a desync case to the following (might be able to be reduced further, but this is good enough):
// Custom script, with init function set to main
include "main.galaxy"
// main.galaxy file
include "f_a"
include "f_b"
void f_a();
void f_b();
void main(){
f_a();
f_b();
}
// f_a.galaxy file
static int a;
void f_a(){
DataTableInstanceCreate();
a = DataTableInstanceLastCreated();
}
// f_b.galaxy file
static int b;
void f_b(){
DataTableInstanceCreate();
b = DataTableInstanceLastCreated();
}
It seems that the return value of DataTableInstanceLastCreated
varies from player to player if it’s called that early in the map loading sequence.
To expand a bit. This desync caused such a problem that the player wouldn’t be able to play any games, even other arcade maps or melee until they restarted their game. It’s really bad.