Game Configuration Pack References

From Moondust Wiki
Revision as of 18:25, 17 February 2015 by Wohlstand (talk | contribs) (→‎lvl_blocks.ini: Added switch blocks definitions)
Jump to navigation Jump to search

Game Configuration package is a main foundation for all games which will work with PGE. 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
  • 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

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-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.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.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".

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

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
hidden [0,1] hidden = 0 Hide this sound in the available sounds list in the events

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.



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


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
grid >=1 grid = 32 Size of grid snapping
view string view = background Default Z-Order layer of background object:
background2,
background,
foreground,
foreground2
offset-x integer offset-x = 0 Grid offset X
offset-y integer offset-y = 0 Grid offset Y
z-offset integer z-offset = 0 Z-Order offset relative to default Z-Order
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-speed >=1 frame-speed = 125 Interval in milliseconds between frames
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.

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


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
name string name = "Big field" Title of background
type string type = double-row Background model type:
single-row,
double-row,
tiled
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
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
attached string attached = bottom Attachment of background image to side of section:
bottom,
top
tiled-in-editor [0,1] tiled-in-editor = 1 Show this background tiled in the editor
magic [0,1] magic = 1 Enable magic multi-parallax of background (cut image into horizontal strips with differenced parallax coefficient)
magic-strips >=1 magic-strips = 3 Number of magic parallax strips
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)
magic-speeds Array of float numbers magic-speeds = "1.2,2.1,3" List of horizontal parallax coefficients for each magic strip
animated [0,1] animated = 0 Enables sprite animation for background
frames >=1 frames = 4 Number of frames which using by this background
image string image = "background2-24.png" Image filename of background

Second image
second-image string second-image = "background2-27.png" Image filename of second row of background (using only by double-row background)
second-repeat-h float >=1 second-repeat-h = 4 Horizontal parallax coefficient for second row (using only by double-row background)
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
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

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

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
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
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:

0 Rectangle
1 tringle up-left
-1 tringle up-right
2 tringle down-left
-2 tringle down-right

3 capture shape from source image
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
framespeed >=1 framespeed = 128 Delay between frames in milliseconds
display-frame >=0 display-frame = 3 If animation is disables, will be displayed this frame (first frame is 0 value)

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

lvl_characters.ini

<Reserved>



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
algorithm [>=1] algorithm = 1 Algorithm ID
appear-timeout [>=0] appear-timeout = 0 Timeout in milliseconds for static effects
type [0,1] type = 1 0 Static, appears and play animation once, 1 Dynamic, play animation forever and moving on screen
animate [0,1] animate = 0 Is animated sprite
image string image = "effect-134.gif" Image file name of effect



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
bubble >=1 bubble = 283 NPC-Container for packed in bubble
egg >=1 egg = 96 NPC-Container for packed in egg
lakitu >=1 lakitu = 284 NPC-Container for spawn by lakitu
buried >=1 buried = 91 NPC-Container for packed in herb
icecube >=1 icecube = 263 NPC-Container for frozen NPCs
iceball >=1 iceball = 265 Marker for player's iceball
fireball >=1 fireball = 13 Marker for player's fireball
hammer >=1 hammer = 171 Marker for player's hammer
boomerang >=1 boomerang = 292 Marker for player's boomerang
coin-in-block >=1 coin-in-block = 10 Default coin NPC for coins block


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
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" <reserved value>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
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)
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 0 - Symmetric item with full frameset
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 per frameset
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-speed >=1 frame-speed = 128 Delay between frames in milliseconds
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
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 relative to horizontal center of grid cell
1 - Align relative to vertical axis between grid cells at center of NPC Item.

Editor specific animation
custom-animation [0,1] custom-animation = 0 Display in the editor a custom animation: this options useful for NPC's which have a non-standard algorithmic animations (for example, some bosses)
custom-animation-alg [0,1,2] custom-animation-alg = 0 Custom animation algorithm:
  • 0 - Simple frame sequence,
  • 1 - Frame Jump
  • 2 - use predefined sequence of frames
custom-animation-fl >=0 custom-animation-fl = 0 First frame for LEFT direction
custom-animation-el >=0 custom-animation-el = 0 Last frame for LEFT direction or Jump step
custom-animation-fr >=0 custom-animation-fr = 0 First frame for RIGHT direction
custom-animation-er >=0 custom-animation-er = 0 Last frame for RIGHT direction or Jump step
ani-frames-cmn Array of unsigned integers ani-frames-cmn = "0,2,0,1" Common animation frames sequence (for both directions)
ani-frames-left Array of unsigned integers ani-frames-left = "0,2,0,1" Common animation frames sequence (for left direction, common will be overwritten)
ani-frames-right Array of unsigned integers ani-frames-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 solid like block
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
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-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



wld_tiles.ini

Definition of tiles for world maps

[ tiles-main ]
Parameter Allowed values Example value Description
total >=1 total = 328 Allocate TILE-ID's to define tiles.

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)
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-speed >=1 frame-speed = 125 Delay between frames in milliseconds
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

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.

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)
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-speed >=1 frame-speed = 125 Delay between frames in milliseconds
display-frame >=0 display-frame = 0 Default frame index for disabled animation mode in the editor



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.

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)
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-speed >=1 frame-speed = 125 Delay between frames in milliseconds
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

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.
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.

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)
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-speed >=1 frame-speed = 125 Delay between frames in milliseconds
display-frame >=0 display-frame = 0 Default frame index for disabled animation mode in the editor