[MOD] Faction-Specific Armies

Moderator: Pocus

kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

nikossaiz wrote: Sat Oct 24, 2020 7:54 pm hi kronenblatt,

thank you for updated your mod, i will downloaded and play tommorow :)
I tried (b) out a bit in the scripts, but couldn't get it to work, so I'm skipping that development.
oh,i hoped for a solution on this, since provincial unit are an ecential benefit on empires. Maybe if you dont ( or make a sub - version ) implement the % chance of units to become something else? we will have predictabillity but then again to predict things like your oponent is part of the strategy.
Pocus wrote: Fri Oct 23, 2020 2:50 pm There is no quick function that will tell you if a unit is a provincial one or not, because for now the code has no use of that (there is no discrimination done based on being provincial or not). A work around would be to check for the presence of the modifier $ID_MOD_UNIT_PROVINCIAL though.

so in this case, you can copy paste this code

modCount = Unit_GetModifiersCount(unitID);

for (modIdx = 0; modIdx < modCount; modIdx++)
{
modTplID = Unit_GetModifierByIndex(unitID, modIdx);

if modTplID happens to be $ID_MOD_UNIT_PROVINCIAL, you are good.
It's if Pocus could point at how to implement it in the modded part of the BattleConn_Export function in BattleConnection.BSF, currently looking like this:

Code: Select all

		// Units records
		unitCount = Min(512, GetDynamicArrayLength(gBattleDesc.hParticipants)); // hard limit to not crash FOG II static arrays
		for (unt = 0; unt < unitCount; unt++)
		{
			WriteFileWriteLine(" ");
			
			GetDynamicArray(gBattleDesc.hParticipants, unt, p);
			unitID = p.id; // this is a live unit, safe and correct to access directly
			side = p.side;
			if (bSwapSides)
			{
				side = (side + 1) % 2;
			}
			
			// FOR VERSION 1.3.4 of FoGE: Ships are now ignored in case of land battles but don't prevent exporting 
			if (Unit_BelongsToFamily4(unitID, FAM_UNIT_LTWARSHIP, FAM_UNIT_WARSHIP, FAM_UNIT_HVYWARSHIP, FAM_UNIT_TRANSPORT) == FALSE)
			{
				sprintf(line, "[Unit%d]", unt);
				WriteFileWriteLine(line);
				
				Unit_Alias(unitID);
				sprintf(line, "COMMENT %d %s", Abs(Unit_GetNumeral(unitID)), gAlias);
				WriteFileWriteLine(line);
				
				sprintf(line, "ID %d", unitID);
				WriteFileWriteLine(line);
				
				sprintf(line, "SIDE %d", side);
				WriteFileWriteLine(line);
				
				// MODDING
				unitside = side;
				
				if (bSwapSides)
				{
					unitside = (unitside + 1) % 2;
				}

				ethnicside = Faction_Ethnic(gBattleDesc.factionID[unitside][0] );
				idside = Faction_Liaison_SideID(gBattleDesc.factionID[unitside][0] );
				BattleConn_MapUnit(unitID, squad);
				squadtemp = squad;
				
				Modded_UnitType(ethnicside, squadtemp, idside);
				squad = squadtemp;

				// VANILLA

				sprintf(line, "TYPE %s", squad);
				WriteFileWriteLine(line);
				
				StartString();
				Unit_PrintName(unitID, 0);
				BattleConn_ExportString("NAME");
				
				sprintf(line, "COHESIONMOD %d", Unit_EffecPct(unitID));
				WriteFileWriteLine(line);
				
				sprintf(line, "HITPOINTSMOD %d", Unit_HitsPct(unitID));
				WriteFileWriteLine(line);

				sprintf(line, "EXPERIENCEMOD %d", Unit_Liaison_GetXPMod(unitID));
				WriteFileWriteLine(line);			

				sprintf(line, "QUALITYMOD %d", Unit_Liaison_QualityMod(unitID));
				WriteFileWriteLine(line);	

				sprintf(line, "AGEOD_COST %d", Unit_Liaison_Cost(unitID));
				WriteFileWriteLine(line);				
			}
		}
Basically the (mod's) Modded_UnitType(ethnicside, squadtemp, idside) function should only be called upon if the unit is not provincial, but how to check for that more exactly?

I managed to get values out of modTplID = Unit_GetModifierByIndex(unitID, modIdx), but they were only like 696, 712, or 0. Is 0 non-provincial? But what does then e.g. 696 or 712 mean?
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
Pocus
Ageod
Ageod
Posts: 5667
Joined: Tue Oct 02, 2012 3:05 pm

Re: [MOD] Faction-Specific Armies

Post by Pocus »

Here is a new function then (you'll add it at the end of unit.bsf)

Code: Select all

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// HAS THIS MODIFIER
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
FUNCTION Unit_HasThisModifier(unitID, modTplID)
{
	int modCount;
	int modIdx;
	int temp;
	
	modCount = Unit_GetModifiersCount(unitID);
	for (modIdx = 0; modIdx < modCount; modIdx++)
	{
		temp = Unit_GetModifierByIndex(unitID, modIdx);
		if (temp == modTplID)
		{
			return TRUE
		}
	}		
}
You will check a given unit versus this function, evaluating if it has the modifier $ID_MOD_UNIT_PROVINCIAL (numeric value: 711)

So in your code, something like this (if what you want is to have your function only triggers if the unit is not provincial)

Code: Select all

if (Unit_HasThisModifier(unitID, $ID_MOD_UNIT_PROVINCIAL ) == FALSE)
{
   Modded_UnitType(ethnicside, squadtemp, idside);
}
AGEOD Team - Makers of Kingdoms, Empires, ACW2, WON, EAW, PON, AJE, RUS, ROP, WIA.
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

Pocus wrote: Mon Oct 26, 2020 3:55 pm Here is a new function then (you'll add it at the end of unit.bsf)

Code: Select all

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// HAS THIS MODIFIER
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
FUNCTION Unit_HasThisModifier(unitID, modTplID)
{
	int modCount;
	int modIdx;
	int temp;
	
	modCount = Unit_GetModifiersCount(unitID);
	for (modIdx = 0; modIdx < modCount; modIdx++)
	{
		temp = Unit_GetModifierByIndex(unitID, modIdx);
		if (temp == modTplID)
		{
			return TRUE
		}
	}		
}
You will check a given unit versus this function, evaluating if it has the modifier $ID_MOD_UNIT_PROVINCIAL (numeric value: 711)

So in your code, something like this (if what you want is to have your function only triggers if the unit is not provincial)

Code: Select all

if (Unit_HasThisModifier(unitID, $ID_MOD_UNIT_PROVINCIAL ) == FALSE)
{
   Modded_UnitType(ethnicside, squadtemp, idside);
}
Thanks, Pocus! Seems to work well. (I put the Unit_HasThisModifier function at the end of my modded BattleConnection.bsf file to keep my modded scripts together, but shouldn't make a difference, right?)
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
nikossaiz
Senior Corporal - Destroyer
Senior Corporal - Destroyer
Posts: 100
Joined: Tue Sep 01, 2020 9:26 am

Re: [MOD] Faction-Specific Armies

Post by nikossaiz »

Thanks, Pocus! Seems to work well
and this is how great mods getting evolved :) great thing to have devs active in forums! hoppe for one such releash when all are set and done!
Pocus
Ageod
Ageod
Posts: 5667
Joined: Tue Oct 02, 2012 3:05 pm

Re: [MOD] Faction-Specific Armies

Post by Pocus »

kronenblatt wrote: Mon Oct 26, 2020 4:51 pm
Thanks, Pocus! Seems to work well. (I put the Unit_HasThisModifier function at the end of my modded BattleConnection.bsf file to keep my modded scripts together, but shouldn't make a difference, right?)
Yes, no issue, as long as it runs, then it is good!
AGEOD Team - Makers of Kingdoms, Empires, ACW2, WON, EAW, PON, AJE, RUS, ROP, WIA.
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

Pocus wrote: Tue Oct 27, 2020 8:30 am
kronenblatt wrote: Mon Oct 26, 2020 4:51 pm
Thanks, Pocus! Seems to work well. (I put the Unit_HasThisModifier function at the end of my modded BattleConnection.bsf file to keep my modded scripts together, but shouldn't make a difference, right?)
Yes, no issue, as long as it runs, then it is good!
nikossaiz wrote: Tue Oct 27, 2020 8:14 am
Thanks, Pocus! Seems to work well
and this is how great mods getting evolved :) great thing to have devs active in forums! hoppe for one such releash when all are set and done!
Great, then let's give it a go. Zipped mod attached here to this post.

nikossaiz: could you please check out that the provincial unit aspect works as intended and as you preferred, and revert here with your answer so that we know, both Pocus and I?

x310BCFoG2ArmyLists 20201027_0940.7z
(74.47 KiB) Downloaded 98 times
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
nikossaiz
Senior Corporal - Destroyer
Senior Corporal - Destroyer
Posts: 100
Joined: Tue Sep 01, 2020 9:26 am

Re: [MOD] Faction-Specific Armies

Post by nikossaiz »

could you please check out that the provincial unit aspect works
ofcourse, i will give it a go once i reach home and will give you a feedback asap!
nikossaiz
Senior Corporal - Destroyer
Senior Corporal - Destroyer
Posts: 100
Joined: Tue Sep 01, 2020 9:26 am

Re: [MOD] Faction-Specific Armies

Post by nikossaiz »

ok, i exported a battle, macedon vs sarmatia. my army synthesis was intentional full of javelinmen, citizen hoplites and light cavalry mixed with provicial units like molossian javelinmen, thracian infantry, african elephants and macedonian light cavalry ( prodromoi ) .

ALL units that were provincial where exported as intended, molossian javelinmen ( prior your patch exported as archers, slingers etc ) african elephants as that, the patch was total success :)

non provincial units were exported like more or less as follow .
field of glory empires javelinmen --} javelinmen, slingers.
field of glory empires citizen hoplites ---} a mixture of thurheophoroi, thorakitai and well, hoplites. i will play a few more battles to see if the results will alter.

now, i would like to ask, later on the game you are opposing with desicions "if you want to upgrate your army". I recall when i upgrated my medium infantry i could recruit imitation legionaries and instead of citizen hoplites thurheophoroi on regular bases. If now with your mod upgrade my units what i will get? i mention it if its possibly to left out "thorakitai", a unit that historically shows up later than the start of the campaign for the upgrade version of the field of glory empires citizen hoplites. not at all a request, just a question.
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

nikossaiz wrote: Tue Oct 27, 2020 3:15 pm ALL units that were provincial where exported as intended, molossian javelinmen ( prior your patch exported as archers, slingers etc ) african elephants as that, the patch was total success :)

non provincial units were exported like more or less as follow .
field of glory empires javelinmen --} javelinmen, slingers.
field of glory empires citizen hoplites ---} a mixture of thurheophoroi, thorakitai and well, hoplites. i will play a few more battles to see if the results will alter.
Many thanks for report!

