v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "Advanced Entity Position Mechanics"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
Line 26: Line 26:
  
 
Site-level position holders are members of a site government (subsidiary to the civilization), and manage local affairs in that location. These are, for example, the [[mayor]], the [[sheriff]] and the [[broker]].
 
Site-level position holders are members of a site government (subsidiary to the civilization), and manage local affairs in that location. These are, for example, the [[mayor]], the [[sheriff]] and the [[broker]].
==Interaction between different position-levels==
+
==Table of interaction between different position-levels==
 
In this table, the possible interactions between different position levels are summerized.  
 
In this table, the possible interactions between different position levels are summerized.  
 
The header row shows the positions defining the tokens.
 
The header row shows the positions defining the tokens.
Line 65: Line 65:
 
| <span style="color:red">APPOINTED_BY</span> </br> <span style="color:gray">COMMANDER</span> </br> <span style="color:red">REPLACED_BY</span> </br> <span style="color:orange">SUCCESSION '''(2)'''</span>
 
| <span style="color:red">APPOINTED_BY</span> </br> <span style="color:gray">COMMANDER</span> </br> <span style="color:red">REPLACED_BY</span> </br> <span style="color:orange">SUCCESSION '''(2)'''</span>
 
| <span style="color:green">APPOINTED_BY</span> </br> <span style="color:green">COMMANDER</span> </br> <span style="color:green">REPLACED_BY</span> </br> <span style="color:blue">SUCCESSION</span>
 
| <span style="color:green">APPOINTED_BY</span> </br> <span style="color:green">COMMANDER</span> </br> <span style="color:green">REPLACED_BY</span> </br> <span style="color:blue">SUCCESSION</span>
| <span style="color:red">APPOINTED_BY</span> '''(3)''' </br> <span style="color:gray">COMMANDER</span> </br> <span style="color:red">REPLACED_BY</span> </br> <span style="color:orange">SUCCESSION '''(4)'''</span>
+
| <span style="color:red">APPOINTED_BY '''(3)'''</span> </br> <span style="color:gray">COMMANDER</span> </br> <span style="color:red">REPLACED_BY</span> </br> <span style="color:orange">SUCCESSION '''(4)'''</span>
 
| <span style="color:gray">APPOINTED_BY</span> </br> <span style="color:gray">COMMANDER</span> </br> <span style="color:gray">REPLACED_BY</span> </br> <span style="color:gray">SUCCESSION</span>
 
| <span style="color:gray">APPOINTED_BY</span> </br> <span style="color:gray">COMMANDER</span> </br> <span style="color:gray">REPLACED_BY</span> </br> <span style="color:gray">SUCCESSION</span>
  
Line 101: Line 101:
 
If they have certain RESPONSIBILITY's, they do the tasks that go with them.
 
If they have certain RESPONSIBILITY's, they do the tasks that go with them.
  
=Fortress-mode, world-gen and their differences=
+
=General=
 +
==Fortress-mode, world-gen and their differences==
 
Their are a few differences in how positions function, between fortress-mode (normal play-mode) and the world generation (world-gen).  
 
Their are a few differences in how positions function, between fortress-mode (normal play-mode) and the world generation (world-gen).  
  
Line 118: Line 119:
 
In fortress-mode, premature SUCCESSION may happen. This will not happen in world-gen-mode.
 
In fortress-mode, premature SUCCESSION may happen. This will not happen in world-gen-mode.
  
 +
==Units holding multiple positions (in multiple entities)==
 +
A unit can hold multiple positions in its civilisation OR site-entity, however this does not happen in world-gen. Only at player-managed sites units can be holding multiple positions at once. (It is probably not possible for a unit to hold a position in two different civilisations or two different sites. )
 +
 +
In world-gen, if there are to many positions to be filled, they simply stay empty until more units are available.
 +
 +
In world-gen, a unit at a site might inherrit a civ-level position and still remains a member of the local goverment. When this happens however, they move to the capital.
 +
 +
In world-gen, if a unit gains a new position, either inherrited or otherwise, it drops the previous one. If a unit assumes a civ-position in fortress mode, it leaves the current position.
 +
 +
