Main.ini (Config pack)

From Moondust Wiki
Jump to navigation Jump to search

main.ini - General config pack settings. Provides the main settings of the configuration package and its identification.

Basic settings of this configuration pack

[ main ]
Parameter Allowed values Example value Description

Description
config_name string config_name = "Raocow Talkhaus" The full name of configuration pack
config_desc string config_desc = "Config pack with stuff made by Raocow's Talkhaus team" Additional description about this configuration package
config-pack-id string config-pack-id = "A2XT-MOONDUST" The unique config pack maker for level and world map files, saved by Editor with using of this configuration package. This feature allows to manage the compatibility of levels and episodes made for different and incompatible configuration packages and reduce confusion of users.
target-engine-name string target-engine-name = "Non-Boring Demo Adventures" The human-readable name of a game or engine for which files made with this config pack were targeted.
home-page string home-page = "http://wohlsoft.ru" A homepage URL for your project.

Compatibility control
api-version integer api-version = "42" An API version for config pack. If API version is higher than Editor or Engine has, the warning message box will be shown during to the startup.
enable-version-notify boolean enable-version-notify = true Enable the compatibility warning when running Editor or Engine with an incompatible or outdated configuration package.
pge-editor-version string pge-editor-version = "0.3.14" [DEPRECATED]Target Editor version. If Editor version doesn't match to this, the warning message box will be shown.
pge-engine-version string pge-engine-version = "0.3.1" [DEPRECATED]Target Engine version. If Moondust Engine version doesn't match to this, the warning message box will be shown during the startup.

Global resource paths
application-dir [0,1] application-dir = 0 Use an application root instead of the data sub folder for the resources search. Use this flag to build the integrational configuration package.
application-path string application-path = "/usr/local/games/pge_default/" Definition of an absolute path to data directory. Will work if the 'application-dir' option will be set to 1.
application-path-configured boolean application-path-configured = true [DEPRECATED SINCE API VERSION 42] (Integrational config pack only) The configure state of the config pack. If value set to "false" or undefined, the configure.js script will be ran on every Editor startup if presented.
worlds string worlds = "Raocow Games" A directory name for the default episodes store. If it's undefined, the generic 'worlds' directory name will be used.
music string music = "music" A directory name for the music resource directory. The default location is the 'data' sub-directory.
sound string sound = "sound" A directory name for the sound effects resource directory. The default location is the 'data' sub-directory.
graphics-level string graphics-level = "graphics/level" A directory name or a sub-path for the level graphics resources directory.
graphics-worldmap string graphics-worldmap = "graphics/worldmap" A directory name or a sub-path for the world map graphics resources directory.
graphics-characters string graphics-characters = "graphics/characters" A directory name or a sub-path for the playable characters resources directory.
graphics-common string graphics-common = "graphics/common" A directory name or a sub-path for a common engine graphics resources.
custom-data string custom-data = "data-custom" [reserved field] Additional environment directory for extra resources store.

Testing engines support
default-engine-type Enum:
* moondust
* lunatester
* thextech
* smbx38a
default-engine-type = moondust Specify the default runtime engine for level and world map testing with the Editor.

Supported values:
moondust - Default Moondust Engine

lunatester - LunaTester (run level tests through LunaLua-SMBX and SMBX2). Requires Wine for Editor ran on a non-Windows operating system (Linux, FreeBSD, macOS up to 10.14, etc.).

thextech - TheXTech engine

smbx38a - SMBX-38A engine. Requires Wine for Editor ran on a non-Windows operating system.

Aliases:
xtech - Alias to "thextech"
luna - Alias to "lunatester"
smbx - Alias to "lunatester"
38a - Alias to "smbx38a"
pge - Alias to "moondust"

hide-non-default-engines [0,1] hide-non-default-engines = 1 Disable the ability to use any but default runtime engine and hide the ability to run testing through any other runtime engine.

LunaTester
smbx-compatible [0,1] smbx-compatible = 1 [reserved flag] This option will disable the use of non-SMBX features for games created with this config.

This will allow saved level files, etc. to be compatible with SMBX 1.3 If you set this option to 0, you can read SMBX files, but you will lose data if you try to save in SMBX format,

and you will get rendering bugs if you try to open the file in SMBX
smbx-exe-name string smbx-exe-name = "smbx.exe" A name for SMBX Windows executable, needed for a LunaTester work to automatically determinite the executable for test running.


Some settings of the editing process and graphics setup

[ graphics ]
Parameter Allowed values Example value Description
default-grid >=0 default-grid = 32 Default global alignment grid size. You can define any grid size for your game.

Default file formats for untitled files

[ file-formats ]
Parameter Allowed values Example value Description
level Enum:
* smbx64
* pgex
* smbx38a
level = pgex Specify the default format for level files: smbx64 is the SMBX 1.3 compatible level file; pgex is the own PGE format which supports all available features of PGE Project; smbx38a is a SMBX-38A compatible level file format.
world Enum:
* smbx64
* pgex
* smbx38a
world = pgex Specify the default format for world map files: smbx64 is the SMBX 1.3 compatible world map file; pgex is the own PGE format which supports all available features of PGE Project; smbx38a is a SMBX-38A compatible world map file format.


List of available playable characters in game (DEPRECATED, use lvl_characters.ini instead)

[ characters ]
Parameter Allowed values Example value Description
characters >0 characters = 5 Total number of available playable characters
character*-name string character*-name = "Raocow" Name of character selected number (instead of * write the character ID [1...total characters]). You should define all allocated character names!

Global editor GUI settings

[ gui ]
Parameter Allowed values Example value Description
editor-icon string editor-icon = "icon_small.png" Icon of the configuration package which will be shown in the config selection dialog in the Editor.
engine-icon string engine-icon = "icon_small.png" Icon of the configuration package which will be shown in the config selection screen in the Engine.
editor-splash string editor-splash = "graphics/common/editor_splash.png" Default editor splash of this configuration package
default-theme string default-theme = "Raocow Style" Folder name of theme which will be used as default
animations >=0 animations = 3 Number of additional animated images which will be drawn over splash logo


Define of one of splash animation with number from 1 to total number of animations

[ splash-animation-* ]
Parameter Allowed values Example value Description
image string image = "graphics/common/coin.png" Path to image which will be shown on the splash logo
frames >=1 frames = 4 Number of animation frames. If not defined or 1 - image will be shown as static image
speed >=1 speed = 78 Delay between frames (in ms). Default 128 ms.
x >=0 x = 416 Horizontal position of image relative to left-top corner of splash
y >=0 y = 242 Vertical position of image relative to left-top corner of splash

Define initial dock widgets visibility in the Editor (applying on the first Editor run) (Added since May 26, 2018)

[ widgets-default-visibility ]
Parameter Allowed values Example value Description
lvl-itembox 0, 1, true, false lvl-itembox = true Initial visibility of Level ItemBox
lvl-itembox-enforce-default 0, 1, true, false lvl-itembox-enforce-default = false Enforce default visibility on startup of Level ItemBox
lvl-section-props 0, 1, true, false lvl-section-props = true Initial visibility of Level Section Properties
lvl-section-props-enforce-default 0, 1, true, false lvl-section-props-enforce-default = false Enforce default visibility on startup of Level Section Properties
lvl-warp-props 0, 1, true, false lvl-warp-props = true Initial visibility of Level Warps and Doors
lvl-warp-props-enforce-default 0, 1, true, false lvl-warp-props-enforce-default = false Enforce default visibility on startup of Level Warps and Doors
lvl-layers 0, 1, true, false lvl-layers = true Initial visibility of Level Layers box
lvl-layers-enforce-default 0, 1, true, false lvl-layers-enforce-default = false Enforce default visibility on startup of Level Layers box
lvl-events 0, 1, true, false lvl-events = true Initial visibility of Level Classic Events box
lvl-events-enforce-default 0, 1, true, false lvl-events-enforce-default = false Enforce default visibility on startup of Level Classic Events box
lvl-search 0, 1, true, false lvl-search = true Initial visibility of Level Item Search box
lvl-search-enforce-default 0, 1, true, false lvl-search-enforce-default = false Enforce default visibility on startup of Level Item Search box
wld-itembox 0, 1, true, false wld-itembox = true Initial visibility of World map ItemBox
wld-itembox-enforce-default 0, 1, true, false wld-itembox-enforce-default = false Enforce default visibility on startup of World map ItemBox
wld-settings 0, 1, true, false wld-settings = true Initial visibility of World map Settings
wld-settings-enforce-default 0, 1, true, false wld-settings-enforce-default = false Enforce default visibility on startup of World map Settings
wld-search 0, 1, true, false wld-search = true Initial visibility of World map Item Search box
wld-search-enforce-default 0, 1, true, false wld-search-enforce-default = false Enforce default visibility on startup of World map Item Search box
tilesets-box 0, 1, true, false tilesets-box = true Initial visibility of Tilesets ItemBox
tilesets-box-enforce-default 0, 1, true, false tilesets-box-enforce-default = false Enforce default visibility on startup of Tilesets ItemBox
debugger-box 0, 1, true, false debugger-box = true Initial visibility of Debugger box
debugger-box-enforce-default 0, 1, true, false debugger-box-enforce-default = false Enforce default visibility on startup of Debugger box
bookmarks-box 0, 1, true, false bookmarks-box = true Initial visibility of Bookmarks box
bookmarks-box-enforce-default 0, 1, true, false bookmarks-box-enforce-default = false Enforce default visibility on startup of Bookmarks box
variables-box 0, 1, true, false variables-box = true Initial visibility of Variables box
variables-box-enforce-default 0, 1, true, false variables-box-enforce-default = false Enforce default visibility on startup of Variables box


Definition of initial state of toolboxes such as position, size, and the docking state (Supported since January 17, 2021)

[ widgets-default-state ]
Parameter Allowed values Example value Description