For provincials, the exports will hopefully stay the same. But for non-provincials results may vary, since there is a random element sometimes to which units actually get exported.

Please let me know what happens in your future battles.
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
nikossaiz
Senior Corporal - Destroyer
Senior Corporal - Destroyer
Posts: 100
Joined: Tue Sep 01, 2020 9:26 am

Re: [MOD] Faction-Specific Armies

Post by nikossaiz »

Many thanks for report!
my pleasure!

i had 2 more battles with the same army, same results, provincial units remained unchanged! i have a save game very late on the campaign, tonight i ll check with the new patch to see what will happen.

a) may i ask something more? can you put your "not winter every turn mod" in the "faction-specific armies" mod as an optional file? it may change the stratigic pace of the campaign and i would like to try it. do you still have a warning before winter came?

b) once you feell that this mod is in a good state, do you see likely a version for the persia DLC ?
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

nikossaiz wrote: Tue Oct 27, 2020 6:17 pm
Many thanks for report!
my pleasure!

i had 2 more battles with the same army, same results, provincial units remained unchanged! i have a save game very late on the campaign, tonight i ll check with the new patch to see what will happen.

a) may i ask something more? can you put your "not winter every turn mod" in the "faction-specific armies" mod as an optional file? it may change the stratigic pace of the campaign and i would like to try it. do you still have a warning before winter came?