If a unit holds the same (site-)position multiple times, it has no additional effect.
 +
 +
If a unit holdes multiple different positions of the same entity, he has all those positions responsibilities and properties stacked up. It is presumable that the demands for those combined positions are determined by the highest.
 +
 +
A unit holding a position with a succession-token CAN be assigned another position with a (different) succession-token.
 +
 +
A unit holding a position with a squad-position cannot hold another squad-position. It is dropped from the first, when it gets its second assigned.
 +
A unit holding a position with a succession-token cannot be assigned to a squad-position. The unit is simply not available. It works the other way around, though.
 +
=RESPONSIBILITY=
 +
If a civ-noble having certain responsibilites arrives at a site and start to live there, it will perform the tasks coming with that responsibility. This means that a civ-manager wil do managing, while he's a citizen of your fortress.
 +
 +
The only AS_NEEDED-position that is created in world-gen is that of the responsibility DELIVERS_MESSAGES, of a site level.
 +
 +
==World-gen effects of the RESPONSIBILITY of available positions ==
 +
It is possible to cause civs and individual sites to change their behavior substantially when they reach a certain size by controlling nobles.
 +
* If a site can only appoint a position with [MILITARY_GOALS] after reaching a particular size, that site will not send armies on missions until the required size is reached.
 +
* A civ-level LAW_MAKING position is required for the civilization to have any kind of cohesion. Without it, sites will be constantly embroiled in territorial disputes and civil wars will be commonplace.
 +
* MILITARY_STRATEGY positions go out and tame wild animals. This makes your civ gain those animals as domesticated and also brings them in sieges.
 +
 +
=Availability and visibility=
 +
==Availability of (new) positions==
 +
Warning: Do not mistake "availability" for "visibility"!
 +
 +
Of all the possible positions existing in your sites entity, there may only some available.
 +
* Positions with [REQUIRES_POPULATION] require the population to have a specific size.
 +
* Positions with [REQUIRES_MARKET] will only appear in "large" sites (which may have different rules for different site types). This tag has no effect in fort mode.
 +
* Positions that are appointed by positions that have a AS_NEEDED number. The appointable positions only become available after a appoiner-position-slot is created. This works also on civ-level. If a position is appointed by a Land-holder, it only becomes available, when that level of landholder is created.
 +
 +
Only the replaced positions are culled and are no longer available.
 +
A position that requires a certain population will become available, even if it doesnt have [APPOINTED_BY] or [ELECTED]. In that case, see 'automatic assignment' and 'assumption'
 +
 +
In fortress-mode, in some cases 'succession' is evaluated immidiatly after a position becomes available. See: Succession.
 +
==Visibility of positions==
 +
A position might be available, but can still be invisible for the player in the [[nobles screen]]. The positions with their respective holders are visible for players:
 +
* All site-positions that are already filled-in (even if they could not be re-filled-in considering current conditions)
 +
* Site-positions that are apointable by a filled-in site position
 +
* Civ-positions of units that are also a citizen of your fortress.
 +
If a position becomes available, for example because a certain pop number has reached or if it is available from the start(like expedition leader), als long as it cannot be appointed, it still is INVISIBLE for the player.
 +
 +
It might strike as odd, may a position becomes filled automaticly in fortress mode, when that position is not even visible. This might be the case if the current holder of a non-appoinable position dies or succeeds another position. Regardless of player-visibility, these positions will be automaticly filled in if the nescesary requisitions are met. It might happen with the expedition-leader.
 +
 +
A situation with a non-visible but available position, is for example when a position is solely appointed by the expedion leader, when the expedion leader's position is left vacant. It can no longer be appointed by the player and is invisible. Then, it gets automatically assumed, proving that the position still was available.
 +
 +
=NUMBER=
 +
A position might be defined with a number. In that case, as many as defined can be available. If the positions become available, in world-gen and when embarking, they are all filled-in completely.
 +
 +
If the ruling position (with PRECEDENCE of 1) has a NUMBER higher than 1, a random unit of the ones holding these positions is shown as 'head of state' in the embark screen.
 +
