Creator Guide
English
English
  • OVERDARE
    • 🚩Introduction to OVERDARE
    • 🐤Get Started
      • OVERDARE App
      • OVERDARE Studio
    • 📌Policy
      • Community Guidelines
      • UGC Creation Guidelines
      • Guidelines on the External Use of UGC
      • Logo Usage Guidelines
      • Intellectual Property Rights Policy
      • Reporting Guidelines
      • Guidelines on Disputing Suspensions and Bans
      • Creator Payout Policy
      • Monetization Guidelines
    • 🅰️OVERDARE Glossary
  • MANUAL
    • 🏰Studio Manual
      • Get Started
        • Studio Interface
        • World Template
        • Coordinate System
        • Studio Test Play
        • World Publish
        • Collaboration
      • Asset & Resource Creation
        • Asset Import
        • Animation Editor
      • Game Development
        • Game Settings
        • Script Editor
        • Align Tool
        • Material Manager
        • Collision Groups
        • Tag Editor
        • Performance Guide
        • World Performance Analytics
      • Object
        • Part
        • Model
        • Camera
        • Physics
        • Lighting
        • Tool
        • VFX
        • Sound
      • Character
        • Character Animation
        • Humanoid Description
      • GUI
    • 📝Script Manual
      • Get Started
        • Script Overview
        • Basic Guide to Lua
        • Coding Style
        • Object Reference
        • Unity Developer Guide
      • Events & Communication
        • Event
        • Server-Client Communication
        • BindableEvent
        • Value Objects
      • Input & Controls
        • Mobile Input Handling
        • TPS Strafing System
      • Advanced Gameplay Systems
        • Saving & Loading Data
        • Tween
        • Module Script
      • Debugging & Optimization
        • Breakpoint
        • Practical Guide to Script Optimization
    • 💡Creator Reference Materials
      • Game Term Translation Guide for Creators
    • 💸Monetization
      • Payout Guideline
  • DEVELOPMENT
    • 📚API Reference
      • Enums
        • ActuatorRelativeTo
        • AnimationPriority
        • AspectType
        • AssetTypeVerification
        • BorderMode
        • CameraMode
        • CameraType
        • ContextActionResult
        • CoreGuiType
        • DominantAxis
        • EasingDirection
        • EasingStyle
        • ForceLimitMode
        • HttpCompression
        • HttpContentType
        • HumanoidDisplayDistanceType
        • HumanoidStateType
        • KeyCode
        • Material
        • MaterialPattern
        • NormalId
        • ParticleEmitterShape
        • ParticleEmitterShapeInOut
        • ParticleEmitterShapeStyle
        • ParticleFlipbookLayout
        • ParticleFlipbookMode
        • ParticleOrientation
        • PartType
        • PlaybackState
        • RaycastFilterType
        • RollOffMode
        • RotationType
        • UserInputState
        • UserInputType
        • VelocityConstraintMode
      • DataTypes
        • BlendSpaceSampleSata
        • BrickColor
        • CFrame
        • Color3
        • ColorSequence
        • ColorSequenceKeypoint
        • Content
        • Enum
        • EnumItem
        • NumberRange
        • NumberSequence
        • NumberSequenceKeypoint
        • OverlapParams
        • PhysicalProperties
        • Ray
        • RaycastParams
        • RaycastResult
        • ScriptConnection
        • ScriptSignal
        • TweenInfo
        • Udim
        • Udim2
        • Vector2
        • Vector3
      • Classes
        • Animation
        • AngularVelocity
        • AnimationTrack
        • Animator
        • Atmosphere
        • Attachment
        • Backpack
        • BackpackItem
        • BasePart
        • BaseScript
        • Beam
        • BindableEvent
        • BlendSpace
        • BoolValue
        • Bone
        • Camera
        • CharacterMesh
        • CollectionService
        • Constraint
        • ContextActionService
        • CoreGui
        • DataStore
        • DataModel
        • DataStoreGetOptions
        • DataStoreIncrementOptions
        • DataStoreInfo
        • DataStoreKeyPages
        • DataStoreKeyInfo
        • DataStoreService
        • DataStoreListingPages
        • DataStoreSetOptions
        • FormFactorPart
        • Frame
        • Folder
        • GlobalDataStore
        • GuiBase2d
        • GuiButton
        • GuiObject
        • HttpService
        • Humanoid
        • HumanoidDescription
        • ImageButton
        • ImageLabel
        • InputObject
        • IntValue
        • LayerCollector
        • Instance
        • Light
        • Lighting
        • LinearVelocity
        • LocalScript
        • LuaSourceContainer
        • MaterialService
        • MaterialVariant
        • MeshPart
        • Model
        • ModuleScript
        • Mouse
        • NumberValue
        • OrderedDataStore
        • Pages
        • Part
        • ParticleEmitter
        • PhysicsService
        • Player
        • PlayerGui
        • Players
        • PlayerScripts
        • PointLight
        • PVInstance
        • ReplicatedStorage
        • RemoteEvent
        • ScreenGui
        • RunService
        • Script
        • ServerStorage
        • ServiceProvider
        • Skeleton
        • ServerScriptService
        • Sound
        • SoundService
        • SoundGroup
        • SpotLight
        • SpawnLocation
        • StarterCharacterScripts
        • StarterPack
        • StarterGui
        • StarterPlayer
        • StarterPlayerScripts
        • StringValue
        • SurfaceGui
        • SurfaceGuiBase
        • Team
        • Teams
        • TextLabel
        • TextButton
        • Tool
        • Trail
        • Tween
        • TweenService
        • TweenBase
        • UIAspectRatioConstraint
        • UserGameSettings
        • UserInputService
        • UserSettings
        • VectorForce
        • Workspace
        • WrapLayer
        • WorldRoot
        • WrapTarget
  • UPDATE
    • 📰Release Note
