-
Notifications
You must be signed in to change notification settings - Fork 5
Character JSON
Super edited this page Oct 6, 2021
·
20 revisions
This explains the character JSON schema. This is almost completely backwards compatible with Funkin Multi 3.2.
Char_Pos is a FNFBR alternative to common_stage_offsets
Field | Type | Description |
---|---|---|
clone | String | Copies the offsets of a character and a few interactions, disable it by removing this line or leaving it blank |
no_antialiasing | Bool | Whether to use antialiasing |
sing_duration | Float | Duration of character sing animation's mult, Dad clones use 6.1 while everyone else uses 4 |
dance_idle | Bool | Makes the character use danceRight/danceLeft animations instead of Idle, Also effects a few other things |
scale | Float | Sprite scale on stages. Senpai uses 6 while BF-Pixel/Spirit uses 6.6, everyone else uses 1 |
custom_misses | Int | Custom misses, 0 is disabled(Or just don't include), 1 is FNF Multi voices, 2 is 'miss_left.ogg','miss_right.ogg','miss_up.ogg' and 'miss_down.ogg' |
alt_anims | Bool | Whether to use alt animations(Unused, latest FNFBR will automatically use them if provided) |
flip_x | Bool | Flips X axis from the sprite, useful for Boyfriend/Pico/Tankman clones |
spirit_trail | Bool | Enables Spirit's visual effect |
animations | Array of animations | Animations for the character, bottom most will get priority |
animations_offsets | Array of animation offsets | Per animation offsets, Adds to existing offsets if any exist |
common_stage_offset | [Float, Float, Float, Float] | Your character's offset ingame on common stages as Player 1 and 2, due to a bug: more Y = higher, more X = More to the left. Unlike Multi where it's the opposite |
char_pos | [Float, Float] | Your character's position, Used if you want to stay compatible with Funkin Multi or if you don't want to change the camera position |
cam_pos | [Float, Float] | The camera position, Used if you want to stay compatible with Funkin Multi or if you don't want to change the char position |
char_pos(CHAR SIDE) | [Float, Float] | Your character's position for the slot specified, Used if you want to stay compatible with Funkin Multi or if you don't want to change the camera position( Replace CHARSIDE with the side your character's on, 1=BF,2=Dad,3=GF as of 0.2.0 ) |
cam_pos(CHAR SIDE) | [Float, Float] | The camera positionfor the slot specified, Used if you want to stay compatible with Funkin Multi or if you don't want to change the char position( Replace CHARSIDE with the side your character's on, 1=BF,2=Dad,3=GF as of 0.2.0 ) |
flip | Bool | Allow the character to flip, enabled by default for every character except for GF, copies cloned character if not provided |
flip_notes | Bool | Whether to flip left/right when on the right, true by default 0.0.3+ |
offset_flip | Bool | Flips the offsets on the left, 0/not specififed = off completely, 1 = use player2, 2 = flip left, 3 = flip right 0.1.2+ |
asset_files | Array of asset files | Allows the character to switch pngs,xmls,animations and animation offsets 0.2.0+ |
color | [R,G,B,A] | Allows the character to have a custom health bar color. Alpha defaults to the highest value(255) if not provided. R,G,B go from 0 to 255. 0.5.1+ |
playAfter | String | The animation to play after this animation is finished 0.6.0+ |
Click here to find an example charjson
This is the schema for animations
Field | Type | Description |
---|---|---|
anim | String | The animation to replace |
name | String | The animation name from the XML |
fps | Int | The frames per second this animation should be played at |
loop | Bool | If this animation should be looped |
indices | Array of Integers | The frames this animation will have in order, not needed unless you want specific frames to be used |
ifstate | character ifstate | The animation name from the XML |
oneshot | Bool | If the animation should be forced, Will disable loop if enabled. Should only be used for custom/timed character animations |
song | String | The song to lock this animation to, if unmet then animation won't be processed |
char_side | Integer | Only play on a specific side, 0 = BF, 1 = Dad, 2 = GF, if unmet then animation won't be processed |
stage | String | You can use this if you want to lock the animation to a specific stage, if unmet then animation won't be processed |
Field | Type | Description |
---|---|---|
anim | string | The animation to edit |
player1 | [Float, Float] | Offsets for this animation (Offsets for player 1/BF on Offset_flip=1 and Funkin Multi) |
player2 | [Float, Float] | Offsets for player 2/Dad |
player3 | [Float, Float] | Offsets for player 3/GF |
0.2.0+
Field | Type | Description |
---|---|---|
png | string | The path to the png, Relative to to the character folder, eg "skins/bfCar.png" *(optional) |
xml | string | The path to the xml, Relative to to the character folder, eg "skins/bfCar.xml" *(optional, will just use default XML, useful for Skins ) |
animations | Array of animations | Animations for the character *(optional) |
animations_offsets | Array of animation offsets | Per animation offsets *(optional) |
tags | Array of strings | The tags to check for, the Asset file with the most matched tags will get chosen |
song | String | The song to lock this animation to, if unmet then Asset File will be skipped |
char_side | Integer | Only play on a specific side, 0 = BF, 1 = Dad, 2 = GF, if unmet then Asset File will be skipped |
stage | String | You can use this if you want to lock the animation to a specific stage, if unmet then Asset File will be skipped |
windy - limo
inside - stage,mall,mallevil (halloween in 0.2.1+, I'm dumb)
outside - philly,limo,school
spooky - halloween