==Automatic spreadin of assumed, non-singular positions==
 +
If there are civ-positions that have a NUMBER higher dan 1 and which are assumed (not APPOINTED_BY or ELECTED), these are automatically spread among the civilisation, based on population. If there are 20 of them, and they spread among a cilivation with a combined population of 1000 of which your fortress has 100, 2 of your citizens will assume that position.
 +
This may probably also work with elected and appointed positions, but that may be depending on the death of the current holders. Assumpion works within a day.
 +
 +
For this mechanic to happen ist is necessary that they lack the DTY_BOUND-token
 +
==AS_NEEDED==
 +
These positions can be created automaticly by the game in world-gen. This however only works with
 +
* LAND_HOLDER's
 +
* squad commanders (needs more testing)
 +
* Messengers at sites
 +
 +
For all other types of positions, the're not created in world-gen, even if they are defined with RESPONSIBILITY's. For example, even in war, The game wouldn't create a MILITARY_GOALS position, if they have AS_NEEDED as number.
 +
 +
However, in fortress-mode / playermode, these positions can be created by the player at will.
 +
 +
Positions with AS_NEEDED need to be created first, before any symbols are assignable as 'symbols' (objects) for the position holder to carry or wear.
 +
 +
Positions with AS_NEEDED cannot be created and then ELECTED in fortress-mode. It only works with APPOINTED_BY.
  
 
{{Category|Modding}}
 
{{Category|Modding}}
 
{{Category|Guides}}
 
{{Category|Guides}}

Revision as of 11:45, 4 December 2023



Introduction

this is a draft. please let me finish it. joostheger.

Discussion thread on the forum

This article is the result of an investigation into the mechanisms involved in entity positions. It can be useful for modders or advanced players to understand how this part of Dwarf Fortress works.

What is an entity?

An entity is an organizational structure. It can have relationships with other entities. An entity is usually known as a civilization or a "site government", but merchant guilds, religious organizations, and bandit groups are also entities. An entity can have positions. In most cases these are hardcoded and generated by the game, but with civilizations and sites they can be customized with the raw entities.

What is a position?

A position is a special relationship between a unit and an entity. The unit holding a position has a larger influence over that entity as other citizens. Positions are mostly known as nobles, but in this article the technical term is used.

Position levels (Site/Civ) and their interaction

There are two basic types of positions that are customizable: civ(ilization) level and site level. Positions with the tag [SITE] are at site level, positions without the tag [SITE] are at 'civ level'. These two types of nobles can be considered loosely related systems. There are a few places where they can interact with each other.

Citizen-level positions are in charge of the civilization as a whole, managing national trade, laws, and wars. These are, for example, the vanilla monarch, princes, diplomat and general.

LAND_HOLDERS nobles are also positions at civ-level. These units are members of the national government, but have gained hold over some land or site. Once they do, they move to that place, but their position is still regarded as a civ-level position.

Site-level position holders are members of a site government (subsidiary to the civilization), and manage local affairs in that location. These are, for example, the mayor, the sheriff and the broker.

Table of interaction between different position-levels

In this table, the possible interactions between different position levels are summerized. The header row shows the positions defining the tokens.

The left colllumn shows the position type that is referred. Example:

referred position-type LAND_HOLDER
civilization (baron is) APPOINTED_BY:MONARCH

color coding:

  • Exists in vanilla
  • Possible in mods
  • Not possible
  • possible to some extend.
  • not yet fully investigated.
referred position-type Civilization SITE LAND_HOLDER CONQUERED_SITE
civilization APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION (1)
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
SITE APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION (2)
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
APPOINTED_BY (3)
COMMANDER
REPLACED_BY
SUCCESSION (4)
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
LAND_HOLDER APPOINTED_BY
COMMANDER
REPLACED_BY (6)
SUCCESSION
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION (5)
APPOINTED_BY
COMMANDER
REPLACED_BY (7)
SUCCESSION (8)
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
CONQUERED_SITE APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION
APPOINTED_BY
COMMANDER
REPLACED_BY
SUCCESSION

