Documentation Project

dont know if it ok to post here but diging in the forums about jumpmove, found a post of utunels about how a 7 value both in x as in z fixed the limitation of value 2 in wich a static jump cant move. test it and works
this is the info in the manual.

jumpmove {fx} {fz}

  • This allows Player to modify player's jump movement.
  • {fx} determines effect in x axis:
    • 0 = (default) No effect.
    • 1 = Left/Right changes facing direction during jump.
    • 2 = Left/Right changes jumping speed during jump (doesn't work with static jump).
    • 3 = Combination of 1 and 2.
  • {fz} determines effect in z axis:
    • 0 = (default) No effect.
    • 1 = Walking/running momentum is carried during jump.
    • 2 = Up/Down changes jumping speed during jump (doesn't work with static jump).
    • 3 = Combination of 1 and 2.
That's all very out of date and best left be.

DC
 
dont know if it ok to post here but diging in the forums about jumpmove, found a post of utunels about how a 7 value both in x as in z fixed the limitation of value 2 in wich a static jump cant move. test it and works
this is the info in the manual.
This is already on the legacy manual :)
 
Digging into the source code I've found some more information that, once confirmed, we can add to the manual:

Biker:
• The Rider is spawned at Y+10 from the parent.

• Rider won't copy the map from the Biker entity neither there is a way the change it's palette by native means (until 6931 at least) - Coinfirmed

• The manual says "Bikers should normally be spawned further out than other enemies. You'll probably want around 400 or -80 (But not more than -200 or 520, or they'll die)" but, from what I saw at the code, one of the values is wrong:

C:
// for old bikers
int biker_move()
{


if((self->direction == DIRECTION_RIGHT) ? (self->position.x > advancex + (videomodes.hRes + 200)) : (self->position.x < advancex - 200))

Unless I am mistaken, they are spawn either at -200 or (video horizontal resolution +200) - confirmed

SUBTYPE BIKER is called with the following settings:

Code:
subject_to_hole                                = 1;
        subject_to_gravity                             = 1;
        subject_to_basemap                             = 0;
        subject_to_wall                                = 0;
        subject_to_platform                            = 0;
        subject_to_screen                              = 0;
        subject_to_minz                                = 1;
        subject_to_maxz                                = 1;
        no_adjust_base                                 = 0;

I know each type has a group of default settings aplied by default and here are the default values as I could get from the source:

TYPE PLAYER

Code:
chainlength            = 4;
        bounce                 = 1;
        subject_to_basemap     = 1;
        subject_to_wall        = 1;
        subject_to_platform    = 1;
        subject_to_obstacle    = 1;
        subject_to_hole        = 1;
        subject_to_gravity     = 1;
        subject_to_screen      = 1;
        subject_to_minz        = 1;
        subject_to_maxz        = 1;
        no_adjust_base         = 0;


TYPE ENEMY

Code:
        bounce                 = 1;
        subject_to_basemap     = 1;
        subject_to_wall        = 1;
        subject_to_platform    = 1;
        subject_to_hole        = 1;
        subject_to_obstacle    = 1;
        subject_to_gravity     = 1;
        subject_to_minz        = 1;
        subject_to_maxz        = 1;
        no_adjust_base         = 0;

TYPE ITEM

Code:
        subject_to_basemap     = 1;
        subject_to_wall        = 1;
        subject_to_platform    = 1;
        subject_to_hole        = 1;
        subject_to_obstacle    = 1;
        subject_to_gravity     = 1;
        subject_to_minz        = 1;
        subject_to_maxz        = 1;
        no_adjust_base         = 0;

TYPE OBSTACLE
That is a curious one - I can't understand the NOATTACK part.

Code:
        aimove |= AIATTACK1_NOATTACK;
        subject_to_basemap     = 1;
        subject_to_wall        = 1;
        subject_to_platform    = 1;
        subject_to_hole        = 1;
        subject_to_gravity     = 1;
        subject_to_minz        = 1;
        subject_to_maxz        = 1;
        no_adjust_base         = 0;

TYPE STEAMER
Code:
offscreenkill = 80;

TYPE PSHOT
Code:
aimove = 0;
        subject_to_hole                = 0;
        subject_to_gravity             = 1;
        subject_to_basemap             = 0;
        subject_to_wall                = 0;
        subject_to_platform            = 0;
        subject_to_screen              = 0;
        subject_to_minz                = 1;
        subject_to_maxz                = 1;
        subject_to_platform            = 0;
        no_adjust_base                 = 1;

TYPE TRAP
Code:
        subject_to_basemap     = 1;
        subject_to_wall        = 1;
        subject_to_platform    = 1;
        subject_to_hole        = 1;
        subject_to_gravity     = 1;
        subject_to_minz        = 1;
        subject_to_maxz        = 1;
        no_adjust_base         = 0;

TYPE TEXT
Code:
        subject_to_gravity     = 0;
        subject_to_minz        = 1;
        subject_to_maxz        = 1;

TYPE ENDLEVEL
Code:
        subject_to_basemap     = 1;
        subject_to_wall        = 1;
        subject_to_platform    = 1;
        subject_to_hole        = 1;
        subject_to_obstacle    = 1;
        subject_to_gravity     = 1;

TYPE NPC
Code:
        bounce                 = 1;
        subject_to_basemap     = 1;
        subject_to_wall        = 1;
        subject_to_platform    = 1;
        subject_to_hole        = 1;
        subject_to_obstacle    = 1;
        subject_to_gravity     = 1;
        subject_to_minz        = 1;
        subject_to_maxz        = 1;
        no_adjust_base         = 0;

TYPE PANEL
Code:
        antigravity            = 1.0; //float type
        subject_to_gravity     = 1;
        no_adjust_base         = 1;
oh thx for this will use it in future work
 
This is actually a really valuable initiative for the OpenBOR community. Undocumented features and hidden behaviors can make modding much harder, especially for newcomers trying to understand AI flags, animations, and scripting logic.

I agree that many things are only mentioned in old posts or scattered across forums, which makes learning more difficult than it should be. Having proper explanations for flags like “falling” vs “animating” would definitely help avoid a lot of trial and error.

I’ll be following this topic because a centralized documentation effort could become extremely useful for both new and experienced OpenBOR creators. Thanks for putting the effort into organizing all of this.
 
Does anybody know any information of the source code on how the entity property of "bbox" is used? I tried to display the name with drawstring using ondrawscript on a character, but every time or before the character is about to be ready to play, the engine crashes.

Code:
Level Loaded:    'data/levels/vsselect.txt'
Total Ram: 2147483647 Bytes
 Free Ram: 649932800 Bytes
 Used Ram: 186413056 Bytes
Total sprites mapped: 6131


GCANCEL = -1
GCANCEL = -1Script function 'getentityproperty' returned an exception, check the manual for details.
 parameters: #175987960, 73, 
 
********** An Error Occurred **********
*            Shutting Down            *

There's an exception while executing script 'ondrawscript' data/chars/aryu/aryu.txtTotal Ram: 2147483647 Bytes
 Free Ram: 727531520 Bytes
 Used Ram: 195444736 Bytes

Release level data...........
Level Unloading: 'data/levels/vsselect.txt'
Total Ram: 2147483647 Bytes
 Free Ram: 727527424 Bytes
 Used Ram: 195452928 Bytes

RAM Status:
Total Ram: 2147483647 Bytes
 Free Ram: 727527424 Bytes
 Used Ram: 195452928 Bytes

Done!

Release graphics data........    Done!
Release game data............

Unload 'Flash' ............Done.
Unload 'SpecFlash' ............Done.
Unload 'SuperFlash' ............Done.
Unload 'DUST' ............Done.
Unload 'DustL' ............Done.
Unload 'DustJ' ............Done.
Unload 'Hadohit' ............Done.
Unload 'Hadohit2' ............Done.
Unload 'Hadohit3' ............Done.
Unload 'Ryu' ............Done.
Unload 'Hadoken' ............Done.
Unload 'Ryu_continue' ............Done.
Unload 'ryupan' ............Done.
Unload 'Ken' ............Done.
Unload 'KHadoken' ............Done.
Unload 'black-fade-out' ............Done.
Unload 'fsrk1' ............Done.
Unload 'fsrk2' ............Done.
Unload 'shoryukenh' ............Done.
Unload 'Ken_continue' ............Done.
Unload 'bodiboks' ............Done.
Unload 'bodibokso' ............Done.
Unload 'kenpan' ............Done.
Unload 'Chun-Li' ............Done.
Unload 'Kikouken' ............Done.
Unload 'Kikouken2' ............Done.
Unload 'Kikouken3' ............Done.
Unload 'Dimple' ............Done.
Unload 'chunpan' ............Done.
Unload 'Joe' ............Done.
Unload 'joepan' ............Done.
Unload 'Balrog' ............Done.
Unload 'Ript' ............Done.
Unload 'balpan' ............Done.
Unload 'Guile' ............Done.
Unload 'Sonic-Boom' ............Done.
Unload 'glepan' ............Done.
Unload 'Zangief' ............Done.
Unload 'zanpan' ............Done.
Unload 'Dhalsim' ............Done.
Unload 'dhalpan' ............Done.
Unload 'Guy' ............Done.
Unload 'guypan' ............Done.
Unload 'Bison' ............Done.
Unload 'bipan' ............Done.
Unload 'Necro' ............Done.
Unload 'nepan' ............Done.
Unload 'Birdie' ............Done.
Unload 'Eagle' ............Done.
Unload 'eglpan' ............Done.
Unload 'Vega' ............Done.
Unload 'Claw' ............Done.
Unload 'Mask' ............Done.
Unload 'vegapan' ............Done.
Unload 'Sakura' ............Done.
Unload 'Yang' ............Done.
Unload 'yanpan' ............Done.
Unload 'Yun' ............Done.
Unload 'Terry' ............Done.
Unload 'kiru' ............Done.
Unload 'Gouken' ............Done.
Unload 'GoHadoken' ............Done.
Unload 'player1' ............Done.
Unload 'Challenger' ............Done.
Unload 'player2' ............Done.
Unload 'P1Cursor' ............Done.
Unload 'P2Cursor' ............Done.
Unload 'ARyu' ............Done.
Unload 'Hadouken' ............Done.
Unload 'ARyuCont' ............Done.
Unload 'hadouf' ............Done.
Unload 'hadouf2' ............Done.
Unload 'shinhado' ............Done.
Unload 'Empty' ............Done.
Unload 'Pilada3' ............Done.
Unload 'PlayerPorts' ............Done.
Unload 'slots' ............Done.

Warning: 2 script variants are not freed, dumping...
openbor_loadsprite
openbor_array

Release game data............    Done!
Release timer................    Done!
Release input hardware.......    Done!
Release sound system.........    Done!
Release FileCaching System...    Done!

**************** Done *****************

There's an exception while executing script 'ondrawscript' data/chars/aryu/aryu.txt

I did try running with "bbox" property with drawstring in ondrawscript, but got a crash from it. I don't know what its property value is. I'm just curious.

Partial part:
Code:
drawstring(0, 100, 1, "BBox: "+getentityproperty(P1, "bbox"));
 
Does anybody know any information of the source code on how the entity property of "bbox" is used? I tried to display the name with drawstring using ondrawscript on a character, but every time or before the character is about to be ready to play, the engine crashes.

Code:
Level Loaded:    'data/levels/vsselect.txt'
Total Ram: 2147483647 Bytes
 Free Ram: 649932800 Bytes
 Used Ram: 186413056 Bytes
Total sprites mapped: 6131


GCANCEL = -1
GCANCEL = -1Script function 'getentityproperty' returned an exception, check the manual for details.
 parameters: #175987960, 73,
 
********** An Error Occurred **********
*            Shutting Down            *

There's an exception while executing script 'ondrawscript' data/chars/aryu/aryu.txtTotal Ram: 2147483647 Bytes
 Free Ram: 727531520 Bytes
 Used Ram: 195444736 Bytes

Release level data...........
Level Unloading: 'data/levels/vsselect.txt'
Total Ram: 2147483647 Bytes
 Free Ram: 727527424 Bytes
 Used Ram: 195452928 Bytes

RAM Status:
Total Ram: 2147483647 Bytes
 Free Ram: 727527424 Bytes
 Used Ram: 195452928 Bytes

Done!

Release graphics data........    Done!
Release game data............

Unload 'Flash' ............Done.
Unload 'SpecFlash' ............Done.
Unload 'SuperFlash' ............Done.
Unload 'DUST' ............Done.
Unload 'DustL' ............Done.
Unload 'DustJ' ............Done.
Unload 'Hadohit' ............Done.
Unload 'Hadohit2' ............Done.
Unload 'Hadohit3' ............Done.
Unload 'Ryu' ............Done.
Unload 'Hadoken' ............Done.
Unload 'Ryu_continue' ............Done.
Unload 'ryupan' ............Done.
Unload 'Ken' ............Done.
Unload 'KHadoken' ............Done.
Unload 'black-fade-out' ............Done.
Unload 'fsrk1' ............Done.
Unload 'fsrk2' ............Done.
Unload 'shoryukenh' ............Done.
Unload 'Ken_continue' ............Done.
Unload 'bodiboks' ............Done.
Unload 'bodibokso' ............Done.
Unload 'kenpan' ............Done.
Unload 'Chun-Li' ............Done.
Unload 'Kikouken' ............Done.
Unload 'Kikouken2' ............Done.
Unload 'Kikouken3' ............Done.
Unload 'Dimple' ............Done.
Unload 'chunpan' ............Done.
Unload 'Joe' ............Done.
Unload 'joepan' ............Done.
Unload 'Balrog' ............Done.
Unload 'Ript' ............Done.
Unload 'balpan' ............Done.
Unload 'Guile' ............Done.
Unload 'Sonic-Boom' ............Done.
Unload 'glepan' ............Done.
Unload 'Zangief' ............Done.
Unload 'zanpan' ............Done.
Unload 'Dhalsim' ............Done.
Unload 'dhalpan' ............Done.
Unload 'Guy' ............Done.
Unload 'guypan' ............Done.
Unload 'Bison' ............Done.
Unload 'bipan' ............Done.
Unload 'Necro' ............Done.
Unload 'nepan' ............Done.
Unload 'Birdie' ............Done.
Unload 'Eagle' ............Done.
Unload 'eglpan' ............Done.
Unload 'Vega' ............Done.
Unload 'Claw' ............Done.
Unload 'Mask' ............Done.
Unload 'vegapan' ............Done.
Unload 'Sakura' ............Done.
Unload 'Yang' ............Done.
Unload 'yanpan' ............Done.
Unload 'Yun' ............Done.
Unload 'Terry' ............Done.
Unload 'kiru' ............Done.
Unload 'Gouken' ............Done.
Unload 'GoHadoken' ............Done.
Unload 'player1' ............Done.
Unload 'Challenger' ............Done.
Unload 'player2' ............Done.
Unload 'P1Cursor' ............Done.
Unload 'P2Cursor' ............Done.
Unload 'ARyu' ............Done.
Unload 'Hadouken' ............Done.
Unload 'ARyuCont' ............Done.
Unload 'hadouf' ............Done.
Unload 'hadouf2' ............Done.
Unload 'shinhado' ............Done.
Unload 'Empty' ............Done.
Unload 'Pilada3' ............Done.
Unload 'PlayerPorts' ............Done.
Unload 'slots' ............Done.

Warning: 2 script variants are not freed, dumping...
openbor_loadsprite
openbor_array

Release game data............    Done!
Release timer................    Done!
Release input hardware.......    Done!
Release sound system.........    Done!
Release FileCaching System...    Done!

**************** Done *****************

There's an exception while executing script 'ondrawscript' data/chars/aryu/aryu.txt

I did try running with "bbox" property with drawstring in ondrawscript, but got a crash from it. I don't know what its property value is. I'm just curious.

Partial part:
Code:
drawstring(0, 100, 1, "BBox: "+getentityproperty(P1, "bbox"));

There's no such thing. Collision is an animation property, and right now it's a work in progress while I do updates.

DC
 
It's from this list.

getentityproperty(entity, propname) / changeentityproperty(entity, propname, values)

  • Get an entity's property by name.
  • 'entity' is the handle of that entity.
  • 'propname' is the property's name.
  • 'value' is new value you want to set.
  • Property names:
    • "a" - Altitude (DEPRECATED)
    • "aggression" -
    • "aiattack" -
    • "aiflag" -
    • "aimove" -
    • "alpha" - Channel for sprite fusion. From 0 to 6.
    • "animal" -
    • "animating" - In return 0 if the entity isn't in animation (static frame), 1 if animation forward (from 0 to X) and -1 if animating backward (from X to 0). Example AI enemies when walking back have "animating" == -1.
    • "animation" - The handle of current animation.
    • "animation.handle" -
    • "animationid" - The id of current animation. It is an integer value, see 'openborconstant'.
    • "animheight" -
    • "animhits" - The internal hit counter for current animation.
    • "animnum" - Is the "animationid"
    • "animpos" - Frame position of current animation.
    • "animvalid" - It returns 1 if animation exists in entity.txt
    • "antigrab" -
    • "antigravity" -
    • "attackid" -
    • "attacking" - Entity's attack box status. When 0, attack box will not hit other entities.
    • "attackthrottle" -
    • "attackthrottletime" -
    • "autokill" -
    • "base" - Altitude base where is the entity on, if a equals base, this entity is in air.
    • "bbox" -
    • "blink" -
    • "blockback" -
    • "blockodds" -
    • "blockpain" - Entity blockpain property. If intended damage from blocked attack >= blockpain, entity will briefly twitch or play Blockpain animation if it has one.
    • "boomerang" - changeentityproperty(entity,"boomerang",acceleration,horizontal_distance) and getentityproperty(entity,"boomerang",flag) -> flag: 0 = acceleration, 1 = horizontal_distance
    • "boss" -
    • "bounce" -
    • "bound" -

BTW I wonder what "bound" and "blockback" do on their own.
 
Back
Top Bottom