Tweaks (Metroid Prime)

The tweaks system allows for easy modification of different game values that would normally be hardcoded. In Metroid Prime, this is handled by the CTWK files located in Tweaks.Pak. The tweaks are loaded on startup. Things that can be modified through the tweaks includes:


 * The amount and type of damage done by each weapon
 * The Hard Mode damage multiplier
 * The field of view
 * The world pak prefix

...and a lot more.

CTWK List
These are all the CTWK files:

Player
{| class="wikitable" ! Offset ! Type ! Description ! Value
 * 0x0
 * float
 * MaxTranslationalAcceleration0
 * 35000.0
 * 0x4
 * float
 * MaxTranslationalAcceleration1
 * 8000.0
 * 0x8
 * float
 * MaxTranslationalAcceleration2
 * 35000.0
 * 0xC
 * float
 * MaxTranslationalAcceleration3
 * 35000.0
 * 0x10
 * float
 * MaxTranslationalAcceleration4
 * 20000.0
 * 0x14
 * float
 * MaxTranslationalAcceleration5
 * 20000.0
 * 0x18
 * float
 * MaxTranslationalAcceleration6
 * 20000.0
 * 0x1C
 * float
 * MaxTranslationalAcceleration7
 * 20000.0
 * 0x20
 * float
 * MaxRotationalAcceleration0
 * 14000.0
 * 0x24
 * float
 * MaxRotationalAcceleration1
 * 14000.0
 * 0x28
 * float
 * MaxRotationalAcceleration2
 * 14000.0
 * 0x2C
 * float
 * MaxRotationalAcceleration3
 * 14000.0
 * 0x30
 * float
 * MaxRotationalAcceleration4
 * 14000.0
 * 0x34
 * float
 * MaxRotationalAcceleration5
 * 14000.0
 * 0x38
 * float
 * MaxRotationalAcceleration6
 * 14000.0
 * 0x3C
 * float
 * MaxRotationalAcceleration7
 * 14000.0
 * 0x40
 * float
 * TranslationFriction0; Ground Translation Friction
 * 1.0
 * 0x44
 * float
 * TranslationFriction1; Air Translation Friction
 * 0.75
 * 0x48
 * float
 * TranslationFriction2
 * 1.0
 * 0x4C
 * float
 * TranslationFriction3
 * 1.0
 * 0x50
 * float
 * TranslationFriction4
 * 1.0
 * 0x54
 * float
 * TranslationFriction5
 * 1.0
 * 0x58
 * float
 * TranslationFriction6
 * 1.0
 * 0x5C
 * float
 * TranslationFriction7
 * 1.0
 * 0x60
 * float
 * RotationFriction0; Ground Rotation Friction
 * 0.44999999
 * 0x64
 * float
 * RotationFriction1; Air Rotation Friction
 * 0.44999999
 * 0x68
 * float
 * RotationFriction2
 * 0.44999999
 * 0x6C
 * float
 * RotationFriction3
 * 0.44999999
 * 0x70
 * float
 * RotationFriction4
 * 0.44999999
 * 0x74
 * float
 * RotationFriction5
 * 0.44999999
 * 0x78
 * float
 * RotationFriction6
 * 0.44999999
 * 0x7C
 * float
 * RotationFriction7
 * 0.44999999
 * 0x80
 * float
 * RotationMaxSpeed0; Ground Rotation Max Speed
 * 2.5
 * 0x84
 * float
 * RotationMaxSpeed1; Air Rotation Max Speed
 * 2.5
 * 0x88
 * float
 * RotationMaxSpeed2
 * 2.5
 * 0x8C
 * float
 * RotationMaxSpeed3
 * 2.5
 * 0x90
 * float
 * RotationMaxSpeed4
 * 2.5
 * 0x94
 * float
 * RotationMaxSpeed5
 * 2.5
 * 0x98
 * float
 * RotationMaxSpeed6
 * 2.5
 * 0x9C
 * float
 * RotationMaxSpeed7
 * 2.5
 * 0xA0
 * float
 * TranslationMaxSpeed0
 * 16.5
 * 0xA4
 * float
 * TranslationMaxSpeed1
 * 16.5
 * 0xA8
 * float
 * TranslationMaxSpeed2
 * 16.5
 * 0xAC
 * float
 * TranslationMaxSpeed3
 * 16.5
 * 0xB0
 * float
 * TranslationMaxSpeed4
 * 12.5
 * 0xB4
 * float
 * TranslationMaxSpeed5
 * 12.5
 * 0xB8
 * float
 * TranslationMaxSpeed6
 * 12.5
 * 0xBC
 * float
 * TranslationMaxSpeed7
 * 12.5
 * 0xC0
 * float
 * NormalGravityAccel
 * -35.0
 * 0xC4
 * float
 * FluidGravityAccel
 * -10.0
 * 0xC8
 * float
 * VerticalJumpAccel
 * 50.0
 * 0xCC
 * float
 * HorizontalJumpAccel
 * 50.0
 * 0xD0
 * float
 * VerticalDoubleJumpAccel
 * 60.0
 * 0xD4
 * float
 * HorizontalDoubleJumpAccel
 * 60.0
 * 0xD8
 * float
 * WaterJumpFactor
 * 0.37
 * 0xDC
 * float
 * WaterBallJumpFactor
 * 0.37
 * 0xE0
 * float
 * LavaJumpFactor
 * 0.37
 * 0xE4
 * float
 * LavaBallJumpFactor
 * 0.37
 * 0xE8
 * float
 * PhazonJumpFactor
 * 0.37
 * 0xEC
 * float
 * PhazonBallJumpFactor
 * 0.37
 * 0xF0
 * float
 * AllowedJumpTime
 * 0.235
 * 0xF4
 * float
 * AllowedDoubleJumpTime
 * 0.1
 * 0xF8
 * float
 * MinDoubleJumpWindow
 * 0.0
 * 0xFC
 * float
 * MaxDoubleJumpWindow
 * 2.0
 * 0x100
 * float
 * Unknown
 * 0.0
 * 0x104
 * float
 * MinJumpTime
 * 0.235
 * 0x108
 * float
 * MinDoubleJumpTime
 * 0.1
 * 0x10C
 * float
 * AllowedLedgeTime
 * 0.050000001
 * 0x110
 * float
 * DoubleJumpImpulse
 * 8.0
 * 0x114
 * float
 * BackwardsForceMultiplier
 * 1.0
 * 0x118
 * float
 * BombJumpRadius
 * 7.9000001
 * 0x11C
 * float
 * BombJumpHeight
 * 1.5
 * 0x120
 * float
 * EyeOffset
 * 0.2
 * 0x124
 * float
 * TurnSpeedMultiplier
 * 1.0
 * 0x128
 * float
 * FreeLookTurnSpeedMultiplier
 * 1.0
 * 0x12C
 * float
 * HorizontalFreeLookAngleVel
 * 100.0
 * 0x130
 * float
 * VerticalFreeLookAngleVel
 * 70.0
 * 0x134
 * float
 * FreeLookSpeed
 * 100.0
 * 0x138
 * float
 * FreeLookSnapSpeed
 * 200.0
 * 0x13C
 * float
 * Unknown
 * 5.0
 * 0x140
 * float
 * FreeLookCenteredThresholdAngle
 * 0.1
 * 0x144
 * float
 * FreeLookCenteredTime
 * 0.25
 * 0x148
 * float
 * FreeLookDampenFactor
 * 80.0
 * 0x14C
 * float
 * LeftDiv
 * 1.0
 * 0x150
 * float
 * RightDiv
 * 1.0
 * 0x154
 * bool
 * FreeLookTurnsPlayer
 * true
 * 0x155
 * bool
 * Unknown
 * true
 * 0x156
 * bool
 * Unknown
 * false
 * 0x157
 * bool
 * MoveDuringFreeLook
 * false
 * 0x158
 * bool
 * HoldButtonsForFreeLook
 * true
 * 0x159
 * bool
 * TwoButtonsForFreeLook
 * false
 * 0x15A
 * bool
 * Unknown
 * false
 * 0x15B
 * bool
 * Unknown
 * false
 * 0x15C
 * bool
 * Unknown
 * true
 * 0x15D
 * bool
 * AimWhenOrbitingPoint
 * true
 * 0x15E
 * bool
 * StayInFreeLookWhileFiring
 * true
 * 0x15F
 * bool
 * Unknown
 * true
 * 0x160
 * bool
 * Unknown
 * false
 * 0x161
 * bool
 * OrbitFixedOffset
 * false
 * 0x162
 * bool
 * GunButtonTogglesHolster
 * false
 * 0x163
 * bool
 * GunNotFiringTogglesHolster
 * true
 * 0x164
 * bool
 * FallingDoubleJump
 * false
 * 0x165
 * bool
 * ImpulseDoubleJump
 * true
 * 0x166
 * bool
 * FiringCancelsCameraPitch
 * true
 * 0x167
 * bool
 * AssistedAimingIgnoreHorizontal
 * true
 * 0x168
 * bool
 * AssistedAimingIgnoreVertical
 * true
 * 0x169
 * float
 * Unknown
 * 0.1
 * 0x16D
 * float
 * Unknown
 * 0.25
 * 0x171
 * float
 * AimMaxDistance
 * 100.0
 * 0x175
 * float
 * Unknown
 * 30.0
 * 0x179
 * float
 * Unknown
 * 30.0
 * 0x17D
 * float
 * Unknown
 * 50.0
 * 0x181
 * float
 * Unknown
 * 60.0
 * 0x185
 * float
 * Unknown
 * 110.0
 * 0x189
 * float
 * AimThresholdDistance
 * 5.0
 * 0x18D
 * float
 * Unknown
 * 360.0
 * 0x191
 * float
 * Unknown
 * 10.0
 * 0x195
 * float
 * AimBoxWidth
 * 20.0
 * 0x199
 * float
 * AimBoxHeight
 * 10.0
 * 0x19D
 * float
 * AimTargetTimer
 * 0.0099999998
 * 0x1A1
 * float
 * AimAssistHorizontalAngle
 * 5.0
 * 0x1A5
 * float
 * AimAssistVerticalAngle
 * 5.0
 * 0x1A9
 * float
 * OrbitMinDistance0
 * 27.0
 * 0x1AD
 * float
 * OrbitNormalDistance0
 * 75.0
 * 0x1B1
 * float
 * OrbitMaxDistance0
 * 100.0
 * 0x1B5
 * float
 * OrbitMinDistance1
 * 27.0
 * 0x1B9
 * float
 * OrbitNormalDistance1
 * 75.0
 * 0x1BD
 * float
 * OrbitMaxDistance1
 * 100.0
 * 0x1C1
 * float
 * OrbitMinDistance2
 * 2.5
 * 0x1C5
 * float
 * OrbitNormalDistance2
 * 75.0
 * 0x1C9
 * float
 * OrbitMaxDistance2
 * 100.0
 * 0x1CD
 * float
 * Unknown
 * 360.0
 * 0x1D1
 * float
 * OrbitModeTimer
 * 0.2
 * 0x1D5
 * float
 * OrbitCameraSpeed
 * 360.0
 * 0x1D9
 * float
 * OrbitUpperAngle
 * 70.0
 * 0x1DD
 * float
 * OrbitLowerAngle
 * 70.0
 * 0x1E1
 * float
 * OrbitHorizAngle
 * 45.0
 * 0x1E5
 * float
 * Unknown
 * 25.0
 * 0x1E9
 * float
 * Unknown
 * 25.0
 * 0x1ED
 * float
 * OrbitMaxTargetDistance
 * 100.0
 * 0x1F1
 * float
 * OrbitMaxLockDistance
 * 100.0
 * 0x1F5
 * float
 * OrbitDistanceThreshold
 * 2.0
 * 0x1F9
 * int
 * OrbitScreenBoxHalfExtentX0
 * 180
 * 0x1FD
 * int
 * OrbitScreenBoxHalfExtentY0
 * 180
 * 0x201
 * int
 * OrbitScreenBoxCenterX0
 * 320
 * 0x205
 * int
 * OrbitScreenBoxCenterY0
 * 224
 * 0x209
 * int
 * OrbitZoneIdealX0
 * 320
 * 0x20D
 * int
 * OrbitZoneIdealY0
 * 224
 * 0x211
 * int
 * OrbitScreenBoxHalfExtentX1
 * 126
 * 0x215
 * int
 * OrbitScreenBoxHalfExtentY1
 * 44
 * 0x219
 * int
 * OrbitScreenBoxCenterX1
 * 320
 * 0x21D
 * int
 * OrbitScreenBoxCenterY1
 * 224
 * 0x221
 * int
 * OrbitZoneIdealX1
 * 320
 * 0x225
 * int
 * OrbitZoneIdealY1
 * 224
 * 0x229
 * float
 * OrbitNearX
 * 20.0
 * 0x22D
 * float
 * OrbitNearZ
 * 10.0
 * 0x231
 * float
 * Unknown
 * 3.0
 * 0x235
 * float
 * Unknown
 * 6.0
 * 0x239
 * float
 * OrbitFixedOffsetZDiff
 * 0.2
 * 0x23D
 * float
 * OrbitZRange
 * 0.2
 * 0x241
 * float
 * Unknown
 * 5.0
 * 0x245
 * float
 * Unknown
 * 90.0
 * 0x249
 * float
 * Unknown
 * 2.0
 * 0x24D
 * float
 * OrbitPreventionTime
 * 2.0
 * 0x251
 * bool
 * DashEnabled
 * true
 * 0x252
 * bool
 * DashOnButtonRelease
 * true
 * 0x253
 * float
 * DashButtonHoldCancelTime
 * 0.30000001
 * 0x257
 * float
 * DashStrafeInputThreshold
 * 0.40000001
 * 0x25B
 * float
 * SidewaysDoubleJumpImpulse
 * 8.0
 * 0x25F
 * float
 * SidewaysVerticalDoubleJumpAccel
 * 5.0
 * 0x263
 * float
 * SidewaysHorizontalDoubleJumpAccel
 * 50.0
 * 0x267
 * float
 * ScanningRange
 * 50.0
 * 0x26B
 * bool
 * ScanRetention
 * true
 * 0x26C
 * bool
 * ScanFreezesGame
 * true
 * 0x26D
 * bool
 * OrbitWhileScanning
 * true
 * 0x26E
 * float
 * ScanMaxTargetDistance
 * 100.0
 * 0x272
 * float
 * ScanMaxLockDistance
 * 100.0
 * 0x276
 * float
 * OrbitDistanceMax
 * 25.0
 * 0x27A
 * float
 * GrappleSwingLength
 * 10.0
 * 0x27E
 * float
 * GrappleSwingPeriod
 * 3.3
 * 0x282
 * float
 * GrapplePullSpeedMin
 * 23.0
 * 0x286
 * float
 * GrappleCameraSpeed
 * 90.0
 * 0x28A
 * float
 * MaxGrappleLockedTurnAlignDistance
 * 0.5
 * 0x28E
 * float
 * GrapplePullSpeedProportion
 * 2.0
 * 0x292
 * float
 * GrapplePullSpeedMax
 * 30.0
 * 0x296
 * float
 * GrappleLookCenterSpeed
 * 90.0
 * 0x29A
 * float
 * MaxGrappleTurnSpeed
 * 35.0
 * 0x29E
 * float
 * GrappleJumpForce
 * 13.0
 * 0x2A2
 * float
 * GrappleReleaseTime
 * 1.0
 * 0x2A6
 * int
 * GrappleJumpMode
 * 2
 * 0x2AA
 * bool
 * OrbitReleaseBreaksGrapple
 * true
 * 0x2AB
 * bool
 * InvertGrappleTurn
 * true
 * 0x2AC
 * float
 * GrappleBeamSpeed
 * 30.0
 * 0x2B0
 * float
 * GrappleBeamXWaveAmplitude
 * 0.25
 * 0x2B4
 * float
 * GrappleBeamZWaveAmplitude
 * 0.125
 * 0x2B8
 * float
 * GrappleBeamAnglePhaseDelta
 * 0.875
 * 0x2BC
 * float
 * PlayerHeight
 * 2.7
 * 0x2C0
 * float
 * PlayerXYHalfExtent
 * 0.5
 * 0x2C4
 * float
 * StepUpHeight
 * 1.0
 * 0x2C8
 * float
 * StepDownHeight
 * 0.80000001
 * 0x2CC
 * float
 * PlayerBallHalfExtent
 * 0.69999999
 * 0x2D0
 * float
 * FirstPersonCameraSpeed
 * 60.0
 * 0x2D4
 * float
 * Unknown
 * 0.0
 * 0x2D8
 * float
 * JumpCameraPitchDownStart
 * 0.1
 * 0x2DC
 * float
 * JumpCameraPitchDownFull
 * 4.0
 * 0x2E0
 * float
 * JumpCameraPitchDownAngle
 * 73.0
 * 0x2E4
 * float
 * FallCameraPitchDownStart
 * 0.30000001
 * 0x2E8
 * float
 * FallCameraPitchDownFull
 * 4.0
 * 0x2EC
 * float
 * FallCameraPitchDownAngle
 * 73.0
 * 0x2F0
 * float
 * Unknown
 * 2.0
 * 0x2F4
 * float
 * Unknown
 * 1.5
 * 0x2F8
 * float
 * Unknown
 * 0.5
 * 0x2FC
 * bool
 * Unknown
 * true
 * 0x2FD
 * float
 * FrozenTimeout
 * 18.0
 * 0x301
 * int
 * IceBreakJumpCount
 * 4
 * 0x305
 * float
 * VariaDamageReduction
 * 0.1
 * 0x309
 * float
 * GravityDamageReduction
 * 0.2
 * 0x30D
 * float
 * PhazonDamageReduction
 * 0.5
 * bool
 * OrbitWhileScanning
 * true
 * 0x26E
 * float
 * ScanMaxTargetDistance
 * 100.0
 * 0x272
 * float
 * ScanMaxLockDistance
 * 100.0
 * 0x276
 * float
 * OrbitDistanceMax
 * 25.0
 * 0x27A
 * float
 * GrappleSwingLength
 * 10.0
 * 0x27E
 * float
 * GrappleSwingPeriod
 * 3.3
 * 0x282
 * float
 * GrapplePullSpeedMin
 * 23.0
 * 0x286
 * float
 * GrappleCameraSpeed
 * 90.0
 * 0x28A
 * float
 * MaxGrappleLockedTurnAlignDistance
 * 0.5
 * 0x28E
 * float
 * GrapplePullSpeedProportion
 * 2.0
 * 0x292
 * float
 * GrapplePullSpeedMax
 * 30.0
 * 0x296
 * float
 * GrappleLookCenterSpeed
 * 90.0
 * 0x29A
 * float
 * MaxGrappleTurnSpeed
 * 35.0
 * 0x29E
 * float
 * GrappleJumpForce
 * 13.0
 * 0x2A2
 * float
 * GrappleReleaseTime
 * 1.0
 * 0x2A6
 * int
 * GrappleJumpMode
 * 2
 * 0x2AA
 * bool
 * OrbitReleaseBreaksGrapple
 * true
 * 0x2AB
 * bool
 * InvertGrappleTurn
 * true
 * 0x2AC
 * float
 * GrappleBeamSpeed
 * 30.0
 * 0x2B0
 * float
 * GrappleBeamXWaveAmplitude
 * 0.25
 * 0x2B4
 * float
 * GrappleBeamZWaveAmplitude
 * 0.125
 * 0x2B8
 * float
 * GrappleBeamAnglePhaseDelta
 * 0.875
 * 0x2BC
 * float
 * PlayerHeight
 * 2.7
 * 0x2C0
 * float
 * PlayerXYHalfExtent
 * 0.5
 * 0x2C4
 * float
 * StepUpHeight
 * 1.0
 * 0x2C8
 * float
 * StepDownHeight
 * 0.80000001
 * 0x2CC
 * float
 * PlayerBallHalfExtent
 * 0.69999999
 * 0x2D0
 * float
 * FirstPersonCameraSpeed
 * 60.0
 * 0x2D4
 * float
 * Unknown
 * 0.0
 * 0x2D8
 * float
 * JumpCameraPitchDownStart
 * 0.1
 * 0x2DC
 * float
 * JumpCameraPitchDownFull
 * 4.0
 * 0x2E0
 * float
 * JumpCameraPitchDownAngle
 * 73.0
 * 0x2E4
 * float
 * FallCameraPitchDownStart
 * 0.30000001
 * 0x2E8
 * float
 * FallCameraPitchDownFull
 * 4.0
 * 0x2EC
 * float
 * FallCameraPitchDownAngle
 * 73.0
 * 0x2F0
 * float
 * Unknown
 * 2.0
 * 0x2F4
 * float
 * Unknown
 * 1.5
 * 0x2F8
 * float
 * Unknown
 * 0.5
 * 0x2FC
 * bool
 * Unknown
 * true
 * 0x2FD
 * float
 * FrozenTimeout
 * 18.0
 * 0x301
 * int
 * IceBreakJumpCount
 * 4
 * 0x305
 * float
 * VariaDamageReduction
 * 0.1
 * 0x309
 * float
 * GravityDamageReduction
 * 0.2
 * 0x30D
 * float
 * PhazonDamageReduction
 * 0.5
 * float
 * Unknown
 * 2.0
 * 0x2F4
 * float
 * Unknown
 * 1.5
 * 0x2F8
 * float
 * Unknown
 * 0.5
 * 0x2FC
 * bool
 * Unknown
 * true
 * 0x2FD
 * float
 * FrozenTimeout
 * 18.0
 * 0x301
 * int
 * IceBreakJumpCount
 * 4
 * 0x305
 * float
 * VariaDamageReduction
 * 0.1
 * 0x309
 * float
 * GravityDamageReduction
 * 0.2
 * 0x30D
 * float
 * PhazonDamageReduction
 * 0.5
 * float
 * GravityDamageReduction
 * 0.2
 * 0x30D
 * float
 * PhazonDamageReduction
 * 0.5
 * 0.5