diff --git a/404.html b/404.html index d309f1506..eca61fc4e 100644 --- a/404.html +++ b/404.html @@ -3,7 +3,7 @@ - + @@ -27,11 +27,11 @@ - + - + - +
diff --git a/api/client/api/index.html b/api/client/api/index.html index db757d0c4..449c1fd6c 100644 --- a/api/client/api/index.html +++ b/api/client/api/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/client/client-api-usage/index.html b/api/client/client-api-usage/index.html index a2c2c09b5..0f3b1534f 100644 --- a/api/client/client-api-usage/index.html +++ b/api/client/client-api-usage/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/client/controllers/interaction/index.html b/api/client/controllers/interaction/index.html index c45005759..4152abf66 100644 --- a/api/client/controllers/interaction/index.html +++ b/api/client/controllers/interaction/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/client/menus/native-menu/index.html b/api/client/menus/native-menu/index.html index b1f0f02ff..b4bf668eb 100644 --- a/api/client/menus/native-menu/index.html +++ b/api/client/menus/native-menu/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/client/screen/instructional-menu/index.html b/api/client/screen/instructional-menu/index.html index a94f21b8e..e235b9817 100644 --- a/api/client/screen/instructional-menu/index.html +++ b/api/client/screen/instructional-menu/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/client/system/notification/index.html b/api/client/system/notification/index.html index 4efad478f..72ed155b5 100644 --- a/api/client/system/notification/index.html +++ b/api/client/system/notification/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/client/system/useproxyfetch/index.html b/api/client/system/useproxyfetch/index.html index 68af94d47..275c2aa03 100644 --- a/api/client/system/useproxyfetch/index.html +++ b/api/client/system/useproxyfetch/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/client/webview/index.html b/api/client/webview/index.html index a37eb63df..c07610cbb 100644 --- a/api/client/webview/index.html +++ b/api/client/webview/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/api/plugin-api/index.html b/api/server/api/plugin-api/index.html index 5a2f2590c..4629867a2 100644 --- a/api/server/api/plugin-api/index.html +++ b/api/server/api/plugin-api/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/config/index.html b/api/server/config/index.html index 3849c82a9..788478854 100644 --- a/api/server/config/index.html +++ b/api/server/config/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/controllers/blip/index.html b/api/server/controllers/blip/index.html index f5a60aa59..60bd23975 100644 --- a/api/server/controllers/blip/index.html +++ b/api/server/controllers/blip/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
diff --git a/api/server/controllers/interaction/index.html b/api/server/controllers/interaction/index.html index bea4d839a..db7db10b8 100644 --- a/api/server/controllers/interaction/index.html +++ b/api/server/controllers/interaction/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/controllers/marker/index.html b/api/server/controllers/marker/index.html index 4cd1a506c..714bde9d8 100644 --- a/api/server/controllers/marker/index.html +++ b/api/server/controllers/marker/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
diff --git a/api/server/controllers/object/index.html b/api/server/controllers/object/index.html index c020b2d6f..e2a19ad24 100644 --- a/api/server/controllers/object/index.html +++ b/api/server/controllers/object/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
diff --git a/api/server/controllers/peds/index.html b/api/server/controllers/peds/index.html index 4dd5207eb..256afbb5f 100644 --- a/api/server/controllers/peds/index.html +++ b/api/server/controllers/peds/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/controllers/pickups/index.html b/api/server/controllers/pickups/index.html index 923e381d8..511b5795b 100644 --- a/api/server/controllers/pickups/index.html +++ b/api/server/controllers/pickups/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
diff --git a/api/server/controllers/progressbar/index.html b/api/server/controllers/progressbar/index.html index 3375d2ab5..13766b73d 100644 --- a/api/server/controllers/progressbar/index.html +++ b/api/server/controllers/progressbar/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
diff --git a/api/server/controllers/textlabel/index.html b/api/server/controllers/textlabel/index.html index e413982e7..43e960679 100644 --- a/api/server/controllers/textlabel/index.html +++ b/api/server/controllers/textlabel/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
diff --git a/api/server/controllers/worldmenu/index.html b/api/server/controllers/worldmenu/index.html index 6dd8c25e2..5864cca6d 100644 --- a/api/server/controllers/worldmenu/index.html +++ b/api/server/controllers/worldmenu/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
diff --git a/api/server/database/usage/index.html b/api/server/database/usage/index.html index 817f39c23..83c03ae5b 100644 --- a/api/server/database/usage/index.html +++ b/api/server/database/usage/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/document/document-account/index.html b/api/server/document/document-account/index.html index 301419885..0d0988765 100644 --- a/api/server/document/document-account/index.html +++ b/api/server/document/document-account/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/document/document-character/index.html b/api/server/document/document-character/index.html index bdca7072c..4f3e42136 100644 --- a/api/server/document/document-character/index.html +++ b/api/server/document/document-character/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/document/document-global/index.html b/api/server/document/document-global/index.html index cf8feade6..d4a96c049 100644 --- a/api/server/document/document-global/index.html +++ b/api/server/document/document-global/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/document/document-vehicle/index.html b/api/server/document/document-vehicle/index.html index d5e5bb18f..8b05e457c 100644 --- a/api/server/document/document-vehicle/index.html +++ b/api/server/document/document-vehicle/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/document/document-virtual/index.html b/api/server/document/document-virtual/index.html index 447742c18..717f87760 100644 --- a/api/server/document/document-virtual/index.html +++ b/api/server/document/document-virtual/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/document/what-are-documents/index.html b/api/server/document/what-are-documents/index.html index 340abf7c9..110c08cc3 100644 --- a/api/server/document/what-are-documents/index.html +++ b/api/server/document/what-are-documents/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
diff --git a/api/server/events/index.html b/api/server/events/index.html index 6c026b4d3..133acea7c 100644 --- a/api/server/events/index.html +++ b/api/server/events/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/getters/getters-player/index.html b/api/server/getters/getters-player/index.html index 5bec43dd5..ad0d9e3a1 100644 --- a/api/server/getters/getters-player/index.html +++ b/api/server/getters/getters-player/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/getters/getters-players/index.html b/api/server/getters/getters-players/index.html index 9dfb8022e..1118fe30e 100644 --- a/api/server/getters/getters-players/index.html +++ b/api/server/getters/getters-players/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/getters/getters-vehicle/index.html b/api/server/getters/getters-vehicle/index.html index 7e43c8f75..b6579162b 100644 --- a/api/server/getters/getters-vehicle/index.html +++ b/api/server/getters/getters-vehicle/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/getters/getters-vehicles/index.html b/api/server/getters/getters-vehicles/index.html index cb71e1fb6..2495ee026 100644 --- a/api/server/getters/getters-vehicles/index.html +++ b/api/server/getters/getters-vehicles/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/getters/getters-world/index.html b/api/server/getters/getters-world/index.html index 77c607875..f5f077ddb 100644 --- a/api/server/getters/getters-world/index.html +++ b/api/server/getters/getters-world/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/player/player-use/index.html b/api/server/player/player-use/index.html index e5629ea28..159144dfa 100644 --- a/api/server/player/player-use/index.html +++ b/api/server/player/player-use/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
@@ -506,7 +506,11 @@

// Spawns a vehicle, and creates a camera to take a 'perfect' screenshot of a vehicle // outputs under 'screenshots/infernus.jpg' -await rPlayer.screenshot.takeVehicleScreenshot(player, player.pos, 'infernus', alt.hash('infernus')); +await rPlayer.screenshot.takeVehicleScreenshot(player, player.pos, 'infernus', alt.hash('infernus')); + +// Spawns a weapon, forces the player into an animation, takes the screenshot +// outputs under 'screenshots/weapon_pistol50.jpg' +await rPlayer.screenshot.takeWeaponScreenshot(player, 'weapon_pistol50');

diff --git a/api/server/server-api-usage/index.html b/api/server/server-api-usage/index.html index 333428ae6..88c090e3b 100644 --- a/api/server/server-api-usage/index.html +++ b/api/server/server-api-usage/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/systems/messenger/index.html b/api/server/systems/messenger/index.html index d0618e24f..80b8bcfd1 100644 --- a/api/server/systems/messenger/index.html +++ b/api/server/systems/messenger/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/systems/usekeybinder/index.html b/api/server/systems/usekeybinder/index.html index 19bf9d1c4..3e3aa2d52 100644 --- a/api/server/systems/usekeybinder/index.html +++ b/api/server/systems/usekeybinder/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/systems/useproxyfetch/index.html b/api/server/systems/useproxyfetch/index.html index 51f183a38..818bf72c5 100644 --- a/api/server/systems/useproxyfetch/index.html +++ b/api/server/systems/useproxyfetch/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/systems/useserverconfig/index.html b/api/server/systems/useserverconfig/index.html index a99e509c2..952282df8 100644 --- a/api/server/systems/useserverconfig/index.html +++ b/api/server/systems/useserverconfig/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/systems/useservertime/index.html b/api/server/systems/useservertime/index.html index 0f8bcbee6..5e59710d6 100644 --- a/api/server/systems/useservertime/index.html +++ b/api/server/systems/useservertime/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/systems/useserverweather/index.html b/api/server/systems/useserverweather/index.html index 1b89f064f..244d2bcb7 100644 --- a/api/server/systems/useserverweather/index.html +++ b/api/server/systems/useserverweather/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/utility/clothes/index.html b/api/server/utility/clothes/index.html index 0216178c9..32d38a043 100644 --- a/api/server/utility/clothes/index.html +++ b/api/server/utility/clothes/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/utility/protect-callback/index.html b/api/server/utility/protect-callback/index.html index 8eeea7d67..34a0eed72 100644 --- a/api/server/utility/protect-callback/index.html +++ b/api/server/utility/protect-callback/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/utility/rate-limit-callback/index.html b/api/server/utility/rate-limit-callback/index.html index 931640742..309485d34 100644 --- a/api/server/utility/rate-limit-callback/index.html +++ b/api/server/utility/rate-limit-callback/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/server/vehicle/vehicle-use/index.html b/api/server/vehicle/vehicle-use/index.html index 40fd57be6..431ce647d 100644 --- a/api/server/vehicle/vehicle-use/index.html +++ b/api/server/vehicle/vehicle-use/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/api/shared/utility/index.html b/api/shared/utility/index.html index 5a2f33693..1483870e0 100644 --- a/api/shared/utility/index.html +++ b/api/shared/utility/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
diff --git a/changelog/index.html b/changelog/index.html index de516513f..660cfcd1f 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -3,7 +3,7 @@ - + @@ -11,7 +11,7 @@ Changelog - + @@ -20,21 +20,21 @@ - + - + - + - + - +
@@ -191,10 +191,10 @@

Changelog

- +

- # - Version 35 + # + Version 36

@@ -204,7 +204,7 @@

    -
  • Added screenshot utility for taking screenshot of vehicle
  • +
  • Added screenshot utility for weapons

@@ -213,6 +213,31 @@

    +
  • Added weapon screenshot doc
  • +
+
+ +

+ # + Version 35 +

+
+ +

+ # + Code Changes +

+
+
    +
  • Added screenshot utility for taking screenshot of vehicle
  • +
+ +

+ # + Docs Changes +

+
+
  • Documented screenshot utility

@@ -222,9 +247,9 @@

Version 34

- +

- # + # Code Changes