b) once you feell that this mod is in a good state, do you see likely a version for the persia DLC ?
Excellent: thanks!

(a) Absolutely. Once I'm back (end of this week), I'll let you know which file(s) you'll need to add and where, so that you can have that feature as well. (But please note that the winter mod adds a random element (25% chance of harsh weather next turn if not harsh weather this turn, 33% if already harsh weather this turn) to whether harsh weather actually occurs that turn or not. So it's not that "winter" occurs always or never.)
(b) Yes, easily done. (Hopefully Slitherine and AGEOD later on can change the structure so that one mod can be used for both vanilla and DLC.)
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
nikossaiz
Senior Corporal - Destroyer
Senior Corporal - Destroyer
Posts: 100
Joined: Tue Sep 01, 2020 9:26 am

Re: [MOD] Faction-Specific Armies

Post by nikossaiz »

(b) Yes, easily done. (Hopefully Slitherine and AGEOD later on can change the structure so that one mod can be used for both vanilla and DLC.)
i know that are working on a new game, but lets hope they so some more love into this one!
FrenchDude
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 209
Joined: Wed Jan 02, 2019 9:27 pm

Re: [MOD] Faction-Specific Armies

Post by FrenchDude »

I think I have a problem with your mod : When I use provincial units recruited via the "Recruit Local Units" decision, they do not appear when playing exported FOG 2 Battles. I tried it with Rome and the Etruscans : each time I recruited two Italian Foot provincial units via the "Recruit Local Units" decision, and each time they failed to appear on the battlefield when exporting the battle.

