Skip to main content

.move.bin (Animation State Machine)

Compiled animation state machines that define how animations blend, transition, and are controlled by game parameters. Part of the Dunia "move" system.

Format — RESOLVED (Sep 2026)​

combinedmovefile.bin (FC5/ND/FC6)​

u32 version (64=FC5, 65=ND, 85=FC6)
u32 moveDataSize (size of animation tree data)
u32 fcbDataSize (size of FCbn binary object data)
byte[] moveData (animation trees with classNameType dispatch)
byte[] fcbData (FCbn: PerMoveResourceInfo + OffsetsHashesArray)

PerMoveResourceInfo (from fcbData): 34951 entries with file paths (.mab animation files), sizes, and rootNodeIds. File paths decode to readable animation paths like animations\legacy\locomotion\transition\panic\run\stops\....

movedef.move.bin (FC4)​

u16 version (22093=FC4 "MV")
u16 unknown
byte[] header (complex metadata, tree data starts at ~0x523)
byte[] treeData (classNameType dispatch system)

classNameType dispatch (both formats)​

Each node starts with a classNameType byte (7-47) that determines the binary layout:

TypeClassDescription
7CMoveStateAnimation state
8CMoveBranchDecision branch
9CMoveBracketBracket node
10CMoveComparisonOpeComparison operator
11CMoveIntervalOpeInterval operator
12CMoveBlendRefBlend reference
13CMoveMultiBlendRefMulti-blend reference
14CMoveSuspendLayerSuspend layer
15CMoveStateRefState reference
16CMoveSingleAnimSingle animation
17CMoveSpeedScaledAnimSpeed-scaled animation
18CMoveRandomOffsetAnimRandom offset animation
19CMoveTimeControlledAnimTime-controlled animation
20CMoveDoNothingDo nothing
21CMoveMotionMatchingMotion matching
22CMoveMotionMatchingListMotion matching list (ND/FC6)
23CMoveMotionMatchingAnimMotion matching anim (ND/FC6)
26CMoveFacialAnimFacial animation
27CMoveProceduralProcedural animation
28CMoveRandomSelectorRandom selector
29CMovePMSSelectorPMS selector
30CMoveSequenceSequence
31CMoveRangeBlendRange blend
32CMoveAxialBlendAxial blend
34CMoveMultiBlendMulti-blend
37CMoveSetGameParamsSet game parameters
38CMoveAnimTechSetPMSAnim tech set PMS
43CMoveTransitionTransition
44CMoveTransitionContainerTransition container

Source: MabTools/CombinedMoveFile.cs, WDL leak XML files

Node binary layout​

Each node follows: classNameType(1) + header(3: childrenCount, headerA, headerB)

  • type-specific data + child offsets(u16 × childrenCount) + padding

Child offsets are direct file byte positions (NOT ×4 as MabTools code suggests). Verified against WDL leak XML hierarchy — children reference positions within the file.

FileGameSizeCRC64Description
movedef.move.binFC411MB0x49137233ebb533d4Core move definitions
movedefnamed.move.binFC429MB—Named variant (more entries)
combinedmovefile.binFC540MB—Combined root state machine

Source: sharp_razor8 (Discord), samir (MoveValueDefinitions)

MoveValueDefinitions​

Game parameters that drive the animation state machine:

IndexNameType
5HeadingAngleangle
6FacingAngleangle
7Speedfloat
12AimStanceenum
21EquippedWeaponenum
47MentalStateenum
58IsSprintingbool
60IronSightTransitionfloat
82LastHitDirectionangle
83SpeedWhenHurtfloat
86PGM_TargetPlantAngleangle
87CoverHidingBehindbool
91PGM_TargetSpeedfloat
93PGM_TargetMoveDirectionangle
94PGM_TargetFaceDirectionangle
101Identity_AnimationSetenum
175Identity_MetaAnimationSetenum
225TurnAngleangle

Source: samir (Discord), MabTools CombinedMoveFile.cs

FC4 vs FC5 differences​

  • FC4 uses simpler state machines (no decision trees or complex blends)
  • FC5/ND add decision trees, motion matching, and procedural animation
  • FC6 is partial — limited knowledge

Tools​

  • MabTools (Jakub Mareček) — .move.bin ↔ XML conversion via MoveConvertBin() / MoveConvertXml() in FCBConverter fork
  • FCBConverter — can convert the binary object data to XML

Source​

  • MoveBin Research directory (FC4 movedef, FC5 combinedmovefile samples)
  • MabTools-main/FCBConverter/CombinedMoveFile.cs (animation parameter system)
  • Discord Far Cry modding community (legendhavoc175, BIRDdude12, sharp_razor8)