OpenBOR,同人类游戏引擎,非游戏模拟器,它最早源于SenileTeam小组制作的《Beats Of Rage》(KOF过关版),后来开放了引擎源代码,由全球的广大游戏爱好者进行自主DIY。BOR是取其游戏名《Beats Of Rage》的缩写。

-Generic Player Properties
ajspecial        {bi}
autoland        {int}
nocost                {bi}
nolost                {bi}
noaircancel        {int}
combodelay        {int}
-Generic Blocking Properties
blockratio        {bi}
mpblock                {bi}
nochipdeath        {bi}

-Select Screen Properties
colourselect        {bi}
spdirection        {b1} {b2} {b3} {b4}

-Miscellaneous
nodropen
nocheats        {bi}        
forcemode        {bi}
versusdamage        {bi}

-Attack types & animation limit
maxattacks        {max}
maxattacktypes        {max}
maxfollows        {max}
maxfreespecials        {max}
maxidles        {max}
maxwalks        {max}
maxbackwalks        {max}
maxups                {max}
maxdowns        {max}

-Bonus
lifescore       {int}
credscore       {int}
nomaxrushreset  {int}

-Load & Know
load                {name}        {path}
know                {name}        {path}

————–

LEVELS.txt – General Settings:

– Hiscore & Stage complete
hiscorebg        {bi}
completebg        {bi}
showcomplete        {x1}        {y1}        {x2}        {y2}        {x3}        {y3}
clearbonus        {x0}        {y0}    {x1}        {y1}        {x2}        {y2}        {x3}        {y3}  {x4}        {y4}
lifebonus        {x0}        {y0}    {x1}        {y1}        {x2}        {y2}        {x3}        {y3}  {x4}        {y4}
totalscore        {x0}        {y0}    {x1}        {y1}        {x2}        {y2}        {x3}        {y3}  {x4}        {y4}
showrushbonus   {int}
rushbonus       {x0} {y0} {x1} {y1} {x2} {y2} {x3} {y3} {x4} {y4}
scbonuses       {stage bonus} {life bonus} {rush bonus} {bonus type}

