How can I change who owns a hold? Like giving Stormcloaks ownership of Hjaalmarch and Morthal? (Pre-CW)
I poked around in the Season Unending quest MQ302 in the CK because it redistributes 'holds', but I haven't found anything yet. I would also like to populate fort Amol with stormcloaks for example.
There is some intersting stuff in the console too like 'cwdebugon', but I don't know what it does.
One thing I was able to do was change the negotiondelta for letting Elenwen stay from +1 to +2 or +3. This allows the Stormcloaks to get both Markarth and Falkreath instead of just Markarth. I'm trying to find a way to also let them get Morthal, still figuring it out.
What do I do with this?
function TransferHoldControl() trace("MQ302: TransferHoldControl start") ; this is where we actually switch control of all the holds agreed to in the council CWScript sCW = CW as CWScript; Is the main city changing hands?if GetStageDone(141) == 0 ; yes if CityToSwitch == 1 trace("MQ302: TransferHoldControl: give the Reach to Sons") sCW.SetHoldOwnerByInt(2, 2, DiplomaticVictory = true) else trace("MQ302: TransferHoldControl: give the Rift to Imperials") sCW.SetHoldOwnerByInt(9, 1, DiplomaticVictory = true) endifendif; Major holds changing hands?if GetStageDone(142) if CityToSwitch == 1 ; Imperials are giving up Markarth, so give them a major hold in compensationtrace("MQ302: TransferHoldControl: give " + SonsMajorHoldID + " to Imperials") sCW.SetHoldOwnerByInt(SonsMajorHoldID, 1, DiplomaticVictory = true) else ; Sons are giving up Riften - so give them major hold in compensationtrace("MQ302: TransferHoldControl: give " + ImperialMajorHoldID + " to Sons") sCW.SetHoldOwnerByInt(ImperialMajorHoldID, 2, DiplomaticVictory = true) endifendif; Minor holds changing hands?; main concessionif GetStageDone(143) if CityToSwitch == 1 ; Imperials are giving up Markarth, so give them a minor hold in compensation trace("MQ302: TransferHoldControl: give " + SonsMinorHoldID + " to Imperials") sCW.SetHoldOwnerByInt(SonsMinorHoldID, 1, DiplomaticVictory = true) else ; Sons are giving up Riften, so give them a minor hold in compensation trace("MQ302: TransferHoldControl: give " + ImperialMinorHoldID + " to Sons") sCW.SetHoldOwnerByInt(ImperialMinorHoldID, 2, DiplomaticVictory = true) endifendif
This will apparently give control of Riften to the Stormcloaks. But how do I implement it into an esp mod?
CWScript sCW = CW as CWScriptsCW.SetHoldOwnerByInt(9, 2, DiplomaticVictory = true)
Function: SetHoldOwner(Location Hold, int FactionEnum) Description: Sets the owner of a hold to the faction you specified. Notes: This just calls the ironically named obsolete function SetHoldOwnerByInt. For most cases this is more accessible for the sub-story you want to tell within each hold however so unless you've custom needs you're better off going with this than SetHoldOwnerByInt.Function SetHoldOwnerByInt(int Hold, int Faction, bool DiplomaticVict = false) Description: Another way of setting the hold owner. Notes: This is useful if you need custom needs given SetHoldOwner just calls this function and thus if you want something specific done for a hold you'll need to edit/add here.Function: WinHoldAndSetOwner(Location HoldLocationToSet, bool AttackersWon, bool DefendersWon) Notes: Used to change a Holds Owner after a siege. The downside to using this modding-wise is that it removes bounty gold which you may not want to be removed depending on what you've modded in.Function: WinHoldAndSetOwnerKeywordDataOnly Notes: This is better to be used for dialogue changes. So storywise you could set the keyword data and after the dialogue use SetHoldOwner().Function: WinHoldOffScreenIfNotDoingCapitalBattles(Location HoldToWin, bool AttackersHaveWon = true, bool DefendersHaveWon = False) Notes: Just used for fort captures and all that Jazz. Useless modding wise imo.Function: RemoveGarrisonFromWar(Location LocationToTurnOff) Notes: This makes a garrison neutral in the conflict between the Imperials and Stormcloaks. This COULD be useful if you want to make a storyline where a hold bounces off from both factions and becomes independent. I assume this is used for diplomatic immunity by bethesda.Function: AddEnemyFortsToBackToWar(bool ShowDebugMessage = False) Notes: Used when restarting the war; could be used for a rebreking out of hostilities if doing a second peace treaty.Function: AddGarrisonBackToWar(Location LocationToTurnOn, int FactionToOwn = 0, bool SkipSetOwnerCall = False) Notes: See above. Function: RegisterLocationAttacked(Location HoldLocation, location AttackedLocation, int iFaction = 0) Notes: Diplomatic Immunity stuff. Doesn't really have any other purpose.Function: GetWinner(Location LocationOfFinaleBattle, bool AttackerWon = false, bool DefenderWon = False) Notes: Gets the winner of the last battle(?). Could be used for stories and w/e.Function: IsActorDefender/Attacker(actor actorToCheck, Location locationOfBattle) Notes: Checks if an Actor (most likely the player character) was a defender/attacker.Function: SonsAreAttacking(Location LocationToCheck) Notes: Self explanatory.