AI Storytellers

From RimWorld Wiki
Revision as of 16:10, 5 January 2022 by CharleneZor (talk | contribs)
Jump to navigation Jump to search
Basics Menus Game Creation Gameplay Pawns Plants Resources Gear Mods
Game Creation Scenario system AI Storytellers World Generation Biomes
AI Storytellers Cassandra Classic Phoebe Chillax Randy Random

AI storytellers are driving the gameplay and their choices will affect the story of your colony, but will never entirely disallow events because of population. They create events like pirate raids, resource drops, or animal attacks.

The one that you choose will make decisions about what events it wants you to encounter and when based on the situation you are currently in and on the biases of that particular AI.

Choosing an AI will have a great influence on the narrative that is formed as you play. The difficulty is selected separately from the storyteller, but both are changeable mid-game.

Current AI storytellers


Cassandra Classic: Cassandra Classic is the default storyteller. Challenges start easy with a single manhunter animal/single raider, and overall become increasingly more difficult over time as wealth increases. She gives time in between raids to recover, but can hit very hard, especially on the higher difficulty settings. Players generally find Cassandra more difficult than Randy, because she tends to give less peace in between the increasingly tougher raids.

Phoebe Chillax: Phoebe Chillax, is a storyteller whose main characteristic is the long break between challenges, leaving the player with enough time to rest and recover after an event, and live without much to worry about. This gives new players a more relaxed experience to get familiar with the game. However, long breaks between raids means huge spikes of difficulty and troubles equipping your pawns with weapons and armor. When playing with Phoebe, in the beginning its always likely to gain one or two more colonists, typically a wanderer. A trade caravan or two shall also arrive before completing a full quadrum (15 days).

Randy Random: Randy Random, is a wild storyteller whose main characteristic is triggering challenges at any time of any difficulty, to the extent of launching several dangerous threats all at the same time or consecutively.

Code specifics for storyteller

Name Desired population min Desired population max Desired population critical Threat cycle length
AverageIncidentsPerDay(Randy)
Min Days Between Threat Bigs GeneralWeight(Randy) Classic_RandomEventMTBDays ThreatSmallWeight(Randy) Classic_ThreatBigMTBDays LargeThreatWeight(Randy) Classic_ThreatSmallMTBDays MaxThreatBigIntervalDays(Randy)
Cassandra Classic 4 13 18 9.2 1.9 1.00 3.75 1.25
Phoebe Chillax 4 13 18 17 12.5 1.00 8 1.25
Randy Random 4 13 50 1.45 0.79 0.0950 0.095 13

Options

Threats

Options Description Value options
Threat scale Adjust the size of threats like raids (using raid points) and infestations, and the difficulty of quests. 0% - 500%
Major threats Allow major threats such as raids, infestations, manhunter packs, crashed mechanoid ships and more. Toggle
Quests threats Allow quests to present with violent threats and challenges. If this is disabled, quests will be modified to be non-violent. Toggle
Intro threats Enable the fixed intro threats that appear near game start. Toggle
Predators hunt humans Allow wild predators to hunt humans. Toggle
Extreme weather Allow extreme weather incidents such as toxic fallout, volcanic winters and flashstorms. Toggle

Economy

Options Description Value options
Harvest yield Adjust the amount of materials produced when harvesting plants and crops. This includes harvesting plants and cutting trees. 0% - 500%
Mining yield Adjust the amount of materials produced when mining. 0% - 500%
Butchering yield Adjust the amount of materials produced when butchering. This includes meat, leather, and yield from shredding mechanoids. 0% - 500%
Research speed Adjust the speed of research. 0% - 500%
Quest rewards Adjust the value of rewards given for quests. Note: Quest reward value is also automatically scaled to compensate for threat scale. If you adjust this setting, you'll be adding an additional multiplier. 0% - 500%
Raid loot Adjust the value of loot carried by raiders. Note: Raid loot value is also automatically scaled to compensate for threat scale. If you adjust this setting, you'll be adding an additional multiplier. 0% - 500%
Trade price disadvantage When trading, buy prices are increased by this amount while sell prices are reduced by this amount. 0% - 50%
Turret rearm cost Adjust the cost of rearming turrets. 1% - 100%
Scaria rot chance The probability that a corpse will immediately rot upon death, if the creature has the scaria disease. Note: The default settings are designed to exactly balance out the increase in animal count at higher difficulties, so all players get the same meat rewards. 0% - 100%
Enemy death on downed Adjust the extra chance that an enemy will immediately die when downed. This affects the chances to take prisoners, and thus colony population growth rates. 0% - 100%

General

Options Description Value options
Colonist mood A permanent mood offset applied to every colonist and prisoner. Colonists have a base mood of 50%. -20 - +20
Food poison chance Adjust the chance that a person will get food poisoning from eating a potentially-poisoned meal. 0% - 500%
Animal revenge chance Adjust the chance that injuring a wild animal will cause it to attack. 0% - 500%
Infection chance Adjust the chance that a wound will become infected. 0% - 500%
Disease frequency Adjust the frequency of random disease events. 0% - 500%
Insect spawning rate Adjust the rate at which existing insect hives spawn new insects. Lower values means more time between spawn events. This does not affect whether infestations can occur - only the speed at which active hives produce insects. 0% - 500%
Deep drilling infestations Adjust the chance that deep drilling will trigger an infestation. 0% - 500%
Friendly fire Adjust the chance of friendly fire. Note: This setting only affects direct shots which were going to hit their target. It does not prevent damage from explosions, or from shots which were going to miss their target. 0% - 100%
Colonist instant kills Adjust the chance that a colonist can die instantly due to an attack. The incoming damage is adjusted so it will down the colonist instead. This only prevents some kinds of instant kills - colonists can still be downed and bleed to death, die from fire, explosions, disease, and so on. 0% - 100%
Map generation ancient threats Ancient structures may contain dangerous threats. Toggle
Map generation natural hives Dormant insect hives may spawn in natural caves. This setting only applies to map generation and does not affect active insects that may tunnel in during play. Toggle

Player tools

Options Description Value options
Player can built spike traps Player can build traps like spike traps and IED traps. Toggle
Player can built turrets Player can build static turrets like mini-turrets, autocannon turrets, and uranium slug turrets. You can still use captured turrets even if this is disabled. Toggle
Player can built mortars Player can build mortars. You can still use captured mortars even if this is disabled. Toggle
Classic mortars Mortars will not require reinforced barrels to construct or reload, and are balanced for this ease of access.

With "classic {{subst:lc:Mortars}"}, mortars are as they were before 1.3. Namely:

  • The barrel need not be changed every 20 shots.
  • Reinforced barrels are removed from the recipe and game.
  • Forced miss radius increased from 9 to 13.
  • Steel cost of all mortar shells increased by 10.
Toggle

Adaptation

Options Description Value options
Adaptation growth rate Adaptation means the storyteller makes the game more challenging when you're doing well. An adaptation score grows over time, and is knocked down when you take damage. This setting adjusts how fast the adaptation score grows over time. 0% - 100%
Adaptation impact Adaptation means the storyteller makes the game more challenging when you're doing well. An adaptation score grows over time, and is knocked down when you take damage. This setting adjusts how much the adaptation score affects the difficulty. 0% - 100%
Wealth-independent progress mode Play in a wealth-independent progress mode. In normal mode, the storyteller scales threats according to colonist count, player wealth, and a variety of other factors. Wealth-independent mode removes the wealth factor and replaces it with a fixed progress curve based on time. The time is counted from the founding of each colony. This is only recommended for those looking for a strict skill challenge. In wealth-independent mode, it may be nearly impossible to recover from serious losses unless you found a new settlement. It's also possible to get too far ahead of the curve and find the game too easy. Toggle
Years until maximum threat The number of game years until the wealth-independent mode reaches its maximum threat level. Note that the storyteller will still scale threats according to colonist count and a variety of other factors. 1 - 20

Ideology

Options Description Value options
Low pop conversion boost With a single colonist of the player's starting ideoligion, conversion chance to his ideoligion is multiplied by this amount. Conversion attempts against them have their impact divided by that amount. With two colonists of the player's starting ideoligion, the effect is halved. With three or more colonists of the player's starting ideoligion, this has no effect. x100% - x500%

Difficulty

The default values are based on the "strive to survive" difficulty level, where most values are at 1.0, or 100%.

Flashstorm, toxic fallout and volcanic winter are disabled in Peaceful difficulty level.

Name Threat scale Colonist mood bonus Base sell price multiplier Crop yield multiplier Disease interval multiplier Enemy reproduction rate factor
Peaceful 0.10 +10 1.00 1.20 3 0.1
Community builder 0.30 +10 1.00 1.20 2.5 0.15
Adventure story 0.60 +5 1.00 1.00 1.5 0.5
Strive to survive 1.00 0 1.00 1.00 1.0 1.0
Blood and dust 1.55 -5 0.90 0.95 0.95 1.0
Losing is fun 2.20 -10 0.80 0.80 0.9 1.0

Commitment mode

Commitment mode, often refered to as "permadeath mode", is an option when selecting difficulty. The player must choose between "commitment" and "reload anytime" mode.

In commitment mode, you only get one save file and can only save when quitting the game. You cannot reload the game to fix mistakes, and only when the colony dies, that's it.

This is the way RimWorld was meant to be played with every dramatic turn - whether tragic or hopeful - played out to full impact.

Note that once selected, the only way to disable commitment mode is to edit the save file.

Technical info

New colonist events

The formula that calculates the odds of random events that add new colonists has changed in 1.0. It factors in how long a player has been at the location for which the event is generated, and the current population of that colony, including pawns who are traveling on the world map. These events include "refugee chased", "transport pod crash", "wanderer joins" and "wild (human) wanders in".

The following code examples and analysis were provided by user Bar0th on Steam, who gave permission for their inclusion here. To summarize these findings: There is a new variable, "PopulationIntent," which replaces the old variables "desiredPopulationMin," "desiredPopulationMax" and "desiredPopulationCritical." It controls the odds of colonist-adding incidents happening on a particular map. The odds based on the time at location decrease until the 10th day, and the odds based on population decrease until the 20th colonist. (For purposes of this formula, prisoners count as half a colonist.) Once both variables have decreased to their long-term minimum, the odds remain stable. Randy's minimum chance is .08%, while for Cassandra and Phoebe the minimum chance is .02%, so Randy is still the best option for players who wish to reach a large colony size.


PopulationIntent (from StorytellerDef):
populationIntentFactorFromPopCurve x populationIntentFactorFromPopAdaptDaysCurve

minIncChancePopulationIntentFactor
Default = 0.05 (from C#)
Randy = 0.20 (from StorytellerDef)

IncidentChanceFactor_PopulationIntent (from C#):
None = 1
IncreaseHard = Max(0.4 + PopulationIntent, minIncChancePopulationIntentFactor)
IncreaseMedium = Max(PopulationIntent, minIncChancePopulationIntentFactor)
IncreaseEasy = Max(-0.4 + PopulationIntent, minIncChancePopulationIntentFactor)

IncidentChanceFinal (from C#):
baseChance (from IncidentDef) x IncidentChanceFactor_PopulationIntent


Example Event: Wanderer Join (baseChance = 0.4, populationEffect = IncreaseEasy)

Day >= 10, 5 Population (PopulationIntent = 1.0)


Randy: 0.24% (0.4 x Max(-0.4 + 1.0, 0.2) = 0.4 x 0.6)
Other: 0.24% (0.4 x Max(-0.4 + 1.0, 0.05) = 0.4 x 0.6)
- They are the same, because of the high PopulationIntent.

Day >= 10, 20+ Population (PopulationIntent = -1.0):

Randy: 0.08% (0.4 x Max(-0.4 + -1.0, 0.2) = 0.4 x 0.2)
Other: 0.02% (0.4 x Max(-0.4 + -1.0, 0.05) = 0.4 x 0.05)
- Here, the low PopulationIntent allows Randy's higher minIncChancePopulationIntentFactor to take effect.

So, there doesn't appear to be a hard cap on any of the storytellers anymore. However, some events can become much rarer at high populations (0.02% chance of a wanderer join, 0.08% if using Randy @ 20+ population). Also, for purposes of population calculation, it searches the entire map for pawns of that colony (ie: includes caravans, etc), and it also includes prisoners of that colony (each prisoner counts as half a colonist).

The multiple colony trick works, because it doesn't check all pawns in the map for all colonies, only the one it is currently determining the event for.

Also, you can check the table for the PopulationIntent from the "debug logging menu" while in dev mode. Search for the population, and you can bring up the table. You'll notice that after 10 days (at the top), and populations > 20 (at the left) the numbers remain the same. That's because of the curves in Storytellers.xml:

<populationIntentFactorFromPopCurve>
<points>

  • 0, 8.0

  • 1, 2.0

  • 5, 1.0

  • 9, 0.4

  • 12, 0.0

  • 20,-1.0

  • </points>
    </populationIntentFactorFromPopCurve>

    <populationIntentFactorFromPopAdaptDaysCurve>
    <points>

  • ( 0, 0)

  • (10, 1.00)

  • </points>
    </populationIntentFactorFromPopAdaptDaysCurve>


    Further investigation and updates are needed.

    Version history

    • 0.0.254B - Added Chill Callie Classic storyteller. Rebalanced Cassandra’s raiders to not send advanced enemies too early, and to pace them a bit slower.
    • 00.1.334 - Kassandra renamed to Cleopatra.
    • 0.4.460 - Storytellers now focus on wealth and let you recover from serious damage.
    • 0.11.877 - Storytellers no longer entirely disallow events because of population. Randy’s event chances are affected by population (somewhat). Re-tuned storyteller population intent based on new output tables for smoother population gain with higher maximum and better recovery at small populations
    • 0.13.1135 - Permadeath mode added - One save file, save on quit or autosave only.
    • The names of the difficulty levels were changed from 1.0 to:
      • Peaceful
      • Builder
      • Medium
      • Rough
      • Savage
      • Merciless
    • 0.14.1236 - Fix: Storyteller incorrectly adjusts trader frequency in relation to ally count.
    • 0.14.1238 - Phoebe’s random incidents density reduced. Previously the same as Cassandra’s, which conflicted with Phoebe supposedly giving more breathing space between events.
    • 1.1.2647 - they have changed again to the following:
      • Peaceful
      • Community builder
      • Adventure story
      • Strive to survive
      • The price of survival is blood
      • Losing is fun
    • 1.1.2654 - "The price of survival is blood" was changed to Blood and Dust.
    • 1.2.2719 - Custom playstyle system added. You can now select a new custom playstyle setting. This opens up a new menu that allows you to customize a large number of different settings exactly as you prefer.
    • 1.2.2753 - Rename "fixed wealth" mode to "wealth-independent" mode, and give the player a slider to control how many years until this mode delivers its maximum threat level.