Stellaris

Stellaris

80 ratings
Vassal Contracts Unleashed
2
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
410.833 KB
26 May, 2023 @ 1:23am
1 Jun @ 7:05pm
10 Change Notes ( view )
You need DLC to use this item.

Subscribe to download
Vassal Contracts Unleashed

Description
This mod has several components. Chiefly, it allows the player to choose any combination of vassal negotiation terms. It eliminates these restrictions for the player only, the AI still has to follow vanilla requirements. So, if you want to integrate your Bulwarks or restrict Tributaries to Limited Diplomacy, that is now entirely possible.

Secondly, it eliminates locked-in taxes and subsidies, as well as breaking basic, advanced, and strategic resources into individual sliders, as well as adding unity, minor artifacts, and influence as taxes or subsidies.

This means that, if you so desire, you can force your Bulwark to pay you a tax of their basic resources instead, or any other settings on the sliders for any subjects that you wish.

Finally, it fixes the bane that is Protectorates, and it eliminates the automatic switching of subjects to Protectorates. Now, if you're so far ahead in technology that you've researched everything and your vassal is still researching their first techs, they *still* won't become a Protectorate automatically just because they're too far behind in tech.

However, if for some reason you want to turn a subject into a Protectorate, the option is there now even if the overlord and subject are almost completely identical in technological level. You won't be required to, but you will be able to if you wish.

--- Compatibility ---

A few values had to be altered to make this mod. They are:
@protectorate_tech_threshold
and
@protectorate_tech_switch
from agreement_presets, as well as most agreement_term_values.

Any mod that adds or overwrites agreement_term_values or agreement_presets will likely need compatibility patching.

Full documentation is included in the mod, as well as a code walkthrough detailing exactly where, why, and how each alteration was made. The goal of this file is to provide complete transparency, as well as make the mod accessible for any beginner modders to update or alter this mod however they like without having to wait for updates on my end.

--- Minor Issues and Imperfections ---

There wasn't a clear way to enable tax and subsidy freedom for the player only, so the AI is also not obligated to give their Bulwarks half their basic resources or anything similar. If a way to alter this more neatly becomes clear in the future, I intend to incorporate the update.

The Protectorate changes also could not be disabled for the AI specifically. The result of this is that, in a niche scenario where an AI Overlord is advanced far enough ahead of their subject that they would normally become a Protectorate, that is no longer guaranteed to happen.


--- Similar Mods I've Made, and Submods ---

Why Can't I Hold All These Holdings

Vassal Contracts Unleashed - Maximum Taxation Submod

--- Credits and Thanks to the Stellaris Modding Den ---

NotNitehawk, her help with the `Possible` blocks allowed me to overwrite them much more cleanly than my original approach, granting the player much more freedom and the AI far fewer unwanted changes in behaviour.

Lezzistrata, whom I adore, for the fantastic thumbnail art. My skill with art is non-existent, and you'd have gotten simple in-game screenshots instead.

LAJ-47FC9, who helped me pick out a name for this mod. Without its help, this mod would probably be called something boring and functional like "All Vassal Agreement Terms Unlocked".

Govannon, who helped me identify and isolate where the loyalty costs for resource subsidies / taxes were defined.

And Avarice, not part of the Modding Den, who graciously allowed me to integrate large chunks of their "Subsidies Sliders Expanded" mod into mine as part of VCU's 1.1 update.

I hope you like this mod, and feel free to drop by the Stellaris Modding Den by clicking on the big banner below!

[discord.gg]
53 Comments
Darth Tiredlass  [author] 1 Jun @ 7:21pm 
Just, compare the files in the updated mod and then read the file named "code walkthrough". You can use Irony or this page's url (2980767720) to find the Vassal Contracts Unleashed mod directory under SteamLibrary\steamapps\workshop\content\281990.

The code walkthrough is your friend. It's been a while since I updated it but between that, and looking at how the files work in the updated mod, and then comparing the changes to the vanilla files, you should be able to get a handle on things. I believe in you.

Make sure you structure your mod the same way as the updated mod is structured. Folders need to be in the same places with the same names. So Common>Agreement_Presets>file and Common>Agreement_Term_Values>file
Darth Tiredlass  [author] 1 Jun @ 7:09pm 
Also confusingly, something I just tested now - when I download this mod from the workshop it doesn't work. My dev build stored on my computer, with completely, 100% identical files, works perfectly. I've just pushed an update to see if I can correct whatever kind of corruption happened with the steam version.

Anyway, DJ Boner, try testing it on a new save with this mod's vassal-owning start: https://sp.zhabite.com/sharedfiles/filedetails/?id=2114559224

It's a great way to cut down testing time. It was something I used for a while there before it broke, but now it's back up and working.

Otherwise, to get a slightly janky test, you can spawn an Imperial Fiefdom and use the console to play as the overlord empire, but I think that option forbade me from turning vassals into protectorates or something because there's a few code blocks tucked away prohibiting specifically imperial fiefdom overlords from doing some stuff, and I didn't want to change those.
Darth Tiredlass  [author] 1 Jun @ 6:57pm 
Copy the RESOURCE_CONTRIBUTION section from Vassal Contracts Unleashed, sorry I should've made it clearer what I meant by not needing to touch it. It should be the same for 3.14 and 4.0.x is what I meant. That chunk of code shouldn't need updating for a real long time.

