Game Master menu
The Game Master menu allows the Game Master to set up the game session for the Real Time Strategy game mode of DCS Olympus.
In this mode, commanders can play against eachother in a real-time strategy game, where they can spawn a limited amount of units. Each commander can only control units belonging to their coalition. Moreover, they can only see enemy units if detected, so proper placement of radars is crucial.
The Game Master can set up the game session by restricting the unit spawns, setting the setup time, and restricting the eras of the units that can be spawned. Moreover, the Game Master can set the amount of spawn points available for each coalition.
During the setup time, commanders can prepare the battlefield. As long as they have sufficient spawn points, they can place units anywhere on the map. After the setup time ends, the game starts and the restrictions are enforced.
When restrictions are enforced, commanders will no longer be able to spawn ground units, and air units can only be spawned from airfields.
There are multiple additional modes of play. You can disable the spawn restrictions to allow commanders to spawn units freely, but can only see detected units, or you can set the spawn points to 0 to disable unit spawns entirely and force commanders to only use the units they have at the start of the game or that you provide.
);
}}>
{commandModeOptions.restrictSpawns ? (
<>
Unit spawns are restricted. During the SETUP phase, commanders can spawn units according to the settings below. After the SETUP phase ends,
ground/navy units and air spawns are disabled, and commanders can spawn aircraft/helicopters only from airfields.
{commandModeOptions.commandMode === GAME_MASTER && (
)}
{currentSetupTime - serverStatus.elapsedTime > 0 ? (
SETUP ends in {secondsToTimeString(currentSetupTime - serverStatus.elapsedTime)}
) : (
SETUP ended, restrictions active
)}
{commandModeOptions.commandMode === GAME_MASTER && (
)}
>
) : (
Unit spawns are NOT restricted, therefore no setup time is enforced and commanders can spawn units as desired. Only unit detection is enforced.
)}
Options:
{
if (commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
newCommandModeOptions.restrictSpawns = !commandModeOptions.restrictSpawns;
setCommandModeOptions(newCommandModeOptions);
}}
>
{}} disabled={commandModeOptions.commandMode !== GAME_MASTER} />
Restrict unit spawns
{
if (!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
newCommandModeOptions.restrictToCoalition = !commandModeOptions.restrictToCoalition;
setCommandModeOptions(newCommandModeOptions);
}}
>
{}}
disabled={!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER}
/>
Restrict spawns to coalition
{Object.keys(ERAS_ORDER)
.filter((item) => {
return isNaN(Number(item));
})
.map((era) => {
return (
{
if (!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
if (commandModeOptions.eras.includes(era)) newCommandModeOptions.eras.splice(newCommandModeOptions.eras.indexOf(era));
else newCommandModeOptions.eras.push(era);
setCommandModeOptions(newCommandModeOptions);
}}
>
{}}
disabled={!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER}
/>
Allow {era} units
);
})}
Blue spawn points
{
if (!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
newCommandModeOptions.spawnPoints.blue = parseInt(e.target.value);
setCommandModeOptions(newCommandModeOptions);
}}
onIncrease={() => {
if (!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
newCommandModeOptions.spawnPoints.blue = Math.min(newCommandModeOptions.spawnPoints.blue + 10, 1000000);
setCommandModeOptions(newCommandModeOptions);
}}
onDecrease={() => {
if (!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
newCommandModeOptions.spawnPoints.blue = Math.max(newCommandModeOptions.spawnPoints.blue - 10, 0);
setCommandModeOptions(newCommandModeOptions);
}}
>
Red spawn points
{
if (!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
newCommandModeOptions.spawnPoints.red = parseInt(e.target.value);
setCommandModeOptions(newCommandModeOptions);
}}
onIncrease={() => {
if (!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
newCommandModeOptions.spawnPoints.red = Math.min(newCommandModeOptions.spawnPoints.red + 15, 6000);
setCommandModeOptions(newCommandModeOptions);
}}
onDecrease={() => {
if (!commandModeOptions.restrictSpawns || commandModeOptions.commandMode !== GAME_MASTER) return;
const newCommandModeOptions = { ...commandModeOptions };
newCommandModeOptions.spawnPoints.red = Math.max(newCommandModeOptions.spawnPoints.red - 15, 0);
setCommandModeOptions(newCommandModeOptions);
}}
>
{commandModeOptions.commandMode === GAME_MASTER && (
)}