Game Configuration Pack References

From Moondust Wiki
Jump to navigation Jump to search

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
  • /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
RZ - repeat without parallax
NR - Without repeat, parallax is proportional to section height
ZR - Static: without repeat and without parallax

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
RZ - repeat without parallax
NR - Without repeat, parallax is proportional to section height
ZR - Static: without repeat and without parallax

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
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 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
<0 - coins number
=0 - empty block

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
1 left
-1 right
2 top
-2 bottom
3 left-right
-3 top-bottom
4 - all sides

collision 0..2 collision=1 Collision type of block:

1 - collision all sides
2 - collision only by top side
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 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