RimWorld

RimWorld

RIMMSqol
This topic has been locked
Razuhl  [developer] Jan 31, 2023 @ 4:05am
Manual
Contents

  1. Editing Game Objects
  2. Customizable Menus
  3. Customize ur Minions
  4. Where To Find
  5. Food and Restrictions
  6. Pathfinding
  7. QOL
  8. Editing components
  9. Backup Configuration Files

Import / Export Settings:

https://steamcommunity.com/workshop/filedetails/discussion/1084452457/3040481812838403430/

Storyteller:

https://steamcommunity.com/workshop/filedetails/discussion/1084452457/2145343824298929781/

Cities:

https://steamcommunity.com/workshop/filedetails/discussion/1084452457/2952595757891896873/
Last edited by Razuhl; Jun 7, 2024 @ 3:18am
< >
Showing 1-9 of 9 comments
Razuhl  [developer] Feb 1, 2023 @ 10:36am 
Editing Game Objects

In the mod's menu a list of categories is shown. Apart from the "General Settings", "Import/Export" and "Summary" categories each one reflects a type of database definition that can be edited(e.g. weapons, apparel, thoughts, races).

After selecting a category a filterable list of available entries is shown. The default filter allows to search based on the entries label and/or mod wherin the mod name is seperated by "#" from the label. The filter expression "bed#core" would list all beds from the base game. A red cross behind an entry indicates that changes were made and by clicking the cross all changes for the entry are discarded. Hovering over an entry shows a tooltip with further details. The default tooltip displays the label, defName(unique key) and the mod name.

When editing an entry modified values are marked with a green radiobutton. By deselecting it the changes made will be discarded. Only marked properties are overridden, this allows mods to change parts that aren't edited. If no radiobuttons are displayed than the part of the object is edited in whole. The label of a property contains a tooltip clarifying the use and purpose of the property(unless it's self explanatory).

Nearly all modifications can be made during gameplay and take immediately effect(although not necessarily retroactively).

The "General Settings" contain properties related to the mod and settings that are application wide instead of tied to a specific database entry. They contain a list of "Forbidden Patches", those can be used to deactivate any changes to the games code in case of incompatibilities. A list with "Def Copies" that allows spawning of new entries by copying existing ones with new id's and labels. While the mod allows editing entries that weren't created through xml the copying only works on xml based entries. The list "Component Management" allows adding, overwriting and removal of components on defs. This also works on an xml level and changes will require a restart to take effect. The setting "Reapply on Game Load" can help fix cases where edits are not taking effect due to other mods modifying the same properties after they are applied initially.

The "Summary" category lists all modified entries from all categories.

The "Import/Export" category:

https://steamcommunity.com/workshop/filedetails/discussion/1084452457/3040481812838403430/
Last edited by Razuhl; Jul 24, 2023 @ 8:23am
Razuhl  [developer] Feb 1, 2023 @ 10:37am 
Customizable Menus

Main Menu

The buttons at the bottom of the screen can be grouped into drop down buttons(DDs). When editing the main buttons in the mod menu they show up with a special property called buttons. By default they are invisible and buttons added to a DD must be toggled invisible if they should only appear in the DD.

The tooltip on the order property gives an overview of the ordering and visibility across all buttons.

The "General Settings" contain the property "MB DD always labeled" which decides if a button with an icon should display it's label inside the DDs popup.

Architect Menu

The category "Architect Buttons" allows editing the groups displayed in the architect menu. The label for the order property displays the ordering and visibility of all groups. The "Designators" property defines all special designators displayed in the group. Designators that belong to buildable buildings are assigned to architect groups by editing the corresponding building.

Buildings define the "Architect Category" and "Architect Category Dropdown" property. All buildings in the same category and dropdown are grouped into a dropdown. This mod expands the vanilla functionality and allows grouping buildings that have a material selection. By clicking the dropdown multiple times the user can cycle between selecting a building and selecting a material.
Razuhl  [developer] Feb 1, 2023 @ 10:37am 
Customize ur Minions

Colonists gain personal growth points through their actions, which are measured on their records page. Those points can be spent to alter backstories, traits, ideology and passions. Cosmetic changes like the look and relations of a pawn can be changed for free.

The "General Settings" category in the mod menu allows changing the base cost, taxation and ability to share points. Through the categories "♥♥♥ Trait Costs" and "♥♥♥ BS Costs" the pricing of individual items can be changed and with "♥♥♥ Record Points" the rate at which points are earned through the different records can be adjusted. The default settings for records are 20 points per year spent as a colonist and one point per human kill.

In the mod options support for "[SYR] Trait Value" can be enabled. Once enabled the cost for traits is extrapolated from their values. To bring both scales in line the values are divided by 15, that way a normal trait should cost the same with or without that mod.

By default changes are loss less and can be reversed without loosing points. If that is too tempting then a tax can be added that will charge extra points which aren't refunded.