Sub-fields: (Every toolbox has the next set of parameters you can define)
*-dock Enum:
* floating
* docked-left
* docked-right
* docked-bottom
*-dock = floating Set the dock state: attach the toolbox to the side of the main window or keep it floating.
*-x Integer *-x = 0 Set the initial relative X position to the edge of the main window. Set the 0 to don't change the embedded default position. Positive value is the relative to left edge of the main window. Negative value the relative offset to the right edge of the main window.
*-y Integer *-y = 0 Set the initial relative Y position to the edge of the main window. Set the 0 to don't change the embedded default position. Positive value is the relative to top edge of the main window. Negative value the relative offset to the bottom edge of the main window.
*-width Integer *-width = -1 Set the initial width of a toolbox. Less than zero (-1) - don't change the embedded default size, or positive value to specify the width value.
*-height Integer *-height = -1 Set the initial height of a toolbox. Less than zero (-1) - don't change the embedded default size, or positive value to specify the width value.

Toolboxes:
level-item-browser-* * level-item-browser-* = * Level Items Browser (or Search Browser).
level-warps-box-* * level-warps-box-* = * Warps and doors toolbox.
level-item-properties-* * level-item-properties-* = * Item properties toolbox.
level-search-box-* * level-search-box-* = * Level Item Search box.
level-classic-events-box-* * level-classic-events-box-* = * Classic Events toolbox.
level-layers-box-* * level-layers-box-* = * Layers toolbox.
level-section-properties-* * level-section-properties-* = * Section settings toolbox.
world-item-browser-* * world-item-browser-* = * World map Items Browser.
world-music-boxes-* * world-music-boxes-* = * World map Music Boxes toolbox.
world-item-properties-* * world-item-properties-* = * World map Item properties toolbox.
world-settings-box-* * world-settings-box-* = * World map settings toolbox.
world-search-box-* * world-search-box-* = * World map Item Search box.
bookmarks-box-* * bookmarks-box-* = * Position Bookmarks toolbox.
debugger-box-* * debugger-box-* = * Debugger toolbox.
variables-box-* * variables-box-* = * Variables toolbox (incompled and disabled for release builds).
tilesets-item-box-* * tilesets-item-box-* = * Tilesets item box.


Disable certain in-editor feature (Added since April 5, 2019)

[ supported-features ]
Parameter Allowed values Example value Description
level-section-vertical-wrap active, inactive, hidden level-section-vertical-wrap = active Enable or Disable vertical wrap checkbox in Section Settings.
level-section-21-plus active, inactive, hidden level-section-21-plus = active Enable or Disable ability to create and switch more than 21 section per level.
level-phys-ez-new-types active, inactive, hidden level-phys-ez-new-types = active Enable or Disable new physical environment types.
level-bgo-z-layer active, inactive, hidden level-bgo-z-layer = active Enable or Disable Z-Layer field for BGO.
level-bgo-z-position active, inactive, hidden level-bgo-z-position = active Enable or Disable Z-Offset/Position field for BGO.
level-bgo-smbx64-sp active, inactive, hidden level-bgo-smbx64-sp = active Enable or Disable SMBX64 Sorting Priority field for BGO.
level-warp-two-way active, inactive, hidden level-warp-two-way = active Enable or Disable two-way warp checkbox.
level-warp-portal active, inactive, hidden level-warp-portal = active Enable or Disable the portal warp type.
level-warp-bomb-exit active, inactive, hidden level-warp-bomb-exit = active Enable or Disable bomb exit warp checkbox.
level-warp-allow-special-state-only active, inactive, hidden level-warp-allow-special-state-only = active Enable or Disable the "allow the special state only" checkbox for a warp.
level-warp-hide-interlevel-scene active, inactive, hidden level-warp-hide-interlevel-scene = active Enable or Disable hide inter-level scene when going another level by warp.
level-warp-allow-interlevel-npc active, inactive, hidden level-warp-allow-interlevel-npc = active Enable or Disable allow inter-level NPC carrying for warp.
level-warp-hide-stars active, inactive, hidden level-warp-hide-stars = active Enable or Disable hide star mark for warp.
level-warp-needed-stars-message active, inactive, hidden level-warp-needed-stars-message = active Enable or Disable custom need stars message for warp.
level-warp-on-enter-event active, inactive, hidden level-warp-on-enter-event = active Enable or Disable the on-enter event support at a warp.
level-warp-cannon-exit active, inactive, hidden level-warp-cannon-exit = active Enable or Disable the cannon exit feature at the warp.
world-hawkmouth-exit active, inactive, hidden world-hawkmouth-exit = active Enable or Disable the "hawkmoth" exit type at the warp.


Definition of initial Editor setup (Supported since January 17, 2021)

[ editor-defaults ]
Parameter Allowed values Example value Description
enable-first-launch-greeting true,false enable-first-launch-greeting = true Show the First Launch Greeting dialog on a first launch of the Editor.
enable-tip-of-the-day true,false enable-tip-of-the-day = true Show the Tip of the day at startup.


Extra compatibility features

[ compatibility ]
Parameter Allowed values Example value Description
extra-settings-local-at-root [0,1] extra-settings-local-at-root = 1 Don't split extra settings by the local and global JSON branches, store all local extra settings values in the root JSON branch.