AI Storytellers

From RimWorld Wiki
Revision as of 11:13, 23 December 2022 by Hordes (talk | contribs) (add a difficulty subsection for the difficulty redirect)
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 create events like pirate raids, resource drops, or animal attacks. Your choice of storyteller sets the tone for your colony - a vicious storyteller may send constant deadly attacks, while a more benevolent storyteller will send trade caravans and travelers asking you for help. They choose events based on a number of factors, such as how much wealth your colony has acquired, how many colonists you have, if a colonist has died or been severely wounded recently, and how long it has been since the last major event.

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.

Both difficulty and storyteller are changeable mid-game, with no downside or penalty.

Current AI storytellers

Cassandra.png

Cassandra Classic

Cassandra creates story events on a classic increasing curve of challenge and tension.
She'll push you with dangerous events, then give breathing room, then come back to push once more.

Phoebe.png

Phoebe Chillax

Phoebe gives lots of time between disasters to build your colony.
But beware - at high difficulties, she'll hit as hard as anyone.

Randy.png

Randy Random

Randy doesn't follow rules.
He'll generate random events, and he doesn't care if they make a story of triumph or utter hopelessness. It's all drama to him.

Warning: Since Randy is truly random, he will sometimes send extremely difficult or unfair groups of events at you.
It makes for high drama - and unavoidable sacrifices.

Difficulties

There are 6 default difficulties:

  • Peaceful
  • Community builder
  • Adventure story
  • Strive to survive
  • Blood and dust
  • Losing is fun

Each difficulty works by changing the values of each setting, displayed down below. Using the Custom difficulty will allow you to change each setting yourself.

Options

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

Threats

Options Description Value options Peaceful Community builder Adventure story Strive to survive Blood and dust Losing is fun
Threat scale Adjust the size of threats like raids (using raid points) and infestations, and the difficulty of quests. 0% - 500% 10% 30% 60% 100% 155% 220%
Major threats Allow major threats such as raids, infestations, manhunter packs, crashed mechanoid ships and more. Toggle Ex.png Check.png Check.png Check.png Check.png Check.png
Quests threats Allow quests to present with violent threats and challenges. If this is disabled, quests will be modified to be non-violent. Toggle Ex.png Check.png Check.png Check.png Check.png Check.png
Intro threats Enable the fixed intro threats that appear near game start. Toggle Ex.png Check.png Check.png Check.png Check.png Check.png
Predators hunt humans Allow wild predators to hunt humans. Toggle Ex.png Ex.png Check.png Check.png Check.png Check.png
Extreme weather Allow extreme weather incidents such as toxic fallout, volcanic winters and flashstorms. Toggle Ex.png Ex.png Check.png Check.png Check.png Check.png

Economy

Options Description Value options Peaceful Community builder Adventure story Strive to survive Blood and dust Losing is fun
Harvest yield Adjust the amount of materials produced when harvesting plants and crops. This includes harvesting plants and cutting trees. 0% - 500% 120% 120% 100% 100% 95% 80%
Mining yield Adjust the amount of materials produced when mining. 0% - 500% 120% 120% 100% 100% 95% 80%
Butchering yield Adjust the amount of materials produced when butchering. This includes meat, leather, and yield from shredding mechanoids. 0% - 500% 100% 100% 100% 100% 90% 80%
Research speed Adjust the speed of research. 0% - 500% 120% 120% 100% 100% 95% 90%
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% 100%
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% 100%
Trade price disadvantage When trading, buy prices are increased by this amount while sell prices are reduced by this amount. 0% - 50% 0% 0% 0% 0% 10% 20%
Turret rearm cost Adjust the cost of rearming turrets. 1% - 100% 50% 50% 75% 100% 100% 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% 0% 0% 33% 60% 74% 82%
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% 50% 90% 100% 100% 100% 100%

General

Options Description Value options Peaceful Community builder Adventure story Strive to survive Blood and dust Losing is fun
Colonist mood A permanent mood offset applied to every colonist and prisoner. Colonists have a base mood of 50%. -20 - +20 +10 +10 +5 +0 -5 -10
Food poison chance Adjust the chance that a person will get food poisoning from eating a potentially-poisoned meal. 0% - 500% 30% 50% 75% 100% 110% 120%
Animal revenge chance Adjust the chance that injuring a wild animal will cause it to attack. 0% - 500% 25% 100% 100% 100% 100% 100%
Infection chance Adjust the chance that a wound will become infected. 0% - 500% 30% 50% 75% 100% 100% 110%
Disease frequency Adjust the frequency of random disease events. 0% - 500% 33% 40% 67% 100% 105% 111%
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% 10% 15% 50% 100% 100% 100%
Deep drilling infestations Adjust the chance that deep drilling will trigger an infestation. 0% - 500% 0% 25% 75% 100% 110% 130%
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% 40%
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% 100%
Map generation ancient threats Ancient structures may contain dangerous threats. Toggle Ex.png Check.png Check.png Check.png Check.png Check.png
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 Ex.png Check.png Check.png Check.png Check.png Check.png

Player tools

Options Description Value options Peaceful Community builder Adventure story Strive to survive Blood and dust Losing is fun
Player can built spike traps Player can build traps like spike traps and IED traps. Toggle Check.png
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 Check.png
Player can built mortars Player can build mortars. You can still use captured mortars even if this is disabled. Toggle Check.png
Classic mortars Mortars will not require reinforced barrels to construct or reload, and are balanced for this ease of access.

With "Classic Mortars", mortars are as they were before 1.3. Namely:[Skill?]

  • 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 Ex.png

Adaptation

Options Description Value options Peaceful Community builder Adventure story Strive to survive Blood and dust Losing is fun
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% 0% 25% 75% 100% 100% 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% 100% 100% 100% 90% 70% 40%
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 Ex.png
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 12

Ideology

Options Description Value options Peaceful Community builder Adventure story Strive to survive Blood and dust Losing is fun
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% 300%

Biotech

Options Description Value options Peaceful Community builder Adventure story Strive to survive Blood and dust Losing is fun
Wastepack cocoon infestation Adjust the chance that a dissolved wastepack will trigger the arrival of insect cocoons. 0% - 500% 0% 25% 50% 100% 150% 200%
Babies always healthy Human babies are always born healthy.
Mothers can't die in childbirth or have miscarriages.
Toggle Ex.png
Disable children Humans can't become pregnant. Human babies and children will never appear unless you choose them as starting colonist. Toggle Ex.png
Child raiders Hostile raids will sometimes include children. Toggle Ex.png
Child aging rate Adjust the rate at which babies and children will age. 100% - 600% 400%
Adult aging rate Adjust the rate at which adults will age. 100% - 600% 100%

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.

    Trivia

    • The "Losing is fun" difficulty is a reference to the game Dwarf Fortress, which also happens to be that game's tagline. More specifically, it refers to Dwarf Fortress lacking a definite ending, as the game will end with the player losing no matter how skilled they are.

    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.
    • 0.14.1241 - Reduced event density on Randy Random from 1.5x that of Cassandra to about the same as Cassandra. The combination and distribution of events is still very different from Cassandra. Toxic fallout, flashstorm and volcanic winter are now disabled in Free Play difficulty.
    • 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.