If powercreep is a concern then inflation can be added. Based on a (x,y)-curve the cost for each point y after spending x-points makes it so that future upgrades can increase in cost. Adding points to the shared pool counts as spending the points on the donating pawn not on the consumer.
Razuhl  [developer] Feb 1, 2023 @ 10:37am 
Where To Find

A mainbutton behind which a menu appears that allows filtering and searching for anything on the map that is visible to the player. Cycle with left click through stacks or select up to the maximum number of stacks with right click. The menu allows filtering for only forbidden items and to filter for material and label.

When using god mode a selection option to destroy all selected items is displayed.
Razuhl  [developer] Feb 1, 2023 @ 10:37am 
Food and Restrictions

A preset ruleset determining who can do what with food and serve to manage the wide variety of food items. It can be used through a new forbid/unforbid icon on the far right of the "assign" menu. The rules will dynamically determine if a food item is forbidden. This is affects eating, feeding and packing lunch.

Restrict faction members from eating ingredients or harvestable plants. Animals are allowed to eat human corpses and trees.
This prevents your colonists and animals from eating raw food before you get a chance to refine it for more nutrition. Useful if the colony is on the brink of starvation.
Restrict non starving faction members from feeding or eating preserved food.
With this you can stockpile preserved food for caravans without fearing it may be victimized at the next birthday party.
Restrict non starving colonists with mood above minor break threshold from eating meals better than simple.
Only use good food if necessary.
Restrict non starving colonists with ascetics trait from eating better than simple meals.
For roleplayers and sticklers.
Restrict non starving faction animals from eating meals.
No more hens gorging themselfs on the good stuff.
Restrict non starving non colonist prisoners not marked for recruiting from eating meals better than simple.
Prison food the texan way.
Restrict non starving non colonist prisoners marked for recruiting with mood above 80% from eating meals better than simple.
Let them eat cake so you can put them to work sooner.
Rules treat fine meals like simple meals.
If you have enough fine meals to serve them as standard food you can check this.
Last edited by Razuhl; Feb 6, 2023 @ 8:34am
Razuhl  [developer] Feb 1, 2023 @ 10:37am 
Pathfinding

Pathfinding is implemented with an algorithm that accounts for transitional costs between two cells(from sandbag to sandbag no penalty applies on the second bag) and an improved technique to deal with pawns moving outside their allowed zone(e.g. animals returning from a caravan). The distance for exact pathfinding is configurable and can simply be set to the map size or bigger to achieve perfect precision. The variabel precision comes from the basegame's attempt to speed up long pathfinding with a faulty heuristic that prefers to search in a straight line ignoring most movement costs. This is however only faster in an open field where a straight line connects two points(mostly raiders). In a developed colony colonists are better of guiding their pathfinding along the faster cells like roads. To accomodate all scenarios the pathfinding can be turned on or off for 4 distinct groups "Colonists", "Tame Animals", "Wild Animals" and "Other". Setting the configuration for colonists and tame animals to 999 and for the rest to 40 should generate good results.

Restrict Movement

The architect menu has a new group called "PF-Directions". It contains designators to draw directional arrows onto cells. These arrows define in which direction a colonist or tame animal is allowed to move. They are only respected by the mods own pathfinder. If no arrows are drawn in a cell then all directions are available. Restrictions can be lifted for certain jobs by using the mod menu to configure the "Free Moving Jobs" property in the "General Settings" category.

With these tools players can define one way traffic and multi lane roundabouts. Cutting of access to dangerous areas is also possible but must be done in conjunction with allowed areas so that pawns won't try to perform any jobs in those areas.
Razuhl  [developer] Feb 1, 2023 @ 10:38am 
QOL

In the mod menu's "General Settings" category:

  • Customize skill decay
  • Customize tameness decay
  • Customize psy decay
  • Customize skill decay
  • Prevent animal family trees
  • Maximum idth for tooltips
  • Date style for in game clock
  • Disabling roof collapse
  • Disabling alerts
  • Automatically dismissing letters
  • Expectations based on a pawns value
  • Slavery settings
  • Anima linking (participants/progress) curve

Background

  • Prevents pawn records from being jumbled if their position in the database changes.
  • Button in the global controls to collapse the panel.
  • Customizable rendering of hats/apparel/weapons.
  • Prevent snow from capping movement at 100%.
  • Level ups and downs display icons and register thoughts that are visible for a day to track missed level ups.
  • Prevent wasteful use of ingredients when mixing ingredients with differing values.
  • Faster garbage collection for world pawns.
Razuhl  [developer] Jul 24, 2023 @ 8:24am 
Editing components

The "General Settings" has a property "Component Management". When creating an entry it allows for adding, overriding and removal of components. Components are building blocks that govern modular behaviour on game objects. Like making an object rot or transmit power. While all components can be managed not all can be edited, it might be possible to copy a rot component but then the rotting behaviour would be identical to the original object's behaviour with no means to change that. Also adding components to objects that aren't designed to work will work in the sense of this mods transformation but might not function as expected. The purpose of the function is a simple xml mutation not to make it functionally work - for that it might still be necessary to write xml mods.

