🦊



Basics
Flowscript
Messagescript
Decompiling
Compiling

Features
Importing
↳ Declaring Functions
↳ Declaring Variables
Hooking Functions

P5 Functions
↳ AI
↳ Common
↳ Facility
↳ Field
↳ Net
↳ Social

Flowscript


Flowscript is a scripting language created by TGEnigma for use with his AtlusScriptCompiler. It is the decompiled form of BF, the binary output of Atlus's scripts which many of their games use to perform various logical procedures.
Below is an example of a custom flowscript that uses Persona 5 (PS3)'s functions.
// Import the MessageScript into the script
import( "TestScript2.msg" );
// Constants can be defined with the const modifier
const int FLD_SCRIPT_TIMING_BEFORE_LOAD	= 0;
// Can define static variable but can't initialize it outside of a procedure.
static bool sHasRun;
// You can define enum values and refer to them like so
enum PadButton
{
Select,
LStick,
RStick,
Start,
Up,
Down,<
L1,
R1,
L2,
Triangle,
Circle,
X,
Any
}
void Main() { // Display dialog window MSG_WND_DSP(); MSG( HelloDialog, 0 ); int selection = SEL( 1 ); MSG_WND_CLS(); switch ( selection ) { case 0: int playerResHandle = FLD_PC_GET_RESHND( 0 ); FLD_MODEL_SET_SCALE( playerResHandle, 2f ); break; case 1: CALL_FIELD( 0, 2, 0, 0 ); break; case 2: StartBossrushMode(); break; case 3: StartTeleportMode(); break; case 4: StartButtonTestMode(); break; case 5: StartSoundTestMode(); break; default: break; } }
...

Decompiling

You can convert .BF to .FLOW and open it with your text editor of choice by following this guide.
Likewise, you can also convert .BMD to .MSG for easy reading and editing.
If you're looking for a full dump of P5's scripts for reference, you can get one here.

Compiling

To turn .FLOW files back into .BF, or .MSG files back into .BMD, be sure to read this guide.






We are not affiliated, associated, authorized, endorsed by, or in any way
officially connected with ATLUS, SEGA, or any of its subsidiaries or its affiliates.
The official ATLUS website can be found at https://atlus.com. "Persona", as well
as all characters referenced on this page are registered trademarks of ATLUS.