Game Configuration Pack References

From PGE Wiki
Jump to: navigation, search

Game Configuration package is the main foundation for all games which will work with PGE: it's a set of game resources, item settings, and scripts. A Configuration pack includes item definitions, gameplay settings, game content, and other miscellaneous information.


Structure

All configuration packs must use this tree structure:

Note: italic folders can be customized by main.ini config


/<Name of config pack>

  • /data - content data container
    • /graphics - graphics resources
      • /characters - playable characters sprites
      • /common - common engine graphics (for example, logos, titles, design elements, etc.)
      • /level - graphics which uses in levels
      • /worldmap - graphics which uses in world maps
    • /music - music container
    • /sound - music container
  • /tilesets
  • /group_tilesets
  • main.ini - main configuration pack description and settings
  • engine.ini - main settings of game engine application.
  • music.ini - configuration and list of musics
  • sounds.ini - configuration and list of sounds
  • sound_roles.ini - association of buit-in sound roles with sound-ID's from sounds.ini
  • rotation_table.ini - transformation rules which applies to items when rotating or flipping action was applied to them
  • lvl_bgo.ini - definition of background objects for levels
  • lvl_bkgrd.ini - definition of backgrounds for levels
  • lvl_blocks.ini - definition of blocks for levels
  • lvl_effects.ini - definition of effects for levels
  • lvl_npc.ini - definition of non-playable characters for levels
  • wld_tiles.ini - definition of tiles for world map
  • wld_scenery.ini - definition of sceneries for levels
  • wld_paths.ini - definition of paths for levels
  • wld_levels.ini - definition of level points for levels

Configuration files

General config pack settings (main.ini)

The main settings of configuration pack


Is a basic settings of this configuration pack

[ main ]
Parameter Allowed values Example value 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
worlds string worlds = "Raocow Games" Name of folder with episodes. If not defined, will be used common 'worlds' folder which independent to configuration pack where you have able to play episodes with any config packs. To take able have config specific episodes, the custom world folder must be defined.
music string music = "music" Name or relative path to configuration pack default music folder. By default this folder locates in the 'data' folder.
sound string sound = "sound" Name or relative path to configuration pack default sounds folder. By default this folder locates in the 'data' folder.
application-dir [0,1] application-dir = 0 Use application root instead of data sub folder as basic path to data environment.
application-path string application-path = "/usr/local/games/pge_default/" Definition of absolute path to data directory. Will work if 'application-dir' will is 1
graphics-level string graphics-level = "graphics/level" Path to folder of level graphics folder.
graphics-worldmap string graphics-worldmap = "graphics/worldmap" Path to folder of world map graphics folder.
graphics-characters string graphics-characters = "graphics/characters" Path to folder of playable character graphics folder
graphics-common string graphics-common = "graphics/common" Path to folder of common engine graphics
custom-data string custom-data = "data-custom" Additional environment folder for custom data[reserved]
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


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.


List of available playable characters in game

