Jump to content
Sign in to follow this  
packtloss

HOWTO: Map/Game Parameters in server.cfg

Recommended Posts

Hi Guys;

I apologize if this is old news, but it's new to me - and i had a hard time finding examples/docs on how to make this work - so i thought i would share, i really hope this helps someone, and im not the only idiot who didnt know about this :)

I run domination and warfare servers, and the difficulty for me is having the map parameters set manually each time the server starts, map changes etc - Defaults are great but generally not what you want.

After a lot of googling, whining and forum posts, i found that i needed to extract the map pbo i wanted to work with, and start variable hunting.

(I'll use Warfare BE for this example)

After extracting WarfareV2_063LiteOA.Takistan and viewing Description.ext,

I found that the mission parameters are stored in WarfareV2_063LiteOA.Takistan\Rsc\Paramters.hpp

*** Keep in mind, these variables can/probably/will change every time a map is updated, dont expect this stuff to work with anything other than WarfareBE 0.63 on OA (There are mission specific vars for vanilla/combined ops, ive left them remmed out) ***

Now, in my server.cfg, i started with the basic mission framework:

class Missions 
{ 
   class warfareBeTakistanDefaults   // Mission Name 
   { 
       template = "WarfareV2_063LiteOA.Takistan";    // File Name 
       difficulty = "veteran";            // difficulty 
        }; 
};

Now, if you look closely at that Parameters.hpp; you will find lines like this:

class aiGroupSizeAI {
	title = "$STR_WF_Gameplay_GroupSizeAI";
	values[] = {2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,35,40,45,50,60,70,80,90,100};
	texts[] = {"2","4","6","8","10","12","14","16","18","20","22","24","26","28","30","35","40","45","50","60","70","80","90","100"};
	default = 10;

Bingo. Now we know the parameter names, possible values and their defaults.

So, you can start building your server.cfg like this:

class Missions 
{ 
   class warfareBeTakistanDefaults   // Mission Name 
   { 
       template = "WarfareV2_063LiteOA.Takistan";    // File Name 
       difficulty = "veteran";            // difficulty 
               class Params   // Values are Mission Defaults
               { 
	// *** AI OPTIONS ***
		// AI Group Size - values[] = {2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,35,40,45,50,60,70,80,90,100};
		aiGroupSizeAI = 10;

		// Player Group Size - values[] = {2,4,6,8,10,12,14,16,18,20,22,24};
		aiGroupSizePlayer = 12;

		// AI Keep Units JIP - 0 = No/Disabled, 1 = Yes/Enabled
		aiKeepUnits = 0;

		// AI Teams - 0 = No/Disabled, 1 = Yes/Enabled
		aiTeams = 1;

	// *** ARTILLERY OPTIONS ***
		// Artillery Calls - 0 = No/Disabled, 1 = Yes/Enabled
		artilleryCalls = 1;

		// Artillery Interface - 0 = No/Disabled, 1 = Yes/Enabled
		artilleryUI = 1;

		// Artillery Range - Values 1 (Short), 2 (Medium), 3 (Long)
		artilleryRange = 3;
                       };
        };
};

Short, for testing: (Running this, you should connect and see your starting funds/supplies parameters are at max)



class Missions 
{ 
   class warfareBeTakistanMoneySupplyTest   // Mission Name 
   { 
       template = "WarfareV2_063LiteOA.Takistan";    // File Name 
       difficulty = "veteran";            // difficulty 
               class Params   // Values are Mission Defaults
               { 
	// *** ECONOMY OPTIONS ***
		// Enconomy Income System - Values - 1 (Full), 2 (Half)
		economyIncomeSystem = 1;

		// Economy Starting Funds East - Values 800,1600,2400,3200,4000,4800,6400,8000,12800,25600,51200,102400,204800
		economyStartingFundsEast = 204800;

		// Economy Starting Funds East - Values 800,1600,2400,3200,4000,4800,6400,8000,12800,25600,51200,102400,204800
		economyStartingFundsWest = 204800;

		// Economy Starting Supplies East - Values 1200,2400,3600,4800,6000,7200,8400,9600,19200,38400,76800
		economyStartingSupplyEast = 76800;

		// Economy Starting Supplies East - Values 1200,2400,3600,4800,6000,7200,8400,9600,19200,38400,76800
		economyStartingSupplyWest = 76800;




               }; 
   }; 
}; 

Now, Here's the missions class with all of the defaults set, as a foundation for you to work with;

class Missions 
{ 
   class warfareBeTakistanDefaults   // Mission Name 
   { 
       template = "WarfareV2_063LiteOA.Takistan";    // File Name 
       difficulty = "veteran";            // difficulty 
               class Params   // Values are Mission Defaults
               { 
	// *** AI OPTIONS ***
		// AI Group Size - values[] = {2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,35,40,45,50,60,70,80,90,100};
		aiGroupSizeAI = 10;

		// Player Group Size - values[] = {2,4,6,8,10,12,14,16,18,20,22,24};
		aiGroupSizePlayer = 12;

		// ???AI Keep Units - 0 = No/Disabled, 1 = Yes/Enabled
		aiKeepUnits = 0;

		// AI Teams - 0 = No/Disabled, 1 = Yes/Enabled
		aiTeams = 1;

	// *** ARTILLERY OPTIONS ***
		// Artillery Calls - 0 = No/Disabled, 1 = Yes/Enabled
		artilleryCalls = 1;

		// Artillery Interface - 0 = No/Disabled, 1 = Yes/Enabled
		artilleryUI = 1;

		// Artillery Range - Values 1 (Short), 2 (Medium), 3 (Long)
		artilleryRange = 3;

	// *** BASE OPTIONS ***
		// AI Commander - 0 = No/Disabled, 1 = Yes/Enabled
		baseAICommander = 1

		// Base Allies - Only for NON-ARROWHEAD, NON-CO - 0 = No/Disabled, 1 = Yes/Enabled
		// baseAllies = 0;

		// Anti-Air Radar - 0 = No/Disabled, 1 = Yes/Enabled
		baseAAR = 0;

		// Base Areas - 0 = No/Disabled, 1 = Yes/Enabled
		baseArea = 1;

		// Base Area Limit - Values 1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,22,24
		baseAreaLimit = 2;

		// Base Auto Defenses (AI Controlled Defenses) - 0 = No/Disabled, 1 = Yes/Enabled
		baseAutoDefenses = 1;

		// Base Auto Defense Range - Values (Meters) 50,100,150,200,250,300,350,400,450,500,600,700,800,900,1000
			baseAutoDefensesRange = 250;

		// Base Building Limit (Max number of each type of building) - Values 1,2,3,4,5,6,7,8,9,10
		baseBuildingsLimit = 2;

		// Base HQ Deployment Cost - Values 100,200,300,400,500,600,700,800,900,1000,1500,2000,2500,3000,3500,4000,5000
		baseHQDeploycost = 100;

		// Base Patrols (AI Infantry) - 0 = No/Disabled, 1 = Yes/Enabled
		basePatrols = 0;

		// Base Spawn System Restriction - 0 = No/Disabled, 1 = Yes/Enabled
		baseSpawnSystemRestrict = 1;

		// Base Starting Distances - Values 1000,1500,2000,2500,3000,3500,4000,4500,5000,5500,6000,6500,7000,7500,8000,8500,9000
		baseStartingDistance = 5500;

		// Base Starting Locations - Values - 0 (West: North), 1 (West: South), 2 (Random)
		baseStartingLocations = 2;

	// *** ECONOMY OPTIONS ***
		// Enconomy Income System - Values - 1 (Full), 2 (Half)
		economyIncomeSystem = 1;

		// Economy Starting Funds East - Values 800,1600,2400,3200,4000,4800,6400,8000,12800,25600,51200,102400,20480
		economyStartingFundsEast = 800;

		// Economy Starting Funds East - Values 800,1600,2400,3200,4000,4800,6400,8000,12800,25600,51200,102400,20480
		economyStartingFundsWest = 800;

		// Economy Starting Supplies East - Values 1200,2400,3600,4800,6000,7200,8400,9600,19200,38400,76800
		economyStartingSupplyEast = 1200;

		// Economy Starting Supplies East - Values 1200,2400,3600,4800,6000,7200,8400,9600,19200,38400,76800
		economyStartingSupplyWest = 1200;

		// Economy Supply System - Values 0 (Truck), 1 (Time)
		economySupplySystem = 1;

	// *** ENVIRONMENT OPTIONS ***
		// Environment Fast Time - Values 0 = No/Disabled, 1 = Yes/Enabled
		environmentFastTime = 0;

		// Environment Time of Day - Values 0-23 (0 - 00:00, 1 - 01:00, ... 22 - 10:00, 23 - 11:00)
		environmentTimeOfDay = 9;

		// Environment Weather - Values 0 = No/Disabled, 1 = Yes/Enabled
		environmentWeather = 0;

	// *** GAMEPLAY OPTIONS ***
		// Gameplay Alice (Civillians) - Values 0 = No/Disabled, 1 = Yes/Enabled
		gameplayAlice = 0;

		// Gameplay Hangars - Values 0 = No/Disabled, 1 = Yes/Enabled 
		gameplayHangars = 1;

		// Gameplay Body Timeout - Values (Seconds) 60,120,180,240,300,600,1200,1800,2400,3000,3600
		gameplayBodiesTimeout = 240;

		// Gameplay Empty Vehicle Timeout - Values (Seconds) 60,120,180,240,300,600,1200,1800,2400,3000,3600
		gameplayVehiclesTimeout = 1200;

		// Gameplay Fast Travel - Values 0 = No/Disabled, 1 = Yes/Enabled 
		gameplayFastTravel = 0;

		// Gameplay Friendly Fire (Buildings) - Values 0 = No/Disabled, 1 = Yes/Enabled 
		gameplayFriendlyFire = 0;

		// Gameplay Grass Distance - Values: 10 (Far), 20 (Medium), 30 (Short), 50 (Toggleable)
		gameplayGrass = 50;

		// Gameplay Kick Teamswappers - Values 0 = No/Disabled, 1 = Yes/Enabled 
		gameplayKickTeamswap = 1;

		// Gameplay Limited Map Boundaries - Values 0 = No/Disabled, 1 = Yes/Enabled 
		gameplayLimitedBoundaries = 1;

		// Gameplay Show Player Names - Values 0 = No/Disabled, 1 = Yes/Enabled
		gameplayShowUID = 1;

		// Gameplay Block Spacebar Scanning - Values 0 = No/Disabled, 1 = Yes/Enabled
		gameplaySpacebarScanning = 1;

		// Gameplay Track AI on Map - Values 0 = No/Disabled, 1 = Yes/Enabled
		gameplayTrackAI = 1;

		// Gameplay Track Players on Map - Values 0 = No/Disabled, 1 = Yes/Enabled
		gameplayTrackPlayers = 1;

		// Gameplay Unit Balancing - Values 0 = No/Disabled, 1 = Yes/Enabled
		gameplayUnitsBalancing = 0;

		// Gameplay Upgrades (East) - Values 0 = No/Disabled, 1 = Yes/Enabled
		gameplayUpgradesEast = 1;

		// Gameplay Upgrades (West) - Values 0 = No/Disabled, 1 = Yes/Enabled
		gameplayUpgradesWest = 1;

		// Gameplay Victory Condition - Values 0 (Annihliation), 1 (Assassination), 2 (Supremecy)
		gameplayVictoryConditions = 2;

		// Gameplay View Distance - Values (Meters) 200,500,800,1000,1500,2000,2500,3000,3500,4000
		gameplayViewDistance = 4000;

	// *** ADDITIONAL MODULE OPTIONS ***
		// Module Counter Measures (VANILLA ARMA2  ONLY) - Values 0 = No/Disabled, 1 = Yes/Enabled
		//moduleCM = 0;

		// Module EASA Aircraft Weapons - Values 0 = No/Disabled, 1 = Yes/Enabled
		moduleEASA = 1;

		// Module High Command - Values 0 = No/Disabled, 1 = Yes/Enabled
		moduleHC = 1;

		// Module ICBM (Nuke) - Values 0 = No/Disabled, 1 = Yes/Enabled
		moduleICBM = 0;

		// Module ISIS Injury/Revive - Values 0 = No/Disabled, 1 = Yes/Enabled
		moduleISIS = 0;

		// Module Volumetric Clouds (Weather) - Values 0 = No/Disabled, 1 = Yes/Enabled
		moduleVC = 0;

	// *** RESPAWN OPTIONS ***
		// Respawn Town Camps - Values 0 = No/Disabled, 1 = Yes/Enabled
		respawnCamps = 1;

		//  Respawn at Camps - Values 0 = No/Disabled, 1 = Yes/Enabled
		respawnCampsRule = 1;

		// Respawn Delay timer - Values (Seconds) 10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90
		respawnDelay = 30;

		// Respawn with Gear - Values 0 = No/Disabled, 1 = Yes/Enabled
		respawnGear = 1;

		// Respawn at MASH - Values 0 = No/Disabled, 1 = Yes/Enabled
		respawnMASH = 1;

		// Respawn at HQ - Values 0 = No/Disabled, 1 = Yes/Enabled
		respawnMobile = 1;

		// Respawn Towns Range - Values (Meters) 50,100,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850,900,950,1000
		respawnTownsRange = 550;

	// *** RESTRICTION OPTIONS ***
		// Restriction - Advanced Aircraft - Values 0 = No/Disabled, 1 = Yes/Enabled
		restrictionAdvancedAir = 0;

		// Restriction - Gear - Values 0 = No/Disabled, 1 = Yes/Enabled
		restrictionGear = 0; 

		// Restriction - Kamov (OH/VANILLA ONLY) - Values 0 = No/Disabled, 1 = Yes/Enabled
		//restrictionKamov = 0;

	// *** TOWN OPTIONS ***
		// Towns - Amount Values 0 (Extra Small), 1 (Small), 2 (Medium), 3 (Large), 4 (Full)
		townsAmount = 3;

		// Towns - Striker (Assault Teams) - Values 0 = No/Disabled, 1 = Yes/Enabled
		townsStriker = 0;

		// Towns - Striker (Max) - Values 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,24,26,28,30,32,34,36,38,40
		townsStrikerMax = 4;

		// Towns - Occupation Enabled - Values 0 = No/Disabled, 1 = Yes/Enabled
		townsOccupation = 1;

		// Towns - Occupation Difficulty - Values 1 (Light), 2 (Medium), 3 (Hard), 4 (Insane), 5 (Automatic)
		townsOccupDifficulty = 1;

		// Towns - Occupation Reinforcment - Values 0 = No/Disabled, 1 = Yes/Enabled
		townsOccupReinforcement = 0;

		// Towns - Patrols - Values 0 = No/Disabled, 1 = Yes/Enabled
		townsPatrol = 0;

		// Towns - Patrols (Max) - Values 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,24,26,28,30,32,34,36,38,40
		townsMaxPatrol = 12;

		// Towns - Protection Radius - Values (Meters) 0,50,100,150,200,250,300,350,400,450,500
		townsProtectionRange = 400;

		// Towns - Purchase Militia - Values 0 = No/Disabled, 1 = Yes/Enabled
		townsPurchaseMilita = 0;

		// Towns - Resistance Enabled - Values 0 = No/Disabled, 1 = Yes/Enabled
		townsResistance = 1;

		// Towns - Resistance Difficulty - Values 1 (Light), 2 (Medium), 3 (Hard), 4 (Insane)
		townsResistanceDifficulty = 1;

		// Towns - Resistence Reinforcments - Values 0 = No/Disabled, 1 = Yes/Enabled
		townsResistanceReinforcement = 0;

		// Towns - Resistence Type (CO ONLY) - Values - 0 (Guerillas), 1 (Takistani Locals)
		//townsResistanceType = 1;

		// Towns - Starting Mode - Values - 0 (None), 1 (Divided), 2 (Nearby)
		townsStartingMode = 0; 


               }; 
   }; 
};  

Share this post


Link to post
Share on other sites

I knew it was possible, but never took the time to set it up. But you made it pretty easy, so I gave it a quick test for another map, and it works!

Thanks for sharing this info :)

Share this post


Link to post
Share on other sites

Yip very handy, starting to get in the scripting stuff slowly...

But now at least our dedicated server is running Straight and no need to set all the parmameters all the time when we want to start the thing hehehehehe

Handy handy....thanks bro....apreciated

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×