Ultima VII Internal Formats - SCHEDULE.DAT

The Ultima VII schedule file is "STATIC\SCHEDULE.DAT". It contains the different schedules that the non-player characters (NPCs) have in the game. This is an introduction to the structure of this file.

Body
Each schedule size is 4 bytes.

See the real X, Y location in cheat mode. SuperChunk Number = (Real-Y / 256) * 12 + (Real-X / 256)
 * X = (Real-X % 256)
 * Y = (Real-Y % 256)
 * *. '%' is the same keyword as in C.

Get them (SuperChunk Number, X, and Y) easily by hex.

The followings are about Schedule number & Match time byte.

7 6  5  4  3  2  1  0 Bit +--+--+--+--+--+--+--+--+  |  |  |  |  |  |  |  |  |   +--+--+--+--+--+--+--+--+    [============] [======]      Schedule num   Match time ( 5 bit )    ( 3 bit )


 * Match time:
 * 000= 0 AM, 100= 0 PM
 * 001= 3 AM, 101= 3 PM
 * 010= 6 AM, 110= 6 PM
 * 011= 9 AM, 111= 9 PM

Schedule num:

The Avatar has no schedule, and each NPC must have at least one schedule. Eight is the max amount for one NPC.

To better understand the above information, run Ultima 7 or Serpent Isle in cheat mode and check the NPC schedule.