When playing as Rome, I tried to build an army consisting of only two Italian Foot provincial units that I recruited with the "Recruit Local Units" decision, and when I exported the battle to FOG2, no units appeared on my side and I immediatly lost the battle.

Then I tried using provincial units with the Seleucids, because they already have several formed provinces at the start of the game. I recruited a few Mesopotamian Liht cavalry before fighting the Antigonids, and it worked, they were there when I exported the battle to FOG2. However, I recruited them the usual way, through provincial recruitement, not via the "Recruit Local Units" decision.

So I don't know what is wrong exactly on my end : Is it the "Recruit Local Units" decision that is messing things up ? Or is it something else ?
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

FrenchDude wrote: Sat Oct 31, 2020 8:00 pm I think I have a problem with your mod : When I use provincial units recruited via the "Recruit Local Units" decision, they do not appear when playing exported FOG 2 Battles. I tried it with Rome and the Etruscans : each time I recruited two Italian Foot provincial units via the "Recruit Local Units" decision, and each time they failed to appear on the battlefield when exporting the battle.

When playing as Rome, I tried to build an army consisting of only two Italian Foot provincial units that I recruited with the "Recruit Local Units" decision, and when I exported the battle to FOG2, no units appeared on my side and I immediatly lost the battle.

Then I tried using provincial units with the Seleucids, because they already have several formed provinces at the start of the game. I recruited a few Mesopotamian Liht cavalry before fighting the Antigonids, and it worked, they were there when I exported the battle to FOG2. However, I recruited them the usual way, through provincial recruitement, not via the "Recruit Local Units" decision.

So I don't know what is wrong exactly on my end : Is it the "Recruit Local Units" decision that is messing things up ? Or is it something else ?
Thanks for report! That's extremely weird. My mod should only transform FoGE units to others when exporting to FoG2; not remove or add units. So those Italian Foot should either stay Italian Foot or transform into some other units.

What happens if you recruit these Italian Foot the usual way? Or the Mesopotamian Light Cavalry through the "Recruit Local Units" decision?

And the same with vanilla?

That is, does it have anything to do with the Italian Foot, the decision, and/or my mod?
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
nikossaiz
Senior Corporal - Destroyer
Senior Corporal - Destroyer
Posts: 100
Joined: Tue Sep 01, 2020 9:26 am

Re: [MOD] Faction-Specific Armies

Post by nikossaiz »

I can confirm from my side that "recruit mercenaries" decision dont have this problem and the exported battles show mercenaries hoplites for example as intended. Same with Confederate barbarians decision. No problems so far. So maybe is the specific decision witch has the problem, or something from the fog2 side? Maybe you have a mod or something?
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

FrenchDude wrote: Sat Oct 31, 2020 8:00 pm I think I have a problem with your mod : When I use provincial units recruited via the "Recruit Local Units" decision, they do not appear when playing exported FOG 2 Battles. I tried it with Rome and the Etruscans : each time I recruited two Italian Foot provincial units via the "Recruit Local Units" decision, and each time they failed to appear on the battlefield when exporting the battle.

When playing as Rome, I tried to build an army consisting of only two Italian Foot provincial units that I recruited with the "Recruit Local Units" decision, and when I exported the battle to FOG2, no units appeared on my side and I immediatly lost the battle.

