Skip to content

Add support for 'advanced' sandbox options #14

@demiurgeQuantified

Description

@demiurgeQuantified

In Build 42, the sandbox options screen has an 'Advanced' checkbox which switches certain options from list box selectors (similar to enum options) to precise value input. Unfortunately, modded sandbox options cannot use this. This is very much desired in the modding community, where enum options are often used to keep options simple for the majority of users without a specific desire to prevent advanced users from fully customising the value.

There are multiple approaches to this, each with pros and cons:

  1. Add new field(s) to sandbox-options.txt option blocks for this functionality.
    This is the simplest for users already familiar with sandbox options, and a future vanilla implementation may even be backwards compatible with the Starlit implementation. The downside is that the implementation would be more complex than the other options. It could be incompatible with other mods doing similar things, but I don't really see any other mod doing this. This could restrict what features could be developed in the future as ZedScript is a very simple format.
  2. Register extra attributes for existing options in Lua.
    This would split up option creation into two separate places, which is really unideal, but it would allow future expansion beyond what the ZedScript format will allow.
  3. Use an entirely original format for these options.
    This would allow us to get as crazy with options as we want, but it would require modders to learn an entirely new system. The options will not appear at all without Starlit, making it a hard dependency, which may be avoidable with other approaches.

I am leaning towards option 1 as it makes usage the easiest.
This is a likely candidate for an optional feature, as the UI hacks involved might not be stable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions