Game Configuration Pack References

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

/
 * /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
 * 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

main.ini
The main settings of configuration pack

[main] Is a basic settings of this configuration pack

[graphics] Some settings of the editing process and graphics setup

[characters] List of available playable characters in game

[gui] Global editor GUI settings

engine.ini
The main settings of game engine

[common]

[world-map]

[loading-scene]

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

music.ini
Defining list of available music

[music-main]

[world-music-*]

[level-music-*]

[special-music-*]

sounds.ini
Definition of available sound effects

[sound-main]

[sound-*]

lvl_bgo.ini
Definition of background objects for levels

[background-main]

[background-*]

lvl_bkgrd.ini
Definition of background for levels

[background2-main]

[background2-*]

lvl_blocks.ini
Definition of blocks for levels

[blocks-main]

[block-*]

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]

[effect-*]

lvl_npc.ini
Definition of Non-playable characters for levels

[npc-main] total=292

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
 * Defines for SMBX64

iceball=265 fireball=13 hammer=171 boomerang=292 coin-in-block=10	;Default coin NPC for coins block
 * markers

[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

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 custom-animation=0
 * graphics
 * for editor


 * 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)

have-special=0			; Special NPC's option, what can used by NPC's algorithm
 * Special option
 * 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 (+/-)

score=2				; Add scores to player (value 0-13) 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
 * game process
 * 0, 10, 100, 200, 400, 800, 1000, 2000, 4000, 8000, 1up, 2up, 5up, 3up

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
 * Editor featured
 * 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)

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
 * Physics
 * Size of NPC's body (Collision box)

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 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
 * Events
 * for example: moving SHELLs have "HURT_NPC", and shell kills ALL NPCs on contact

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