EVT Format | ||||||
---|---|---|---|---|---|---|
|
EVT is a binary event format used by Atlus in Persona 5. It is used to setup cameras, objects, animations, dialog and more in cutscenes where you can't control the character. In other circumstances where dialog is shown but you still briefly control the character, those scenes are likely using BF instead.
Location
Persona 5's EVTs can be found in the PAC files in data.cpk/event.
Tools
EVTEditor
EVTEditor is a program by ShrineFox based on TGE's EvtTool, featuring a GUI with a timeline. You can open an event PAK or EVT with it to add, modify and reschedule commands and objects. If the event PAK contains a BMD, you can edit the decompiled text on the fly. Download it here.
EvtTool
EvtTool is a program by TGE that dumps the contents of an EVT, ECS or LSD binary to an editable JSON file, which can be opened with a text editor such as Notepad++. By dragging an EVT onto the EXE, a JSON will be generated (and vice versa). You can download EvtTool here.
Alternatively you can use the program through the commandline by passing in the file path to either an EVT or a JSON file (in case you want to batch the conversion, for example).
P5_EVT_ECS.bt
A binary template for 010 Editor can be used to study the structure of an EVT/ECS file while hex editing. Download that here.
Format
The beginning of an EVT file is comprised of event parameters (such as ids, duration), followed by object definitions (object ID, type, resource IDs, animation IDs).
After those, commands make use of the object ids to set positions, play animations, execute script procedures and show messages. Each command has its own specific parameters and a short descriptor (e.g. MSD_).
Below are a list of all commands and their functions (to the best of our knowledge).
Command | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AlEf | Alarm Effect. Makes a red filter fade on and off the screen, sort of like an alarm.
Field04 = Effect type? (valid values are 1 and 2). One seems to be the most prominent. This is the only parameter the game reads for this command. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CAA_ | Camera Add Asset. Only the first 4 Parameters are read by the game | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CAR_ | Camera Add Reset. Only Field00 is read by the game | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CClp | Camera Clip plane. Parameters set the distance from the camera that models are made invisible. Can cause some unaffected models to become blurry for some reason.
Field00 and Field04 are not read by the game. Field08 = Near Clip. Field0C = Far Clip. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Chap | Chapter. This command marks event frames that the player can skip to. Doesn't take any parameters. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cht_ | Chat. Brings up chat messages? Field04 is the only parameter read by the game
Field04 = Some type of mode? valid values are 1-5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CMCn | Camera Movement Continuous? Moves the camera for a specified amount of time. Only Field04 and Field08 are read by the game
Field04 = Direction Index
Field08 = Distance | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CMD_ | Camera Move Direct. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CQuk | Cam Quake. Can shake the camera with different intensities, angles, and intensity easing duration. Field00, Field10 and params after aren't read by the game
Field04 = Quake Intensity Field08 = Quake Angle Field0C = Quake Ease Duration | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CSA_ | Camera Set Asset? Starts an animation from the camera object's animation list. (requires a ParticlePak object that references a GMD in the CAMERA folder) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CSD_ | Camera Set Direct. Sets up camera parameters such as position, rotation, fov. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CSEc | Camera Set Evtcmr. Field08 is for the EVT asset id of a camera object | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CShk | Camera Shake.
Field0C = X axis shake speed. Field10 = Y axis shake speed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CwCl | Unsure, Only Field00 and Field04 are read | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CwD_ | Royal Only. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CwHt | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CwP_ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Date | Hides/Shows the date on the top right of the screen.
Data->Field04 = 2 seems to disable it, 258 seems to enable it. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EAlp | Effect Alpha. Changes the opacity of an effect/particle EPL.
Field04 = The opacity of the effect, from 0 (invisible) to 255 (fully visible). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ELd_ | Effect Load? Loads and plays an effect/particle EPL. None of the parameters are read except for the "ObjectId" value. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EMD_ | Effect Move Direct. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnBc | Environment Background Color. Adjusts the color outside of the skybox.
Field0C = Color. Get a hex color from a color picker, then use a calculator like this one to convert from hex to decimal. When converting, put an extra "FF" on the end of the hex value. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnCc | Environment Color Correction. Adjusts the strengths of different hues. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnDf | Environment Depth of Field. Adjusts how blurry things get at certain distances from the camera | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnFD | Environment Fog Distance. Adjusts the thickness and color of fog | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnFH | Env Fog Height. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnHd | Environment HDR. Makes light sources brighter and more "blurry", causing more light spill.
Some fields (10 & 28, 14 & 38, and 18 & 1C) seem to control similar values, so it might be hard to tell the difference. Field10 = Flare Intensity? Field14 = Bloom Intensity? Field18 = Makes objects less specular? Field1C = Makes objects less specular? Field20 = Max flare angles shown at once (0-1 locks flare to camera), max value of 4. More than that crashes the game. Field24 = Flare Length Field28 = Flare Intensity? Field2C = Flare Saturation Field30 = Flare Rotation Field34 = Light Spill? Field38 = Bloom Intensity? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnL0 | Environment Light 0. Overrides Field Model ENV properties.
Field1C = Field Model Light X Field20 = Field Model Light Y Field24 = Field Model Light Z | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnLI | Env Light Indep. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnOl | Env Outline. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnPh | Env Physics. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EnSh | Env Shadow. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Env_ | Environment. Changes the currently loaded ENV. It's usually set to the object ID of a type 4 Object (which usually indicates a field).
Field04 = Object ID of the ENV you want to load. Setting it to a type 4 with Major and Minor ID 0 will load the main field object's env. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ERgs | Effect Register. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EScl | Effect Scale. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ESD_ | Effect Set Direct. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ESH_ | Effect Set Helper. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FAA_ | Field Animation Add? Plays a Field animation. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FAB_ | Field Animation Base? Plays a Field animation that has a followup. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FbEn | Flashback End. Forces any flashbacks that are playing to stop. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fd__ | Fade. Plays a specified fade in/out animation. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FDFl | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FdS_ | Fade Simple. Displays a black or white fade in/out effect depending on the type set. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FGFl | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Flbk | Flashback. Displays a "flashback" image over the current field. Allows for a specified object to be drawn over the image. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FOD_ | Field Object Display. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FrJ_ | Frame Jump. Jumps to a specified frame in the event. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FS__ | Field Set. Indicates which field object should be loaded as the current scene. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GCAP | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GGGg | GoodGauge something. Seems to bring up the phansite popularity guage. Field00 and Field0C do nothing. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GPoe | Triggers a poem sequence.
Field04 - Directory from poems to call. 0 for confidant start, 1 for confidant max, 2 for gameover. Field08 - Major Id of poems to call | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ImDp | Image Display. Displays a specified image (pictxx.dds) from the IMAGE folder, using a specified Frame Model (FrameXX.gmd) in the same folder. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LBX_ | Letterbox. Seems to bring up, remove(?), and resize the event letterboxing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAA_ | Model Animation Add. Makes a (character) model object play a facial animation from its respective facial animation pack (emtXXXX.gap). Field04 = The index of the animation to play from the facial animation pack. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAAB | Model Attach Animation Base. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAB_ | Model Animation Base. Makes a model object play a body animation. Field00 = The index of the animation to play from the body animation pack, for part 1 of the MAB command. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAI_ | Model Animation Idle. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAlp | Model Alpha. Changes the opacity/visibility of a model. Can use it to swap between models, via making a model invisible until needed. Field04 = Set to 0 to make invisible, set to 255 to make fully visible. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAt_ | Model Attach. Attaches a Prop object (aka item) to the bone of a Character model. Field00 = Currently unknown. Speculated to be the animation frame at which the object attaches to the character model. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MAtO | Model Attach Offset.
Field04 = The object ID of the model to be attached to the character the MAtO command is targeting. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MCSd | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MDt_ | Model Detach. Detaches a Prop object (aka item) from the bone of a Character model. Field00 = Currently unknown. Speculated to be the amount of animation frames after the initial animation frame it’s attached to, at which the object detaches from the character model.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MFts | Model Footsteps. Sets footstep distortion effects type and intensity for a specified character object. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MGd_ | Royal Only. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MIc_ | Model Icon. Command to display an emotion icon (exclamation mark, sweat drop, etc.) above a character model's head.
Field04 = Index of the emote icon
Field08 = Icon Size Index. valid values are 0-3 and each number corresponds to the following size multiplier:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ML__ | Model Lighting. Can alter how the lighting interacts with the model | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLa_ | Model Lookat. Makes a model object look at a target position. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLd_ | Model Load? None of the parameters are read except for the "ObjectId" value. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLw_ | Model Lookaway Makes a model look in multiple directions in succession. Field1C doesn't do anything.
Field14 and Field18 are the durations in frames until the model will start looking in the next direction. Field04-Field10 seem to be directions. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MMD_ | Model Move Direct. Makes a model object move in a way specified by the parameters. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MRgs | Model Register Seems to spawn despawn objects of a given object id.
Field04 -> 1 to spawn the model, 2 to despawn. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MRot | Model Rotate. Rotates a model object. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MScl | Model Scale. Scales a model object. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MSD_ | Model Set Direct. Sets up positioning data for a model object, and can trigger animations as well.
Field1C = Cue animation from animation pack bfxxxx_xxx.gap. (starts from 0) Field24 = Animation speed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Msg_ | Message. Displays a message in a BMD by the id in the message name, contains a lot of other parameters which seemingly don't do a whole lot. Can also trigger a dialogue selection immediately after advancing the specified message.
Field04 = Message MajorId. Goes by the first number in the message's name in the BMD (MSG006_0_0), and not the message's index. Field06 = Message MinorId. Goes by the second number in the message's name in the BMD (MSG_006_2_0). The next two parameters are for triggering player dialogue choices. Field08 = Selection MajorId. Same as before, goes by the name of the selection's name in the BMD (SEL007_0_0). Field0A = Selection MinorId. (SEL_007_1_0) Field0C = The LOCAL_DATA Id in which the index of the player's dialogue choice will be stored in. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MsgR | Message Ref. Simplified version of the message command, uses indexes instead of numbers in the msg name. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MSSs | Model Shoe Style Switch. The MSSs function, reads Field04 (valid values are integers from 1 to 4*) to toggle visibility of character model elements related to shoes/socks. It checks the model of the object for any nodes named 'shoe_x,' where 'x' corresponds to value of Field04 minus one (see examples below) displaying these nodes, whilst hiding any other shoe nodes. If no shoe nodes exist, no action is taken. By default, if the model has multiple shoe_x nodes and MSSs is absent, 'shoe_0' is used.
The check done by MSSs appears to be very rudimentary, only checking for the string "shoe_x" (where x is the index). The check ignores anything after that point, and is case-sensitive (i.e. Shoe_x will be ignored, shoe_01 and shoe_02 will both return for MSSs value of 1 - see below). MSSs can be used at any time during a scene, the effect is instantaneous with only the affected parts of the model changing. The MSSs take effect from the defined frame number. Multiple MSSs can be used in a scene for toggling. Each MSSs relates to a single object (therefore for multiple characters, MSSs will be needed for each one, as appropriate). *Only MSSs values of 1 and 2 have been seen in the game's data. Examples:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MvCt | Movie Cut(?). Pauses and resumes movies. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MvPl | Movie Play. Plays a movie from the data/movie folder by the name of its USM file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PBDs | PFX Blur Distort. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PBNs | PFX Blur Noise. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PBRd | PFX Blur Radial. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PBSt | PFX Blur Straight. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCc_ | PFX Color correct. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCr_ | Royal Only. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PLf_ | PFX Lens flare. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PMc_ | Royal Only. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PRum | Pad Rumble. Makes the controller vibrate. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Scr_ | Script. Executes a procedure in the event script BF by its index. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SFlt | Sky Filter. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SsCp | Screenshot Capture. Displays a screenshot of the current EVT frame for a specified amount of time. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TCol | Texture Color. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TMov | Texture Move. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TRgs | Texture Register. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TrMt | Trigger Motion. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TScl | Texture Scale. |