Powered by GitBook
On this page
  • Overview
  • How to Use
  • Activate Use Strafing Animations
  • Set the character’s rotation direction based on the camera’s direction
  • Apply Camera Offset
  • Changing the Torso Animation
  • Usage Examples
  • Strafing Animation Assets
  1. MANUAL
  2. Script Manual
  3. Input & Controls

TPS Strafing System

PreviousMobile Input HandlingNextAdvanced Gameplay Systems

Last updated 11 days ago

Overview

The TPS Strafing System is a movement method commonly used in third-person shooter (TPS) games. In this system, the character moves relative to the camera’s direction. The torso stays aligned with the aiming point, while the lower body moves according to the player’s movement direction. This allows the upper and lower body animations to play independently, enabling more flexible aiming and movement control.

How to Use

Activate Use Strafing Animations

After selecting the players in the Level Browser, activate Use Strafing Animations.

When this option is deactivated, the single movement animation will play.

When this option is enabled, animations will play in eight directions (up, down, left, right, and diagonally) based on the character’s movement direction. This allows the character to move naturally in various directions, such as strafing, reversing, and diagonal movement.

When only the Use Strafing Animations option is enabled, the difference may not be visually noticeable. This feature must be used in conjunction with the following settings to fully experience its effects.

Set the character’s rotation direction based on the camera’s direction

Set the RotationType of UserGameSettings to CameraRelative so that the character rotates according to the direction of the camera.

(To restore existing settings, set it to Enum.RotationType.MovementRelative.)

In StarterCharacterScripts, write the following code for LocalScript:

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

repeat wait() until LocalPlayer.Character
local Character = LocalPlayer.Character
local Humanoid = Character:WaitForChild("Humanoid")

local UserGameSettings = UserSettings().GameSettings
UserGameSettings.RotationType = Enum.RotationType.CameraRelative

When the character’s rotation is set to follow the camera (CameraRelative) and the Use Strafing Animations option is enabled, the character will always face the direction of the camera. This setup allows the torso animation to align with the camera (aiming direction), while the lower body animations play independently based on the movement direction.

If RotationType is set to CameraRelative, the character’s rotation speed based on the camera direction can be controlled using the CharacterTurnRateWhenUsingCameraRelative value. (The default value is -1, which means the character will rotate instantly.)

UserGameSettings.CharacterTurnRate = 200

Apply Camera Offset

The camera’s relative position can be adjusted using the CameraOffset attribute. In TPS games, the character is typically positioned slightly off-center to prevent the character from overlapping with the aiming point on the screen.

In StarterCharacterScripts, write the following code for LocalScript:

local Workspace = game:GetService("Workspace")
local Camera = Workspace:WaitForChild("Camera")

Camera.CameraOffset = Vector3.new(90, 90, -120)

Changing the Torso Animation

