Skip to content
isathar edited this page Aug 29, 2020 · 5 revisions

SAKE Loader Documentation


General Information

  • Config files use the JSON format (see https://www.json.org/json-en.html ).
    • You can add any number of blank lines between objects to help make things more readable.
      • It's also possible to do the opposite and combine as many entries as you want into single lines.
  • Any variables not specified as required can be omitted. They will either use their default values or be ignored.
  • The JSON spec and the parser used in this tool do not support comments.
    • If you need to add a comment somewhere, use variables named "info" (or any unused variable names).
    • They won't be used in code, but are still loaded into memory, so don't overdo it.
    • Multi-line comments are possible using arrays.
  • A User-Defined Language file for Notepad++ is included in the nppUDL folder to make the json configuration files easier to read.
  • There are four passes in the loading process:
    1. GameSettings - done first because they can affect stats in other forms.
    2. Races - done before Actors because they act as templates for their stats.
    3. Forms besides Races
    4. Name Prefixes - done last to include any name edits from Form overrides.
  • Variable Types:
    • Basic types: String, float, int
    • bool
      • Written as true and false (no quotation marks)
      • 0 and 1 probably work, too
    • Array
      • Example: ["thing1", "thing2", thing3"]
      • Written as a list of variables or objects surrounded by []
    • Object
      • Example: {"name": "something", "id": 1}
      • Written as some variables surrounded by {}
      • Used for things that require more than one variable to be set (ActorValues, Perks, Add/Remove lists, etc.)
    • FormID String
      • Example: "PluginName.esp|000000"
      • Replace the first byte (or two numbers/letters) of a FormID with its plugin name and extension followed by | .
      • The rest must be a hex string (don't convert it to an integer).
      • Leading 0s can be omitted. -ex.: Plugin.esp|00012F == Plugin.esp|12F
      • Use "none" if something needs to be null. (to disable naming rules for weapons or armor, for example)

Config.json

  • activeOverrides
    • Type: Array(Object) - required
    • The list of Overrides to load and their requirements, if any.
    • Variables:
      • path
        • Type: String - required
        • The path to the Override to load, relative to SAKELoader\Presets\
        • Paths can be specific json files or folder names.
        • If a folder name is used, all json files it contains are loaded. Subdirectorie are ignored and can be used for optional files.
      • includeIf
        • Type: Array(String)
        • A list of mod plugins that need to be enabled to load this entry.
      • excludeIf
        • Type: Array(String)
        • A list of mod plugins that will prevent this entry from being loaded.

Override Files

  • JSON files containing form edits.
  • Found in SAKELoader\Presets\
  • overrides
    • Type: Array(Object)
    • A list of edits to base forms.
    • The basic variable names for these are shared among different forms, but most are going to depend on the form's type.
    • See FormTypes for details on the variables used in this list. FormTypes
  • gameSettings
    • Type: Array(Object)
    • A list of GameSettings to edit.
    • Variables:
      • name
        • Type: String - required
        • The name of the GameSetting to edit.
      • valueFloat
        • Type: float
        • Value to change the setting to if it contains a floating point number.
      • valueInt
        • Type: int
        • Value to change the setting to if it contains an integer.
      • valueBool
        • Type: bool
        • Value to change the setting to if it contains a boolean.
      • valueString
        • Type: String
        • Value to change the setting to if it contains a string.
  • namePrefixes
    • Type: Array(Object)
    • A list of prefixes to add to the specified forms' names.
    • Variables:
      • prefix
        • Type: String - required
        • The text to add to the front of the specified forms' names.
      • forms
        • Type: Array(FormID String) - required
        • A list of forms to apply this name prefix to.
        • Limited to types that can be stored in inventories (except holotapes and books/notes for now).
Clone this wiki locally