This page covers weapon recoil, recovery, controller recoil, and camera shake settings.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Kinemation","colors":{"primary":"#6B4FE8","light":"#EDE9FB","dark":"#2D1F7A"},"logo":{"light":"https://mintcdn.com/kinemation/Oe4SC8lqotg2knLA/images/Kinemation_Logo_Circle.svg?fit=max\u0026auto=format\u0026n=Oe4SC8lqotg2knLA\u0026q=85\u0026s=6a2a2b50270f33282685e0eeb7466c37","dark":"https://mintcdn.com/kinemation/Oe4SC8lqotg2knLA/images/Kinemation_Logo_Circle.svg?fit=max\u0026auto=format\u0026n=Oe4SC8lqotg2knLA\u0026q=85\u0026s=6a2a2b50270f33282685e0eeb7466c37"},"favicon":{"light":"https://mintcdn.com/kinemation/Oe4SC8lqotg2knLA/images/Kinemation_Logo_Circle.svg?fit=max\u0026auto=format\u0026n=Oe4SC8lqotg2knLA\u0026q=85\u0026s=6a2a2b50270f33282685e0eeb7466c37","dark":"https://mintcdn.com/kinemation/Oe4SC8lqotg2knLA/images/Kinemation_Logo_Circle.svg?fit=max\u0026auto=format\u0026n=Oe4SC8lqotg2knLA\u0026q=85\u0026s=6a2a2b50270f33282685e0eeb7466c37"},"navbar":{"links":[],"primary":{"type":"github","href":"https://github.com/kinemation"}},"footer":{"socials":{"youtube":"https://www.youtube.com/@kinemationstudio","discord":"https://discord.gg/kinemation-1027338787958816860"}},"integrations":{"ga4":{"measurementId":"G-QPSE9FYEMW"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kinemation","hasAudioNarration":false,"actualSubdomain":"kinemation","customDomains":["docs.kinemation.xyz"],"gitSource":{"type":"github","owner":"kinemation","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6abcfc36f7750a5210d4458c","collectionId":"058922f7-88f7-47d5-b7de-4bce5dd58764","liveDeploymentHistoryId":"6abcfc36f7750a5210d4458c","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6abcfc36f7750a5210d4458c","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"Character Animation System","count":66},{"language":"default","tag":"Unreal Engine","count":55},{"language":"default","tag":"Unity","count":53},{"language":"default","tag":"Scriptable Animation System","count":45},{"language":"default","tag":"Sci-Fi FPS Pack","count":41},{"language":"default","tag":"Tactical Shooter Pack","count":38},{"language":"default","tag":"Tutorials","count":30},{"language":"default","tag":"FPS Animation Pack","count":30},{"language":"default","tag":"Core systems","count":27},{"language":"default","tag":"Fundamentals","count":26}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@kinemation.xyz"}},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"main :is(img, video){display:block;max-width:min(var(--kinemation-image-max-width),100%);height:auto;margin-inline:auto}main .frame{max-width:min(var(--kinemation-image-max-width),100%);margin-inline:auto}main .frame :is(img, video){max-width:100%}:root{--kinemation-image-max-width:75%;--kinemation-callout-text-light:#4b5563;--kinemation-callout-text-dark:#f3f4f6}[data-component-part=callout-content]{color:var(--kinemation-callout-text-light)!important}html.dark [data-component-part=callout-content]{color:var(--kinemation-callout-text-dark)!important}"}],"page":{"pagePath":"sci-fi-fps-pack/unreal/general/recoil","slug":"/sci-fi-fps-pack/unreal/general/recoil","pageMetadata":{"title":"Recoil","sidebarTitle":"🔸 Recoil","description":"This page covers weapon recoil, recovery, controller recoil, and camera shake settings.","href":"/sci-fi-fps-pack/unreal/general/recoil"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"This page covers weapon recoil, recovery, controller recoil, and camera shake settings.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const Recoil=({intro,weaponIntegration,integrationImage,generalImageCaption,generalImage,inputImageCaption,inputImage,curvesImageCaption,curvesImage,smoothingImageCaption,smoothingImage,controllerImageCaption,controllerImage,noiseImage,pushbackImage,progressImage,swayImage,example})=>{const{Frame}=_provideComponents()||{};if(!Frame)_missingMdxReference(`Frame`,true);return _jsxs(_Fragment,{children:[_jsx(`p`,{children:intro}),_jsx(`p`,{children:`Recoil has three visible effects: the weapon kicks and recovers, the player's aim can climb, and the camera can shake. The weapon view triggers these when a shot fires. The settings let you tune each effect separately.`}),_jsxs(`p`,{children:[`The character's `,_jsx(`code`,{children:`AC_RecoilAnimation`}),` generates the weapon motion from a `,_jsx(`code`,{children:`DA_RecoilData`}),` asset. The animation graph applies its `,_jsx(`code`,{children:`RecoilAnimation`}),` transform to the weapon and hands. Controller recoil adds look rotation, while the camera component plays the selected shake.`]}),_jsx(`h2`,{id:`connect-the-component`,children:`Connect the component`}),_jsx(`p`,{children:weaponIntegration}),_jsxs(`table`,{children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{children:`Call`}),_jsx(`th`,{children:`When to call it`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`Init(NewRecoilData, Firerate)`})}),_jsx(`td`,{children:`When a weapon becomes active. Supply its recoil asset and fire rate in rounds per minute.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`SetAiming(IsAiming)`})}),_jsx(`td`,{children:`When entering or leaving ADS.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`SetFireMode(NewFireMode)`})}),_jsx(`td`,{children:`When changing semi, burst, or auto mode.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`Play`})}),_jsx(`td`,{children:`On a firing event.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`Stop`})}),_jsx(`td`,{children:`When firing stops.`})]})]})]}),_jsxs(`p`,{children:[`The weapon controls ammunition and shot timing. The recoil component controls motion. Feed `,_jsx(`code`,{children:`RecoilAnimation`}),` into the weapon/hand pose processing; the procedural graph already connects the pack's recoil.`]}),integrationImage,_jsx(`h2`,{id:`general-settings`,children:`General settings`}),_jsx(Frame,{caption:generalImageCaption,children:generalImage}),_jsxs(`table`,{children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{children:`Property`}),_jsx(`th`,{children:`Effect`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`CameraShake`})}),_jsx(`td`,{children:`Camera shake asset used for firing feedback.`})]}),_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`HipPivotOffset`}),` / `,_jsx(`code`,{children:`AimPivotOffset`})]}),_jsx(`td`,{children:`Pivot offset for hip and aimed recoil. Moving the pivot changes the arc of the kick.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`SpaceRotation`})}),_jsx(`td`,{children:`Reorients recoil to match the animation's axes.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`Playrate`})}),_jsx(`td`,{children:`Recoil playback speed multiplier.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`PlaybackOffset`})}),_jsx(`td`,{children:`Adjusts playback timing for repeated shots.`})]})]})]}),_jsxs(`p`,{children:[`Keep the orientation when changing recoil strength. Changing `,_jsx(`code`,{children:`SpaceRotation`}),` changes the direction of the motion.`]}),_jsx(`h2`,{id:`hip-and-aim-inputs`,children:`Hip and aim inputs`}),_jsx(Frame,{caption:inputImageCaption,children:inputImage}),_jsx(`p`,{children:`The component chooses hip or aim inputs from the current aiming state.`}),_jsxs(`table`,{children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{children:`Input`}),_jsx(`th`,{children:`Effect`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`PitchHip`}),` / `,_jsx(`code`,{children:`PitchAim`})]}),_jsx(`td`,{children:`Pitch range.`})]}),_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`YawHip`}),` / `,_jsx(`code`,{children:`YawAim`})]}),_jsx(`td`,{children:`Yaw ranges stored as four values.`})]}),_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`RollHip`}),` / `,_jsx(`code`,{children:`RollAim`})]}),_jsx(`td`,{children:`Roll ranges stored as four values.`})]}),_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`KickHip`}),` / `,_jsx(`code`,{children:`KickAim`})]}),_jsx(`td`,{children:`Forward/back kick range.`})]}),_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`KickHipR`}),` / `,_jsx(`code`,{children:`KickAimR`})]}),_jsx(`td`,{children:`Right-axis kick range.`})]}),_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`KickHipUp`}),` / `,_jsx(`code`,{children:`KickUpAim`})]}),_jsx(`td`,{children:`Up-axis kick range.`})]})]})]}),_jsxs(`p`,{children:[`Two-value inputs are random ranges. Yaw and roll use two ranges, `,_jsx(`code`,{children:`X–Y`}),` and `,_jsx(`code`,{children:`Z–W`}),`, so a shot can kick to either side without selecting values close to zero.`]}),_jsx(`h2`,{id:`curves`,children:`Curves`}),_jsx(Frame,{caption:curvesImageCaption,children:curvesImage}),_jsxs(`p`,{children:[_jsx(`code`,{children:`F_RecoilCurves`}),` contains `,_jsx(`code`,{children:`SingleRot`}),`, `,_jsx(`code`,{children:`SingleLoc`}),`, `,_jsx(`code`,{children:`AutoRot`}),`, and `,_jsx(`code`,{children:`AutoLoc`}),`. Rotation and location use separate Vector Curves.`]}),_jsx(`p`,{children:`The single pair shapes individual shots. The auto pair shapes repeated firing; burst and auto share this recoil path. Match these curves to the weapon's fire rate so recovery and the next shot blend as intended.`}),_jsx(`h2`,{id:`smoothing`,children:`Smoothing`}),_jsx(Frame,{caption:smoothingImageCaption,children:smoothingImage}),_jsxs(`ul`,{children:[_jsx(`li`,{children:_jsxs(`p`,{children:[_jsx(`code`,{children:`SmoothRot`}),` and `,_jsx(`code`,{children:`SmoothLoc`}),` control per-axis interpolation speed.`]})}),_jsx(`li`,{children:_jsxs(`p`,{children:[_jsx(`code`,{children:`MultiRot`}),` and `,_jsx(`code`,{children:`MultiLoc`}),` scale the resulting rotation and translation.`]})}),_jsx(`li`,{children:_jsxs(`p`,{children:[_jsx(`code`,{children:`bSmoothRoll`}),` controls roll smoothing.`]})})]}),_jsx(`p`,{children:`Start with the multipliers when adjusting overall strength. Change curves when you want a different shape or recovery.`}),_jsx(`h2`,{id:`controller-recoil`,children:`Controller recoil`}),_jsx(Frame,{caption:controllerImageCaption,children:controllerImage}),_jsxs(`p`,{children:[_jsx(`code`,{children:`F_ControllerRecoil`}),` adds look-rotation feedback:`]}),_jsxs(`table`,{children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{children:`Property`}),_jsx(`th`,{children:`Effect`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`HorizontalRecoilStep`})}),_jsx(`td`,{children:`Random horizontal input per shot.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`VerticalRecoilStep`})}),_jsx(`td`,{children:`Random vertical input per shot.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`InterpSpeed`})}),_jsx(`td`,{children:`Per-axis response speed.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`Damping`})}),_jsx(`td`,{children:`Recovery speed.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`Compensation`})}),_jsx(`td`,{children:`How much player input compensates for recoil.`})]})]})]}),_jsx(`p`,{children:`This changes the controller's aim. Tune it independently from the visible weapon kick.`}),_jsx(`h2`,{id:`noise`,children:`Noise`}),noiseImage,_jsxs(`p`,{children:[_jsx(`code`,{children:`F_RecoilNoise`}),` adds variation in right/up movement. `,_jsx(`code`,{children:`Target`}),` sets the per-shot strength, `,_jsx(`code`,{children:`InterpSpeed`}),` smooths the response, and `,_jsx(`code`,{children:`Damping`}),` controls recovery. `,_jsx(`code`,{children:`AimScalar`}),` scales the layer while aiming.`]}),_jsx(`h2`,{id:`pushback`,children:`Pushback`}),pushbackImage,_jsxs(`p`,{children:[_jsx(`code`,{children:`F_RecoilPushback`}),` adds sustained backward displacement during repeated firing. `,_jsx(`code`,{children:`Amount`}),` sets the displacement, `,_jsx(`code`,{children:`InterpSpeed`}),` controls its response, and `,_jsx(`code`,{children:`Damping`}),` controls its return.`]}),_jsx(`h2`,{id:`progress`,children:`Progress`}),progressImage,_jsxs(`p`,{children:[_jsx(`code`,{children:`F_RecoilProgress`}),` accumulates pitch and upward movement across shots. Each channel has an `,_jsx(`code`,{children:`Amount`}),`, `,_jsx(`code`,{children:`InterpSpeed`}),`, and `,_jsx(`code`,{children:`Damping`}),`: `,_jsx(`code`,{children:`PitchAmount`}),`, `,_jsx(`code`,{children:`PitchInterpSpeed`}),`, `,_jsx(`code`,{children:`PitchDamping`}),`, `,_jsx(`code`,{children:`UpAmount`}),`, `,_jsx(`code`,{children:`UpInterpSpeed`}),`, and `,_jsx(`code`,{children:`UpDamping`}),`. `,_jsx(`code`,{children:`AdsScale`}),` reduces or increases the layer while aiming.`]}),_jsx(`h2`,{id:`sway`,children:`Sway`}),swayImage,_jsxs(`p`,{children:[_jsx(`code`,{children:`F_RecoilSway`}),` adds arm-like movement while firing. It is separate from movement and aiming sway in the animation settings.`]}),_jsxs(`table`,{children:[_jsx(`thead`,{children:_jsxs(`tr`,{children:[_jsx(`th`,{children:`Property`}),_jsx(`th`,{children:`Effect`})]})}),_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`PitchSway`}),` / `,_jsx(`code`,{children:`YawSway`})]}),_jsx(`td`,{children:`Random pitch and yaw contribution.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`RollSwayMultiplier`})}),_jsx(`td`,{children:`Roll derived from the pitch sway.`})]}),_jsxs(`tr`,{children:[_jsxs(`td`,{children:[_jsx(`code`,{children:`Damping`}),` / `,_jsx(`code`,{children:`InterpSpeed`})]}),_jsx(`td`,{children:`Recovery and response speed.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`AdsScale`})}),_jsx(`td`,{children:`Strength while aiming.`})]}),_jsxs(`tr`,{children:[_jsx(`td`,{children:_jsx(`code`,{children:`PivotOffset`})}),_jsx(`td`,{children:`Pivot used to turn the sway rotation into movement.`})]})]})]}),_jsx(`h2`,{id:`try-a-change`,children:`Try a change`}),example,_jsx(`p`,{children:`Test single shots, a sustained burst, aiming, and releasing fire. The weapon should recover without snapping or continuing to kick after firing ends.`})]})};const Example=()=>_jsxs(`p`,{children:[`Duplicate `,_jsx(`code`,{children:`RD_Gepard`}),` from `,_jsx(`code`,{children:`Blueprints/Recoil/Gepard`}),` and assign it through a copy of `,_jsx(`code`,{children:`SAS_Gepard`}),`. Its hip pitch range is `,_jsx(`code`,{children:`1–1.2`}),`, compared with `,_jsx(`code`,{children:`0.3–0.6`}),` while aiming. Reduce the hip range and compare firing from the hip with firing through the sights.`]});function _createMdxContent(props){const _components={img:`img`,..._provideComponents(),...props.components},{Frame,_MdxComponentBoundary}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsx(_MdxComponentBoundary,{name:`Recoil`,children:_jsx(Recoil,{intro:`Each Sci-Fi weapon selects its own recoil data through its animation settings. Open the Recoil Data reference in a SAS_ asset to adjust that weapon.`,weaponIntegration:`The weapon view forwards fire, stop, aiming, and fire-mode changes to AC_RecoilAnimation. Keep those calls together when extending the view.`,integrationImage:_jsx(Frame,{caption:`The weapon view triggers recoil with the shot.`,children:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/-Xb9vtQBgywM0dwu/images/shooter-core/unreal/AC_WeaponView_OnFire_00000.png?fit=max\u0026auto=format\u0026n=-Xb9vtQBgywM0dwu\u0026q=85\u0026s=82e7ec1a17bc44ed35c39d6461d2e9aa`,alt:`The weapon view triggers recoil with the shot.`})}),generalImageCaption:`General recoil settings.`,generalImage:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_General.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=e2e53f4a1a566d6d75683a09cef498cc`,alt:`Camera shake, pivot, orientation, and playback settings`}),inputImageCaption:`Separate hip and aim input ranges.`,inputImage:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_Input_Aim_Hip.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=476160905a0d9a11db1ac45024089d94`,alt:`Hip and aim recoil ranges`}),curvesImageCaption:`Rotation and location curves for single and automatic firing.`,curvesImage:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_Curves.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=3fb8cb78fc243c83f4041a997cbe421d`,alt:`SingleRot, SingleLoc, AutoRot, and AutoLoc curve assignments`}),smoothingImageCaption:`Per-axis smoothing and strength.`,smoothingImage:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_Smoothing.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=89f3cdb4ea4f389916a7de395eb27930`,alt:`Recoil smoothing and multipliers`}),controllerImageCaption:`Controller recoil changes aim rotation.`,controllerImage:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_ControllerRecoil.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=09ef95a001d8fe2e276d0b3573660df9`,alt:`Controller recoil step, interpolation, damping, and compensation settings`}),noiseImage:_jsx(Frame,{caption:`Noise adds variation to the kick.`,children:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_RecoilNoise.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=71012ed91e88b0ea025583a821f2fafc`,alt:`Noise adds variation to the kick.`})}),pushbackImage:_jsx(Frame,{caption:`Pushback adds displacement during repeated shots.`,children:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_Pushback.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=8ea7b719d81e6c63ca47d82c4fa45128`,alt:`Pushback adds displacement during repeated shots.`})}),progressImage:_jsx(Frame,{caption:`Progress accumulates pitch and upward movement.`,children:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_Progress.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=9a993c0b63908fb32573c6b41ef1ba98`,alt:`Progress accumulates pitch and upward movement.`})}),swayImage:_jsx(Frame,{caption:`Recoil sway adds rotation around a configurable pivot.`,children:_jsx(_components.img,{src:`https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/RecoilDataAsset_RecoilSway.png?fit=max\u0026auto=format\u0026n=UM_aaEsISgGp3gjD\u0026q=85\u0026s=bfb507b6506bd1db998eef20ad2a9842`,alt:`Recoil sway adds rotation around a configurable pivot.`})}),example:_jsx(Example,{})})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{Recoil,Example,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Recoil","sidebarTitle":"🔸 Recoil","description":"This page covers weapon recoil, recovery, controller recoil, and camera shake settings.","href":"/sci-fi-fps-pack/unreal/general/recoil"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[19,69,"jsx:_jsx}=arguments["],[142,11458,")=>null;const Example=()=>null;function "]]},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"kinemation","siteName":"Kinemation","title":"Recoil - Kinemation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-12T16:15:06.979Z","originalFileLocation":"sci-fi-fps-pack/unreal/general/recoil.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"This page covers weapon recoil, recovery, controller recoil, and camera shake settings.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kinemation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Recoil - Kinemation\">\u003cmeta data-mint-head property=\"og:description\" content=\"This page covers weapon recoil, recovery, controller recoil, and camera shake settings.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kinemation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kinemation.mintlify.app/_mintlify/api/og/v2?division=General\u0026amp;title=Recoil\u0026amp;description=This+page+covers+weapon+recoil%2C+recovery%2C+controller+recoil%2C+and+camera+shake+settings.\u0026amp;theme=d385265a4ecff8c3e0b74bf5\u0026amp;signature=92f795a0791acbbb854d1af4a0c93793d95bba35c742683013b8a29fd14a551d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Recoil - Kinemation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This page covers weapon recoil, recovery, controller recoil, and camera shake settings.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kinemation.mintlify.app/_mintlify/api/og/v2?division=General\u0026amp;title=Recoil\u0026amp;description=This+page+covers+weapon+recoil%2C+recovery%2C+controller+recoil%2C+and+camera+shake+settings.\u0026amp;theme=d385265a4ecff8c3e0b74bf5\u0026amp;signature=92f795a0791acbbb854d1af4a0c93793d95bba35c742683013b8a29fd14a551d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kinemation/gXWNzvMHcmAcDlK_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kinemation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6B4FE8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sci-fi-fps-pack/unreal/general/recoil.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kinemation.xyz/#organization\",\"name\":\"Kinemation\",\"url\":\"https://docs.kinemation.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kinemation/Oe4SC8lqotg2knLA/images/Kinemation_Logo_Circle.svg?fit=max\u0026auto=format\u0026n=Oe4SC8lqotg2knLA\u0026q=85\u0026s=6a2a2b50270f33282685e0eeb7466c37\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kinemation.xyz#website\",\"name\":\"Kinemation\",\"url\":\"https://docs.kinemation.xyz\",\"publisher\":{\"@id\":\"https://docs.kinemation.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil#webpage\",\"url\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil\",\"name\":\"Recoil\",\"description\":\"This page covers weapon recoil, recovery, controller recoil, and camera shake settings.\",\"dateModified\":\"2026-09-12T16:15:06.979Z\",\"isPartOf\":{\"@id\":\"https://docs.kinemation.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Unreal Engine\",\"item\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/get-started/installation\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"General\",\"item\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/character\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Recoil\",\"item\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil#article\",\"headline\":\"Recoil\",\"name\":\"Recoil\",\"description\":\"This page covers weapon recoil, recovery, controller recoil, and camera shake settings.\",\"url\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kinemation.xyz/sci-fi-fps-pack/unreal/general/recoil#webpage\"},\"dateModified\":\"2026-09-12T16:15:06.979Z\",\"publisher\":{\"@id\":\"https://docs.kinemation.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kinemation.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kinemation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kinemation","nav":{"global":null,"products":[{"product":"Character Animation System","pages":[{"title":"Character Animation System","href":"/cas/welcome"}]},{"product":"Motion Warping","pages":[{"title":"Motion Warping","href":"/mw/welcome"}]},{"product":"Retarget Pro","pages":[{"title":"Retarget Pro","href":"/retarget-pro/welcome"}]},{"product":"Tactical Shooter Pack","pages":[{"title":"Tactical Shooter Pack","href":"/tactical-shooter-pack/unreal/welcome"}]},{"product":"FPS Animation Pack","pages":[{"title":"FPS Animation Pack","href":"/fps-animation-pack/unreal/welcome"}]},{"product":"PRAS","pages":[{"title":"PRAS","href":"/pras/welcome"}]},{"product":"Magic Blend","pages":[{"title":"Magic Blend","href":"/magic-blend/readme"}]},{"product":"Scriptable Animation System","pages":[{"title":"Scriptable Animation System","href":"/scriptable-animation-system/welcome"}]},{"product":"Sci-Fi FPS Pack","pages":[{"title":"👋Welcome","sidebarTitle":"👋Welcome","href":"/sci-fi-fps-pack/welcome"},{"group":"Unreal Engine","pages":[{"group":"Get started","pages":[{"title":"Installation","sidebarTitle":"🔹 Installation","href":"/sci-fi-fps-pack/unreal/get-started/installation"},{"title":"Content overview","sidebarTitle":"🔹 Content overview","href":"/sci-fi-fps-pack/unreal/get-started/content-overview"},{"title":"Character setup","sidebarTitle":"🔸 Character setup","href":"/sci-fi-fps-pack/unreal/get-started/character-setup"},{"title":"Making adjustments","sidebarTitle":"🔸 Making adjustments","href":"/sci-fi-fps-pack/unreal/get-started/making-adjustments"}]},{"group":"Tutorials","pages":[{"title":"Animation setup","sidebarTitle":"🔸 Animation setup","href":"/sci-fi-fps-pack/unreal/tutorials/animation-setup"},{"title":"Project integration","sidebarTitle":"🔹 Project integration","href":"/sci-fi-fps-pack/unreal/tutorials/project-integration"},{"title":"Create a weapon","sidebarTitle":"🔹 Create a weapon","href":"/sci-fi-fps-pack/unreal/tutorials/create-a-weapon"}]},{"group":"General","pages":[{"title":"Character","sidebarTitle":"🔹 Character","href":"/sci-fi-fps-pack/unreal/general/character"},{"title":"Items and weapons","sidebarTitle":"🔹 Items and weapons","href":"/sci-fi-fps-pack/unreal/general/items-and-weapons"},{"title":"Visual effects","sidebarTitle":"🔹 Visual effects","href":"/sci-fi-fps-pack/unreal/general/visual-effects"},{"title":"Gameplay animation","sidebarTitle":"🔸 Gameplay animation","href":"/sci-fi-fps-pack/unreal/general/gameplay-animation"},{"title":"Animation settings","sidebarTitle":"🔸 Animation settings","href":"/sci-fi-fps-pack/unreal/general/animation-settings"},{"title":"First-person camera","sidebarTitle":"🔸 First-person camera","href":"/sci-fi-fps-pack/unreal/general/first-person-camera"},{"title":"IK motion","sidebarTitle":"🔸 IK motion","description":"This page explains how to adjust IK motions for aiming, fire modes, and ready poses.","href":"/sci-fi-fps-pack/unreal/general/ik-motion"},{"title":"Recoil","sidebarTitle":"🔸 Recoil","href":"/sci-fi-fps-pack/unreal/general/recoil"},{"group":"Notifies","pages":[{"title":"Play sound","sidebarTitle":"🔸 Play sound","description":"This page explains how to play sounds at specific points in an animation.","href":"/sci-fi-fps-pack/unreal/general/animation-notifies/play-sound"},{"title":"Set bone visibility","sidebarTitle":"🔸 Set bone visibility","href":"/sci-fi-fps-pack/unreal/general/animation-notifies/set-bone-visibility"},{"title":"Reload weapon","sidebarTitle":"🔸 Reload weapon","href":"/sci-fi-fps-pack/unreal/general/animation-notifies/reload-weapon"},{"title":"Spawn casing","sidebarTitle":"🔸 Spawn casing","href":"/sci-fi-fps-pack/unreal/general/animation-notifies/spawn-casing"}]},{"group":"Modifiers","pages":[{"title":"Bone motion extractor","sidebarTitle":"🔸 Bone motion extractor","href":"/sci-fi-fps-pack/unreal/general/animation-modifiers/bone-motion-extractor"},{"title":"Camera motion extractor","sidebarTitle":"🔸 Camera motion extractor","href":"/sci-fi-fps-pack/unreal/general/animation-modifiers/camera-motion-extractor"},{"title":"Copy curves","sidebarTitle":"🔸 Copy curves","href":"/sci-fi-fps-pack/unreal/general/animation-modifiers/copy-curves"}]}]}]},{"group":"Unity","pages":[{"group":"Get started","pages":[{"title":"💻 Installation","sidebarTitle":"💻 Installation","href":"/sci-fi-fps-pack/unity/get-started/installation"},{"title":"📖 Content overview","sidebarTitle":"📖 Content overview","href":"/sci-fi-fps-pack/unity/get-started/content-overview"},{"title":"🏃 Character setup","sidebarTitle":"🏃 Character setup","href":"/sci-fi-fps-pack/unity/get-started/character-setup"},{"title":"Making adjustments","sidebarTitle":"🔸 Making adjustments","href":"/sci-fi-fps-pack/unity/get-started/making-adjustments"}]},{"group":"General","pages":[{"title":"🔸 Animation system","sidebarTitle":"🔸 Animation system","href":"/sci-fi-fps-pack/unity/general/animation-system"},{"group":"🔸 Procedural animation","root":{"title":"Procedural animation","sidebarTitle":"Procedural animation","href":"/sci-fi-fps-pack/unity/general/features/index"},"pages":[{"title":"◻️Viewmodel offset","sidebarTitle":"◻️Viewmodel offset","href":"/sci-fi-fps-pack/unity/general/features/viewmodel-offset"},{"title":"◻️ADS","sidebarTitle":"◻️ADS","href":"/sci-fi-fps-pack/unity/general/features/ads"},{"title":"◻️Procedural additives","sidebarTitle":"◻️Procedural additives","href":"/sci-fi-fps-pack/unity/general/features/procedural-additives"},{"title":"◻️Sway","sidebarTitle":"◻️Sway","href":"/sci-fi-fps-pack/unity/general/features/sway"},{"title":"◻️Aim offset","sidebarTitle":"◻️Aim offset","href":"/sci-fi-fps-pack/unity/general/features/aim-offset"}]},{"title":"Item View","sidebarTitle":"🔹 Item View","href":"/sci-fi-fps-pack/unity/general/item-views"},{"title":"Weapons","sidebarTitle":"🔹 Weapons","href":"/sci-fi-fps-pack/unity/general/weapon-runtime"},{"title":"Character","sidebarTitle":"🔹 Character","href":"/sci-fi-fps-pack/unity/general/character-runtime"}]},{"group":"Tools","pages":[{"title":"🛠️Animation Clip Sampler","sidebarTitle":"🛠️Animation Clip Sampler","href":"/sci-fi-fps-pack/unity/tools/animation-clip-sampler"},{"title":"🛠️Copy Bone","sidebarTitle":"🛠️Copy Bone","href":"/sci-fi-fps-pack/unity/tools/copy-bone"},{"title":"🛠️FBX Exporter","sidebarTitle":"🛠️FBX Exporter","href":"/sci-fi-fps-pack/unity/tools/fbx-exporter"},{"title":"🛠️Modify Avatar Mask","sidebarTitle":"🛠️Modify Avatar Mask","href":"/sci-fi-fps-pack/unity/tools/modify-avatar-mask"},{"title":"🛠️Update Packages","sidebarTitle":"🛠️Update Packages","href":"/sci-fi-fps-pack/unity/tools/update-packages"}]}]}]}]},"title":"Recoil - Kinemation","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":[],"chunks":[]}