OfflineTickSmoother
The Offline Tick Smoother component ensures smooth and visually consistent movement of non-networked objects by interpolating their positions, rotations, and scale between network updates.
Description
The OfflineTickSmoother behaves just like the NetworkTickSmoother, except it initializes it's settings using the InstanceFinder and can thus be placed beneath objects which are not networked. It is responsible for smoothing an offline object's transformation properties between network ticks.
There are several public APIs available for changing the smoother settings at runtime. An example of some are changing adaptive interpolation type, interpolation value, teleporting the smoothed object, and more.
Please review our API for all runtime settings.
Settings

⚙️ Automatically Initialize
This option will configure this smoother in Awake using the InstanceFinder to listen to network callbacks. When false, you must manually call the
Initialize
method on this component.
⚙️ Initialization Settings
These are essential to the component working.
Target Transform is the transform you want to follow. This is commonly the root NetworkObject but may be other nested NetworkBehaviours when using multiple smoothers beneath a single NetworkObject.
Detach On Start when true will unparent the object which the smoother is attached, placing it as root in world space. Detach is commonly used when the smoothed object is a camera target, given cameras do not handle rollback or larger tick steps well.
Attach On Stop when true will reparent the graphical object when the network stop callbacks occur on the object, as detach will unparent on network start callbacks. Typically you want to reattach graphical objects. If the Target Transform is destroyed while detached the object the smoother is attached to will also destroy itself.
⚙️ Smoothing
The Smoothing settings determine how the object is smoothed.
Enable Teleport will allow the graphical object to teleport to it's actual position – also known as the root position – if the position changes are drastic. Ideally you will not need this setting, but it's an available option should you desire to use it.
Teleport Threshold is shown while teleporting is enabled. If the graphical object's position is this many units away from the actual position, then the graphical object will teleport to the actual position.
Adaptive Interpolation, when not disabled, will increase the interpolation amount as the local client's latency becomes higher. Low settings of adaptive interpolation will increase the interpolation at lower amounts, while high will increases the interpolation more. When Adaptive Interpolation is disabled, a flat amount of interpolation will used at all times. Flat interpolation is often used in competitive or reaction based games to keep the interpolation consistent for all players. Flat interpolation is also necessary for accurate collider rollback, given our collider rollback system needs to know the amount of interpolation a client sees to provide accurate raycast hit results. Adaptive interpolation is best used with casual games where you want the absolute smoothed experiences regardless of local client latency.
Interpolation Value is displayed when Adaptive Interpolation is off. This is a flat amount of interpolation that does not increase when the local client's latency does.
Smoothed Properties determines which properties of the transform will be smoothed. If smoothing is not set for a specific property then that particular value will persist in the same world space at all times. For example, if you uncheck Position from Smoothed Properties and move the root, the object which this component sits will never move in space, unless you of course move it manually.
Last updated