Game Configuration Pack References
Game Configuration pack - is a main platform of all games which working with PGE. Configuration pack including an items definitions, game-play settings, game content, and more other.
Structure
Any configuration pack uses 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
- /graphics - graphics resources
- /tilesets
- /group_tilesets
- main.ini - main configuration pack description and settings
- music.ini - configuration and list of musics
- sounds.ini - configuration and list of sounds
- 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
Is a main settings of configuration pack
[main] Is a basic settings of this configuration pack
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| config_name | string | config_name="Raocow Talkhaus" | The full name of configuration pack |
| worlds | string | worlds="Raocow Games" | Game worlds folder where engine will look for episodes |
| music | string | music = "music" music = "../../SMBX/music" |
Path to folder with music files (relative to the data subdirectory) |
| sound | string | sound = "sound" sound = "My Media/sounds" |
Sound folder |
| application-dir | [0,1] | application-dir=0 | If this flag was set to 1, data will be locked relative to application dir instead "data" subdirectory. |
| graphics-level | string | graphics-level="graphics/level" | Path to folder level graphics folder |
| graphics-worldmap | string | graphics-worldmap="graphics/worldmap" | Path to folder worldmap graphics folder |
| graphics-characters | string | graphics-characters="graphics/characters" | Path to folder playable character graphics folder |
| custom-data | string | custom-data="data-custom" | Path to custom data folder [reserved] |
| smbx-compatible | [0,1] | smbx-compatible=1 | [reserved value] This option will disable using of non-SMBX features for created games with this config.
Saved files compatible with SMBX 1.3 If you set this option to 0, you can read SMBX files, but you will lose data on try to save in SMBX format and will get bugs in render, if you will try saved file in SMBX |
[graphics]
Some settings of editing process and graphics setup
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| default-grid | [>=0] | default-grid=32 | You can define any grid size for your game |
[characters]
List of available playable characters in game
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| characters | [>=0] | characters=5 | Total number of available playable characters |
| character*-name | string | character4-name = "Raocow" | Name of character selected number (instead of * write the character ID [1...total characters]) |
[gui]
Global editor GUI settings
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| editor-splash | string | editor-splash="graphics/common/editor_splash.png" | Default splash of this configuration package |
| default-theme | string | default-theme="Raocow Style" | Folder name of theme which will be used as default |
music.ini
Defining list of available music
[music-main]
| Parameter | Variants | 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-music-*]
| Parameter | Variants | 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 |
[level-music-*]
| Parameter | Variants | 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 |
[special-music-*]
| Parameter | Variants | 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 | Variants | Example value | Description |
|---|---|---|---|
| total | [>=1] | total=91 | Total number of available sound effects |
[sound-*]
| Parameter | Variants | 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 |
lvl_bgo.ini
Definition of background objects for levels
[background-main]
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| total | [>=1] | total=190 | Total number of background objects |
[background-*]
| Parameter | Variants | 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], default 32 | grid=32 | Size of grid snapping |
| view | [background2, background, foreground, foreground2] | view=background | Default Z-Order layer of background object |
| image | string | image="background-45.png" | Image filename |
| climbing | [0,1], default 0 | climbing=0 | Allow playable character climb up on contact with background object |
| animated | [0,1], default 0 | 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 |
| 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 | Variants | Example value | Description |
|---|---|---|---|
| total | [>=1] | total=58 | Total number of backgrounds |
[background2-*]
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| name | string | name="Big field" | Title of background |
| type | single-row, double-row, tiled | type=double-row | Background model type. |
| repeat-h | [>=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 | RP, RZ, NR, ZR | repeat-v=ZR | Vertical parallax type and repeat: RP - With repeat, vertical parallax equal to horizontal with parallax coefficient equal to 2 |
| attached | [bottom, top], default=bottom | attached=bottom | Attachment of background image to side of section |
| tiled-in-editor | [0,1] | tiled-in-editor=1 | Background will be forcedly rendered as Tiled in the editor application |
| magic | [0,1] | magic=1 | Enable magic 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.gif" | Image filename of background |
| second-image | string | second-image="background2-27.gif" | Image filename of second row of background (using only by double-row background) |
| second-repeat-h=2 | Horizontal parallax coefficient for second row (using only by double-row background) | ||
| second-repeat-v | RP,RZ,NR,ZR | 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 |
| second-attached | overfirst,bottom,top | second-attached=overfirst | Type of second row of double-row background overfirst - second row will be drawn higher than normal background row |
lvl_blocks.ini
Definition of blocks for levels
[blocks-main]
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| total | [>=1] | total=638 | Total number of blocks |
[block-*]
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| image | string | image="block-1.gif" | Image filename of block |
| name | string | name="Wood block" | Title of block |
| group | string | group="Super Mario Bros. 3" | Group name where included this block |
| category | string | category="Wood" | Category name where included this block |
| default-invisible | [0,1] | default-invisible=1 | Set default invisible flag for this block |
| default-slippery | [0,1] | default-slippery=1 | 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 |
| sizable | [0,1] | sizable=0 | Set this block sizable |
| danger | -3...4 | danger=0 | Hurt player which contacted with this block by side: 0 - block is safe |
| collision | 0..2 | collision=1 | Collision type of block: 1 - collision all sides |
| 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 |
| lava | [0,1] | lava=0 | Kill all all NPC's and playable characters which contacted with this block. Exception is 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 | 0, block-*, npc-* where * - is a [>=1] |
spawn-on-destroy="0" | Object type-ID for spawn after destroy, if 0 - nothing |
| destroy-effect | +numbers | 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, he 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 |
| frames | [0,1] | frames=14 | Animation frames |
| framespeed | [>=1] | framespeed=128 | Delay between frames in milliseconds |
| display-frame=3 | [>=0] | display-frame=3 | If animation is disables, will be displayed this frame (first frame is 0 value) |
lvl_effects.ini
Definition of graphical effects for levels
Note: This configuration reference is not completely engined and can be changed
[effects-main]
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| total | [>=1] | total=148 | Total number of available effects |
[effect-*]
| Parameter | Variants | Example value | Description |
|---|---|---|---|
| name | string | name="Brick fragments" | Title of effect |
| algorithm | [>=0] | 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
[npc-main] total=292
- Defines for SMBX64
bubble=283 ; NPC-Container for packed in bubble egg=96 ; NPC-Container for packed in egg lakitu=284 ; NPC-Container for spawn by lakitu buried=91 ; NPC-Container for packed in herb icecube=263 ; NPC-Container for frozen NPCs
- markers
iceball=265 fireball=13 hammer=171 boomerang=292 coin-in-block=10 ;Default coin NPC for coins block
[npc-1]
name="Goomba"
group="Super Mario Bros. 3"
category="Enemy" ;The sort category
image="npc-1.gif" ;NPC Image file
algorithm="0" ;NPC's algorithm. Algorithm have states and events (onDie, onTail, onCollisionWithFlyBlock...)
- If algorithm = 0, will using basic parametric algorithm.
- Else, get algorithm from list
default-effect=2 ;Spawn effect ID on jump-die shell-effect=4 ;effect on kick by shell or other NPC
- graphics
gfx-offset-x=0 gfx-offset-y=2 gfx-height=32 gfx-width=32 physics-to-gfx=1 ; 1|0 Allow overwrite GFX values by physics set. Default 1 grid=32 grid-offset-x=0 grid-offset-y=0 grid-attachement-style=1 frame-style=0 ; (0-2) This option in some algorithms can be ignored frames=2 frame-speed=128 foreground=0 animation-directed-direction=1 animation-direction=0 ; 0 - direct sequence, 1 - reverse frame sequence animation-bidirectional=0 ; Bidirectional animation
- for editor
custom-animation=0
- Display in editor custom animation
- this options useful for non-standard algorithmic sprites (for example, bosses)
- custom-animation-alg=0 ; Custom animation algorithm - 0 simple frame range, 1 - frame Jump, 2 - use defined frame sequence
- custom-animation-fl=0 ; First frame for LEFT
- custom-animation-el=0 ; end frame for LEFT / Jump step
- custom-animation-fr=0 ; first frame for RIGHT
- custom-animation-er=0 ; end frame for RIGHT / Jump step
- ani-frames-cmn=0,2,0,1 ; Common animation frames sequence (for both directions)
- ani-frames-left=0,2,0,1 ; Common animation frames sequence (for left direction, common will be overwritten)
- ani-frames-right=0,2,0,1 ; Common animation frames sequence (for right direction, common will be overwritten)
container=0 ; NPC can containing inside other NPC (need enable special option type 2)
- Special option
have-special=0 ; Special NPC's option, what can used by NPC's algorithm
- special-name="Cheep-cheep" ; name of special value
- special-type=0 ; 0 combobox, 1 - spin, 2 - npc-id
- special-combobox-size=3 ; quantity of options
- special-option-0="Swim" ; set title for 0 option combobox
- special-option-1="Jump" ; set title for 1 option combobox
- special-option-2="Projectile" ; set title for 2 option combobox
- special-spin-min=0 ; milimal value of spin
- special-spin-max=25 ; maximal value of spin
- special-spin-value-offset=1 ; display special value in editor with offset (+/-)
- game process
score=2 ; Add scores to player (value 0-13)
- 0, 10, 100, 200, 400, 800, 1000, 2000, 4000, 8000, 1up, 2up, 5up, 3up
speed=64 ; Default movement speed in px/s moving=1 ; NPC simply moving right/left scenery=0 ; NPC as block immortal=0 ; NPC Can't be destroy yoshicaneat=1 ; NPC can be eaten by yoshi takable=0 ; NPC destroyble on contact with player grab-side=0 ; NPC can be grabbed on side grab-top=0 ; NPC can be grabbed on top grab-any=0 ; NPC can be grabbed on any collisions default-health=1 ; NPC's health value hurtplayer=1 ; Hurt player on contact hurtnpc=0 ; Hurt other npc on contact
- Editor featured
allow-bubble=1 ; Allow packable into the bubble allow-egg=1 ; Allow packable into the egg allow-lakitu=1 ; Allow packable into the SMW Lakitu allow-buried=1 ; Allow packable under the herb
- default-friendly=1 ; Set default value of friendly flag (0/1)
- default-no-movable=1 ; Set default value of no-movable flag (0/1)
- default-is-boss=1 ; Set default value of is-boss flag (0/1)
- default-special-value=0 ; Set default value of special value for NPC (any signed integer)
- Physics
- Size of NPC's body (Collision box)
fixture-height=32 fixture-width=32 block-npc=1 ; NPC is a solid object for NPCs block-npc-top=0 ; other NPCs can stand on top of NPC block-player=0 ; NPC is a solid object for player block-player-top=0 ; player can stand on top of NPC collision-blocks=1 ; Enable collisions with blocks gravity=1 ; Enable gravity for this NPC adhesion=0 ; allows NPC to walk on walls and on ceilings
- Events
deactivate=1 ; Deactivate on state offscreen > 4 sec ago kill-slside=1 ; Kill on Slope slide kill-onjump=1 ; Kill on jump on NPC's head kill-bynpc=1 ; Kill on contact with other NPC that has hurt-npc property
- for example
- moving SHELLs have "HURT_NPC", and shell kills ALL NPCs on contact
kill-fireball=1 ; kill on fireball collision kill-iceball=1 ; freeze on iceball collision kill-hammer=1 ; kill on hammer collision kill-tail=1 ; kill on tail attack kill-spin=1 ; kill on spin jump kill-statue=1 ; kill on tanooki statue fall kill-with-mounted=1 ; kill on jump with mounted items kill-on-eat=1 ; Kill on eat, or transform into other cliffturn=0 ; NPC turns on cliff lava-protection=0 ; NPC will not be burned in lava
wld_tiles.ini
Definition of tiles for world maps
wld_scenery.ini
Definition of sceneries for world maps
wld_paths.ini
Definition of paths for world maps
wld_levels.ini
Definition of level points for world maps