Windows error running match locally with fresh starter kit

When I run from powershell
scripts\run_match.ps1
from a fresh starter kit root I get the following error (shown below). I tried changing py -3 to python in python-algo/run_ps1.sh but that didn’t work. My execution policy was set to unrestricted and I have Java SDK19 installed.

p1:
D:\Projects\Boom\C1GamesStarterKit-master\python-algo\run.ps1
p2:
D:\Projects\Boom\C1GamesStarterKit-master\python-algo\run.ps1
Starting Engine: August_17_2020
Starting single worker game.
Looking for Config file at: 
D:\Projects\Boom\C1GamesStarterKit-master/game-configs.json
D:\Projects\Boom\C1GamesStarterKit-master\python-algo\run.ps1
D:\Projects\Boom\C1GamesStarterKit-master\python-algo\run.ps1
Saving replay: D:\Projects\Boom\C1GamesStarterKit-master\replays\p1-05-03-2023-15-55-43-1678060543990-1874658753.replay
P1 Name: python-algo seasonMode:5
P2 Name: python-algo seasonMode:5
Waiting for: 3000 before starting first turn.
Done waiting starting first turn.
Invalid command, couldn't json for player 0 : {"debug":{"printMapString":false,"printTStrings":false,"printActStrings":false,"printHitStrings":false,"printPlayerInputStrings":false,"printBotErrors":true,"printPlayerGetHitStrings":false},"unitInformation":[{"iconxScale":0.4,"turnsRequiredToRemove":1,"refundPercentage":0.75,"cost1":1.0,"getHitRadius":0.01,"upgrade":{"iconxScale":0.4,"icon":"S3_filter","iconyScale":0.5,"startHealth":150.0},"unitCategory":0,"display":"filter","icon":"S3_filter","iconyScale":0.5,"startHealth":75.0,"shorthand":"FF"},{"iconxScale":0.5,"refundPercentage":0.75,"cost1":7.0,"upgrade":{"iconxScale":0.5,"generatesResource2":2.0,"icon":"S3_encryptor","iconyScale":0.5},"display":"encryptor","icon":"S3_encryptor","iconyScale":0.5,"shorthand":"EF","turnsRequiredToRemove":1,"generatesResource1":1.0,"getHitRadius":0.01,"unitCategory":0,"startHealth":30.0},{"iconxScale":0.5,"attackRange":2.5,"refundPercentage":0.75,"cost1":2.0,"upgrade":{"iconxScale":0.5,"attackDamageWalker":15.0,"attackRange":3.5,"cost1":4.0,"icon":"S3_destructor","iconyScale":0.5},"display":"destructor","icon":"S3_destructor","iconyScale":0.5,"shorthand":"DF","attackDamageWalker":5.0,"turnsRequiredToRemove":1,"getHitRadius":0.01,"unitCategory":0,"startHealth":90.0,"attackDamageTower":0.0},{"iconxScale":0.7,"attackRange":3.5,"selfDestructDamageTower":15.0,"cost2":1.0,"metalForBreach":1.0,"display":"ping","icon":"S3_ping","selfDestructStepsRequired":5,"iconyScale":0.5,"shorthand":"PI","playerBreachDamage":1.0,"speed":1.0,"attackDamageWalker":2.0,"getHitRadius":0.01,"unitCategory":1,"selfDestructDamageWalker":15.0,"startHealth":15.0,"selfDestructRange":1.5,"attackDamageTower":2.0},{"iconxScale":0.47,"attackRange":4.5,"selfDestructDamageTower":5.0,"cost2":3.0,"metalForBreach":1.0,"display":"emp","icon":"S3_emp","selfDestructStepsRequired":5,"iconyScale":0.5,"shorthand":"EI","playerBreachDamage":1.0,"speed":0.5,"attackDamageWalker":6.0,"getHitRadius":0.01,"unitCategory":1,"selfDestructDamageWalker":5.0,"startHealth":5.0,"selfDestructRange":1.5,"attackDamageTower":6.0},{"iconxScale":0.5,"attackRange":3.5,"selfDestructDamageTower":40.0,"cost2":1.0,"metalForBreach":1.0,"display":"scrambler","icon":"S3_scrambler","selfDestructStepsRequired":5,"iconyScale":0.5,"shorthand":"SI","playerBreachDamage":1.0,"speed":0.25,"attackDamageWalker":20.0,"getHitRadius":0.01,"unitCategory":1,"selfDestructDamageWalker":40.0,"startHealth":40.0,"selfDestructRange":1.5,"attackDamageTower":0.0},{"iconxScale":0.4,"display":"Remove","icon":"S3_removal","iconyScale":0.5,"shorthand":"RM"},{"iconxScale":0.4,"display":"Upgrade","icon":"S3_upgrade","iconyScale":0.5,"shorthand":"UP"}],"timingAndReplay":{"playReplaySave":1,"waitTimeBotMax":35000,"waitTimeManual":1820000,"waitForever":false,"playWaitTimeBotSoft":5000,"waitTimeEndGame":3000,"waitTimeBotSoft":5000,"playWaitTimeBotMax":35000,"replaySave":1,"storeBotTimes":true,"waitTimeStartGame":3000},"resources":{"bitsPerRound":5.0,"coresPerRound":5.0,"startingBits":5.0,"turnIntervalForBitCapSchedule":10,"turnIntervalForBitSchedule":10,"bitRampBitCapGrowthRate":5.0,"bitDecayPerRound":0.25,"roundStartBitRamp":10,"bitGrowthRate":1.0,"startingHP":40.0,"startingCores":40.0,"maxBits":150.0},"seasonCompatibilityModeP2":5,"seasonCompatibilityModeP1":5}
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
	at com.google.gson.Gson.fromJson(Gson.java:899)
	at com.google.gson.Gson.fromJson(Gson.java:852)
	at com.google.gson.Gson.fromJson(Gson.java:801)
	at com.c1games.terminal.game.Parser.processInputForPlayer(Parser.java:131)
	at com.c1games.terminal.game.Parser.processInputBuild(Parser.java:115)
	at com.c1games.terminal.game.GameMain.runLoop(GameMain.java:318)
	at com.c1games.terminal.game.GameMain.startGame(GameMain.java:175)
	at com.c1games.terminal.game.GameMain.main(GameMain.java:150)
	at com.c1games.terminal.Terminal.main(Terminal.java:141)
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
	at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:350)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
	at com.google.gson.Gson.fromJson(Gson.java:887)
	... 8 more
Invalid command, couldn't json for player 1 : {"debug":{"printMapString":false,"printTStrings":false,"printActStrings":false,"printHitStrings":false,"printPlayerInputStrings":false,"printBotErrors":true,"printPlayerGetHitStrings":false},"unitInformation":[{"iconxScale":0.4,"turnsRequiredToRemove":1,"refundPercentage":0.75,"cost1":1.0,"getHitRadius":0.01,"upgrade":{"iconxScale":0.4,"icon":"S3_filter","iconyScale":0.5,"startHealth":150.0},"unitCategory":0,"display":"filter","icon":"S3_filter","iconyScale":0.5,"startHealth":75.0,"shorthand":"FF"},{"iconxScale":0.5,"refundPercentage":0.75,"cost1":7.0,"upgrade":{"iconxScale":0.5,"generatesResource2":2.0,"icon":"S3_encryptor","iconyScale":0.5},"display":"encryptor","icon":"S3_encryptor","iconyScale":0.5,"shorthand":"EF","turnsRequiredToRemove":1,"generatesResource1":1.0,"getHitRadius":0.01,"unitCategory":0,"startHealth":30.0},{"iconxScale":0.5,"attackRange":2.5,"refundPercentage":0.75,"cost1":2.0,"upgrade":{"iconxScale":0.5,"attackDamageWalker":15.0,"attackRange":3.5,"cost1":4.0,"icon":"S3_destructor","iconyScale":0.5},"display":"destructor","icon":"S3_destructor","iconyScale":0.5,"shorthand":"DF","attackDamageWalker":5.0,"turnsRequiredToRemove":1,"getHitRadius":0.01,"unitCategory":0,"startHealth":90.0,"attackDamageTower":0.0},{"iconxScale":0.7,"attackRange":3.5,"selfDestructDamageTower":15.0,"cost2":1.0,"metalForBreach":1.0,"display":"ping","icon":"S3_ping","selfDestructStepsRequired":5,"iconyScale":0.5,"shorthand":"PI","playerBreachDamage":1.0,"speed":1.0,"attackDamageWalker":2.0,"getHitRadius":0.01,"unitCategory":1,"selfDestructDamageWalker":15.0,"startHealth":15.0,"selfDestructRange":1.5,"attackDamageTower":2.0},{"iconxScale":0.47,"attackRange":4.5,"selfDestructDamageTower":5.0,"cost2":3.0,"metalForBreach":1.0,"display":"emp","icon":"S3_emp","selfDestructStepsRequired":5,"iconyScale":0.5,"shorthand":"EI","playerBreachDamage":1.0,"speed":0.5,"attackDamageWalker":6.0,"getHitRadius":0.01,"unitCategory":1,"selfDestructDamageWalker":5.0,"startHealth":5.0,"selfDestructRange":1.5,"attackDamageTower":6.0},{"iconxScale":0.5,"attackRange":3.5,"selfDestructDamageTower":40.0,"cost2":1.0,"metalForBreach":1.0,"display":"scrambler","icon":"S3_scrambler","selfDestructStepsRequired":5,"iconyScale":0.5,"shorthand":"SI","playerBreachDamage":1.0,"speed":0.25,"attackDamageWalker":20.0,"getHitRadius":0.01,"unitCategory":1,"selfDestructDamageWalker":40.0,"startHealth":40.0,"selfDestructRange":1.5,"attackDamageTower":0.0},{"iconxScale":0.4,"display":"Remove","icon":"S3_removal","iconyScale":0.5,"shorthand":"RM"},{"iconxScale":0.4,"display":"Upgrade","icon":"S3_upgrade","iconyScale":0.5,"shorthand":"UP"}],"timingAndReplay":{"playReplaySave":1,"waitTimeBotMax":35000,"waitTimeManual":1820000,"waitForever":false,"playWaitTimeBotSoft":5000,"waitTimeEndGame":3000,"waitTimeBotSoft":5000,"playWaitTimeBotMax":35000,"replaySave":1,"storeBotTimes":true,"waitTimeStartGame":3000},"resources":{"bitsPerRound":5.0,"coresPerRound":5.0,"startingBits":5.0,"turnIntervalForBitCapSchedule":10,"turnIntervalForBitSchedule":10,"bitRampBitCapGrowthRate":5.0,"bitDecayPerRound":0.25,"roundStartBitRamp":10,"bitGrowthRate":1.0,"startingHP":40.0,"startingCores":40.0,"maxBits":150.0},"seasonCompatibilityModeP2":5,"seasonCompatibilityModeP1":5}
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
	at com.google.gson.Gson.fromJson(Gson.java:899)
	at com.google.gson.Gson.fromJson(Gson.java:852)
	at com.google.gson.Gson.fromJson(Gson.java:801)
	at com.c1games.terminal.game.Parser.processInputForPlayer(Parser.java:131)
	at com.c1games.terminal.game.Parser.processInputBuild(Parser.java:115)
	at com.c1games.terminal.game.GameMain.runLoop(GameMain.java:318)
	at com.c1games.terminal.game.GameMain.startGame(GameMain.java:175)
	at com.c1games.terminal.game.GameMain.main(GameMain.java:150)
	at com.c1games.terminal.Terminal.main(Terminal.java:141)
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
	at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:350)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
	at com.google.gson.Gson.fromJson(Gson.java:887)
	... 8 more
