Skip to content

10 December 2024 - Entity Model (Character) Customization

<<< Previous Post

You're on the latest post!


  In a previous blog post, I covered the technical details of an internal code type IConfigurationValue<T>. This, as its name implies, is the underlying data type for all configurations. It was originally designed for agnostic use; it is what allows the game's settings to work, but modders can also use it to add configs to their mods. Most notably, it does this while also providing a simple layer to allow these configuration options to be associated with a menu item, so that the option can be displayed in a settings menu without any work other than simply making the widget. The game handles all the hard work of positioning and sizing it to fit for you. You just tell it what to draw.

  This system is so versatile, however, that I have given it a third use: Character customization!

  When you are creating a new character and want to see its customization options, the list of options is assembled on the fly based on what the model says it can customize, and it leverages the full config system. This means there is inline support for the following types of options:

  • Toggles
  • Sliders
  • Dropdown menus
  • Color pickers (HSV Wheel + RGB Sliders + Hex input included!)
  • Text input
  • Custom types invented by modders

  I find this very exciting because it opens the door for potentially advanced customization options for custom species, which will hopefully be able to suit the needs and desires of aspiring creators. Coupled with the game's data format, the possibilities for scalable data are endless.