– HUD location
p{#}life        {x}        {y}
p{#}icon        {x}        {y}
p{#}mp          {x}        {y}
p{#}lifex        {x}        {y}     {font}
p{#}lifen        {x}        {y}     {font}
p{#}score        {x1}        {y1}        {x2}        {y2}        {x3}        {y3}     {font}
p{#}namej        {x1}        {y1}        {x2}        {y2}        {x3}        {y3}     {font}
p{#}shoot        {x}        {y}     {font}
mp{#}icon        {x}        {y}
p{#}iconw        {x}        {y}
e{#}life        {x}        {y}
e{#}icon        {x}        {y}
e{#}name        {x}        {y}     {font}
p{#}smenu        {x1}        {y1}        {x2}        {y2}

– HUD settings
lbarsize        {w}        {h}        {noborder}        {type}        {orientation}        {border}        {shadow}        {graph}        {backfill}
mpbarsize        {w}        {h}        {noborder}        {type}        {orientation}        {border}        {shadow}        {graph}        {backfill}
olbarsize        {w}        {h}        {noborder}        {type}        {orientation}        {border}        {shadow}        {graph}        {backfill}
rush            {flag}        {duration}        {text1}        {f1}        {f2}        {text2}        {f3}        {f4}
p{#}rush        {x1}    {y1}    {x2}    {y2}    {x3}    {y3}    {x4}    {y4}
timeloc                {x}        {y}        {w}        {h}        {noborder}
timeicon        {path}        {x}        {y}
bgicon          {path}  {x}     {y}

– Music & SFX
noslowfx        {bi}
custfade        {int}
musicoverlap        {bi}
noslow                {bi}

– Misc
maxplayers         {int}
loadingbg       {set} {bx} {by} {bsize} {tx} {ty} {tf}
loadingbg2      {set} {bx} {by} {bsize} {tx} {ty} {tf}
itemtrans        {bi}
equalairpause   {bi}

————–

LEVELS.txt – Level Sets:

– Header
set                {name}
typemp                {int}
cansave         {int}
skipselect      {name} {name} {name} {name}
nosame                {bi}
noshare                {bi}
lives                 {int}
credits         {int}
ifcomplete        {bi}
maxplayers      {int}
continuescore   {int}

– Body
z                {zmin}        {zmax}        {BGheight}
file                {path}
scene                {path}
select          {path}
next
branch                {name}
end

————–

Lifebar.txt:

blackbox        {R} {G} {B}
whitebox        {R} {G} {B}
color{#}        {R} {G} {B}
colormagic      {R} {G} {B}
colormagic2     {R} {G} {B}
shadowcolor     {R} {G} {B}

————–

Video.txt:

colourdepth     {int}bit
video           {int}
scenes          {path}
backgrounds     {path}
levels          {file}
models          {file}

————–

Menu.txt:

renamekey       {key} {newname}
disablekey      {key}
fontmonospace   {1} {2} {3} {4} {5} {6} {7} {8}

————–

Script.txt:

maxscriptvars   {int}
maxentityvars   {int}
maxindexedvars  {int}
maxglobalvars   {int}

————–

Entity Files – Header Data:

– Basic Stats
name                {name}
type                {player,enemy,npc,item,none,steamer,obstacle,text,trap,endlevel,pshot,panel}
subtype                {arrow,noskip,weapon,biker,notgrab,touch,flydie,both,project,chase,follow}
health                {int}
mp                {int}
speed                {int}
speedf          {float}
running                {speed}        {height}        {length}        {move}        {land}
nomove                {move}        {flip}
jumpspeed       {int}
jumpspeedf      {float}
jumpheight        {int}
jumpmove        {fx} {fz}
turndelay        {int}
facing          {int}
chargerate        {int}
mprate          {int}
mpset           {mp} {stable type} {stable} {recover rate} {drop rate} {charge rate}
edelay                {Mode} {Factor} {Cap Min} {Cap Max} {Range Min} {Range Max}

– Grab & Throw
grabdistance        {int}
grabback        {bi}
grabfinish      {bi}
grabwalk          {bi}
grabturn          {bi}
cantgrab        {bi}
paingrab        {bi}
antigrab        {value}
grabforce        {value}
throwdamage        {int}
throw                {dist}        {height}
throwframewait        {frame}

– Terrain Interaction
height                {alt}
antigravity     {value}
bounce          {bi}
noquake                {bi}
no_adjust_base      {bi}
subject_to_wall     {bi}
subject_to_hole     {bi}
subject_to_obstacle {bi}
subject_to_platform {bi}
subject_to_gravity  {bi}
subject_to_screen   {bi}
subject_to_minz     {int}
subject_to_maxz     {int}
offscreenkill        {value}

– Entity Interaction
aggression        {value}
hitenemy        {canhit}        {alt}
aimove          {type}
hostile                {type1}        {type2} …
candamage        {type1}        {type2} …
projectilehit        {type1}        {type2} …

– Remap
remap                {path1}        {path2}
fmap                {int}
palette         {path}
alternatepal    {path}
hmap                {a}        {b}
globalmap       {int}
KOMap                {map} {flag}

– Shadow & Effects
shadow                {int}
aironly                {bi}
gfxshadow       {int}
alpha                {int}
parrow                {path}        {x}        {y}
parrow2                {path}        {x}        {y}
diesound        {path}
setlayer        {int}

– Projectiles
load                {name}
playshot        {name}
playshotno        {name}
knife                {name}
star                {name}
bomb                {name}/ pbomb                {name}
rider                {name}

– Flash
flash                {name}
bflash                {name}
dust                {name}
toflip                {bi}
noatflash        {bi}

– Offense & Defense
com             {dir1} {dir2} … {dir15} {action} freespecial{#}
atchain                {number}        {number}        {number}        {number}        {number}
combostyle      {bi}
offense                {type}        {factor}
defense                {type}        {factor} {pain} {knockdown} {blockpower} {blockthreshold} {blockratio} {blocktype}
blockodds        {int}
thold                {int}
blockpain        {int}
nopassiveblock  {bi}
holdblock       {bi}
guardpoints     {int}
guardrate       {int}

– Reaction
nopain                {bi}
nodrop                {bi}
knockdowncount        {int}
remove                {bi}
escapehits        {int}
nodieblink        {int}
makeinv                {int} {bi}
falldie                {value}/ death                {value}
risetime        {value}
riseinv         {int} {bi}
jugglepoints    {int}
instantitemdeath {int}
riseattacktype  {int}

– Weapons
weapons         {name1} {name2} {name3} {name4} {name5} {original name}
project                {name}
shootnum        {int}
counter         {int}
reload          {int}
typeshot        {bi}
animal          {bi}
weaploss        {flag}
modelflag       {int}
weapnum         {int}

– Icon & Lifebar
icon                {path}
iconpain        {path}
icondie                {path}
iconget                {path}
iconw                {path}
iconmphigh        {path}
iconmphalf        {path}
iconmplow        {path}
nolife                {bi}
lifebarstatus   {w} {h} {noborder} {type} {orientation} {border} {shadow} {graph} {backfill}
lifeposition    {x} {y}
nameposition    {x} {y}
iconposition    {x} {y}

– Miscellaneous
credit          {int}
secret                {bi}
sleepwait        {value}
score                {onkill}        {multiplier}
smartbomb        (power)        (type)        (pause)        (length}
branch          {name}
lifespan        {value}
scroll                {value}

————–

Entity Files – Animation Types:

– Non Attack
WAITING
SELECT
SPAWN
RESPAWN
IDLE
IDLE#
FAINT
SLEEP
WALK
WALK#
BACKWALK
BACKWALK#
TURN
UP
UP#
DOWN
DOWN#
DUCK
LAND
RUN
JUMP
JUMPDELAY
JUMPLAND
FORWARDJUMP
RUNJUMP
DODGE
GET
JUMPCANT
CHARGE
CANT
GRAB        
GRABWALK
GRABBACKWALK
GRABWALKUP
GRABWALKDOWN
GRABTURN
SLIDE
RUNSLIDE

– Attack
ATTACK1
ATTACK2
ATTACK3
ATTACK4
ATTACK5,ATTACK6,…
CHARGEATTACK
ATTACKBOTH
UPPER
RUNATTACK
RUNJUMPATTACK
JUMPATTACK
JUMPFORWARD
JUMPATTACK2
JUMPATTACK3
JUMPSPECIAL/SPECIAL3
ATTACKUP
ATTACKDOWN
ATTACKFORWARD
ATTACKBACKWARD
FOLLOW{#}
FOLLOW5,FOLLOW6,…
FREESPECIAL{#}
FREESPECIAL9,FREESPECIAL10,…
SPECIAL
SPECIAL2
GRABATTACK
GRABATTACK2
GRABFORWARD
GRABFORWARD2
GRABUP
GRABUP2
GRABDOWN
GRABDOWN2
THROW
GRABBACKWARD
GRABBACKWARD2
DUCKATTACK

– Reaction
PAIN{#}
PAIN11,PAIN12,…
SPAIN
BPAIN
FALL{#}
FALL11,FALL12,…
RISE{#}
RISE11,RISE12,…
RISEB
RISES
RISEATTACK{#}
RISEATTACK11,RISEATTACK12,…
RISEATTACKB
RISEATTACKS
SHOCK
BURN
DEATH{#}
DEATH11,DEATH12,…
CHIPDEATH
BDIE
SDIE
BLOCK
BLOCKPAIN{#}
BLOCKPAIN11,BLOCKPAIN12,…
BLOCKPAINB
BLOCKPAINS
GUARDBREAK
GRABBED
GRABBEDWALK
GRABBEDBACKWALK
GRABBEDWALKUP
GRABBEDWALKDOWN
GRABBEDTURN

————–

Entity Files – Animation Data:

– Animation header
loop                {bi} {start} {end}
fastattack        {bi}
blockfx         {path}
blockflash      {name}
range                {min}        {max}
rangez          {min}   {max}
rangea          {min}   {max}
dive                {hori}        {vert}
energycost        {int}
mponly                {int}
mpcost                {int}
followanim        {value}
followcond        {value}
attackone        {bi}
counterattack   {bi}
bouncefactor    {r}
animheight      {alt}
cancel          {start frame} {end frame} {hits} {sequence of inputs} {freespecial#}
chargetime        {int}

– “Frame” commands
pshotframe        {frame}        {a}
throwframe        {frame}        {a}
shootframe        {frame}        {a}
custknife        {name}
custstar        {name}
tossframe        {frame}        {a}/ pbombframe        {frame}        {a}
custbomb        {name} / custpbomb        {name}
jumpframe        {frame}        {height}        {speedx}        {speedz} {dust}
dropframe        {frame}
landframe        {frame} {dust}
flipframe        {frame}
quakeframe        {frame}        {loops}        {intensity}
counterframe        {frame}        {cond}        {damaged}
spawnframe        {frame}        {x}        {z}        {a}        {relative}
summonframe        {frame}        {x}        {z}        {a}        {relative}
unsummonframe        {frame}
subentity        {name} / custentity        {name}
weaponframe        {frame}        {weapon}

– Frame Properties
delay                {int}
offset                {x}        {y}        
bbox                {x}        {y}        {right}        {down}        {z}
frame                {path}
attack{#}        {x}        {y}        {right}        {down}        {damage}        {power}        {block}        {noflash}        {pausetime}        {z}
attack11,attack12,…
blast                {x}        {y}        {right}        {down}        {damage}        {block}        {noflash}        {pausetime}        {z}
shock                {x}        {y}        {right}        {down}        {damage}        {knockdown}        {block}        {noflash}        {pausetime}        {z}
burn                {x}        {y}        {right}        {down}        {damage}        {knockdown}        {block}        {noflash}        {pausetime}        {z}
freeze                {x}        {y}        {right}        {down}        {damage}        {time}        {block}        {noflash}        {pausetime}        {z}
steal                {x}        {y}        {right}        {down}        {damage}        {knockdown}        {block}        {noflash}        {pausetime}        {z}
move                {x}
movea                {a}
movez                {z}
seta                {a}
platform        {upperleft} {lowerleft} {upperright} {lowerright} {depth} {alt} / platform   {xpos} {zpos} {upperleft} {lowerleft} {upperright} {lowerright} {depth} {alt}
sound                {path}
fshadow                {int}
shadowcoords        {x}        {y}
itembox         {x} {y} {right} {down}
drawmethod      {scalex} {scaley} {flipx} {flipy} {shiftx} {alpha} {remap} {fillcolor} {rotate} {fliprotate}
nodrawmethod
hitfx                {path}
hitflash        {name}
idle                {flag}

– Attackbox supplement
grabin          {type}        {distance}
forcedirection  {dir}
damageonlanding        {value}        {type}
dropv           {height}        {speedx}        {speedz}
counterattack        {bi}
stun            {int}
seal            {time} {energy}
forcemap        {map} {time}
drain           {type} {resource} {amount} {rate}
noreflect       {bi}
jugglecost      {int}
OTG             {bi}
guardcost       {int}
DOT                {Index} {Time} {Mode} {Force} {Rate}
staydown        {rise} {riseattack}

————–

System Files:

flash.txt
data/pal.act
data/SPRITES/font.gif
data/SPRITES/font2.gif
data/SPRITES/font3.gif
data/SPRITES/font4.gif
data/SPRITES/shadow{#}.gif
data/SPRITES/arrow.gif
data/SPRITES/arrowl.gif
data/bgs/hiscore.gif
data/scenes/gameover.txt
data/bgs/complete.gif
data/bgs/select.gif
data/bgs/unlockbg.gif
data/bgs/logo.gif
data/scenes/logo.txt
data/scenes/intro.txt
data/scenes/howto.txt

————–

Cutscene Files:

music           {path} {loop}
animation       {path} {x} {y} {skip} {noskip}
silence         {int}

————–

Select Screen Files:

music           {path} {loop}
background      {path}
allowselect     {playername1} {playername2} ….
load                {name}
————–

Level Files – Level Design:

– Graphics
bglayer         {path} {xratio} {zratio} {xposition} {zposition} {xspacing} {zspacing} {xrepeat} {zrepeat} {transparency} {alpha} {watermode} {amplitude} {wavelength} {wavespeed} {bgspeedratio} / background {path} {xratio} {zratio} {xposition} {zposition} {xspacing} {zspacing} {xrepeat} {zrepeat} {transparency} {alpha}
bgspeed                {speed}        {dir}
water                {path}        {warp}
rock                {int}
mirror          {bi}
panel                {norm}        {neon}        {scrn}
frontpanel        {path}
order                {panel#}{panel#}{panel#}…
loadingbg       {path} {set} {bx} {by} {bsize} {tx} {ty} {tf}
palette                {path}        {a1}        {a2}        {a3}        {a4}        {a5}        {a6}
cameratype      {bi}
fglayer         {path} {z} {xratio} {zratio} {xposition} {zposition} {xspacing} {zspacing} {xrepeat} {zrepeat} {transparency} {alpha} {watermode} {amplitude} {wavelength} {wavespeed} {bgspeedratio}
cameraoffset    {x} {z/y}

– Non-Graphics
type                {type}        {special}        {inv}
music                {path}  {offset}
bossmusic        {path}  {offset}
spawn1                {x}        {z}        {a}
spawn2                {x}        {z}        {a}
spawn3                {x}        {z}        {a}
spawn4                {x}        {z}        {a}
allowselect     {playername1} {playername2} ….
direction        {dir}
settime         {int}
notime          {bi}
noreset          {int}
noslow          {bi}
hole                {xpos}        {zpos}        {upperleft}        {lowerleft}        {upperright}        {lowerright}        {depth}
wall                {xpos}        {zpos}        {upperleft}        {lowerleft}        {upperright}        {lowerright}        {depth}        {alt}
endhole         {bi}
blocked         {bi}
gravity         {value}
maxfallspeed    {value}
maxtossspeed    {value}
stagenumber     {int}
noscreenshot    {bi}
nopause         {bi}
setweap         {int}

————–

Level Files – Level objects:

– Spawn properties
spawn                {name} {bi}
2pspawn         
3pspawn         
4pspawn         
alias                {name}
map                {pal}
health          {int}
2phealth        {int}
3phealth        {int}
4phealth        {int}
mp                {int}
dying                {remap}        {health1}        {health2}
item                {name} {bi}
itemhealth        {name}
itemmap         {name}
itemalias        {name}
2pitem          {name} {bi}
3pitem          {name} {bi}
4pitem          {name} {bi}
boss                {bi}
flip                {bi}
coords          {x}        {y}     {a}
aggression        {value}
weapon                {name} {bi}
at                {pos}

– Other level objects
wait        
group           {min}        {max}
blockade        {pos}
setpalette        {palette}
shadowcolor     {index}
shadowalpha     {index}
light           {x} {z}
load            {name} {bi}
scrollz         {min} {max}
music           {path} {offset}
musicfade       {float}

—————

Music Files:

PCM format, 16-bit mono or stereo at 22050 (22 Khz))
Batch Files:
wav2bor.exe        {wav}        {bor}        {artist}        {title}

—————

Sound Files:

data/sounds/beat1.wav
data/sounds/fall.wav
data/sounds/get.wav
data/sounds/money.wav
data/sounds/jump.wav
data/sounds/indirect.wav
data/sounds/punch.wav
data/sounds/1up.wav
data/sounds/go.wav
data/sounds/timeover.wav
data/sounds/beep.wav
data/sounds/beep2.wav
data/sounds/bike.wav
data/sounds/block.wav

—————

Limits:
~Maximum number of:
  sprite frames: NA**
  animations: NA**
  models: NA**
  entities: NA**
  panels per level: 52*
  frames per animation: NA**
  weapons per player: 10
  remaps: 30
  name length: 40
  level spawns: 600
  panel order length: 100
  hole spawns per level: 40
  walls per level: 40
  background layers per level: 100
  foreground layers per level: 10
  text objects: 50
  file streams: 50
  levels in a level set: 100
  level sets/ game modes: 10
  sound effects: 512

*: Although the source code has been changed to allow up to 52 panels per stage, a way of using panels past 26 has not yet been decided upon. There are only 26 letters in the alphabet, after all. So you can only use 26.

**: NA means this particular caveat is no longer limited by source code. In other words, if you want to create a mod with 10,000 models, 5000 animations or an animation with 500,000 frames, that’s your business. Keep in mind however that with great power comes great responsibility; it is up to you to properly manage hardware resources (in particular memory), especially if you intend for your module to play on consoles.