Simply put this is a featureset for Sector Administration, Taxation and Automation. Set it up and forget it.
This release is intended to Test and Acquire feedback on the rates and balancing of the taxation feature ONLY.
DISCLAIMER: THIS IS HEAVY WORK IN PROGRESS AND SHOULD NOT BE USED ON A PRIMARY SAVE AND SERVES ONLY AS A PROOF OF CONCEPT, BUGS AND LACK OF FEATURES SHOULD BE EXPECTED AND IN THE CASE OF THE FORMER REPORTED HERE
Getting Started
Talk to a manager on a station that has an Administration module in a sector that you own
Select the "Sector Administration Option"
and then select the option "Assign 'This NPC' as Sector Administrator"
You will then be moved to a menu that lets you set your tax options or unassign the administrator.
NOTE: This mod uses a modified version of my Station Manager Credit Transfer, So if you have that mod you can remove it. Additionally this mod disables the default credit transfer ( well both do ) Options for this are within the Budget options tab when speaking to a manager, Credits will be automatically Transferred to the "Sector Administrator" if within a sector with one.
Features Implemented:
- Station's with managers will be forced to pay a tax periodically
- This Tax Varies based on faction
- Mods that add custom factions may setup their own taxing logic using global variables
- Immediate plans for a 1.0:
- Perks/Flags [Require sugjestions]
- Resistance values, Overtaxing Penalties and Not Paying Tax Penalties.
- Balancing based on feedback
- Sector Administrators
- Tax Breaks based on factors including but not limited to, Newly constructed Station, Ships Patrolling Sector, Killing Hostiles of the parent faction.
- Future
- Flesh Out Sales Tax (Note, May ruin current compatibility with trade mods. will see what i can do.)
- Replace Destroyed Ships assigned to station
- Sector Mine layers
- Support for Faction Funds
- "Civilian Faction" that builds stations to be taxed. [ Optional Addon ]
- Player Perks/Flags (Player empire skill tree as it were.)
- There is many placeholder text for future features.
- Not all stations are recognized for taxes
- Unmanned stations are not taxed.
This system is intended to be flexible enough to be put into any redesign, rework, re-balance, whatever you want to call it. I heavily change only 1 vanilla file (trade.station) and tack on a bit to manager conversations.
If someone was wishing to rebalance this mod, all they would need to do is perform the following check a little after loading the game and it will overwrite my default setup.
Code: Select all
<do_if value="global.taxesInitialized">
<set_value name="global.$taxtable" exact="table[
{faction.player} = table[{'$flags'} = [], {'$prop'} = 0.005, {'$sales'} = 0.003, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.alliance} = table[{'$flags'} = [], {'$prop'} = 0.005, {'$sales'} = 0.003, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.antigone} = table[{'$flags'} = [], {'$prop'} = 0.004, {'$sales'} = 0.006, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.argon} = table[{'$flags'} = [], {'$prop'} = 0.007, {'$sales'} = 0.006, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.civilian} = table[{'$flags'} = [], {'$prop'} = 0.000, {'$sales'} = 0.000, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.criminal} = table[{'$flags'} = [], {'$prop'} = 0.000, {'$sales'} = 0.000, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.hatikvah} = table[{'$flags'} = [], {'$prop'} = 0.001, {'$sales'} = 0.001, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.holyorder} = table[{'$flags'} = [], {'$prop'} = 0.001, {'$sales'} = 0.001, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.khaak} = table[{'$flags'} = [], {'$prop'} = 0.000, {'$sales'} = 0.000, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.ministry} = table[{'$flags'} = [], {'$prop'} = 0.003, {'$sales'} = 0.002, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.ownerless} = table[{'$flags'} = [], {'$prop'} = 0.000, {'$sales'} = 0.000, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.paranid} = table[{'$flags'} = [], {'$prop'} = 0.001, {'$sales'} = 0.01, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.scaleplate} = table[{'$flags'} = [], {'$prop'} = 0.001, {'$sales'} = 0.001, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.smuggler} = table[{'$flags'} = [], {'$prop'} = 0.000, {'$sales'} = 0.000, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.teladi} = table[{'$flags'} = [], {'$prop'} = 0.003, {'$sales'} = 0.003, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.visitor} = table[{'$flags'} = [], {'$prop'} = 0.000, {'$sales'} = 0.000, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]],
{faction.xenon} = table[{'$flags'} = [], {'$prop'} = 0.000, {'$sales'} = 0.000, {'$resist'} = 1, {'$tariffs'} = table[], {'$wares'} = table[]]
]"/>
</do_if>
Code: Select all
<cue name="FactionTaxInitSample">
<conditions>
<check_any>
<event_object_signalled object="player.galaxy" param="'TaxInit'"/>
<check_all>
<event_game_loaded/>
<check_value value="global.$TaxesInitialized?"/>
</check_all>
</check_any>
</conditions>
<actions>
<!--Define a flag to be added-->
<set_value name="global.$flagtable.{'$FlagName'}" exact="table[
{'$type'} = 'prop_mod',
{'$mod'} = -0.1
]"/>
<!--Define a Faction NOTE: Flags/Sales partially implemented, Resist/Tariffs/Wares Not Implemented at all yet-->
<set_value name="global.$taxtable.{faction.YOURFACTION}" exact="table[
{'$flags'} = ['$FlagName'],
{'$prop'} = 0.00,
{'$sales'} = 0.00,
{'$resist'} = 1,
{'$tariffs'} = table[],
{'$wares'} = table[]
]"/>
</actions>
</cue>
$flags: Flags are intended to be a special modifier on certain NPC/AI Features. Some working concepts include 'Tithes' which increase local hostility against the station that was unable to pay it's tax. 'shrewd' which pays 10% less in sales taxes. 'Democratic' where the exponential curve for being overtaxed is doubled. partially implemented
$prop: ex 0.005 or 0.5% of a station's value per Hour. This cash is transferred to the local owning faction's Sector Administrator.
$sales: ex 0.005 or 0.5% of a transaction's profits. Why profits? Because it represented the best possible temporary solution to test the feature. In the future when i can apply this to the search for trade logic i may change this to total... and actually sales price. As for now it's simply a test. pending implementation
$resist: ex ( a value between 0 and 1) The Resist Value denotes the Highest allowed rate of tax that a given faction will allow. Higher Over this is an exponential increase in "Hostility". This is mitigated by doing your job as a land lord and supplying enough ships or defenses to defending the sector against hostiles, Xenon ect. Unimplemented
$tariffs: ex {faction.argon} =( a value between 0 and 2) . This represents the relational aspect between 2 factions. A faction with a tariff rating of 2 will charge 200% the normal tax rate to ships trading at their stations Whereas a value of 0.5 will denote half the base rate.Unimplemented
$wares: Basically, Tarrifs but on wares.. Very Unimplemented until i can find a decent solution to set it up for the player
Change Log:
- How fair is the taxes, Should they be raised or lowered
- How do you feel the tax rates for each of the factions are
- What would be some good "flags" i can assign to the different factions.
- If taxing actually works.. hard to test myself because i'm bad at the game and build small, i'm basically outsourcing some testing with this.
- Suggestions, i've hit a creative wall. this took nearly 2 months to figure out and i rewrote it about 5 times.
DISCLAIMER: THIS IS HEAVY WORK IN PROGRESS AND SHOULD NOT BE USED ON A PRIMARY SAVE
THE CURRENT RATES MAY BE TO SMALL OR TOO LARGE FOR CERTAIN STATION TYPES, THERE IS NO CONSEQUENCE YET BUT CASH WILL BE REMOVED FROM A STATION
Downloads: Download from Google Drive
Report Issues to: Github