The character’s torso and lower body animations can be played separately, regardless of the Use Strafing Animations option. If the UpperBodyAnimation attribute is set to “True” in the animation track, the animation will apply only to the torso.

In StarterCharacterScripts, write the following code for LocalScript:

local Animation = Instance.new("Animation")
Animation.AnimationId = "BasicHandgunIdleAnimation"

local Animator = Humanoid:FindFirstChild("Animator")
local AnimationTrack = Animator:LoadAnimation(Animation)
AnimationTrack.UpperBodyAnimation = true
AnimationTrack.Priority = Enum.AnimationPriority.Movement 

AnimationTrack.Looped = true
AnimationTrack:Play()

When Use Strafing Animations and UpperBodyAnimation are used together, the torso follows the aiming direction while the lower body moves according to the movement direction, resulting in more natural and dynamic character animations.

Usage Examples

  • RotationType settings according to whether a gun is equipped

    • When no gun is equipped, it is set to MovementRelative, and the default movement animations are played

    • When a gun is equipped, it switches to CameraRelative to lock the character’s vision

  • RotationType settings according to whether or not the character is aiming when a projectile weapon is equipped

    • When the character is not aiming, it is set to MovementRelative, and the default movement animations are played

    • When the character is aiming, it switches to CameraRelative to lock the character’s vision

  • CameraOffset is processed differently depending on the weapon type

Strafing Animation Assets

If the animation ID is in a numerical format, you must search for the asset by name in the Asset Drawer and place it in the Level Browser to use it in the script. (If it is not placed in the Level Browser, it may load correctly in the Studio but will not load on mobile.)

Animation
Animation Id

BasicWalkForwardAnimation

or

ovdrassetid://14128300

  • Asset Name : BasicWalkAnimations

    • BasicWalkForwardAnimation

BasicWalkLeftAnimation

or

ovdrassetid://14129100

  • Asset Name : BasicWalkAnimations

    • BasicWalkLeftAnimation

BasicWalkForwardLeftAnimation

or

ovdrassetid://14128200

  • Asset Name : BasicWalkAnimations

    • BasicWalkForwardLeftAnimation

BasicWalkForwardRightAnimation

or

ovdrassetid://14129200

  • Asset Name : BasicWalkAnimations

    • BasicWalkForwardRightAnimation

BasicWalkRightAnimation

or

ovdrassetid://14128100

  • Asset Name : BasicWalkAnimations

    • BasicWalkRightAnimation

BasicWalkBackLeftAnimation

or

ovdrassetid://14129400

  • Asset Name : BasicWalkAnimations

    • BasicWalkBackLeftAnimation

BasicWalkBackRightAnimation

or

ovdrassetid://14129300

  • Asset Name : BasicWalkAnimations

    • BasicWalkBackRightAnimation

BasicWalkBackAnimation

or

ovdrassetid://14129500

  • Asset Name : BasicWalkAnimations

    • BasicWalkBackAnimation

BasicRunForwardAnimation

or

ovdrassetid://14035200

  • Asset Name : BasicAnimations

    • BasicRunForwardAnimation

BasicRunLeftAnimation

or

ovdrassetid://14035400

  • Asset Name : BasicAnimations

    • BasicRunLeftAnimation

BasicRunForwardLeftAnimation

or

ovdrassetid://14035300

  • Asset Name : BasicAnimations

    • BasicRunForwardLeftAnimation

BasicRunForwardRightAnimation

or

ovdrassetid://14033500

  • Asset Name : BasicAnimations

    • BasicRunForwardRightAnimation

BasicRunRightAnimation

or

ovdrassetid://14033800

  • Asset Name : BasicAnimations

    • BasicRunRightAnimation

BasicRunBackLeftAnimation

or

ovdrassetid://14033700

  • Asset Name : BasicAnimations

    • BasicRunBackLeftAnimation

BasicRunBackRightAnimation

or

ovdrassetid://14035100

  • Asset Name : BasicAnimations

    • BasicRunBackRightAnimation

BasicRunBackAnimation

or

ovdrassetid://14033600

  • Asset Name : BasicAnimations

    • BasicRunBackAnimation

Animation
Animation Id

ovdrassetid://13322700

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkFowardAnimation

ovdrassetid://13322400

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkLeftFowardAnimation

ovdrassetid://13323000

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkRightFowardAnimation

ovdrassetid://13321800

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkLeftAnimation

ovdrassetid://13322500

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkRightAnimation

