Settler taxing

From Unknown Horizons - Wiki
Jump to: navigation, search

This page is part of the Unknown Horizons Design Document. Please discuss everything concerning this topic on the "discussion" tab of this page. If you're not sure whether your ideas are fitting the Unknown Horizons style, either use the related discussion page or ask us. Please don't directly edit the article!




The only way to get money aside from selling resources is by taxing the settlers. This is the main part of the income and therefore most important for a player. The taxing is tightly coupled with the happiness of settlers. The more goods they get, the more tax will they pay.

Detailed Description

Each settler pays taxes regularly. The amount of taxes paid is calculated according to the formula below: happiness * tax_rate. It will be calculated for each residential building since the happiness values are bound to certain inhabitants. The general tax rate is not equal for all inhabitants of a settlement, so it matters to which tier they belong. See why

The user can set a tax_setting between 0.5 (low) and 1.5 (high) in steps of 0.1 where 1.0 denotes medium level. A higher tax setting has the effect of increasing tax income and reducing happiness at the same time.

As one can see in the formula, the happiness will heavily decrease when tax level is set to high, so this setting is to be used only for short periods of time (when the player urgently needs money).

A small tax rate is also contemplated. It would increase happiness, which could make settlers level up, even when certain needed resources are missing.

Open to discussion: Paid taxes depending on inhabitant amount per building? As in, should a building with 3/5 inhabitants pay the same amount as one with equal happiness and 5/5 inhabitants? Discuss this!

Taxing and Happiness

The influence to the happiness of the tax_setting is the following - 8:

  • difference to 1.0 times 6 when low taxes (for 0.5 happiness decreases by 5)
  • difference to 1.0 times 18 when high taxes (for 1.5 happiness decreases by 17)

where - 8 resembles that paying taxes in general causes discontent.

Check #Formulae for the current formula. At medium 1.0 tax setting, happiness does not change if most desired resources are provided. A plot of above graph can be found here.

Implementation related note

Every tier has a base tax (it's 2 for sailors).

Since happiness is an integer ranging from 1 to 100, it would influence the tax amount too much if we used "happiness * tax_rate". Therefore, we will use a modifier of

(1 + ((happiness-50)/100)) = 0.5 + happiness/100

This way, the modifier stays between 0.5 and 1.5 and at medium happiness, it's 1.


Balancing values

tier max inhabitants tax base rate
I Sailors 2 2
II Pioneers 3 3
III Settlers 5 6
IV Citizens 8 10
V Merchants 13 18
VI Aristocrats 21 30


def modify_happiness(tier, tax_level)
tier int 1 .. 6
tax_level float 0.5 .. 1.5
difference = 1.0 - tax_level
modify = 12 * difference - 6 * abs(difference)
return modify - 8
def tax_income(tier, tax_level, happiness, inhabitants_of_building)
tier int 1 .. 6
happiness int 1 .. 100
tax_level float 0.5 .. 1.5
inhabitants_of_building int: for e.g. Citizens this would be between 5 and 8
happy_mod = 0.5 + happiness/100
inhabitant_mod = inhabitants_of_building / max_inhabitants[tier]
return base_tax[tier] * happy_mod * tax_level * inhabitant_mod
Personal tools