@@ -242,9 +267,9 @@

  • Modify getByAccount and getByCharacter to also take numbers for their id getter
  • Change vehicle getByDatabaseId to byId('_id');
  • - +

    - # + # Docs Changes

    @@ -261,9 +286,9 @@

    Version 33

    - +

    - # + # Code Changes

    @@ -276,9 +301,9 @@

    - +

    - # + # Docs Changes

    @@ -292,9 +317,9 @@

    Version 32

    - +

    - # + # Code Changes

    @@ -302,9 +327,9 @@

  • Added function to attach blips to entities, because alt:V's one is broken
  • Additionally, when a blip or the entity becomes invalid the blip is automatically destroyed.
  • - +

    - # + # Docs Changes

    @@ -318,9 +343,9 @@

    Version 31

    - +

    - # + # Code Changes

    @@ -329,9 +354,9 @@

  • Fixed issue with local progress bars not clearing
  • Fixed issue with gif files not being copied correctly
  • - +

    - # + # Docs Changes

    @@ -345,9 +370,9 @@

    Version 30

    - +

    - # + # Code Changes

    @@ -358,9 +383,9 @@

    - +

    - # + # Docs Changes

    @@ -374,9 +399,9 @@

    Version 29

    - +

    - # + # Code Changes

    @@ -384,9 +409,9 @@

  • Custom rmlui get distributed to resources/rmlui/plugins folder
  • Additionally html files act as rmlui and are converted into rmlui during the compile process
  • - +

    - # + # Docs Changes

    @@ -400,9 +425,9 @@

    Version 28

    - +

    - # + # Code Changes

    @@ -417,9 +442,9 @@

  • Fix vehicle stop server config bug, flag was incorrect
  • Added server configs for disabling prop knockoff, cover, drivebys, and scuba gear removal
  • - +

    - # + # Docs Changes

    @@ -435,9 +460,9 @@

    Version 27

    - +

    - # + # Code Changes

    @@ -450,9 +475,9 @@

  • Added RebarEvent for page open and page close on server-side
  • - +

    - # + # Docs Changes

    @@ -467,9 +492,9 @@

    Version 26

    - +

    - # + # Code Changes

    @@ -480,9 +505,9 @@

  • Added useWorldMenu controller for building quick selection menus
  • Fixed bug where keybinds could be invoked if certain menus were open
  • - +

    - # + # Docs Changes

    @@ -498,9 +523,9 @@

    Version 25

    - +

    - # + # Code Changes

    @@ -511,9 +536,9 @@

  • Added toggle controls to usePlayer().world to control controls state
  • Fixed small bug where hotkeys could be invoked when game controls are disabled
  • - +

    - # + # Docs Changes

    @@ -529,9 +554,9 @@

    Version 24

    - +

    - # + # Code Changes

    @@ -540,9 +565,9 @@

  • Added useKeybinder to bind hotkeys from server-side, enabling users to call from their client
  • Adjusted world space checker to delay by 100ms before checking, fixing colshape creation times
  • - +

    - # + # Docs Changes

    @@ -557,18 +582,18 @@

    Version 23

    - +

    - # + # Code Changes

    • Added Draggable Component to WebView
    - +

    - # + # Docs Changes

    @@ -576,9 +601,9 @@

  • Added Draggable to webview/components section with an example on making draggables
  • Added Draggable Component to WebView
  • - +

    - # + # Docs Changes

    @@ -592,9 +617,9 @@

    Version 22

    - +

    - # + # Code Changes

    @@ -603,9 +628,9 @@

  • Added onEnter and onLeave to interaction callbacks
  • Added disablePistolWhip to useServerConfig that prevents pistol whipping one-hits
  • - +

    - # + # Docs Changes

    @@ -631,9 +656,9 @@

    Version 20

    - +

    - # + # Code Changes

    @@ -644,9 +669,9 @@

  • Added debug option to raycast functions to draw lines when a raycast is invoked
  • Added useServerConfig to change what HUD elements, and other on screen elements a player sees
  • - +

    - # + # Docs Changes

    @@ -662,9 +687,9 @@

    Version 19

    - +

    - # + # Code Changes

    @@ -673,9 +698,9 @@

  • Added function to add named models to list at runtime as well
  • Added neon synchronization to vehicle document sync
  • - +

    - # + # Docs Changes

    @@ -689,9 +714,9 @@

    Version 18

    - +

    - # + # Code Changes

    @@ -744,9 +769,9 @@

    - +

    - # + # Docs Changes

    @@ -763,9 +788,9 @@

    Version 17

    - +

    - # + # Code Changes

    @@ -775,9 +800,9 @@

  • Fixed character interface not being extended correctly
  • Added preinstall script to download binaries, and build codebase once
  • - +

    - # + # Docs Changes

    @@ -791,9 +816,9 @@

    Version 16

    - +

    - # + # Code Changes

    @@ -801,9 +826,9 @@

  • Added @Composables path alias
  • Added @Plugins path alias
  • - +

    - # + # Docs Changes

    @@ -817,9 +842,9 @@

    Version 15

    - +

    - # + # Code Changes

    @@ -832,9 +857,9 @@

    - +

    - # + # Docs Changes

    @@ -848,9 +873,9 @@

    Version 14

    - +

    - # + # Code Changes

    @@ -862,9 +887,9 @@

  • Added emitClientRpc to Webview to retrieve data from client-side.
  • - +

    - # + # Docs Changes

    @@ -878,9 +903,9 @@

    Version 13

    - +

    - # + # Code Changes

    @@ -888,9 +913,9 @@

  • Updated upgrade script to prevent overwriting tailwind config, or vite config
  • Added useLocalStorage composable for getting / storing data
  • - +

    - # + # Docs Changes

    @@ -904,9 +929,9 @@

    Version 12

    - +

    - # + # Code Changes

    @@ -915,9 +940,9 @@

  • Improved compile times, and added docker build support to package.json scripts
  • Fixed linux based errors
  • - +

    - # + # Docs Changes

    @@ -932,9 +957,9 @@

    Version 11

    - +

    - # + # Code Changes

    @@ -943,9 +968,9 @@

  • Automatically create default collections on startup
  • Added rebar:upgrade script to get the latest code changes for Rebar
  • - +

    - # + # Docs Changes

    @@ -961,9 +986,9 @@

    Version 10

    - +

    - # + # Code Changes

    @@ -976,9 +1001,9 @@

    - +

    - # + # Docs Changes

    @@ -993,9 +1018,9 @@

    Version 9

    - +

    - # + # Code Changes

    @@ -1011,9 +1036,9 @@

    Version 8

    - +

    - # + # Code Changes

    @@ -1027,9 +1052,9 @@

    - +

    - # + # Docs Changes

    @@ -1045,9 +1070,9 @@

    Version 7

    - +

    - # + # Code Changes

    @@ -1055,9 +1080,9 @@

  • Added useMinimap composable to get minimap positional data in the Webview
  • Added custom message type when emitting messages to prevent formatting
  • - +

    - # + # Docs Changes

    @@ -1071,9 +1096,9 @@

    Version 6

    - +

    - # + # Code Changes

    @@ -1107,9 +1132,9 @@

  • Changed all update() functions to sync and added backwards compatible update function
  • Split Character into BaseCharacter and Character, nothing changed externally
  • - +

    - # + # Docs Changes

    @@ -1130,9 +1155,9 @@

    Version 5

    - +

    - # + # Code Changes

    @@ -1150,9 +1175,9 @@

  • Fixed small bug with case-sensitive commands
  • Fixed bug that allowed sending messages when a character was not bound
  • - +

    - # + # Docs Changes

    @@ -1168,9 +1193,9 @@

    Version 4

    - +

    - # + # Code Changes

    @@ -1185,9 +1210,9 @@

    Version 3

    - +

    - # + # Code Changes

    @@ -1201,9 +1226,9 @@

    Version 2

    - +

    - # + # Code Changes

    @@ -1217,9 +1242,9 @@

    Version 1

    - +

    - # + # Code Changes

    @@ -1237,9 +1262,9 @@

  • Added sendMessage to the useNotify player composable
  • - +

    - # + # Docs Changes

    diff --git a/code-examples/index.html b/code-examples/index.html index 378bb52ac..9dc180016 100644 --- a/code-examples/index.html +++ b/code-examples/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/console-commands/index.html b/console-commands/index.html index ef5f8e080..f594e0d73 100644 --- a/console-commands/index.html +++ b/console-commands/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/data/controls/index.html b/data/controls/index.html index 618310dd4..6380225a6 100644 --- a/data/controls/index.html +++ b/data/controls/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/data/explosions/index.html b/data/explosions/index.html index 0ce035c2e..8dca30975 100644 --- a/data/explosions/index.html +++ b/data/explosions/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/data/frontend-sounds/index.html b/data/frontend-sounds/index.html index eea1b224c..a13aa3e22 100644 --- a/data/frontend-sounds/index.html +++ b/data/frontend-sounds/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/data/ped-bones/index.html b/data/ped-bones/index.html index 4fcdd6e45..247c3187c 100644 --- a/data/ped-bones/index.html +++ b/data/ped-bones/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/data/pickups/index.html b/data/pickups/index.html index 77ed90f96..49940cd58 100644 --- a/data/pickups/index.html +++ b/data/pickups/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/data/vehicle-bones/index.html b/data/vehicle-bones/index.html index e0ab54be4..6efd9fd9b 100644 --- a/data/vehicle-bones/index.html +++ b/data/vehicle-bones/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/data/vehicle-colors/index.html b/data/vehicle-colors/index.html index 5052bf3ff..35d3e44cf 100644 --- a/data/vehicle-colors/index.html +++ b/data/vehicle-colors/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/data/vehicle-mods/index.html b/data/vehicle-mods/index.html index 18191461b..6dcb325a5 100644 --- a/data/vehicle-mods/index.html +++ b/data/vehicle-mods/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/data/weather/index.html b/data/weather/index.html index 4da942a02..a6998e7f4 100644 --- a/data/weather/index.html +++ b/data/weather/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/faq/index.html b/faq/index.html index 94812f691..ef250fde2 100644 --- a/faq/index.html +++ b/faq/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/index.html b/index.html index b728cf679..a0c157a91 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/install/index.html b/install/index.html index f3baaa6e6..b555ba910 100644 --- a/install/index.html +++ b/install/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/plugins/structure/index.html b/plugins/structure/index.html index 260b3392e..f9e20afc7 100644 --- a/plugins/structure/index.html +++ b/plugins/structure/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
    diff --git a/plugins/what-is-a-plugin/index.html b/plugins/what-is-a-plugin/index.html index 0e5b67e9f..846ee6308 100644 --- a/plugins/what-is-a-plugin/index.html +++ b/plugins/what-is-a-plugin/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/resources/js/config.js b/resources/js/config.js index 105620c10..336d52f53 100644 --- a/resources/js/config.js +++ b/resources/js/config.js @@ -1 +1 @@ -var __DOCS_CONFIG__ = {"id":"131+1+cvD2P46oqf3dUwbKLjAoUDlMimk1J","key":"wmBvue8bE90jWcSX4QwbzXTgLICEnelK/abwQArLc/Q.EnKbUSPfgIkT7tpIG+E48x2Mmp4J94A6Vn4/StVFLA5191+ELEHNulZRhNplgY2CFTD213/LMTrxmH26VfkD0A.8312","base":"/","host":"rebarv.com","version":"1.0.0","useRelativePaths":true,"documentName":"index.html","appendDocumentName":false,"trailingSlash":true,"preloadSearch":false,"cacheBustingToken":"3.5.0.772255733360","cacheBustingStrategy":"query","sidebarFilterPlaceholder":"Filter","toolbarFilterPlaceholder":"Filter","showSidebarFilter":true,"filterNotFoundMsg":"No member names found containing the query \"{query}\"","maxHistoryItems":15,"homeIcon":"","access":[{"value":"public","label":"Public"},{"value":"protected","label":"Protected"}],"toolbarLinks":[{"id":"fields","label":"Fields"},{"id":"properties","label":"Properties"},{"id":"methods","label":"Methods"},{"id":"events","label":"Events"}],"sidebar":[{"n":"/","l":"What is Rebar?"},{"n":"install","l":"Install & Upgrade"},{"n":"changelog","l":"Changelog"},{"n":"console-commands","l":"Client Console Commands"},{"n":"code-examples","l":"Code Examples"},{"n":"faq","l":"FAQ"},{"n":"troubleshooting","l":"Troubleshooting"},{"n":"vscode-transmitter","l":"VS​Code Transmitter Extension"},{"n":"api","l":"API","c":false,"i":[{"n":"client","l":"Client","c":false,"i":[{"n":"client-api-usage","l":"Client API Usage"},{"n":"controllers","l":"Controllers","c":false,"i":[{"n":"interaction","l":"Interaction"}]},{"n":"menus","l":"Menus","c":false,"i":[{"n":"native-menu","l":"Native Menu"}]},{"n":"screen","l":"Screen","c":false,"i":[{"n":"instructional-menu","l":"Instructional Menu"}]},{"n":"system","l":"System","c":false,"i":[{"n":"notification","l":"Notification"},{"n":"useproxyfetch","l":"use​Proxy​Fetch"}]},{"n":"api","l":"Plugin API"},{"n":"webview","l":"Webview"}]},{"n":"server","l":"Server","c":false,"i":[{"n":"controllers","l":"Controllers","c":false,"i":[{"n":"blip","l":"Blip"},{"n":"interaction","l":"Interaction"},{"n":"marker","l":"Marker"},{"n":"object","l":"Objects"},{"n":"peds","l":"Peds"},{"n":"pickups","l":"Pickups"},{"n":"progressbar","l":"Progress Bars"},{"n":"textlabel","l":"Text Labels"},{"n":"worldmenu","l":"World Menu"}]},{"n":"database","l":"Database","c":false,"i":[{"n":"usage","l":"Usage"}]},{"n":"document","l":"Document","c":false,"i":[{"n":"what-are-documents","l":"What are Documents?"},{"n":"document-account","l":"Account"},{"n":"document-character","l":"Character"},{"n":"document-global","l":"Global"},{"n":"document-vehicle","l":"Vehicle"},{"n":"document-virtual","l":"Virtual"}]},{"n":"getters","l":"Getters","c":false,"i":[{"n":"getters-player","l":"Player"},{"n":"getters-players","l":"Players"},{"n":"getters-vehicle","l":"Vehicle"},{"n":"getters-vehicles","l":"Vehicles"},{"n":"getters-world","l":"World"}]},{"n":"player","l":"Player","c":false,"i":[{"n":"player-use","l":"use​Player"}]},{"n":"api","l":"Plugin API","c":false,"i":[{"n":"plugin-api","l":"Plugin API"}]},{"n":"systems","l":"Systems","c":false,"i":[{"n":"messenger","l":"Messenger"},{"n":"usekeybinder","l":"use​Keybinder"},{"n":"useproxyfetch","l":"use​Proxy​Fetch"},{"n":"useserverconfig","l":"use​Server​Config"},{"n":"useservertime","l":"use​Server​Time"},{"n":"useserverweather","l":"use​Server​Weather"}]},{"n":"utility","l":"Utility","c":false,"i":[{"n":"clothes","l":"Clothing"},{"n":"protect-callback","l":"Protect Callback"},{"n":"rate-limit-callback","l":"Rate Limit Callback"}]},{"n":"vehicle","l":"Vehicle","c":false,"i":[{"n":"vehicle-use","l":"use​Vehicle"}]},{"n":"config","l":"Configuration Usage"},{"n":"events","l":"Events"},{"n":"server-api-usage","l":"Server API Usage"}]},{"n":"shared","l":"Shared","c":false,"i":[{"n":"utility","l":"Utility"}]}]},{"n":"data","l":"Data","c":false,"i":[{"n":"explosions","l":"Explosion Types"},{"n":"frontend-sounds","l":"Frontend Sounds"},{"n":"controls","l":"GTA:V Controls"},{"n":"ped-bones","l":"Ped Bones"},{"n":"vehicle-bones","l":"Vehicle Bones"},{"n":"vehicle-colors","l":"Vehicle Colors"},{"n":"vehicle-mods","l":"Vehicle Mods"},{"n":"pickups","l":"Weapon Pickup Models"},{"n":"weather","l":"Weather"}]},{"n":"plugins","l":"Plugins","c":false,"i":[{"n":"what-is-a-plugin","l":"What is a Plugin?"},{"n":"structure","l":"Plugin Structure"}]},{"n":"tutorials","l":"Tutorials","c":false,"i":[{"n":"basic-programming","l":"Basic Programming"},{"n":"your-first-plugin","l":"Your First Plugin"}]},{"n":"webview","l":"Webview","c":false,"i":[{"n":"what-is-a-webview","l":"What is a Webview?"},{"n":"create","l":"Create a Webview"},{"n":"components","l":"Components","c":false,"i":[{"n":"draggable","l":"Draggable Component"}]},{"n":"composables","l":"Composables","c":false,"i":[{"n":"use-audio","l":"use​Audio"},{"n":"use-events","l":"use​Events"},{"n":"use-local-storage","l":"use​Local​Storage"},{"n":"use-messenger","l":"use​Messenger"},{"n":"use-minimap","l":"use​Minimap"},{"n":"use-player-stats","l":"use​Player​Stats"}]}]}],"search":{"mode":0,"minChars":2,"maxResults":20,"placeholder":"Search","hotkeys":["k"],"noResultsFoundMsg":"Sorry, no results found.","recognizeLanguages":true,"languages":[0],"preload":false},"resources":{"History_Title_Label":"History","History_ClearLink_Label":"Clear","History_NoHistory_Label":"No history items","API_AccessFilter_Label":"Access","API_ParameterSection_Label":"PARAMETERS","API_SignatureSection_Label":"SIGNATURE","API_CopyHint_Label":"Copy","API_CopyNameHint_Label":"Copy name","API_CopyLinkHint_Label":"Copy link","API_CopiedAckHint_Label":"Copied!","API_MoreOverloads_Label":"more","API_MoreDropdownItems_Label":"More","API_OptionalParameter_Label":"optional","API_DefaultParameterValue_Label":"Default value","API_InheritedFilter_Label":"Inherited","Search_Input_Placeholder":"Search","Toc_Contents_Label":"Contents","Toc_RelatedClasses_Label":"Related Classes","History_JustNowTime_Label":"just now","History_AgoTime_Label":"ago","History_YearTime_Label":"y","History_MonthTime_Label":"mo","History_DayTime_Label":"d","History_HourTime_Label":"h","History_MinuteTime_Label":"m","History_SecondTime_Label":"s"}}; +var __DOCS_CONFIG__ = {"id":"JoTayl8131emQpYWqD28DLb7TDNIFAuNGkD","key":"X7V2PjQSIEWDMBwK3yp8D+89YRLVXQA2CQRLPMepiO4.XlUSFJPhwDW1f3scpJZvVo3czc0G4LnUbt9EYa4/aCYK+Gvp+aNDrwbwf0VsTbaK+Klib8ZvFNi9g9qnEvGpNw.8298","base":"/","host":"rebarv.com","version":"1.0.0","useRelativePaths":true,"documentName":"index.html","appendDocumentName":false,"trailingSlash":true,"preloadSearch":false,"cacheBustingToken":"3.5.0.772255996158","cacheBustingStrategy":"query","sidebarFilterPlaceholder":"Filter","toolbarFilterPlaceholder":"Filter","showSidebarFilter":true,"filterNotFoundMsg":"No member names found containing the query \"{query}\"","maxHistoryItems":15,"homeIcon":"","access":[{"value":"public","label":"Public"},{"value":"protected","label":"Protected"}],"toolbarLinks":[{"id":"fields","label":"Fields"},{"id":"properties","label":"Properties"},{"id":"methods","label":"Methods"},{"id":"events","label":"Events"}],"sidebar":[{"n":"/","l":"What is Rebar?"},{"n":"install","l":"Install & Upgrade"},{"n":"changelog","l":"Changelog"},{"n":"console-commands","l":"Client Console Commands"},{"n":"code-examples","l":"Code Examples"},{"n":"faq","l":"FAQ"},{"n":"troubleshooting","l":"Troubleshooting"},{"n":"vscode-transmitter","l":"VS​Code Transmitter Extension"},{"n":"api","l":"API","c":false,"i":[{"n":"client","l":"Client","c":false,"i":[{"n":"client-api-usage","l":"Client API Usage"},{"n":"controllers","l":"Controllers","c":false,"i":[{"n":"interaction","l":"Interaction"}]},{"n":"menus","l":"Menus","c":false,"i":[{"n":"native-menu","l":"Native Menu"}]},{"n":"screen","l":"Screen","c":false,"i":[{"n":"instructional-menu","l":"Instructional Menu"}]},{"n":"system","l":"System","c":false,"i":[{"n":"notification","l":"Notification"},{"n":"useproxyfetch","l":"use​Proxy​Fetch"}]},{"n":"api","l":"Plugin API"},{"n":"webview","l":"Webview"}]},{"n":"server","l":"Server","c":false,"i":[{"n":"controllers","l":"Controllers","c":false,"i":[{"n":"blip","l":"Blip"},{"n":"interaction","l":"Interaction"},{"n":"marker","l":"Marker"},{"n":"object","l":"Objects"},{"n":"peds","l":"Peds"},{"n":"pickups","l":"Pickups"},{"n":"progressbar","l":"Progress Bars"},{"n":"textlabel","l":"Text Labels"},{"n":"worldmenu","l":"World Menu"}]},{"n":"database","l":"Database","c":false,"i":[{"n":"usage","l":"Usage"}]},{"n":"document","l":"Document","c":false,"i":[{"n":"what-are-documents","l":"What are Documents?"},{"n":"document-account","l":"Account"},{"n":"document-character","l":"Character"},{"n":"document-global","l":"Global"},{"n":"document-vehicle","l":"Vehicle"},{"n":"document-virtual","l":"Virtual"}]},{"n":"getters","l":"Getters","c":false,"i":[{"n":"getters-player","l":"Player"},{"n":"getters-players","l":"Players"},{"n":"getters-vehicle","l":"Vehicle"},{"n":"getters-vehicles","l":"Vehicles"},{"n":"getters-world","l":"World"}]},{"n":"player","l":"Player","c":false,"i":[{"n":"player-use","l":"use​Player"}]},{"n":"api","l":"Plugin API","c":false,"i":[{"n":"plugin-api","l":"Plugin API"}]},{"n":"systems","l":"Systems","c":false,"i":[{"n":"messenger","l":"Messenger"},{"n":"usekeybinder","l":"use​Keybinder"},{"n":"useproxyfetch","l":"use​Proxy​Fetch"},{"n":"useserverconfig","l":"use​Server​Config"},{"n":"useservertime","l":"use​Server​Time"},{"n":"useserverweather","l":"use​Server​Weather"}]},{"n":"utility","l":"Utility","c":false,"i":[{"n":"clothes","l":"Clothing"},{"n":"protect-callback","l":"Protect Callback"},{"n":"rate-limit-callback","l":"Rate Limit Callback"}]},{"n":"vehicle","l":"Vehicle","c":false,"i":[{"n":"vehicle-use","l":"use​Vehicle"}]},{"n":"config","l":"Configuration Usage"},{"n":"events","l":"Events"},{"n":"server-api-usage","l":"Server API Usage"}]},{"n":"shared","l":"Shared","c":false,"i":[{"n":"utility","l":"Utility"}]}]},{"n":"data","l":"Data","c":false,"i":[{"n":"explosions","l":"Explosion Types"},{"n":"frontend-sounds","l":"Frontend Sounds"},{"n":"controls","l":"GTA:V Controls"},{"n":"ped-bones","l":"Ped Bones"},{"n":"vehicle-bones","l":"Vehicle Bones"},{"n":"vehicle-colors","l":"Vehicle Colors"},{"n":"vehicle-mods","l":"Vehicle Mods"},{"n":"pickups","l":"Weapon Pickup Models"},{"n":"weather","l":"Weather"}]},{"n":"plugins","l":"Plugins","c":false,"i":[{"n":"what-is-a-plugin","l":"What is a Plugin?"},{"n":"structure","l":"Plugin Structure"}]},{"n":"tutorials","l":"Tutorials","c":false,"i":[{"n":"basic-programming","l":"Basic Programming"},{"n":"your-first-plugin","l":"Your First Plugin"}]},{"n":"webview","l":"Webview","c":false,"i":[{"n":"what-is-a-webview","l":"What is a Webview?"},{"n":"create","l":"Create a Webview"},{"n":"components","l":"Components","c":false,"i":[{"n":"draggable","l":"Draggable Component"}]},{"n":"composables","l":"Composables","c":false,"i":[{"n":"use-audio","l":"use​Audio"},{"n":"use-events","l":"use​Events"},{"n":"use-local-storage","l":"use​Local​Storage"},{"n":"use-messenger","l":"use​Messenger"},{"n":"use-minimap","l":"use​Minimap"},{"n":"use-player-stats","l":"use​Player​Stats"}]}]}],"search":{"mode":0,"minChars":2,"maxResults":20,"placeholder":"Search","hotkeys":["k"],"noResultsFoundMsg":"Sorry, no results found.","recognizeLanguages":true,"languages":[0],"preload":false},"resources":{"History_Title_Label":"History","History_ClearLink_Label":"Clear","History_NoHistory_Label":"No history items","API_AccessFilter_Label":"Access","API_ParameterSection_Label":"PARAMETERS","API_SignatureSection_Label":"SIGNATURE","API_CopyHint_Label":"Copy","API_CopyNameHint_Label":"Copy name","API_CopyLinkHint_Label":"Copy link","API_CopiedAckHint_Label":"Copied!","API_MoreOverloads_Label":"more","API_MoreDropdownItems_Label":"More","API_OptionalParameter_Label":"optional","API_DefaultParameterValue_Label":"Default value","API_InheritedFilter_Label":"Inherited","Search_Input_Placeholder":"Search","Toc_Contents_Label":"Contents","Toc_RelatedClasses_Label":"Related Classes","History_JustNowTime_Label":"just now","History_AgoTime_Label":"ago","History_YearTime_Label":"y","History_MonthTime_Label":"mo","History_DayTime_Label":"d","History_HourTime_Label":"h","History_MinuteTime_Label":"m","History_SecondTime_Label":"s"}}; diff --git a/resources/js/search.json b/resources/js/search.json index 71f159d6e..c0818e762 100644 --- a/resources/js/search.json +++ b/resources/js/search.json @@ -1 +1 @@ -[[{"i":"what-is-rebar","l":"What is Rebar?","p":["Rebar is a plug-and-play base framework for the alternative GTA:V multiplayer client alt:V. Rebar is meant to act as a light framework that provides utility, and a basic standard for building plugins that can be compatible with other plugins.","It has a heavy focus on simplifying building game modes and lowering the friction of building a server."]},{"i":"why-rebar","l":"Why Rebar?","p":["Rebar is the foundational piece necessary to construct large concrete structures. Think of this framework as achieving the same from a game-mode standpoint."]},{"l":"Tech Stack","p":["Node.js","TypeScript","MongoDB","Vue"]},{"i":"how-do-i-get-started","l":"How do I get started?","p":["Head on over to Install & Upgrade to learn about the installation process."]}],[{"i":"install--upgrade","l":"Install & Upgrade","p":["Hey listen! When you run Rebar for the first time, you won't be able to spawn.","This is simply for server setup, and getting started.","Check out some Plugins to get everything working!"]},{"l":"1. Programs to Install","p":["Install these programs.","Git","Node.js","pnpm","MongoDB Server","Ensure that if you are running it locally, do not set a database password.","When you move your server to production use something like MongoDB Atlas","If you are having trouble installing pnpm you can run this command in a Powershell Window with Admin Enabled.","These are optional but recommended if developing","VSCode"]},{"l":"2. Clone the Repository","p":["Open a terminal and clone the repository somewhere."]},{"l":"Navigate into Rebar"},{"l":"3a. Windows"},{"l":"Install"},{"l":"Download Binaries"},{"l":"Start","p":["Alternatively, development mode can be started with"]},{"l":"3b. Linux","p":["Last installation was tested on Ubuntu 22.04+"]},{"l":"Install libatomic"},{"i":"install-1","l":"Install"},{"i":"download-binaries-1","l":"Download Binaries"},{"i":"start-1","l":"Start","p":["Alternatively, development mode can be started with"]},{"l":"3c. Docker","p":["Follow all of the instructions above.","Build with pnpm build:docker and then run ./altv-server."]},{"l":"Upgrading"},{"l":"Auto Upgrade","p":["If you already have Rebar installed simply run the following command:"]},{"l":"Manual Upgrade","p":["Download the latest version Rebar into another folder.","Copy the folders src/main, webview, and docs folder into the main folder of Rebar.","Copy the file package.json to the main folder of Rebar.","Run pnpm upgrade and pnpm install.","Click To Download Latest Source Code","That's it."]},{"l":"Webview Development","p":["If you need to develop an interface out of game, you can use pnpm:webview"]}],[{"l":"Changelog"},{"l":"Version 35"},{"l":"Code Changes","p":["Added screenshot utility for taking screenshot of vehicle"]},{"l":"Docs Changes","p":["Documented screenshot utility"]},{"l":"Version 34"},{"i":"code-changes-1","l":"Code Changes","p":["Adds a new ambient sound to the server config","Fixes an issue where subfolders were not supported for images, and sounds","Added onScreenPed solution to show a pedestrian in the 2D space, below webview","Automatically synchronizes ped with ped reference changes, such as clothes","Thanks to BattleZone for confirming that NVE is problematic with frontend menus","Added manual override for useKeybinder to updateKeybindForPlayer","Fixed bug where global documents were overwriting global cache","Modify getByAccount and getByCharacter to also take numbers for their id getter","Change vehicle getByDatabaseId to byId('_id');"]},{"i":"docs-changes-1","l":"Docs Changes","p":["Modifies the server config to include disableAmbientNoise","Added docs for updateKeybindForPlayer","Updated vehicle getter docs","Updated character getter docs"]},{"l":"Version 33"},{"i":"code-changes-2","l":"Code Changes","p":["Fixes issue where pickup sometimes doesn't spawn the object","Added all clothing dlc info, and maximums to a shared data structure","Added clothing data getters to Rebar.utility.clothing","Added addCategory section to add custom DLC data during runtime"]},{"i":"docs-changes-2","l":"Docs Changes","p":["Added utility clothes section to server API"]},{"l":"Version 32"},{"i":"code-changes-3","l":"Code Changes","p":["Added function to attach blips to entities, because alt:V's one is broken","Additionally, when a blip or the entity becomes invalid the blip is automatically destroyed."]},{"i":"docs-changes-3","l":"Docs Changes","p":["Updated blip documentation to cover attachments"]},{"l":"Version 31"},{"i":"code-changes-4","l":"Code Changes","p":["Added disableAttackControls, disableCameraControls, and freezeCamera to player.world pathway","Fixed issue with local progress bars not clearing","Fixed issue with gif files not being copied correctly"]},{"i":"docs-changes-4","l":"Docs Changes","p":["Added documentation covering player.world new functions"]},{"l":"Version 30"},{"i":"code-changes-5","l":"Code Changes","p":["Added a vscode transmitter for debug mode server and client.","Allows for code to be executed from VSCode using the Rebar Transmitter"]},{"i":"docs-changes-5","l":"Docs Changes","p":["Added vscode transmitter extension page"]},{"l":"Version 29"},{"i":"code-changes-6","l":"Code Changes","p":["Custom rmlui get distributed to resources/rmlui/plugins folder","Additionally html files act as rmlui and are converted into rmlui during the compile process"]},{"i":"docs-changes-6","l":"Docs Changes","p":["Added a section in Plugin Structure that covers how to work with rmlui correctly, and what the paths are to use the resource."]},{"l":"Version 28"},{"i":"code-changes-7","l":"Code Changes","p":["Made interaction setMessage show a GTA:V notification by default when entering.","Synchronize vehicle customPrimaryColor, customSecondaryColor, primaryColor, and secondaryColor","Added offKeyUp to key listeners for webview composable","Added disableCriticalHits to server configuration settings","Added Rebar Event for on-command that lets you listen to what commands successfully executed","Improve performance of player stats by making it a single event for setting stats","Added zone, isAiming, and isFlying to player stats","Fix vehicle stop server config bug, flag was incorrect","Added server configs for disabling prop knockoff, cover, drivebys, and scuba gear removal"]},{"i":"docs-changes-7","l":"Docs Changes","p":["Added onKeyUp and offKeyUp to webview event composable","Updated useServerConfig docs","Updated playerStats doc"]},{"l":"Version 27"},{"i":"code-changes-8","l":"Code Changes","p":["Added onClose function for webview","Added escapeToClosePage to show function for webviews","Keep in mind this only works for page types","Added RebarEvent for page open and page close on server-side"]},{"i":"docs-changes-8","l":"Docs Changes","p":["Updated playerUse webview section for show function to include info about escape to close","Added RebarEvent onClose and onOpen docs"]},{"l":"Version 26"},{"i":"code-changes-9","l":"Code Changes","p":["Added useProgressbar controller","Fixed permission length bug","Fixed some misnamed functions in other controllers","Added useWorldMenu controller for building quick selection menus","Fixed bug where keybinds could be invoked if certain menus were open"]},{"i":"docs-changes-9","l":"Docs Changes","p":["Added images for controllers","Added useProgressbar doc","Added useWorldMenu doc"]},{"l":"Version 25"},{"i":"code-changes-10","l":"Code Changes","p":["Added account document to usePlayer","Fixed small permission hasOne error","Added various shared Utility functions to Rebar.utility to lower import counts","Added toggle controls to usePlayer().world to control controls state","Fixed small bug where hotkeys could be invoked when game controls are disabled"]},{"i":"docs-changes-10","l":"Docs Changes","p":["Added code examples page","Added troubleshooting page","Updated player world api for toggling controls"]},{"l":"Version 24"},{"i":"code-changes-11","l":"Code Changes","p":["Added server configs for auto; starting engine, stopping engine, and seat swapping in vehicles","Added useKeybinder to bind hotkeys from server-side, enabling users to call from their client","Adjusted world space checker to delay by 100ms before checking, fixing colshape creation times"]},{"i":"docs-changes-11","l":"Docs Changes","p":["Updated server config doc","Added useKeybinder page"]},{"l":"Version 23"},{"i":"code-changes-12","l":"Code Changes","p":["Added Draggable Component to WebView"]},{"i":"docs-changes-12","l":"Docs Changes","p":["Added Draggable to webview/components section with an example on making draggables","Added Draggable Component to WebView"]},{"i":"docs-changes-13","l":"Docs Changes","p":["Added Draggable to webview/components section with an example on making draggables"]},{"l":"Version 22"},{"i":"code-changes-13","l":"Code Changes","p":["Added useRateLimitCallback","Added onEnter and onLeave to interaction callbacks","Added disablePistolWhip to useServerConfig that prevents pistol whipping one-hits"]},{"i":"docs-changes-14","l":"Docs Changes","p":["Created useRateLimitCallback docs","Added onEnter and onLeave to interaction docs","Added disablePistolWhip to useServerConfig docs"]},{"l":"Version 21","p":["I forgot to write the changelogs. lmao"]},{"l":"Version 20"},{"i":"code-changes-14","l":"Code Changes","p":["Made raycast.getFocusedObject() return entityPos","Clearly warn users using api.get for obtaining an API, and recommend async instead","Added new getMeta API for getting plugin API as single import","Added debug option to raycast functions to draw lines when a raycast is invoked","Added useServerConfig to change what HUD elements, and other on screen elements a player sees"]},{"i":"docs-changes-15","l":"Docs Changes","p":["Added debug to raycast docs","Removed get from Plugin API examples, to let users focus on async instead","Added useServerConfig to docs"]},{"l":"Version 19"},{"i":"code-changes-15","l":"Code Changes","p":["Added reverse map for vehicle model hash to vehicle model name","Added function to add named models to list at runtime as well","Added neon synchronization to vehicle document sync"]},{"i":"docs-changes-16","l":"Docs Changes","p":["Added vehicleHashes utility doc info"]},{"l":"Version 18"},{"i":"code-changes-16","l":"Code Changes","p":["Added group permissions for protected callbacks","Added new controller usePed which creates a global pedestrian which can have synced natives invoked on it","Added useProxyFetch which allows for you to register safe endpoints on server-side which can be called client-side.","Added useRaycast to get entity aimed at from client-side and return it to the server","Added useVehicle enhancements","Additionally, optional section to check if they are the sole owner of the vehicle","bind","Can even easily listen to when the specific ped spawned dies","Can obtain model & position of world object looked at","Can obtain player, vehicle, or alt.Object looked at","Can obtain position looking at","Check if the player is an 'owner' of the vehicle","Check if the vehicle is already bound","Fixed a bug where closest entity and target ids matched, when they were different types","Fixed character permission issues when using protected callbacks","Fixed passing message on client-side for interaction onEnter callbacks","Functions that toggled asPlayer verify ownership of keys, permission, or owner itself of the vehicle","isBound","It's recommended not to spawn more than 32 given peds around a single player.","keys: add, remove, clear","Meaning that if you have an API which only allows your server to make requests, this is a way to invoke it safely.","This effectively allows you to make requests from the server to safely get results.","toggleDoor","toggleDoorAsPlayer","toggleEngine","toggleEngineAsPlayer","toggleLock","toggleLockAsPlayer","verifyOwner"]},{"i":"docs-changes-17","l":"Docs Changes","p":["Added useProxyFetch doc","Added useRaycast doc","Added useVehicle updates","Added usePed controller docs"]},{"l":"Version 17"},{"i":"code-changes-17","l":"Code Changes","p":["Added alt.getMeta('Rebar') to get Server API with one-less import","Added alt.getMeta('RebarClient') to get Client API with one-less import","Fixed character interface not being extended correctly","Added preinstall script to download binaries, and build codebase once"]},{"i":"docs-changes-18","l":"Docs Changes","p":["Covered alternative API import methods in docs"]},{"l":"Version 16"},{"i":"code-changes-18","l":"Code Changes","p":["Added @Composables path alias","Added @Plugins path alias"]},{"i":"docs-changes-19","l":"Docs Changes","p":["Updated composables with @Composables","Updated what is a plugin with information about component / composable only plugins"]},{"l":"Version 15"},{"i":"code-changes-19","l":"Code Changes","p":["Update dependencies","Update _id in database functions to use a non-deprecated ObjectId handler","Added useServerWeather function to allow setting weather and weather forecast","This does not automatically sync for players, it's just a global way to set the data"]},{"i":"docs-changes-20","l":"Docs Changes","p":["Added useServerWeather docs"]},{"l":"Version 14"},{"i":"code-changes-20","l":"Code Changes","p":["Added emitServerRpc to Webview to retrieve data from server-side using normal alt.onRpc events.","Yes, this means you don't have to do weird event bindings to get data now.","Added emitClientRpc to Webview to retrieve data from client-side."]},{"i":"docs-changes-21","l":"Docs Changes","p":["Added emitServerRpc and emitClientRpc to docs"]},{"l":"Version 13"},{"i":"code-changes-21","l":"Code Changes","p":["Updated upgrade script to prevent overwriting tailwind config, or vite config","Added useLocalStorage composable for getting / storing data"]},{"i":"docs-changes-22","l":"Docs Changes","p":["Added useLocalStorage composable docs"]},{"l":"Version 12"},{"i":"code-changes-22","l":"Code Changes","p":["Completely redid the compile pipeline","Improved compile times, and added docker build support to package.json scripts","Fixed linux based errors"]},{"i":"docs-changes-23","l":"Docs Changes","p":["Added install instructions for Linux","Added install instructions for Docker"]},{"l":"Version 11"},{"i":"code-changes-23","l":"Code Changes","p":["Added createCollection to database functions","Automatically create default collections on startup","Added rebar:upgrade script to get the latest code changes for Rebar"]},{"i":"docs-changes-24","l":"Docs Changes","p":["Added createCollection function to the database functions","Clarified how no spawner exists outright for Rebar","Added documentation about upgrading"]},{"l":"Version 10"},{"i":"code-changes-24","l":"Code Changes","p":["Added ignore and autogen as a keyword to ignore file changes when developing","Added time-changed, time-second-changed, time-minute-changed, and time-hour-changed events to core events","Added useServerTime setters / getters for managing server time more effectively","Note: This does not auto-sync on players, other plugins can build more complex time systems"]},{"i":"docs-changes-25","l":"Docs Changes","p":["Added useServerTime API docs","Added time-changed, time-second-changed, time-minute-changed, and time-hour-changed event documentation"]},{"l":"Version 9"},{"i":"code-changes-25","l":"Code Changes","p":["Added client-side messenger for handling chat focus states","Patched issue where pressing E while chat is focused invoked interactions","Patched issue where pressing native menu buttons while chatting invoked native menu functions"]},{"l":"Version 8"},{"i":"code-changes-26","l":"Code Changes","p":["Fixed various get closest functions for player and vehicle getters","Added useWaypoint to get a waypoint a player has on their map if available","Added usePlayer function that combines all useX functions for player","Added Rebar.utility.useProtectCallback which adds permissions to callbacks before they are executed","A simple way to protect alt:V client event callbacks"]},{"i":"docs-changes-26","l":"Docs Changes","p":["Added useWaypoint docs","Added usePlayer docs","Added useProtectCallback docs"]},{"l":"Version 7"},{"i":"code-changes-27","l":"Code Changes","p":["Added useMinimap composable to get minimap positional data in the Webview","Added custom message type when emitting messages to prevent formatting"]},{"i":"docs-changes-27","l":"Docs Changes","p":["Documented useMinimap composable"]},{"l":"Version 6"},{"i":"code-changes-28","l":"Code Changes","p":["Added ability for commands to be async","Added character synchronization when a character document is bound to the player","Added onKeyUp to the Webview Events functionality, allowing an easy way to listen for keybinds","Added playFrontendSound to useAudio composable in the webview","Added useVehicle function for synchronizing vehicle data, applying data, repairing, and creating new vehicle documents","Added useWeapon to player pathway. Allows for synchronizing weapons, and ammo for database","Added vehicle synchronization when a vehicle document is bound to the vehicle","Added ways to disable auto-sync for vehicle and character documents in the binding functions","Changed all update() functions to sync and added backwards compatible update function","Separated logic for appyling data on appearance and clothing so overrides are possible","Split Character into BaseCharacter and Character, nothing changed externally","Synchronizes appearance, and clothing","Synchronizes damage (not appearance)","Synchronizes death state","Synchronizes dirt levels","Synchronizes health, and armor","Synchronizes mods","Synchronizes position, and rotation","Synchronizes tire damage","Synchronizes weapons, and ammo","Synchronizes window damage"]},{"i":"docs-changes-28","l":"Docs Changes","p":["Updated blip controller docs for typo","Added useVehicle documentation","Updated documentation for useCharacterBinder that will allow ignoring auto-sync on binding","Updated documentation for useVehicleBinder that will allow ignoring auto-sync on binding","Added useWeapon documentation","Added useState documentation","Changed update() references to sync()","Updated documentation for useAudio composable"]},{"l":"Version 5"},{"i":"code-changes-29","l":"Code Changes","p":["Added isValid to character, account, and vehicle documents to check if an entity has a bound document","Added useStatus to player API pathway to check for account and character status","Added events to the Rebar API","Added on account bound","Added on character bound","Added on vehicle bound","Added on message","Fixed small bug with case-sensitive commands","Fixed bug that allowed sending messages when a character was not bound"]},{"i":"docs-changes-29","l":"Docs Changes","p":["Added isValid examples to character, account, and vehicle.","Added useStatus to player section","Added events section to Server API"]},{"l":"Version 4"},{"i":"code-changes-30","l":"Code Changes","p":["Added getCommands to the messenger system","Added formatTimestamp to the shared utilities"]},{"l":"Version 3"},{"i":"code-changes-31","l":"Code Changes","p":["Added focus and unfocus support to client-side webviews"]},{"l":"Version 2"},{"i":"code-changes-32","l":"Code Changes","p":["Fixed issue with disabling plugins"]},{"l":"Version 1"},{"i":"code-changes-33","l":"Code Changes","p":["Added package.json or dependency.json support to plugins","Added an install pipeline for plugins that need specific npm packages","Added ability to disable a plugin by creating a file called .disable in the given plugin folder","Added useMessenger to server-side for processing user commands, and chat system (not console commands)","useMessenger also provides onMessage, sending messages, registering commands, and invoking commands","Added useMessenger composable to webview for emitting messages to the server for processing, automatically handles commands","Additional note, messages are sent to the void and go nowhere until a chat plugin is added","This is effectively a messenger middleware for building a chat or command system","Added sendMessage to the useNotify player composable"]},{"i":"docs-changes-30","l":"Docs Changes","p":["Added question about NPM packages to FAQ docs","Added virtual document type docs to the API/Document section","Updated what is a plugin, and create docs to clarify new changes","Updated useNotify docs for sendMessage","Added useMessenger docs for composable, and server-side"]}],[{"l":"Client Console Commands","p":["Console commands are commands that can be ran by opening your client-side F8 console menu and typing a command."]}],[{"l":"Code Examples","p":["This is a giant page for code examples and a general purpose cookbook for writing just about anything.","Always check the documentation for further information and to see the full extent of what this framework has to offer.","Some of these code examples require other plugins to work.","Check out Plebmasters Forge to see all available plugins."]},{"l":"Server API","p":["We mostly work on the server-side for a majority of the functionality.","Here's how to import Rebar in various ways."]},{"l":"Rebar Events","p":["Rebar has a handful of events that can be used in tandem with alt:V events.","These become more useful when a character select, or auth plugins are installed."]},{"l":"Notifying a Player","p":["Send a default GTA:V notification to the player."]},{"l":"Screen Shards","p":["Shards are like the Mission Failed full screen effect that you see in normal GTA:V. You can show them like this."]},{"l":"Screen Mission Text","p":["Mission text will show in the bottom center of the screen."]},{"l":"Keybinds","p":["Keybinds can be done on server-side to allow for server-side callbacks.","Here's a simple keybind that when K is pressed it teleports the player to a position."]},{"l":"Interaction Points","p":["Interaction points are places where the player can press E to do something.","They can be accented with markers, text labels, and blips.","There are also local versions of marker, text label, and blips to only show it to a single player. Which has full control via server-side."]},{"l":"Server Configuration","p":["You can modify server configuration by creating a plugin that tweaks the settings.","Here's an example of what you can invoke to change settings in Rebar."]},{"l":"Saving Player Data","p":["With a character select plugin, and auth plugin installed it's really easy to write data to the database using the document system.","This document system also exists for other entities like Vehicles,and Accounts."]},{"i":"character--account-permissions","l":"Character & Account Permissions","p":["There's a built in permission system to assign players as admins, specific jobs, etc."]},{"l":"Registering Commands","p":["With a chat plugin you can register commands and invoke them in-game in the chat window.","Additionally, you can protect your commands from being ran under Account Permissions or Character Permissions."]},{"l":"Assigning Custom Models","p":["You can easily assign a custom player model to override their default character appearance."]},{"l":"Assigning Uniforms","p":["You can also assign and clear uniforms for the player to wear."]},{"l":"Owned Vehicles","p":["Vehicles can be owned by an individual player, or a permission."]},{"l":"Spawn Owned Vehicles","p":["Want to easily spawn vehicles owned by a player, well Rebar makes it super simple.","It even handles synchronizing mods, extras, lock state, engine damage, and more."]},{"l":"Teleport to a Waypoint"},{"l":"Control Pedestrians","p":["We have a built in pedestrian controller on server-side that lets you invoke natives to easily make pedestrians do various things.","Here's one that makes a bunch of them dance together."]},{"l":"Raycast for Objects","p":["Raycast for an Object from server-side."]}],[{"l":"FAQ","p":["Frequently asked questions about Rebar."]},{"i":"where-do-i-put-my-mods","l":"Where do I put my mods?","p":["You put them inside of the resources folder, and load it like a normal alt:V Resource."]},{"i":"none-of-my-changes-are-saving-when-i-modify-files","l":"None of my changes are saving when I modify files?","p":["Be sure that you are only modifying files inside of the src directory."]},{"i":"are-fivem-scripts-compatible","l":"Are FiveM scripts compatible?","p":["No, we use TypeScript in this framework and furthermore it is written for https://altv.mp client."]},{"i":"can-i-use-my-own-frontend-framework","l":"Can I use my own frontend framework?","p":["No, you will have to do a lot of changes to get any other framework to work correctly.","It is not recommended, and to keep all plugins compatible we use Vue 3 and the same CSS framework across all plugins."]},{"i":"can-i-use-my-own-css","l":"Can I use my own CSS?","p":["Sure, but it is recommended to use Tailwind to keep everything compatible across all plugins."]},{"i":"can-i-use-my-own-database","l":"Can I use my own database?","p":["No, it is highly recommended to stick to MongoDB and to lower the complexity for everyone using your plugins.","To run your own database you will need to write it as a plugin and use it exclusively.","Doing so may limit your ability to load plugins from other users."]},{"l":"Can I use npm packages client-side","p":["Nope! You won't ever be able to. However, you can use them in the webview, and on server-side."]},{"i":"do-i-need-to-buy-a-server","l":"Do I need to buy a server?","p":["Only buy a server when you're ready for your server to go live.","Otherwise, stick to local testing and allowing others to join locally."]},{"i":"how-can-i-speed-up-development-time","l":"How can I speed up development time?","p":["There are a number of ways to do this, but here are some recommended approaches.","Disable any third-party plugins","Disable any MLOs that need to be loaded","Doing both of these will increase load time, and allow you to focus on writing your plugin."]},{"i":"can-i-sell-plugins","l":"Can I sell plugins?","p":["Absolutely, however Rebar does not provide any resources to secure your code. You are fully responsible for updating your plugin as well as maintaining compatability with future updates.","Keep in mind there is no way to properly secure code."]}],[{"l":"Troubleshooting","p":["This troubleshooting guide mostly pertains to people who have successfully installed this framework.","If you are still having trouble installing, kindly visit the Discord's help section."]},{"l":"Clear node_modules","p":["Simply delete the entire node_modules folder.","Windows","Linux","Run pnpm install after completing this step."]},{"l":"Upgrade Server Binaries","p":["Run pnpm upgrade to get the latest version of alt:V Server Binaries.","If this does not work remove the following files manually, and then upgrade:","altv-crash-handler.exe","altv-server.exe","libnode.dll","cache","modules",".server-crashes-cache","Run pnpm upgrade after this has completed."]},{"l":"Clone Rebar Again","p":["If you're following the general principal of not modifying core code, you can simply move your plugins to a new instance of Rebar.","Download a new copy of Rebar, move your plugins to the plugins folder.","Install everything again with pnpm install, pnpm upgrade, and then do pnpm start."]},{"i":"still-not-working","l":"Still Not Working?","p":["You're at a point where you'll need to start disabling plugins, or moving them out 1-by-1 to see which is the most problematic plugin.","Remove all of your plugins, and start adding them back in 1-by-1, and running the server each time.","If your server stops working after you re-introduced a plugin, then you've found your troublemaker."]}],[{"l":"VSCode Transmitter Extension","p":["Rebar has built in support for the Rebar Transmitter extension.","This allows you to open a scratchpad under src/scratchpad and write code.","Once the code is written you can SELECT THE CODE WITH YOUR CURSOR and then right-click to execute it while the server is running."]},{"l":"Instructions","p":["Open src/scratchpad folder","Rename both of the example pads to serverExample.ts and clientExample.ts","Write some code in the scratch pad","Highlight it","Right-click it, and execute it"]},{"l":"Example"},{"l":"Download","p":["https://marketplace.visualstudio.com/items?itemName=stuyk.rebar-transmitter"]}],[{"l":"Client API Usage","p":["The client API can be accessed through a single import.","If you want more direct imports, those are also available through your intellisense."]},{"i":"altv-based-import","l":"alt:V Based Import"},{"l":"Direct Import"}],[{"l":"Interaction","p":["Listen on client-side for when a player enters an interaction or leaves an interaction."]}],[{"l":"Native Menu","p":["This is a faux version of the native menu. It's a custom implementation that has a much simpler API."]},{"l":"Create"},{"l":"Destroy"},{"l":"Nested Menus Example","p":["This is a menu with two deeper level menus inside of it."]}],[{"l":"Instructional Menu","p":["Instructional menus are the keys that show up in the bottom right of the screen.","They usually use Controls"]}],[{"l":"Notification","p":["If you wish to override the default GTA:V notification system, you can use the built in notification system.","When you register an on event with useNotification it will stop default notifications from displaying.","You can now use the messages in your own notification system."]}],[{"l":"useProxyFetch","p":["This is the client version of the proxy fetch.","Server requires APIs to be registered before they can be called."]}],[{"l":"API","p":["API allows for plugins to register their own APIs and make them available globally.","However, they are limited to either server-side or client-side.","This reduces the complexity to import functions from other plugins, or export functions for other plugins."]},{"l":"How to Declare an API","p":["Ensure you have an API setup in your plugin.","Create a global declaration for your API.","Done"]},{"l":"How to Get an API","p":["This is all that's necessary to start working with other plugin APIs","Below is dependent on load order, so your mileage may vary.","If you do not want to worry about load order. Consider the following pattern:"]}],[{"l":"Webview","p":["When using the webview on client-side, you have a lot of options."]}],[{"l":"Blip","p":["Create a map marker that displays an icon, and text on the map.","These are general purpose blips, if you need more robust functionality use the blip directly."]},{"l":"Global Markers","p":["A global blip can be seen by all players.","Additionally, you can attach a blip to any entity like a player, or a vehicle like this."]},{"l":"Local Markers","p":["A local blip can only been seen by a single player."]}],[{"l":"Interaction","p":["Interactions allow a player to walk up to an invisible trigger and press E to interact with it.","If using player.pos for your interaction, ensure you subtract 1 from the z axis to make it usable"]}],[{"l":"Marker","p":["Create a physical in-world marker that can be walked through."]},{"l":"Global Markers","p":["A global marker can be seen by all players."]},{"l":"Local Markers","p":["A local marker can only be seen by a single player."]}],[{"l":"Objects","p":["Objects are well... objects. They're things on the map like ATMs, Boxes, etc."]},{"l":"Global Object","p":["Global objects can be seen by all players."]},{"l":"Local Object","p":["Local objects can only be seen by a single player."]}],[{"l":"Peds","p":["Peds use the internal alt:V Peds that can be synchronized by invoking a set of hand-picked natives on them.","Default behavior:","When a pedestrian dies, it's despawned after 5 seconds"]},{"l":"Native List","p":["These are the list of natives that are available to invoke.","This can be updated later but this is a general purpose list that should work fine with the ped."]}],[{"l":"Pickups","p":["Pickups are collisions you can run over with a specific weapon model.","They're traditionally seen in GTA:Online, but this is a more server-side implementation of the pickups."]}],[{"l":"Progress Bars"},{"l":"Local Progress Bars","p":["These are seen by a single player."]},{"l":"Timed Progress Bar"},{"l":"Manual Control Progress Bar"},{"l":"Global Progress Bars","p":["These are seen by all players, and are can be seen when they are in range of the progress bar."]},{"i":"timed-progress-bar-1","l":"Timed Progress Bar"},{"i":"manual-control-progress-bar-1","l":"Manual Control Progress Bar"}],[{"l":"Text Labels","p":["Text labels are floating pieces of text that can be seen in-game in a 3D space."]},{"l":"Global Text Labels","p":["Global text labels can be seen by all players."]},{"l":"Local Text Labels","p":["Local text labels can only be seen by a single player."]}],[{"l":"World Menu","p":["World menus are 3D menus that can exist in the world, and can be popped up at any time.","They're meant for quickly selecting options, and getting results on either server or client-side.","In the case here, it's server-side usage."]}],[{"l":"Usage","p":["When using the database in Rebar it can be accessed from any plugin.","However, the database may only be accessed on server-side.","Use the Document system if you are updating characters, accounts, or vehicles."]},{"i":"usage-1","l":"Usage","p":["Import the database into your plugin file, and begin using it."]},{"l":"Create Collection","p":["A collection is where documents are stored."]},{"l":"Create Data","p":["Creating data uses the create function and returns an _id to obtain the data."]},{"l":"Get Data","p":["If you want to get a document by an _id, you can use this:"]},{"l":"Find Data","p":["After creating data, if you don't have an _id and you want to find it. You can use getMany."]},{"l":"Get All Data","p":["It is not recommended to fetch a whole collection unless it's a smaller collection.","In any case, you can use this to fetch a whole collection of data."]},{"l":"Update","p":["If you want to update a document, or simply append new data to the document."]}],[{"i":"what-are-documents","l":"What are Documents?","p":["Documents are what are stored inside of MongoDB.","Evey document has an _id which is a string of characters.","That string of characters can be used to quickly pull down any document.","Documents require the developer to assign the data once, and once that data is assigned it will only push data out to the database automatically while using document functionality.","We're effectively reading data once."]},{"l":"Editing Data in the Database","p":["When you edit data inside of the database it will not be automatically bound to the player.","Editing data is usually done through a tool like MongoDB Compass.","This is because documents work in a way that pushes data out rather than reading the data constantly from the databse.","We do this to increase the overall performance of the gamemode for larger servers.","If you wish to update data of a user in a database, you must also rebind that data to the user.","Rebinding means to pull the data down from the database again and then assign it to the user again."]}],[{"l":"Account","p":["An account document is a set of data that is bound to the player until they disconnect.","It automatically saves data to the MongoDB database when any set function is used."]},{"l":"Binding Data","p":["You should bind account data when they authenticate to your server."]},{"l":"Checking Validity","p":["If you need to check if a player has a document bound to them, you can use the following method."]},{"l":"Getting Data","p":["Data can be retrieved for the bound account like this."]},{"l":"Setting Data","p":["Data can easily be appended or set in two different ways."]},{"l":"Getting Characters","p":["When you need to obtain a character file for an account, you can use this function to get all existing characters."]},{"l":"Permissions","p":["Permissions for accounts allow permissions to persist across an entire account.","Here's the simplest way to add, remove, and check permissions."]},{"l":"Password","p":["When you setup an account you often want to also setup a password, or check a password.","We've made it pretty easy in Rebar to simply check a password to login."]},{"l":"Banning","p":["Banning an account is pretty straight forward but it does not prevent new accounts with new ips.","It's simply an account level ban that happens during server runtime."]}],[{"l":"Character","p":["An character document is a set of data that is bound to the player until they disconnect.","It automatically saves data to the MongoDB database when any set function is used."]},{"l":"Binding Data","p":["You should bind character data after fetching call characters owned by an account.","When you bind character data to a player the following is synchronized:","Position","Rotation","Clothing","Appearance","Model","Skin","Weapons","Weapon Ammo","Health","Armor","Dimension"]},{"l":"Checking Validity","p":["If you need to check if a player has a document bound to them, you can use the following method."]},{"l":"Getting Data","p":["Data can be retrieved for the bound character like this."]},{"l":"Setting Data","p":["Data can easily be appended or set in two different ways."]},{"l":"Getting Vehicles","p":["When you need to obtain a vehicle file for an character, you can use this function to get all existing vehicles owned by the player."]},{"l":"Permissions","p":["Permissions for characters only allows the permission to exist on the one character it is assigned to.","Here's the simplest way to add, remove, and check permissions."]},{"l":"Permission Groups","p":["Permission groups allow you to assign permissions under a specific group name for a character."]}],[{"l":"Global","p":["Global documents work a bit different than the other documents.","They are the only async document, and for good reason."]},{"l":"Create a Document","p":["When creating a global document, it will always come with an identifier."]},{"l":"Getting Data"},{"l":"Storing Data","p":["Storing data can take any data type and store it for you.","Below is just a simple numerical example."]}],[{"l":"Vehicle","p":["An character document is a set of data that is bound to the player until they disconnect.","It automatically saves data to the MongoDB database when any set function is used."]},{"l":"Binding Data","p":["You should bind character data after fetching call characters owned by an account.","When you bind vehicle data to a vehicle the following is synchronized:","Position","Rotation","Model","Mods","Health","Windows","Wheels","Extras","Dimension"]},{"l":"Checking Validity","p":["If you need to check if a vehicle has a document bound to them, you can use the following method."]},{"l":"Getting Data","p":["Data can be retrieved for the bound character like this."]},{"l":"Setting Data","p":["Data can easily be appended or set in two different ways."]}],[{"l":"Virtual","p":["An virtual document lets you interface with a document by _id and collection.","All functions are async and reads data directly from the database.","Virtual documents just provide a similar approach to reading / writing data while coding."]},{"l":"Usage"}],[{"l":"Player","p":["The player getter gives information about a single player."]}],[{"l":"Players","p":["The players getter gives information about all players."]}],[{"l":"Vehicle","p":["The vehicle getter gives single vehicle information."]}],[{"l":"Vehicles","p":["The vehicles getter gives information about all vehicles."]}],[{"l":"World","p":["A world getter gives information about the in-game world."]}],[{"l":"usePlayer","p":["While there is access to individual waypoints.","It is recommended that if you're accessing many waypoints to use the usePlayer function to get direct access to all functions without having to pass the player each time."]},{"l":"Animation","p":["Play an animation on a player in various ways.","Animation List"]},{"l":"Appearance","p":["Used to set various freeroam character appearance data and store in the database.","All functions will automatically save to the database, except for update"]},{"l":"Audio","p":["Play audio from frontend or using custom .ogg sound files.","If you want to use custom sound files, put them in the webview/public/sounds folder.","Frontend Sound List"]},{"l":"Clothing","p":["All of these functions can be used to adjust character clothing, skins, and uniforms.","Keep in mind that the render order is as follows.","If a skin is present we set the skin, and do nothing else.","If a skin is not present, we apply the clothes to the freeroam model","If a uniform is present, we apply the uniform to the freeroam model","Uniform will always be rendered last and will override clothing pieces.","All functions will automatically save to the database, except for update"]},{"l":"Native","p":["Invoke client natives from server side.","Rebar is adding this because sometimes you don't want to create a whole file to invoke one native on client-side."]},{"l":"Notify","p":["Notify allows you to send different text and messages to the player screen."]},{"l":"Screenshot","p":["Used to get a screenshot of a player's screen.","Mostly used for utility such as getting vehicle screenshots, and such."]},{"l":"Raycast","p":["Used to get what the player is looking at, or find out other information"]},{"l":"Player State","p":["Used to synchronize or apply weapons to a player."]},{"l":"Status","p":["Check if a player has an account bound, or character bound."]},{"l":"Waypoint","p":["Get a waypoint a player may or may not have currently marked on their map.","It can sometimes return undefined."]},{"l":"Weapon","p":["Used to synchronize or apply weapons to a player."]},{"l":"Webview","p":["This specific controller allows controlling the client-side webview instance for a given player.","You can focus the webview, hide pages, or show pages with ease."]},{"l":"World","p":["These functions change what the player will see, or doesn't see.","Often used for drunk effects, changing weather, changing time, or fading a screen to black."]}],[{"l":"Plugin API","p":["API allows for plugins to register their own APIs and make them available globally.","However, they are limited to either server-side or client-side.","This reduces the complexity to import functions from other plugins, or export functions for other plugins."]},{"l":"How to Declare an API","p":["Ensure you have an API setup in your plugin.","Create a global declaration for your API.","Done"]},{"l":"How to Get an API","p":["This is all that's necessary to start working with other plugin APIs.","If you do not want to worry about load order. Consider the following pattern:"]}],[{"l":"Messenger","p":["The messenger system allows for developers to easily send up messages from players and process them as commands or messages for other players to read.","However, the messages are not automatically sent to other players. You as a developer get to decide who sees what messages or if they see text messages at all."]},{"l":"Usage"}],[{"l":"useKeybinder","p":["A simple way to bind keybinds to server-side functionality.","You can determine what key is pressed by using keycode.info.","All client-to-server keybinds are rate limited at 500ms."]},{"l":"Protecting Keybinds","p":["If you want your keybinds to be further protected from spam.","Consider using the various callback utilities for callback protection.","Callback Rate Limiter","Callback Permissions"]}],[{"l":"useProxyFetch","p":["Allows for you to register safe endpoints on server-side which can be called client-side, or server-side.","Effectively calls an API from the server address, rather than the player address."]}],[{"l":"useServerConfig","p":["The server config controls player-wide aspects such as radar display, vehicle class display, etc."]}],[{"l":"useServerTime","p":["This stores server time during runtime, and allows for time to be shared to other plugins.","Additionally, when these functions are used the internal RebarEvents for time changes are invoked."]}],[{"l":"useServerWeather","p":["This stores server weather during runtime, and allows for weather to be shared to other plugins.","Additionally, when these functions are used the internal RebarEvents for weather changes are invoked."]}],[{"l":"Clothing","p":["When you have dlc clothing or just need to use clothing in general.","This utility provides a lot of useful information for available clothing maximum values.","You should 100% use an rpc on server-side to get categories and keep it simple for your userbase."]}],[{"l":"Protect Callback","p":["When you're using events, or you need callbacks to be fully protected and permissioned this utility functions provides a simple wrapper to check for permissions before the callback is executed.","This prevents unauthorized users from executing callbacks at the event level.","A simple, but easy way to add permissions when recieving client-side events, or other callbacks."]}],[{"l":"Rate Limit Callback","p":["When you're using events, or you need callbacks to be protected by a rate limiter, this is a wrapper you can use.","This prevents player invoked functions from being called too frequently.","In fact, if a player calls them too much, they will be kicked."]}],[{"l":"useVehicle","p":["Used to create a new vehicle document, repair vehicles, apply vehicle documents, etc."]}],[{"l":"Configuration Usage","p":["This document provides an overview of the configuration management for a Rebar server application."]},{"l":"Features","p":["Parsing environment variables.","Setting a default value if env variable was not defined.","Basic type validation - number, boolean, string (by default)."]},{"l":"Usage","p":["By default, mongodb is initialized automatically. It is required and has default value of local mongodb instance.","Config defined as an interface, all methods covered with type hints, so you will see all variables and correct types on each method call."]},{"l":"Get config object","p":["You can get the whole config object this way:"]},{"l":"Get variable from config","p":["You can also get a specific value from config:"]},{"l":"Set new variable","p":["To be able to extend default Rebar config, you can extend Config interface this way:","After you've extended Config interface, you'll be able to use it's keys to initialize config variable against the env.","If you will try to parse not a number as number, you will get an uncaught exception:","You will get an uncaught exception here, the server won't start and you will see this in logs:","Error: Can't set auth_session_lifetime: Can't parse 'dummy', it is not a valid number"]},{"l":"Override config variable in runtime","p":["You can change variable value in runtime. Be careful with types."]}],[{"l":"Rebar Event Usage","p":["These events are unique to the Rebar framework, and help provide information about when something happens."]},{"l":"Usage"}],[{"l":"Server API Usage","p":["The server API can be accessed through a single import.","If you want more direct imports, those are also available through your intellisense."]},{"i":"altv-based-import","l":"alt:V Based Import"},{"l":"Direct Import"}],[{"l":"Utility","p":["Utility provides a lot of shared functionality between client, server, and webview.","Your import path may vary depending on where you're importing from."]},{"l":"Import"},{"l":"Usage"},{"l":"Clone Data","p":["When you need to break function bindings for objects, or clone an array. This is a way to do it.","This works exactly the same as a deep clone."]},{"l":"RGBA to Hex","p":["Some values from the natives return as rgba, this converts them to hex."]},{"l":"Missing Number","p":["Return a missing number given a group of numbers."]},{"l":"Randomization","p":["Various randomization functions for creating data."]},{"l":"UID","p":["Randomly generates a short string. Collision can happen."]},{"l":"Vector","p":["Vectors are used to perform various distance checks."]},{"l":"Vehicle Hash Map","p":["When you need vehicle names from hash values or need a large list of vehicles. This is it."]}],[{"l":"Explosion Types","p":["0","1","10","11","12","13","14","15","16","17","18","19","2","20","21","22","23","24","25","26","27","28","29","3","30","31","32","33","34","35","36","37","38","39","4","40","41","42","43","44","45","46","47","48","49","5","50","51","52","53","54","55","56","57","58","59","6","60","61","62","63","64","65","66","67","68","69","7","70","71","72","8","9","AIR_DEFENSE","APCSHELL","BARREL","BIKE","BIRD_CRAP","BLIMP","BLIMP2","BOAT","BOMB_CLUSTER","BOMB_CLUSTER_SECONDARY","BOMB_GAS","BOMB_INCENDIARY","BOMB_STANDARD","BOMB_STANDARD_WIDE","BOMBUSHKA_CANNON","BULLET","BURIEDMINE","BZGAS","CAR","Explosion Type","EXPLOSIVEAMMO","EXPLOSIVEAMMO_SHOTGUN","EXTINGUISHER","FIREWORK","FLAME","FLAME_EXPLODE","FLARE","GAS_CANISTER","GAS_TANK","GRENADE","GRENADELAUNCHER","HI_OCTANE","HUNTER_BARRAGE","HUNTER_CANNON","ID","List of all explosion types.","MINE_UNDERWATER","MOLOTOV","MORTAR_KINETIC","OPPRESSOR2_CANNON","ORBITAL_CANNON","PETROL_PUMP","PIPEBOMB","PLANE","PLANE_ROCKET","PROGRAMMABLEAR","PROPANE","PROXMINE","RAILGUN","RAYGUN","ROCKET","ROGUE_CANNON","SCRIPT_DRONE","SCRIPT_MISSILE","SHIP_DESTROY","SMOKEGRENADE","SMOKEGRENADELAUNCHER","SNOWBALL","STEAM","STICKYBOMB","TANKER","TANKSHELL","TORPEDO","TORPEDO_UNDERWATER","TRAIN","TRUCK","VALKYRIE_CANNON","VEHICLE_BULLET","VEHICLEMINE","VEHICLEMINE_EMP","VEHICLEMINE_KINETIC","VEHICLEMINE_SLICK","VEHICLEMINE_SPIKE","VEHICLEMINE_TAR","WATER_HYDRANT"]}],[{"l":"Frontend Sounds","p":["-1","\"Knuckle_Crack_Hard_Cel","0","1","10_SEC_WARNING","10s","1st_Person_Transition","3_2_1","3_2_1_NON_RACE","5_SEC_WARNING","5_Second_Timer","5s","5s_To_Event_Start_Countdown","A list of common frontend sounds.","Airhorn","all","Altitude_Warning","APT_BvS_Soundset","Apt_Style_Purchase","Arming_Countdown","ASSASSINATION_MULTI","ASSASSINATIONS_HOTEL_TIMER_COUNTDOWN","ATM_SOUNDS","ATM_WINDOW","Audio Name","Audio Ref","BACK","Background","Background_Loop","Background_Sound","BARRY_02_SOUNDSET","BASE_JUMP_PASSED","BASEJUMPS_SOUNDS","Beast_Checkpoint","Beast_Checkpoint_NPC","Bed","Beep_Green","Beep_Red","BIG_SCORE_3A_SOUNDS","BIG_SCORE_SETUP_SOUNDS","Blade_Appear","Blip_Pickup","BOATS_PLANES_HELIS_BOOM","Bomb_Disarmed","Boss_Blipped","Boss_Message_Orange","Breaker_01","Breaker_02","BulldozerDefault","Bus_Schedule_Pickup","CABLE_SNAPS","CAM_PAN_DARTS","Camera_Hum","Camera_Move_Loop","Camera_Shoot","Camera_Zoom","CANCEL","CAR_BIKE_WHOOSH","CAR_STEAL_2_SOUNDSET","CB_RADIO_SFX","CELEBRATION_SOUNDSET","CHALLENGE_UNLOCKED","Change_Cam","Change_Station_Loud","CHARACTER_SELECT","CHECKPOINT_AHEAD","Checkpoint_Beast_Hit","CHECKPOINT_BEHIND","Checkpoint_Cash_Hit","Checkpoint_Hit","CHECKPOINT_MISSED","CHECKPOINT_NORMAL","CHECKPOINT_PERFECT","Checkpoint_Teammate","CHECKPOINT_UNDER_THE_BRIDGE","Cheers","Click","CLICK_BACK","Click_Fail","Click_Special","CLOSE_WINDOW","CLOSED","CLOSING","COLLECTED","CONFIRM_BEEP","CONSTRUCTION_ACCIDENT_1_SOUNDS","CONTINUE","Continue_Accepted","Continue_Appears","CONTINUOUS_SLIDER","Crash","Criminal_Damage_High_Value","Criminal_Damage_Kill_Player","Criminal_Damage_Low_Value","Cycle_Item","DELETE","Delete_Placed_Prop","Deliver_Pick_Up","DiggerRevOneShot","DISTANT_DOG_BARK","DLC_Apartments_Drop_Zone_Sounds","DLC_APT_Apartment_SoundSet","DLC_APT_YACHT_DOOR_SOUNDS","DLC_Dmod_Prop_Editor_Sounds","DLC_HALLOWEEN_FVJ_Sounds","DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS","DLC_HEIST_FLEECA_SOUNDSET","DLC_HEIST_HACKING_SNAKE_SOUNDS","DLC_HEIST_PLANNING_BOARD_SOUNDS","DLC_HEISTS_BIOLAB_FINALE_SOUNDS","DLC_HEISTS_FAILED_SCREEN_SOUNDS","DLC_HEISTS_FINALE_SCREEN_SOUNDS","DLC_HEISTS_GENERAL_FRONTEND_SOUNDS","DLC_HEISTS_GENERIC_SOUNDS","DLC_HEISTS_PREP_SCREEN_SOUNDS","DLC_Lowrider_Relay_Race_Sounds","DLC_Pilot_Chase_Parachute_Sounds","DLC_PILOT_MP_HUD_SOUNDS","DLC_PRISON_BREAK_HEIST_SOUNDS","DLC_TG_Dinner_Sounds","DLC_TG_Running_Back_Sounds","DOCKS_HEIST_FINALE_2B_SOUNDS","DOOR_BUZZ","DOOR_GARAGE","Door_Open","Drill_Pin_Break","Dropped","EDIT","Elevation_Loop","EMP","EMP_Blast","End_Squelch","Enemy_Capture_Start","Enemy_Deliver","Enemy_Pick_Up","Enter_1st","Enter_Area","Enter_Capture_Zone","ERROR","Event_Message_Purple","Event_Start_Text","EXILE_1","EXIT","Exit_Capture_Zone","Failure","Falling_Crates","FAMILY_1_CAR_BREAKDOWN","FAMILY_1_CAR_BREAKDOWN_ADDITIONAL","FAMILY_5_SOUNDS","FAMILY1_BOAT","Faster_Bar_Full","Faster_Click","FBI_HEIST_FINALE_CHOPPER","Feed_Message_Sounds","FestiveGift","FINDING_VIRUS","FIRST_PLACE","FLIGHT_SCHOOL_LESSON_PASSED","FLYING_STREAM_END_INSTANT","FM_Events_Sasquatch_Sounds","FocusIn","FocusOut","Found_Target","Friend_Deliver","Friend_Pick_Up","Frontend_Beast_Fade_Screen","Frontend_Beast_Freeze_Screen","Frontend_Beast_Text_Hit","Frontend_Beast_Transform_Back","GO","GO_NON_RACE","Goal","GOLF_BIRDIE","GOLF_EAGLE","GOLF_NEW_RECORD","Goon_Paid_Large","Goon_Paid_Small","Grab_Chute_Foley","Grab_Parachute","GTAO_APT_DOOR_DOWNSTAIRS_GLASS_SOUNDS","GTAO_APT_DOOR_DOWNSTAIRS_WOOD_SOUNDS","GTAO_Boss_Goons_FM_Shard_Sounds","GTAO_Boss_Goons_FM_Soundset","GTAO_FM_Cross_The_Line_Soundset","GTAO_FM_Events_Soundset","GTAO_Magnate_Boss_Modes_Soundset","GTAO_Magnate_Hunt_Boss_SoundSet","GTAO_Magnate_Yacht_Attack_Soundset","GTAO_MUGSHOT_ROOM_SOUNDS","GTAO_Shepherd_Sounds","GTAO_Speed_Convoy_Soundset","Hack_Failed","Hack_Success","Hang_Up","HEIST_BULLETIN_BOARD_SOUNDSET","Heli_Crash","HIGHLIGHT","Highlight_Accept","Highlight_Cancel","Highlight_Error","Highlight_Move","HIGHLIGHT_NAV_UP_DOWN","HintCamSounds","Hit","Hit_1","Hit_In","Hit_Out","HOORAY","HORDE_COOL_DOWN_TIMER","HUD_AMMO_SHOP_SOUNDSET","HUD_AWARDS","HUD_DEATHMATCH_SOUNDSET","HUD_FREEMODE_SOUNDSET","HUD_FRONTEND_CLOTHESSHOP_SOUNDSET","HUD_FRONTEND_CUSTOM_SOUNDSET","HUD_FRONTEND_DEFAULT_SOUNDSET","HUD_FRONTEND_MP_COLLECTABLE_SOUNDS","HUD_FRONTEND_MP_SOUNDSET","HUD_FRONTEND_TATTOO_SHOP_SOUNDSET","HUD_FRONTEND_WEAPONS_PICKUPS_SOUNDSET","HUD_LIQUOR_STORE_SOUNDSET","HUD_MINI_GAME_SOUNDSET","HUD_MINIGAME_SOUNDSET","HUD_PROPERTY_SOUNDSET","In","Kill_List_Counter","Knuckle_Crack_Slap_Cel","LEADER_BOARD","LEADERBOARD","Lester_Laugh_Phone","LESTER1A_SOUNDS","Lights_On","LIMIT","Load_Scene","LOCAL_PLYR_CASH_COUNTER_COMPLETE","LOCAL_PLYR_CASH_COUNTER_INCREASE","LONG_PLAYER_SWITCH_SOUNDS","LOOSE_MATCH","Lose_1st","LOSER","Lost_Target","Lowrider_Super_Mod_Garage_Sounds","Lowrider_Upgrade","Map_Roll_Down","Map_Roll_Up","MARKER_ERASE","MEDAL_BRONZE","MEDAL_GOLD","MEDAL_SILVER","MEDAL_UP","Menu_Accept","MICHAEL_LONG_SCREAM","Microphone","MINUTE_MAN_01_SOUNDSET","Mission_Pass_Notify","MissionFailedSounds","Move_Loop","MP_5_SECOND_TIMER","MP_AWARD","MP_CCTV_SOUNDSET","MP_Flash","MP_IDLE_KICK","MP_IDLE_TIMER","MP_Impact","MP_LOBBY_SOUNDS","MP_MISSION_COUNTDOWN_SOUNDSET","MP_PLAYER_APARTMENT","MP_PROPERTIES_ELEVATOR_DOORS","MP_RADIO_SFX","MP_RANK_UP","MP_SNACKS_SOUNDSET","MP_WAVE_COMPLETE","NAV","Nav_Arrow_Ahead","Nav_Arrow_Behind","Nav_Arrow_Left","Nav_Arrow_Right","NAV_LEFT_RIGHT","NAV_UP_DOWN","Near_Miss_Counter","Near_Miss_Counter_Reset","NO","NOIR_FILTER_SOUNDS","Object_Collect_Player","Object_Collect_Remote","Object_Dropped_Remote","OFF","Off_High","OK","ON","On_Call_Player_Join","Oneshot_Final","OOB_Cancel","OOB_Start","OOB_Timer_Dynamic","OPEN_WINDOW","OPENED","OPENING","OTHER_TEXT","out","Out_Of_Area","Out_of_Bounds","PALETO_SCORE_2A_BANK_SS","Pan","PAPARAZZO_02_SOUNDSETS","Paper_Shuffle","Parcel_Vehicle_Lost","Payment_Non_Player","Payment_Player","Pen_Tick","PERSON_SCROLL","PERSON_SELECT","PEYOTE_COMPLETED","Phone_Generic_Key_02","Phone_Generic_Key_03","Phone_SoundSet_Default","Phone_Soundset_Franklin","Phone_SoundSet_Glasses_Cam","Phone_SoundSet_Michael","PICK_UP","PICK_UP_WEAPON","Pickup_Briefcase","PICKUP_WEAPON_BALL","PICKUP_WEAPON_SMOKEGRENADE","Pin_Bad","PIN_BUTTON","Pin_Centred","Pin_Good","Pin_Movement","PIPES_LAND","Place_Prop_Fail","Place_Prop_Success","Player_Collect","Player_Enter_Line","Player_Exit_Line","PLAYER_SWITCH_CUSTOM_SOUNDSET","POLICE_CHOPPER_CAM_SOUNDS","Power_Down","Pre_Screen_Stinger","PROPERTY_PURCHASE","PROPERTY_PURCHASE_MEDIUM","PS2A_MONEY_LOST","Pull_Out","PURCHASE","PUSH","Put_Away","QUIT","QUIT_WHOOSH","RACE_PLACED","Radar_Beast_Blip","Radio_Soundset","RAMP_DOWN","RAMP_UP","RANK_UP","Remote_Enemy_Enter_Line","Remote_Friendly_Enter_Line","REMOTE_PLYR_CASH_COUNTER_COMPLETE","REMOTE_PLYR_CASH_COUNTER_INCREASE","Reset_Prop_Position","RESPAWN_ONLINE_SOUNDSET","RESPAWN_SOUNDSET","RESTART","RETRY","Retune_High","Return_To_Vehicle_Timer","ROBBERY_MONEY_TOTAL","ROPE_CUT","ROPE_CUT_SOUNDSET","Rotate_Loop","ROUND_ENDING_STINGER_CUSTOM","SAFE_CRACK_SOUNDSET","SAFE_DOOR_CLOSE","SAFE_DOOR_OPEN","Save_Scene","SCREEN_FLASH","ScreenFlash","SELECT","Select_Placed_Prop","Shard_Disappear","SHOOTING_RANGE_ROUND_OVER","SHORT_PLAYER_SWITCH_SOUND_SET","Short_Transition_In","Short_Transition_Out","SIGN_DESTROYED","SKIP","Slow_Clap_Cel","Sound ID","SPECIAL_ABILITY_SOUNDSET","Start","Start_Squelch","STUN_COLLECT","Success","Sult-16_Super_Mod_Garage_Sounds","Swap_Sides","SWING_SHUT","SwitchRedWarning","SwitchWhiteWarning","Tattooing_Oneshot","Tattooing_Oneshot_Remove","TATTOOIST_SOUNDS","Team_Capture_Start","TENNIS_MATCH_POINT","TENNIS_POINT_WON","TextHit","Thermal_Off","Thermal_On","Thernal_Vision_Loop","TIMER","Timer_10s","Timer_5s","TIMER_STOP","TIMER_STOP_MASTER","TOGGLE_ON","TRAFFIC_CONTROL_BG_NOISE","TRAFFIC_CONTROL_CHANGE_CAM","Traffic_Control_Fail","Traffic_Control_Fail_Blank","Traffic_Control_Light_Switch_Back","TRAFFIC_CONTROL_MOVE_CROSSHAIR","TRAFFIC_CONTROL_TOGGLE_LIGHT","Trail_Custom","TRUCK_RAMP_DOWN","TUMBLER_PIN_FALL","TUMBLER_PIN_FALL_FINAL","TUMBLER_RESET","TUMBLER_TURN","Turn","UNDER_THE_BRIDGE","UNDER_WATER_COME_UP","UNDO","v_4","WastedSounds","WAYPOINT_SET","WEAKEN","WEAPON_AMMO_PURCHASE","WEAPON_ATTACHMENT_EQUIP","WEAPON_ATTACHMENT_UNEQUIP","WEAPON_PURCHASE","WEAPON_SELECT_ARMOR","WEAPON_SELECT_BATON","WEAPON_SELECT_FUEL_CAN","WEAPON_SELECT_GRENADE_LAUNCHER","WEAPON_SELECT_HANDGUN","WEAPON_SELECT_KNIFE","WEAPON_SELECT_OTHER","WEAPON_SELECT_PARACHUTE","WEAPON_SELECT_RIFLE","WEAPON_SELECT_RPG_LAUNCHER","WEAPON_SELECT_SHOTGUN","WEB_NAVIGATION_SOUNDS_PHONE","Whistle","Whoosh_1s_L_to_R","Whoosh_1s_R_to_L","WIN","WIND","YES","Zone_Enemy_Capture","Zone_Neutral","Zone_Team_Capture","Zoom","Zoom_In","Zoom_Left","Zoom_Out","Zoom_Right"]}],[{"i":"gtav-controls","l":"GTA:V Controls","p":["These are all the control groups, and controls official names."]},{"l":"Input Groups","p":["0","1","10","11","12","13","14","15","16","17","18","19","2","20","21","22","23","24","25","26","27","28","29","3","30","31","4","5","6","7","8","9","ID","INPUTGROUP_CELLPHONE_NAVIGATE","INPUTGROUP_CELLPHONE_NAVIGATE_LR","INPUTGROUP_CELLPHONE_NAVIGATE_UD","INPUTGROUP_CURSOR","INPUTGROUP_CURSOR_SCROLL","INPUTGROUP_FLY","INPUTGROUP_FRONTEND_BUMPERS","INPUTGROUP_FRONTEND_DPAD_ALL","INPUTGROUP_FRONTEND_DPAD_LR","INPUTGROUP_FRONTEND_DPAD_UD","INPUTGROUP_FRONTEND_GENERIC_ALL","INPUTGROUP_FRONTEND_GENERIC_LR","INPUTGROUP_FRONTEND_GENERIC_UD","INPUTGROUP_FRONTEND_LSTICK_ALL","INPUTGROUP_FRONTEND_RSTICK_ALL","INPUTGROUP_FRONTEND_STICKS","INPUTGROUP_FRONTEND_TRIGGERS","INPUTGROUP_LOOK","INPUTGROUP_MOVE","INPUTGROUP_SCRIPT_BUMPERS","INPUTGROUP_SCRIPT_DPAD_ALL","INPUTGROUP_SCRIPT_DPAD_LR","INPUTGROUP_SCRIPT_DPAD_UD","INPUTGROUP_SCRIPT_LSTICK_ALL","INPUTGROUP_SCRIPT_RSTICK_ALL","INPUTGROUP_SCRIPT_TRIGGERS","INPUTGROUP_SNIPER_ZOOM_SECONDARY","INPUTGROUP_SUB","INPUTGROUP_VEH_HYDRAULICS_CONTROL","INPUTGROUP_VEH_MOVE_ALL","INPUTGROUP_WEAPON_WHEEL_CYCLE","INPUTGROUP_WHEEL","Name"]},{"l":"Controls","p":["-",",",".","(NONE)","[","]","=","~ / `","0","1","10","100","101","102","103","104","105","106","107","108","109","11","110","111","112","113","114","115","116","117","118","119","12","120","121","122","123","124","125","126","127","128","129","13","130","131","132","133","134","135","136","137","138","139","14","140","141","142","143","144","145","146","147","148","149","15","150","151","152","153","154","155","156","157","158","159","16","160","161","162","163","164","165","166","167","168","169","17","170","171","172","173","174","175","176","177","178","179","18","180","181","182","183","184","185","186","187","188","189","19","190","191","192","193","194","195","196","197","198","199","2","20","200","201","202","203","204","205","206","207","208","209","21","210","211","212","213","214","215","216","217","218","219","22","220","221","222","223","224","225","226","227","228","229","23","230","231","232","233","234","235","236","237","238","239","24","240","241","242","243","244","245","246","247","248","249","25","250","251","252","253","254","255","256","257","258","259","26","260","261","262","263","264","265","266","267","268","269","27","270","271","272","273","274","275","276","277","278","279","28","280","281","282","283","284","285","286","287","288","289","29","290","291","292","293","294","295","296","297","298","299","3","30","300","301","302","303","304","305","306","307","308","309","31","310","311","312","313","314","315","316","317","318","319","32","320","321","322","323","324","325","326","327","328","329","33","330","331","332","333","334","335","336","337","338","339","34","340","341","342","343","344","345","346","347","348","349","35","350","351","352","353","354","355","356","357","36","37","38","39","4","40","41","42","43","44","45","46","47","48","49","5","50","51","52","53","54","55","56","57","58","59","6","60","61","62","63","64","65","66","67","68","69","7","70","71","72","73","74","75","76","77","78","79","8","80","81","82","83","84","85","86","87","88","89","9","90","91","92","93","94","95","96","97","98","99","A","ARROW DOWN","ARROW LEFT","ARROW RIGHT","ARROW UP","ARROW UP / SCROLLWHEEL BUTTON (PRESS)","B","BACK","BACKSPACE","BACKSPACE / ESC","BACKSPACE / ESC / RIGHT MOUSE BUTTON","C","CAPSLOCK","D","Default QWERTY","DELETE","DPAD DOWN","DPAD LEFT","DPAD RIGHT","DPAD UP","E","ENTER","ENTER / LEFT MOUSE BUTTON","ENTER / LEFT MOUSE BUTTON / SPACEBAR","ENTER / NUMPAD ENTER","ESC","F","F / LEFT MOUSE BUTTON","F1","F10","F11","F2","F3","F5","F6","F7","F8 (CONSOLE)","F9","G","H","HOME","ID","INPUT_ACCURATE_AIM","INPUT_AIM","INPUT_ARREST","INPUT_ATTACK","INPUT_ATTACK2","INPUT_CELLPHONE_CAMERA_DOF","INPUT_CELLPHONE_CAMERA_EXPRESSION","INPUT_CELLPHONE_CAMERA_FOCUS_LOCK","INPUT_CELLPHONE_CAMERA_GRID","INPUT_CELLPHONE_CAMERA_SELFIE","INPUT_CELLPHONE_CANCEL","INPUT_CELLPHONE_DOWN","INPUT_CELLPHONE_EXTRA_OPTION","INPUT_CELLPHONE_LEFT","INPUT_CELLPHONE_OPTION","INPUT_CELLPHONE_RIGHT","INPUT_CELLPHONE_SCROLL_BACKWARD","INPUT_CELLPHONE_SCROLL_FORWARD","INPUT_CELLPHONE_SELECT","INPUT_CELLPHONE_UP","INPUT_CHARACTER_WHEEL","INPUT_CINEMATIC_SLOWMO","INPUT_CONTEXT","INPUT_CONTEXT_SECONDARY","INPUT_COVER","INPUT_CREATOR_ACCEPT","INPUT_CREATOR_DELETE","INPUT_CREATOR_LS","INPUT_CREATOR_LT","INPUT_CREATOR_MENU_TOGGLE","INPUT_CREATOR_RS","INPUT_CREATOR_RT","INPUT_CURSOR_ACCEPT","INPUT_CURSOR_CANCEL","INPUT_CURSOR_SCROLL_DOWN","INPUT_CURSOR_SCROLL_UP","INPUT_CURSOR_X","INPUT_CURSOR_Y","INPUT_DETONATE","INPUT_DIVE","INPUT_DROP_AMMO","INPUT_DROP_WEAPON","INPUT_DUCK","INPUT_ENTER","INPUT_ENTER_CHEAT_CODE","INPUT_FRONTEND_ACCEPT","INPUT_FRONTEND_AXIS_X","INPUT_FRONTEND_AXIS_Y","INPUT_FRONTEND_CANCEL","INPUT_FRONTEND_DELETE","INPUT_FRONTEND_DOWN","INPUT_FRONTEND_ENDSCREEN_ACCEPT","INPUT_FRONTEND_ENDSCREEN_EXPAND","INPUT_FRONTEND_LB","INPUT_FRONTEND_LEADERBOARD","INPUT_FRONTEND_LEFT","INPUT_FRONTEND_LS","INPUT_FRONTEND_LT","INPUT_FRONTEND_PAUSE","INPUT_FRONTEND_PAUSE_ALTERNATE","INPUT_FRONTEND_RB","INPUT_FRONTEND_RDOWN","INPUT_FRONTEND_RIGHT","INPUT_FRONTEND_RIGHT_AXIS_X","INPUT_FRONTEND_RIGHT_AXIS_Y","INPUT_FRONTEND_RLEFT","INPUT_FRONTEND_RRIGHT","INPUT_FRONTEND_RS","INPUT_FRONTEND_RT","INPUT_FRONTEND_RUP","INPUT_FRONTEND_SELECT","INPUT_FRONTEND_SOCIAL_CLUB","INPUT_FRONTEND_SOCIAL_CLUB_SECONDARY","INPUT_FRONTEND_UP","INPUT_FRONTEND_X","INPUT_FRONTEND_Y","INPUT_HUD_SPECIAL","INPUT_INTERACTION_MENU","INPUT_JUMP","INPUT_LOOK_BEHIND","INPUT_LOOK_DOWN","INPUT_LOOK_DOWN_ONLY","INPUT_LOOK_LEFT","INPUT_LOOK_LEFT_ONLY","INPUT_LOOK_LR","INPUT_LOOK_RIGHT","INPUT_LOOK_RIGHT_ONLY","INPUT_LOOK_UD","INPUT_LOOK_UP","INPUT_LOOK_UP_ONLY","INPUT_MAP","INPUT_MAP_POI","INPUT_MELEE_ATTACK_ALTERNATE","INPUT_MELEE_ATTACK_HEAVY","INPUT_MELEE_ATTACK_LIGHT","INPUT_MELEE_ATTACK1","INPUT_MELEE_ATTACK2","INPUT_MELEE_BLOCK","INPUT_MOVE_DOWN","INPUT_MOVE_DOWN_ONLY","INPUT_MOVE_LEFT","INPUT_MOVE_LEFT_ONLY","INPUT_MOVE_LR","INPUT_MOVE_RIGHT","INPUT_MOVE_RIGHT_ONLY","INPUT_MOVE_UD","INPUT_MOVE_UP","INPUT_MOVE_UP_ONLY","INPUT_MP_TEXT_CHAT_ALL","INPUT_MP_TEXT_CHAT_CREW","INPUT_MP_TEXT_CHAT_FRIENDS","INPUT_MP_TEXT_CHAT_TEAM","INPUT_MULTIPLAYER_INFO","INPUT_NEXT_CAMERA","INPUT_NEXT_WEAPON","INPUT_PARACHUTE_BRAKE_LEFT","INPUT_PARACHUTE_BRAKE_RIGHT","INPUT_PARACHUTE_DEPLOY","INPUT_PARACHUTE_DETACH","INPUT_PARACHUTE_PITCH_DOWN_ONLY","INPUT_PARACHUTE_PITCH_UD","INPUT_PARACHUTE_PITCH_UP_ONLY","INPUT_PARACHUTE_PRECISION_LANDING","INPUT_PARACHUTE_SMOKE","INPUT_PARACHUTE_TURN_LEFT_ONLY","INPUT_PARACHUTE_TURN_LR","INPUT_PARACHUTE_TURN_RIGHT_ONLY","INPUT_PHONE","INPUT_PICKUP","INPUT_PREV_WEAPON","INPUT_PUSH_TO_TALK","INPUT_RADIO_WHEEL_LR","INPUT_RADIO_WHEEL_UD","INPUT_RAPPEL_JUMP","INPUT_RAPPEL_LONG_JUMP","INPUT_RAPPEL_SMASH_WINDOW","INPUT_RELOAD","INPUT_REPLAY_ADVANCE","INPUT_REPLAY_BACK","INPUT_REPLAY_CAMERADOWN","INPUT_REPLAY_CAMERAUP","INPUT_REPLAY_CLIP_DELETE","INPUT_REPLAY_CTRL","INPUT_REPLAY_CYCLEMARKERLEFT","INPUT_REPLAY_CYCLEMARKERRIGHT","INPUT_REPLAY_ENDPOINT","INPUT_REPLAY_FFWD","INPUT_REPLAY_FOVDECREASE","INPUT_REPLAY_FOVINCREASE","INPUT_REPLAY_HIDEHUD","INPUT_REPLAY_MARKER_DELETE","INPUT_REPLAY_NEWMARKER","INPUT_REPLAY_PAUSE","INPUT_REPLAY_PREVIEW","INPUT_REPLAY_PREVIEW_AUDIO","INPUT_REPLAY_RECORD","INPUT_REPLAY_RESTART","INPUT_REPLAY_REWIND","INPUT_REPLAY_SAVE","INPUT_REPLAY_SCREENSHOT","INPUT_REPLAY_SHOWHOTKEY","INPUT_REPLAY_SNAPMATIC_PHOTO","INPUT_REPLAY_START_STOP_RECORDING","INPUT_REPLAY_START_STOP_RECORDING_SECONDARY","INPUT_REPLAY_STARTPOINT","INPUT_REPLAY_TIMELINE_DUPLICATE_CLIP","INPUT_REPLAY_TIMELINE_PICKUP_CLIP","INPUT_REPLAY_TIMELINE_PLACE_CLIP","INPUT_REPLAY_TIMELINE_SAVE","INPUT_REPLAY_TOGGLE_TIMELINE","INPUT_REPLAY_TOGGLETIME","INPUT_REPLAY_TOGGLETIPS","INPUT_REPLAY_TOOLS","INPUT_SAVE_REPLAY_CLIP","INPUT_SCALED_LOOK_DOWN_ONLY","INPUT_SCALED_LOOK_LEFT_ONLY","INPUT_SCALED_LOOK_LR","INPUT_SCALED_LOOK_RIGHT_ONLY","INPUT_SCALED_LOOK_UD","INPUT_SCALED_LOOK_UP_ONLY","INPUT_SCRIPT_LB","INPUT_SCRIPT_LEFT_AXIS_X","INPUT_SCRIPT_LEFT_AXIS_Y","INPUT_SCRIPT_LS","INPUT_SCRIPT_LT","INPUT_SCRIPT_PAD_DOWN","INPUT_SCRIPT_PAD_LEFT","INPUT_SCRIPT_PAD_RIGHT","INPUT_SCRIPT_PAD_UP","INPUT_SCRIPT_RB","INPUT_SCRIPT_RDOWN","INPUT_SCRIPT_RIGHT_AXIS_X","INPUT_SCRIPT_RIGHT_AXIS_Y","INPUT_SCRIPT_RLEFT","INPUT_SCRIPT_RRIGHT","INPUT_SCRIPT_RS","INPUT_SCRIPT_RT","INPUT_SCRIPT_RUP","INPUT_SCRIPT_SELECT","INPUT_SCRIPTED_FLY_LR","INPUT_SCRIPTED_FLY_UD","INPUT_SCRIPTED_FLY_ZDOWN","INPUT_SCRIPTED_FLY_ZUP","INPUT_SELECT_CHARACTER_FRANKLIN","INPUT_SELECT_CHARACTER_MICHAEL","INPUT_SELECT_CHARACTER_MULTIPLAYER","INPUT_SELECT_CHARACTER_TREVOR","INPUT_SELECT_NEXT_WEAPON","INPUT_SELECT_PREV_WEAPON","INPUT_SELECT_WEAPON","INPUT_SELECT_WEAPON_AUTO_RIFLE","INPUT_SELECT_WEAPON_HANDGUN","INPUT_SELECT_WEAPON_HEAVY","INPUT_SELECT_WEAPON_MELEE","INPUT_SELECT_WEAPON_SHOTGUN","INPUT_SELECT_WEAPON_SMG","INPUT_SELECT_WEAPON_SNIPER","INPUT_SELECT_WEAPON_SPECIAL","INPUT_SELECT_WEAPON_UNARMED","INPUT_SKIP_CUTSCENE","INPUT_SNIPER_ZOOM","INPUT_SNIPER_ZOOM_IN","INPUT_SNIPER_ZOOM_IN_ALTERNATE","INPUT_SNIPER_ZOOM_IN_ONLY","INPUT_SNIPER_ZOOM_IN_SECONDARY","INPUT_SNIPER_ZOOM_OUT","INPUT_SNIPER_ZOOM_OUT_ALTERNATE","INPUT_SNIPER_ZOOM_OUT_ONLY","INPUT_SNIPER_ZOOM_OUT_SECONDARY","INPUT_SPECIAL_ABILITY","INPUT_SPECIAL_ABILITY_PC","INPUT_SPECIAL_ABILITY_SECONDARY","INPUT_SPRINT","INPUT_SWITCH_VISOR","INPUT_TALK","INPUT_THROW_GRENADE","INPUT_VEH_ACCELERATE","INPUT_VEH_AIM","INPUT_VEH_ATTACK","INPUT_VEH_ATTACK2","INPUT_VEH_BIKE_WINGS","INPUT_VEH_BRAKE","INPUT_VEH_CAR_JUMP","INPUT_VEH_CIN_CAM","INPUT_VEH_CINEMATIC_DOWN_ONLY","INPUT_VEH_CINEMATIC_LR","INPUT_VEH_CINEMATIC_UD","INPUT_VEH_CINEMATIC_UP_ONLY","INPUT_VEH_DRIVE_LOOK","INPUT_VEH_DRIVE_LOOK2","INPUT_VEH_DROP_PROJECTILE","INPUT_VEH_DUCK","INPUT_VEH_EXIT","INPUT_VEH_FLY_ATTACK","INPUT_VEH_FLY_ATTACK_CAMERA","INPUT_VEH_FLY_ATTACK2","INPUT_VEH_FLY_BOMB_BAY","INPUT_VEH_FLY_BOOST","INPUT_VEH_FLY_COUNTER","INPUT_VEH_FLY_DUCK","INPUT_VEH_FLY_MOUSE_CONTROL_OVERRIDE","INPUT_VEH_FLY_PITCH_DOWN_ONLY","INPUT_VEH_FLY_PITCH_UD","INPUT_VEH_FLY_PITCH_UP_ONLY","INPUT_VEH_FLY_ROLL_LEFT_ONLY","INPUT_VEH_FLY_ROLL_LR","INPUT_VEH_FLY_ROLL_RIGHT_ONLY","INPUT_VEH_FLY_SELECT_NEXT_WEAPON","INPUT_VEH_FLY_SELECT_PREV_WEAPON","INPUT_VEH_FLY_SELECT_TARGET_LEFT","INPUT_VEH_FLY_SELECT_TARGET_RIGHT","INPUT_VEH_FLY_THROTTLE_DOWN","INPUT_VEH_FLY_THROTTLE_UP","INPUT_VEH_FLY_UNDERCARRIAGE","INPUT_VEH_FLY_VERTICAL_FLIGHT_MODE","INPUT_VEH_FLY_YAW_LEFT","INPUT_VEH_FLY_YAW_RIGHT","INPUT_VEH_GRAPPLING_HOOK","INPUT_VEH_GUN_DOWN","INPUT_VEH_GUN_LEFT","INPUT_VEH_GUN_LR","INPUT_VEH_GUN_RIGHT","INPUT_VEH_GUN_UD","INPUT_VEH_GUN_UP","INPUT_VEH_HANDBRAKE","INPUT_VEH_HEADLIGHT","INPUT_VEH_HORN","INPUT_VEH_HOTWIRE_LEFT","INPUT_VEH_HOTWIRE_RIGHT","INPUT_VEH_HYDRAULICS_CONTROL_DOWN","INPUT_VEH_HYDRAULICS_CONTROL_LEFT","INPUT_VEH_HYDRAULICS_CONTROL_LR","INPUT_VEH_HYDRAULICS_CONTROL_RIGHT","INPUT_VEH_HYDRAULICS_CONTROL_TOGGLE","INPUT_VEH_HYDRAULICS_CONTROL_UD","INPUT_VEH_HYDRAULICS_CONTROL_UP","INPUT_VEH_JUMP","INPUT_VEH_LOOK_BEHIND","INPUT_VEH_LOOK_LEFT","INPUT_VEH_LOOK_RIGHT","INPUT_VEH_MELEE_HOLD","INPUT_VEH_MELEE_LEFT","INPUT_VEH_MELEE_RIGHT","INPUT_VEH_MOUSE_CONTROL_OVERRIDE","INPUT_VEH_MOVE_DOWN","INPUT_VEH_MOVE_DOWN_ONLY","INPUT_VEH_MOVE_LEFT","INPUT_VEH_MOVE_LEFT_ONLY","INPUT_VEH_MOVE_LR","INPUT_VEH_MOVE_RIGHT","INPUT_VEH_MOVE_RIGHT_ONLY","INPUT_VEH_MOVE_UD","INPUT_VEH_MOVE_UP","INPUT_VEH_MOVE_UP_ONLY","INPUT_VEH_NEXT_RADIO","INPUT_VEH_NEXT_RADIO_TRACK","INPUT_VEH_PARACHUTE","INPUT_VEH_PASSENGER_AIM","INPUT_VEH_PASSENGER_ATTACK","INPUT_VEH_PREV_RADIO","INPUT_VEH_PREV_RADIO_TRACK","INPUT_VEH_PUSHBIKE_FRONT_BRAKE","INPUT_VEH_PUSHBIKE_PEDAL","INPUT_VEH_PUSHBIKE_REAR_BRAKE","INPUT_VEH_PUSHBIKE_SPRINT","INPUT_VEH_RADIO_WHEEL","INPUT_VEH_ROCKET_BOOST","INPUT_VEH_ROOF","INPUT_VEH_SELECT_NEXT_WEAPON","INPUT_VEH_SELECT_PREV_WEAPON","INPUT_VEH_SHUFFLE","INPUT_VEH_SLOWMO_DOWN_ONLY","INPUT_VEH_SLOWMO_UD","INPUT_VEH_SLOWMO_UP_ONLY","INPUT_VEH_SPECIAL","INPUT_VEH_SPECIAL_ABILITY_FRANKLIN","INPUT_VEH_STUNT_UD","INPUT_VEH_SUB_ASCEND","INPUT_VEH_SUB_DESCEND","INPUT_VEH_SUB_MOUSE_CONTROL_OVERRIDE","INPUT_VEH_SUB_PITCH_DOWN_ONLY","INPUT_VEH_SUB_PITCH_UD","INPUT_VEH_SUB_PITCH_UP_ONLY","INPUT_VEH_SUB_THROTTLE_DOWN","INPUT_VEH_SUB_THROTTLE_UP","INPUT_VEH_SUB_TURN_HARD_LEFT","INPUT_VEH_SUB_TURN_HARD_RIGHT","INPUT_VEH_SUB_TURN_LEFT_ONLY","INPUT_VEH_SUB_TURN_LR","INPUT_VEH_SUB_TURN_RIGHT_ONLY","INPUT_VEH_TRANSFORM","INPUT_WEAPON_SPECIAL","INPUT_WEAPON_SPECIAL_TWO","INPUT_WEAPON_WHEEL_LR","INPUT_WEAPON_WHEEL_NEXT","INPUT_WEAPON_WHEEL_PREV","INPUT_WEAPON_WHEEL_UD","INPUT_WHISTLE","INSERT","K","L","L3","LB","LEFT ALT","LEFT CONTROL","LEFT CTRL","LEFT MOUSE BUTTON","LEFT SHIFT","LEFT STICK","LT","M","MOUSE DOWN","MOUSE RIGHT","N","Name","NUMPAD -","NUMPAD +","NUMPAD 4","NUMPAD 5","NUMPAD 6","NUMPAD 7","NUMPAD 8","NUMPAD 9","NUMPAD- / SCROLLWHEEL UP","NUMPAD+ / SCROLLWHEEL DOWN","P","PAGE DOWN","PAGE UP","PAGEDOWN","PAGEUP","Q","R","R3","RB","RIGHT MOUSE BUTTON","RIGHT STICK","RT","S","SCROLLWHEEL BUTTON (PRESS)","SCROLLWHEEL DOWN","SCROLLWHEEL UP","SPACEBAR","START","T","TAB","U","V","W","X","Xbox Controller","Y","Z"]}],[{"l":"Ped Bones","p":["0","10706","11174","11816","12844","1356","14201","16335","17188","17719","18905","19336","20178","20279","20623","20781","2108","21550","22711","23553","23639","24806","24816","24817","24818","25260","26610","26611","26612","26613","26614","27474","28252","28422","29868","2992","31086","35502","35731","36029","36864","37119","37193","39317","40269","4089","4090","4137","4138","4153","4154","4169","4170","4185","4186","43536","43810","45509","45750","46078","46240","47419","47495","49979","51826","52301","5232","56604","57005","57597","57717","58271","58331","58866","58867","58868","58869","58870","60309","61007","61163","61839","6286","63931","64016","64017","64064","64065","64080","64081","64096","64097","64112","64113","6442","64729","65068","65245","Bone Name","FACIAL_facialRoot","FB_Brow_Centre_000","FB_Jaw_000","FB_L_Brow_Out_000","FB_L_CheekBone_000","FB_L_Eye_000","FB_L_Lid_Upper_000","FB_L_Lip_Bot_000","FB_L_Lip_Corner_000","FB_L_Lip_Top_000","FB_LowerLip_000","FB_LowerLipRoot_000","FB_R_Brow_Out_000","FB_R_CheekBone_000","FB_R_Eye_000","FB_R_Lid_Upper_000","FB_R_Lip_Bot_000","FB_R_Lip_Corner_000","FB_R_Lip_Top_000","FB_Tongue_000","FB_UpperLip_000","FB_UpperLipRoot_000","ID","IK_Head","IK_L_Foot","IK_L_Hand","IK_R_Foot","IK_R_Hand","IK_Root","MH_L_Elbow","MH_L_Knee","MH_R_Elbow","MH_R_Knee","PH_L_Foot","PH_L_Hand","PH_R_Foot","PH_R_Hand","RB_L_ArmRoll","RB_L_ForeArmRoll","RB_L_ThighRoll","RB_Neck_1","RB_R_ArmRoll","RB_R_ForeArmRoll","RB_R_ThighRoll","SKEL_Head","SKEL_L_Calf","SKEL_L_Clavicle","SKEL_L_Finger00","SKEL_L_Finger01","SKEL_L_Finger02","SKEL_L_Finger10","SKEL_L_Finger11","SKEL_L_Finger12","SKEL_L_Finger20","SKEL_L_Finger21","SKEL_L_Finger22","SKEL_L_Finger30","SKEL_L_Finger31","SKEL_L_Finger32","SKEL_L_Finger40","SKEL_L_Finger41","SKEL_L_Finger42","SKEL_L_Foot","SKEL_L_Forearm","SKEL_L_Hand","SKEL_L_Thigh","SKEL_L_Toe0","SKEL_L_UpperArm","SKEL_Neck_1","SKEL_Pelvis","SKEL_R_Calf","SKEL_R_Clavicle","SKEL_R_Finger00","SKEL_R_Finger01","SKEL_R_Finger02","SKEL_R_Finger10","SKEL_R_Finger11","SKEL_R_Finger12","SKEL_R_Finger20","SKEL_R_Finger21","SKEL_R_Finger22","SKEL_R_Finger30","SKEL_R_Finger31","SKEL_R_Finger32","SKEL_R_Finger40","SKEL_R_Finger41","SKEL_R_Finger42","SKEL_R_Foot","SKEL_R_Forearm","SKEL_R_Hand","SKEL_R_Thigh","SKEL_R_Toe0","SKEL_R_UpperArm","SKEL_ROOT","SKEL_Spine_Root","SKEL_Spine0","SKEL_Spine1","SKEL_Spine2","SKEL_Spine3"]}],[{"l":"Vehicle Bones","p":["afterburner","aileron_l","aileron_r","airbrake_l","airbrake_r","ammobelt","arm_1","arm_2","arm_3","arm_4","attach_female","attach_male","barracks","bobble_base","bobble_hand","bobble_head","bodyshell","bogie_front","bogie_rear","Bone Name","bonnet","boom","Boom_Driver","boot","brakelight_l","brakelight_m","brakelight_r","break_extra_1","break_extra_10","break_extra_2","break_extra_3","break_extra_4","break_extra_5","break_extra_6","break_extra_7","break_extra_8","break_extra_9","bucket","bumper_f","bumper_r","carriage","chassis","chassis_Control","chassis_dummy","chassis_lowlod","combine_auger","combine_reel","crank","cutter_driver","dashglow","dials","door_dside_f","door_dside_r","door_hatch_l","door_hatch_r","door_pside_f","door_pside_r","doorlight_lf","doorlight_lr","doorlight_rf","doorlight_rr","draft_animal_attach_lf","draft_animal_attach_lm","draft_animal_attach_lr","draft_animal_attach_rf","draft_animal_attach_rm","draft_animal_attach_rr","elevator_l","elevator_r","elevators","emissives","engine","engine_l","engine_r","engineblock","exhaust","exhaust_10","exhaust_11","exhaust_12","exhaust_13","exhaust_14","exhaust_15","exhaust_16","exhaust_2","exhaust_3","exhaust_4","exhaust_5","exhaust_6","exhaust_7","exhaust_8","exhaust_9","extra_1","extra_11","extra_12","extra_2","extra_3","extra_4","extra_5","extra_6","extra_7","extra_8","extra_9","extra_ten","extralight_1","extralight_2","extralight_3","extralight_4","fork_l","fork_r","forks","forks_attach","forks_l","forks_u","frame_1","frame_2","frame_3","frame_pickup_1","frame_pickup_2","frame_pickup_3","frame_pickup_4","freight_bogey","freight_cont","freightgrain_slidedoor","gear_door_fl","gear_door_fr","gear_door_rl1","gear_door_rl2","gear_door_rml","gear_door_rmr","gear_door_rr1","gear_door_rr2","gear_f","gear_lm1","gear_rl","gear_rm","gear_rm1","gear_rr","handle_dside_f","handle_dside_r","handle_pside_f","handle_pside_r","handlebars","hbgrip_l","hbgrip_r","headlight_l","headlight_r","hub_lf","hub_lm1","hub_lm2","hub_lm3","hub_lr","hub_rf","hub_rm1","hub_rm2","hub_rm3","hub_rr","indicator_lf","indicator_lr","indicator_rf","indicator_rr","interiorlight","legs","light_cover","Lookat_LowrPiston_boom","Lookat_UpprPiston_head","mast","misc_1","misc_2","misc_a","misc_b","misc_c","misc_d","misc_e","misc_f","misc_g","misc_h","misc_i","misc_j","misc_k","misc_l","misc_m","misc_n","misc_o","misc_p","misc_q","misc_r","misc_s","misc_t","misc_u","misc_v","misc_w","misc_x","misc_y","misc_z","mod_col_1","mod_col_2","mod_col_3","mod_col_4","mod_col_5","moving_prop","moving_prop2","neon_b","neon_f","neon_l","neon_r","no_ped_col_step_l","no_ped_col_step_r","no_ped_col_strut_1_l","no_ped_col_strut_1_r","no_ped_col_strut_2_l","no_ped_col_strut_2_r","nozzles_f","nozzles_r","numberplate","outriggers_l","outriggers_r","overheat","overheat_2","pedal_l","pedal_r","petrolcap","petroltank","petroltank_l","petroltank_r","pontoon_l","pontoon_r","prop_1","prop_2","prop_3","prop_4","prop_5","prop_6","prop_7","prop_8","prop_left","prop_right","reversinglight_l","reversinglight_r","roof","roof2","rope_attach_a","rope_attach_b","rotor_main","rotor_main_2","rotor_rear","rotor_rear_2","rudder","rudder_2","rudder_l","rudder_r","rudder2","scoop","searchlight_base","searchlight_light","seat_dside_f","seat_dside_r","seat_dside_r1","seat_dside_r2","seat_dside_r3","seat_dside_r4","seat_dside_r5","seat_dside_r6","seat_dside_r7","seat_pside_f","seat_pside_r","seat_pside_r1","seat_pside_r2","seat_pside_r3","seat_pside_r4","seat_pside_r5","seat_pside_r6","seat_pside_r7","shovel_2","shovel_3","siren_glass1","siren_glass10","siren_glass11","siren_glass12","siren_glass13","siren_glass14","siren_glass15","siren_glass16","siren_glass17","siren_glass18","siren_glass19","siren_glass2","siren_glass20","siren_glass3","siren_glass4","siren_glass5","siren_glass6","siren_glass7","siren_glass8","siren_glass9","siren1","siren10","siren11","siren12","siren13","siren14","siren15","siren16","siren17","siren18","siren19","siren2","siren20","siren3","siren4","siren5","siren6","siren7","siren8","siren9","slipstream_l","slipstream_r","soft_1","soft_10","soft_11","soft_12","soft_13","soft_2","soft_3","soft_4","soft_5","soft_6","soft_7","soft_8","soft_9","spoiler","spring_lf","spring_lr","spring_rf","spring_rr","static_prop","static_prop2","steering","stick","struts","suspension_lf","suspension_lm","suspension_lr","suspension_rf","suspension_rm","suspension_rr","swingarm","tail","taillight_l","taillight_r","tipper","tow_arm","tow_mount_a","tow_mount_b","transmission_f","transmission_m","transmission_r","turret_1barrel","turret_1base","turret_2barrel","turret_2base","turret_3barrel","turret_3base","unknown_id","vehicle_blocker","weapon_1a","weapon_1a_rot","weapon_1b","weapon_1b_rot","weapon_1c","weapon_1c_rot","weapon_1d","weapon_1d_rot","weapon_2a","weapon_2a_rot","weapon_2b","weapon_2b_rot","weapon_2c","weapon_2c_rot","weapon_2d","weapon_2d_rot","weapon_3a","weapon_3a_rot","weapon_3b","weapon_3b_rot","weapon_3c","weapon_3c_rot","weapon_3d","weapon_3d_rot","weapon_4a","weapon_4a_rot","weapon_4b","weapon_4b_rot","weapon_4c","weapon_4c_rot","weapon_4d","weapon_4d_rot","wheel_f","wheel_lb1_dummy","wheel_lb2_dummy","wheel_lb3_dummy","wheel_lf","wheel_lf1_dummy","wheel_lf2_dummy","wheel_lf3_dummy","wheel_lm1","wheel_lm2","wheel_lm3","wheel_lr","wheel_r","wheel_rb1_dummy","wheel_rb2_dummy","wheel_rb3_dummy","wheel_rf","wheel_rf1_dummy","wheel_rf2_dummy","wheel_rf3_dummy","wheel_rm1","wheel_rm2","wheel_rm3","wheel_rr","wheelcover_l","wheelcover_r","window_lf","window_lf1","window_lf2","window_lf3","window_lm","window_lr","window_lr1","window_lr2","window_lr3","window_rf","window_rf1","window_rf2","window_rf3","window_rm","window_rr","window_rr1","window_rr2","window_rr3","windscreen","windscreen_r","wing_l","wing_lf","wing_lr","wing_r","wing_rf","wing_rr","wingtip_1","wingtip_2"]}],[{"l":"Vehicle Colors","p":["#08e9fa","#0a0c17","#0b1421","#0b9cf1","#0c0d18","#0d1116","#0e0d14","#11141a","#112552","#122e2b","#12383c","#13181f","#132428","#151921","#155c2d","#1b203e","#1b6770","#1c1d21","#1c3551","#1d2129","#1d5a3f","#1e1d22","#1e232f","#1e2429","#1f2852","#221b19","#222e46","#22383e","#233155","#2354a1","#2446a8","#253aa7","#26282a","#275190","#282c4d","#2a282b","#2d362a","#2d423f","#2f2d52","#304c7e","#31423f","#32383d","#333a3c","#345e72","#354158","#363a3f","#371c25","#39434d","#394762","#3a2a1b","#3b39e0","#3c3f47","#402e2b","#4271e1","#444e54","#453831","#454b4f","#45594b","#46231a","#473f2b","#47578f","#49111d","#4c5f81","#4cc3da","#4e6443","#503218","#506272","#515554","#58688e","#5870a1","#5a6352","#608592","#621276","#63625c","#637380","#637ba7","#653f23","#65867f","#66b81f","#696748","#6a747c","#6b1f7b","#6c6b4b","#6ea3c6","#6f1818","#726c57","#732021","#74b5d8","#752b19","#76afbe","#775c3e","#778794","#785f33","#7a6440","#7a6c55","#7b1a22","#7f6a48","#81827f","#81844c","#83c566","#8c9095","#8e1b1f","#8f1e17","#916532","#979a97","#98d223","#999da0","#9b8c78","#9ba0a8","#9c1016","#9f9e8a","#a0a199","#a4965f","#a51e23","#a94744","#ac9975","#afd6e4","#b0ab94","#b0ee6e","#b16c51","#b5a079","#b60f25","#b6111b","#b7bfca","#bc1917","#bcac8f","#bfae7b","#c00e1a","#c2944f","#c2c4c6","#c3b492","#cf1f21","#d3d3d3","#d44a17","#d6e7f1","#da1918","#de0f18","#df5891","#dfd5b2","#dfddd0","#e0e13d","#eae6de","#eaeaea","#f1cc40","#f21f99","#f27d20","#f2ad2e","#f6ae20","#f78616","#f7edd5","#f8b658","#f9a458","#fbe212","#fcf9f1","#fdd6cd","#ffc91f","#ffcf20","#fffff6","#fffffb","#ffffff","■■■■","0","1","10","10, 12, 23","100","101","101, 134, 127","101, 63, 35","102","102, 184, 31","103","104","105","105, 103, 72","106","106, 116, 124","107","107, 31, 123","108","108, 107, 75","109","11","11, 156, 241","11, 20, 33","110","110, 163, 198","111","111, 24, 24","112","113","114","114, 108, 87","115","115, 32, 33","116","116, 181, 216","117","117, 43, 25","118","118, 175, 190","119","119, 135, 148","119, 92, 62","12","12, 13, 24","120","120, 95, 51","121","122","122, 100, 64","122, 108, 85","123","123, 26, 34","124","125","126","127","127, 106, 72","128","129","129, 130, 127","129, 132, 76","13","13, 17, 22","130","131","131, 197, 102","132","133","134","135","136","137","138","139","14","14, 13, 20","140","140, 144, 149","141","142","142, 27, 31","143","143, 30, 23","144","145","145, 101, 50","146","147","148","149","15","150","151","151, 154, 151","152","152, 210, 35","153","153, 157, 160","154","155","155, 140, 120","155, 160, 168","156","156, 16, 22","157","158","159","159, 158, 138","16","160, 161, 153","164, 150, 95","165, 30, 35","169, 71, 68","17","17, 20, 26","17, 37, 82","172, 153, 117","175, 214, 228","176, 171, 148","176, 238, 110","177, 108, 81","18","18, 46, 43","18, 56, 60","181, 160, 121","182, 15, 37","182, 17, 27","183, 191, 202","188, 172, 143","188, 25, 23","19","19, 24, 31","19, 36, 40","191, 174, 123","192, 14, 26","194, 148, 79","194, 196, 198","195, 180, 146","2","20","207, 31, 33","21","21, 25, 33","21, 92, 45","211, 211, 211","212, 74, 23","214, 231, 241","218, 25, 24","22","222, 15, 24","223, 213, 178","223, 221, 208","223, 88, 145","224, 225, 61","23","234, 230, 222","234, 234, 234","24","241, 204, 64","242, 125, 32","242, 173, 46","242, 31, 153","246, 174, 32","247, 134, 22","247, 237, 213","248, 182, 88","249, 164, 88","25","251, 226, 18","252, 249, 241","253, 214, 205","255, 201, 31","255, 207, 32","255, 255, 246","255, 255, 251","255, 255, 255","26","27","27, 103, 112","27, 32, 62","28","28, 29, 33","28, 53, 81","29","29, 33, 41","29, 90, 63","3","30","30, 29, 34","30, 35, 47","30, 36, 41","31","31, 40, 82","32","33","34","34, 27, 25","34, 46, 70","34, 56, 62","35","35, 49, 85","35, 84, 161","36","36, 70, 168","37","37, 58, 167","38","38, 40, 42","39","39, 81, 144","4","40","40, 44, 77","41","42","42, 40, 43","43","44","45","45, 54, 42","45, 66, 63","46","47","47, 45, 82","48","48, 76, 126","49","49, 66, 63","5","50","50, 56, 61","51","51, 58, 60","52","52, 94, 114","53","53, 65, 88","54","54, 58, 63","55","55, 28, 37","56","57","57, 67, 77","57, 71, 98","58","58, 42, 27","59","59, 57, 224","6","60","60, 63, 71","61","62","63","64","64, 46, 43","65","66","66, 113, 225","67","68","68, 78, 84","69","69, 56, 49","69, 75, 79","69, 89, 75","7","70","70, 35, 26","71","71, 63, 43","71, 87, 143","72","73","73, 17, 29","74","75","76","76, 195, 218","76, 95, 129","77","78","78, 100, 67","79","8","8, 233, 250","80","80, 50, 24","80, 98, 114","81","81, 85, 84","82","83","84","85","86","87","88","88, 104, 142","88, 112, 161","89","9","90","90, 99, 82","91","92","93","94","95","96","96, 133, 146","97","98","98, 18, 118","99","99, 115, 128","99, 123, 167","99, 98, 92","Blue","Brushed Aluminium","Brushed Black steel","Brushed Gold","Brushed Steel","Chrome","DEFAULT ALLOY COLOR","Description","Epsilon Blue","Green","HEX","Hot Pink","hunter green","ID","Matte Black","Matte Blue","Matte Brown","Matte Dark Blue","Matte Dark Purple","Matte Dark Red","Matte Desert Brown","Matte Desert Tan","Matte Foilage Green","Matte Forest Green","Matte Gray","Matte Green","Matte Light Grey","Matte Lime Green","Matte Midnight Blue","Matte Olive Drab","Matte Orange","Matte Purple","Matte Red","Matte White","Matte Yellow","Metaillic V Dark Blue","Metallic Anthracite Grey","Metallic Beach Sand","Metallic Beechwood","Metallic Biston Brown","Metallic Black","Metallic Black Purple","Metallic Black Red","Metallic Black Steal","Metallic Blaze Red","Metallic Blue","Metallic Blue Silver","Metallic Bright Blue","Metallic Bronze","Metallic Cabernet Red","Metallic Candy Red","Metallic Champagne","Metallic Choco Brown","Metallic Choco Orange","Metallic Classic Gold","Metallic Cream","Metallic Dark Beechwood","Metallic Dark Blue","Metallic Dark Green","Metallic Dark Ivory","Metallic Dark Silver","Metallic Desert Red","Metallic Diamond Blue","Metallic Formula Red","Metallic Frost White","Metallic Garnet Red","Metallic Gasoline Blue Green","Metallic Golden Brown","Metallic Graceful Red","Metallic Graphite Black","Metallic Green","Metallic Gun Metal","Metallic Harbor Blue","Metallic Lava Red","Metallic Light Brown","Metallic Lime","Metallic Mariner Blue","Metallic Midnight Blue","Metallic Midnight Silver","Metallic Moss Brown","Metallic Nautical Blue","Metallic Olive Green","Metallic Orange","Metallic Pueblo Beige","Metallic Purple","Metallic Purple Blue","Metallic Race Yellow","Metallic Racing Green","Metallic Red","Metallic Saxony Blue","Metallic Sea Green","Metallic Securicor Green","Metallic Shadow Silver","Metallic Silver","Metallic Spinnaker Blue","Metallic Steel Gray","Metallic Stone Silver","Metallic Straw Beige","Metallic Sun Bleeched Sand","Metallic Sunrise Orange","Metallic Surf Blue","Metallic Taxi Yellow","Metallic Torino Red","Metallic Ultra Blue","Metallic Vermillion Pink","Metallic White","Metallic Yellow Bird","Mettalic Black Blue","MODSHOP BLACK1","Orange","police car blue","Pure Gold","Pure White","RGB","Salmon pink","Util Black","Util Black Poly","Util Blue","Util Bright Blue","Util Bright Red","Util Brown","Util Dark Blue","Util Dark Green","Util Dark silver","Util Garnet Red","Util Green","Util Gun Metal","Util Light Brown","Util Lightning blue","Util Maui Blue Poly","Util Medium Brown","Util Midnight Blue","Util Off White","Util Red","Util Sea Foam Blue","Util Shadow Silver","Util Silver","Worn Black","Worn Blue","Worn Blue Silver","Worn Brown","Worn Dark blue","Worn Dark Brown","Worn Dark Green","Worn Dark Red","Worn Golden Red","Worn Graphite","Worn Green","Worn Honey Beige","Worn Light blue","Worn Light Orange","Worn Off White","Worn Olive Army Green","Worn Orange","Worn Red","Worn Sea Wash","Worn Shadow Silver","Worn Silver","Worn Silver Grey","Worn straw beige","Worn Taxi Yellow","Worn White"]}],[{"l":"Vehicle Mods"},{"l":"Mods","p":["0","1","10","11","12","13","14 (0 to 51)","15","16","18","2","20","22","23","24 (Only for Motorcycles)","25","27","28","3","30","33","34","35","38","4","40","48","5","55","6","62","66","67","7","8","9","Armor","Back Wheels","Boost","Brakes","Colour 1","Colour 2","Description","Dial Design","Engine","Exhaust","Fender","Frame","Front Bumper","Front Wheels","Grille","Hood","Horns","Hydraulics","Livery","Mod Index","Ornaments","Plaques","Plate","Plate holders","Rear Bumper","Right Fender","Roof","Shift Lever","Side Skirt","Spoilers","Steering Wheel","Suspension","Transmission","Trim Design","Turbo","Util Shadow Silver","Window Tint","Xenon"]},{"i":"bennys","l":"Benny's","p":["25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","Aerials","Air filter","Arch Cover","Dashboard","Dial","Door Speaker","Engine Block","Hydraulics","ID","Livery","Ornaments","Plaques","Plateholder","Seats","Shifter Leavers","Speakers","Steering wheels","Struts","Tank","Trim","Trunk","Type Name","Unknown","Vanity Plates","Windows"]},{"l":"Los Santos Customs","p":["-1 to 0","-1 to 2","-1 to 3","-1 to 34","-1 to 4","11","12","14","16","22","46","62","Armour","Brakes","Engine","Horns","Indexes","Plate","Type ID","Type Name","Window Tint","Xenon Headlights"]},{"l":"Horn Types","p":["-1","0","1","10","11","12","13","14","15","16","17","18","19","2","20","21","22","23","24","25","26","27","28","29","3","30","31","32","33","34","4","5","6","7","8","9","HORN_CALSSICAL1","HORN_CALSSICAL2","HORN_CALSSICAL3","HORN_CALSSICAL4","HORN_CALSSICAL5","HORN_CALSSICAL6","HORN_CALSSICAL7","HORN_CLASSICAL8","HORN_CLASSICALLOOP1","HORN_CLASSICALLOOP2","HORN_CLOWN","HORN_JAZZ1","HORN_JAZZ2","HORN_JAZZ3","HORN_JAZZLOOP","HORN_MUSICAL1","HORN_MUSICAL2","HORN_MUSICAL3","HORN_MUSICAL4","HORN_MUSICAL5","HORN_POLICE","HORN_SADTROMBONE","HORN_SCALEDO","HORN_SCALEDO_HIGH","HORN_SCALEFA","HORN_SCALELA","HORN_SCALEMI","HORN_SCALERE","HORN_SCALESOL","HORN_SCALETI","HORN_STARSPANGBAN1","HORN_STARSPANGBAN2","HORN_STARSPANGBAN3","HORN_STARSPANGBAN4","HORN_STOCK","HORN_TRUCK","IndexID","ModName","Type Id"]},{"l":"Engine Types","p":["Type Id","Description","IndexID","11","Standard Engine","-1","EMS-Improvement 1","0","EMS-Improvement 2","1","EMS-Improvement 3","2","EMS-Improvement 4","3"]},{"l":"Break Types","p":["Type Id","Description","IndexID","12","Standard Brakes","-1","Street Brakes","0","Sport Brakes","1","Race Brakes","2"]},{"l":"Transmission Types","p":["Type Id","Description","IndexID","13","Standard Transmission","-1","Street Transmission","0","Sport Transmission","1","Race Transmission","2"]},{"l":"Suspensions Types","p":["Type Id","Description","IndexID","15","Standard Suspension","-1","Lower Suspension","0","Street Suspension","1","Sport Suspension","2","Race Suspension","3"]},{"l":"Armour Types","p":["-1","0","1","100% Armour","16","2","20% Armour","3","4","40% Armour","60% Armour","80% Armour","Description","IndexID","No Armour","Type Id"]},{"l":"Turbo","p":["Type Id","Description","IndexID","18","None","-1","Turbo Tuning","0"]},{"l":"Xenon Headlights","p":["Type Id","Description","IndexID","22","Standard Lights","-1","0"]},{"l":"Window Types","p":["Type Id","Description","IndexID","46","None","-1","Light Smokeglas","0","Dark Smokeglas","1","Limousine","2"]},{"l":"Plate Types","p":["Type Id","Description","IndexID","62","Blue on White1","-1","Blue on White2","0","Blue on White3","1","Yellow on Blue","2","Yellow on Black","3"]},{"l":"Boost Types","p":["Type Id","Description","IndexID","40","None","-1","20% Nitrous","0","60% Nitrous","1","100% Nitrous","2","Ram Boost","3"]}],[{"l":"Weapon Pickup Models","p":["0x116FC4E6","0x14568F28","0x1CD2CF66","0x1CD604C7","0x1D9588D3","0x1E9A99F8","0x20796A82","0x20893292","0x22B15640","0x278D8734","0x295691A9","0x2C014CA6","0x2C804FE3","0x2DD30479","0x2E071B5A","0x2E764125","0x2F36B434","0x31EA45C9","0x3A4C2AD2","0x3B0F70A7","0x3B662889","0x3DE942BD","0x41D2CF56","0x4316CC09","0x499A096A","0x4B5259BE","0x4BFB42D1","0x4C35269","0x4D36C349","0x4E301CD0","0x4F92184","0x5307A4EC","0x550447A9","0x5A26FE0","0x5C517D97","0x5DB6C18A","0x5DE0AD3E","0x5E0683A1","0x5EA16D74","0x602941D0","0x614BFCAC","0x624F7213","0x65948212","0x65A7D8E9","0x6773257D","0x68605A36","0x693583AD","0x6C5B941A","0x6D60976C","0x6E4E65C2","0x6E717A95","0x711D02A4","0x741C684A","0x763F7121","0x77F3F2DD","0x789576E2","0x79284A9","0x7C119D58","0x80AB931C","0x815D66E8","0x8187206F","0x81EE601E","0x84837FD7","0x84D676D4","0x85CAA9B1","0x872DC888","0x881AB0A8","0x88EAACA7","0x8967B4F3","0x8ADDEC75","0x8C0FCB13","0x8F707C18","0x90EFDF3B","0x9299C95B","0x93EBB26","0x94FA0B5E","0x968339D","0x96B412A3","0x977C0F2","0x98D79EF","0x9CF13918","0x9F55D149","0xA04E8B0D","0xA421A532","0xA54AE7B7","0xA5B8CAA9","0xA717F898","0xA7EA40CE","0xA91FDC8B","0xA9355DCD","0xAF692CA9","0xB2930A14","0xB2B5325E","0xB86AEE5B","0xBCC5C1F2","0xBD4DE242","0xBDB6FFA5","0xBDD874BC","0xBED46EC5","0xBFEE6C3B","0xC01EB678","0xC02CF125","0xC3CD8B31","0xC5B72713","0xC69DE3FF","0xCC7CCD1B","0xCC8B3905","0xCC90A373","0xCE6FDD6B","0xD0AACEF7","0xD3722A5B","0xD3A39366","0xD8257ABF","0xDDE4181A","0xDE58E0B3","0xDE78F17E","0xDF711959","0xE013E01C","0xE175C698","0xE33D8630","0xE46E11B4","0xE4BD2FC6","0xE5121369","0xE7CF07CC","0xEBF89D5F","0xEE0E26F3","0xEF2B7390","0xF0EA0639","0xF25A01B9","0xF33C83B0","0xF5C5DADC","0xF92F486C","0xF99E15D0","0xF9AFB48F","0xF9E2DF1F","0xFA51ABF5","0xFD16169E","0xFD9CAEDE","0xFDEE8368","0xFE18F3AF","0xFE2A352C","0xFE73AB5","0xFF0A8297","Pickup Hash","Pickup Model","PICKUP_AMMO_BULLET_MP","PICKUP_AMMO_FIREWORK","PICKUP_AMMO_FIREWORK_MP","PICKUP_AMMO_FLAREGUN","PICKUP_AMMO_GRENADELAUNCHER","PICKUP_AMMO_GRENADELAUNCHER_MP","PICKUP_AMMO_HOMINGLAUNCHER","PICKUP_AMMO_MG","PICKUP_AMMO_MINIGUN","PICKUP_AMMO_MISSILE_MP","PICKUP_AMMO_PISTOL","PICKUP_AMMO_RIFLE","PICKUP_AMMO_RPG","PICKUP_AMMO_SHOTGUN","PICKUP_AMMO_SMG","PICKUP_AMMO_SNIPER","PICKUP_ARMOUR_STANDARD","PICKUP_CAMERA","PICKUP_CUSTOM_SCRIPT","PICKUP_GANG_ATTACK_MONEY","PICKUP_HEALTH_SNACK","PICKUP_HEALTH_STANDARD","PICKUP_MONEY_CASE","PICKUP_MONEY_DEP_BAG","PICKUP_MONEY_MED_BAG","PICKUP_MONEY_PAPER_BAG","PICKUP_MONEY_PURSE","PICKUP_MONEY_SECURITY_CASE","PICKUP_MONEY_VARIABLE","PICKUP_MONEY_WALLET","PICKUP_PARACHUTE","PICKUP_PORTABLE_CRATE_FIXED_INCAR","PICKUP_PORTABLE_CRATE_FIXED_INCAR_SMALL","PICKUP_PORTABLE_CRATE_FIXED_INCAR_WITH_PASSENGERS","PICKUP_PORTABLE_CRATE_UNFIXED","PICKUP_PORTABLE_CRATE_UNFIXED_INAIRVEHICLE_WITH_PASSENGERS","PICKUP_PORTABLE_CRATE_UNFIXED_INCAR","PICKUP_PORTABLE_CRATE_UNFIXED_INCAR_SMALL","PICKUP_PORTABLE_CRATE_UNFIXED_INCAR_WITH_PASSENGERS","PICKUP_PORTABLE_CRATE_UNFIXED_LOW_GLOW","PICKUP_PORTABLE_DLC_VEHICLE_PACKAGE","PICKUP_PORTABLE_PACKAGE","PICKUP_SUBMARINE","PICKUP_VEHICLE_ARMOUR_STANDARD","PICKUP_VEHICLE_CUSTOM_SCRIPT","PICKUP_VEHICLE_CUSTOM_SCRIPT_LOW_GLOW","PICKUP_VEHICLE_CUSTOM_SCRIPT_NO_ROTATE","PICKUP_VEHICLE_HEALTH_STANDARD","PICKUP_VEHICLE_HEALTH_STANDARD_LOW_GLOW","PICKUP_VEHICLE_MONEY_VARIABLE","PICKUP_VEHICLE_WEAPON_APPISTOL","PICKUP_VEHICLE_WEAPON_ASSAULTSMG","PICKUP_VEHICLE_WEAPON_COMBATPISTOL","PICKUP_VEHICLE_WEAPON_GRENADE","PICKUP_VEHICLE_WEAPON_MICROSMG","PICKUP_VEHICLE_WEAPON_MOLOTOV","PICKUP_VEHICLE_WEAPON_PISTOL","PICKUP_VEHICLE_WEAPON_PISTOL50","PICKUP_VEHICLE_WEAPON_SAWNOFF","PICKUP_VEHICLE_WEAPON_SMG","PICKUP_VEHICLE_WEAPON_SMOKEGRENADE","PICKUP_VEHICLE_WEAPON_STICKYBOMB","PICKUP_WEAPON_ADVANCEDRIFLE","PICKUP_WEAPON_APPISTOL","PICKUP_WEAPON_ASSAULTRIFLE","PICKUP_WEAPON_ASSAULTRIFLE_MK2","PICKUP_WEAPON_ASSAULTSHOTGUN","PICKUP_WEAPON_ASSAULTSMG","PICKUP_WEAPON_AUTOSHOTGUN","PICKUP_WEAPON_BAT","PICKUP_WEAPON_BATTLEAXE","PICKUP_WEAPON_BOTTLE","PICKUP_WEAPON_BULLPUPRIFLE","PICKUP_WEAPON_BULLPUPRIFLE_MK2","PICKUP_WEAPON_BULLPUPSHOTGUN","PICKUP_WEAPON_CARBINERIFLE","PICKUP_WEAPON_CARBINERIFLE_MK2","PICKUP_WEAPON_COMBATMG","PICKUP_WEAPON_COMBATMG_MK2","PICKUP_WEAPON_COMBATPDW","PICKUP_WEAPON_COMBATPISTOL","PICKUP_WEAPON_COMPACTLAUNCHER","PICKUP_WEAPON_COMPACTRIFLE","PICKUP_WEAPON_CROWBAR","PICKUP_WEAPON_DAGGER","PICKUP_WEAPON_DBSHOTGUN","PICKUP_WEAPON_DOUBLEACTION","PICKUP_WEAPON_FIREWORK","PICKUP_WEAPON_FLAREGUN","PICKUP_WEAPON_FLASHLIGHT","PICKUP_WEAPON_GolfClub","PICKUP_WEAPON_GRENADE","PICKUP_WEAPON_GRENADELAUNCHER","PICKUP_WEAPON_GUSENBERG","PICKUP_WEAPON_HAMMER","PICKUP_WEAPON_HATCHET","PICKUP_WEAPON_HEAVYPISTOL","PICKUP_WEAPON_HEAVYSHOTGUN","PICKUP_WEAPON_HEAVYSNIPER","PICKUP_WEAPON_HEAVYSNIPER_MK2","PICKUP_WEAPON_HOMINGLAUNCHER","PICKUP_WEAPON_KNIFE","PICKUP_WEAPON_KNUCKLE","PICKUP_WEAPON_MACHETE","PICKUP_WEAPON_MACHINEPISTOL","PICKUP_WEAPON_MARKSMANPISTOL","PICKUP_WEAPON_MARKSMANRIFLE","PICKUP_WEAPON_MARKSMANRIFLE_MK2","PICKUP_WEAPON_MG","PICKUP_WEAPON_MICROSMG","PICKUP_WEAPON_MINIGUN","PICKUP_WEAPON_MINISMG","PICKUP_WEAPON_MOLOTOV","PICKUP_WEAPON_MUSKET","PICKUP_WEAPON_NIGHTSTICK","PICKUP_WEAPON_PETROLCAN","PICKUP_WEAPON_PIPEBOMB","PICKUP_WEAPON_PISTOL","PICKUP_WEAPON_PISTOL_MK2","PICKUP_WEAPON_PISTOL50","PICKUP_WEAPON_POOLCUE","PICKUP_WEAPON_PROXMINE","PICKUP_WEAPON_PUMPSHOTGUN","PICKUP_WEAPON_PUMPSHOTGUN_MK2","PICKUP_WEAPON_RAILGUN","PICKUP_WEAPON_REVOLVER","PICKUP_WEAPON_REVOLVER_MK2","PICKUP_WEAPON_RPG","PICKUP_WEAPON_SAWNOFFSHOTGUN","PICKUP_WEAPON_SMG","PICKUP_WEAPON_SMG_MK2","PICKUP_WEAPON_SMOKEGRENADE","PICKUP_WEAPON_SNIPERRIFLE","PICKUP_WEAPON_SNSPISTOL","PICKUP_WEAPON_SNSPISTOL_MK2","PICKUP_WEAPON_SPECIALCARBINE","PICKUP_WEAPON_SPECIALCARBINE_MK2","PICKUP_WEAPON_STICKYBOMB","PICKUP_WEAPON_STONE_HATCHET","PICKUP_WEAPON_STUNGUN","PICKUP_WEAPON_SWITCHBLADE","PICKUP_WEAPON_VINTAGEPISTOL","PICKUP_WEAPON_WRENCH"]}],[{"l":"Weather","p":["0","1","10","11","12","13","14","2","3","4","5","6","7","8","9","BLIZZARD","CLEAR","CLEARING","CLOUDS","EXTRASUNNY","FOGGY","HALLOWEEN","ID","NEUTRAL","OVERCAST","RAIN","SMOG","SNOW","SNOWLIGHT","THUNDER","XMAS"]}],[{"i":"what-is-a-plugin","l":"What is a Plugin?","p":["A plugin can be seen as code that is meant to work with the Rebar Framework."]},{"i":"where-are-plugins-stored","l":"Where are plugins stored?","p":["Plugins can be found in the src/plugins directory, and each plugin should have a unique folder name."]},{"l":"Example Plugin Structure","p":["This plugin structure is used purely as a full featured plugin.","See plugin structure for more information."]},{"i":"example-shared-vue-components--composables-plugin","l":"Example Shared Vue Components / Composables Plugin","p":["It is recommended to prefix your plugin with ui when it's components and composables"]},{"l":"Disabling Plugins","p":["If you wish to disable a plugin simply add a ! before the folder name.","Alternatively you can add a file named .disable to the plugin folder to disable it."]},{"l":"Adding Dependencies","p":["If you noticed a plugin can use npm packages for the webview or server.","It is recommended to avoid using packages where possible to keep everything 'future proofed'","Simply add a dependencies.json or package.json to your plugin folder.","Add a section called dependencies and it will automatically install the dependencies the next time you run your server."]}],[{"l":"Plugin Structure","p":["If you wish to create plugins then you need to understand the basic structure of a plugin.","Create a folder inside src/plugins and name it something unique","Create these additional folders under the new folder you created (not all are necessary)","client","images","server","sounds","translate","webview","dependencies","shared","rmlui"]},{"l":"client","p":["This is where the client-side code belongs. You cannot use NPM packages in these files.","Ensure that you create an index.ts file as an entry point for your client code."]},{"l":"server","p":["This is where server-side code belongs.","Ensure that you create an index.ts file as an entry point for your server code."]},{"l":"shared","p":["This is where shared code (constants, events) belongs. Code below is just example. In shared folder you can store anything you want, that is used by both, clientside and serverside code."]},{"l":"images","p":["Images are any images with the following extensions: jpg, jpeg, png, bmp, svg, webp.","Additionally, the images are loaded as an asset-pack and copied to the webview/public/images folder as well.","Image paths are absolute so if you put an image in the images folder then your html path will be ./images/myplugin-myimage.png.","If you need the image for rmlui then your path will be http://assets/images/myplugin-myimage.png.","Image names need to be unique for your individual plugin, otherwise they will override each other."]},{"l":"rmlui","p":["RmlUi is a way to write HTML pages with css2 support. They're highly performant, but can be hard to work with.","In Rebar we just create normal html files but abide by CSS2 support. Confused? Check out these docs.","Rmlui pages and fonts can be loaded with the following paths:","@rmlui/plugins/your-plugin/index.rml","@rmlui/plugins/your-plugin/font.ttf","That being said, create a file under the path plugins/your-plugin/rmlui/index.html or whatever you want, and add the following content:","You can also add custom fonts under plugins/your-plugin/rmlui as long as they're in ttf format.","If you want live previews of your html check out VSCode Live Server Extension. Once it's installed you can right-click your html file and click Show Preview to preview it in VS Code!"]},{"l":"sounds","p":["Sounds are custom .ogg files that can be played as an asset using the Rebar.player.useAudio function.","Additionally, the images are loaded as an asset-pack and copied to the webview/public/sounds folder as well.","Here's a simple example of playing a sound called myplugin-test.ogg which is in the sounds folder."]},{"l":"Server Sound"},{"l":"Webview Sound"},{"l":"translate","p":["Translations can be used on client-side, server-side, or webview as long as you import the translation file."]},{"l":"webview","p":["Webview pages should always have unique names that differentiate from other plugins. Ensure you give your vue file a unique name."]},{"l":"Extending built-in interfaces","p":["Imagine, you want to add a new attribute to already existing document, like Vehicle.","To not rewrite Rebar's interface, you can use this approach:","This approach will allow you to use defined keys everywhere.","After that, in any plugin, you'll be able to use:"]},{"l":"Dependencies","p":["If you noticed a plugin can use npm packages for the webview or server.","It is recommended to avoid using packages where possible to keep everything 'future proofed'","Simply add a dependencies.json or package.json to your plugin folder.","Add a section called dependencies and it will automatically install the dependencies the next time you run your server."]}],[{"l":"Basic Programming","p":["In this framework we use 2 programming languages, and 2 frameworks.","TypeScript","HTML","Vue 3","Tailwind CSS","This entire stack is how the entire framework is built, and ran and you'll be using the same stack."]},{"l":"How to Learn","p":["Programming is not easy, but starting is easier.","These are some general tips to learn faster.","Learning requires persistent dedication throughout the week. Try to spend 1 or 2 hours learning a concept or building something","Learning just before bed helps you retain the information better","If you are having fun, keep pushing forward because motivation helps you learn faster","If a concept is too hard to learn, step away for a bit and come back","If you have headaches, take a day off and come back tomorrow","If you are not physically writing code, you are not physically learning anything"]},{"l":"TypeScript Basics","p":["This is an incredibly basic tutorial and should cover a good chunk of what you need.","The only way to learn these programming languages is to mess around with them, try making plugins and doing basic things before building a giant roleplay gamemode. We all started off writing very small programs when we started.","Here's a direct link if you don't like embeds."]},{"l":"Vue 3 Basics","p":["While Vue is harder to learn if you're not familiar with any HTML Frameworks, it's well worth the time to speed up development.","Here's an incredibly thorough course that will teach you some stuff.","Start off at timestamp 1 Hour & 5 Minutes if you want to learn how to do the vue stuff immediately."]},{"l":"Tailwind CSS","p":["This video does a good job of covering how Tailwind Works.","Start the video at 2 Minutes to start learning immediately"]}],[{"l":"Your First Plugin","p":["This tutorial is meant to show you how to get an incredibly basic plugin running.","It will not show you how to use the API, or anything else. It's strictly to show you how to setup a plugin."]},{"l":"Preface","p":["If you are not familiar with programming, please make sure to check out Basic Programming before starting.","Even having just a small understanding of programming will help immensely."]},{"l":"Client Setup","p":["Before starting, make sure you have alt:V Installed and modify the altv.toml to turn debug to true.","You can read more about that here."]},{"l":"Folder Setup","p":["Open the entire Rebar Folder in VSCode. You should see a file tree on the left with all of your files."]},{"l":"Accessing Plugin Folder","p":["Navigate based on the following folders:"]},{"l":"Create a New folder","p":["Create a new folder by right-clicking the plugins folder and making one.","Name the folder whatever you want, but it needs to be in English.","For the sake of this tutorial, I named mine a-cool-plugin."]},{"l":"Create 2 New Folders","p":["Create 2 new folders inside of a-cool-plugin and name them server and client."]},{"l":"Create 2 New Files","p":["You are going to now create 2 files named index.ts inside both server and client."]},{"l":"Setup TypeScript Files","p":["Now that you have your files created, we need to add some content to both of them.","Make sure to save your files after editing them!","CTRL + S will save your file."]},{"i":"serverindexts","l":"server/index.ts","p":["Inside of this file add the following contents."]},{"i":"clientindexts","l":"client/index.ts","p":["Inside of this file add the following contents."]},{"l":"Testing the Plugin","p":["In VSCode at the top, click on Terminal and then click New Terminal.","Simply run pnpm dev to start your server.","You will then see that your plugin has loaded, and you'll have some logs in your server console.","Additionally, you can see the result in your client console in-game which can be opened with F8."]}],[{"i":"what-is-a-webview","l":"What is a Webview?","p":["A Webview for this framework may also be known as a page.","Pages are HTML content that can be used to render user interfaces in-game.","Rebar has the concept of 3 different types of Pages.","Overlay","Persistent","Page"]},{"i":"what-is-a-page","l":"What is a Page?","p":["A page is a type of page that is only shown once, and controlled by user interaction.","Examples: Inventory, ATM, Shops"]},{"i":"what-is-the-overlay-type","l":"What is the Overlay Type?","p":["An overlay page is a type of page that is always shown when the user is not shown a page.","Examples: HUD, Cash, Ammunition Count"]},{"i":"what-is-the-persistent-type","l":"What is the Persistent Type?","p":["A persistent page is a type of page that will always be shown regardless of what is being shown on screen.","Examples: Website Watermark, Logo"]},{"i":"what-css-is-available","l":"What CSS is Available?","p":["Currently Rebar is shipped with TailwindCSS to quickly build out interfaces quickly.","It is highly recommended to install the Tailwind CSS IntelliSense Extension when working with css.","You can simply hit CTRL + SPACE to bring up auto-fill while browsing different CSS classes."]}],[{"l":"Create a Webview","p":["First, make sure you've created a plugin.","If you are using Visual Studio Code, make sure to install the Vue extension","Create a .vue file, and create a basic Vue 3 template."]},{"l":"Preview the Page","p":["You can preview the page by running the following in a terminal.","You can open http://localhost:5173 in your browser to view the page.","Click the Arrow in the Top Right and then click on your page to see it rendered."]},{"l":"Showing in-game","p":["You can actually show a page from the server-side using the player webview functionality.","However, this section will show you how to do both client and server side.","When you show a page both the cursor and webview focus will happen automatically."]},{"l":"Server Side","p":["Just ensure that you run the server once to populate the available pages."]},{"l":"Client side","p":["That's all it takes to show / hide your custom WebViews."]}],[{"l":"Draggable Component","p":["The draggable component is a built-in component that allows you to wrap up any code to make it draggable.","This is a one-stop solution for building moveable inventories, and drag & drop interfaces.","The most important part of a draggable component is that it contains an id.","This is what helps the draggable element decide what to send back.","Did you know that in alt:V we don't have access to HTML5 Drag APIs, that's why this exists."]},{"l":"Example Page","p":["This is an example page showing 2 draggable divs that can be dragged over each other.","They print their status into the console."]}],[{"l":"useAudio","p":["Gives you the ability to play custom sounds from the Webview.","If you wish to play frontend sounds check out the Frontend Sound List."]}],[{"l":"useEvents","p":["This is an event wrapper that allows for communication directly to the server, or the client."]},{"l":"Server Side RPC Handling","p":["If you use the event emitServerRpc you can use the normal alt.onRpc to handle the request.","A simple but seamless integration with existing alt:V APIs."]},{"l":"Client Side RPC Handling","p":["This one works differently on client-side, so you'll have to access the useWebview function, and then add your listener callback."]},{"l":"Key Presses","p":["If you're trying to listen for certain keypresses regardless of focus you can use onKeyUp and offKeyUp.","Generally you want to bind onKeyUp with the onMounted event, and turn off the key listener with offKeyUp when unmounting."]}],[{"l":"useLocalStorage","p":["A way to store local data to the alt:V Client."]}],[{"l":"useMessenger","p":["Gives the ability to get messages from the messenger system as well as emit messages to the messenger system."]}],[{"l":"useMinimap","p":["Gets minimap positional data and makes it available in the Webview.","Below is an example of how to move some text next to the minimap.","It will automatically update the minimap positional data when resolution is changed."]}],[{"l":"usePlayerStats","p":["This specific composable is for gather information from client-side, and rendering it in the WebView.","Here's an example of how to use it."]}]] \ No newline at end of file +[[{"i":"what-is-rebar","l":"What is Rebar?","p":["Rebar is a plug-and-play base framework for the alternative GTA:V multiplayer client alt:V. Rebar is meant to act as a light framework that provides utility, and a basic standard for building plugins that can be compatible with other plugins.","It has a heavy focus on simplifying building game modes and lowering the friction of building a server."]},{"i":"why-rebar","l":"Why Rebar?","p":["Rebar is the foundational piece necessary to construct large concrete structures. Think of this framework as achieving the same from a game-mode standpoint."]},{"l":"Tech Stack","p":["Node.js","TypeScript","MongoDB","Vue"]},{"i":"how-do-i-get-started","l":"How do I get started?","p":["Head on over to Install & Upgrade to learn about the installation process."]}],[{"i":"install--upgrade","l":"Install & Upgrade","p":["Hey listen! When you run Rebar for the first time, you won't be able to spawn.","This is simply for server setup, and getting started.","Check out some Plugins to get everything working!"]},{"l":"1. Programs to Install","p":["Install these programs.","Git","Node.js","pnpm","MongoDB Server","Ensure that if you are running it locally, do not set a database password.","When you move your server to production use something like MongoDB Atlas","If you are having trouble installing pnpm you can run this command in a Powershell Window with Admin Enabled.","These are optional but recommended if developing","VSCode"]},{"l":"2. Clone the Repository","p":["Open a terminal and clone the repository somewhere."]},{"l":"Navigate into Rebar"},{"l":"3a. Windows"},{"l":"Install"},{"l":"Download Binaries"},{"l":"Start","p":["Alternatively, development mode can be started with"]},{"l":"3b. Linux","p":["Last installation was tested on Ubuntu 22.04+"]},{"l":"Install libatomic"},{"i":"install-1","l":"Install"},{"i":"download-binaries-1","l":"Download Binaries"},{"i":"start-1","l":"Start","p":["Alternatively, development mode can be started with"]},{"l":"3c. Docker","p":["Follow all of the instructions above.","Build with pnpm build:docker and then run ./altv-server."]},{"l":"Upgrading"},{"l":"Auto Upgrade","p":["If you already have Rebar installed simply run the following command:"]},{"l":"Manual Upgrade","p":["Download the latest version Rebar into another folder.","Copy the folders src/main, webview, and docs folder into the main folder of Rebar.","Copy the file package.json to the main folder of Rebar.","Run pnpm upgrade and pnpm install.","Click To Download Latest Source Code","That's it."]},{"l":"Webview Development","p":["If you need to develop an interface out of game, you can use pnpm:webview"]}],[{"l":"Changelog"},{"l":"Version 36"},{"l":"Code Changes","p":["Added screenshot utility for weapons"]},{"l":"Docs Changes","p":["Added weapon screenshot doc"]},{"l":"Version 35"},{"i":"code-changes-1","l":"Code Changes","p":["Added screenshot utility for taking screenshot of vehicle"]},{"i":"docs-changes-1","l":"Docs Changes","p":["Documented screenshot utility"]},{"l":"Version 34"},{"i":"code-changes-2","l":"Code Changes","p":["Adds a new ambient sound to the server config","Fixes an issue where subfolders were not supported for images, and sounds","Added onScreenPed solution to show a pedestrian in the 2D space, below webview","Automatically synchronizes ped with ped reference changes, such as clothes","Thanks to BattleZone for confirming that NVE is problematic with frontend menus","Added manual override for useKeybinder to updateKeybindForPlayer","Fixed bug where global documents were overwriting global cache","Modify getByAccount and getByCharacter to also take numbers for their id getter","Change vehicle getByDatabaseId to byId('_id');"]},{"i":"docs-changes-2","l":"Docs Changes","p":["Modifies the server config to include disableAmbientNoise","Added docs for updateKeybindForPlayer","Updated vehicle getter docs","Updated character getter docs"]},{"l":"Version 33"},{"i":"code-changes-3","l":"Code Changes","p":["Fixes issue where pickup sometimes doesn't spawn the object","Added all clothing dlc info, and maximums to a shared data structure","Added clothing data getters to Rebar.utility.clothing","Added addCategory section to add custom DLC data during runtime"]},{"i":"docs-changes-3","l":"Docs Changes","p":["Added utility clothes section to server API"]},{"l":"Version 32"},{"i":"code-changes-4","l":"Code Changes","p":["Added function to attach blips to entities, because alt:V's one is broken","Additionally, when a blip or the entity becomes invalid the blip is automatically destroyed."]},{"i":"docs-changes-4","l":"Docs Changes","p":["Updated blip documentation to cover attachments"]},{"l":"Version 31"},{"i":"code-changes-5","l":"Code Changes","p":["Added disableAttackControls, disableCameraControls, and freezeCamera to player.world pathway","Fixed issue with local progress bars not clearing","Fixed issue with gif files not being copied correctly"]},{"i":"docs-changes-5","l":"Docs Changes","p":["Added documentation covering player.world new functions"]},{"l":"Version 30"},{"i":"code-changes-6","l":"Code Changes","p":["Added a vscode transmitter for debug mode server and client.","Allows for code to be executed from VSCode using the Rebar Transmitter"]},{"i":"docs-changes-6","l":"Docs Changes","p":["Added vscode transmitter extension page"]},{"l":"Version 29"},{"i":"code-changes-7","l":"Code Changes","p":["Custom rmlui get distributed to resources/rmlui/plugins folder","Additionally html files act as rmlui and are converted into rmlui during the compile process"]},{"i":"docs-changes-7","l":"Docs Changes","p":["Added a section in Plugin Structure that covers how to work with rmlui correctly, and what the paths are to use the resource."]},{"l":"Version 28"},{"i":"code-changes-8","l":"Code Changes","p":["Made interaction setMessage show a GTA:V notification by default when entering.","Synchronize vehicle customPrimaryColor, customSecondaryColor, primaryColor, and secondaryColor","Added offKeyUp to key listeners for webview composable","Added disableCriticalHits to server configuration settings","Added Rebar Event for on-command that lets you listen to what commands successfully executed","Improve performance of player stats by making it a single event for setting stats","Added zone, isAiming, and isFlying to player stats","Fix vehicle stop server config bug, flag was incorrect","Added server configs for disabling prop knockoff, cover, drivebys, and scuba gear removal"]},{"i":"docs-changes-8","l":"Docs Changes","p":["Added onKeyUp and offKeyUp to webview event composable","Updated useServerConfig docs","Updated playerStats doc"]},{"l":"Version 27"},{"i":"code-changes-9","l":"Code Changes","p":["Added onClose function for webview","Added escapeToClosePage to show function for webviews","Keep in mind this only works for page types","Added RebarEvent for page open and page close on server-side"]},{"i":"docs-changes-9","l":"Docs Changes","p":["Updated playerUse webview section for show function to include info about escape to close","Added RebarEvent onClose and onOpen docs"]},{"l":"Version 26"},{"i":"code-changes-10","l":"Code Changes","p":["Added useProgressbar controller","Fixed permission length bug","Fixed some misnamed functions in other controllers","Added useWorldMenu controller for building quick selection menus","Fixed bug where keybinds could be invoked if certain menus were open"]},{"i":"docs-changes-10","l":"Docs Changes","p":["Added images for controllers","Added useProgressbar doc","Added useWorldMenu doc"]},{"l":"Version 25"},{"i":"code-changes-11","l":"Code Changes","p":["Added account document to usePlayer","Fixed small permission hasOne error","Added various shared Utility functions to Rebar.utility to lower import counts","Added toggle controls to usePlayer().world to control controls state","Fixed small bug where hotkeys could be invoked when game controls are disabled"]},{"i":"docs-changes-11","l":"Docs Changes","p":["Added code examples page","Added troubleshooting page","Updated player world api for toggling controls"]},{"l":"Version 24"},{"i":"code-changes-12","l":"Code Changes","p":["Added server configs for auto; starting engine, stopping engine, and seat swapping in vehicles","Added useKeybinder to bind hotkeys from server-side, enabling users to call from their client","Adjusted world space checker to delay by 100ms before checking, fixing colshape creation times"]},{"i":"docs-changes-12","l":"Docs Changes","p":["Updated server config doc","Added useKeybinder page"]},{"l":"Version 23"},{"i":"code-changes-13","l":"Code Changes","p":["Added Draggable Component to WebView"]},{"i":"docs-changes-13","l":"Docs Changes","p":["Added Draggable to webview/components section with an example on making draggables","Added Draggable Component to WebView"]},{"i":"docs-changes-14","l":"Docs Changes","p":["Added Draggable to webview/components section with an example on making draggables"]},{"l":"Version 22"},{"i":"code-changes-14","l":"Code Changes","p":["Added useRateLimitCallback","Added onEnter and onLeave to interaction callbacks","Added disablePistolWhip to useServerConfig that prevents pistol whipping one-hits"]},{"i":"docs-changes-15","l":"Docs Changes","p":["Created useRateLimitCallback docs","Added onEnter and onLeave to interaction docs","Added disablePistolWhip to useServerConfig docs"]},{"l":"Version 21","p":["I forgot to write the changelogs. lmao"]},{"l":"Version 20"},{"i":"code-changes-15","l":"Code Changes","p":["Made raycast.getFocusedObject() return entityPos","Clearly warn users using api.get for obtaining an API, and recommend async instead","Added new getMeta API for getting plugin API as single import","Added debug option to raycast functions to draw lines when a raycast is invoked","Added useServerConfig to change what HUD elements, and other on screen elements a player sees"]},{"i":"docs-changes-16","l":"Docs Changes","p":["Added debug to raycast docs","Removed get from Plugin API examples, to let users focus on async instead","Added useServerConfig to docs"]},{"l":"Version 19"},{"i":"code-changes-16","l":"Code Changes","p":["Added reverse map for vehicle model hash to vehicle model name","Added function to add named models to list at runtime as well","Added neon synchronization to vehicle document sync"]},{"i":"docs-changes-17","l":"Docs Changes","p":["Added vehicleHashes utility doc info"]},{"l":"Version 18"},{"i":"code-changes-17","l":"Code Changes","p":["Added group permissions for protected callbacks","Added new controller usePed which creates a global pedestrian which can have synced natives invoked on it","Added useProxyFetch which allows for you to register safe endpoints on server-side which can be called client-side.","Added useRaycast to get entity aimed at from client-side and return it to the server","Added useVehicle enhancements","Additionally, optional section to check if they are the sole owner of the vehicle","bind","Can even easily listen to when the specific ped spawned dies","Can obtain model & position of world object looked at","Can obtain player, vehicle, or alt.Object looked at","Can obtain position looking at","Check if the player is an 'owner' of the vehicle","Check if the vehicle is already bound","Fixed a bug where closest entity and target ids matched, when they were different types","Fixed character permission issues when using protected callbacks","Fixed passing message on client-side for interaction onEnter callbacks","Functions that toggled asPlayer verify ownership of keys, permission, or owner itself of the vehicle","isBound","It's recommended not to spawn more than 32 given peds around a single player.","keys: add, remove, clear","Meaning that if you have an API which only allows your server to make requests, this is a way to invoke it safely.","This effectively allows you to make requests from the server to safely get results.","toggleDoor","toggleDoorAsPlayer","toggleEngine","toggleEngineAsPlayer","toggleLock","toggleLockAsPlayer","verifyOwner"]},{"i":"docs-changes-18","l":"Docs Changes","p":["Added useProxyFetch doc","Added useRaycast doc","Added useVehicle updates","Added usePed controller docs"]},{"l":"Version 17"},{"i":"code-changes-18","l":"Code Changes","p":["Added alt.getMeta('Rebar') to get Server API with one-less import","Added alt.getMeta('RebarClient') to get Client API with one-less import","Fixed character interface not being extended correctly","Added preinstall script to download binaries, and build codebase once"]},{"i":"docs-changes-19","l":"Docs Changes","p":["Covered alternative API import methods in docs"]},{"l":"Version 16"},{"i":"code-changes-19","l":"Code Changes","p":["Added @Composables path alias","Added @Plugins path alias"]},{"i":"docs-changes-20","l":"Docs Changes","p":["Updated composables with @Composables","Updated what is a plugin with information about component / composable only plugins"]},{"l":"Version 15"},{"i":"code-changes-20","l":"Code Changes","p":["Update dependencies","Update _id in database functions to use a non-deprecated ObjectId handler","Added useServerWeather function to allow setting weather and weather forecast","This does not automatically sync for players, it's just a global way to set the data"]},{"i":"docs-changes-21","l":"Docs Changes","p":["Added useServerWeather docs"]},{"l":"Version 14"},{"i":"code-changes-21","l":"Code Changes","p":["Added emitServerRpc to Webview to retrieve data from server-side using normal alt.onRpc events.","Yes, this means you don't have to do weird event bindings to get data now.","Added emitClientRpc to Webview to retrieve data from client-side."]},{"i":"docs-changes-22","l":"Docs Changes","p":["Added emitServerRpc and emitClientRpc to docs"]},{"l":"Version 13"},{"i":"code-changes-22","l":"Code Changes","p":["Updated upgrade script to prevent overwriting tailwind config, or vite config","Added useLocalStorage composable for getting / storing data"]},{"i":"docs-changes-23","l":"Docs Changes","p":["Added useLocalStorage composable docs"]},{"l":"Version 12"},{"i":"code-changes-23","l":"Code Changes","p":["Completely redid the compile pipeline","Improved compile times, and added docker build support to package.json scripts","Fixed linux based errors"]},{"i":"docs-changes-24","l":"Docs Changes","p":["Added install instructions for Linux","Added install instructions for Docker"]},{"l":"Version 11"},{"i":"code-changes-24","l":"Code Changes","p":["Added createCollection to database functions","Automatically create default collections on startup","Added rebar:upgrade script to get the latest code changes for Rebar"]},{"i":"docs-changes-25","l":"Docs Changes","p":["Added createCollection function to the database functions","Clarified how no spawner exists outright for Rebar","Added documentation about upgrading"]},{"l":"Version 10"},{"i":"code-changes-25","l":"Code Changes","p":["Added ignore and autogen as a keyword to ignore file changes when developing","Added time-changed, time-second-changed, time-minute-changed, and time-hour-changed events to core events","Added useServerTime setters / getters for managing server time more effectively","Note: This does not auto-sync on players, other plugins can build more complex time systems"]},{"i":"docs-changes-26","l":"Docs Changes","p":["Added useServerTime API docs","Added time-changed, time-second-changed, time-minute-changed, and time-hour-changed event documentation"]},{"l":"Version 9"},{"i":"code-changes-26","l":"Code Changes","p":["Added client-side messenger for handling chat focus states","Patched issue where pressing E while chat is focused invoked interactions","Patched issue where pressing native menu buttons while chatting invoked native menu functions"]},{"l":"Version 8"},{"i":"code-changes-27","l":"Code Changes","p":["Fixed various get closest functions for player and vehicle getters","Added useWaypoint to get a waypoint a player has on their map if available","Added usePlayer function that combines all useX functions for player","Added Rebar.utility.useProtectCallback which adds permissions to callbacks before they are executed","A simple way to protect alt:V client event callbacks"]},{"i":"docs-changes-27","l":"Docs Changes","p":["Added useWaypoint docs","Added usePlayer docs","Added useProtectCallback docs"]},{"l":"Version 7"},{"i":"code-changes-28","l":"Code Changes","p":["Added useMinimap composable to get minimap positional data in the Webview","Added custom message type when emitting messages to prevent formatting"]},{"i":"docs-changes-28","l":"Docs Changes","p":["Documented useMinimap composable"]},{"l":"Version 6"},{"i":"code-changes-29","l":"Code Changes","p":["Added ability for commands to be async","Added character synchronization when a character document is bound to the player","Added onKeyUp to the Webview Events functionality, allowing an easy way to listen for keybinds","Added playFrontendSound to useAudio composable in the webview","Added useVehicle function for synchronizing vehicle data, applying data, repairing, and creating new vehicle documents","Added useWeapon to player pathway. Allows for synchronizing weapons, and ammo for database","Added vehicle synchronization when a vehicle document is bound to the vehicle","Added ways to disable auto-sync for vehicle and character documents in the binding functions","Changed all update() functions to sync and added backwards compatible update function","Separated logic for appyling data on appearance and clothing so overrides are possible","Split Character into BaseCharacter and Character, nothing changed externally","Synchronizes appearance, and clothing","Synchronizes damage (not appearance)","Synchronizes death state","Synchronizes dirt levels","Synchronizes health, and armor","Synchronizes mods","Synchronizes position, and rotation","Synchronizes tire damage","Synchronizes weapons, and ammo","Synchronizes window damage"]},{"i":"docs-changes-29","l":"Docs Changes","p":["Updated blip controller docs for typo","Added useVehicle documentation","Updated documentation for useCharacterBinder that will allow ignoring auto-sync on binding","Updated documentation for useVehicleBinder that will allow ignoring auto-sync on binding","Added useWeapon documentation","Added useState documentation","Changed update() references to sync()","Updated documentation for useAudio composable"]},{"l":"Version 5"},{"i":"code-changes-30","l":"Code Changes","p":["Added isValid to character, account, and vehicle documents to check if an entity has a bound document","Added useStatus to player API pathway to check for account and character status","Added events to the Rebar API","Added on account bound","Added on character bound","Added on vehicle bound","Added on message","Fixed small bug with case-sensitive commands","Fixed bug that allowed sending messages when a character was not bound"]},{"i":"docs-changes-30","l":"Docs Changes","p":["Added isValid examples to character, account, and vehicle.","Added useStatus to player section","Added events section to Server API"]},{"l":"Version 4"},{"i":"code-changes-31","l":"Code Changes","p":["Added getCommands to the messenger system","Added formatTimestamp to the shared utilities"]},{"l":"Version 3"},{"i":"code-changes-32","l":"Code Changes","p":["Added focus and unfocus support to client-side webviews"]},{"l":"Version 2"},{"i":"code-changes-33","l":"Code Changes","p":["Fixed issue with disabling plugins"]},{"l":"Version 1"},{"i":"code-changes-34","l":"Code Changes","p":["Added package.json or dependency.json support to plugins","Added an install pipeline for plugins that need specific npm packages","Added ability to disable a plugin by creating a file called .disable in the given plugin folder","Added useMessenger to server-side for processing user commands, and chat system (not console commands)","useMessenger also provides onMessage, sending messages, registering commands, and invoking commands","Added useMessenger composable to webview for emitting messages to the server for processing, automatically handles commands","Additional note, messages are sent to the void and go nowhere until a chat plugin is added","This is effectively a messenger middleware for building a chat or command system","Added sendMessage to the useNotify player composable"]},{"i":"docs-changes-31","l":"Docs Changes","p":["Added question about NPM packages to FAQ docs","Added virtual document type docs to the API/Document section","Updated what is a plugin, and create docs to clarify new changes","Updated useNotify docs for sendMessage","Added useMessenger docs for composable, and server-side"]}],[{"l":"Client Console Commands","p":["Console commands are commands that can be ran by opening your client-side F8 console menu and typing a command."]}],[{"l":"Code Examples","p":["This is a giant page for code examples and a general purpose cookbook for writing just about anything.","Always check the documentation for further information and to see the full extent of what this framework has to offer.","Some of these code examples require other plugins to work.","Check out Plebmasters Forge to see all available plugins."]},{"l":"Server API","p":["We mostly work on the server-side for a majority of the functionality.","Here's how to import Rebar in various ways."]},{"l":"Rebar Events","p":["Rebar has a handful of events that can be used in tandem with alt:V events.","These become more useful when a character select, or auth plugins are installed."]},{"l":"Notifying a Player","p":["Send a default GTA:V notification to the player."]},{"l":"Screen Shards","p":["Shards are like the Mission Failed full screen effect that you see in normal GTA:V. You can show them like this."]},{"l":"Screen Mission Text","p":["Mission text will show in the bottom center of the screen."]},{"l":"Keybinds","p":["Keybinds can be done on server-side to allow for server-side callbacks.","Here's a simple keybind that when K is pressed it teleports the player to a position."]},{"l":"Interaction Points","p":["Interaction points are places where the player can press E to do something.","They can be accented with markers, text labels, and blips.","There are also local versions of marker, text label, and blips to only show it to a single player. Which has full control via server-side."]},{"l":"Server Configuration","p":["You can modify server configuration by creating a plugin that tweaks the settings.","Here's an example of what you can invoke to change settings in Rebar."]},{"l":"Saving Player Data","p":["With a character select plugin, and auth plugin installed it's really easy to write data to the database using the document system.","This document system also exists for other entities like Vehicles,and Accounts."]},{"i":"character--account-permissions","l":"Character & Account Permissions","p":["There's a built in permission system to assign players as admins, specific jobs, etc."]},{"l":"Registering Commands","p":["With a chat plugin you can register commands and invoke them in-game in the chat window.","Additionally, you can protect your commands from being ran under Account Permissions or Character Permissions."]},{"l":"Assigning Custom Models","p":["You can easily assign a custom player model to override their default character appearance."]},{"l":"Assigning Uniforms","p":["You can also assign and clear uniforms for the player to wear."]},{"l":"Owned Vehicles","p":["Vehicles can be owned by an individual player, or a permission."]},{"l":"Spawn Owned Vehicles","p":["Want to easily spawn vehicles owned by a player, well Rebar makes it super simple.","It even handles synchronizing mods, extras, lock state, engine damage, and more."]},{"l":"Teleport to a Waypoint"},{"l":"Control Pedestrians","p":["We have a built in pedestrian controller on server-side that lets you invoke natives to easily make pedestrians do various things.","Here's one that makes a bunch of them dance together."]},{"l":"Raycast for Objects","p":["Raycast for an Object from server-side."]}],[{"l":"FAQ","p":["Frequently asked questions about Rebar."]},{"i":"where-do-i-put-my-mods","l":"Where do I put my mods?","p":["You put them inside of the resources folder, and load it like a normal alt:V Resource."]},{"i":"none-of-my-changes-are-saving-when-i-modify-files","l":"None of my changes are saving when I modify files?","p":["Be sure that you are only modifying files inside of the src directory."]},{"i":"are-fivem-scripts-compatible","l":"Are FiveM scripts compatible?","p":["No, we use TypeScript in this framework and furthermore it is written for https://altv.mp client."]},{"i":"can-i-use-my-own-frontend-framework","l":"Can I use my own frontend framework?","p":["No, you will have to do a lot of changes to get any other framework to work correctly.","It is not recommended, and to keep all plugins compatible we use Vue 3 and the same CSS framework across all plugins."]},{"i":"can-i-use-my-own-css","l":"Can I use my own CSS?","p":["Sure, but it is recommended to use Tailwind to keep everything compatible across all plugins."]},{"i":"can-i-use-my-own-database","l":"Can I use my own database?","p":["No, it is highly recommended to stick to MongoDB and to lower the complexity for everyone using your plugins.","To run your own database you will need to write it as a plugin and use it exclusively.","Doing so may limit your ability to load plugins from other users."]},{"l":"Can I use npm packages client-side","p":["Nope! You won't ever be able to. However, you can use them in the webview, and on server-side."]},{"i":"do-i-need-to-buy-a-server","l":"Do I need to buy a server?","p":["Only buy a server when you're ready for your server to go live.","Otherwise, stick to local testing and allowing others to join locally."]},{"i":"how-can-i-speed-up-development-time","l":"How can I speed up development time?","p":["There are a number of ways to do this, but here are some recommended approaches.","Disable any third-party plugins","Disable any MLOs that need to be loaded","Doing both of these will increase load time, and allow you to focus on writing your plugin."]},{"i":"can-i-sell-plugins","l":"Can I sell plugins?","p":["Absolutely, however Rebar does not provide any resources to secure your code. You are fully responsible for updating your plugin as well as maintaining compatability with future updates.","Keep in mind there is no way to properly secure code."]}],[{"l":"Troubleshooting","p":["This troubleshooting guide mostly pertains to people who have successfully installed this framework.","If you are still having trouble installing, kindly visit the Discord's help section."]},{"l":"Clear node_modules","p":["Simply delete the entire node_modules folder.","Windows","Linux","Run pnpm install after completing this step."]},{"l":"Upgrade Server Binaries","p":["Run pnpm upgrade to get the latest version of alt:V Server Binaries.","If this does not work remove the following files manually, and then upgrade:","altv-crash-handler.exe","altv-server.exe","libnode.dll","cache","modules",".server-crashes-cache","Run pnpm upgrade after this has completed."]},{"l":"Clone Rebar Again","p":["If you're following the general principal of not modifying core code, you can simply move your plugins to a new instance of Rebar.","Download a new copy of Rebar, move your plugins to the plugins folder.","Install everything again with pnpm install, pnpm upgrade, and then do pnpm start."]},{"i":"still-not-working","l":"Still Not Working?","p":["You're at a point where you'll need to start disabling plugins, or moving them out 1-by-1 to see which is the most problematic plugin.","Remove all of your plugins, and start adding them back in 1-by-1, and running the server each time.","If your server stops working after you re-introduced a plugin, then you've found your troublemaker."]}],[{"l":"VSCode Transmitter Extension","p":["Rebar has built in support for the Rebar Transmitter extension.","This allows you to open a scratchpad under src/scratchpad and write code.","Once the code is written you can SELECT THE CODE WITH YOUR CURSOR and then right-click to execute it while the server is running."]},{"l":"Instructions","p":["Open src/scratchpad folder","Rename both of the example pads to serverExample.ts and clientExample.ts","Write some code in the scratch pad","Highlight it","Right-click it, and execute it"]},{"l":"Example"},{"l":"Download","p":["https://marketplace.visualstudio.com/items?itemName=stuyk.rebar-transmitter"]}],[{"l":"Client API Usage","p":["The client API can be accessed through a single import.","If you want more direct imports, those are also available through your intellisense."]},{"i":"altv-based-import","l":"alt:V Based Import"},{"l":"Direct Import"}],[{"l":"Interaction","p":["Listen on client-side for when a player enters an interaction or leaves an interaction."]}],[{"l":"Native Menu","p":["This is a faux version of the native menu. It's a custom implementation that has a much simpler API."]},{"l":"Create"},{"l":"Destroy"},{"l":"Nested Menus Example","p":["This is a menu with two deeper level menus inside of it."]}],[{"l":"Instructional Menu","p":["Instructional menus are the keys that show up in the bottom right of the screen.","They usually use Controls"]}],[{"l":"Notification","p":["If you wish to override the default GTA:V notification system, you can use the built in notification system.","When you register an on event with useNotification it will stop default notifications from displaying.","You can now use the messages in your own notification system."]}],[{"l":"useProxyFetch","p":["This is the client version of the proxy fetch.","Server requires APIs to be registered before they can be called."]}],[{"l":"API","p":["API allows for plugins to register their own APIs and make them available globally.","However, they are limited to either server-side or client-side.","This reduces the complexity to import functions from other plugins, or export functions for other plugins."]},{"l":"How to Declare an API","p":["Ensure you have an API setup in your plugin.","Create a global declaration for your API.","Done"]},{"l":"How to Get an API","p":["This is all that's necessary to start working with other plugin APIs","Below is dependent on load order, so your mileage may vary.","If you do not want to worry about load order. Consider the following pattern:"]}],[{"l":"Webview","p":["When using the webview on client-side, you have a lot of options."]}],[{"l":"Blip","p":["Create a map marker that displays an icon, and text on the map.","These are general purpose blips, if you need more robust functionality use the blip directly."]},{"l":"Global Markers","p":["A global blip can be seen by all players.","Additionally, you can attach a blip to any entity like a player, or a vehicle like this."]},{"l":"Local Markers","p":["A local blip can only been seen by a single player."]}],[{"l":"Interaction","p":["Interactions allow a player to walk up to an invisible trigger and press E to interact with it.","If using player.pos for your interaction, ensure you subtract 1 from the z axis to make it usable"]}],[{"l":"Marker","p":["Create a physical in-world marker that can be walked through."]},{"l":"Global Markers","p":["A global marker can be seen by all players."]},{"l":"Local Markers","p":["A local marker can only be seen by a single player."]}],[{"l":"Objects","p":["Objects are well... objects. They're things on the map like ATMs, Boxes, etc."]},{"l":"Global Object","p":["Global objects can be seen by all players."]},{"l":"Local Object","p":["Local objects can only be seen by a single player."]}],[{"l":"Peds","p":["Peds use the internal alt:V Peds that can be synchronized by invoking a set of hand-picked natives on them.","Default behavior:","When a pedestrian dies, it's despawned after 5 seconds"]},{"l":"Native List","p":["These are the list of natives that are available to invoke.","This can be updated later but this is a general purpose list that should work fine with the ped."]}],[{"l":"Pickups","p":["Pickups are collisions you can run over with a specific weapon model.","They're traditionally seen in GTA:Online, but this is a more server-side implementation of the pickups."]}],[{"l":"Progress Bars"},{"l":"Local Progress Bars","p":["These are seen by a single player."]},{"l":"Timed Progress Bar"},{"l":"Manual Control Progress Bar"},{"l":"Global Progress Bars","p":["These are seen by all players, and are can be seen when they are in range of the progress bar."]},{"i":"timed-progress-bar-1","l":"Timed Progress Bar"},{"i":"manual-control-progress-bar-1","l":"Manual Control Progress Bar"}],[{"l":"Text Labels","p":["Text labels are floating pieces of text that can be seen in-game in a 3D space."]},{"l":"Global Text Labels","p":["Global text labels can be seen by all players."]},{"l":"Local Text Labels","p":["Local text labels can only be seen by a single player."]}],[{"l":"World Menu","p":["World menus are 3D menus that can exist in the world, and can be popped up at any time.","They're meant for quickly selecting options, and getting results on either server or client-side.","In the case here, it's server-side usage."]}],[{"l":"Usage","p":["When using the database in Rebar it can be accessed from any plugin.","However, the database may only be accessed on server-side.","Use the Document system if you are updating characters, accounts, or vehicles."]},{"i":"usage-1","l":"Usage","p":["Import the database into your plugin file, and begin using it."]},{"l":"Create Collection","p":["A collection is where documents are stored."]},{"l":"Create Data","p":["Creating data uses the create function and returns an _id to obtain the data."]},{"l":"Get Data","p":["If you want to get a document by an _id, you can use this:"]},{"l":"Find Data","p":["After creating data, if you don't have an _id and you want to find it. You can use getMany."]},{"l":"Get All Data","p":["It is not recommended to fetch a whole collection unless it's a smaller collection.","In any case, you can use this to fetch a whole collection of data."]},{"l":"Update","p":["If you want to update a document, or simply append new data to the document."]}],[{"i":"what-are-documents","l":"What are Documents?","p":["Documents are what are stored inside of MongoDB.","Evey document has an _id which is a string of characters.","That string of characters can be used to quickly pull down any document.","Documents require the developer to assign the data once, and once that data is assigned it will only push data out to the database automatically while using document functionality.","We're effectively reading data once."]},{"l":"Editing Data in the Database","p":["When you edit data inside of the database it will not be automatically bound to the player.","Editing data is usually done through a tool like MongoDB Compass.","This is because documents work in a way that pushes data out rather than reading the data constantly from the databse.","We do this to increase the overall performance of the gamemode for larger servers.","If you wish to update data of a user in a database, you must also rebind that data to the user.","Rebinding means to pull the data down from the database again and then assign it to the user again."]}],[{"l":"Account","p":["An account document is a set of data that is bound to the player until they disconnect.","It automatically saves data to the MongoDB database when any set function is used."]},{"l":"Binding Data","p":["You should bind account data when they authenticate to your server."]},{"l":"Checking Validity","p":["If you need to check if a player has a document bound to them, you can use the following method."]},{"l":"Getting Data","p":["Data can be retrieved for the bound account like this."]},{"l":"Setting Data","p":["Data can easily be appended or set in two different ways."]},{"l":"Getting Characters","p":["When you need to obtain a character file for an account, you can use this function to get all existing characters."]},{"l":"Permissions","p":["Permissions for accounts allow permissions to persist across an entire account.","Here's the simplest way to add, remove, and check permissions."]},{"l":"Password","p":["When you setup an account you often want to also setup a password, or check a password.","We've made it pretty easy in Rebar to simply check a password to login."]},{"l":"Banning","p":["Banning an account is pretty straight forward but it does not prevent new accounts with new ips.","It's simply an account level ban that happens during server runtime."]}],[{"l":"Character","p":["An character document is a set of data that is bound to the player until they disconnect.","It automatically saves data to the MongoDB database when any set function is used."]},{"l":"Binding Data","p":["You should bind character data after fetching call characters owned by an account.","When you bind character data to a player the following is synchronized:","Position","Rotation","Clothing","Appearance","Model","Skin","Weapons","Weapon Ammo","Health","Armor","Dimension"]},{"l":"Checking Validity","p":["If you need to check if a player has a document bound to them, you can use the following method."]},{"l":"Getting Data","p":["Data can be retrieved for the bound character like this."]},{"l":"Setting Data","p":["Data can easily be appended or set in two different ways."]},{"l":"Getting Vehicles","p":["When you need to obtain a vehicle file for an character, you can use this function to get all existing vehicles owned by the player."]},{"l":"Permissions","p":["Permissions for characters only allows the permission to exist on the one character it is assigned to.","Here's the simplest way to add, remove, and check permissions."]},{"l":"Permission Groups","p":["Permission groups allow you to assign permissions under a specific group name for a character."]}],[{"l":"Global","p":["Global documents work a bit different than the other documents.","They are the only async document, and for good reason."]},{"l":"Create a Document","p":["When creating a global document, it will always come with an identifier."]},{"l":"Getting Data"},{"l":"Storing Data","p":["Storing data can take any data type and store it for you.","Below is just a simple numerical example."]}],[{"l":"Vehicle","p":["An character document is a set of data that is bound to the player until they disconnect.","It automatically saves data to the MongoDB database when any set function is used."]},{"l":"Binding Data","p":["You should bind character data after fetching call characters owned by an account.","When you bind vehicle data to a vehicle the following is synchronized:","Position","Rotation","Model","Mods","Health","Windows","Wheels","Extras","Dimension"]},{"l":"Checking Validity","p":["If you need to check if a vehicle has a document bound to them, you can use the following method."]},{"l":"Getting Data","p":["Data can be retrieved for the bound character like this."]},{"l":"Setting Data","p":["Data can easily be appended or set in two different ways."]}],[{"l":"Virtual","p":["An virtual document lets you interface with a document by _id and collection.","All functions are async and reads data directly from the database.","Virtual documents just provide a similar approach to reading / writing data while coding."]},{"l":"Usage"}],[{"l":"Player","p":["The player getter gives information about a single player."]}],[{"l":"Players","p":["The players getter gives information about all players."]}],[{"l":"Vehicle","p":["The vehicle getter gives single vehicle information."]}],[{"l":"Vehicles","p":["The vehicles getter gives information about all vehicles."]}],[{"l":"World","p":["A world getter gives information about the in-game world."]}],[{"l":"usePlayer","p":["While there is access to individual waypoints.","It is recommended that if you're accessing many waypoints to use the usePlayer function to get direct access to all functions without having to pass the player each time."]},{"l":"Animation","p":["Play an animation on a player in various ways.","Animation List"]},{"l":"Appearance","p":["Used to set various freeroam character appearance data and store in the database.","All functions will automatically save to the database, except for update"]},{"l":"Audio","p":["Play audio from frontend or using custom .ogg sound files.","If you want to use custom sound files, put them in the webview/public/sounds folder.","Frontend Sound List"]},{"l":"Clothing","p":["All of these functions can be used to adjust character clothing, skins, and uniforms.","Keep in mind that the render order is as follows.","If a skin is present we set the skin, and do nothing else.","If a skin is not present, we apply the clothes to the freeroam model","If a uniform is present, we apply the uniform to the freeroam model","Uniform will always be rendered last and will override clothing pieces.","All functions will automatically save to the database, except for update"]},{"l":"Native","p":["Invoke client natives from server side.","Rebar is adding this because sometimes you don't want to create a whole file to invoke one native on client-side."]},{"l":"Notify","p":["Notify allows you to send different text and messages to the player screen."]},{"l":"Screenshot","p":["Used to get a screenshot of a player's screen.","Mostly used for utility such as getting vehicle screenshots, and such."]},{"l":"Raycast","p":["Used to get what the player is looking at, or find out other information"]},{"l":"Player State","p":["Used to synchronize or apply weapons to a player."]},{"l":"Status","p":["Check if a player has an account bound, or character bound."]},{"l":"Waypoint","p":["Get a waypoint a player may or may not have currently marked on their map.","It can sometimes return undefined."]},{"l":"Weapon","p":["Used to synchronize or apply weapons to a player."]},{"l":"Webview","p":["This specific controller allows controlling the client-side webview instance for a given player.","You can focus the webview, hide pages, or show pages with ease."]},{"l":"World","p":["These functions change what the player will see, or doesn't see.","Often used for drunk effects, changing weather, changing time, or fading a screen to black."]}],[{"l":"Plugin API","p":["API allows for plugins to register their own APIs and make them available globally.","However, they are limited to either server-side or client-side.","This reduces the complexity to import functions from other plugins, or export functions for other plugins."]},{"l":"How to Declare an API","p":["Ensure you have an API setup in your plugin.","Create a global declaration for your API.","Done"]},{"l":"How to Get an API","p":["This is all that's necessary to start working with other plugin APIs.","If you do not want to worry about load order. Consider the following pattern:"]}],[{"l":"Messenger","p":["The messenger system allows for developers to easily send up messages from players and process them as commands or messages for other players to read.","However, the messages are not automatically sent to other players. You as a developer get to decide who sees what messages or if they see text messages at all."]},{"l":"Usage"}],[{"l":"useKeybinder","p":["A simple way to bind keybinds to server-side functionality.","You can determine what key is pressed by using keycode.info.","All client-to-server keybinds are rate limited at 500ms."]},{"l":"Protecting Keybinds","p":["If you want your keybinds to be further protected from spam.","Consider using the various callback utilities for callback protection.","Callback Rate Limiter","Callback Permissions"]}],[{"l":"useProxyFetch","p":["Allows for you to register safe endpoints on server-side which can be called client-side, or server-side.","Effectively calls an API from the server address, rather than the player address."]}],[{"l":"useServerConfig","p":["The server config controls player-wide aspects such as radar display, vehicle class display, etc."]}],[{"l":"useServerTime","p":["This stores server time during runtime, and allows for time to be shared to other plugins.","Additionally, when these functions are used the internal RebarEvents for time changes are invoked."]}],[{"l":"useServerWeather","p":["This stores server weather during runtime, and allows for weather to be shared to other plugins.","Additionally, when these functions are used the internal RebarEvents for weather changes are invoked."]}],[{"l":"Clothing","p":["When you have dlc clothing or just need to use clothing in general.","This utility provides a lot of useful information for available clothing maximum values.","You should 100% use an rpc on server-side to get categories and keep it simple for your userbase."]}],[{"l":"Protect Callback","p":["When you're using events, or you need callbacks to be fully protected and permissioned this utility functions provides a simple wrapper to check for permissions before the callback is executed.","This prevents unauthorized users from executing callbacks at the event level.","A simple, but easy way to add permissions when recieving client-side events, or other callbacks."]}],[{"l":"Rate Limit Callback","p":["When you're using events, or you need callbacks to be protected by a rate limiter, this is a wrapper you can use.","This prevents player invoked functions from being called too frequently.","In fact, if a player calls them too much, they will be kicked."]}],[{"l":"useVehicle","p":["Used to create a new vehicle document, repair vehicles, apply vehicle documents, etc."]}],[{"l":"Configuration Usage","p":["This document provides an overview of the configuration management for a Rebar server application."]},{"l":"Features","p":["Parsing environment variables.","Setting a default value if env variable was not defined.","Basic type validation - number, boolean, string (by default)."]},{"l":"Usage","p":["By default, mongodb is initialized automatically. It is required and has default value of local mongodb instance.","Config defined as an interface, all methods covered with type hints, so you will see all variables and correct types on each method call."]},{"l":"Get config object","p":["You can get the whole config object this way:"]},{"l":"Get variable from config","p":["You can also get a specific value from config:"]},{"l":"Set new variable","p":["To be able to extend default Rebar config, you can extend Config interface this way:","After you've extended Config interface, you'll be able to use it's keys to initialize config variable against the env.","If you will try to parse not a number as number, you will get an uncaught exception:","You will get an uncaught exception here, the server won't start and you will see this in logs:","Error: Can't set auth_session_lifetime: Can't parse 'dummy', it is not a valid number"]},{"l":"Override config variable in runtime","p":["You can change variable value in runtime. Be careful with types."]}],[{"l":"Rebar Event Usage","p":["These events are unique to the Rebar framework, and help provide information about when something happens."]},{"l":"Usage"}],[{"l":"Server API Usage","p":["The server API can be accessed through a single import.","If you want more direct imports, those are also available through your intellisense."]},{"i":"altv-based-import","l":"alt:V Based Import"},{"l":"Direct Import"}],[{"l":"Utility","p":["Utility provides a lot of shared functionality between client, server, and webview.","Your import path may vary depending on where you're importing from."]},{"l":"Import"},{"l":"Usage"},{"l":"Clone Data","p":["When you need to break function bindings for objects, or clone an array. This is a way to do it.","This works exactly the same as a deep clone."]},{"l":"RGBA to Hex","p":["Some values from the natives return as rgba, this converts them to hex."]},{"l":"Missing Number","p":["Return a missing number given a group of numbers."]},{"l":"Randomization","p":["Various randomization functions for creating data."]},{"l":"UID","p":["Randomly generates a short string. Collision can happen."]},{"l":"Vector","p":["Vectors are used to perform various distance checks."]},{"l":"Vehicle Hash Map","p":["When you need vehicle names from hash values or need a large list of vehicles. This is it."]}],[{"l":"Explosion Types","p":["0","1","10","11","12","13","14","15","16","17","18","19","2","20","21","22","23","24","25","26","27","28","29","3","30","31","32","33","34","35","36","37","38","39","4","40","41","42","43","44","45","46","47","48","49","5","50","51","52","53","54","55","56","57","58","59","6","60","61","62","63","64","65","66","67","68","69","7","70","71","72","8","9","AIR_DEFENSE","APCSHELL","BARREL","BIKE","BIRD_CRAP","BLIMP","BLIMP2","BOAT","BOMB_CLUSTER","BOMB_CLUSTER_SECONDARY","BOMB_GAS","BOMB_INCENDIARY","BOMB_STANDARD","BOMB_STANDARD_WIDE","BOMBUSHKA_CANNON","BULLET","BURIEDMINE","BZGAS","CAR","Explosion Type","EXPLOSIVEAMMO","EXPLOSIVEAMMO_SHOTGUN","EXTINGUISHER","FIREWORK","FLAME","FLAME_EXPLODE","FLARE","GAS_CANISTER","GAS_TANK","GRENADE","GRENADELAUNCHER","HI_OCTANE","HUNTER_BARRAGE","HUNTER_CANNON","ID","List of all explosion types.","MINE_UNDERWATER","MOLOTOV","MORTAR_KINETIC","OPPRESSOR2_CANNON","ORBITAL_CANNON","PETROL_PUMP","PIPEBOMB","PLANE","PLANE_ROCKET","PROGRAMMABLEAR","PROPANE","PROXMINE","RAILGUN","RAYGUN","ROCKET","ROGUE_CANNON","SCRIPT_DRONE","SCRIPT_MISSILE","SHIP_DESTROY","SMOKEGRENADE","SMOKEGRENADELAUNCHER","SNOWBALL","STEAM","STICKYBOMB","TANKER","TANKSHELL","TORPEDO","TORPEDO_UNDERWATER","TRAIN","TRUCK","VALKYRIE_CANNON","VEHICLE_BULLET","VEHICLEMINE","VEHICLEMINE_EMP","VEHICLEMINE_KINETIC","VEHICLEMINE_SLICK","VEHICLEMINE_SPIKE","VEHICLEMINE_TAR","WATER_HYDRANT"]}],[{"l":"Frontend Sounds","p":["-1","\"Knuckle_Crack_Hard_Cel","0","1","10_SEC_WARNING","10s","1st_Person_Transition","3_2_1","3_2_1_NON_RACE","5_SEC_WARNING","5_Second_Timer","5s","5s_To_Event_Start_Countdown","A list of common frontend sounds.","Airhorn","all","Altitude_Warning","APT_BvS_Soundset","Apt_Style_Purchase","Arming_Countdown","ASSASSINATION_MULTI","ASSASSINATIONS_HOTEL_TIMER_COUNTDOWN","ATM_SOUNDS","ATM_WINDOW","Audio Name","Audio Ref","BACK","Background","Background_Loop","Background_Sound","BARRY_02_SOUNDSET","BASE_JUMP_PASSED","BASEJUMPS_SOUNDS","Beast_Checkpoint","Beast_Checkpoint_NPC","Bed","Beep_Green","Beep_Red","BIG_SCORE_3A_SOUNDS","BIG_SCORE_SETUP_SOUNDS","Blade_Appear","Blip_Pickup","BOATS_PLANES_HELIS_BOOM","Bomb_Disarmed","Boss_Blipped","Boss_Message_Orange","Breaker_01","Breaker_02","BulldozerDefault","Bus_Schedule_Pickup","CABLE_SNAPS","CAM_PAN_DARTS","Camera_Hum","Camera_Move_Loop","Camera_Shoot","Camera_Zoom","CANCEL","CAR_BIKE_WHOOSH","CAR_STEAL_2_SOUNDSET","CB_RADIO_SFX","CELEBRATION_SOUNDSET","CHALLENGE_UNLOCKED","Change_Cam","Change_Station_Loud","CHARACTER_SELECT","CHECKPOINT_AHEAD","Checkpoint_Beast_Hit","CHECKPOINT_BEHIND","Checkpoint_Cash_Hit","Checkpoint_Hit","CHECKPOINT_MISSED","CHECKPOINT_NORMAL","CHECKPOINT_PERFECT","Checkpoint_Teammate","CHECKPOINT_UNDER_THE_BRIDGE","Cheers","Click","CLICK_BACK","Click_Fail","Click_Special","CLOSE_WINDOW","CLOSED","CLOSING","COLLECTED","CONFIRM_BEEP","CONSTRUCTION_ACCIDENT_1_SOUNDS","CONTINUE","Continue_Accepted","Continue_Appears","CONTINUOUS_SLIDER","Crash","Criminal_Damage_High_Value","Criminal_Damage_Kill_Player","Criminal_Damage_Low_Value","Cycle_Item","DELETE","Delete_Placed_Prop","Deliver_Pick_Up","DiggerRevOneShot","DISTANT_DOG_BARK","DLC_Apartments_Drop_Zone_Sounds","DLC_APT_Apartment_SoundSet","DLC_APT_YACHT_DOOR_SOUNDS","DLC_Dmod_Prop_Editor_Sounds","DLC_HALLOWEEN_FVJ_Sounds","DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS","DLC_HEIST_FLEECA_SOUNDSET","DLC_HEIST_HACKING_SNAKE_SOUNDS","DLC_HEIST_PLANNING_BOARD_SOUNDS","DLC_HEISTS_BIOLAB_FINALE_SOUNDS","DLC_HEISTS_FAILED_SCREEN_SOUNDS","DLC_HEISTS_FINALE_SCREEN_SOUNDS","DLC_HEISTS_GENERAL_FRONTEND_SOUNDS","DLC_HEISTS_GENERIC_SOUNDS","DLC_HEISTS_PREP_SCREEN_SOUNDS","DLC_Lowrider_Relay_Race_Sounds","DLC_Pilot_Chase_Parachute_Sounds","DLC_PILOT_MP_HUD_SOUNDS","DLC_PRISON_BREAK_HEIST_SOUNDS","DLC_TG_Dinner_Sounds","DLC_TG_Running_Back_Sounds","DOCKS_HEIST_FINALE_2B_SOUNDS","DOOR_BUZZ","DOOR_GARAGE","Door_Open","Drill_Pin_Break","Dropped","EDIT","Elevation_Loop","EMP","EMP_Blast","End_Squelch","Enemy_Capture_Start","Enemy_Deliver","Enemy_Pick_Up","Enter_1st","Enter_Area","Enter_Capture_Zone","ERROR","Event_Message_Purple","Event_Start_Text","EXILE_1","EXIT","Exit_Capture_Zone","Failure","Falling_Crates","FAMILY_1_CAR_BREAKDOWN","FAMILY_1_CAR_BREAKDOWN_ADDITIONAL","FAMILY_5_SOUNDS","FAMILY1_BOAT","Faster_Bar_Full","Faster_Click","FBI_HEIST_FINALE_CHOPPER","Feed_Message_Sounds","FestiveGift","FINDING_VIRUS","FIRST_PLACE","FLIGHT_SCHOOL_LESSON_PASSED","FLYING_STREAM_END_INSTANT","FM_Events_Sasquatch_Sounds","FocusIn","FocusOut","Found_Target","Friend_Deliver","Friend_Pick_Up","Frontend_Beast_Fade_Screen","Frontend_Beast_Freeze_Screen","Frontend_Beast_Text_Hit","Frontend_Beast_Transform_Back","GO","GO_NON_RACE","Goal","GOLF_BIRDIE","GOLF_EAGLE","GOLF_NEW_RECORD","Goon_Paid_Large","Goon_Paid_Small","Grab_Chute_Foley","Grab_Parachute","GTAO_APT_DOOR_DOWNSTAIRS_GLASS_SOUNDS","GTAO_APT_DOOR_DOWNSTAIRS_WOOD_SOUNDS","GTAO_Boss_Goons_FM_Shard_Sounds","GTAO_Boss_Goons_FM_Soundset","GTAO_FM_Cross_The_Line_Soundset","GTAO_FM_Events_Soundset","GTAO_Magnate_Boss_Modes_Soundset","GTAO_Magnate_Hunt_Boss_SoundSet","GTAO_Magnate_Yacht_Attack_Soundset","GTAO_MUGSHOT_ROOM_SOUNDS","GTAO_Shepherd_Sounds","GTAO_Speed_Convoy_Soundset","Hack_Failed","Hack_Success","Hang_Up","HEIST_BULLETIN_BOARD_SOUNDSET","Heli_Crash","HIGHLIGHT","Highlight_Accept","Highlight_Cancel","Highlight_Error","Highlight_Move","HIGHLIGHT_NAV_UP_DOWN","HintCamSounds","Hit","Hit_1","Hit_In","Hit_Out","HOORAY","HORDE_COOL_DOWN_TIMER","HUD_AMMO_SHOP_SOUNDSET","HUD_AWARDS","HUD_DEATHMATCH_SOUNDSET","HUD_FREEMODE_SOUNDSET","HUD_FRONTEND_CLOTHESSHOP_SOUNDSET","HUD_FRONTEND_CUSTOM_SOUNDSET","HUD_FRONTEND_DEFAULT_SOUNDSET","HUD_FRONTEND_MP_COLLECTABLE_SOUNDS","HUD_FRONTEND_MP_SOUNDSET","HUD_FRONTEND_TATTOO_SHOP_SOUNDSET","HUD_FRONTEND_WEAPONS_PICKUPS_SOUNDSET","HUD_LIQUOR_STORE_SOUNDSET","HUD_MINI_GAME_SOUNDSET","HUD_MINIGAME_SOUNDSET","HUD_PROPERTY_SOUNDSET","In","Kill_List_Counter","Knuckle_Crack_Slap_Cel","LEADER_BOARD","LEADERBOARD","Lester_Laugh_Phone","LESTER1A_SOUNDS","Lights_On","LIMIT","Load_Scene","LOCAL_PLYR_CASH_COUNTER_COMPLETE","LOCAL_PLYR_CASH_COUNTER_INCREASE","LONG_PLAYER_SWITCH_SOUNDS","LOOSE_MATCH","Lose_1st","LOSER","Lost_Target","Lowrider_Super_Mod_Garage_Sounds","Lowrider_Upgrade","Map_Roll_Down","Map_Roll_Up","MARKER_ERASE","MEDAL_BRONZE","MEDAL_GOLD","MEDAL_SILVER","MEDAL_UP","Menu_Accept","MICHAEL_LONG_SCREAM","Microphone","MINUTE_MAN_01_SOUNDSET","Mission_Pass_Notify","MissionFailedSounds","Move_Loop","MP_5_SECOND_TIMER","MP_AWARD","MP_CCTV_SOUNDSET","MP_Flash","MP_IDLE_KICK","MP_IDLE_TIMER","MP_Impact","MP_LOBBY_SOUNDS","MP_MISSION_COUNTDOWN_SOUNDSET","MP_PLAYER_APARTMENT","MP_PROPERTIES_ELEVATOR_DOORS","MP_RADIO_SFX","MP_RANK_UP","MP_SNACKS_SOUNDSET","MP_WAVE_COMPLETE","NAV","Nav_Arrow_Ahead","Nav_Arrow_Behind","Nav_Arrow_Left","Nav_Arrow_Right","NAV_LEFT_RIGHT","NAV_UP_DOWN","Near_Miss_Counter","Near_Miss_Counter_Reset","NO","NOIR_FILTER_SOUNDS","Object_Collect_Player","Object_Collect_Remote","Object_Dropped_Remote","OFF","Off_High","OK","ON","On_Call_Player_Join","Oneshot_Final","OOB_Cancel","OOB_Start","OOB_Timer_Dynamic","OPEN_WINDOW","OPENED","OPENING","OTHER_TEXT","out","Out_Of_Area","Out_of_Bounds","PALETO_SCORE_2A_BANK_SS","Pan","PAPARAZZO_02_SOUNDSETS","Paper_Shuffle","Parcel_Vehicle_Lost","Payment_Non_Player","Payment_Player","Pen_Tick","PERSON_SCROLL","PERSON_SELECT","PEYOTE_COMPLETED","Phone_Generic_Key_02","Phone_Generic_Key_03","Phone_SoundSet_Default","Phone_Soundset_Franklin","Phone_SoundSet_Glasses_Cam","Phone_SoundSet_Michael","PICK_UP","PICK_UP_WEAPON","Pickup_Briefcase","PICKUP_WEAPON_BALL","PICKUP_WEAPON_SMOKEGRENADE","Pin_Bad","PIN_BUTTON","Pin_Centred","Pin_Good","Pin_Movement","PIPES_LAND","Place_Prop_Fail","Place_Prop_Success","Player_Collect","Player_Enter_Line","Player_Exit_Line","PLAYER_SWITCH_CUSTOM_SOUNDSET","POLICE_CHOPPER_CAM_SOUNDS","Power_Down","Pre_Screen_Stinger","PROPERTY_PURCHASE","PROPERTY_PURCHASE_MEDIUM","PS2A_MONEY_LOST","Pull_Out","PURCHASE","PUSH","Put_Away","QUIT","QUIT_WHOOSH","RACE_PLACED","Radar_Beast_Blip","Radio_Soundset","RAMP_DOWN","RAMP_UP","RANK_UP","Remote_Enemy_Enter_Line","Remote_Friendly_Enter_Line","REMOTE_PLYR_CASH_COUNTER_COMPLETE","REMOTE_PLYR_CASH_COUNTER_INCREASE","Reset_Prop_Position","RESPAWN_ONLINE_SOUNDSET","RESPAWN_SOUNDSET","RESTART","RETRY","Retune_High","Return_To_Vehicle_Timer","ROBBERY_MONEY_TOTAL","ROPE_CUT","ROPE_CUT_SOUNDSET","Rotate_Loop","ROUND_ENDING_STINGER_CUSTOM","SAFE_CRACK_SOUNDSET","SAFE_DOOR_CLOSE","SAFE_DOOR_OPEN","Save_Scene","SCREEN_FLASH","ScreenFlash","SELECT","Select_Placed_Prop","Shard_Disappear","SHOOTING_RANGE_ROUND_OVER","SHORT_PLAYER_SWITCH_SOUND_SET","Short_Transition_In","Short_Transition_Out","SIGN_DESTROYED","SKIP","Slow_Clap_Cel","Sound ID","SPECIAL_ABILITY_SOUNDSET","Start","Start_Squelch","STUN_COLLECT","Success","Sult-16_Super_Mod_Garage_Sounds","Swap_Sides","SWING_SHUT","SwitchRedWarning","SwitchWhiteWarning","Tattooing_Oneshot","Tattooing_Oneshot_Remove","TATTOOIST_SOUNDS","Team_Capture_Start","TENNIS_MATCH_POINT","TENNIS_POINT_WON","TextHit","Thermal_Off","Thermal_On","Thernal_Vision_Loop","TIMER","Timer_10s","Timer_5s","TIMER_STOP","TIMER_STOP_MASTER","TOGGLE_ON","TRAFFIC_CONTROL_BG_NOISE","TRAFFIC_CONTROL_CHANGE_CAM","Traffic_Control_Fail","Traffic_Control_Fail_Blank","Traffic_Control_Light_Switch_Back","TRAFFIC_CONTROL_MOVE_CROSSHAIR","TRAFFIC_CONTROL_TOGGLE_LIGHT","Trail_Custom","TRUCK_RAMP_DOWN","TUMBLER_PIN_FALL","TUMBLER_PIN_FALL_FINAL","TUMBLER_RESET","TUMBLER_TURN","Turn","UNDER_THE_BRIDGE","UNDER_WATER_COME_UP","UNDO","v_4","WastedSounds","WAYPOINT_SET","WEAKEN","WEAPON_AMMO_PURCHASE","WEAPON_ATTACHMENT_EQUIP","WEAPON_ATTACHMENT_UNEQUIP","WEAPON_PURCHASE","WEAPON_SELECT_ARMOR","WEAPON_SELECT_BATON","WEAPON_SELECT_FUEL_CAN","WEAPON_SELECT_GRENADE_LAUNCHER","WEAPON_SELECT_HANDGUN","WEAPON_SELECT_KNIFE","WEAPON_SELECT_OTHER","WEAPON_SELECT_PARACHUTE","WEAPON_SELECT_RIFLE","WEAPON_SELECT_RPG_LAUNCHER","WEAPON_SELECT_SHOTGUN","WEB_NAVIGATION_SOUNDS_PHONE","Whistle","Whoosh_1s_L_to_R","Whoosh_1s_R_to_L","WIN","WIND","YES","Zone_Enemy_Capture","Zone_Neutral","Zone_Team_Capture","Zoom","Zoom_In","Zoom_Left","Zoom_Out","Zoom_Right"]}],[{"i":"gtav-controls","l":"GTA:V Controls","p":["These are all the control groups, and controls official names."]},{"l":"Input Groups","p":["0","1","10","11","12","13","14","15","16","17","18","19","2","20","21","22","23","24","25","26","27","28","29","3","30","31","4","5","6","7","8","9","ID","INPUTGROUP_CELLPHONE_NAVIGATE","INPUTGROUP_CELLPHONE_NAVIGATE_LR","INPUTGROUP_CELLPHONE_NAVIGATE_UD","INPUTGROUP_CURSOR","INPUTGROUP_CURSOR_SCROLL","INPUTGROUP_FLY","INPUTGROUP_FRONTEND_BUMPERS","INPUTGROUP_FRONTEND_DPAD_ALL","INPUTGROUP_FRONTEND_DPAD_LR","INPUTGROUP_FRONTEND_DPAD_UD","INPUTGROUP_FRONTEND_GENERIC_ALL","INPUTGROUP_FRONTEND_GENERIC_LR","INPUTGROUP_FRONTEND_GENERIC_UD","INPUTGROUP_FRONTEND_LSTICK_ALL","INPUTGROUP_FRONTEND_RSTICK_ALL","INPUTGROUP_FRONTEND_STICKS","INPUTGROUP_FRONTEND_TRIGGERS","INPUTGROUP_LOOK","INPUTGROUP_MOVE","INPUTGROUP_SCRIPT_BUMPERS","INPUTGROUP_SCRIPT_DPAD_ALL","INPUTGROUP_SCRIPT_DPAD_LR","INPUTGROUP_SCRIPT_DPAD_UD","INPUTGROUP_SCRIPT_LSTICK_ALL","INPUTGROUP_SCRIPT_RSTICK_ALL","INPUTGROUP_SCRIPT_TRIGGERS","INPUTGROUP_SNIPER_ZOOM_SECONDARY","INPUTGROUP_SUB","INPUTGROUP_VEH_HYDRAULICS_CONTROL","INPUTGROUP_VEH_MOVE_ALL","INPUTGROUP_WEAPON_WHEEL_CYCLE","INPUTGROUP_WHEEL","Name"]},{"l":"Controls","p":["-",",",".","(NONE)","[","]","=","~ / `","0","1","10","100","101","102","103","104","105","106","107","108","109","11","110","111","112","113","114","115","116","117","118","119","12","120","121","122","123","124","125","126","127","128","129","13","130","131","132","133","134","135","136","137","138","139","14","140","141","142","143","144","145","146","147","148","149","15","150","151","152","153","154","155","156","157","158","159","16","160","161","162","163","164","165","166","167","168","169","17","170","171","172","173","174","175","176","177","178","179","18","180","181","182","183","184","185","186","187","188","189","19","190","191","192","193","194","195","196","197","198","199","2","20","200","201","202","203","204","205","206","207","208","209","21","210","211","212","213","214","215","216","217","218","219","22","220","221","222","223","224","225","226","227","228","229","23","230","231","232","233","234","235","236","237","238","239","24","240","241","242","243","244","245","246","247","248","249","25","250","251","252","253","254","255","256","257","258","259","26","260","261","262","263","264","265","266","267","268","269","27","270","271","272","273","274","275","276","277","278","279","28","280","281","282","283","284","285","286","287","288","289","29","290","291","292","293","294","295","296","297","298","299","3","30","300","301","302","303","304","305","306","307","308","309","31","310","311","312","313","314","315","316","317","318","319","32","320","321","322","323","324","325","326","327","328","329","33","330","331","332","333","334","335","336","337","338","339","34","340","341","342","343","344","345","346","347","348","349","35","350","351","352","353","354","355","356","357","36","37","38","39","4","40","41","42","43","44","45","46","47","48","49","5","50","51","52","53","54","55","56","57","58","59","6","60","61","62","63","64","65","66","67","68","69","7","70","71","72","73","74","75","76","77","78","79","8","80","81","82","83","84","85","86","87","88","89","9","90","91","92","93","94","95","96","97","98","99","A","ARROW DOWN","ARROW LEFT","ARROW RIGHT","ARROW UP","ARROW UP / SCROLLWHEEL BUTTON (PRESS)","B","BACK","BACKSPACE","BACKSPACE / ESC","BACKSPACE / ESC / RIGHT MOUSE BUTTON","C","CAPSLOCK","D","Default QWERTY","DELETE","DPAD DOWN","DPAD LEFT","DPAD RIGHT","DPAD UP","E","ENTER","ENTER / LEFT MOUSE BUTTON","ENTER / LEFT MOUSE BUTTON / SPACEBAR","ENTER / NUMPAD ENTER","ESC","F","F / LEFT MOUSE BUTTON","F1","F10","F11","F2","F3","F5","F6","F7","F8 (CONSOLE)","F9","G","H","HOME","ID","INPUT_ACCURATE_AIM","INPUT_AIM","INPUT_ARREST","INPUT_ATTACK","INPUT_ATTACK2","INPUT_CELLPHONE_CAMERA_DOF","INPUT_CELLPHONE_CAMERA_EXPRESSION","INPUT_CELLPHONE_CAMERA_FOCUS_LOCK","INPUT_CELLPHONE_CAMERA_GRID","INPUT_CELLPHONE_CAMERA_SELFIE","INPUT_CELLPHONE_CANCEL","INPUT_CELLPHONE_DOWN","INPUT_CELLPHONE_EXTRA_OPTION","INPUT_CELLPHONE_LEFT","INPUT_CELLPHONE_OPTION","INPUT_CELLPHONE_RIGHT","INPUT_CELLPHONE_SCROLL_BACKWARD","INPUT_CELLPHONE_SCROLL_FORWARD","INPUT_CELLPHONE_SELECT","INPUT_CELLPHONE_UP","INPUT_CHARACTER_WHEEL","INPUT_CINEMATIC_SLOWMO","INPUT_CONTEXT","INPUT_CONTEXT_SECONDARY","INPUT_COVER","INPUT_CREATOR_ACCEPT","INPUT_CREATOR_DELETE","INPUT_CREATOR_LS","INPUT_CREATOR_LT","INPUT_CREATOR_MENU_TOGGLE","INPUT_CREATOR_RS","INPUT_CREATOR_RT","INPUT_CURSOR_ACCEPT","INPUT_CURSOR_CANCEL","INPUT_CURSOR_SCROLL_DOWN","INPUT_CURSOR_SCROLL_UP","INPUT_CURSOR_X","INPUT_CURSOR_Y","INPUT_DETONATE","INPUT_DIVE","INPUT_DROP_AMMO","INPUT_DROP_WEAPON","INPUT_DUCK","INPUT_ENTER","INPUT_ENTER_CHEAT_CODE","INPUT_FRONTEND_ACCEPT","INPUT_FRONTEND_AXIS_X","INPUT_FRONTEND_AXIS_Y","INPUT_FRONTEND_CANCEL","INPUT_FRONTEND_DELETE","INPUT_FRONTEND_DOWN","INPUT_FRONTEND_ENDSCREEN_ACCEPT","INPUT_FRONTEND_ENDSCREEN_EXPAND","INPUT_FRONTEND_LB","INPUT_FRONTEND_LEADERBOARD","INPUT_FRONTEND_LEFT","INPUT_FRONTEND_LS","INPUT_FRONTEND_LT","INPUT_FRONTEND_PAUSE","INPUT_FRONTEND_PAUSE_ALTERNATE","INPUT_FRONTEND_RB","INPUT_FRONTEND_RDOWN","INPUT_FRONTEND_RIGHT","INPUT_FRONTEND_RIGHT_AXIS_X","INPUT_FRONTEND_RIGHT_AXIS_Y","INPUT_FRONTEND_RLEFT","INPUT_FRONTEND_RRIGHT","INPUT_FRONTEND_RS","INPUT_FRONTEND_RT","INPUT_FRONTEND_RUP","INPUT_FRONTEND_SELECT","INPUT_FRONTEND_SOCIAL_CLUB","INPUT_FRONTEND_SOCIAL_CLUB_SECONDARY","INPUT_FRONTEND_UP","INPUT_FRONTEND_X","INPUT_FRONTEND_Y","INPUT_HUD_SPECIAL","INPUT_INTERACTION_MENU","INPUT_JUMP","INPUT_LOOK_BEHIND","INPUT_LOOK_DOWN","INPUT_LOOK_DOWN_ONLY","INPUT_LOOK_LEFT","INPUT_LOOK_LEFT_ONLY","INPUT_LOOK_LR","INPUT_LOOK_RIGHT","INPUT_LOOK_RIGHT_ONLY","INPUT_LOOK_UD","INPUT_LOOK_UP","INPUT_LOOK_UP_ONLY","INPUT_MAP","INPUT_MAP_POI","INPUT_MELEE_ATTACK_ALTERNATE","INPUT_MELEE_ATTACK_HEAVY","INPUT_MELEE_ATTACK_LIGHT","INPUT_MELEE_ATTACK1","INPUT_MELEE_ATTACK2","INPUT_MELEE_BLOCK","INPUT_MOVE_DOWN","INPUT_MOVE_DOWN_ONLY","INPUT_MOVE_LEFT","INPUT_MOVE_LEFT_ONLY","INPUT_MOVE_LR","INPUT_MOVE_RIGHT","INPUT_MOVE_RIGHT_ONLY","INPUT_MOVE_UD","INPUT_MOVE_UP","INPUT_MOVE_UP_ONLY","INPUT_MP_TEXT_CHAT_ALL","INPUT_MP_TEXT_CHAT_CREW","INPUT_MP_TEXT_CHAT_FRIENDS","INPUT_MP_TEXT_CHAT_TEAM","INPUT_MULTIPLAYER_INFO","INPUT_NEXT_CAMERA","INPUT_NEXT_WEAPON","INPUT_PARACHUTE_BRAKE_LEFT","INPUT_PARACHUTE_BRAKE_RIGHT","INPUT_PARACHUTE_DEPLOY","INPUT_PARACHUTE_DETACH","INPUT_PARACHUTE_PITCH_DOWN_ONLY","INPUT_PARACHUTE_PITCH_UD","INPUT_PARACHUTE_PITCH_UP_ONLY","INPUT_PARACHUTE_PRECISION_LANDING","INPUT_PARACHUTE_SMOKE","INPUT_PARACHUTE_TURN_LEFT_ONLY","INPUT_PARACHUTE_TURN_LR","INPUT_PARACHUTE_TURN_RIGHT_ONLY","INPUT_PHONE","INPUT_PICKUP","INPUT_PREV_WEAPON","INPUT_PUSH_TO_TALK","INPUT_RADIO_WHEEL_LR","INPUT_RADIO_WHEEL_UD","INPUT_RAPPEL_JUMP","INPUT_RAPPEL_LONG_JUMP","INPUT_RAPPEL_SMASH_WINDOW","INPUT_RELOAD","INPUT_REPLAY_ADVANCE","INPUT_REPLAY_BACK","INPUT_REPLAY_CAMERADOWN","INPUT_REPLAY_CAMERAUP","INPUT_REPLAY_CLIP_DELETE","INPUT_REPLAY_CTRL","INPUT_REPLAY_CYCLEMARKERLEFT","INPUT_REPLAY_CYCLEMARKERRIGHT","INPUT_REPLAY_ENDPOINT","INPUT_REPLAY_FFWD","INPUT_REPLAY_FOVDECREASE","INPUT_REPLAY_FOVINCREASE","INPUT_REPLAY_HIDEHUD","INPUT_REPLAY_MARKER_DELETE","INPUT_REPLAY_NEWMARKER","INPUT_REPLAY_PAUSE","INPUT_REPLAY_PREVIEW","INPUT_REPLAY_PREVIEW_AUDIO","INPUT_REPLAY_RECORD","INPUT_REPLAY_RESTART","INPUT_REPLAY_REWIND","INPUT_REPLAY_SAVE","INPUT_REPLAY_SCREENSHOT","INPUT_REPLAY_SHOWHOTKEY","INPUT_REPLAY_SNAPMATIC_PHOTO","INPUT_REPLAY_START_STOP_RECORDING","INPUT_REPLAY_START_STOP_RECORDING_SECONDARY","INPUT_REPLAY_STARTPOINT","INPUT_REPLAY_TIMELINE_DUPLICATE_CLIP","INPUT_REPLAY_TIMELINE_PICKUP_CLIP","INPUT_REPLAY_TIMELINE_PLACE_CLIP","INPUT_REPLAY_TIMELINE_SAVE","INPUT_REPLAY_TOGGLE_TIMELINE","INPUT_REPLAY_TOGGLETIME","INPUT_REPLAY_TOGGLETIPS","INPUT_REPLAY_TOOLS","INPUT_SAVE_REPLAY_CLIP","INPUT_SCALED_LOOK_DOWN_ONLY","INPUT_SCALED_LOOK_LEFT_ONLY","INPUT_SCALED_LOOK_LR","INPUT_SCALED_LOOK_RIGHT_ONLY","INPUT_SCALED_LOOK_UD","INPUT_SCALED_LOOK_UP_ONLY","INPUT_SCRIPT_LB","INPUT_SCRIPT_LEFT_AXIS_X","INPUT_SCRIPT_LEFT_AXIS_Y","INPUT_SCRIPT_LS","INPUT_SCRIPT_LT","INPUT_SCRIPT_PAD_DOWN","INPUT_SCRIPT_PAD_LEFT","INPUT_SCRIPT_PAD_RIGHT","INPUT_SCRIPT_PAD_UP","INPUT_SCRIPT_RB","INPUT_SCRIPT_RDOWN","INPUT_SCRIPT_RIGHT_AXIS_X","INPUT_SCRIPT_RIGHT_AXIS_Y","INPUT_SCRIPT_RLEFT","INPUT_SCRIPT_RRIGHT","INPUT_SCRIPT_RS","INPUT_SCRIPT_RT","INPUT_SCRIPT_RUP","INPUT_SCRIPT_SELECT","INPUT_SCRIPTED_FLY_LR","INPUT_SCRIPTED_FLY_UD","INPUT_SCRIPTED_FLY_ZDOWN","INPUT_SCRIPTED_FLY_ZUP","INPUT_SELECT_CHARACTER_FRANKLIN","INPUT_SELECT_CHARACTER_MICHAEL","INPUT_SELECT_CHARACTER_MULTIPLAYER","INPUT_SELECT_CHARACTER_TREVOR","INPUT_SELECT_NEXT_WEAPON","INPUT_SELECT_PREV_WEAPON","INPUT_SELECT_WEAPON","INPUT_SELECT_WEAPON_AUTO_RIFLE","INPUT_SELECT_WEAPON_HANDGUN","INPUT_SELECT_WEAPON_HEAVY","INPUT_SELECT_WEAPON_MELEE","INPUT_SELECT_WEAPON_SHOTGUN","INPUT_SELECT_WEAPON_SMG","INPUT_SELECT_WEAPON_SNIPER","INPUT_SELECT_WEAPON_SPECIAL","INPUT_SELECT_WEAPON_UNARMED","INPUT_SKIP_CUTSCENE","INPUT_SNIPER_ZOOM","INPUT_SNIPER_ZOOM_IN","INPUT_SNIPER_ZOOM_IN_ALTERNATE","INPUT_SNIPER_ZOOM_IN_ONLY","INPUT_SNIPER_ZOOM_IN_SECONDARY","INPUT_SNIPER_ZOOM_OUT","INPUT_SNIPER_ZOOM_OUT_ALTERNATE","INPUT_SNIPER_ZOOM_OUT_ONLY","INPUT_SNIPER_ZOOM_OUT_SECONDARY","INPUT_SPECIAL_ABILITY","INPUT_SPECIAL_ABILITY_PC","INPUT_SPECIAL_ABILITY_SECONDARY","INPUT_SPRINT","INPUT_SWITCH_VISOR","INPUT_TALK","INPUT_THROW_GRENADE","INPUT_VEH_ACCELERATE","INPUT_VEH_AIM","INPUT_VEH_ATTACK","INPUT_VEH_ATTACK2","INPUT_VEH_BIKE_WINGS","INPUT_VEH_BRAKE","INPUT_VEH_CAR_JUMP","INPUT_VEH_CIN_CAM","INPUT_VEH_CINEMATIC_DOWN_ONLY","INPUT_VEH_CINEMATIC_LR","INPUT_VEH_CINEMATIC_UD","INPUT_VEH_CINEMATIC_UP_ONLY","INPUT_VEH_DRIVE_LOOK","INPUT_VEH_DRIVE_LOOK2","INPUT_VEH_DROP_PROJECTILE","INPUT_VEH_DUCK","INPUT_VEH_EXIT","INPUT_VEH_FLY_ATTACK","INPUT_VEH_FLY_ATTACK_CAMERA","INPUT_VEH_FLY_ATTACK2","INPUT_VEH_FLY_BOMB_BAY","INPUT_VEH_FLY_BOOST","INPUT_VEH_FLY_COUNTER","INPUT_VEH_FLY_DUCK","INPUT_VEH_FLY_MOUSE_CONTROL_OVERRIDE","INPUT_VEH_FLY_PITCH_DOWN_ONLY","INPUT_VEH_FLY_PITCH_UD","INPUT_VEH_FLY_PITCH_UP_ONLY","INPUT_VEH_FLY_ROLL_LEFT_ONLY","INPUT_VEH_FLY_ROLL_LR","INPUT_VEH_FLY_ROLL_RIGHT_ONLY","INPUT_VEH_FLY_SELECT_NEXT_WEAPON","INPUT_VEH_FLY_SELECT_PREV_WEAPON","INPUT_VEH_FLY_SELECT_TARGET_LEFT","INPUT_VEH_FLY_SELECT_TARGET_RIGHT","INPUT_VEH_FLY_THROTTLE_DOWN","INPUT_VEH_FLY_THROTTLE_UP","INPUT_VEH_FLY_UNDERCARRIAGE","INPUT_VEH_FLY_VERTICAL_FLIGHT_MODE","INPUT_VEH_FLY_YAW_LEFT","INPUT_VEH_FLY_YAW_RIGHT","INPUT_VEH_GRAPPLING_HOOK","INPUT_VEH_GUN_DOWN","INPUT_VEH_GUN_LEFT","INPUT_VEH_GUN_LR","INPUT_VEH_GUN_RIGHT","INPUT_VEH_GUN_UD","INPUT_VEH_GUN_UP","INPUT_VEH_HANDBRAKE","INPUT_VEH_HEADLIGHT","INPUT_VEH_HORN","INPUT_VEH_HOTWIRE_LEFT","INPUT_VEH_HOTWIRE_RIGHT","INPUT_VEH_HYDRAULICS_CONTROL_DOWN","INPUT_VEH_HYDRAULICS_CONTROL_LEFT","INPUT_VEH_HYDRAULICS_CONTROL_LR","INPUT_VEH_HYDRAULICS_CONTROL_RIGHT","INPUT_VEH_HYDRAULICS_CONTROL_TOGGLE","INPUT_VEH_HYDRAULICS_CONTROL_UD","INPUT_VEH_HYDRAULICS_CONTROL_UP","INPUT_VEH_JUMP","INPUT_VEH_LOOK_BEHIND","INPUT_VEH_LOOK_LEFT","INPUT_VEH_LOOK_RIGHT","INPUT_VEH_MELEE_HOLD","INPUT_VEH_MELEE_LEFT","INPUT_VEH_MELEE_RIGHT","INPUT_VEH_MOUSE_CONTROL_OVERRIDE","INPUT_VEH_MOVE_DOWN","INPUT_VEH_MOVE_DOWN_ONLY","INPUT_VEH_MOVE_LEFT","INPUT_VEH_MOVE_LEFT_ONLY","INPUT_VEH_MOVE_LR","INPUT_VEH_MOVE_RIGHT","INPUT_VEH_MOVE_RIGHT_ONLY","INPUT_VEH_MOVE_UD","INPUT_VEH_MOVE_UP","INPUT_VEH_MOVE_UP_ONLY","INPUT_VEH_NEXT_RADIO","INPUT_VEH_NEXT_RADIO_TRACK","INPUT_VEH_PARACHUTE","INPUT_VEH_PASSENGER_AIM","INPUT_VEH_PASSENGER_ATTACK","INPUT_VEH_PREV_RADIO","INPUT_VEH_PREV_RADIO_TRACK","INPUT_VEH_PUSHBIKE_FRONT_BRAKE","INPUT_VEH_PUSHBIKE_PEDAL","INPUT_VEH_PUSHBIKE_REAR_BRAKE","INPUT_VEH_PUSHBIKE_SPRINT","INPUT_VEH_RADIO_WHEEL","INPUT_VEH_ROCKET_BOOST","INPUT_VEH_ROOF","INPUT_VEH_SELECT_NEXT_WEAPON","INPUT_VEH_SELECT_PREV_WEAPON","INPUT_VEH_SHUFFLE","INPUT_VEH_SLOWMO_DOWN_ONLY","INPUT_VEH_SLOWMO_UD","INPUT_VEH_SLOWMO_UP_ONLY","INPUT_VEH_SPECIAL","INPUT_VEH_SPECIAL_ABILITY_FRANKLIN","INPUT_VEH_STUNT_UD","INPUT_VEH_SUB_ASCEND","INPUT_VEH_SUB_DESCEND","INPUT_VEH_SUB_MOUSE_CONTROL_OVERRIDE","INPUT_VEH_SUB_PITCH_DOWN_ONLY","INPUT_VEH_SUB_PITCH_UD","INPUT_VEH_SUB_PITCH_UP_ONLY","INPUT_VEH_SUB_THROTTLE_DOWN","INPUT_VEH_SUB_THROTTLE_UP","INPUT_VEH_SUB_TURN_HARD_LEFT","INPUT_VEH_SUB_TURN_HARD_RIGHT","INPUT_VEH_SUB_TURN_LEFT_ONLY","INPUT_VEH_SUB_TURN_LR","INPUT_VEH_SUB_TURN_RIGHT_ONLY","INPUT_VEH_TRANSFORM","INPUT_WEAPON_SPECIAL","INPUT_WEAPON_SPECIAL_TWO","INPUT_WEAPON_WHEEL_LR","INPUT_WEAPON_WHEEL_NEXT","INPUT_WEAPON_WHEEL_PREV","INPUT_WEAPON_WHEEL_UD","INPUT_WHISTLE","INSERT","K","L","L3","LB","LEFT ALT","LEFT CONTROL","LEFT CTRL","LEFT MOUSE BUTTON","LEFT SHIFT","LEFT STICK","LT","M","MOUSE DOWN","MOUSE RIGHT","N","Name","NUMPAD -","NUMPAD +","NUMPAD 4","NUMPAD 5","NUMPAD 6","NUMPAD 7","NUMPAD 8","NUMPAD 9","NUMPAD- / SCROLLWHEEL UP","NUMPAD+ / SCROLLWHEEL DOWN","P","PAGE DOWN","PAGE UP","PAGEDOWN","PAGEUP","Q","R","R3","RB","RIGHT MOUSE BUTTON","RIGHT STICK","RT","S","SCROLLWHEEL BUTTON (PRESS)","SCROLLWHEEL DOWN","SCROLLWHEEL UP","SPACEBAR","START","T","TAB","U","V","W","X","Xbox Controller","Y","Z"]}],[{"l":"Ped Bones","p":["0","10706","11174","11816","12844","1356","14201","16335","17188","17719","18905","19336","20178","20279","20623","20781","2108","21550","22711","23553","23639","24806","24816","24817","24818","25260","26610","26611","26612","26613","26614","27474","28252","28422","29868","2992","31086","35502","35731","36029","36864","37119","37193","39317","40269","4089","4090","4137","4138","4153","4154","4169","4170","4185","4186","43536","43810","45509","45750","46078","46240","47419","47495","49979","51826","52301","5232","56604","57005","57597","57717","58271","58331","58866","58867","58868","58869","58870","60309","61007","61163","61839","6286","63931","64016","64017","64064","64065","64080","64081","64096","64097","64112","64113","6442","64729","65068","65245","Bone Name","FACIAL_facialRoot","FB_Brow_Centre_000","FB_Jaw_000","FB_L_Brow_Out_000","FB_L_CheekBone_000","FB_L_Eye_000","FB_L_Lid_Upper_000","FB_L_Lip_Bot_000","FB_L_Lip_Corner_000","FB_L_Lip_Top_000","FB_LowerLip_000","FB_LowerLipRoot_000","FB_R_Brow_Out_000","FB_R_CheekBone_000","FB_R_Eye_000","FB_R_Lid_Upper_000","FB_R_Lip_Bot_000","FB_R_Lip_Corner_000","FB_R_Lip_Top_000","FB_Tongue_000","FB_UpperLip_000","FB_UpperLipRoot_000","ID","IK_Head","IK_L_Foot","IK_L_Hand","IK_R_Foot","IK_R_Hand","IK_Root","MH_L_Elbow","MH_L_Knee","MH_R_Elbow","MH_R_Knee","PH_L_Foot","PH_L_Hand","PH_R_Foot","PH_R_Hand","RB_L_ArmRoll","RB_L_ForeArmRoll","RB_L_ThighRoll","RB_Neck_1","RB_R_ArmRoll","RB_R_ForeArmRoll","RB_R_ThighRoll","SKEL_Head","SKEL_L_Calf","SKEL_L_Clavicle","SKEL_L_Finger00","SKEL_L_Finger01","SKEL_L_Finger02","SKEL_L_Finger10","SKEL_L_Finger11","SKEL_L_Finger12","SKEL_L_Finger20","SKEL_L_Finger21","SKEL_L_Finger22","SKEL_L_Finger30","SKEL_L_Finger31","SKEL_L_Finger32","SKEL_L_Finger40","SKEL_L_Finger41","SKEL_L_Finger42","SKEL_L_Foot","SKEL_L_Forearm","SKEL_L_Hand","SKEL_L_Thigh","SKEL_L_Toe0","SKEL_L_UpperArm","SKEL_Neck_1","SKEL_Pelvis","SKEL_R_Calf","SKEL_R_Clavicle","SKEL_R_Finger00","SKEL_R_Finger01","SKEL_R_Finger02","SKEL_R_Finger10","SKEL_R_Finger11","SKEL_R_Finger12","SKEL_R_Finger20","SKEL_R_Finger21","SKEL_R_Finger22","SKEL_R_Finger30","SKEL_R_Finger31","SKEL_R_Finger32","SKEL_R_Finger40","SKEL_R_Finger41","SKEL_R_Finger42","SKEL_R_Foot","SKEL_R_Forearm","SKEL_R_Hand","SKEL_R_Thigh","SKEL_R_Toe0","SKEL_R_UpperArm","SKEL_ROOT","SKEL_Spine_Root","SKEL_Spine0","SKEL_Spine1","SKEL_Spine2","SKEL_Spine3"]}],[{"l":"Vehicle Bones","p":["afterburner","aileron_l","aileron_r","airbrake_l","airbrake_r","ammobelt","arm_1","arm_2","arm_3","arm_4","attach_female","attach_male","barracks","bobble_base","bobble_hand","bobble_head","bodyshell","bogie_front","bogie_rear","Bone Name","bonnet","boom","Boom_Driver","boot","brakelight_l","brakelight_m","brakelight_r","break_extra_1","break_extra_10","break_extra_2","break_extra_3","break_extra_4","break_extra_5","break_extra_6","break_extra_7","break_extra_8","break_extra_9","bucket","bumper_f","bumper_r","carriage","chassis","chassis_Control","chassis_dummy","chassis_lowlod","combine_auger","combine_reel","crank","cutter_driver","dashglow","dials","door_dside_f","door_dside_r","door_hatch_l","door_hatch_r","door_pside_f","door_pside_r","doorlight_lf","doorlight_lr","doorlight_rf","doorlight_rr","draft_animal_attach_lf","draft_animal_attach_lm","draft_animal_attach_lr","draft_animal_attach_rf","draft_animal_attach_rm","draft_animal_attach_rr","elevator_l","elevator_r","elevators","emissives","engine","engine_l","engine_r","engineblock","exhaust","exhaust_10","exhaust_11","exhaust_12","exhaust_13","exhaust_14","exhaust_15","exhaust_16","exhaust_2","exhaust_3","exhaust_4","exhaust_5","exhaust_6","exhaust_7","exhaust_8","exhaust_9","extra_1","extra_11","extra_12","extra_2","extra_3","extra_4","extra_5","extra_6","extra_7","extra_8","extra_9","extra_ten","extralight_1","extralight_2","extralight_3","extralight_4","fork_l","fork_r","forks","forks_attach","forks_l","forks_u","frame_1","frame_2","frame_3","frame_pickup_1","frame_pickup_2","frame_pickup_3","frame_pickup_4","freight_bogey","freight_cont","freightgrain_slidedoor","gear_door_fl","gear_door_fr","gear_door_rl1","gear_door_rl2","gear_door_rml","gear_door_rmr","gear_door_rr1","gear_door_rr2","gear_f","gear_lm1","gear_rl","gear_rm","gear_rm1","gear_rr","handle_dside_f","handle_dside_r","handle_pside_f","handle_pside_r","handlebars","hbgrip_l","hbgrip_r","headlight_l","headlight_r","hub_lf","hub_lm1","hub_lm2","hub_lm3","hub_lr","hub_rf","hub_rm1","hub_rm2","hub_rm3","hub_rr","indicator_lf","indicator_lr","indicator_rf","indicator_rr","interiorlight","legs","light_cover","Lookat_LowrPiston_boom","Lookat_UpprPiston_head","mast","misc_1","misc_2","misc_a","misc_b","misc_c","misc_d","misc_e","misc_f","misc_g","misc_h","misc_i","misc_j","misc_k","misc_l","misc_m","misc_n","misc_o","misc_p","misc_q","misc_r","misc_s","misc_t","misc_u","misc_v","misc_w","misc_x","misc_y","misc_z","mod_col_1","mod_col_2","mod_col_3","mod_col_4","mod_col_5","moving_prop","moving_prop2","neon_b","neon_f","neon_l","neon_r","no_ped_col_step_l","no_ped_col_step_r","no_ped_col_strut_1_l","no_ped_col_strut_1_r","no_ped_col_strut_2_l","no_ped_col_strut_2_r","nozzles_f","nozzles_r","numberplate","outriggers_l","outriggers_r","overheat","overheat_2","pedal_l","pedal_r","petrolcap","petroltank","petroltank_l","petroltank_r","pontoon_l","pontoon_r","prop_1","prop_2","prop_3","prop_4","prop_5","prop_6","prop_7","prop_8","prop_left","prop_right","reversinglight_l","reversinglight_r","roof","roof2","rope_attach_a","rope_attach_b","rotor_main","rotor_main_2","rotor_rear","rotor_rear_2","rudder","rudder_2","rudder_l","rudder_r","rudder2","scoop","searchlight_base","searchlight_light","seat_dside_f","seat_dside_r","seat_dside_r1","seat_dside_r2","seat_dside_r3","seat_dside_r4","seat_dside_r5","seat_dside_r6","seat_dside_r7","seat_pside_f","seat_pside_r","seat_pside_r1","seat_pside_r2","seat_pside_r3","seat_pside_r4","seat_pside_r5","seat_pside_r6","seat_pside_r7","shovel_2","shovel_3","siren_glass1","siren_glass10","siren_glass11","siren_glass12","siren_glass13","siren_glass14","siren_glass15","siren_glass16","siren_glass17","siren_glass18","siren_glass19","siren_glass2","siren_glass20","siren_glass3","siren_glass4","siren_glass5","siren_glass6","siren_glass7","siren_glass8","siren_glass9","siren1","siren10","siren11","siren12","siren13","siren14","siren15","siren16","siren17","siren18","siren19","siren2","siren20","siren3","siren4","siren5","siren6","siren7","siren8","siren9","slipstream_l","slipstream_r","soft_1","soft_10","soft_11","soft_12","soft_13","soft_2","soft_3","soft_4","soft_5","soft_6","soft_7","soft_8","soft_9","spoiler","spring_lf","spring_lr","spring_rf","spring_rr","static_prop","static_prop2","steering","stick","struts","suspension_lf","suspension_lm","suspension_lr","suspension_rf","suspension_rm","suspension_rr","swingarm","tail","taillight_l","taillight_r","tipper","tow_arm","tow_mount_a","tow_mount_b","transmission_f","transmission_m","transmission_r","turret_1barrel","turret_1base","turret_2barrel","turret_2base","turret_3barrel","turret_3base","unknown_id","vehicle_blocker","weapon_1a","weapon_1a_rot","weapon_1b","weapon_1b_rot","weapon_1c","weapon_1c_rot","weapon_1d","weapon_1d_rot","weapon_2a","weapon_2a_rot","weapon_2b","weapon_2b_rot","weapon_2c","weapon_2c_rot","weapon_2d","weapon_2d_rot","weapon_3a","weapon_3a_rot","weapon_3b","weapon_3b_rot","weapon_3c","weapon_3c_rot","weapon_3d","weapon_3d_rot","weapon_4a","weapon_4a_rot","weapon_4b","weapon_4b_rot","weapon_4c","weapon_4c_rot","weapon_4d","weapon_4d_rot","wheel_f","wheel_lb1_dummy","wheel_lb2_dummy","wheel_lb3_dummy","wheel_lf","wheel_lf1_dummy","wheel_lf2_dummy","wheel_lf3_dummy","wheel_lm1","wheel_lm2","wheel_lm3","wheel_lr","wheel_r","wheel_rb1_dummy","wheel_rb2_dummy","wheel_rb3_dummy","wheel_rf","wheel_rf1_dummy","wheel_rf2_dummy","wheel_rf3_dummy","wheel_rm1","wheel_rm2","wheel_rm3","wheel_rr","wheelcover_l","wheelcover_r","window_lf","window_lf1","window_lf2","window_lf3","window_lm","window_lr","window_lr1","window_lr2","window_lr3","window_rf","window_rf1","window_rf2","window_rf3","window_rm","window_rr","window_rr1","window_rr2","window_rr3","windscreen","windscreen_r","wing_l","wing_lf","wing_lr","wing_r","wing_rf","wing_rr","wingtip_1","wingtip_2"]}],[{"l":"Vehicle Colors","p":["#08e9fa","#0a0c17","#0b1421","#0b9cf1","#0c0d18","#0d1116","#0e0d14","#11141a","#112552","#122e2b","#12383c","#13181f","#132428","#151921","#155c2d","#1b203e","#1b6770","#1c1d21","#1c3551","#1d2129","#1d5a3f","#1e1d22","#1e232f","#1e2429","#1f2852","#221b19","#222e46","#22383e","#233155","#2354a1","#2446a8","#253aa7","#26282a","#275190","#282c4d","#2a282b","#2d362a","#2d423f","#2f2d52","#304c7e","#31423f","#32383d","#333a3c","#345e72","#354158","#363a3f","#371c25","#39434d","#394762","#3a2a1b","#3b39e0","#3c3f47","#402e2b","#4271e1","#444e54","#453831","#454b4f","#45594b","#46231a","#473f2b","#47578f","#49111d","#4c5f81","#4cc3da","#4e6443","#503218","#506272","#515554","#58688e","#5870a1","#5a6352","#608592","#621276","#63625c","#637380","#637ba7","#653f23","#65867f","#66b81f","#696748","#6a747c","#6b1f7b","#6c6b4b","#6ea3c6","#6f1818","#726c57","#732021","#74b5d8","#752b19","#76afbe","#775c3e","#778794","#785f33","#7a6440","#7a6c55","#7b1a22","#7f6a48","#81827f","#81844c","#83c566","#8c9095","#8e1b1f","#8f1e17","#916532","#979a97","#98d223","#999da0","#9b8c78","#9ba0a8","#9c1016","#9f9e8a","#a0a199","#a4965f","#a51e23","#a94744","#ac9975","#afd6e4","#b0ab94","#b0ee6e","#b16c51","#b5a079","#b60f25","#b6111b","#b7bfca","#bc1917","#bcac8f","#bfae7b","#c00e1a","#c2944f","#c2c4c6","#c3b492","#cf1f21","#d3d3d3","#d44a17","#d6e7f1","#da1918","#de0f18","#df5891","#dfd5b2","#dfddd0","#e0e13d","#eae6de","#eaeaea","#f1cc40","#f21f99","#f27d20","#f2ad2e","#f6ae20","#f78616","#f7edd5","#f8b658","#f9a458","#fbe212","#fcf9f1","#fdd6cd","#ffc91f","#ffcf20","#fffff6","#fffffb","#ffffff","■■■■","0","1","10","10, 12, 23","100","101","101, 134, 127","101, 63, 35","102","102, 184, 31","103","104","105","105, 103, 72","106","106, 116, 124","107","107, 31, 123","108","108, 107, 75","109","11","11, 156, 241","11, 20, 33","110","110, 163, 198","111","111, 24, 24","112","113","114","114, 108, 87","115","115, 32, 33","116","116, 181, 216","117","117, 43, 25","118","118, 175, 190","119","119, 135, 148","119, 92, 62","12","12, 13, 24","120","120, 95, 51","121","122","122, 100, 64","122, 108, 85","123","123, 26, 34","124","125","126","127","127, 106, 72","128","129","129, 130, 127","129, 132, 76","13","13, 17, 22","130","131","131, 197, 102","132","133","134","135","136","137","138","139","14","14, 13, 20","140","140, 144, 149","141","142","142, 27, 31","143","143, 30, 23","144","145","145, 101, 50","146","147","148","149","15","150","151","151, 154, 151","152","152, 210, 35","153","153, 157, 160","154","155","155, 140, 120","155, 160, 168","156","156, 16, 22","157","158","159","159, 158, 138","16","160, 161, 153","164, 150, 95","165, 30, 35","169, 71, 68","17","17, 20, 26","17, 37, 82","172, 153, 117","175, 214, 228","176, 171, 148","176, 238, 110","177, 108, 81","18","18, 46, 43","18, 56, 60","181, 160, 121","182, 15, 37","182, 17, 27","183, 191, 202","188, 172, 143","188, 25, 23","19","19, 24, 31","19, 36, 40","191, 174, 123","192, 14, 26","194, 148, 79","194, 196, 198","195, 180, 146","2","20","207, 31, 33","21","21, 25, 33","21, 92, 45","211, 211, 211","212, 74, 23","214, 231, 241","218, 25, 24","22","222, 15, 24","223, 213, 178","223, 221, 208","223, 88, 145","224, 225, 61","23","234, 230, 222","234, 234, 234","24","241, 204, 64","242, 125, 32","242, 173, 46","242, 31, 153","246, 174, 32","247, 134, 22","247, 237, 213","248, 182, 88","249, 164, 88","25","251, 226, 18","252, 249, 241","253, 214, 205","255, 201, 31","255, 207, 32","255, 255, 246","255, 255, 251","255, 255, 255","26","27","27, 103, 112","27, 32, 62","28","28, 29, 33","28, 53, 81","29","29, 33, 41","29, 90, 63","3","30","30, 29, 34","30, 35, 47","30, 36, 41","31","31, 40, 82","32","33","34","34, 27, 25","34, 46, 70","34, 56, 62","35","35, 49, 85","35, 84, 161","36","36, 70, 168","37","37, 58, 167","38","38, 40, 42","39","39, 81, 144","4","40","40, 44, 77","41","42","42, 40, 43","43","44","45","45, 54, 42","45, 66, 63","46","47","47, 45, 82","48","48, 76, 126","49","49, 66, 63","5","50","50, 56, 61","51","51, 58, 60","52","52, 94, 114","53","53, 65, 88","54","54, 58, 63","55","55, 28, 37","56","57","57, 67, 77","57, 71, 98","58","58, 42, 27","59","59, 57, 224","6","60","60, 63, 71","61","62","63","64","64, 46, 43","65","66","66, 113, 225","67","68","68, 78, 84","69","69, 56, 49","69, 75, 79","69, 89, 75","7","70","70, 35, 26","71","71, 63, 43","71, 87, 143","72","73","73, 17, 29","74","75","76","76, 195, 218","76, 95, 129","77","78","78, 100, 67","79","8","8, 233, 250","80","80, 50, 24","80, 98, 114","81","81, 85, 84","82","83","84","85","86","87","88","88, 104, 142","88, 112, 161","89","9","90","90, 99, 82","91","92","93","94","95","96","96, 133, 146","97","98","98, 18, 118","99","99, 115, 128","99, 123, 167","99, 98, 92","Blue","Brushed Aluminium","Brushed Black steel","Brushed Gold","Brushed Steel","Chrome","DEFAULT ALLOY COLOR","Description","Epsilon Blue","Green","HEX","Hot Pink","hunter green","ID","Matte Black","Matte Blue","Matte Brown","Matte Dark Blue","Matte Dark Purple","Matte Dark Red","Matte Desert Brown","Matte Desert Tan","Matte Foilage Green","Matte Forest Green","Matte Gray","Matte Green","Matte Light Grey","Matte Lime Green","Matte Midnight Blue","Matte Olive Drab","Matte Orange","Matte Purple","Matte Red","Matte White","Matte Yellow","Metaillic V Dark Blue","Metallic Anthracite Grey","Metallic Beach Sand","Metallic Beechwood","Metallic Biston Brown","Metallic Black","Metallic Black Purple","Metallic Black Red","Metallic Black Steal","Metallic Blaze Red","Metallic Blue","Metallic Blue Silver","Metallic Bright Blue","Metallic Bronze","Metallic Cabernet Red","Metallic Candy Red","Metallic Champagne","Metallic Choco Brown","Metallic Choco Orange","Metallic Classic Gold","Metallic Cream","Metallic Dark Beechwood","Metallic Dark Blue","Metallic Dark Green","Metallic Dark Ivory","Metallic Dark Silver","Metallic Desert Red","Metallic Diamond Blue","Metallic Formula Red","Metallic Frost White","Metallic Garnet Red","Metallic Gasoline Blue Green","Metallic Golden Brown","Metallic Graceful Red","Metallic Graphite Black","Metallic Green","Metallic Gun Metal","Metallic Harbor Blue","Metallic Lava Red","Metallic Light Brown","Metallic Lime","Metallic Mariner Blue","Metallic Midnight Blue","Metallic Midnight Silver","Metallic Moss Brown","Metallic Nautical Blue","Metallic Olive Green","Metallic Orange","Metallic Pueblo Beige","Metallic Purple","Metallic Purple Blue","Metallic Race Yellow","Metallic Racing Green","Metallic Red","Metallic Saxony Blue","Metallic Sea Green","Metallic Securicor Green","Metallic Shadow Silver","Metallic Silver","Metallic Spinnaker Blue","Metallic Steel Gray","Metallic Stone Silver","Metallic Straw Beige","Metallic Sun Bleeched Sand","Metallic Sunrise Orange","Metallic Surf Blue","Metallic Taxi Yellow","Metallic Torino Red","Metallic Ultra Blue","Metallic Vermillion Pink","Metallic White","Metallic Yellow Bird","Mettalic Black Blue","MODSHOP BLACK1","Orange","police car blue","Pure Gold","Pure White","RGB","Salmon pink","Util Black","Util Black Poly","Util Blue","Util Bright Blue","Util Bright Red","Util Brown","Util Dark Blue","Util Dark Green","Util Dark silver","Util Garnet Red","Util Green","Util Gun Metal","Util Light Brown","Util Lightning blue","Util Maui Blue Poly","Util Medium Brown","Util Midnight Blue","Util Off White","Util Red","Util Sea Foam Blue","Util Shadow Silver","Util Silver","Worn Black","Worn Blue","Worn Blue Silver","Worn Brown","Worn Dark blue","Worn Dark Brown","Worn Dark Green","Worn Dark Red","Worn Golden Red","Worn Graphite","Worn Green","Worn Honey Beige","Worn Light blue","Worn Light Orange","Worn Off White","Worn Olive Army Green","Worn Orange","Worn Red","Worn Sea Wash","Worn Shadow Silver","Worn Silver","Worn Silver Grey","Worn straw beige","Worn Taxi Yellow","Worn White"]}],[{"l":"Vehicle Mods"},{"l":"Mods","p":["0","1","10","11","12","13","14 (0 to 51)","15","16","18","2","20","22","23","24 (Only for Motorcycles)","25","27","28","3","30","33","34","35","38","4","40","48","5","55","6","62","66","67","7","8","9","Armor","Back Wheels","Boost","Brakes","Colour 1","Colour 2","Description","Dial Design","Engine","Exhaust","Fender","Frame","Front Bumper","Front Wheels","Grille","Hood","Horns","Hydraulics","Livery","Mod Index","Ornaments","Plaques","Plate","Plate holders","Rear Bumper","Right Fender","Roof","Shift Lever","Side Skirt","Spoilers","Steering Wheel","Suspension","Transmission","Trim Design","Turbo","Util Shadow Silver","Window Tint","Xenon"]},{"i":"bennys","l":"Benny's","p":["25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","Aerials","Air filter","Arch Cover","Dashboard","Dial","Door Speaker","Engine Block","Hydraulics","ID","Livery","Ornaments","Plaques","Plateholder","Seats","Shifter Leavers","Speakers","Steering wheels","Struts","Tank","Trim","Trunk","Type Name","Unknown","Vanity Plates","Windows"]},{"l":"Los Santos Customs","p":["-1 to 0","-1 to 2","-1 to 3","-1 to 34","-1 to 4","11","12","14","16","22","46","62","Armour","Brakes","Engine","Horns","Indexes","Plate","Type ID","Type Name","Window Tint","Xenon Headlights"]},{"l":"Horn Types","p":["-1","0","1","10","11","12","13","14","15","16","17","18","19","2","20","21","22","23","24","25","26","27","28","29","3","30","31","32","33","34","4","5","6","7","8","9","HORN_CALSSICAL1","HORN_CALSSICAL2","HORN_CALSSICAL3","HORN_CALSSICAL4","HORN_CALSSICAL5","HORN_CALSSICAL6","HORN_CALSSICAL7","HORN_CLASSICAL8","HORN_CLASSICALLOOP1","HORN_CLASSICALLOOP2","HORN_CLOWN","HORN_JAZZ1","HORN_JAZZ2","HORN_JAZZ3","HORN_JAZZLOOP","HORN_MUSICAL1","HORN_MUSICAL2","HORN_MUSICAL3","HORN_MUSICAL4","HORN_MUSICAL5","HORN_POLICE","HORN_SADTROMBONE","HORN_SCALEDO","HORN_SCALEDO_HIGH","HORN_SCALEFA","HORN_SCALELA","HORN_SCALEMI","HORN_SCALERE","HORN_SCALESOL","HORN_SCALETI","HORN_STARSPANGBAN1","HORN_STARSPANGBAN2","HORN_STARSPANGBAN3","HORN_STARSPANGBAN4","HORN_STOCK","HORN_TRUCK","IndexID","ModName","Type Id"]},{"l":"Engine Types","p":["Type Id","Description","IndexID","11","Standard Engine","-1","EMS-Improvement 1","0","EMS-Improvement 2","1","EMS-Improvement 3","2","EMS-Improvement 4","3"]},{"l":"Break Types","p":["Type Id","Description","IndexID","12","Standard Brakes","-1","Street Brakes","0","Sport Brakes","1","Race Brakes","2"]},{"l":"Transmission Types","p":["Type Id","Description","IndexID","13","Standard Transmission","-1","Street Transmission","0","Sport Transmission","1","Race Transmission","2"]},{"l":"Suspensions Types","p":["Type Id","Description","IndexID","15","Standard Suspension","-1","Lower Suspension","0","Street Suspension","1","Sport Suspension","2","Race Suspension","3"]},{"l":"Armour Types","p":["-1","0","1","100% Armour","16","2","20% Armour","3","4","40% Armour","60% Armour","80% Armour","Description","IndexID","No Armour","Type Id"]},{"l":"Turbo","p":["Type Id","Description","IndexID","18","None","-1","Turbo Tuning","0"]},{"l":"Xenon Headlights","p":["Type Id","Description","IndexID","22","Standard Lights","-1","0"]},{"l":"Window Types","p":["Type Id","Description","IndexID","46","None","-1","Light Smokeglas","0","Dark Smokeglas","1","Limousine","2"]},{"l":"Plate Types","p":["Type Id","Description","IndexID","62","Blue on White1","-1","Blue on White2","0","Blue on White3","1","Yellow on Blue","2","Yellow on Black","3"]},{"l":"Boost Types","p":["Type Id","Description","IndexID","40","None","-1","20% Nitrous","0","60% Nitrous","1","100% Nitrous","2","Ram Boost","3"]}],[{"l":"Weapon Pickup Models","p":["0x116FC4E6","0x14568F28","0x1CD2CF66","0x1CD604C7","0x1D9588D3","0x1E9A99F8","0x20796A82","0x20893292","0x22B15640","0x278D8734","0x295691A9","0x2C014CA6","0x2C804FE3","0x2DD30479","0x2E071B5A","0x2E764125","0x2F36B434","0x31EA45C9","0x3A4C2AD2","0x3B0F70A7","0x3B662889","0x3DE942BD","0x41D2CF56","0x4316CC09","0x499A096A","0x4B5259BE","0x4BFB42D1","0x4C35269","0x4D36C349","0x4E301CD0","0x4F92184","0x5307A4EC","0x550447A9","0x5A26FE0","0x5C517D97","0x5DB6C18A","0x5DE0AD3E","0x5E0683A1","0x5EA16D74","0x602941D0","0x614BFCAC","0x624F7213","0x65948212","0x65A7D8E9","0x6773257D","0x68605A36","0x693583AD","0x6C5B941A","0x6D60976C","0x6E4E65C2","0x6E717A95","0x711D02A4","0x741C684A","0x763F7121","0x77F3F2DD","0x789576E2","0x79284A9","0x7C119D58","0x80AB931C","0x815D66E8","0x8187206F","0x81EE601E","0x84837FD7","0x84D676D4","0x85CAA9B1","0x872DC888","0x881AB0A8","0x88EAACA7","0x8967B4F3","0x8ADDEC75","0x8C0FCB13","0x8F707C18","0x90EFDF3B","0x9299C95B","0x93EBB26","0x94FA0B5E","0x968339D","0x96B412A3","0x977C0F2","0x98D79EF","0x9CF13918","0x9F55D149","0xA04E8B0D","0xA421A532","0xA54AE7B7","0xA5B8CAA9","0xA717F898","0xA7EA40CE","0xA91FDC8B","0xA9355DCD","0xAF692CA9","0xB2930A14","0xB2B5325E","0xB86AEE5B","0xBCC5C1F2","0xBD4DE242","0xBDB6FFA5","0xBDD874BC","0xBED46EC5","0xBFEE6C3B","0xC01EB678","0xC02CF125","0xC3CD8B31","0xC5B72713","0xC69DE3FF","0xCC7CCD1B","0xCC8B3905","0xCC90A373","0xCE6FDD6B","0xD0AACEF7","0xD3722A5B","0xD3A39366","0xD8257ABF","0xDDE4181A","0xDE58E0B3","0xDE78F17E","0xDF711959","0xE013E01C","0xE175C698","0xE33D8630","0xE46E11B4","0xE4BD2FC6","0xE5121369","0xE7CF07CC","0xEBF89D5F","0xEE0E26F3","0xEF2B7390","0xF0EA0639","0xF25A01B9","0xF33C83B0","0xF5C5DADC","0xF92F486C","0xF99E15D0","0xF9AFB48F","0xF9E2DF1F","0xFA51ABF5","0xFD16169E","0xFD9CAEDE","0xFDEE8368","0xFE18F3AF","0xFE2A352C","0xFE73AB5","0xFF0A8297","Pickup Hash","Pickup Model","PICKUP_AMMO_BULLET_MP","PICKUP_AMMO_FIREWORK","PICKUP_AMMO_FIREWORK_MP","PICKUP_AMMO_FLAREGUN","PICKUP_AMMO_GRENADELAUNCHER","PICKUP_AMMO_GRENADELAUNCHER_MP","PICKUP_AMMO_HOMINGLAUNCHER","PICKUP_AMMO_MG","PICKUP_AMMO_MINIGUN","PICKUP_AMMO_MISSILE_MP","PICKUP_AMMO_PISTOL","PICKUP_AMMO_RIFLE","PICKUP_AMMO_RPG","PICKUP_AMMO_SHOTGUN","PICKUP_AMMO_SMG","PICKUP_AMMO_SNIPER","PICKUP_ARMOUR_STANDARD","PICKUP_CAMERA","PICKUP_CUSTOM_SCRIPT","PICKUP_GANG_ATTACK_MONEY","PICKUP_HEALTH_SNACK","PICKUP_HEALTH_STANDARD","PICKUP_MONEY_CASE","PICKUP_MONEY_DEP_BAG","PICKUP_MONEY_MED_BAG","PICKUP_MONEY_PAPER_BAG","PICKUP_MONEY_PURSE","PICKUP_MONEY_SECURITY_CASE","PICKUP_MONEY_VARIABLE","PICKUP_MONEY_WALLET","PICKUP_PARACHUTE","PICKUP_PORTABLE_CRATE_FIXED_INCAR","PICKUP_PORTABLE_CRATE_FIXED_INCAR_SMALL","PICKUP_PORTABLE_CRATE_FIXED_INCAR_WITH_PASSENGERS","PICKUP_PORTABLE_CRATE_UNFIXED","PICKUP_PORTABLE_CRATE_UNFIXED_INAIRVEHICLE_WITH_PASSENGERS","PICKUP_PORTABLE_CRATE_UNFIXED_INCAR","PICKUP_PORTABLE_CRATE_UNFIXED_INCAR_SMALL","PICKUP_PORTABLE_CRATE_UNFIXED_INCAR_WITH_PASSENGERS","PICKUP_PORTABLE_CRATE_UNFIXED_LOW_GLOW","PICKUP_PORTABLE_DLC_VEHICLE_PACKAGE","PICKUP_PORTABLE_PACKAGE","PICKUP_SUBMARINE","PICKUP_VEHICLE_ARMOUR_STANDARD","PICKUP_VEHICLE_CUSTOM_SCRIPT","PICKUP_VEHICLE_CUSTOM_SCRIPT_LOW_GLOW","PICKUP_VEHICLE_CUSTOM_SCRIPT_NO_ROTATE","PICKUP_VEHICLE_HEALTH_STANDARD","PICKUP_VEHICLE_HEALTH_STANDARD_LOW_GLOW","PICKUP_VEHICLE_MONEY_VARIABLE","PICKUP_VEHICLE_WEAPON_APPISTOL","PICKUP_VEHICLE_WEAPON_ASSAULTSMG","PICKUP_VEHICLE_WEAPON_COMBATPISTOL","PICKUP_VEHICLE_WEAPON_GRENADE","PICKUP_VEHICLE_WEAPON_MICROSMG","PICKUP_VEHICLE_WEAPON_MOLOTOV","PICKUP_VEHICLE_WEAPON_PISTOL","PICKUP_VEHICLE_WEAPON_PISTOL50","PICKUP_VEHICLE_WEAPON_SAWNOFF","PICKUP_VEHICLE_WEAPON_SMG","PICKUP_VEHICLE_WEAPON_SMOKEGRENADE","PICKUP_VEHICLE_WEAPON_STICKYBOMB","PICKUP_WEAPON_ADVANCEDRIFLE","PICKUP_WEAPON_APPISTOL","PICKUP_WEAPON_ASSAULTRIFLE","PICKUP_WEAPON_ASSAULTRIFLE_MK2","PICKUP_WEAPON_ASSAULTSHOTGUN","PICKUP_WEAPON_ASSAULTSMG","PICKUP_WEAPON_AUTOSHOTGUN","PICKUP_WEAPON_BAT","PICKUP_WEAPON_BATTLEAXE","PICKUP_WEAPON_BOTTLE","PICKUP_WEAPON_BULLPUPRIFLE","PICKUP_WEAPON_BULLPUPRIFLE_MK2","PICKUP_WEAPON_BULLPUPSHOTGUN","PICKUP_WEAPON_CARBINERIFLE","PICKUP_WEAPON_CARBINERIFLE_MK2","PICKUP_WEAPON_COMBATMG","PICKUP_WEAPON_COMBATMG_MK2","PICKUP_WEAPON_COMBATPDW","PICKUP_WEAPON_COMBATPISTOL","PICKUP_WEAPON_COMPACTLAUNCHER","PICKUP_WEAPON_COMPACTRIFLE","PICKUP_WEAPON_CROWBAR","PICKUP_WEAPON_DAGGER","PICKUP_WEAPON_DBSHOTGUN","PICKUP_WEAPON_DOUBLEACTION","PICKUP_WEAPON_FIREWORK","PICKUP_WEAPON_FLAREGUN","PICKUP_WEAPON_FLASHLIGHT","PICKUP_WEAPON_GolfClub","PICKUP_WEAPON_GRENADE","PICKUP_WEAPON_GRENADELAUNCHER","PICKUP_WEAPON_GUSENBERG","PICKUP_WEAPON_HAMMER","PICKUP_WEAPON_HATCHET","PICKUP_WEAPON_HEAVYPISTOL","PICKUP_WEAPON_HEAVYSHOTGUN","PICKUP_WEAPON_HEAVYSNIPER","PICKUP_WEAPON_HEAVYSNIPER_MK2","PICKUP_WEAPON_HOMINGLAUNCHER","PICKUP_WEAPON_KNIFE","PICKUP_WEAPON_KNUCKLE","PICKUP_WEAPON_MACHETE","PICKUP_WEAPON_MACHINEPISTOL","PICKUP_WEAPON_MARKSMANPISTOL","PICKUP_WEAPON_MARKSMANRIFLE","PICKUP_WEAPON_MARKSMANRIFLE_MK2","PICKUP_WEAPON_MG","PICKUP_WEAPON_MICROSMG","PICKUP_WEAPON_MINIGUN","PICKUP_WEAPON_MINISMG","PICKUP_WEAPON_MOLOTOV","PICKUP_WEAPON_MUSKET","PICKUP_WEAPON_NIGHTSTICK","PICKUP_WEAPON_PETROLCAN","PICKUP_WEAPON_PIPEBOMB","PICKUP_WEAPON_PISTOL","PICKUP_WEAPON_PISTOL_MK2","PICKUP_WEAPON_PISTOL50","PICKUP_WEAPON_POOLCUE","PICKUP_WEAPON_PROXMINE","PICKUP_WEAPON_PUMPSHOTGUN","PICKUP_WEAPON_PUMPSHOTGUN_MK2","PICKUP_WEAPON_RAILGUN","PICKUP_WEAPON_REVOLVER","PICKUP_WEAPON_REVOLVER_MK2","PICKUP_WEAPON_RPG","PICKUP_WEAPON_SAWNOFFSHOTGUN","PICKUP_WEAPON_SMG","PICKUP_WEAPON_SMG_MK2","PICKUP_WEAPON_SMOKEGRENADE","PICKUP_WEAPON_SNIPERRIFLE","PICKUP_WEAPON_SNSPISTOL","PICKUP_WEAPON_SNSPISTOL_MK2","PICKUP_WEAPON_SPECIALCARBINE","PICKUP_WEAPON_SPECIALCARBINE_MK2","PICKUP_WEAPON_STICKYBOMB","PICKUP_WEAPON_STONE_HATCHET","PICKUP_WEAPON_STUNGUN","PICKUP_WEAPON_SWITCHBLADE","PICKUP_WEAPON_VINTAGEPISTOL","PICKUP_WEAPON_WRENCH"]}],[{"l":"Weather","p":["0","1","10","11","12","13","14","2","3","4","5","6","7","8","9","BLIZZARD","CLEAR","CLEARING","CLOUDS","EXTRASUNNY","FOGGY","HALLOWEEN","ID","NEUTRAL","OVERCAST","RAIN","SMOG","SNOW","SNOWLIGHT","THUNDER","XMAS"]}],[{"i":"what-is-a-plugin","l":"What is a Plugin?","p":["A plugin can be seen as code that is meant to work with the Rebar Framework."]},{"i":"where-are-plugins-stored","l":"Where are plugins stored?","p":["Plugins can be found in the src/plugins directory, and each plugin should have a unique folder name."]},{"l":"Example Plugin Structure","p":["This plugin structure is used purely as a full featured plugin.","See plugin structure for more information."]},{"i":"example-shared-vue-components--composables-plugin","l":"Example Shared Vue Components / Composables Plugin","p":["It is recommended to prefix your plugin with ui when it's components and composables"]},{"l":"Disabling Plugins","p":["If you wish to disable a plugin simply add a ! before the folder name.","Alternatively you can add a file named .disable to the plugin folder to disable it."]},{"l":"Adding Dependencies","p":["If you noticed a plugin can use npm packages for the webview or server.","It is recommended to avoid using packages where possible to keep everything 'future proofed'","Simply add a dependencies.json or package.json to your plugin folder.","Add a section called dependencies and it will automatically install the dependencies the next time you run your server."]}],[{"l":"Plugin Structure","p":["If you wish to create plugins then you need to understand the basic structure of a plugin.","Create a folder inside src/plugins and name it something unique","Create these additional folders under the new folder you created (not all are necessary)","client","images","server","sounds","translate","webview","dependencies","shared","rmlui"]},{"l":"client","p":["This is where the client-side code belongs. You cannot use NPM packages in these files.","Ensure that you create an index.ts file as an entry point for your client code."]},{"l":"server","p":["This is where server-side code belongs.","Ensure that you create an index.ts file as an entry point for your server code."]},{"l":"shared","p":["This is where shared code (constants, events) belongs. Code below is just example. In shared folder you can store anything you want, that is used by both, clientside and serverside code."]},{"l":"images","p":["Images are any images with the following extensions: jpg, jpeg, png, bmp, svg, webp.","Additionally, the images are loaded as an asset-pack and copied to the webview/public/images folder as well.","Image paths are absolute so if you put an image in the images folder then your html path will be ./images/myplugin-myimage.png.","If you need the image for rmlui then your path will be http://assets/images/myplugin-myimage.png.","Image names need to be unique for your individual plugin, otherwise they will override each other."]},{"l":"rmlui","p":["RmlUi is a way to write HTML pages with css2 support. They're highly performant, but can be hard to work with.","In Rebar we just create normal html files but abide by CSS2 support. Confused? Check out these docs.","Rmlui pages and fonts can be loaded with the following paths:","@rmlui/plugins/your-plugin/index.rml","@rmlui/plugins/your-plugin/font.ttf","That being said, create a file under the path plugins/your-plugin/rmlui/index.html or whatever you want, and add the following content:","You can also add custom fonts under plugins/your-plugin/rmlui as long as they're in ttf format.","If you want live previews of your html check out VSCode Live Server Extension. Once it's installed you can right-click your html file and click Show Preview to preview it in VS Code!"]},{"l":"sounds","p":["Sounds are custom .ogg files that can be played as an asset using the Rebar.player.useAudio function.","Additionally, the images are loaded as an asset-pack and copied to the webview/public/sounds folder as well.","Here's a simple example of playing a sound called myplugin-test.ogg which is in the sounds folder."]},{"l":"Server Sound"},{"l":"Webview Sound"},{"l":"translate","p":["Translations can be used on client-side, server-side, or webview as long as you import the translation file."]},{"l":"webview","p":["Webview pages should always have unique names that differentiate from other plugins. Ensure you give your vue file a unique name."]},{"l":"Extending built-in interfaces","p":["Imagine, you want to add a new attribute to already existing document, like Vehicle.","To not rewrite Rebar's interface, you can use this approach:","This approach will allow you to use defined keys everywhere.","After that, in any plugin, you'll be able to use:"]},{"l":"Dependencies","p":["If you noticed a plugin can use npm packages for the webview or server.","It is recommended to avoid using packages where possible to keep everything 'future proofed'","Simply add a dependencies.json or package.json to your plugin folder.","Add a section called dependencies and it will automatically install the dependencies the next time you run your server."]}],[{"l":"Basic Programming","p":["In this framework we use 2 programming languages, and 2 frameworks.","TypeScript","HTML","Vue 3","Tailwind CSS","This entire stack is how the entire framework is built, and ran and you'll be using the same stack."]},{"l":"How to Learn","p":["Programming is not easy, but starting is easier.","These are some general tips to learn faster.","Learning requires persistent dedication throughout the week. Try to spend 1 or 2 hours learning a concept or building something","Learning just before bed helps you retain the information better","If you are having fun, keep pushing forward because motivation helps you learn faster","If a concept is too hard to learn, step away for a bit and come back","If you have headaches, take a day off and come back tomorrow","If you are not physically writing code, you are not physically learning anything"]},{"l":"TypeScript Basics","p":["This is an incredibly basic tutorial and should cover a good chunk of what you need.","The only way to learn these programming languages is to mess around with them, try making plugins and doing basic things before building a giant roleplay gamemode. We all started off writing very small programs when we started.","Here's a direct link if you don't like embeds."]},{"l":"Vue 3 Basics","p":["While Vue is harder to learn if you're not familiar with any HTML Frameworks, it's well worth the time to speed up development.","Here's an incredibly thorough course that will teach you some stuff.","Start off at timestamp 1 Hour & 5 Minutes if you want to learn how to do the vue stuff immediately."]},{"l":"Tailwind CSS","p":["This video does a good job of covering how Tailwind Works.","Start the video at 2 Minutes to start learning immediately"]}],[{"l":"Your First Plugin","p":["This tutorial is meant to show you how to get an incredibly basic plugin running.","It will not show you how to use the API, or anything else. It's strictly to show you how to setup a plugin."]},{"l":"Preface","p":["If you are not familiar with programming, please make sure to check out Basic Programming before starting.","Even having just a small understanding of programming will help immensely."]},{"l":"Client Setup","p":["Before starting, make sure you have alt:V Installed and modify the altv.toml to turn debug to true.","You can read more about that here."]},{"l":"Folder Setup","p":["Open the entire Rebar Folder in VSCode. You should see a file tree on the left with all of your files."]},{"l":"Accessing Plugin Folder","p":["Navigate based on the following folders:"]},{"l":"Create a New folder","p":["Create a new folder by right-clicking the plugins folder and making one.","Name the folder whatever you want, but it needs to be in English.","For the sake of this tutorial, I named mine a-cool-plugin."]},{"l":"Create 2 New Folders","p":["Create 2 new folders inside of a-cool-plugin and name them server and client."]},{"l":"Create 2 New Files","p":["You are going to now create 2 files named index.ts inside both server and client."]},{"l":"Setup TypeScript Files","p":["Now that you have your files created, we need to add some content to both of them.","Make sure to save your files after editing them!","CTRL + S will save your file."]},{"i":"serverindexts","l":"server/index.ts","p":["Inside of this file add the following contents."]},{"i":"clientindexts","l":"client/index.ts","p":["Inside of this file add the following contents."]},{"l":"Testing the Plugin","p":["In VSCode at the top, click on Terminal and then click New Terminal.","Simply run pnpm dev to start your server.","You will then see that your plugin has loaded, and you'll have some logs in your server console.","Additionally, you can see the result in your client console in-game which can be opened with F8."]}],[{"i":"what-is-a-webview","l":"What is a Webview?","p":["A Webview for this framework may also be known as a page.","Pages are HTML content that can be used to render user interfaces in-game.","Rebar has the concept of 3 different types of Pages.","Overlay","Persistent","Page"]},{"i":"what-is-a-page","l":"What is a Page?","p":["A page is a type of page that is only shown once, and controlled by user interaction.","Examples: Inventory, ATM, Shops"]},{"i":"what-is-the-overlay-type","l":"What is the Overlay Type?","p":["An overlay page is a type of page that is always shown when the user is not shown a page.","Examples: HUD, Cash, Ammunition Count"]},{"i":"what-is-the-persistent-type","l":"What is the Persistent Type?","p":["A persistent page is a type of page that will always be shown regardless of what is being shown on screen.","Examples: Website Watermark, Logo"]},{"i":"what-css-is-available","l":"What CSS is Available?","p":["Currently Rebar is shipped with TailwindCSS to quickly build out interfaces quickly.","It is highly recommended to install the Tailwind CSS IntelliSense Extension when working with css.","You can simply hit CTRL + SPACE to bring up auto-fill while browsing different CSS classes."]}],[{"l":"Create a Webview","p":["First, make sure you've created a plugin.","If you are using Visual Studio Code, make sure to install the Vue extension","Create a .vue file, and create a basic Vue 3 template."]},{"l":"Preview the Page","p":["You can preview the page by running the following in a terminal.","You can open http://localhost:5173 in your browser to view the page.","Click the Arrow in the Top Right and then click on your page to see it rendered."]},{"l":"Showing in-game","p":["You can actually show a page from the server-side using the player webview functionality.","However, this section will show you how to do both client and server side.","When you show a page both the cursor and webview focus will happen automatically."]},{"l":"Server Side","p":["Just ensure that you run the server once to populate the available pages."]},{"l":"Client side","p":["That's all it takes to show / hide your custom WebViews."]}],[{"l":"Draggable Component","p":["The draggable component is a built-in component that allows you to wrap up any code to make it draggable.","This is a one-stop solution for building moveable inventories, and drag & drop interfaces.","The most important part of a draggable component is that it contains an id.","This is what helps the draggable element decide what to send back.","Did you know that in alt:V we don't have access to HTML5 Drag APIs, that's why this exists."]},{"l":"Example Page","p":["This is an example page showing 2 draggable divs that can be dragged over each other.","They print their status into the console."]}],[{"l":"useAudio","p":["Gives you the ability to play custom sounds from the Webview.","If you wish to play frontend sounds check out the Frontend Sound List."]}],[{"l":"useEvents","p":["This is an event wrapper that allows for communication directly to the server, or the client."]},{"l":"Server Side RPC Handling","p":["If you use the event emitServerRpc you can use the normal alt.onRpc to handle the request.","A simple but seamless integration with existing alt:V APIs."]},{"l":"Client Side RPC Handling","p":["This one works differently on client-side, so you'll have to access the useWebview function, and then add your listener callback."]},{"l":"Key Presses","p":["If you're trying to listen for certain keypresses regardless of focus you can use onKeyUp and offKeyUp.","Generally you want to bind onKeyUp with the onMounted event, and turn off the key listener with offKeyUp when unmounting."]}],[{"l":"useLocalStorage","p":["A way to store local data to the alt:V Client."]}],[{"l":"useMessenger","p":["Gives the ability to get messages from the messenger system as well as emit messages to the messenger system."]}],[{"l":"useMinimap","p":["Gets minimap positional data and makes it available in the Webview.","Below is an example of how to move some text next to the minimap.","It will automatically update the minimap positional data when resolution is changed."]}],[{"l":"usePlayerStats","p":["This specific composable is for gather information from client-side, and rendering it in the WebView.","Here's an example of how to use it."]}]] \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 6af1d332c..5ade0288b 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ diff --git a/troubleshooting/index.html b/troubleshooting/index.html index e80568e7b..d80286559 100644 --- a/troubleshooting/index.html +++ b/troubleshooting/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/tutorials/basic-programming/index.html b/tutorials/basic-programming/index.html index db93c8a81..79ae80a1c 100644 --- a/tutorials/basic-programming/index.html +++ b/tutorials/basic-programming/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +
    diff --git a/tutorials/your-first-plugin/index.html b/tutorials/your-first-plugin/index.html index d19fe91a2..c7c91456e 100644 --- a/tutorials/your-first-plugin/index.html +++ b/tutorials/your-first-plugin/index.html @@ -3,7 +3,7 @@ - + @@ -32,12 +32,12 @@ - + - + - - + +
    diff --git a/vscode-transmitter/index.html b/vscode-transmitter/index.html index 4d62e01b5..16de4c278 100644 --- a/vscode-transmitter/index.html +++ b/vscode-transmitter/index.html @@ -3,7 +3,7 @@ - + @@ -32,11 +32,11 @@ - + - + - +
    diff --git a/webview/components/draggable/index.html b/webview/components/draggable/index.html index 290f14b21..bf3c2a1d0 100644 --- a/webview/components/draggable/index.html +++ b/webview/components/draggable/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/webview/composables/use-audio/index.html b/webview/composables/use-audio/index.html index 089734cfe..ef23f30c4 100644 --- a/webview/composables/use-audio/index.html +++ b/webview/composables/use-audio/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/webview/composables/use-events/index.html b/webview/composables/use-events/index.html index 1ff6a2362..91050d4b4 100644 --- a/webview/composables/use-events/index.html +++ b/webview/composables/use-events/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/webview/composables/use-local-storage/index.html b/webview/composables/use-local-storage/index.html index 9b0396df1..e067b11db 100644 --- a/webview/composables/use-local-storage/index.html +++ b/webview/composables/use-local-storage/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/webview/composables/use-messenger/index.html b/webview/composables/use-messenger/index.html index bbc95df35..5c1a1b210 100644 --- a/webview/composables/use-messenger/index.html +++ b/webview/composables/use-messenger/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/webview/composables/use-minimap/index.html b/webview/composables/use-minimap/index.html index 7cd87cdfe..a61ebc77d 100644 --- a/webview/composables/use-minimap/index.html +++ b/webview/composables/use-minimap/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/webview/composables/use-player-stats/index.html b/webview/composables/use-player-stats/index.html index 989dee935..0afd5a1fb 100644 --- a/webview/composables/use-player-stats/index.html +++ b/webview/composables/use-player-stats/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/webview/create/index.html b/webview/create/index.html index 4fef0373f..ce4bdab0c 100644 --- a/webview/create/index.html +++ b/webview/create/index.html @@ -3,7 +3,7 @@ - + @@ -30,12 +30,12 @@ - + - + - - + +
    diff --git a/webview/what-is-a-webview/index.html b/webview/what-is-a-webview/index.html index ca1edad50..3a6717995 100644 --- a/webview/what-is-a-webview/index.html +++ b/webview/what-is-a-webview/index.html @@ -3,7 +3,7 @@ - + @@ -30,11 +30,11 @@ - + - + - +