Skip to content


This event is called when an actor’s movement speed is calculated. The event allows modification of this value, to dehardcode actor movement speeds. Invoked after all other movement speed events are finished.

The movement event flow is described below:

--- @param e calcMoveSpeedEventData
local function calcMoveSpeedCallback(e)
event.register(tes3.event.calcMoveSpeed, calcMoveSpeedCallback)


An event can be claimed by setting e.claim to true, or by returning false from the callback. Claiming the event prevents any lower priority callbacks from being called.

Event Data⚓︎

  • mobile (tes3mobileActor): Read-only. The mobile actor whose speed is being calculated.
  • reference (tes3reference): Read-only. mobile’s related reference.
  • speed (number): The previous speed calculated, starting with the base engine values.
  • type (number): Read-only. The type of movement that was calculated. This is always 0 for this event.


Example: 20% Faster Player Movement

local function onCalcMoveSpeed(e)
    if (e.reference == tes3.player) then
        e.speed = e.speed * 1.2
event.register(tes3.event.calcMoveSpeed, onCalcMoveSpeed)