ovdrassetid://13321900

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkBackAnimation

ovdrassetid://13321700

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkLeftBackAnimation

ovdrassetid://13321400

  • Asset Name : MeleeMovingAnimations

    • MeleeWalkRightBackAnimation

ovdrassetid://13322800

  • Asset Name : MeleeMovingAnimations

    • MeleeRunFowardAnimation

ovdrassetid://13322600

  • Asset Name : MeleeMovingAnimations

    • MeleeRunLeftFowardAnimation

ovdrassetid://13321500

  • Asset Name : MeleeMovingAnimations

    • MeleeRunRightFowardAnimation

ovdrassetid://13322100

  • Asset Name : MeleeMovingAnimations

    • MeleeRunLeftAnimation

ovdrassetid://13321600

  • Asset Name : MeleeMovingAnimations

    • MeleeRunRightAnimation

ovdrassetid://13322900

  • Asset Name : MeleeMovingAnimations

    • MeleeRunBackAnimation

ovdrassetid://13321200

  • Asset Name : MeleeMovingAnimations

    • MeleeRunLeftBackAnimation

ovdrassetid://13322300

  • Asset Name : MeleeMovingAnimations

    • MeleeRunRightBackAnimation

Animation
Animation Id

ovdrassetid://13335100

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkFowardAnimation

ovdrassetid://13333700

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkLeftFowardAnimation

ovdrassetid://13330300

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkRightFowardAnimation

ovdrassetid://13330400

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkLeftAnimation

ovdrassetid://13333600

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkRightAnimation

ovdrassetid://13330100

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkBackAnimation

ovdrassetid://13333300

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkLeftBackAnimation

ovdrassetid://13335200

  • Asset Name : HandgunMovingAnimations

    • HandgunWalkRightBackAnimation

ovdrassetid://13333400

  • Asset Name : HandgunMovingAnimations

    • HandgunRunFowardAnimation

ovdrassetid://13334100

  • Asset Name : HandgunMovingAnimations

    • HandgunRunLeftFowardAnimation

ovdrassetid://13330200

  • Asset Name : HandgunMovingAnimations

    • HandgunRunRightFowardAnimation

ovdrassetid://13333200

  • Asset Name : HandgunMovingAnimations

    • HandgunRunLeftAnimation

ovdrassetid://13331100

  • Asset Name : HandgunMovingAnimations

    • HandgunRunRightAnimation

ovdrassetid://13333100

  • Asset Name : HandgunMovingAnimations

    • HandgunRunBackAnimation

ovdrassetid://13332100

  • Asset Name : HandgunMovingAnimations

    • HandgunRunLeftBackAnimation

ovdrassetid://13333500

  • Asset Name : HandgunMovingAnimations

    • HandgunRunRightBackAnimation

Animation
Animation Id

ovdrassetid://13354000

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkFowardAnimation

ovdrassetid://13356100

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkLeftFowardAnimation

ovdrassetid://13356600

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkRightFowardAnimation

ovdrassetid://13357500

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkLeftAnimation

ovdrassetid://13356900

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkRightAnimation

ovdrassetid://13356300

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkBackAnimation

ovdrassetid://13356500

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkLeftBackAnimation

ovdrassetid://13356400

  • Asset Name : RifleRunFowardAnimation

    • RifleWalkRightBackAnimation

ovdrassetid://13356700

  • Asset Name : RifleRunFowardAnimation

    • RifleRunFowardAnimation

ovdrassetid://13357300

  • Asset Name : RifleRunFowardAnimation

    • RifleRunLeftFowardAnimation

ovdrassetid://13356200

  • Asset Name : RifleRunFowardAnimation

    • RifleRunRightFowardAnimation

ovdrassetid://13357400

  • Asset Name : RifleRunFowardAnimation

    • RifleRunLeftAnimation

ovdrassetid://13356800

  • Asset Name : RifleRunFowardAnimation

    • RifleRunRightAnimation

ovdrassetid://13357100

  • Asset Name : RifleRunFowardAnimation

    • RifleRunBackAnimation

ovdrassetid://13357600

  • Asset Name : RifleRunFowardAnimation

    • RifleRunLeftBackAnimation

ovdrassetid://13357200

  • Asset Name : RifleRunFowardAnimation

    • RifleRunRightBackAnimation

📝
Deactivate Use Strafing Animations
Activate Use Strafing Animations