# Maglam Lord 1.00 # BID: 3A3C781930CB8201 # WARNING: Enemy Movement Speed is not scaling properly to framerate. At 60 FPS it's multiple times slower, looking like enemies are practically walking in place. unsafeCheck: true 15FPS: # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 # Default is 0x47, bUseFixedFrameRate |= 0x40 # By writing 7 we are making sure that other flags are maintained: # bAllowMultiThreadedAnimationUpdate |= 4 # bOptimizeAnimBlueprintMemberVariableAccess |= 2 # bCanBlueprintsTickByDefault |= 1 value: 7 # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [66.6, 66.6] # t.MaxFPS - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [15, 15] - type: block what: timing 20FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [50, 50] # t.MaxFPS - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [20, 20] - type: block what: timing 25FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [40, 40] # t.MaxFPS - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [25, 25] - type: block what: timing 30FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget (default value) - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [33.3, 33.3] # t.MaxFPS (default value) - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [0, 0] 35FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [28.5, 28.5] # t.MaxFPS - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [35, 35] - type: block what: timing 40FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [25, 25] # t.MaxFPS - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [40, 40] - type: block what: timing 45FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [22.2, 22.2] # t.MaxFPS - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [45, 45] - type: block what: timing 50FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [20, 20] # t.MaxFPS - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [50, 50] - type: block what: timing 55FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [18.1, 18.1] # t.MaxFPS - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [55, 55] - type: block what: timing 60FPS: # Disable bUseFixedFrameRate - type: write address: [MAIN, 0x5F32908, 0x7B8] value_type: uint32 value: 7 # r.DynamicRes.FrameTimeBudget - type: write address: [MAIN, 0x5F086C0, 0] value_type: float value: [16.6, 16.6] # t.MaxFPS (default value) - type: write address: [MAIN, 0x5F331D8, 0] value_type: float value: [0, 0]