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]
58 Comments
Darth Tiredlass  [author] 3 Oct @ 4:28pm 
@Juglans I don't believe it would. My assumption would be the files that govern that particular mechanic would be under common - casus_belli, specifically the cb_subjugation code block in 00_casus_belli.

I would imagine the section of code that states you must be superior is this little nugget here:

relative_power = {
who = FROM
category = all
value > equivalent
}

I suspect if you commented that out, the subjugation casus belli would be valid regardless of power differentials. This is only a guess, but it seems like it fits. If you make a mod (don't edit the files directly) to overwrite this file with this section commented out or deleted, and the differential requirement persists, I would recommend making a Discord account and asking the Stellaris Modding Den for help.

They're much better at this than I am, or at least there's a healthy population of superior modders there, and they're generally quite happy to help.
Juglans 3 Oct @ 6:13am 
Dear author, does this mod remove the power differential limit between empires for declaring a vassalization war?
If not, could you please tell me how to remove these restrictions?
HalO 31 Aug @ 1:58am 
Oh man, thanks for getting back to me.

I hate that feature so much. God forbid i try to send extra help to my subjects. It's such a silly limitation..
Darth Tiredlass  [author] 30 Aug @ 4:34pm 
I ... honestly have no idea. I haven't actually tried doing that. I haven't touched much code, so I would *assume* the behaviour in this area is the same as vanilla, but hey, it might be different. I didn't see anything governing that kind of thing in the files I was operating in, so it's either hardcoded or more likely present somewhere else.
HalO 30 Aug @ 8:52am 
I know in basegame stellaris if you're taking or giving a resource to a subject you can't trade that resource using the normal trade menu to either give or take it away.

Does this mod change that so you can trade even if you're taking/giving resources in the subject agreement?
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://gtm.steamproxy.vip/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?