Random Lua Elements-How, When, and Why

When I saw the Lua tutorial video showing how it could be used to make random elements in Command, I was excited. My excitement diminished as I started making an overambitious scenario involving random Lua and recognized both the limitations and difficulty. But with that lesson in mind, I continued using random Lua.

While still frustrating at times, in part due to me not being a programmer, I found the benefits to be worth it. (Ckfinite, who is a programmer, has been a great help in getting my Lua efforts to work, and has provided many necessary technical corrections to this post. )

Event Editor vs. Lua.

So, in layman’s terms, the existing event editor allowed for an “either or” option. Operation Square Peg: Syrian MiG-29s are sitting at Damascus International, and a probability event fires to see if they’re dumb enough to mess with F-22s. The “attempted intercept” mission switches from inactive to active, and that’s all it can do.

Lua would allow that same group of MiG-29s to either all take off,  none of them take off, have a portion of them take off, or have them take off to fly to another airbase rather than engaging the attackers.

How To Make Random Lua Events

First, a necessary warning is in order. Even with the best scripting available, the random elements will still not be as random as you’d probably think they’d be-and the effectiveness of a simple “math.random” can vary a lot by computer.  Thus, one should have modest expectations.

That being said, now onto the detail of the scripts.

-First, use the event editor. The script will be typed/copied into the “action”, and the trigger will be at the start of the scenario. You can either do the more recently added “scenario loaded” trigger or a classic “scenario start + 1 second time” one. I’ve used both and personally find the latter a little easier to handle.

To help prevent a “stuck” result, one can use a random seed generation. The example is math.randomseed( os.time() )

However, it is vital not to overseed. Only make sure the randomseed activates once at the beginning of the scenario. (For my existing scenarios, which have only one random script at the beginning anyway, it’s not such a big deal, but for a scenario with, for instance, repeated random spawns, do not use a randomseed in each spawn event)

Now for the random elements themselves. I’ll begin with the sub generation event from Best of the West, Worst of the East, touched up a bit:


math.randomseed( os.time() )
a = math.random(1,2)
if a == 1 then
  ScenEdit_AddUnit({type='Sub', side='USSR', name='B-23', dbid='187', latitude='49.3812997111192', longitude='-36.8903957715054'})
elseif a == 2 then
  ScenEdit_AddUnit({type='Sub', side='USSR', name='B-25', dbid='147', latitude='49.3812997111192', longitude='-36.8903957715054'})
a = math.random(1,3)
if a == 1 then
  ScenEdit_AddUnit({type='Sub', side='USSR',name='B-10', dbid='278', latitude='50.52351341355', longitude='-37.177899984719'})
elseif a == 2 then
  ScenEdit_AddUnit({type='Sub', side='USSR',name='B-15', dbid='278', latitude='50.52351341355', longitude='-37.177899984719'})
elseif a == 3 then
  ScenEdit_AddUnit({type='Sub', side='USSR',name='K-115', dbid='391', latitude='50.52351341355', longitude='-37.177899984719'})

a = math.random(1,3)

if a == 1 then
  ScenEdit_AddUnit({type='Sub', side='USSR', name='K-18', dbid='159', latitude='49.8531552461574', longitude='-36.2143146634912'})
if a == 1 then
  ScenEdit_AddUnit({type='Sub', side='USSR', name='K-16', dbid='363', latitude='50.1531552461574', longitude='-36.3143146634912'})
elseif a == 2 then
  ScenEdit_AddUnit({type='Sub', side='USSR', name='K-5', dbid='363', latitude='50.1531552461574', longitude='-36.3143146634912'})
ScenEdit_AddUnit({type='Sub', side='USSR', name='B-8', dbid='287', latitude='48.9941488964394', longitude='-35.8765853708755'})
a= math.random(1,2)
if a == 1 then
  ScenEdit_AddUnit({type='Sub', side='USSR', name='B-7', dbid='287', latitude='50.051014008713', longitude='-41.5623833495527'})
a= math.random(1,50)
if a <40 then
  ScenEdit_AddUnit({type='Sub', side='USSR', name='B-104', dbid='187', latitude='49.4764836877471', longitude='-38.8365478377241'})
elseif a>=40 then
  ScenEdit_AddUnit({type='Sub', side='USSR', name='K-474', dbid='117', latitude='49.4764836877471', longitude='-38.8365478377241'})


What all that code represents is the following (on-paper) formula:

-50% chance of either a weak Foxtrot or much stronger Kilo being included.

-2/3rds chance of a Juliett, 1/3 chance of an Echo II.

-1/3 chance of a low-tech but fast November

-A Hotel II SSN mod will always appear, but its name will be different.

-A Whiskey named B-8 will always appear.

-A Whiskey named B-7 has a 50% chance of appearing.

-A Foxtrot has a 4/5ths chance of appearing, and a Charlie II a 1/5th chance.


You can try this in the console-all you need is the DB3K and a side named “USSR”. Go and see what subs come up. As you can see, this is a large series of Math.random commands, accompanying basic Scenedit-addunit scripts.

Remember to:

-Make sure each math.random is “contained” with its own end line.

Changing AI Missions:

Now for the Lua script in They Came From The Museum.


math.randomseed( os.time() )

a = math.random(1,10)

if a<5 then

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #1′, ‘NONE’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #2′, ‘NONE’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #3′, ‘NONE’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #4′, ‘NONE’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #5′, ‘NONE’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #6′, ‘NONE’)

elseif a>=5  and a<8 then

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #1′, ‘Close Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #2′, ‘Close Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #3′, ‘Close Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #4′, ‘Close Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #5′, ‘Close Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #6′, ‘Close Patrol’)

elseif a>=8 then

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #1′, ‘Aggressive Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #2′, ‘Aggressive Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #3′, ‘Aggressive Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #4′, ‘Aggressive Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #5′, ‘Aggressive Patrol’)

ScenEdit_AssignUnitToMission(‘Ukrainian Flanker #6′, ‘Aggressive Patrol’)



This is all part of a single “math.random” element, so unlike the submarine example, there’s no need to punctuate it with “Math.random (_,_), ends. If A is 4 or less, the Ukrainian Su-27s just stay at their base and don’t participate in the battle at all. If it’s 5 to 7, they launch, but do so as part of a timid patrol over their own heartland. If it’s 8 to 10, they are assigned to a patrol which has a large prosecution area.

Note that, for the extra work, making sure there’s an option to explicitly remove the units from the missions is essential-especially if you’re using a “scenario loaded” startup event. Otherwise, if it activates “Close Patrol” and the scenario developer saves, and it rolls a 3 next time, rather than cancel the mission, it will just stick with the status quo (in this case, ‘Close Patrol’)-so include a “Assign to none” option.

Also, I got tripped up by the numbers when making the script. Make sure there’s no overlapping values.

For both, you can accomplish this with a ScenEdit_Addunit(Name1) and a Scenedit_AssignunitToMission (Name1), (Mission1) command in the same script. A simple version involves going to the Bering Sea, making a patrol with the exact name NorthPatrol (no spaces), and running the following.

ScenEdit_AddUnit({type=’Ship’, side=’USN’, name=’USS Joachim Pease’, dbid=’562′, latitude=’57.9134536696492′, longitude=’-165.17805145352′})
ScenEdit_AssignUnitToMission(‘USS Joachim Pease’, ‘NorthPatrol’)

This should create a Bainbridge-class cruiser called the “USS Joachim Pease”, and immediatley assign it to the “NorthPatrol” mission (whatever that is)

Pitfalls and Promise

Best of the West, Worst of the East was a sour first start-not unplayable or unreleasable, but a learning experience. There were technical issues (the earliest Lua release had a tendency to get “stuck” on certain combinations, since fixed, especially with randomseeds added), and gameplay ones (I’ve felt I was so obsessed with the random Lua part of the scenario that I neglected the actual playtesting of it.)

Beyond that, there were issues where I felt wrong. First, in my quest to make as random and diverse a fleet as possible, I went too far from the original concept of seeing how capable the older submarines of the USSR were. A Kilo is not anyone’s idea of the “worst” sub, and neither is an Echo with heavy ASMs.

While specific details like those could be easily fixed with changes to the spawning script, I felt the issues went deeper than that. Simply making the random units happen on the player’s side at the very beginning of the scenario had its issues. This is double the case if the random units are extremely varied, as was the case in that scenario. A win-at-all-costs player could easily reload the scenario until they got the best units, and even someone who took what the scenario gave them would have the experience differ drastically based on nothing they did.

So when I next turned to Lua, I chose to limit it. Only a small portion of the scenario was actually affected by the random script, it occurred on the opponents side rather than the players, and two out of the three outcomes were not immediately obvious.

Such an experience was a lot more satisfying-adding just enough variance to a scenario without consuming it. While there are of course exceptions to every rule, my general principle after the Lua scenarios-and by seeing variance in other games-is that they should alter the difficulty or direct experience but not fundamentally change it so that its outcome becomes more determined by the random changes than by the player’s actions.

Another advantage a Lua script has over a conventional event is that it’s more easily hidden without the need to change message settings. “Event A was triggered but not fire-failed probability check” is displayed right there, but Lua just gives “Event A has been fired”, while the real roll is not noticeable (right away).

One should start small with Lua and not get discouraged, for it can do so much.

Geography and Scenario Locations

There’s nothing in the editor constraining the geographical deployment of units in Command. If I want to put ten airfields full of B-52s in Bulgaria, I can do that. But even if there aren’t hard-coded restrictions on units in Command, there’s a lot of factors that push scenarios to specific areas.

The two biggest factors are:

-Objectives. Unless it’s an open-ocean scenario (more on that later), it will be focused around the objective. So if the objective is in one country, then that’s where the scenario will have to take place. Of course, the objective could be ships at sea, in which case it’s the waters they could conceivably be in.

-Capabilities. The US Navy deploying carriers around the world is quite different from two small nations participating in a war with only short-ranged planes and boats at their command. So while the American carrier launching strikes against a target in Central Asia is able to be in multiple locations, the Uzbek airfield also launching strikes cannot be, with the limitations that implies.

Open-ocean battles are a unique experience. They can be thought of as either broad area-scenarios, or as scenarios whose locales are still specific, only specific in an expansive way. Open-sea scenarios change the objectives from geographical areas (i.e, gain control of the water around Iceland) to ships (i.e, either escort the convoy across the ocean safely or sink it). This is because there’s little point in just venturing out into the sea for its own sake. These game-changers and the huge areas involved give them a unique feeling of play.

Then there’s the issue of “exercise scenarios”, which involve fictional nations. Most of these take place in the nation where the exercise’s “Blue Force” originates in, understandable given Blue’s normal objective of defending itself. A few times exercises take place seemingly in random locations, whether to use a certain type of terrain or for ease on the part of the scenario creator.

So there’s nothing strange about scenarios seeming to take place in certain areas often-some areas just are important and simultaneously in the reach of the combatants. The archetypical example of this is the GIUK gap. Because it is an extremely important objective (controlling access to the Atlantic from the Russian mainland) and within the capabilities of both sides to reach (Just within range of Soviet land-based aviation and plentiful NATO bases in the UK, to saying nothing of submarines), it’s not surprising that in real life and fiction alike, it has been the center of naval strategy.


The Range of Results in Scenarios

While making a post on the Steam forums (probably against my better judgment) defending the plausibility of Command, I pointed out that in two my scenarios I frequently achieved similar results to comparable historical battles. The two were Regaining Honor and They Came From The Museum.

 They Came From The Museum

Average loss when playtesting: Two aircraft, one day. Sometimes more due to the “endgame-factor”

Compared to: Russo-Georgian War, Russia loses six aircraft, maximum of four in a day.

Commentary: The “museum men”, using Soviet-surplus aircraft against an air defense system of a similar level, albeit an ill-maintained one with sloppy crews, suffer an average of two to three losses in the day of battle. Russian aircraft of a similar vintage in the war with Georgia suffered a maximum of four in one day, but the biggest source of losses (friendly fire from jittered ground troops) is not an issue, due to the nature of the scenario.


Regaining Honor

Average loss when playtesting: ca. 20 Yemeni aircraft, 0-4 American aircraft

Compared to: Desert Storm: 1 confirmed coalition air/air loss, 20-30 Iraqi air/air losses, several close calls.

Commentary: This is interesting, for even though the opponents are similar, the American circumstances are quite different. On the plus side, they have AMRAAMs, and later models of said AMRAAM than the early 1990s versions that barely missed the real Gulf War. (These, of course, are still failure-prone: I’ve had an old jammer on a Yemeni Su-22 successfully decoy a futuristic AIM-120D in a playthrough).

On the minus side, there are a lot fewer American fighters and – more importantly – they’re armed with fewer missiles in their loadouts, with a “the most air resistance we’ll meet is a few fighters that’ll probably just get the hint and turn back” mindset vs. “multiple squadrons”.

Losing all your fighters with no kills is quite possible-one point I’ve found is that nearly all my four-kill (I’ve never managed any more) scenarios occurred in an awkward spot where the Americans had run out of ammo, but before the next wave of patrolling fighters could quite get there (once they do, the YAF is toast). This is of course the scenario any aviation commander dreads, regardless of their total overall strength, and one of the reasons why Horner and Schwarzkopf put so much effort into creating their “Big Blue Blanket”.

So, we’ve gotten similar results. But I’d want to examine range in a little more detail. One of the inspirations besides the Steam argument was the post by a developer about such ranges, and the dangers of trying to “fit” an exact historical situation at the expense of flexibility. (Ironically, a Bekaa scenario draft was posted, and AAR logs show the Israelis losing a few more fighters than they did historically).

Results are one thing, but analysis of the true range can go beyond them.

-If an endgame calc happens at all, that’s a sign of vulnerability. Yes, an 80% final chance of hitting is different than a 4% one, but it still indicates a threat is there, that isn’t in a less advanced scenario where the enemy never gets a chance to attack. So you dodged the missiles, but that they had a chance to hit means you were a few dice rolls away from disaster.

-Range concerning historical accuracy is one thing, but so is range concerning scenario difficulty. Everyone will find some scenarios to be more or less difficult than others, so it’s important that the designer go for a range rather than a specific exact difficulty.

-A lot of the range depends on the scenario designer’s intentions. Often when making a scenario, I go “do I want this to be hard or easy”. If I go with “easy” it doesn’t mean I make it a no-loss stomp, but if I notice that say, one component is relatively ineffective, I don’t try to change it to make it deadlier. If I go with hard, it means that if I lose a lot of equipment while testing it, I don’t necessarily change it. (if I do change anything in either , it’s frequently altering the scoring criteria rather than anything in-game).

-For gauging the range, it helps a lot to know what the range historically was. I’m especially thinking of air-to-air missiles. A lot of pop-culture media gives the impression of said missiles being incredibly accurate (especially if it’s anything American fired at anything non-American). In truth, the AIM-7 never had more than a 33% success rate against even the easiest targets, while the AMRAAM has had a circa 50% hit rate against similarly weak opposition (and some notable misses like one incident over Serbia where a MiG-29 dodged them repeatedly). With that in mind, missile rates don’t look so surprising.

-The game comes full circle when you go into completely hypothetical scenarios. Instead of speculating if Command matches the engagement, there’s speculation if the engagement would match Command.

Platforms That Never Were: F-20

The F-20 started off as an upgraded version of the F-5, a low-end fighter that had enjoyed great quantities of export success. The F-5 saw only limited use (largely as an “aggressor” trainer) in US service, but was used extensively by the South Vietnamese and Iranian air forces.

The F-20 grew more advanced, to the point where it kept the basic appearance and layout of the F-5 but little else. Promoted as an economical, reliable fighter, it nonetheless attracted only tentative sales that were cancelled when it was clear the production run would not be large enough to be profitable.

Was the F-20’s fate cruel, a can-do little fighter sacrificed for the sake of shallow shininess? Maybe. First, it was always a “loophole” fighter, being most intensely pursued during a period of Carter administration policy that prevented the widespread export of “first-line” equipment. Once the F-16 could be sold to more than just the closest allies, it was. For all of the advances of the F-20, it was still an older design compared to the much newer and more upgradable F-16.

A RAND Corporation study on the F-20 was somewhat sympathetic but still remained skeptical. The paper noted that the claimed serviceability and reliability figures were from a handful of prototypes in an environment where any fighter could be made to look good (rather than many fighters in a field environment, or, in the case of the F-16, actual combat over Osirak and Lebanon). Also, it noted that by trying to match and even exceed the F-16, the Tigershark was getting more and more complex.

Finally, while the US Air Force did have a vested interest in getting as much of an economy of scale for the F-16 as possible, this was not necessarily a bad thing. A huge dual F-16/F-20 buy for the Air National Guard would have created logistical issues and given the appearance of even more pork politics in an industry already notorious for its porcine qualities.

With the addition of the F-20 to the Command Database, it can be used. The question is who would use it? The plane historically was shopped around to nearly everyone from India to Venezuela.

The most obvious users of the F-20 are:

  • Users of the F-5 replacing it with the F-20.
  • Air Forces that historically bought the F-16, but chose the F-20 instead.

If one is willing to be more fanciful, it can be put in the hands of anyone not politically wedded to non-Western aircraft. One paper even proposed donating two hundred Tigersharks to mainland China to pin down greater numbers of Soviet planes away from the European theater.

As for whether it would be a good choice, well, that’s for the scenario designers and players to find out.

The Two Yemeni Air Forces

April 2, 2015, scenario. The Yemeni government faces mundane no-confidence challenges that nonetheless undermine its authority, and a coup is feared. US drone strikes, with the inevitable civilian casualties, are angering the population, and the Americans are moving ever-stronger forces into the area, assuming a total collapse is imminent.

Enter the unnamed and fictional defense minister, who has restored Yemen’s creaking air force to a level of readiness unseen in many years. The goal is simple-conduct aggressive air patrols, and shoot down American drones to show the people that the government cares about its national sovereignty. There’s a small chance that the air armada massed in Djibouti will challenge the  inferior YAF, but would it? Drones are meant to be expendable-right? Riiight?

April 2, 2015, real life. Yemen, a long-divided state that has been barely united at best, is now completely dismembered. With a coup amidst its longstanding civil wars, the nation has fallen into chaos. The military’s heavy equipment, already suffering from years of poor funding and countless bases overrun, is being pounded relentlessly by Saudi-led airstrikes that aim to destroy anything the Houthis can use.

Quite a different situation. Regaining Honor, the previously mentioned scenario, was made in mid-2014. I guess I was wrong. :p

But I wasn’t wrong in a bad way. This wasn’t a “predicting ten of the last three financial crises” boast, I wasn’t advertising it as being what I thought would happen, and absolute realism wasn’t the goal.

(The goals were A: To put the player in the shoes of an outgunned third-world air force and see how they could manage against a superior opponent, and B: To give them, in the form of the initially vulnerable drones, a chance to see how far they wanted to push their luck. Simply stopping after shooting down a few and accepting less points rather than risking escalation is a perfectly acceptable way to play.)

Just interesting to see how the actual situation regarding the Yemeni Air Force on the scenario’s April 2 was about as far as could be from its condition on the real April 2.

How to Name a German Unit

A Short History of the BundeswehrBundeswehr

Shortly after the end of the second world war the demand for a new (West) German army became clear, even though it was decided at the Potsdam Conference that Germany should be demilitarized. The German Chancellor Konrad Adenauer considered joining the NATO as one of the most important goals for his government and it was considered an important step to regain sovereignty.

First preparations were made when Adenauer named the former General Gerhard Graf von Schwerin his “special adviser for security questions”. In 1950 the so called “Amt Blank” was formed under Theodor Blank which would later become the ministry of defense. Strictly speaking this was illegal but the western allies tolerated and supported the step. The office was supposed to make plans to form a paramilitary police force.

The Federal Republic joined the NATO and regained nearly full sovereignty in 1955. This was the official start for forming new armed forces.

The new armed forces were supposed to have an army (Heer), a navy (Bundesmarine) and an air force (Luftwaffe) with a strength of less than 500.000 men. The FRG (Federal Republic of Germany) also assured that the armed forces would be part of a European defense system and that no chemical, biological or nuclear weapons would be developed. The United States agreed to deliver large amounts of weapons since Germany did not have any capability to build weapons.

Adenauer visits troopsThe Bundeswehr was officially founded on the 12th of November, 1955 – the 200th birthday of the prussian general and military reformer Gerhard von Scharnhorst. 

The nucleus of the new armed forces was the paramilitary Bundesgrenzschutz (Federal Border Guard). Nearly all the officers and personnel that joined the new army were former members of the Bundesgrenzschutz. The naval part part of the BGS was completely integrated into the Bundeswehr.

Finding a name was difficult: Wehrmacht was of course unusable so it was decided to use the name Bundeswehr since it was similar to the Reichswehr of the first German Republic. The proposal was made by the former General Hasso von Manteufel.

It was also difficult to find acceptable personal since nearly all potential officers and noncommissioned officers had served in the Wehrmacht. A committee was formed to test the candidates for the rank of colonel upwards. In 1959 of the 14.900 officers 12.360 had served in the Wehrmacht or the Reichswehr and 300 in the Waffen-SS. Confronted with that fact Adenauer answered: “NATO does not take 18 year old generals”.

The first bases were Andernach for the army, Wilhelmshaven for the navy and Nörvenich for the air force. A draft and reserve system was implemented.


The plan was to form 12 divisions by the end of 1959. After consulting with military experts like the former Feldmarschall Erich von Manstein it was decided to make the Heer fully mechanized; with brigades as the smallest operational unit instead of regiments.

Three Korps were formed with 4 divisions each and a tank regiment as a mobile reserve. In addition to the field army a territorial army was formed which was not under NATO command.

Naming (Heer)

ManöverThe divisions were formed as tank or mechanized divisions in turn so that the 1., 3., 5., … were tank divisions and the 2., 4., 6., … were mechanized divisions. This pattern was disrupted by the 1. Gebirgsdivision (8) and the 1. Luftlandedivision (9) so that the next formed division was a tank division (10. Panzerdivision). Usually a Panzerdivision that had not reached full strength was classified as Panzergrenadierdivision.

The Brigades were numbered in the order they were formed. The 1., 2. and 3. Brigade where part of the 1. Panzerdivision, 4., 5., and 6. Brigade part of the 2. Panzergrenadierdivision. The army was supposed to have 36 Brigades. The additional Brigades of the Territorialheer started with the number 52. Every Panzerdivision had two Panzerbrigaden and one Panzergrenadierbrigade. Every Panzergrenadierdivision had one Panzerbrigade and two Panzergrenadierbrigaden.

The regiments were numbered 100, 200 and 300. The 300. Panzerregiment was never formed though.

The Battalions were numbered after the Brigades so the 1st Battalion of the 1st Brigade is the 11th Brigade. For example: The Panzerbataillon 64 was a Battalion of the Panzerbrigade 6. The Panzerbatallion 363 was an Batallion of the Panzerbrigade 36.

Today with only two divisions left and a lot of shifting units around its no longer possible to recognize the division or brigade a battalion belongs to by the number.

Some units are special training units and have a Lehr in the name and some units have an addition to the name usually referring to region they are stationed in.

Overview (Heer)

  • Heer – Army
  • Panzerdivision (PzDiv) – Armored Division
  • Panzergrenadierdivision (PzGrenDiv) – Mechanized Division
  • Gebirgsdivision (GebDiv) – Mountain Division
  • Luftlandedivision (LLDiv) – Airborne Division
  • Jägerdivision (JDiv) – Light Infantry Division
  • Artilleriebrigade (ArtBrig) – Artillery Brigade
  • Gebirgsjägerbrigade (GbJgBrig) – Mountain Infantry Brigade
  • Pionierbrigade (PiBrig) – Engineer Brigade
  • Luftlandebrigade (LLBrig) – Airborne Brigade
  • Artillerieregiment (ArtRgt) – Artillery Regiment
  • Falschirmjägerregiment (FschJgRgt) – Paratrooper Regiment
  • Artilleriebataillon (ArtBtl) – Artillery Battalion
  • Pionerregemient (PiRgt) – Engineer Regiment
  • Panzerartilleriebatallion (PzArtBtl) – Self-propelled Artillery Battalion
  • Feldartilleriebataillon (FArtBtl) – Field Artillery Battalion
  • Raketenartilleriebataillon (RakArtBtl) – Rocket Artillery Battalion
  • Gebirgsjägerbatallion (GebJgBtl) – Mountain Infantry Battalion
  • Aufklärungsbatallion (AufklBtl) – Reconnaissance Battalion
  • Pionerbatallion (PiBtl) – Engineer Battalion
  • Gebirgspionierbattalion (GebPiBtl) – Mountain Engineer Battalion
  • Panzerpionierbattalion (PzPiBtl) – Armored Engineer Battalion
  • Falschirmjägerbattalion (FschJgBtl) – Paratrooper Battalion
  • Panzeraufklärungsbattalion (PzAufklBtl) – Armoured Reconnaissance Battalion


The Marine is the smallest branch of the German armed forces. It traces its roots back to the Reichsflotte (Imperial Fleet) of the revolutionary era of 1848-52. When the Marine was formed, it integrated several units of the former Kriegsmarine. Also included minesweeper units and small patrol vessels of the federal border guards.

During the Cold War the German navy had three major tasks:

  • Keep the entries to the Baltic sea open
  • Keep the navies of Warsaw Pact bottled inside the Baltic
  • Protect the Atlantic convoys

The duties have changed since the end of the Cold War. The German navy is now operating worldwide and is participating in counter terrorism and peacekeeping missions.

Naming (Marine)

ZerstörerThe first ships the german navy received were several Sloops and Destroyers of the Royal Navy for to train the sailors. Those units were named after famous Prussian officers:

  • Speer
  • Gneisenau
  • Graf Spee

The first Zerstörer were simply numbered (Zerstörer 1 – Zerstörer 6), the next class of destroyers was named after German countries. The last three destroyers lend from america were named after high ranking officers of the Wehrmacht. This was very controversial especially when it was realized that Mölders was a devoted Nazi and Rommel not involved in the resistance against Hitler. Later it was decided not to name any ships after Persons:

  • Lütjens
  • Rommel
  • Mölders

The Fregatten build in Germany are named after German countries or big German cities. The ships named Emden even carried the iron cross the 1st Emden had received in World War 1. Some of the Fregatten are often refereed to as destroyers outside Germany since they are similar in size and armament to destroyers. During the first years the Fregatte were classified as Geleitboote since the term Fregatte was not common in the imperial navy:

  • Augsburg
  • Emden
  • Schleswig-Holstein
  • Sachsen

The Korvetten are named after German cities:

  • Braunschweig
  • Oldenburg
  • Erfurt

The Schnellboote are named after birds and carnivores. The remaining Schnellboote are supposed to be replaced by a new class of corvettes in the near future.

  • Silbermöwe
  • Raubmöwe
  • Panther
  • Hyäne

Minesweepers and Minehunters are usually named after smaller cities:

  • Göttingen
  • Koblenz
  • Tübingen
  • Fulda

Landing crafts are named after fish:

  • Lachs
  • Schlei
  • Wels

The Replenishment Ships are named after German cities. The three ships of the Berlin-class are named after cities where a parliament was placed.

  • Lüneburg
  • Glücksburg
  • Bonn

Submarines traditionally are only numbered with a couple of exceptions for boats formerly used by the Kriegsmarine.

  • Wilhelm Bauer
  • Hai
  • Hecht

The Marine also operates a small number of planes and Helicopters for maritime surveillance, SAR and to be used on board of the frigates. The are organised into Marinefliegergeschwader (MFG).

  • Marinefliegergeschwader 3 „Graf Zeppelin“

Overview (Marine)

  • Zerstörer – Destroyer
  • Fregatte – Frigate
  • Korvette – Corvette
  • Schnellboot – Fast Attack Craft
  • Minenräumboot – Minesweeper
  • Minenjagdboot – Minehunter
  • Landungsboot – Landing Craft
  • Einsatzgruppenversorger – Replenishment Ship
  • U-Boot – Submarine

Trivia: The Gorch Fock

BundeswehrGermany had lost all schoolships after WW2 so it was decided to build a new ship after the same plans and name it Gorch Fock since the original Gorch Fock was delivered to the soviets and renamed Tovarishch.
The ship is named after the german Writer Johann Kinau who died in the Battle of Jutland and is supposed to be the most depicted ship in history since it was depicted on the 10 Mark bill.

The Tovarishch was bought by a German foundation and named Gorch Fock again leading to the confusing situation that sometimes two similar looking ships with the same name visit the same port…


BundeswehrOne of the biggest obstacles for the new Luftwaffe was to overcome the 10 years gap since World War 2 as the demands on an air force have changed since the introduction of jet planes.

Many well-known fighter pilots who had fought with the Luftwaffe of the Wehrmacht joined the new  air force and underwent refresher training in the U.S. before returning to upgrade on the latest U.S.-supplied hardware. These included Erich Hartmann, Gerhard Barckhorn, Günther Rall and Johannes Steinhoff. Steinhoff would eventually become commander-in-chief of the Luftwaffe. Josef Kammhuber, also made a significant career in the post-war Luftwaffe, retiring in 1962 as Inspekteur der Luftwaffe (Chief Inspector of the Air Force).

With the introduction of the Starfighter the Luftwaffe faced a crisis because in the early years the crash rate and number of dead pilots was very high and unacceptable to the public. That changed after training was intensified and changes were made to the plane. Still the Starfighter was replaced by the Phantom and the Tornado much earlier than in other air forces.

In case of war several units can be equipped with nuclear weapons provided by the United States.

The Luftwaffe was the first German unit to experience combat when Tornados of the Luftwaffe took part in Operation Deliberate Force.

Naming (Luftwaffe)

Several units received a honorific title in April 1961, the anniversary of the death of Manfred von Richthofen, after famous fighter pilots of the first world war:

  • Taktisches Luftwaffengeschwader 31 “Boelcke”
  • Taktisches Luftwaffengeschwader 51 “Immelmann”
  • Taktische Luftwaffengruppe “Richthofen”

The honorific title of the Jagdgeschwader 74 “Mölders” was removed in 2005 after a decision of the parliament that members of the Legion Condor should not be honored.
Additionally the Taktisches Luftwaffengeschwader 73 received the honorific title “Steinhoff”.

Overview (Luftwaffe)


  • Jagdgeschwader (JG) – Fighter Squadron
  • Jagdbombergeschwader (JaboG) – Fighter-bomber Squadron
  • Aufklärungsgeschwader (AG) – Reconnaissance Squadron
  • Leichtes Kampfgeschwader (LeKG) – Light Combat Squadron
  • Luftransportgeschwader (LTG) – Air Transport Squadron
  • Hubschraubergeschwader (HSG) – Helicopter Squadron
  • Hubschraubertransportgeschwader (HTG) – Transport Helicopter Squadron
  • Flugkörpergeschwader (FKG) – Rocket Squadron (Pershing)
  • Flugabwehrraketengeschwader (FlaRagG) – Anti-air Rocket Squadron
  • Flugabwehrraketenbataillon (FlaRakBtl) – Anti-air Rocket Battalion
  • Flugabwehrraketengruppe (FlaRakGrp) – Anti-air Rocket Group
  • Flugbereitschaft des Bundesministeriums der Verteidigung (FlBschftBMVg) – Special Air Mission
  • Taktisches Luftwaffengeschwader ( TaktLwG) – Tactical Air Squadron

In 2014 all Jagdgeschwader and Jagdbombergeschwader were renamed to Taktisches Luftwaffengeschwader.

The Tradition of the Bundeswehr

TruppenfahneThe question of tradition was and still is a very difficult one.

One movement wanted to resume the traditions all German armies including the Wehrmacht others saw the opportunity to make reforms.

Topics important for the identity of the Bundeswer:

  • The Prussian military reforms of 1807-1813 during the wars against Napoleon (freedom wars). Especially the perception of Scharnhorst that every citizen has to be a defender of his state.
  • The military resistance against Hitler and that real obedience includes resistance against injustice. The Wehrmacht itself can not be a source for traditions.
  • Traditions formed by the Bundeswehr: the citizen in Uniform and leadership development and civic education

The Bundeswehr was formed colours but that caused problems with other NATO countries and using flags of the imperial army was not a real solution. President Heinrich Lübke endowed new flags to the battalions of the army in 1964 as “visible sign of the performance of duties for the people and the country”.

The current Traditionserlass (traditions decree) emphasizes the importance of

  • the black-red-gold federal flag
  • the national anthem
  • the eagle of the federal coat of arms
  • the iron cross
  • the Oath of Service and the solemn pledge
  • the “Großer Zapfenstreich” (Grand Tattoo )
  • “Ich hatt einen Kammeraden” (“The good Comrade”)

New recruits are sworn in on the 20th July every year either at the Bendlerblock (the place von Staufenberg was shot) or in front of the Reichstag the seat of the german parliament. It symbolizes the connection between the Bundeswehr and the resistance against Hitler and the role as a “army of the parliament”.

Exception to the Rule

WachbattalionWhile no unit of the Bundeswehr was supposed to continue the tradition of former german units an exception was made for the Wachbattalion. When the Möllendorfdegen was rediscovered after the reunification of Germany the heirs of the last bearer asked what to do. The german President Richard von Weizsäcker confirmed that the sword should be restored to the Wachbattalion as the successor of the 1. Garde-Regiment zu Fuß of the imperial army and the Infanterie Regiment Nr. 9 of the Wehrmacht.

Von Weizsäcker and several members of the military resistance against Hitler had served in the Regiment Nr. 9 including Henning von Tresckow and Axel von dem Busche. The Wachbattalion also has close ties to the Hohenzollern Dynasty.

Pictures: Bundesarchiv (Federal Archive), Wikipedia (public domain).

The Scenario Adaptation Balancing Act

I’m reading an alternate history story, Zhirinovsky’s Russian Empire, a dystopian tale where the death of Boris Yeltsin during the failed 1991 coup in the USSR leads to the titular extremist becoming that country’s head, and thus leading the world into over a decade of not-so-cold war.

There are some parts of it where I go “that would make an interesting enough Command scenario.” So I load up the scenario editor, start to put the Moldovan and Russian units, and then-lose enthusiasm.

This has happened to me many times before. Each time I read/watch some work of fiction that is theoretically adaptable to Command, each time I get the idea to try an adaptation, and each time the scenario ends up stalling in the editor, never getting anywhere beyond a rough draft.

Now, there are plenty of original scenarios that have never progressed beyond “make the log folder even more cluttered”, but that none of my attempted adaptations made it anywhere made me think there was something beyond issues with the specific scenarios.

There’s of course the possibility, however small, of the original author taking issue with the adaptation This would almost certainly not be the case with ZRE’s author, but for the rather thin-skinned writers who I’d considered adapting under the codename “Operation Silk Purse” (to make a bad story into a good scenario, hence the name), that cannot be counted out. But that would only apply to restrictions on releasing the scenario, not on making it.

Then, in the chat, I found the words for what I’d meant “Writing a story is a lot more fun than adapting one.”

With any existing work of fiction, there are some restrictions. With an original story, there are none. Want to write a straight-from-the-declassified CIA document tale of second-line subs rushing into the Atlantic? Sure. Want to do a silly plot where Argentina bombs badly named Uruguayan banks? Go right ahead. Want to do a generally faithful reenactment of an early, ferociously difficult Red Flag exercise? All right.

That being said, there are some instances where a scenario should be precisely researched (if one is looking for an exact reenactment of a specific battle, or just desires great attention to detail). And that’s when I found what I thought the problems with adaptations were-they have the weaknesses of both freeform and strict scenarios, but not the strengths.

What that amounts to is this-you’re stuck in the confines of the existing work, sometimes rigidly so. However, you still have a lot of blanks to fill (Ok, look at the surplus Soviet bases in the area to see what the Union of Independent States would have, now see how many of the fighters on them would be operational, etc..), as only the most dull and literalist work of fiction would spell everything on both sides out in exact detail.

So I found there was a balancing act that didn’t exist in original scenarios, even those based off of nonfiction historical references (since I used such ones as inspirations rather than situations I would attempted to duplicate exactly.) This act made making them less enjoyable

Making an adaptation scenario is not impossible. Other adaptations have appeared, most notably several based on the novel The War that Never Was. That book is somewhat anomalous in that the extreme detail and matter-of-fact tone make it good as a scenario-inspiration book (and to me, very bad as an actual novel). The inspiration to complete an adaptation scenario may very well come to me as well, ending my long “losing streak” of proposals.

But I still find it a lot more fun to write a story than adapt one.