Dragon Quest XI S: Definitive Edition

This details the structure of data in DT_MonsterFieldAI and what these values actually do.

First off, understand that all of the DataTable values are stored in little endian if you're converting these values to and from hex.

----------------------------

FieldBasicSpeed (float, 4 bytes) - Defines the basic speed, varies from monster to monster, usually ranging from around 600 to 1200. This value is modified by ChaseSpeed/EscapeSpeed/RageSpeed. Also very important to note: Lower is Faster.

So, say if you have a monster with a default basic speed of 900, reducing it to 700 or 600 will make it faster. On the contrary, increasing the value will make it slower.

-----------------

ChaseSpeed (enum, 1 byte) - This (along with the next two) modify the basic speed situationally, it is a value of 01 to 09. This is what speed (modifier) is applied when the enemy has spotted you and tracking you down.

A breakdown of these values:
00- SuperSlow
01- VerySlow
02- Slow
03- SlightlySlow
04- Normal
05- SlightlyFast
06- Fast
07- VeryFast
08- SuperFast
09- Original

-------------------

EscapeSpeed (enum1 byte) - This is what speed (modifier) is applied when you are too strong for the enemy and it is trying to run away from you.

----------------------------

RageSpeed (enum1 byte) - This is what speed (modifier) is applied when you have shot an enemy with a crossbow and they are coming to exact vengeance upon you.

-----------------------------

SearchType (enum1 byte) - Two possible values that define how the monster "senses" you.

01 - EyeSight
02- Hearing

------------------------------

SearchRadius (int4 bytes) - Defines the distance that a monster will detect and chase you from. Typical value: ~800

----------------------------

SearchAngle (int4 bytes) - Defines the angle that a monster will detect you. Useful values are all in degrees, so 0 - 360. Typical value: ~60-120

----------------------------

SpreadDistance (int4 bytes) - Defines the distance that a monster will detect from this spawn ("pop") location. Usually similar or identical to SearchRadius.

----------------------------

MovementWeak (enum1 byte) - Defines the monster's movement when it is determined to be weaker than you (see WeakMovementThreshold). Values are 00 - 02.

00- Attack anyway (?)
01- Run away
02- Ignore

------------------------------

MovementStrong (enum1 byte) - Defines the monster's movement when it is determined to be stronger than you (see WeakMovementThreshold). Values are 00 - 02.

00- "Smart" rush
01- "Blind" rush
02- Ignore

-------------------------------

WeakMovementThreshold (int4 bytes) - A value between -99 and +99 (typically) which determines whether a monster is considered "stronger" or "weaker". -99 will make them always run away. +99 *seems to make them always aggressive. 

--------------------------------

--------------------------------

DT_MonsterFieldMovingBounds:

wanderingRadius - 00 00 7A 45 (4000)
float (little endian) - default 00 00 7A 44 (1000)

wanderingMoveDistance - 00 00 FA 44 (2000)
float (little endian) - default 00 00 FA 43 (500)

escapeMoveDistance - (unchanged)
Black Dragon Sequence - 00 00 00 40 (2)
float (little endian) - default 00 80 3B 45 (3000)

rushMoveDistance - 00 B8 88 47 (70000)
Black Dragon Sequence - 00 00 00 40 (2)
float (little endian) - default 2000

chaseRadiusFromFindLocation - 00 50 C3 47 (100000)
Black Dragon Sequence - 00 00 00 40 (2)
float (little endian) - default 3000

chaseRadiusFromPopLocation - 00 50 C3 47 (100000)
Black Dragon Sequence - 00 00 00 40 (2)
float (little endian) - default 5000

chaseRadiusFromFindTargetLocation - 00 50 C3 47 (100000)
Black Dragon Sequence - 00 00 00 40 (2)
float (little endian) - default 4000

Article information

Added on

Edited on

Written by

mike9k1

0 comments