Skip to content

Feature Request: new lines in moddesc.ini structs #465

@Tajfun403

Description

@Tajfun403

As of this moment, moddesc properties such as altfiles or altdlc do not support new lines in middle of the blocks, as well as have limited whitespace support. As those blocks can be thousands of characters long, this causes writing complicated install options difficult.

Alternatives I've tried

  • Using significant amount of whitespace where possible:

    • What worked here: this is my current go-to to create visual separation between install options
    • What doesn't work: unfortunately it's a hacky workaround which -- while creating some visual separation -- leaves all the option misaligned in a text editor and has limits on where the whitespaces can be inserted
  • Using a separate moddesc.ini file with newlines and removing them for the final release:

    • What worked here: can neatly format the file so that it can be comfortably worked on
    • What doesn't work: the need to maintain two separate moddesc files - one for development, and another for shipping - vastly lowers the development and iteration speed, as well as creates potential issues with wrong removing of the new lines.
  • Using the moddesc editor:

    • What doesn't work: the moddesc editor lacks crucial file-editing functionality, like copy-pasting or being able to quickly navigate through options with keyboard, making it a non-suitable replacement for mods with large amounts of options.

Proposed solution

The solution I would like to see would be the ability to escape new lines with \, C++ - macro style. It would allow an altdlc to be written as such:

altdlc = (\
(\
    Condition=COND_MANUAL,\
    ModOperation=OP_SUBSTITUTE,\
    AltFile=InstantUnlockAlt\BIOGame.ini,\
    ModFile=DLC_EXP_MdrnWpn\CookedPCConsole\BIOGame.ini,\
    FriendlyName="Instant unlocks",\
    Description="Check to unlock all the weapons instantly.",\
    CheckedByDefault=False\
)\
)

The sequences of \\\r\n and \\\n would be then replaced with empty string, to maintain the compatibility with ini file format.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions