Home - KonradHeinser/EBSGFramework GitHub Wiki

Preview

The EBSG Framework is a collection of a lot of the code that was made for the Biotech Style Genes and Superhero Genes series. Having it in one framework like this makes it easy for me to use the code across multiple EBSG mods, and, on the off chance anyone is actually interested, it allows people to use this code in their own mods. My goal with this wiki is to help other people use this code, and to help me use this code in a couple weeks when I've forgotten what I added. Contrary to what the name and its origins imply, about half of this framework does not require any of the DLCs to work.

Please note that this wiki assumes that you have a basic understanding of how to code in Rimworld, so if anything doesn't make sense please make sure you first take a look at the modding wiki to be walked through various basic modding concepts.

If you have questions or things you'd like added, please take them to the Discord server or the Steam page. If you are wondering what has been added recently, have a look at the Updates Page. You should also look there if you find that Rimworld says something doesn't exist in case the wiki got updated before the Steam version got the update. If that is the case, you can still download the github version of the framework to try the new things out, but should make sure to check the updates page before releasing a mod or an update to a mod to be sure the Steam version of the framework has the new additions.

  • Abilities - Comps to be added to abilities.
  • EBSG Recorder - Method that the Framework uses for gathering information on what belongs in certain categories, like a list of bloodfeeder genes
  • Genes - Gene classes/extensions that do stuff.
  • Hediffs - Hediff comps from tiered regeneration to a gene randomizer.
  • Needs - Need classes added to the framework
  • Stats - Stats added to all basic pawns that allow for more customization.
  • Things - While rare, this framework can help with some thing stuff, like a special ingestion outcome doer and equipment restricting.
  • Think Tree Stuff - Set up think trees. The page can help some with any think trees, though much like the EBSG Think Tree, is mostly focused on allowing colonists and non-colonists to auto-cast abilities
  • Thoughts - Change moods and opinions.
  • Equip Restrict - Make it so equipment checks for specific things, or genes/xenotypes check for specific equipment, before allowing the pawn to equip the item.

Misc Stuff

  • Careful Conditional : A variation of patch operation conditional that allows for more conditions than a plain pass/fail, removing the need to nest conditionals to avoid errors
  • EBSG Body : Mod extension for replacing bodies/heads, and a render worker for giving head attachments based on age
  • Force Starting Hediffs : Mod extension that forces the startingHediffs in the PawnKindDef to apply for newborns as well. Mostly used for mechanoids

Special Gene Classes


Miscellaneous Notes

  • Things from this framework that allow you to input message/letter information generally accept both a string directly in them or a link to a language file's xml. If you find that one of them isn't accepting something from a language file let me know so I can fix the issue

  • Many parts in this framework have some overlap in how their basic functions work (i.e. Give Multiple Hediffs and Hediff Adder use the same overall structure). While it's still important to read through the page if you're having issues, this design makes it generally easier to use and experiment with the framework in those cases

  • At some points there may be times when the xml for comps and extensions change in a way that can cause breaking. These changes are usually only forced after a major Rimworld version change (i.e. 1.4 to 1.5, or 1.5 to 1.6), and you can make the change early as soon as they pop up on the Destructive Changes page


Requiring this mod

To make this a hard requirement (your mod will not work if this mod isn't enabled), add the following code to your about.xml:

In modDependencies

    <li>
      <packageId>EBSG.Framework</packageId>
      <displayName>EBSG Framework</displayName>
      <steamWorkshopUrl>https://steamcommunity.com/sharedfiles/filedetails/?id=3112549163</steamWorkshopUrl>
      <downloadUrl>https://github.com/KonradHeinser/EBSGFramework</downloadUrl>
    </li>

In loadAfter: <li>EBSG.Framework</li>

To make this a soft requirement (the core of your mod will work without this framework, but certain parts won't be active) add the following code depending on situation:

If you have entire defs or patches that are only active with this mod enabled, add this to your LoadFolders.xml, and make the relevant folders :

<li IfModActive="EBSG.Framework">1.5/Mods/EBSGFramework</li>

If only a few specific things rely on this framework (i.e. a couple defs or some comps) add this in the node : MayRequire="EBSG.Framework"


Credits / Acknowledgments

Elseud made the preview and mod icon

Aelanna and Steve helped answer a lot of my dumb and weird and weirdly dumb questions so I could figure out how to make some of this code actually function instead of blowing up Rimworld

⚠️ **GitHub.com Fallback** ⚠️