[ 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

Engine settings (engine.ini)

The main settings of game engine

[common]

Parameter Variants Example value Description
screen-width [>=1] screen-width=800 Default width of screen
screen-height [>=1] screen-height=600 Default height of screen
screen-type [static,scalable],[dynamic,resizable] screen-type=scalable static (or 'scalable' which a synonym of 'static') screen will always have defined resolution.

dynamic (or 'resizable') screen will be resized when you resize window.


[world-map]

Parameter Variants Example value Description
background string background="world_back.png" Background image of world map screen
viewport-x [>=0] viewport-x=66 Position of world map view window over background
viewport-y [>=0] viewport-y=130 Position of world map view window over background
viewport-width [>=0] viewport-width=668 Width of world map view window over background
viewport-height [>=0] viewport-height=403 Height of world map view window over background
level-title-x [>=0] level-title-x=0 Position of level title text
level-title-y [>=0] level-title-y=30 Position of level title text
level-title-w [>=1] level-title-w=700 Maximal width of level title
level-title-align left,right,center level-title-align=center Aligning of text in the defined zone
points-counter [0,1] points-counter=0 Enable displaying of points counter
points-counter-x [>=0] points-counter-x=12 Position of points counter label with value
points-counter-y [>=0] points-counter-y=12 Position of points counter label with value
health-counter [0,1] health-counter=1 Enable displaying of lives/health counter
health-counter-x [>=0] health-counter-x=12 Position of lives/health counter
health-counter-y [>=0] health-counter-y=24 Position of lives/health counter
star-counter [0,1] star-counter=1 Enable displaying of counter of collected stars/leeks/keys
star-counter-x [>=0] star-counter-x=12 Position of counter of collected stars/leeks/keys
star-counter-y [>=0] star-counter-y=36 Position of counter of collected stars/leeks/keys
coin-counter [0,1] coin-counter=1 Enable displaying of collected coins counter
coin-counter-x [>=0] coin-counter-x=12 Position of collected coins counter
coin-counter-y [>=0] coin-counter-y=12 Position of collected coins counter
portrait [0,1] portrait=1 Enable displaying of current playable character's portrait
portrait-x [>=0] portrait-x=2 Position of current playable character's portrait
portrait-y [>=0] portrait-y=2 Position of current playable character's portrait


[loading-scene]

Parameter Variants Example value Description
bg-color-r [0-255] bg-color-r=0 Level of red of background color
bg-color-g [0-255] bg-color-g=0 Level of green of background color
bg-color-b [0-255] bg-color-b=0 Level of blue of background color
background string background="big_splash.png" File name of background / centered splash image
updating-time [>=1] updating-time=128 Delay between updating of screen
additional-images [>=0] additional-images=2 Number of additional images which will be displayed on screen


[loading-image-*] (where * - value from 1 to "additional-images" value)

Parameter Variants Example value Description
image string image="coin.png" File name of image
animated [0,1] animated=1 Enable vertical sprite animation
frames [>=1] frames=4 Number of frames
pos-x [>=0] pos-x=768 Horizontal position on screen
pos-y [>=0] pos-y=564 Horizontal position on screen




Music (music.ini)

Defining list of available music

[ music-main ]
Parameter Allowed values Example value Description
total-world >=1 total-world = 16 Total number of world map music
total-level >=1 total-level = 56 Total number of level music
total-special >=1 total-special = 3 Total of special musics which using for special events and is not available to playback by standard methods
level-custom-music-id >=0 level-custom-music-id = 24 ID which will used as "custom music".
world-custom-music-id >=0 world-custom-music-id = 17 ID which will used as "custom music" on the world map.

Settings of each World map music (Where '*' - should be a MUSIC-ID from 1 to total number of World map musics)
You should define settings for all allocated MUSIC-ID range!

[ world-music-* ]
Parameter Allowed values Example value Description
name string name = "Jazz for everything" Title of music
file string file = "jazz-for-everything.ogg" Music file which connected to this ID slot

Settings of each level music (Where '*' - should be a MUSIC-ID from 1 to total number of level musics)
You should define settings for all allocated MUSIC-ID range!

[ level-music-* ]
Parameter Allowed values Example value Description
name string name = "Rock'n'roll!" Title of music
file string file = "rock-n-roll.ogg" Music file which connected to this ID slot

Settings of each special music (Where '*' - should be a MUSIC-ID from 1 to total number of special musics)
You should define settings for all allocated MUSIC-ID range!

[ special-music-* ]
Parameter Allowed values Example value Description
name string name = "tick-tack, go-go!" Title of music
file string file = "tick-tack.ogg" Music file which connected to this ID slot

SFX (sounds.ini)

Definition of available sound effects

[ sound-main ]
Parameter Allowed values Example value Description
total >=1 total = 91 Allocate SOUND-ID's sound effects


Settings of each Sound effect (Where '*' - should be a SOUND-ID from 1 to total number of Sound effects)
You should define settings for all allocated SOUND-ID range!

[ sound-* ]
Parameter Allowed values Example value Description
name string name = "Jump" Title of sound effect
file string file = "player-jump.ogg" File name of sound file
single-channel [0,1] single-channel = 0 Sound will be played in the reserved channel
hidden [0,1] hidden = 0 Hide this sound in the available sounds list in the events

SFX roles (sound_roles.ini)

Associates hardcoded sound events with sounds from sounds.ini file

[ sound-roles ]
Parameter Allowed values Example value Description
greeting >=0 greeting = 0 Play sound on title screen
menudo >=0 menudo = 0 Menu item seelcted
menuscroll >=0 menuscroll = 0 Menu scrolled
menumessagebox >=0 menumessagebox = 0 Message box pop-up
menupause >=0 menupause = 0 Switched pause mode
cameraswitch >=0 cameraswitch = 0 Switched camera mode
playerjump >=0 playerjump = 0 Playable character jumping
playerstomp >=0 playerstomp = 0 Playable character stomped something
playerkick >=0 playerkick = 0 Playable character kicked something
playergrow >=0 playergrow = 0 Playable character growing
playerdied >=0 playerdied = 0 Playable character died
playerdropitem >=0 playerdropitem = 0 Playable character drops item
playertakeitem >=0 playertakeitem = 0 Playable character takes item
playerslide >=0 playerslide = 0 Playable character sliding
playergrab1 >=0 playergrab1 = 0 Playable character grabs item
playergrab2 >=0 playergrab2 = 0 Playable character grabs item
playerspring >=0 playerspring = 0 Playable character jumping on springboard
playerclimb >=0 playerclimb = 0 Playable character climbing
playertail >=0 playertail = 0 Playable character wave tail
playermagic >=0 playermagic = 0 Magic effect
playerwaterswim >=0 playerwaterswim = 0 Player swimming in water
bonuscoin >=0 bonuscoin = 0 Coin taken
bonus1up >=0 bonus1up = 0 1up gotten
weaponhammer >=0 weaponhammer = 0 Hammer weaopon shoot
weaponfire >=0 weaponfire = 0 Fire weaopon shoot
weaponcannon >=0 weaponcannon = 0 Cannon weaopon shoot
weaponexplosion >=0 weaponexplosion = 0 Explosion of the bomb
weaponbigfire >=0 weaponbigfire = 0 Big burn
npclavaburn >=0 npclavaburn = 0 NPC burned in lava
npcstonefall >=0 npcstonefall = 0 Strong NPC fell down
warppipe >=0 warppipe = 0 Pipe warp
warpdoor >=0 warpdoor = 0 Door warp
warpteleport >=0 warpteleport = 0 Instant teleport warp
levelfailed >=0 levelfailed = 0 Level failed
levelcheckpoint >=0 levelcheckpoint = 0 Checkpoint installed
worldmove >=0 worldmove = 0 Playable character moved on the world map
worlddeny >=0 worlddeny = 0 Movement denied
worldopenpath >=0 worldopenpath = 0 Path opened
worldenterlevel >=0 worldenterlevel = 0 Player entering into level
levelexit01 >=0 levelexit01 = 0 Exit from level with code 1
levelexit02 >=0 levelexit02 = 0 Exit from level with code 2
levelexit03 >=0 levelexit03 = 0 Exit from level with code 3
levelexit04 >=0 levelexit04 = 0 Exit from level with code 4
levelexit05 >=0 levelexit05 = 0 Exit from level with code 5
levelexit06 >=0 levelexit06 = 0 Exit from level with code 6
levelexit07 >=0 levelexit07 = 0 Exit from level with code 7
levelexit08 >=0 levelexit08 = 0 Exit from level with code 8
levelexit09 >=0 levelexit09 = 0 Exit from level with code 9
levelexit10 >=0 levelexit10 = 0 Exit from level with code 10
gamecompleted >=0 gamecompleted = 0 Game end
blockhit >=0 blockhit = 0 Block impact
blockopen >=0 blockopen = 0 NPC has been Extracted from block
blocksmashed >=0 blocksmashed = 0 Block was destroyed
blockswitch >=0 blockswitch = 0 Switch block toggled

Rotation rules set for editor (rotation_table.ini)

Definition of rotate transformation rules which will transform items when called "rotate" or "flip" action. Can be customized by level/episode.


[ <any-random-but-unique-name> ]
Parameter Allowed values Example value Description
type string type = block Type of source item:

block
bgo
npc
tile
scenery
path

level
id >=1 id = 466 Source ID which will be transformed. If equal to 0, rule will not work
rotate-left >=0 rotate-left = 464 Target ID for left rotation action. If equal to 0, this rule will be ignored for left rotation.
rotate-right >=0 rotate-right = 466 Target ID for right rotation action. If equal to 0, this rule will be ignored for right rotation.
flip-h >=0 flip-h = 467 Target ID for horizontal flip action. If equal to 0, this rule will be ignored for horizontal flip.
flip-v >=0 flip-v = 465 Target ID for vertical flip action. If equal to 0, this rule will be ignored for vertical flip.



Level Background objects/sceneries (lvl_bgo.ini)

Definition of background objects for levels

[ background-main ]
Parameter Allowed values Example value Description
total >=1 total = 190 Allocate number of BGO-ID's to define background objects
grid >=1 grid = 32 Default alignment grid size for all BGOs without defined "grid" field.
config-dir string config-dir = "items/bgo" Enables split config mode (using a set of background-*.ini files in the specified directory instead finding sections in the same INI-file)


Note: in the split mode or in the custom level/episode background-*.ini config file, section name is always background.

Settings of each BGO (Where '*' - should be a BGO-ID from 1 to total number of BGOs)
You should define settings for all allocated BGO-ID range!

[ background-* ]
Parameter Allowed values Example value Description
name string name = "Some bush" Title of background object
group string group = "Plants" Group where included this background object
category string category = "Bushes" Category where included this background object
description string description = "A nice green decoration" A short description about this element.
grid >=1 grid = 32 Size of grid snapping
z-layer string z-layer = background Default Z-Order layer of background object:
background2,
background,
foreground,
foreground2
z-offset floating z-offset = 0 Z-Order offset relative to default Z-Order
z-value floating z-value = 0 Set absolute Z-value
offset-x integer offset-x = 0 Grid offset X
offset-y integer offset-y = 0 Grid offset Y
image string image = "background-45.png" Image filename
climbing [0,1] climbing = 0 Allow playable character climb up on contact with background object
animated [0,1] animated = 0 Enable vertical sprite animation of background object
frames >=1 frames = 5 Number of available frames for this background object
frame-delay >=1 frame-delay = 128 Delay between animation frames in milliseconds
frame-speed >=1 frame-speed = 128 Alias to frame-delay
framespeed >=1 framespeed = 8 Delay between animation frames in 1/65 seconds
display-frame >=0 display-frame = 0 Default static frame in the editor with disabled animation
smbx64-sort-priority integer smbx64-sort-priority = 44 The array sorting order for SMBX64 LVL files.
view string view = background Alias to "z-layer" field
priority floating priority = 0 Alias to "z-value" field

Level backgrounds (lvl_bkgrd.ini)

Definition of background for levels

[ background2-main ]
Parameter Allowed values Example value Description
total >=1 total = 58 Allocate number of BACKGROUND-ID's to define background images
config-dir string config-dir = "items/background" Enables split config mode (using a set of background2-*.ini files in the specified directory instead finding sections in the same INI-file)


Note: in the split mode or in the custom level/episode background2-*.ini config file, section name is always background2.

Settings of each background image (Where '*' - should be a BACKGROUND-ID from 1 to total number of background images)
You should define settings for all allocated BACKGROUND-ID range!

[ background2-* ]
Parameter Allowed values Example value Description
Generic
name string name = "Big field" Title of background
fill-color #HexColor or "auto" fill-color = "#E1F502" Default fill color. Fill color applying to the space where background image is not shown on the screen. "auto" keyword (works by default) means color will be automatically captured from left-top pixel of background image (or left-bottom if Y reference point is top). For multi-layer backgrounds "auto" is black color by default.
Multi-layer background (since PGE Engine 0.3-alpha)
multi-layer boolean multi-layer = false Turn on multi-layering background mode. Most of general properties will be ignored, and properties for each layer will be used. The background2-*-layer-* or background2-layer-* INI sections will be used to declare settings per every layer.
multi-layer-count uint multi-layer-count = 5 Total count of background layers
Standard background
type string type = double-row Background model type:

single-row - show single horizontal repeating row at bottom or at top (in dependence of "attached" value),
double-row - two-layer background, show second row at top of first row, or at bottom over first,
tiled - fill screen by horizontal and vertical repeating of image

(ignored for multi-layer backgrounds)
First image
image string image = "background2-24.png" Image filename of background (ignored for multi-layer backgrounds)
repeat-h float >=0 repeat-h = 2 Horizontal parallax coefficient. I.e. how slowly will be moved background concerning edge of the camera. If coefficient equal to 0, the background will be static on screen (ignored for multi-layer backgrounds)
repeat-v string repeat-v = ZR Vertical parallax and repeat formula type:

RP - With repeat, vertical parallax equal to horizontal with parallax coefficient equal to 2
RZ - repeat without parallax
NR - Without repeat, parallax is proportional to section height
ZR - Static: without repeat and without parallax

(ignored for multi-layer backgrounds)
attached string attached = bottom Attachment of background image to side of section:

bottom,
top

(ignored for multi-layer backgrounds)
tiled-in-editor [0,1] tiled-in-editor = 1 Show this background tiled in the editor (ignored for multi-layer backgrounds)
magic [0,1] magic = 1 Enable magic multi-parallax of background (cut image into horizontal strips with differenced parallax coefficient) (ignored for multi-layer backgrounds)
magic-strips >=1 magic-strips = 3 Number of magic parallax strips (ignored for multi-layer backgrounds)
magic-splits Array of integer numbers magic-splits = "49,541,850" List of magic strips separators (value in number of pixels from top to separator) (ignored for multi-layer backgrounds)
magic-speeds Array of float numbers magic-speeds = "1.2,2.1,3" List of horizontal parallax coefficients for each magic strip (ignored for multi-layer backgrounds)
animated [0,1] animated = 0 Enables sprite animation for background (ignored for multi-layer backgrounds)
frames >=1 frames = 4 Number of frames which using by this background (ignored for multi-layer backgrounds)
frame-delay >=1 frame-delay = 128 Delay between animation frames in milliseconds (ignored for multi-layer backgrounds)
frame-speed >=1 frame-speed = 128 Alias to frame-delay (ignored for multi-layer backgrounds)
framespeed >=1 framespeed = 8 Delay between animation frames in 1/65 seconds (ignored for multi-layer backgrounds)
display-frame >=0 display-frame = 0 Show specific frame when animation is disabled (ignored for multi-layer backgrounds)
Second image
second-image string second-image = "background2-27.png" Image filename of second row of background (using only by double-row background) (ignored for multi-layer backgrounds)
second-repeat-h float >=1 second-repeat-h = 4 Horizontal parallax coefficient for second row (using only by double-row background) (ignored for multi-layer backgrounds)
second-repeat-v string second-repeat-v = ZR Vertical parallax type and repeat for second row of double-row background:

RP - With repeat, vertical parallax equal to horizontal with parallax coefficient equal to 2
RZ - repeat without parallax
NR - Without repeat, parallax is proportional to section height
ZR - Static: without repeat and without parallax
(ignored for multi-layer backgrounds)

second-attached string second-attached = overfirst Type of second row of double-row background

overfirst - second row will be drawn higher than normal background row
bottom - second row will be attached to top of section, will be drawn as second layer
top - second row will be attached to bottom of section, will be drawn as second layer

(ignored for multi-layer backgrounds)

Definition of each layer for multi-layer backgrounds. Section name means: background2-X-layer-Y. Where X - is an ID of background that owns this layer, and Y is a code of layer (begin of count is from zero!). For custom configs or split mode INI files the section for every layer will be background2-layer-*.

[ background2-*-layer-* ]
Parameter Allowed values Example value Description
name string name = "Sky" Name of the layer. Optional. Can be shown in the editor or be used as accessing alias to control layer from the PGE lua API.
image string image = "sky.png" Image filename (or relative path) of this layer.
z-value long double z-value = "-50" Absolute Z position of background layer. If value is negative, background will be shown as background. If value is positive - layer will be shown as foreground.
z-index long double z-index = "-50" Alias to "z-value"
priority long double priority = "-50" Alias to "z-value"
in-scene-draw boolean in-scene-draw = "false" Draw this layer together with level scene elements. The z-value will declare z position between scene elements.
opacity double opacity = "1.0" Declares transparency level for the layer. Possible floating point values between 1.0 (solid) and 0.0 (transparent).
flip-h bool flip-h = "false" Flip the background layer horizontally.
repeat-x bool repeat-x = "true" Enable horizontal repeating of background image.
repeat-y bool repeat-y = "false" Enable vertical repeating of background image.
parallax-x bool parallax-x = "1.0"
parallax-y bool parallax-y = "1.0"
parallax-coefficient-x double parallax-coefficient-x = "1.0" Declares horizontal parallax coefficient for this layer. Parallax coefficient declares how slower/faster background image will offset relative to camera motion. Allowed positive non-zero values.

Same as 1.0 / parallax-x, has lower priority than parallax-x and will be overridden by by parallax-x if it was defined.
1.0 - don't parallax (for example, wall on the scene);
<1.0 - parallax faster (near), suggested for foregrounds;
>1.0 - parallax slower (far), suggested for backgrounds.

If parallax coefficient is not defined, it will be equal 1.0, or will be automatically calculated from z-value if auto parallax mode is turned on.
parallax-coefficient-y double parallax-coefficient-y = "1.0" Declares vertical parallax coefficient for this layer. Parallax coefficient declares how slower/faster background image will offset relative to camera motion. Allowed positive non-zero values.

Same as 1.0 / parallax-y, has lower priority than parallax-y and will be overridden by parallax-y if it was defined.
1.0 - don't parallax (for example, wall on the scene);
<1.0 - parallax faster (near), suggested for foregrounds;
>1.0 - parallax slower (far), suggested for backgrounds.

If parallax coefficient is not defined, it will be equal 1.0, or will be automatically calculated from z-value if auto parallax mode is turned on.
parallax-mode-x enum: scroll, fit, fixed parallax-mode-x = "scroll" Horizontal parallax mode.

scroll - layer will be scrolled with parallax coefficient in dependence of position difference of camera and reference point.
fit - The image of layer will scroll so that the edges of image are touch the edges of the section in case they are touched by a camera
fixed - The image will be drawn on fixed screen position with no matter where camera is in the section

parallax-mode-y enum: scroll, fit, fixed parallax-mode-y = "scroll" Vertical parallax mode.

scroll - layer will be scrolled with parallax coefficient in dependence of position difference of camera and reference point.
fit - The image of layer will scroll so that the edges of image are touch the edges of the section in case they are touched by a camera
fixed - The image will be drawn on fixed screen position with no matter where camera is in the section

reference-point-x enum: left, right reference-point-x = "left" Horizontal reference point - left side of image to left edge of section, or right side of image to right edge of section.
reference-point-y enum: top, bottom reference-point-y = "bottom" Vertical reference point - top side of image to top edge of section, or bottom side of image to bottom edge of section.
offset-x double offset-x = "0.0" Horizontal offset of reference point.
offset-y double offset-y = "0.0" Vertical offset of reference point.
margin-x-left double margin-x-left = "0.0" Extra spacing at left side of image.
margin-x-right double margin-x-right = "0.0" Extra spacing at right side of image.
margin-y-top double margin-y-top = "0.0" Extra spacing at top side of image.
margin-y-bottom double margin-y-bottom = "0.0" Extra spacing at bottom side of image.
margin-x double margin-x = "0.0" Extra spacing at both left and right sides of image. Has lower priority than padding-x-left and padding-x-right.
margin-y double margin-y = "0.0" Extra spacing at both top and bottom sides of image. Has lower priority than padding-y-top and padding-y-bottom.
speed-x uint speed-x = "0" Pixel-per-second horizontal autoscrolling of reference point. Affected by horizontal parallax coefficient. That can be used, for example, to visualize a river stream with multiple layers on different Z position with auto parallax mode. 0 - autoscroll is disabled. >0 - scroll right, <0 - scroll left.
speed-y uint speed-y = "0" Pixel-per-second horizontal autoscrolling of reference point. Affected by vertical parallax coefficient. 0 - autoscroll is disabled. >0 - scroll down, <0 - scroll up.
auto-scroll-speed-x uint auto-scroll-speed-x = "0" Alias to speed-x.
auto-scroll-speed-y uint auto-scroll-speed-y = "0" Alias to speed-y.
frames uint frames = "1" Count of animation frames (by vertical). If 1, animation is disabled.
frame-delay uint frame-delay = "128" Delay between every frame in milliseconds.
framespeed uint framespeed = "128" Alias to frame-delay.
display-frame uint display-frame = "0" Show specific frame when animation is turned off.
frame-sequence uint-array frame-sequence = "0,2,5,0,0,0,6,7,0" A custom sequence of animation frames.

Level blocks (solid ground/wall/ceiling) (lvl_blocks.ini)

Definition of blocks for levels

[ blocks-main ]
Parameter Allowed values Example value Description
total >=1 total = 638 Allocate number of BLOCK-ID's to define blocks
grid >=1 grid = 32 Default alignment grid size for all blocks without defined "grid" field.
config-dir string config-dir = "items/blocks" Enables split config mode (using a set of block-*.ini files in the specified directory instead finding sections in the same INI-file)


Note: in the split mode or in the custom level/episode block-*.ini config file, section name is always block.

Settings of each block (Where '*' - should be a BLOCK-ID from 1 to total number of blocks)
You should define settings for all allocated BLOCK-ID range!

[ block-* ]
Parameter Allowed values Example value Description
image string image = "block-1.gif" Image filename of block
name string name = "Wood block" Title of block
group string group = "Common blocks" Group name where included this block
category string category = "Wood" Category name where included this block
description string description = "Knock it!" A short description about this element.
grid >=1 grid = 32 Size of aligning grid
default-invisible [0,1] default-invisible = 0 Set default invisible flag for this block
default-slippery [0,1] default-slippery = 0 Set default slippery flag for this block
default-npc-content +/- integer default-npc-content = 12 Set default content of this block
>0 - ID of NPC
<0 - coins number
if is 0 - empty block
sizable [0,1] sizable = 0 Makes this block be re-sizable
z-layer string z-layer = background Default Z-Order layer of block:
background,
foreground
view string view = background Alias to "z-layer" field
danger -3...4 danger = 0 Make block danger to player which contacted with this block by side:

0 - block is safe
1 left
-1 right
2 top
-2 bottom
3 left-right
-3 top-bottom

4 - all sides hurts
collision 0..2 collision = 1 Collision type of block:

1 - collision on all sides
2 - top side collision only

0 - no collision
slope-slide [0,1] slope-slide = 0 Allow slide on slope (for triangle shape blocks)
shape-type -2..3 shape-type = 0 Collision shape of this block: (see picture below)
lava [0,1] lava = 0 Burn of all NPC's and playable characters which contacted with this block. Exception are lava-protected NPC's.
destroyable [0,1] destroyable = 0 Can be destroyed with shell/head bump
destroyable-by-bomb [0,1] destroyable-by-bomb = 0 Block is destroyable by Bomb explosion
destroyable-by-fireball [0,1] destroyable-by-fireball = 0 Destroyable by fireball marked NPC
spawn-on-destroy string/integer spawn-on-destroy = "0" Object type-ID for spawn after destroy
Examples:
0 - nothing
, block-*
, npc-*
where * - is an positive integer
destroy-effect +integers destroy-effect = 1 Play effect ID on destroy, 0 - no effect
bounce [0,1] bounce = 0 Bounce block. if playable character will stand to this block, it will be bounced
hitable [0,1] hitable = 0 Can be hit by player. if 0, hittable only if block is contains some NPC or coins
transform-onhit-into >=0 transform-onhit-into = 2 if enabled hit transform, block will be transformed into block of ID=2,
if value is 0, block will not be transformed, even if contains NPC
algorithm >=0 algorithm = 0 Special block algorithm, for example: on/off switcher, invisible block, player switch block
animated [0,1] animated = 0 Enable animation
animation-revers [0,1] animation-revers = 0 Enable reversed animation sequence
animation-bidirectional [0,1] animation-bidirectional = 0 Animation will turn back on edge frames in sequence
frames [0,1] frames = 14 Number of animation frames on sprite
frame-delay >=1 frame-delay = 128 Delay between animation frames in milliseconds
frame-speed >=1 frame-speed = 128 Alias to frame-delay
framespeed >=1 framespeed = 8 Delay between animation frames in 1/65 seconds
frame-sequence string, sequence of integers frame-sequence = "1,3,2,0" Initial custom animation frames sequence (first frame is 0, last is n-1). Empty string is usage of default sequence.
display-frame >=0 display-frame = 3 If animation is disables, will be displayed this frame (first frame is 0 value)
hit-sound-id >=0 hit-sound-id = 3 Play custom sound when something hits this block (if 0 - play default sound)
destroy-sound-id >=0 destroy-sound-id = 3 Play custom sound when something destroys this block (if 0 - play default sound)
Switch blocks
switch-button [0,1] switch-button = 0 Hit of this block will cause toggle switch by defined ID
switch-block [0,1] switch-block = 0 Switchable block which will be transformed on toggling specific switch ID
switch-id integer switch-id = 2 ID of switch group. All blocks including in this group will be toggled with button which in same group which got hit
switch-transform >=1 switch-transform = 2 Target transform BLOCK-ID. Block will be transformed when switch ID was toggled
Player switch blocks (hit will transform a playable character to another)
player-switch-button [0,1] player-switch-button = 1 Hit of this block will transform playable character to another specified
player-switch-button-id integer player-switch-button-id = 2 ID of playable character to transform.
player-switch-frames-true string, sequence of integers player-switch-frames-true = "1,3,2,0" Animation sequence while current playable character of specified ID is exists on a level
player-switch-frames-false string, sequence of integers player-switch-frames-false = "1,3,2,0" Animation sequence while current playable character of specified ID is NOT exists on a level
Player filter blocks (through this block can pass only playable character of specified ID)
player-filter-block [0,1] player-filter-block = 1 This block will be non-collidable for a playable character of specified ID
player-filter-block-id integer player-filter-block-id = 2 ID of playable character to transform.
player-filter-frames-true string, sequence of integers player-filter-frames-true = "1,3,2,0" Animation sequence while current playable character of specified ID is exists on a level
player-filter-frames-false string, sequence of integers player-filter-frames-false = "1,3,2,0" Animation sequence while current playable character of specified ID is NOT exists on a level

Shapes of the blocks

Lvl blocks shapes.png


Level Playable Characters (lvl_characters.ini)

<Reserved>



Graphical animation effects (lvl_effects.ini)

Definition of graphical effects for levels

Note: This configuration reference has not been completely finished and is subject to be changed at any time


[effects-main]
Parameter Allowed values Example value Description
total [>=0] total = 148 Allocate number of EFFECT-ID's to define effects


Settings of each effect (Where '*' - should be a EFFECT-ID from 1 to total number of effects)
You should define settings for all allocated EFFECT-ID range!

[effect-*]
Parameter Allowed values Example value Description
name string name = "Brick fragments" Title of effect
image string image = "effect-134.gif" Image file name of effect
frames [>=1] frames= 4 Total number of frames on image
frame-style [>=0] frame-style= 0 frame-style of effect:
0 - full frameset
1 - frames for left and right directions (1/2 of frameset)
2 - frames for left-right and upper directions (1/4 of frameset)
frame-delay [>=1] frame-delay = 128 Delay between animation frames in milliseconds
frame-speed [>=1] frame-speed = 128 Alias to frame-delay
framespeed [>=1] framespeed = 8 Delay between animation frames in 1/65 seconds

Level NPCs (lvl_npc.ini)

Definition of Non-playable characters for levels

Header with common settings

[npc-main]
Parameter Allowed values Example value Description
total >=1 total = 292 Total number of defined NPC's. Allocate NPC-ID range which should be used to define NPC's
config-dir string config-dir = "items/npc" Enables split config mode (using a set of npc-*.ini files in the specified directory instead finding sections in the same INI-file)
grid >=1 grid = 32 Default alignment grid size for all NPCs without defined "grid" field.
coin-in-block >=1 coin-in-block = 10 Default coin NPC for coins block
physics-gravity-acceleration floating point number physics-gravity-acceleration = 16.25 Gravity acceleration on fall
physics-max-fall-speed floating point number physics-max-fall-speed = 8 Max falling speed of NPCs
effect-lava-burn >=0 effect-lava-burn = 13 Spawn effect ID when NPC contacts with lava blocks and dies
projectile-sound-id >=0 projectile-sound-id = 0 Play sound on projectile generation
projectile-speed floating point number projectile-speed = 10.0g Initial speed of shooted NPC
talking-sign-image string talking-sign-image = "excl.png" Filename of image file in the common images folder which will be shown to player when it touches a talkable NPCs


Note: in the split mode or in the custom level/episode npc-*.ini config file, section name is always npc.

Settings of each NPC (Where '*' - should be a NPC-ID from 1 to total number of NPCs)
You should define settings for all allocated NPC-ID range!



[ npc-* ]
Parameter Allowed values Example value Description
Common values
name string name = "Furba" Name of NPC
group string group = "Talkhaus сommon" Group where NPC is member
category string category = "Enemy" Category of this NPC
description string description = "Small, but danger creature!" A short description about this element.
image string image = "npc-1.png" Name of image file which a sprite for this NPC. Same image filename will be used as custom sprite in level/episode folders
algorithm string algorithm = "furba.lua" Filename of default algorithm script for this NPC
default-effect >=1 default-effect = 2 Default effect which will be played when NPC was stomped
shell-effect >=1 shell-effect = 4 Default effect which will be played when NPC killed by item
block-spawn-type 0, 1 block-spawn-type = 1 Block spawn effect: 0 - smooth warping, 1 - bumped
block-spawn-speed >=0.0 block-spawn-speed = 3.2 Bump speed (Bumped type only)
block-spawn-sound 0, 1 block-spawn-sound = 1 Play sound on NPC spawn from a block
is-star [0,1] is-star = 1 Special marker which will mark this NPC as star - a special items which requiring to collecting which uses in some games and episodes.
Physics and mechanics
physical-width >=1 physical-width = 32 Width of NPC's hitbox
physical-height >=1 physical-height = 32 Height of NPC's hitbox
block-npc [0,1] block-npc = 1 NPC is a solid object for other NPCs from side
block-npc-top [0,1] block-npc-top = 1 Other NPC's can stand on top of this NPC
block-player [0,1] block-player = 0 NPC is a solid object for player. NPC will can push player.
block-player-top [0,1] block-player-top = 0 Player can stand on top of this NPC
collision-blocks [0,1] collision-blocks = 1 Enable collision with a blocks. You can disable collision if you want to create, for example, a ghost.
gravity [0,1] gravity = 1 Enable gravity for this NPC. If you will disable it, NPC will fly in the air.
adhesion [0,1] adhesion = 1 Allows NPC to walk on walls and on ceilings like insects
container [0,1] container = 0 NPC can hold inside another NPC (special option type 2 is required)
container-elastic [0,1] container-elastic = 0 Elastic sprite of container (like sizable block)
container-elastic-border-w >=1 container-elastic-border-w = 0 Width of border to draw elastic container
container-show-contents [0,1] container-show-contents = 0 Show contents of container in the game process
container-content-z-offset floating point number container-content-z-offset = 0 Draw contents over or under main sprite of the NPC
container-crop-contents [0,1] container-crop-contents = 0 Drawn sprite of contents will cropped with physical size box of the container
container-align-contents [0,1,2] container-align-contents = 0 Y-align of contents sprite. 0 - align at center, 1 - align top-to-top, 2 - align top-to-bottom.
contact-padding double contact-padding = -1.0 Padding of contact detection zone (working only when NPC itself has no blocking sides)
no-npc-collisions [0,1] no-npc-collisions = 0 Editor specific flag: NPC can be placed over other NPC's without blocking but with anti-flood protection which preventing placement of NPC over another same NPC
Graphics
gfx-offset-x integer gfx-offset-x = 0 Horizontal offset of GFX image relative to center
gfx-offset-y integer gfx-offset-y = 0 Vertical offset of GFX image relative to bottom
gfx-height >=1 gfx-height = 32 Height of visible GFX frame. By default calculating automatically from number of frames and framestyle values. Use it only if you getting incorrect GFX size.
gfx-width >=1 gfx-width = 32 Width of visible GFX frame. By default calculating automatically from number of frames and framestyle values. Use it only if you getting incorrect GFX size.
physics-to-gfx [1,0] physics-to-gfx = 1 Allows users to map Physical size to GFX size setup in their custom npc.txt config files. Default 1
frame-style 0..2 frame-style = 0 Declares how many framesets sprite sheet has:

0 - Symmetric item with full frameset. Frames count equal to count of actual frames count on sprite sheet
1 - Asymmetric item with left and right direction frames. Sprite dividing to 2 framesets for left and right directions.
2 - Asymmetric item with left, right and turned upper frame sets. Sprite has a 4 framesets for left-right direction states and turn upper left-right states

Note: This option may be ignored in some algorithms
frames >=1 frames = 2 Number of frames on the sprite sheet per frameset (use frame-style value to set a count of framesets)
Note: Don't forget about frame styles: framestyle 0 uses whole frameset of sprite, so you can count all frames on sprite and set up. 1 has a two framesets for left and rigth directions where you should count a half of whole frameset on sprite. 2 users four framesets on sprite, so you need to count quoter of presented frames on your sprite. Some algorithmic NPC's can have custom framestyles which aren't compatible with current stuff
frame-delay >=1 frame-delay = 128 Delay between animation frames in milliseconds
frame-speed >=1 frame-speed = 128 Alias to frame-delay
framespeed >=1 framespeed = 8 Delay between animation frames in 1/65 seconds
display-frame >=1 display-frame = 128 Default static frame in the editor with disabled animation
foreground [1,0] foreground = 0 Set the npc foregroung Z-Layer. Sprite will be drawn over others but under foreground-2 BGO's
background [1,0] background = 0 Set the npc background Z-Layer. Sprite will be drawn over sizalbe blocks but under background BGO's
z-offset +/- floating point number z-offset = 0 Z-order offset modifies render priority
animation-directed-direction [1,0] animation-directed-direction = 1 Inverse order of animation frames dependent to direction of NPC
animation-direction [0,1] animation-direction = 0 Direction of animation order: 0 - direct sequence, 1 - reverse frame sequence
animation-bidirectional [0,1] animation-bidirectional = 0 Bidirectional animation: order of frames sequence will be turned back on edge frame
Alignment
grid >=1 grid = 32 Sets the align grid size
grid-offset-x integer grid-offset-x = 0 Horizontal align offset relative to grid point.
Note: Value must be less than half of grid size to keep aligning correct
grid-offset-y integer grid-offset-y = 0 Vertical align offset relative to grid point
Note: Value must be less than half of grid size to keep aligning correct
grid-attachement-style [1,0] grid-attachement-style = 1 0 - Align NPC Item's center to horizontal center of grid cell (default)
1 - Align NPC Item's center to edge of cells.
Preview (left is "1", right is "0")
Editor specific animation
editor-animation-sequence Array of unsigned integers editor-animation-sequence = "0,2,0,1" Common animation frames sequence (for both directions). If not set, default animation will play.
Tip: Frame indices are relative to the direction of the NPC, dependent on frame style. For example, with frame style 1, frame 0 of the animation for the right direction will start in the middle of the NPC sprite sheet.
editor-animation-sequence-left Array of unsigned integers editor-animation-sequence-left = "0,2,0,1" Common animation frames sequence (for left direction, common will be overwritten).
editor-animation-sequence-right Array of unsigned integers editor-animation-sequence-right = "0,2,0,1" Common animation frames sequence (for right direction, common will be overwritten)
Special values settings
have-special [0,1] have-special = 0 Use the special NPC's option which can used to make NPC Algorithm more flexible and configurable
special-name string special-name = "Mood level" Title for the special value
special-type [0,1,2] special-type = 0 Defines type of control element which will be used to setup special value:
  • 0 - combobox
  • 1 - spin box
  • 2 - npc-id dialog button
special-combobox-size >=1 special-combobox-size = 3 Number of combo box items
special-option-* string special-option-* = "I'm happy!" Define of each combo box item (where '*' should be an index of each combo box item, begins from 0 and ends with 'number of items'-1 )
special-spin-min integer special-spin-min = 0 Minimal value of spin box
special-spin-max integer special-spin-max = 25 Maximal value of spin box
special-spin-value-offset integer special-spin-value-offset = 1 Offset value which will be apply into visible in the editor value. For example, if offset is +1, in the editor will be shown 25 but in the configuration will be sated the 24 value.
have-special-2 [0,1] have-special-2 = 0 Use the second special NPC's option which can used to make NPC Algorithm more flexible and configurable. Needs if your algorithm needs more special values.
special-2-name string special-2-name = "Backpack content" Title for the special value
special-2-type [0,1,2] special-2-type = 0 Defines type of control element which will be used to setup special value:
  • 0 - combobox
  • 1 - spin box
  • 2 - npc-id dialog button
special-2-npc-spin-required Array of integes special-2-npc-spin-required = "34,56,23" List of NPC-ID's which causing usage of second special value in the spin box mode
special-2-npc-box-required Array of integes special-2-npc-box-required = "23,11,23,44" List of NPC-ID's which causing usage of second special value in the combo box mode
special-2-combobox-size >=1 special-2-combobox-size = 3 Number of combo box items
special-2-option-* string special-2-option-* = "Yesterday cola" Define of each combo box item (where '*' should be an index of each combo box item, begins from 0 and ends with 'number of items'-1 )
special-2-spin-min integer special-2-spin-min = 0 Minimal value of spin box
special-2-spin-max integer special-2-spin-max = 25 Maximal value of spin box
special-2-spin-value-offset integer special-2-spin-value-offset = 1 Offset value which will be apply into visible in the editor value. For example, if offset is +1, in the editor will be shown 25 but in the configuration will be sated the 24 value.
Gameplay settings
score [0....13] score = 2 Scores which player will get when take or kill this NPC
0, 10, 100, 200, 400, 800, 1000, 2000, 4000, 8000, 1up, 2up, 5up, 3up
speed >=0 speed = 64 Default movement speed in px/s
moving [0,1] moving = 1 Enable built-in simple movement right/left algorithm
scenery [0,1] scenery = 0 Makes NPC as static body which can't be moved from side (like blocks)
keep-position [0,1] keep-position = 0 NPC will not be returned to initial position on despawn
shared-animation [0,1] shared-animation = 1 If value 0, NPC will use global shared animator and all NPC's of this type will are have same animation sequence
activity [0,1] activity = 1 NPC will have onLoop() event and will do AI. If flag is 0, NPC will keep new state while level will not be finished or replayed. Set 0 value, for example, to coins and 1 value for living enemies or grabbable items.
immortal [0,1] immortal = 0 NPC Can't be killed or destroyed
can-be-eaten [0,1] can-be-eaten = 0 NPC Can be eaten with using of animal transports (Catnip, Yoshi)
takable [0,1] takable = 0 Make NPC Destroyable on contact with player
grab-side [0,1] grab-side = 0 NPC Can be grabbed from side
grab-top [0,1] grab-top = 0 NPC can be grabbed from top
grab-any [0,1] grab-any = 0 NPC can be grabbed from any contact points
default-health >=1 default-health = 1 NPC Health value. By default NPC can be killed from one hit.
hurtplayer [0,1] hurtplayer = 1 NPC will hurt player on contact
hurtnpc [0,1] hurtnpc = 0 Hit another npc on contact with them
NPC Direction value features
direction-alt-title string direction-alt-title = "Activity" Alternate title of "direction" option
direction-alt-left-field string direction-alt-left-field = "On" Alternate title of "left direction" option
direction-alt-right-field string direction-alt-right-field = "Off" Alternate title of "right direction" option
direction-no-rand-field [0,1] direction-no-rand-field = 1 Disallow usage of random direction value
Legacy SMBX64 Editor specific features (Reserved and aren't not used)
allow-bubble [0,1] allow-bubble = 0 NPC is packable into the bubble
allow-egg [0,1] allow-egg = 1 NPC is packable into the egg
allow-lakitu [0,1] allow-lakitu = 1 NPC can be set into SMW Lakitu generator
allow-buried [0,1] allow-buried = 1 NPC can be burred underground with herb
Default values of flags in the editor
default-friendly [0,1] default-friendly = 0 Friendly flag
default-no-movable [0,1] default-no-movable = 0 "Doesn't move" (No movement) flag
default-is-boss [0,1] default-is-boss = 0 "Set as boss" (SMBX Legacy Boss) flag
default-special-value integer default-special-value = 0 Default value of special parameter
Events
deactivate [0,1] deactivate = 1 Deactivate NPC after 4 sec offscreen. Deactivation will return NPC into initial state and NPC will be activated again if it will appear on screen after deactivation
deactivate-delay >=0 deactivate-delay = 4000 Deactivation timeout
deactivate-off-room [0,1] deactivate-off-room = 0 Deactivate NPC outed off section
bump-on-stomp [0,1] bump-on-stomp = 1 Playable character will be bumped on stomp
kill-slside [0,1] kill-slside = 1 NPC can be killed while player sliding on slope
kill-onjump [0,1] kill-onjump = 1 NPC can be killed by stomp on head
kill-bynpc [0,1] kill-bynpc = 1 NPC can be killed by NPC which thrown by player or kill by contact with npc-hurtful NPC's. for example: moving SHELLs have "HURT_NPC", and shell kills ALL NPCs on contact.
kill-on-pit-fall [0,1] kill-on-pit-fall = 0 NPC will die on falling down out of section (falling into the pit)
kill-fireball [0,1] kill-fireball = 1 NPC can be killed by fire ball shooting
kill-iceball [0,1] kill-iceball = 1 NPC can be frozen by ice ball shooting
kill-hammer [0,1] kill-hammer = 1 NPC can be killed by hammer shooting
kill-tail [0,1] kill-tail = 1 NPC can be killed by tail punch
kill-spin [0,1] kill-spin = 1 NPC can be killed by stomp with spin
kill-statue [0,1] kill-statue = 1 NPC can be stomped by statue fall
kill-with-mounted [0,1] kill-with-mounted = 1 NPC can be killed with mounted transports (like big shoes, magic sacks, helicopters )
kill-on-eat [0,1] kill-on-eat = 1 NPC will die when will be eaten
cliffturn [0,1] cliffturn = 1 NPC will turn on cliff edge
lava-protection [0,1] lava-protection = 1 NPC will not be burned in lava
Level exit
is-exit [0,1] is-exit = 1 Killing/taking of this NPC will trigger exiting of the level.
exit-direction [-1,0,1] exit-direction = 1 Direction where player will walk when exit was trigger
exit-code [>=1] exit-code = 1 Return level exit code to world map.
exit-delay [>=0] exit-delay = 4500 Delay in milliseconds before level will be exited.
exit-sound-id [>=0] exit-sound-id = 19 Play sound by ID when NPC has been killed/taken and when exit has been triggered.



World map terrain tiles (wld_tiles.ini)

Definition of a terrain tiles for a world maps

[ tiles-main ]
Parameter Allowed values Example value Description
total >=1 total = 328 Allocate TILE-ID's to define tiles.
grid >=1 grid = 32 Default alignment grid size for all terrain tiles without defined "grid" field.
config-dir string config-dir = "items/terrain" Enables split config mode (using a set of tile-*.ini files in the specified directory instead finding sections in the same INI-file)


Note: in the split mode or in the custom level/episode tile-*.ini config file, section name is always tile.

Settings of each tile (Where '*' - should be a TILE-ID from 1 to total number of tiles)
You should define settings for all allocated TILE-ID range!

[ tile-* ]
Parameter Allowed values Example value Description
group string group = "Common tiles" Name of organizing group (reserved)
category string category = "Blue" Name of organizing category (reserved)
description string description = "Just blue" A short description about this element.
image string image = tile-1.gif Filename of tile picture
grid >=1 grid = 32 Size of align grid
animated [0,1] animated = 0 Enable sprite animation for this tile
frames >=1 frames = 1 Total number of frames on sprite
frame-delay >=1 frame-delay = 128 Delay between animation frames in milliseconds
frame-speed >=1 frame-speed = 128 Alias to frame-delay
framespeed >=1 framespeed = 8 Delay between animation frames in 1/65 seconds
display-frame >=0 display-frame = 0 Default frame index for disabled animation mode in the editor
row >=0 row = 5 Row index in the table of tiles
col >=0 col = 2 Column index in the table of tiles

World map sceneries (wld_scenery.ini)

Definition of sceneries for world maps

[ scenery-main ]
Parameter Allowed values Example value Description
total >=1 total = 32 Allocate SCENERY-ID's to define sceneries.
grid >=1 grid = 32 Default alignment grid size for all scemeries without defined "grid" field.
config-dir string config-dir = "items/scenery" Enables split config mode (using a set of scenery-*.ini files in the specified directory instead finding sections in the same INI-file)


Note: in the split mode or in the custom level/episode scene-*.ini config file, section name is always scenery.

Settings of each scenery (Where '*' - should be a SCENERY-ID from 1 to total number of sceneries)
You should define settings for all allocated SCENERY-ID range!

[ scenery-* ]
Parameter Allowed values Example value Description
group string group = "Common sceneries" Name of organizing group (reserved)
category string category = "City" Name of organizing category (reserved)
description string description = "It's my car" A short description about this element.
image string image = scene-1.gif Filename of scenery picture
grid >=1 grid = 32 Size of align grid
animated [0,1] animated = 0 Enable sprite animation for this tile
frames >=1 frames = 1 Total number of frames on sprite
frame-delay >=1 frame-delay = 128 Delay between animation frames in milliseconds
frame-speed >=1 frame-speed = 128 Alias to frame-delay
framespeed >=1 framespeed = 8 Delay between animation frames in 1/65 seconds
display-frame >=0 display-frame = 0 Default frame index for disabled animation mode in the editor



World map path cells (wld_paths.ini)

Definition of paths for world maps

[ path-main ]
Parameter Allowed values Example value Description
total >=1 total = 32 Allocate PATH-ID's to define paths.
grid >=1 grid = 32 Default alignment grid size for all path cells without defined "grid" field.
config-dir string config-dir = "items/paths" Enables split config mode (using a set of path-*.ini files in the specified directory instead finding sections in the same INI-file)


Note: in the split mode or in the custom level/episode path-*.ini config file, section name is always path.

Settings of each path (Where '*' - should be a PATH-ID from 1 to total number of paths)
You should define settings for all allocated PATH-ID range!

[ path-* ]
Parameter Allowed values Example value Description
group string group = "Common paths" Name of organizing group (reserved)
category string category = "Forest" Name of organizing category (reserved)
description string description = "Nice ground path" A short description about this element.
image string image = path-1.gif Filename of path picture
grid >=1 grid = 32 Size of align grid
animated [0,1] animated = 0 Enable sprite animation for this tile
frames >=1 frames = 1 Total number of frames on sprite
frame-delay >=1 frame-delay = 128 Delay between animation frames in milliseconds
frame-speed >=1 frame-speed = 128 Alias to frame-delay
framespeed >=1 framespeed = 8 Delay between animation frames in 1/65 seconds
display-frame >=0 display-frame = 0 Default frame index for disabled animation mode in the editor
row >=0 row = 5 Row index in the table of tiles
col >=0 col = 2 Column index in the table of tiles

World map level entrance point cells (wld_levels.ini)

Definition of level points for world maps

[ levels-main ]
Parameter Allowed values Example value Description
total >=1 total = 32 Allocate LEVEL-ID's to define level enter points.
grid >=1 grid = 32 Default alignment grid size for all level points without defined "grid" field.
path >=0 path = 0 Choice a LEVEL-ID's to reserve it as "background path" picture.
bigpath >=0 bigpath= 29 Choice a LEVEL-ID's to reserve it as "BIG background path" picture.
config-dir string config-dir = "items/levels" Enables split config mode (using a set of level-*.ini files in the specified directory instead finding sections in the same INI-file)


Note: in the split mode or in the custom level/episode level-*.ini config file, section name is always level.

Settings of each level (Where '*' - should be a LEVEL-ID from 0 to total number of levels)
You should define settings for all allocated LEVEL-ID range! (Be careful! Unlike other items, level items iteration begins from 0!)

[ level-* ]
Parameter Allowed values Example value Description
group string group = "Common levels" Name of organizing group (reserved)
category string category = "Blue" Name of organizing category (reserved)
description string description = "Just blue" A short description about this element.
image string image = level-1.gif Filename of level picture
grid >=1 grid = 32 Size of align grid
animated [0,1] animated = 0 Enable sprite animation for this tile
frames >=1 frames = 1 Total number of frames on sprite
frame-delay >=1 frame-delay = 128 Delay between animation frames in milliseconds
frame-speed >=1 frame-speed = 128 Alias to frame-delay
framespeed >=1 framespeed = 8 Delay between animation frames in 1/65 seconds
display-frame >=0 display-frame = 0 Default frame index for disabled animation mode in the editor