Invalid command, couldn't json for player 0 : {"p2Units":[[],[],[],[],[],[],[],[]],"turnInfo":[0,0,-1,0],"p1Stats":[40.0,40.0,5.0,0],"p1Units":[[],[],[],[],[],[],[],[]],"p2Stats":[40.0,40.0,5.0,0],"events":{"selfDestruct":[],"breach":[],"damage":[],"shield":[],"move":[],"spawn":[],"death":[],"attack":[],"melee":[]}}
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
	at com.google.gson.Gson.fromJson(Gson.java:899)
	at com.google.gson.Gson.fromJson(Gson.java:852)
	at com.google.gson.Gson.fromJson(Gson.java:801)
	at com.c1games.terminal.game.Parser.processInputForPlayer(Parser.java:131)
	at com.c1games.terminal.game.Parser.processInputDeploy(Parser.java:239)
	at com.c1games.terminal.game.GameMain.runLoop(GameMain.java:324)
	at com.c1games.terminal.game.GameMain.startGame(GameMain.java:175)
	at com.c1games.terminal.game.GameMain.main(GameMain.java:150)
	at com.c1games.terminal.Terminal.main(Terminal.java:141)
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
	at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:350)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
	at com.google.gson.Gson.fromJson(Gson.java:887)
	... 8 more

Edit: I was able to fix the error

I was actually getting a “AuthorizationManager check failed” error that wasn’t being displayed in the above log (I had to run scripts/test_algo_windows.exe python-algo to unearth the error) and found out I just needed to run ls python-algo -recurse | unblock-file to “unblock” the files, apparently.

3 Likes