Custom campaign maps fail to load. [Solved]
Posted: Sun Mar 20, 2022 11:29 pm
Hi all! for some reason, the attached map refuses to load. It plagues any new campaign map I attempt to create. Here's the exception log.
Any clue ins on what's happening?
Solution:
OpenRA no longer handles this automatically for you. You need to define under the rules the campaign ruleset(IE:ra|rules/campaign-rules.yaml). Hope this helps someone.
Code: Select all
OpenRA engine version release-20210321
Red Alert mod version release-20210321
Date: 2022-03-20 21:00:52Z
Operating System: Windows (Microsoft Windows NT 6.2.9200.0)
Runtime Version: .NET CLR 4.0.30319.42000
Exception of type `System.ArgumentException`: Collection must not be empty.
Parameter name: ts
at OpenRA.Exts.Random[T](IEnumerable`1 ts, MersenneTwister r, Boolean throws)
at OpenRA.Mods.Common.Traits.MPStartLocationsInfo.OpenRA.Traits.IAssignSpawnPointsInfo.AssignSpawnPoint(Object stateObject, Session lobbyInfo, Client client, MersenneTwister playerRandom)
at OpenRA.Mods.Common.Traits.CreateMPPlayersInfo.OpenRA.Traits.ICreatePlayersInfo.CreateServerPlayers(MapPreview map, Session lobbyInfo, List`1 players, MersenneTwister playerRandom)
at OpenRA.Server.Server.StartGame()
at OpenRA.Mods.Common.Server.LobbyCommands.CheckAutoStart(Server server)
at OpenRA.Mods.Common.Server.LobbyCommands.State(Server server, Connection conn, Client client, String s)
at OpenRA.Mods.Common.Server.LobbyCommands.InterpretCommand(Server server, Connection conn, Client client, String cmd)
at OpenRA.Server.Server.<>c__DisplayClass47_0.<InterpretServerOrder>b__0(IInterpretCommand t)
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
at OpenRA.Server.Server.InterpretServerOrder(Connection conn, Order o)
at OpenRA.Server.Server.InterpretServerOrders(Connection conn, Byte[] data)
at OpenRA.Server.Server.DispatchOrders(Connection conn, Int32 frame, Byte[] data)
at OpenRA.Server.Connection.ReadData(Server server)
at OpenRA.Server.Server.<>c__DisplayClass29_0.<.ctor>b__1(Object _)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart(Object obj)
Solution:
OpenRA no longer handles this automatically for you. You need to define under the rules the campaign ruleset(IE:ra|rules/campaign-rules.yaml). Hope this helps someone.