diff --git a/package/INI/Matchmaking.ini b/package/INI/Matchmaking.ini new file mode 100644 index 000000000..05249d884 --- /dev/null +++ b/package/INI/Matchmaking.ini @@ -0,0 +1,161 @@ +; [Matchmaking.ini] - Main Configuration for Matchmaking System +; +; This file defines the available game modes and their forced room settings. +; +; [How to add a new mode] +; 1. Add the mode identifier to the [MatchmakingModes] section (e.g., 4=MyNewMode). +; 2. Create a main section [MyNewMode] with core settings: +; - UIName: Unique name for matchmaking identification (Must match MatchmakingMaps.ini). +; - PlayerCount: Total players required (e.g., 2, 4, 6, 8). +; - AssignTeams: Set to True to enable TeamA/TeamB logic. +; 3. (Optional) Create [MyNewMode_ForceCheckboxes] to lock specific lobby options. +; 4. (Optional) Create [MyNewMode_ForceDropdowns] to lock specific dropdown values. +[MatchmakingModes] +0=1v1 +1=2v2 +2=3v3 +3=2v2v2v2 + +[1v1] +UIName=1v1 +PlayerCount=2 +AssignTeams=False +AlliedSideNames=Allies,Allied +SovietSideNames=Soviets,Soviet +AlliedColors=Blue,Green,Cyan,Yellow +SovietColors=Red,Orange,Purple,Grey + +[1v1_ForceCheckboxes] +chkShortGame=True +chkRedeplMCV=True +chkAutoRepair=False +chkMultiEng=False +chkIngameAllying=True +chkDestrBridges=True +chkBuildOffAlly=True +chkRedAlert2=False +chkYRRebalance=False +chkBlindStart=False +chkDisableGameSpeed=False +chkNoYuri=True +chkNoFrance=False +chkNoSpy=False +chkNoStolenTech=False +chkEngiDogImmune=False +chkCrates=False + +[1v1_ForceDropdowns] +cmbCredits=10000 +cmbStartingUnits=0 +cmbGameSpeedCapMultiplayer=1 +cmbSuperweaponsModifier=None +cmbCrateFrequency=Normal Crates +cmbAIModifier=Vanilla AI + +[2v2] +UIName=2v2 +PlayerCount=4 +AssignTeams=True +AlliedSideNames=Allies,Allied +SovietSideNames=Soviets,Soviet +AlliedColors=Blue,Green,Cyan,Yellow +SovietColors=Red,Orange,Purple,Grey + +[2v2_ForceCheckboxes] +chkShortGame=True +chkRedeplMCV=True +chkAutoRepair=False +chkMultiEng=False +chkIngameAllying=True +chkDestrBridges=True +chkBuildOffAlly=True +chkRedAlert2=False +chkYRRebalance=False +chkBlindStart=False +chkDisableGameSpeed=False +chkNoYuri=True +chkNoFrance=False +chkNoSpy=False +chkNoStolenTech=False +chkEngiDogImmune=False +chkCrates=False + +[2v2_ForceDropdowns] +cmbCredits=10000 +cmbStartingUnits=0 +cmbGameSpeedCapMultiplayer=1 +cmbSuperweaponsModifier=None +cmbCrateFrequency=Normal Crates +cmbAIModifier=Vanilla AI + +[3v3] +UIName=3v3 +PlayerCount=6 +AssignTeams=True +AlliedSideNames=Allies,Allied +SovietSideNames=Soviets,Soviet +AlliedColors=Blue,Green,Cyan,Yellow +SovietColors=Red,Orange,Purple,Grey + +[3v3_ForceCheckboxes] +chkShortGame=True +chkRedeplMCV=True +chkAutoRepair=False +chkMultiEng=False +chkIngameAllying=True +chkDestrBridges=True +chkBuildOffAlly=True +chkRedAlert2=False +chkYRRebalance=False +chkBlindStart=False +chkDisableGameSpeed=False +chkNoYuri=True +chkNoFrance=False +chkNoSpy=False +chkNoStolenTech=False +chkEngiDogImmune=False +chkCrates=False + +[3v3_ForceDropdowns] +cmbCredits=10000 +cmbStartingUnits=0 +cmbGameSpeedCapMultiplayer=1 +cmbSuperweaponsModifier=None +cmbCrateFrequency=Normal Crates +cmbAIModifier=Vanilla AI + +[2v2v2v2] +UIName=2v2v2v2 +PlayerCount=8 +AssignTeams=True +AlliedSideNames=Allies,Allied +SovietSideNames=Soviets,Soviet +AlliedColors=Blue,Green,Cyan,Yellow +SovietColors=Red,Orange,Purple,Grey + +[2v2v2v2_ForceCheckboxes] +chkShortGame=True +chkRedeplMCV=True +chkAutoRepair=False +chkMultiEng=False +chkIngameAllying=True +chkDestrBridges=True +chkBuildOffAlly=True +chkRedAlert2=False +chkYRRebalance=False +chkBlindStart=False +chkDisableGameSpeed=False +chkNoYuri=True +chkNoFrance=False +chkNoSpy=False +chkNoStolenTech=False +chkEngiDogImmune=False +chkCrates=False + +[2v2v2v2_ForceDropdowns] +cmbCredits=10000 +cmbStartingUnits=0 +cmbGameSpeedCapMultiplayer=1 +cmbSuperweaponsModifier=None +cmbCrateFrequency=Normal Crates +cmbAIModifier=Vanilla AI diff --git a/package/INI/MatchmakingMaps.ini b/package/INI/MatchmakingMaps.ini new file mode 100644 index 000000000..05435ca75 --- /dev/null +++ b/package/INI/MatchmakingMaps.ini @@ -0,0 +1,34 @@ +; [MatchmakingMaps.ini] - Configuration for Matchmaking Map Pools +; +; Section names must match the UIName defined in Matchmaking.ini (e.g. 1v1, 2v2). +; +; Format per line: +; Key=SHA1_Hash | GameMode | TeamA:Spawn1,Spawn2 | TeamB:Spawn3,Spawn4 +; +; [Components Explaination] +; ------------------------- +; SHA1_Hash: The unique identifier of the map file. +; GameMode: (Optional) The internal name of the gamemode to force (e.g. Battle, Ra2 ladder). +; Any segment that does NOT start with "Team" will be treated as the Game Mode. +; TeamX: (Optional) Forces auto-allying. Syntax: TeamA:Indices or TeamB:Indices. +; Indices are 1-based start positions as seen in the game (1, 2, 3, 4...). +; +; [Examples] +; 1v1 Short: 0=B88ED4FEA3062FDD07... | Ra2 ladder +; 2v2 Forced: 1=A1B2C3D4E5F6... | Battle | TeamA:1,3 | TeamB:2,4 + +[1v1] +0=C1C9FC820EC9FBB4932D2FAFECA317B9D889D839|Battle; A Hill Between +1=9403314549EBCE94AA37FC5B2A8489D289016998|Battle; Fjord + +[2v2] +0=7E19FFFB5A97EF5CD0105C18EBD28BC1FE012616|Battle|TeamA:1,2|TeamB:3,4; Depth Charge +1=B02D57D2A0F81AE6D177E5FED08921CFE3F5D3A1|Battle|TeamA:1,4|TeamB:3,2; Invasion Confirmed + +[3v3] +0=68D761CA4CE5F9C23D025429C2CE4C6486A6DD24|Battle|TeamA:1,2,3|TeamB:4,5,6; Crushed Ice +1=5C26931A87068E64CD8E1E6DD245350F033C9274|Battle|TeamA:1,2,3|TeamB:4,5,6; East vs Best + +[2v2v2v2] +0=CB87B5190432664861361257ADCDECADEF17BF76|Battle|TeamA:1,2|TeamB:3,4|TeamC:5,6|TeamD:7,8; Hex Bay +1=45D8C9EEE039AC4F041D5FD951377F4732DF3E34|Battle|TeamA:1,2|TeamB:3,4|TeamC:5,6|TeamD:7,8; Storm