Then I tried using provincial units with the Seleucids, because they already have several formed provinces at the start of the game. I recruited a few Mesopotamian Liht cavalry before fighting the Antigonids, and it worked, they were there when I exported the battle to FOG2. However, I recruited them the usual way, through provincial recruitement, not via the "Recruit Local Units" decision.

So I don't know what is wrong exactly on my end : Is it the "Recruit Local Units" decision that is messing things up ? Or is it something else ?
nikossaiz wrote: Sun Nov 01, 2020 7:40 am I can confirm from my side that "recruit mercenaries" decision dont have this problem and the exported battles show mercenaries hoplites for example as intended. Same with Confederate barbarians decision. No problems so far. So maybe is the specific decision witch has the problem, or something from the fog2 side? Maybe you have a mod or something?
Sounds good, nikossaiz: thanks.

What do you say, FrenchDude?
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
Pocus
Ageod
Ageod
Posts: 5667
Joined: Tue Oct 02, 2012 3:05 pm

Re: [MOD] Faction-Specific Armies

Post by Pocus »

That's weird, because I checked and every single provincial unit has the modifier 'provincial unit', so should be detected.

When the time is right, I'll check your mod kronenblatt and perhaps see if I can make export better, using your idea, thanks for the modding you are doing.

It is actually possible right now to mod the game without replacing too many vanilla files. I tried to implement a workaround at my level, until Archon is more modular friendly for modding. Here is what you can do, go to
\Scenarios\d310BCGrandCampaign\DATA\SCRIPTS

there you see Events_Plugin.BSF
It has an empty function, but this function is read by the game every single turn. So just flesh it out and distribute the modified file. Now I can't guarantee it will work for all code, because for your mod for example, you need to work with the game rules, and not by editing events.
AGEOD Team - Makers of Kingdoms, Empires, ACW2, WON, EAW, PON, AJE, RUS, ROP, WIA.
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

Pocus wrote: Sun Nov 01, 2020 9:44 am ... That's weird, because I checked and every single provincial unit has the modifier 'provincial unit', so should be detected...
Yep, and in any event, the mod will either replace (if not provincial) or keep (if provincial) the vanilla FoGE unit being exported to FoG2, never delete or add any units.
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

Pocus wrote: Sun Nov 01, 2020 9:44 am When the time is right, I'll check your mod kronenblatt and perhaps see if I can make export better, using your idea, thanks for the modding you are doing.
Thanks! That would be appreciated.
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
kronenblatt
General - Elite King Tiger
General - Elite King Tiger
Posts: 4361
Joined: Mon Jun 03, 2019 4:17 pm
Location: Stockholm, SWEDEN

Re: [MOD] Faction-Specific Armies

Post by kronenblatt »

FrenchDude wrote: Sat Oct 31, 2020 8:00 pm I think I have a problem with your mod : When I use provincial units recruited via the "Recruit Local Units" decision, they do not appear when playing exported FOG 2 Battles. I tried it with Rome and the Etruscans : each time I recruited two Italian Foot provincial units via the "Recruit Local Units" decision, and each time they failed to appear on the battlefield when exporting the battle.

When playing as Rome, I tried to build an army consisting of only two Italian Foot provincial units that I recruited with the "Recruit Local Units" decision, and when I exported the battle to FOG2, no units appeared on my side and I immediatly lost the battle.

Then I tried using provincial units with the Seleucids, because they already have several formed provinces at the start of the game. I recruited a few Mesopotamian Liht cavalry before fighting the Antigonids, and it worked, they were there when I exported the battle to FOG2. However, I recruited them the usual way, through provincial recruitement, not via the "Recruit Local Units" decision.

So I don't know what is wrong exactly on my end : Is it the "Recruit Local Units" decision that is messing things up ? Or is it something else ?
I've now tried the "Recruit Local Units" decision in this mod; having recruited Anatolian Archers (prov) as Antigonos using the decision in question and shipped them down to Egypt where they participated in a FoG2 battle. And it worked as intended; they showed up in-game-FoG2.
Screen_00000130.jpg
Screen_00000130.jpg (979.41 KiB) Viewed 2989 times
kronenblatt's campaign and tournament thread hub:

https://www.slitherine.com/forum/viewtopic.php?t=108643
Post Reply

Return to “MOD”