Selecting "RawBerries" find the forbiddable component which can then be added to a "StandingLamp". Now the lamp can be toggled as forbidden, which e.g. allows blocking repair jobs.

Doing the same with the rotting component will however throw a configuration error. The game detects that the component will not behave properly on the standing lamp and there isn't anything that can be done about it through RIMMSQoL. Adding the rotting component to hay will replaced the existing rotting component and ensure that hay is rotting at the same speed as berries.

Removing the rotting component from simple meals will turn them into preserved food.

The changes are made by modifying the xml basis during game start. They happen after patches and inheritances have been resolved. This means changing object A won't affect object B even if it inherited from A. Components that have been added via code and are not represented in the xml can not be processed and a corresponding warning will be logged. They can however not be detected beforehand. Components might require other components to work or have other requirements. If you wan't to understand them ask in modding forums, discord servers or the responsible mod authors, this is not a support forum.
Razuhl  [developer] Jun 7, 2024 @ 3:16am 
Backup Configuration Files

This guide details how to setup regular tasks that commit files into a file versioning system so that their contents can be recovered and reviewed as necessary. This protects against data loss and applies to any file structure but is shown in the context of rimworlds configuration directory.

The advantage over keeping file copies is that only the differences between two file versions are stored and it is easy to save an exact directory. The default file history from windows would save a large amount of copies and works on too many folders requiring an extensive blacklist to make use of it.

Prerequisite

Windows 10/11(all versions)
Install TortoiseSVN


  1. Goto path "%HOMEPATH%\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios" in your explorer.
  2. Create folder "ConfigBackup".
  3. Rightclick folder "ConfigBackup" and TortoiseSVN -> "create repository here"
  4. Copy "file://..." url before pressing ok.
  5. Rightclick folder "Config" and "SVN Checkout"
  6. Make sure "URL of repository" is set to the previously created URL for "ConfigBackup". If not paste it from the clipboard.
  7. "Checkout" directory must be set to the "Config" folder.
  8. You get a warning that the folder is not empty. Confirm by clicking "Checkout".
  9. Rightclick the config folder(now shows a "green checkmark icon") and select "SVN commit".
  10. In the dialog click "all" behind "Check:" or select manually which files you want to backup.
  11. Click ok. Now the initial backup is performed and you can close the dialog.
  12. Now create a new file "commit.bat" in the "Config" folder and edit it to contain:
    @echo off for /f "tokens=1*" %%A in ('svn status %1 ^| find "?"') do svn add "%%B" for /f "tokens=1*" %%A in ('svn status %1 ^| find "!"') do svn delete "%%B" svn commit -m "Automatic commit" %1
  13. Now the commit command can be called and it will add all new entries, delete all missing entries and finally commit any changes. If no changes are present no commit takes place so it can be called repeatedly without ill effects. The "Config" folder will show a green checkmark if everything is backed up.

Selecting a file and rightclicking it now brings up the TortoiseSVN options. Selecting "log" allows browsing through all previous versions and reverting to any selected version. Doubleclicking on the file in the log window opens it at that revision to see if it is what you are looking for.

Starting the task(Choose one)

Task Scheduler

  1. Open the start menu and type "Task" the "Task Scheduler" will be presented as a match. Click that.
  2. Rightclick on the left over "Task Scheduler Library" and choose "Create Basic Task ...".
  3. Fill out the the name and description as you see fit and click next.
  4. The trigger can e.g. be daily.
  5. The action is "Run a programm" and you select the "commit.bat" file and also copy the directory to the "Start in(optional)" field(without enclosing quotes!).
  6. After the task was created right click it and open the properties. Goto the tab "Settings" and check the option "Run task as soon as possible after a scheduled start is missed".
  7. Goto the tab "General" check "Run whether this user is logged on or not". This makes it so that the console window does not show. You either have to store the user password with the task or if you only use local storage you can check "Do not store password.".

The task will now run each day and if the computer is inactive at the exactly scheduled time it runs as early as possible. You can run the task manually via rightclick to test it.

On Game Start

  1. Add this line to the end of the "commit.bat" file.
    start steam://rungameid/294100
  2. Now rightlick the "commit.bat" file and create a shortcut. Drag the shortcut wherever you start your games from.
  3. Edit the name.
  4. Select "Properties" from the rightclick context menu.
  5. Goto tab "Shortcut" and use "change icon", browse and select the icon from the games original ".exe" file in your steam library folder "...\Steam\steamapps\common\RimWorld\RimWorldWin64.exe".

Whenever you start the game using this shortcut it will first commit all changes and then run the game.
Last edited by Razuhl; Jun 12, 2024 @ 6:30am
< >
Showing 1-9 of 9 comments
Per page: 1530 50