# Installation (/docs/orbit-studios-resources/orbit-dynamichud-addons)



# Installation [#installation]

`orbit-dynamichud-addons` is a standalone seatbelt and cruise control resource adapted for `orbit-dynamichud`. It uses `ox_lib` keybinds, locale files, DynamicHUD notifications, and client state bags.

<Callout type="warn" title="Support note">
  This addon is adapted from QBX GPL resources and is provided as-is. Keep the GPL attribution and license with the resource if you redistribute or modify it.
</Callout>

Install this resource when you want Orbit's seatbelt and cruise-control states to feed directly into DynamicHUD. If your server already has seatbelt or cruise control, you can skip this addon and instead make your existing resource set the same state bags described in the exports page.

<Cards>
  <Card title="Dependencies" description="Required ox_lib and DynamicHUD dependency notes." href="/docs/orbit-studios-resources/orbit-dynamichud-addons/dependencies" />

  <Card title="Configuration" description="Keybinds, seatbelt thresholds, cruise control, harness behavior, and notifications." href="/docs/orbit-studios-resources/orbit-dynamichud-addons/configuration" />

  <Card title="Exports and Events" description="State bags, toggle events, and the deprecated HasHarness export." href="/docs/orbit-studios-resources/orbit-dynamichud-addons/exports-and-events" />

  <Card title="Language Support" description="Available locale files and ox_lib locale setup." href="/docs/orbit-studios-resources/orbit-dynamichud-addons/language-support" />

  <Card title="Troubleshooting" description="Fix keybind, notification, cruise, and HUD state issues." href="/docs/orbit-studios-resources/orbit-dynamichud-addons/troubleshooting" />
</Cards>

## File Structure [#file-structure]

<Files>
  <Folder name="resources">
    <Folder name="[orbit]">
      <Folder name="orbit-dynamichud" />

      <Folder name="orbit-dynamichud-addons">
        <File name="fxmanifest.lua" />

        <File name="config.lua" />

        <Folder name="client">
          <File name="cruise.lua" />

          <File name="seatbelt.lua" />
        </Folder>

        <Folder name="server">
          <File name="server.lua" />
        </Folder>

        <Folder name="locales">
          <File name="en.json" />
        </Folder>

        <Folder name="audiodirectory">
          <File name="seatbelt_sounds.awc" />
        </Folder>

        <Folder name="data">
          <File name="seatbelt_sounds.dat54.rel" />
        </Folder>
      </Folder>
    </Folder>
  </Folder>
</Files>

## What You Edit [#what-you-edit]

Most configuration lives in `resources/[orbit]/orbit-dynamichud-addons/config.lua`. This is where you change keybinds, enable or disable cruise and seatbelt behavior, adjust crash thresholds, and replace the notification function if you do not want to use `orbit-dynamichud:notify`.

## Installation [#installation-1]

```properties title="server.cfg"
ensure ox_lib
ensure orbit-lib
ensure orbit-dynamichud
ensure orbit-dynamichud-addons
```

After installing, sit in the driver seat and toggle the seatbelt key once. DynamicHUD should react to `LocalPlayer.state.seatbelt`. Then start driving forward and test the cruise key from the driver seat.

## Framework Notes [#framework-notes]

<Tabs groupId="framework" items="['ESX', 'QB', 'QBX', 'Standalone']">
  <Tab value="ESX">
    The addon is framework-light. Keep the DynamicHUD notification bridge or replace it with your ESX notification wrapper.
  </Tab>

  <Tab value="QB">
    The addon is isolated from QB/QBX core requirements. If you use a custom harness system, update `LocalPlayer.state.harness`.
  </Tab>

  <Tab value="QBX">
    The source is adapted from QBX seatbelt and cruise resources, but normal QBX startup requirements were removed.
  </Tab>

  <Tab value="Standalone">
    The addon does not require framework player data. Keep `ox_lib` started before it and use `Config.Notify` if you need to replace the DynamicHUD notification event.
  </Tab>
</Tabs>