Remarks:

  1. Works only in world-gen, if an unit with that civ-position is present at the site.
  2. Works only in world-gen, the site-position holding unit will then move to the capital.
  3. is completely ignored
  4. Works only in world-gen.
  5. Works only in world-gen.
  6. wont appear at all
  7. This is neccesary for the landholder-chain to work property. It doensn't work otherwise.
  8. This works only outsite of the landholder-chain, so when landholders are simply regarded as civ-level nobles. might also work in world-gen

Civ-level nobles living at your site

Nobles from your civilization can come to live at your fortress. This happens in vanilla with landholders such as Baron, Count and Duke, with the Monarch, but sometimes also with non-landed LAND_HOLDERS.

When a civ-level noble becomes a citizen at your location, his position is shown among the site-level positions in your nobles screen. They appears to function as a site-level noble. They may have demands, mandates, squads and the like. They can appoint nobles at the site-level.

If they have certain RESPONSIBILITY's, they do the tasks that go with them.

General

Fortress-mode, world-gen and their differences

Their are a few differences in how positions function, between fortress-mode (normal play-mode) and the world generation (world-gen).

In fortress-mode, the player has some control over the appointment of nobles, limited by elections, automatic filled-in positions and succession rules. Pre-fortress mode, which is refered to as world-gen, the game will always attempt to assign nobles whenever possible. It is subjected to the same rules as in fortress-mode, but there are some exceptions. In World Automation, which is the thing that happens in the world while you play fortress mode, it seems as if the same rules are applied as fortress mode.

A difference between Player-fortress-mode and world-gen, is causes by visibility (see below). Positions that are not visible by the player and thus not available for assignment, will be available in world-gen and will thus be automatically assigned.

In fortress mode, a position that is both ELECTED and APPOINTED_BY, cannot be appointed by the player and is also not elected, and can thus not be filled. But in world-gen sites however, these positions are automatically filled.

Positions with AS_NEEDED are almost never created and filled in world-gen (depending on its RESPONSIBILITY's), but can always be used in player mode.

A positions can in fortress mode be filled by the same unit. A unit can gain multiple positions in fortess-mode, for example because of elections. This will not happen in world-gen mode: a unit can only have one position. See also remarks on 'embark' and 'Loosing a position'.

In world-gen, SUCCESSION between civ-levels en SITE-levels may happen. This will not happen in fortress-mode, or even off-site in World Automation.

In fortress-mode, premature SUCCESSION may happen. This will not happen in world-gen-mode.

Units holding multiple positions (in multiple entities)

A unit can hold multiple positions in its civilisation OR site-entity, however this does not happen in world-gen. Only at player-managed sites units can be holding multiple positions at once. (It is probably not possible for a unit to hold a position in two different civilisations or two different sites. )

In world-gen, if there are to many positions to be filled, they simply stay empty until more units are available.

In world-gen, a unit at a site might inherrit a civ-level position and still remains a member of the local goverment. When this happens however, they move to the capital.

In world-gen, if a unit gains a new position, either inherrited or otherwise, it drops the previous one. If a unit assumes a civ-position in fortress mode, it leaves the current position.

If a unit holds the same (site-)position multiple times, it has no additional effect.

If a unit holdes multiple different positions of the same entity, he has all those positions responsibilities and properties stacked up. It is presumable that the demands for those combined positions are determined by the highest.

A unit holding a position with a succession-token CAN be assigned another position with a (different) succession-token.

A unit holding a position with a squad-position cannot hold another squad-position. It is dropped from the first, when it gets its second assigned. A unit holding a position with a succession-token cannot be assigned to a squad-position. The unit is simply not available. It works the other way around, though.

RESPONSIBILITY

If a civ-noble having certain responsibilites arrives at a site and start to live there, it will perform the tasks coming with that responsibility. This means that a civ-manager wil do managing, while he's a citizen of your fortress.

The only AS_NEEDED-position that is created in world-gen is that of the responsibility DELIVERS_MESSAGES, of a site level.

World-gen effects of the RESPONSIBILITY of available positions

It is possible to cause civs and individual sites to change their behavior substantially when they reach a certain size by controlling nobles.

  • If a site can only appoint a position with [MILITARY_GOALS] after reaching a particular size, that site will not send armies on missions until the required size is reached.
  • A civ-level LAW_MAKING position is required for the civilization to have any kind of cohesion. Without it, sites will be constantly embroiled in territorial disputes and civil wars will be commonplace.
  • MILITARY_STRATEGY positions go out and tame wild animals. This makes your civ gain those animals as domesticated and also brings them in sieges.

Availability and visibility

Availability of (new) positions

Warning: Do not mistake "availability" for "visibility"!

Of all the possible positions existing in your sites entity, there may only some available.

  • Positions with [REQUIRES_POPULATION] require the population to have a specific size.
  • Positions with [REQUIRES_MARKET] will only appear in "large" sites (which may have different rules for different site types). This tag has no effect in fort mode.
  • Positions that are appointed by positions that have a AS_NEEDED number. The appointable positions only become available after a appoiner-position-slot is created. This works also on civ-level. If a position is appointed by a Land-holder, it only becomes available, when that level of landholder is created.

Only the replaced positions are culled and are no longer available. A position that requires a certain population will become available, even if it doesnt have [APPOINTED_BY] or [ELECTED]. In that case, see 'automatic assignment' and 'assumption'

In fortress-mode, in some cases 'succession' is evaluated immidiatly after a position becomes available. See: Succession.

Visibility of positions

A position might be available, but can still be invisible for the player in the nobles screen. The positions with their respective holders are visible for players:

  • All site-positions that are already filled-in (even if they could not be re-filled-in considering current conditions)
  • Site-positions that are apointable by a filled-in site position
  • Civ-positions of units that are also a citizen of your fortress.

If a position becomes available, for example because a certain pop number has reached or if it is available from the start(like expedition leader), als long as it cannot be appointed, it still is INVISIBLE for the player.

It might strike as odd, may a position becomes filled automaticly in fortress mode, when that position is not even visible. This might be the case if the current holder of a non-appoinable position dies or succeeds another position. Regardless of player-visibility, these positions will be automaticly filled in if the nescesary requisitions are met. It might happen with the expedition-leader.

A situation with a non-visible but available position, is for example when a position is solely appointed by the expedion leader, when the expedion leader's position is left vacant. It can no longer be appointed by the player and is invisible. Then, it gets automatically assumed, proving that the position still was available.

NUMBER

A position might be defined with a number. In that case, as many as defined can be available. If the positions become available, in world-gen and when embarking, they are all filled-in completely.

If the ruling position (with PRECEDENCE of 1) has a NUMBER higher than 1, a random unit of the ones holding these positions is shown as 'head of state' in the embark screen.

Automatic spreadin of assumed, non-singular positions

If there are civ-positions that have a NUMBER higher dan 1 and which are assumed (not APPOINTED_BY or ELECTED), these are automatically spread among the civilisation, based on population. If there are 20 of them, and they spread among a cilivation with a combined population of 1000 of which your fortress has 100, 2 of your citizens will assume that position. This may probably also work with elected and appointed positions, but that may be depending on the death of the current holders. Assumpion works within a day.

For this mechanic to happen ist is necessary that they lack the DTY_BOUND-token

AS_NEEDED

These positions can be created automaticly by the game in world-gen. This however only works with

  • LAND_HOLDER's
  • squad commanders (needs more testing)
  • Messengers at sites

For all other types of positions, the're not created in world-gen, even if they are defined with RESPONSIBILITY's. For example, even in war, The game wouldn't create a MILITARY_GOALS position, if they have AS_NEEDED as number.

However, in fortress-mode / playermode, these positions can be created by the player at will.

Positions with AS_NEEDED need to be created first, before any symbols are assignable as 'symbols' (objects) for the position holder to carry or wear.

Positions with AS_NEEDED cannot be created and then ELECTED in fortress-mode. It only works with APPOINTED_BY.