1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

DebugConfiguration (at a quick glance)

Discussion in 'Civ6 - Creation & Customization' started by ww2commander, Oct 22, 2016.

  1. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    This is a kind of placeholder thread for things relating to the DebugConfiguration.sqlite file.

    • The DebugConfiguration database controls all the mod settings and start options. This allows modders to tailor almost all aspects of game setup whether single or multiplayer.
    • Mod options are control via RuleSets as you may have noticed the similarly labelled field when starting an advanced game.
    • Within these RuleSets, the game knows what to change via the Parameters table which controls all the various options and drop-down fields. Each option is referenced as a Parameter and the list of values associated with a Parameter (i.e. Map Sizes, World Age) are referred as Domain items.
    • The actual value for each Domain entry is set via the Key2 value.
    Obviously this is a start and I hope others will contribute to this post. I will continue posting more info when I next get a chance.
     
    Gedemon likes this.
  2. Gedemon

    Gedemon Modder Moderator

    Joined:
    Oct 4, 2004
    Messages:
    8,876
    Location:
    France
    Good idea, you'll find some example of use in the already released mods (including the scenarios in the game's installation folder)

    There is 2 database know, there are tags in the modinfo file () to explicitly update one or the other (because for example there is a "Map" table in both, but with a very different content)

    For example, from one of the scenario modinfo:
    HTML:
        <Components>
            <UpdateDatabase id="COLDWAR_COMPONENT">
                <Properties>
                    <RuleSet>RULESET_SCENARIO_COLDWAR</RuleSet>
                </Properties>
                <Items>
                    <File>ColdWarScenario_Victories.xml</File>
                    <File>ColdWarScenario_Projects.xml</File>
                    <File>ColdWarScenario_Units.xml</File>
                    <File>ColdWarScenario_WMDs.xml</File>
                    <File>ColdWarScenario_Eras.xml</File>
                    <File>ColdWarScenario_GlobalParameters.xml</File>
                    <File>ColdWarScenario_Policies.xml</File>
                    <File>ColdWarScenario_Features.xml</File>
                </Items>
            </UpdateDatabase>
            <GameplayScripts id="COLDWAR_SCRIPT_COMPONENT">
                <Properties>
                    <RuleSet>RULESET_SCENARIO_COLDWAR</RuleSet>
                </Properties>
                <Items>
                    <File>ColdWarScenario_StartScript.lua</File>
                </Items>
            </GameplayScripts>
        </Components>
        <Settings>
            <Custom id="COLDWAR_SETTING">
                <Items>
                    <File>ColdWarScenario_Config.xml</File>
                </Items>
            </Custom>
        </Settings>
    the files listed in <UpdateDatabase> under <Components> will update the gameplay database, the file in <Custom> under <Settings> will update the configuration database

    note the addition of a <GameplayScripts> tag that is working as intended, but it's another subject.
     
  3. ww2commander

    ww2commander Emperor

    Joined:
    Aug 23, 2003
    Messages:
    1,243
    Location:
    Australia
    Developing a custom setup screen for YnAEM shouldn't be too hard now :)

    This section, from what I can tell, is where you specify the actual game file changes.
    GameplayScripts = game mechanic changes (i.e. XL, SQL, lua)
    Settings = configuration file changes (the above db tables)
     
  4. Gedemon

    Gedemon Modder Moderator

    Joined:
    Oct 4, 2004
    Messages:
    8,876
    Location:
    France
    Working on the UI was a nightmare for me on 5, I fear it will be worst on 6... That's one of the part where I'd love a friendly editor.

    not exaclty, it's <UpdateDatabase> for the gameplay "rules" using XML or SQL, <GameplayScripts> is for scripts (Lua only), ie in the first case you change the value of an unit ranged attack for example, in the second case you create a new gameplay feature.

    and there is <UserInterface> for the UI (an XML file linked to a Lua file with the same name) attached to a context in game. For "gameplay scripts" in civ5 we used that with a blank or (none) XML file attached to the InGame context.
     

Share This Page