As for protectorates ... hm.

All I did was modify those two variables. You've definitely modified just those two variables, and not copy/pasted a new pair of variables that are being overwritten somewhere? You need the whole file overwritten, with just the two variables changed. You need to find the vanilla 00_agreement_presets, copy the whole thing into the mod, and overwrite those variables.

Worst case ... you could try copying the agreement_presets file directly from Vassal Contracts Unleashed. It might still be backwards compatible. I'm looking at the Code Walkthrough in the VCU mod directory and I'm definitely not seeing or remembering there being any more to the protectorates than that.
DJ BONER 30 May @ 11:38pm 
@Darth Tiredlass Sorry for the late response. I modified the files exactly how you told me and, while the negotiation terms are unrestricted, the resource sliders remain capped and I still don't have an option to switch my subjects off of protectorates. I tried this in both an existing save and a new game with the mod at the very bottom of my load order, but nothing worked. I just wanted to be an evil space pirate with bunch of helpless vassals giving me stuff and doing my bidding, why did it have to be this irritating? :(

I suspect that the resource sliders remain capped because I never made any changes to the "RESOURCE CONTRIBUTION" section in agreement_term_values, but I have absolutely no idea what's causing the protectorate issue since both protectorate_tech_threshold and switch are properly configured. Any ideas on what I could do next?
Darth Tiredlass  [author] 27 May @ 8:37pm 
joins_overlord_wars_none in vanilla looks like:

"possible = {
custom_tooltip = {
fail_text = not_allowed_for_bulwark
NOT = {
agreement_preset = preset_bulwark
}
}
custom_tooltip = {
fail_text = not_allowed_for_subsidiary
NOT = {
agreement_preset = preset_subsidiary
}
}
custom_tooltip = {
fail_text = not_allowed_for_luminarium
NOT = {
agreement_preset = preset_luminarium
}
}
}
"

You want it to look like:

"possible = {
OR = {

owner = { is_ai = no }

AND = {

custom_tooltip = {
fail_text = not_allowed_for_bulwark
NOT = {
agreement_preset = preset_bulwark
}
}
custom_tooltip = {
fail_text = not_allowed_for_subsidiary
NOT = {
agreement_preset = preset_subsidiary
}
}
custom_tooltip = {
fail_text = not_allowed_for_luminarium
NOT = {
agreement_preset = preset_luminarium
}
}
}
}
}"

See the difference?
Darth Tiredlass  [author] 27 May @ 8:33pm 
@DJ Boner Props to you for trying! I never figured that error out, and nobody has complained since the update. But it's relatively straightforward to downgrade it. The latest update did things the simplest way. Put:

"@protectorate_tech_threshold = 0.0001
@protectorate_tech_switch = 0.9999"

In agreement_presets and that file is done. Make sure to overwrite the existing variables for those two things, not just paste in new lines or it won't work.

In agreement_term_values you need to put everything in the {possible} clause under an OR value and then add in "owner = { is_ai = no }" inside the OR value. Keep the original requirements in an AND value inside the OR value.

It should be fairly simple to compare the differences between the vanilla 3.14 file and the altered file. The changes are primarily in just the {possible} section. You should be able to ignore everything under the RESOURCE CONTRIBUTION and SPECIALIST SUBJECT headings.
DJ BONER 26 May @ 3:06pm 
Hey, did you ever figure out where the "cannot be higher/lower than 0.00" error came from? I'm trying to manually downgrade this mod to work with 3.14, but I honestly have no idea what I'm doing lol.
Darth Tiredlass  [author] 1 May @ 6:22pm 
As for the submods, I'm unsure if I'll be updating them.

Mercatorum hasn't been updated in a long time, so I might remove its link from the description.

The maximum taxation submod will depend on how easily I can update it, and if UIOD has changed any of its code.

Playtesting is the hardest part, or at least it was when I was last updating it, as the mod that I was using to spawn with a vassal wasn't working.

The Holdings mod honestly probably still works. I think it was just a pair of edicts, a define key change, and a couple of modifiers. If I find a way to actually playtest these mods I'll test it too but realistically it should still work unless PDX has changed a lot more than I expected.

Most likely outcome is that I'll be updating with code that should, in theory, be good to go but has not in practice been playtested.
Darth Tiredlass  [author] 1 May @ 6:09pm 
I plan on updating this for 4.0, when it rolls out on Monday (or Tuesday my time, as I'm an Australian). It might take a while for me to look at the new code changes to see if I can update the mod at all, or if it's gotten too different for my original approach to work, but if it is as easy as I'm hoping it shouldn't be very long until an update is released.

In the meantime, if anyone wants to use the included Code Walkthrough to give it a crack themselves and report back on how the files have changed (you'd have to enable the beta to get something comparable), any knowledge to forewarn me with is welcome.

I can't *guarantee* that this mod will be able to be updated for 4.0. If the way vassals are handled has become too different from my approach it might be beyond my abilities to figure out how to give the player freedom of choice, but if I can figure it out, expect it in the coming weeks unless my computer explodes or I get hit with a health flareup or some other obstacle.
星之颂 20 Jan @ 4:18pm 
update plz :MHRISE_happy: