This instant-win bug happened to me too. Luckily with this game there is tons of Lua to mess with, so I looked at Base.rte\Scenes\Scripts\Survival.lua, and I think I have a fix.
Disclaimer: I was also brought here by the HIB2, so I only have a few days experience with this game.
The survival timer seems to start as soon as the Activity starts. So while you are building your base, it is ticking away. If you are trying to survive for 2 minutes, and spend 2+ minutes building, you win as soon as the game starts.
In the script, it seems like the timers start as soon as they are declared, and they are declared when the activity first starts. Then there is the UpdateActivity function, which I am guessing loops constantly while the activity runs. There is a massive IF statement in there, which does a bunch of stuff (AI spawning etc) if the activity is not in edit mode anymore (like when you are actually playing). There is a tiny little ELSE block, though, which runs when you
are in edit mode. The StartTimer timer is reset in this ELSE block, meaning that while you are in edit mode building your base, StartTimer is constantly being reset, so it effectively starts timing properly once you exit edit mode.
The problem is, it is actually SurvivalTimer that controls the game and the Win conditions. So resetting SurvivalTimer in the same place as StartTimer seems to fix this. It seems a bit odd to me to constantly reset these timers, rather than just start them when they are needed, but this is the easiest fix.
TL;DR:
The end of the Survival.lua script looks like this:
Code:
else
self.StartTimer:Reset();
end
self:YSortObjectivePoints();
end
You need to add a line so it looks like this:
Code:
else
self.StartTimer:Reset();
self.SurvivalTimer:Reset();
end
self:YSortObjectivePoints();
end
I've very briefly tested it, seems to work.