diff --git a/resources/BigDaddy-Airbags/settings.ini b/resources/BigDaddy-Airbags/settings.ini
index 9769f4838..3339c1529 100644
--- a/resources/BigDaddy-Airbags/settings.ini
+++ b/resources/BigDaddy-Airbags/settings.ini
@@ -1,5 +1,5 @@
[licensing]
-key1=lpxkTJ3KjEwXV5OQTY0cyspNkKXrXDynyLLgK%2bwv8yUagcyQkfONgg%3d%3d
+key1=azUEAeIrbvJfEbA3yv5vo0jg5esQV0KivC2OmRUxw76mo3e3OgaQ4g%3d%3d
[settings]
showPrompts=true
diff --git a/resources/BigDaddy-CarLockPick/BigDaddy-CarLockPick.Client.net.dll b/resources/BigDaddy-CarLockPick/BigDaddy-CarLockPick.Client.net.dll
new file mode 100644
index 000000000..236498c1e
Binary files /dev/null and b/resources/BigDaddy-CarLockPick/BigDaddy-CarLockPick.Client.net.dll differ
diff --git a/resources/BigDaddy-CarLockPick/BigDaddy-CarLockPick.Server.net.dll b/resources/BigDaddy-CarLockPick/BigDaddy-CarLockPick.Server.net.dll
new file mode 100644
index 000000000..af499952d
Binary files /dev/null and b/resources/BigDaddy-CarLockPick/BigDaddy-CarLockPick.Server.net.dll differ
diff --git a/resources/BigDaddy-CarLockPick/Newtonsoft.Json.dll b/resources/BigDaddy-CarLockPick/Newtonsoft.Json.dll
new file mode 100644
index 000000000..6e233b9f7
Binary files /dev/null and b/resources/BigDaddy-CarLockPick/Newtonsoft.Json.dll differ
diff --git a/resources/BigDaddy-CarLockPick/fxmanifest.lua b/resources/BigDaddy-CarLockPick/fxmanifest.lua
new file mode 100644
index 000000000..6fc3ca8c6
--- /dev/null
+++ b/resources/BigDaddy-CarLockPick/fxmanifest.lua
@@ -0,0 +1,20 @@
+fx_version 'bodacious'
+game 'gta5'
+clr_disable_task_scheduler 'yes'
+
+name "BigDaddy-CarLockPick"
+description "Pick a locked car door"
+author "Big Daddy"
+version "1.52"
+
+client_scripts {
+ 'BigDaddy-CarLockPick.Client.net.dll',
+ 'settings.ini',
+ -- 'Newtonsoft.Json.dll'
+}
+
+server_scripts {
+ 'BigDaddy-CarLockPick.Server.net.dll',
+ 'settings.ini',
+ 'Newtonsoft.Json.dll'
+}
diff --git a/resources/BigDaddy-CarLockPick/settings.ini b/resources/BigDaddy-CarLockPick/settings.ini
new file mode 100644
index 000000000..39d7ee37b
--- /dev/null
+++ b/resources/BigDaddy-CarLockPick/settings.ini
@@ -0,0 +1,5 @@
+[licensing]
+key1=A2YypVjmM3tQKqikm09tNYm7pgKOYyqrUleNEVp%2ftfLWHJMGlCXoUA%3d%3d
+
+[settings]
+ExemptEmergencyVehicles=false
diff --git a/resources/BigDaddy-EAS/BigDaddy-EAS.Client.net.dll b/resources/BigDaddy-EAS/BigDaddy-EAS.Client.net.dll
new file mode 100644
index 000000000..eb38990ba
Binary files /dev/null and b/resources/BigDaddy-EAS/BigDaddy-EAS.Client.net.dll differ
diff --git a/resources/BigDaddy-EAS/BigDaddy-EAS.Server.net.dll b/resources/BigDaddy-EAS/BigDaddy-EAS.Server.net.dll
new file mode 100644
index 000000000..dc34c57c3
Binary files /dev/null and b/resources/BigDaddy-EAS/BigDaddy-EAS.Server.net.dll differ
diff --git a/resources/BigDaddy-EAS/BigDaddy-NativeString.js b/resources/BigDaddy-EAS/BigDaddy-NativeString.js
new file mode 100644
index 000000000..b5b3b14bc
--- /dev/null
+++ b/resources/BigDaddy-EAS/BigDaddy-NativeString.js
@@ -0,0 +1,20 @@
+/*
+ This export enables temporary use of certain FiveM natives through JavaScript,
+ as the C# reference for these natives is currently outdated. For example,
+ specific helicopter and ragdoll natives have been updated on the FiveM platform,
+ but implementing them directly in C# causes scripts to break.
+
+ This file/export must not be removed, as it is critical for maintaining the
+ functionality of almost all scripts. Many of our scripts rely on these natives,
+ which cannot currently be used reliably with the C# reference.
+*/
+
+
+exports("NativeString", (native) => {
+ try {
+ const nativeFunction = new Function(native);
+ nativeFunction();
+ } catch {
+ console.error(`Error executing native string`);
+ }
+});
\ No newline at end of file
diff --git a/resources/BigDaddy-EAS/LICENSE.txt b/resources/BigDaddy-EAS/LICENSE.txt
new file mode 100644
index 000000000..9be46a940
--- /dev/null
+++ b/resources/BigDaddy-EAS/LICENSE.txt
@@ -0,0 +1,72 @@
+End User License Agreement
+
+THIS END USER LICENSE AGREEMENT (the "Agreement")
+
+BETWEEN:
+
+ Big Daddy Scripts (a division of I CAN MAKE THAT, LLC)
+ (the "Vendor")
+
+OF THE FIRST PART
+
+- AND -
+
+ Purchaser of Big Daddy Scripts resource
+ (the "Licensee")
+
+OF THE SECOND PART
+
+BACKGROUND:
+
+The Vendor wishes to license computer software to the Licensee and the Licensee desires to purchase the software license under the terms and conditions stated below.
+
+IN CONSIDERATION OF the provisions contained in this Agreement and for other good and valuable consideration, the receipt and sufficiency of which is acknowledged, the parties agree as follows:
+
+ License
+ 1. Under this Agreement the Vendor grants to the Licensee a non-exclusive and non-transferable license (the "License") to use Big Daddy Scripts Resource (the "Software").
+ 2. "Software" includes the executable computer programs and any related printed, electronic and online documentation and any other files that may accompany the product.
+ 3. Title, copyright, intellectual property rights and distribution rights of the Software remain exclusively with the Vendor. Intellectual property rights include the look and feel of the Software. This Agreement constitutes a license for use only and is not in any way a transfer of ownership rights to the Software.
+ 4. The Software may be loaded onto no more than one computer. A single copy may be made for backup purposes only.
+ 5. The rights and obligations of this Agreement are personal rights granted to the Licensee only. The Licensee may not transfer or assign any of the rights or obligations granted under this Agreement to any other person or legal entity. The Licensee may not make available the Software for use by one or more third parties.
+ 6. The Software may not be modified, reverse-engineered, or de-compiled in any manner through current or future available technologies.
+ 7. Failure to comply with any of the terms under the License section will be considered a material breach of this Agreement.
+
+ License Fee
+ 8. The purchase price paid by the Licensee will constitute the entire license fee and is the full consideration for this Agreement.
+ Limitation of Liability
+ 9. The Software is provided by the Vendor and accepted by the Licensee "as is". Liability of the Vendor will be limited to a maximum of the original purchase price of the Software. The Vendor will not be liable for any general, special, incidental or consequential damages including, but not limited to, loss of production, loss of profits, loss of revenue, loss of data, or any other business or economic disadvantage suffered by the Licensee arising out of the use or failure to use the Software.
+ 10. The Vendor makes no warranty expressed or implied regarding the fitness of the Software for a particular purpose or that the Software will be suitable or appropriate for the specific requirements of the Licensee.
+ 11. The Vendor does not warrant that use of the Software will be uninterrupted or error-free. The Licensee accepts that software in general is prone to bugs and flaws within an acceptable level as determined in the industry.
+
+ Warrants and Representations
+ 12. The Vendor warrants and represents that it is the copyright holder of the Software. The Vendor warrants and represents that granting the license to use this Software is not in violation of any other agreement, copyright or applicable statute.
+
+ Acceptance
+ 13. All terms, conditions and obligations of this Agreement will be deemed to be accepted by the Licensee ("Acceptance") upon the purchse of the software.
+
+ User Support
+ 14. The Licensee will be entitled to support within Big Daddy Scripts Discord available most days, at no additional cost.
+ 15. The Licensee will be entitled to maintenance upgrades and bug fixes, at no additional cost, forever.
+
+ Term
+ 16. The term of this Agreement will begin on purchase of the software and is perpetual.
+
+ Termination
+ 17. This Agreement will be terminated and the License forfeited without the chance of a refund where the Licensee has failed to comply with any of the terms of this Agreement or is in breach of this Agreement. On termination of this Agreement for any reason, the Licensee will promptly destroy the Software or return the Software to the Vendor.
+
+ Force Majeure
+ 18. The Vendor will be free of liability to the Licensee where the Vendor is prevented from executing its obligations under this Agreement in whole or in part due to Force Majeure, such as earthquake, typhoon, flood, fire, and war or any other unforeseen and uncontrollable event where the Vendor has taken any and all appropriate action to mitigate such an event.
+
+ Additional Clauses
+ 19. You may not share any prop, texture, code, imagery, or any pieces that come with this resource. Failure to comply with this will result in the license being revoked without refund.
+
+ Governing Law
+ 20. The Parties to this Agreement submit to the jurisdiction of the courts of the State of West Virginia for the enforcement of this Agreement or any arbitration award or decision arising from this Agreement. This Agreement will be enforced or construed according to the laws of the State of West Virginia.
+
+ Miscellaneous
+ 21. This Agreement can only be modified in writing and can be modified at any time without warning or notice, although attempt to provide notice will be made.
+ 22. This Agreement does not create or imply any relationship in agency or partnership between the Vendor and the Licensee.
+ 23. Headings are inserted for the convenience of the parties only and are not to be considered when interpreting this Agreement. Words in the singular mean and include the plural and vice versa. Words in the masculine gender include the feminine gender and vice versa. Words in the neuter gender include the masculine gender and the feminine gender and vice versa.
+ 24. If any term, covenant, condition or provision of this Agreement is held by a court of competent jurisdiction to be invalid, void or unenforceable, it is the parties' intent that such provision be reduced in scope by the court only to the extent deemed necessary by that court to render the provision reasonable and enforceable and the remainder of the provisions of this Agreement will in no way be affected, impaired or invalidated as a result.
+ 25. This Agreement contains the entire agreement between the parties. All understandings have been included in this Agreement. Representations which may have been made by any party to this Agreement may in some way be inconsistent with this final written Agreement. All such statements are declared to be of no value in this Agreement. Only the written terms of this Agreement will bind the parties.
+ 26. This Agreement and the terms and conditions contained in this Agreement apply to and are binding upon the Vendor's successors and assigns.
diff --git a/resources/BigDaddy-EAS/Newtonsoft.Json.dll b/resources/BigDaddy-EAS/Newtonsoft.Json.dll
new file mode 100644
index 000000000..6e233b9f7
Binary files /dev/null and b/resources/BigDaddy-EAS/Newtonsoft.Json.dll differ
diff --git a/resources/BigDaddy-EAS/fxmanifest.lua b/resources/BigDaddy-EAS/fxmanifest.lua
new file mode 100644
index 000000000..fc6405f5c
--- /dev/null
+++ b/resources/BigDaddy-EAS/fxmanifest.lua
@@ -0,0 +1,28 @@
+fx_version 'bodacious'
+game 'gta5'
+clr_disable_task_scheduler 'yes'
+
+name "BigDaddy-EAS"
+description "EAS Emergency Alert System"
+author "Big Daddy"
+version "1.3.0"
+
+client_scripts {
+ '*Client.net.dll',
+ 'Newtonsoft.Json.dll',
+}
+
+server_scripts {
+ '*.Server.net.dll',
+ 'Newtonsoft.Json.dll',
+ 'BigDaddy*.js'
+}
+
+ui_page 'nui/nui.html'
+
+files {
+ 'settings.ini',
+ 'nui/nui.html',
+ 'nui/sounds/*.mp3',
+ 'nui/sounds/*.ogg'
+}
diff --git a/resources/BigDaddy-EAS/nui/alert-illegal.mp3 b/resources/BigDaddy-EAS/nui/alert-illegal.mp3
new file mode 100644
index 000000000..6555f13c6
Binary files /dev/null and b/resources/BigDaddy-EAS/nui/alert-illegal.mp3 differ
diff --git a/resources/BigDaddy-EAS/nui/alert.mp3 b/resources/BigDaddy-EAS/nui/alert.mp3
new file mode 100644
index 000000000..7342186e6
Binary files /dev/null and b/resources/BigDaddy-EAS/nui/alert.mp3 differ
diff --git a/resources/BigDaddy-EAS/nui/nui.html b/resources/BigDaddy-EAS/nui/nui.html
new file mode 100644
index 000000000..f90e5a8d4
--- /dev/null
+++ b/resources/BigDaddy-EAS/nui/nui.html
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/BigDaddy-EAS/nui/sounds/alert.mp3 b/resources/BigDaddy-EAS/nui/sounds/alert.mp3
new file mode 100644
index 000000000..7342186e6
Binary files /dev/null and b/resources/BigDaddy-EAS/nui/sounds/alert.mp3 differ
diff --git a/resources/BigDaddy-EAS/nui/sounds/amberalert.ogg b/resources/BigDaddy-EAS/nui/sounds/amberalert.ogg
new file mode 100644
index 000000000..4ddc03afe
Binary files /dev/null and b/resources/BigDaddy-EAS/nui/sounds/amberalert.ogg differ
diff --git a/resources/BigDaddy-EAS/nui/sounds/governmentalertsystem.ogg b/resources/BigDaddy-EAS/nui/sounds/governmentalertsystem.ogg
new file mode 100644
index 000000000..5e2debb1c
Binary files /dev/null and b/resources/BigDaddy-EAS/nui/sounds/governmentalertsystem.ogg differ
diff --git a/resources/BigDaddy-EAS/nui/sounds/silveralert.ogg b/resources/BigDaddy-EAS/nui/sounds/silveralert.ogg
new file mode 100644
index 000000000..a6b191fab
Binary files /dev/null and b/resources/BigDaddy-EAS/nui/sounds/silveralert.ogg differ
diff --git a/resources/BigDaddy-EAS/settings.ini b/resources/BigDaddy-EAS/settings.ini
new file mode 100644
index 000000000..e749670a0
--- /dev/null
+++ b/resources/BigDaddy-EAS/settings.ini
@@ -0,0 +1,10 @@
+[licensing]
+key1=FP9RE8s1f9yTGDvd3CAKk6AG3VqeH9L5wa2oo9HietfJx1Kbv6tXmw%3d%3d
+
+[settings]
+useAcePermissions=true
+acePermission=command
+agencies=Weather Service,Amber Alert,Silver Alert,Government Alert System
+
+;do not change this
+DesyncKey=935018581672
diff --git a/resources/BigDaddy-Jobs-BusDriver/BigDaddy-Jobs-BusDriver.Client.net.dll b/resources/BigDaddy-Jobs-BusDriver/BigDaddy-Jobs-BusDriver.Client.net.dll
new file mode 100644
index 000000000..542049f92
Binary files /dev/null and b/resources/BigDaddy-Jobs-BusDriver/BigDaddy-Jobs-BusDriver.Client.net.dll differ
diff --git a/resources/BigDaddy-Jobs-BusDriver/BigDaddy-Jobs-BusDriver.Server.net.dll b/resources/BigDaddy-Jobs-BusDriver/BigDaddy-Jobs-BusDriver.Server.net.dll
new file mode 100644
index 000000000..cbf7d8011
Binary files /dev/null and b/resources/BigDaddy-Jobs-BusDriver/BigDaddy-Jobs-BusDriver.Server.net.dll differ
diff --git a/resources/BigDaddy-Jobs-BusDriver/MenuAPI.dll b/resources/BigDaddy-Jobs-BusDriver/MenuAPI.dll
new file mode 100644
index 000000000..aa273864f
Binary files /dev/null and b/resources/BigDaddy-Jobs-BusDriver/MenuAPI.dll differ
diff --git a/resources/BigDaddy-Jobs-BusDriver/Newtonsoft.Json.dll b/resources/BigDaddy-Jobs-BusDriver/Newtonsoft.Json.dll
new file mode 100644
index 000000000..6e233b9f7
Binary files /dev/null and b/resources/BigDaddy-Jobs-BusDriver/Newtonsoft.Json.dll differ
diff --git a/resources/BigDaddy-Jobs-BusDriver/data/carvariations.meta b/resources/BigDaddy-Jobs-BusDriver/data/carvariations.meta
new file mode 100644
index 000000000..39bb07b96
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/data/carvariations.meta
@@ -0,0 +1,88 @@
+
+
+
+
+ -
+
citywokbus
+
+ -
+
+ 134
+ 134
+ 0
+ 156
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - lc_modkit
+
+
+
+
+ -
+
Standard White
+
+
+
+
+
+
+
+ -
+
charterbus
+
+ -
+
+ 134
+ 134
+ 0
+ 156
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - lc_modkit
+
+
+
+
+ -
+
Standard White
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/BigDaddy-Jobs-BusDriver/data/handling.meta b/resources/BigDaddy-Jobs-BusDriver/data/handling.meta
new file mode 100644
index 000000000..4a695b89b
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/data/handling.meta
@@ -0,0 +1,128 @@
+
+
+
+
+ -
+
citywokbus
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2084001A
+ 0
+ 20
+ SPORTS_CAR
+
+ -
+
+
+
+
+
+
+
+
+ -
+
charterbus
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2084001A
+ 0
+ 20
+ SPORTS_CAR
+
+ -
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/BigDaddy-Jobs-BusDriver/data/vehicles.meta b/resources/BigDaddy-Jobs-BusDriver/data/vehicles.meta
new file mode 100644
index 000000000..cbe26dbf7
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/data/vehicles.meta
@@ -0,0 +1,259 @@
+
+
+ vehshare
+
+
+ -
+
citywokbus
+ citywokbus
+ citywokbus
+ citywokbus
+
+ null
+ null
+ null
+ null
+
+ null
+ bus
+ LAYOUT_BUS
+ BUS_COVER_OFFSET_INFO
+ EXPLOSION_INFO_TRUCK
+
+ DEFAULT_FOLLOW_VEHICLE_CAMERA
+ BOX_VEHICLE_AIM_CAMERA
+ DEFAULT_VEHICLE_BONNET_CAMERA
+ BUS_POV_CAMERA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VFXVEHICLEINFO_BUS_GENERIC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5000.000000
+ 5000.000000
+ 5000.000000
+ 1200.000000
+ 5000.000000
+ 5000.000000
+
+
+
+
+
+
+
+
+
+
+ SWANKNESS_1
+
+ FLAG_BIG FLAG_AVOID_TURNS FLAG_HAS_LIVERY FLAG_EXTRAS_STRONG FLAG_EXTRAS_REQUIRE FLAG_PEDS_CAN_STAND_ON_TOP FLAG_DONT_SPAWN_IN_CARGEN FLAG_USE_FAT_INTERIOR_LIGHT FLAG_BLOCK_FROM_ATTRACTOR_SCENARIO FLAG_IS_BUS FLAG_USE_FULL_ANIMS_FOR_MP_WARP_ENTRY_POINTS
+ VEHICLE_TYPE_CAR
+ VPT_FRONT_AND_BACK_PLATES
+ VDT_TRUCK
+ VC_SERVICE
+ VWT_SPORT
+
+
+
+ -
+
s_m_m_gentransport
+ LSM Driver
+
+
+
+
+
+
+
+
+
+
+ - WHEEL_WIDE_REAR_RIGHT_CAMERA
+ - WHEEL_WIDE_REAR_LEFT_CAMERA
+
+ Truck
+
+
+
+
+ - BUS_DRIVER
+ - BUS_PASSENGER_RIGHT
+ - BUS_PASSENGER_LEFT
+ - BUS_PASSENGER_RIGHT_OPEN
+ - BUS_PASSENGER_LEFT_OPEN
+ - BUS_PASSENGER_RIGHT_OPEN
+ - BUS_PASSENGER_LEFT_MIDDLE
+ - BUS_PASSENGER_RIGHT_MIDDLE
+ - BUS_PASSENGER_LEFT_REAR
+ - BUS_PASSENGER_RIGHT_OPEN
+ - BUS_PASSENGER_LEFT_OPEN
+ - BUS_PASSENGER_RIGHT_MIDDLE
+ - BUS_PASSENGER_LEFT_MIDDLE
+ - BUS_PASSENGER_RIGHT_OPEN
+ - BUS_PASSENGER_LEFT_OPEN
+ - BUS_PASSENGER_RIGHT_REAR
+
+
+ -
+
charterbus
+ charterbus
+ charterbus
+ charterbus
+
+ null
+ null
+ null
+ null
+
+ null
+ bus
+ LAYOUT_BUS
+ BUS_COVER_OFFSET_INFO
+ EXPLOSION_INFO_TRUCK
+
+ DEFAULT_FOLLOW_VEHICLE_CAMERA
+ BOX_VEHICLE_AIM_CAMERA
+ DEFAULT_VEHICLE_BONNET_CAMERA
+ BUS_POV_CAMERA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VFXVEHICLEINFO_BUS_GENERIC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5000.000000
+ 5000.000000
+ 5000.000000
+ 1200.000000
+ 5000.000000
+ 5000.000000
+
+
+
+
+
+
+
+
+
+
+ SWANKNESS_1
+
+ FLAG_BIG FLAG_AVOID_TURNS FLAG_HAS_LIVERY FLAG_EXTRAS_STRONG FLAG_EXTRAS_REQUIRE FLAG_PEDS_CAN_STAND_ON_TOP FLAG_DONT_SPAWN_IN_CARGEN FLAG_USE_FAT_INTERIOR_LIGHT FLAG_BLOCK_FROM_ATTRACTOR_SCENARIO FLAG_IS_BUS FLAG_USE_FULL_ANIMS_FOR_MP_WARP_ENTRY_POINTS
+ VEHICLE_TYPE_CAR
+ VPT_FRONT_AND_BACK_PLATES
+ VDT_TRUCK
+ VC_SERVICE
+ VWT_SPORT
+
+
+
+ -
+
s_m_m_gentransport
+ LSM Driver
+
+
+
+
+
+
+
+
+
+
+ - WHEEL_WIDE_REAR_RIGHT_CAMERA
+ - WHEEL_WIDE_REAR_LEFT_CAMERA
+
+ Truck
+
+
+
+
+ - BUS_DRIVER
+ - BUS_PASSENGER_RIGHT
+ - BUS_PASSENGER_LEFT
+ - BUS_PASSENGER_RIGHT_OPEN
+ - BUS_PASSENGER_LEFT_OPEN
+ - BUS_PASSENGER_RIGHT_OPEN
+ - BUS_PASSENGER_LEFT_MIDDLE
+ - BUS_PASSENGER_RIGHT_MIDDLE
+ - BUS_PASSENGER_LEFT_REAR
+ - BUS_PASSENGER_RIGHT_OPEN
+ - BUS_PASSENGER_LEFT_OPEN
+ - BUS_PASSENGER_RIGHT_MIDDLE
+ - BUS_PASSENGER_LEFT_MIDDLE
+ - BUS_PASSENGER_RIGHT_OPEN
+ - BUS_PASSENGER_LEFT_OPEN
+ - BUS_PASSENGER_RIGHT_REAR
+
+
+
+
\ No newline at end of file
diff --git a/resources/BigDaddy-Jobs-BusDriver/fxmanifest.lua b/resources/BigDaddy-Jobs-BusDriver/fxmanifest.lua
new file mode 100644
index 000000000..a36bd5103
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/fxmanifest.lua
@@ -0,0 +1,29 @@
+fx_version 'bodacious'
+game 'gta5'
+
+
+author 'Big Daddy'
+version '1.0'
+description 'Be a bus driver'
+
+
+client_scripts {
+ '*.Client.net.dll',
+ 'Newtonsoft.Json.dll',
+ 'MenuAPI.dll'
+}
+
+server_scripts {
+ '*.Server.net.dll',
+ 'server.lua'
+}
+
+files {
+ 'routes.json',
+ 'settings.ini',
+ 'data/*.meta'
+}
+
+data_file 'HANDLING_FILE' 'data/handling.meta'
+data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
+data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
diff --git a/resources/BigDaddy-Jobs-BusDriver/routes.json b/resources/BigDaddy-Jobs-BusDriver/routes.json
new file mode 100644
index 000000000..610f6e26a
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/routes.json
@@ -0,0 +1,1030 @@
+[
+ {
+ "id": 1,
+ "routeInfo": {
+ "routeName": "Mirror Park/LSIA",
+ "color": 3,
+ "model": "citywokbus",
+ "busNum": 3,
+ "timeBetweenBuses": 750,
+ "startHeading": 341.95,
+ "extra": 4
+
+ },
+ "busStops": [
+ {
+ "pos": {
+ "X": 1203.57,
+ "Y": -781.95,
+ "Z": 56.95
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1185.27,
+ "Y": -543.98,
+ "Z": 64.72
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1216.04,
+ "Y": -399.62,
+ "Z": 68.13
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 902.72,
+ "Y": -109.58,
+ "Z": 77.85
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 915.96,
+ "Y": 72.63,
+ "Z": 79.97
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1106.05,
+ "Y": 419.79,
+ "Z": 91.48
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 891.47,
+ "Y": 192.58,
+ "Z": 76.06
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 745.51,
+ "Y": -27.92,
+ "Z": 60.07
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 379.15,
+ "Y": -599.46,
+ "Z": 28.75
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 304.5,
+ "Y": -765.38,
+ "Z": 29.23
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 200.73,
+ "Y": -1201.7,
+ "Z": 29
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 141.89,
+ "Y": -1401.46,
+ "Z": 29.19
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 113.36,
+ "Y": -1436.34,
+ "Z": 28.3
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 67.4,
+ "Y": -1474.78,
+ "Z": 29.29
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -110.22,
+ "Y": -1685.89,
+ "Z": 29.32
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -240.26,
+ "Y": -1801.27,
+ "Z": 29.71
+ },
+ "stop": true,
+ "precise": false,
+ "extra": 7
+ },
+ {
+ "pos": {
+ "X": -1027.83,
+ "Y": -2738.17,
+ "Z": 20.18
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -807.00,
+ "Y": -2526.74,
+ "Z": 13.76
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -705.00,
+ "Y": -2133.30,
+ "Z": 13.21
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -297.75,
+ "Y": -1848.53,
+ "Z": 25.82
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -146.72,
+ "Y": -1752.07,
+ "Z": 30.54
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -41.07,
+ "Y": -1651.99,
+ "Z": 29.29
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 54.38,
+ "Y": -1539.55,
+ "Z": 29.3
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 236.38,
+ "Y": -1198.33,
+ "Z": 29.29
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 292.24,
+ "Y": -890.05,
+ "Z": 29.16
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 358.00,
+ "Y": -703.00,
+ "Z": 29.29
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 931.16,
+ "Y": 187.93,
+ "Z": 75.85
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1124.21,
+ "Y": 362.03,
+ "Z": 91.46
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 966.22,
+ "Y": 162.32,
+ "Z": 80.83
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1001.53,
+ "Y": -202.34,
+ "Z": 70.84
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1186.35,
+ "Y": -414.15,
+ "Z": 67.47
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1166.33,
+ "Y": -487.72,
+ "Z": 65.63
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1181.33,
+ "Y": -783.72,
+ "Z": 56.63
+ },
+ "stop": true,
+ "precise": false,
+ "extra": 8
+ }
+ ]
+ },
+
+ {
+ "id": 2,
+ "routeInfo": {
+ "routeName": "Del Perro",
+ "color": 2,
+ "model": "citywokbus",
+ "busNum": 4,
+ "timeBetweenBuses": 900,
+ "startHeading": 305.95,
+ "extra": 5
+ },
+ "busStops": [
+ {
+ "pos": {
+ "X": -1584.63,
+ "Y": -216.28,
+ "Z": 54.86
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -1421.04,
+ "Y": -86.64,
+ "Z": 52.42
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -1182.24,
+ "Y": -136.88,
+ "Z": 40.59
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -1173.02,
+ "Y": -129.68,
+ "Z": 39.56
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -1069.42,
+ "Y": -180.17,
+ "Z": 37.2
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -834.13,
+ "Y": -105.48,
+ "Z": 37.19
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -661.1,
+ "Y": -329.98,
+ "Z": 34.71
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -634.31,
+ "Y": -538.28,
+ "Z": 34.87
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -568.29,
+ "Y": -558.39,
+ "Z": 35.18
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -432.55,
+ "Y": -854.34,
+ "Z": 38.78
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -411.33,
+ "Y": -1275.74,
+ "Z": 21.76
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -407.86,
+ "Y": -1401.11,
+ "Z": 30.24
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -406.6,
+ "Y": -1430.45,
+ "Z": 30.1
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -390.73,
+ "Y": -1440.33,
+ "Z": 30.3
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -157.59,
+ "Y": -1518.18,
+ "Z": 34.06
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -137.89,
+ "Y": -1524.14,
+ "Z": 33.51
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 42.82,
+ "Y": -1490.97,
+ "Z": 30.33
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 129.24,
+ "Y": -1548.12,
+ "Z": 29.95
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 206.8,
+ "Y": -1613.81,
+ "Z": 28.81
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 339.65,
+ "Y": -1731.86,
+ "Z": 29.8
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 453.69,
+ "Y": -1820.76,
+ "Z": 28.65
+ },
+ "stop": false,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 445.99,
+ "Y": -1819,
+ "Z": 28.09
+ },
+ "stop": true,
+ "precise": false,
+ "extra": 8
+ }
+ ]
+ },
+
+
+ {
+ "id": 3,
+ "routeInfo": {
+ "routeName":"Sandy Shores/Paleto Bay/GOH",
+ "color": 4,
+ "model": "charterbus",
+ "busNum": 3,
+ "timeBetweenBuses": 600,
+ "startHeading": 257.05,
+ "extra" : 2
+ },
+ "busStops": [
+ {
+ "pos": {
+ "X": 451.23,
+ "Y": -589.86,
+ "Z": 28.5
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 463.19,
+ "Y": -660.9,
+ "Z": 27.52
+ },
+ "stop": true,
+ "precise": true
+ },
+
+
+
+
+ {
+ "pos": {
+ "X": 55.12,
+ "Y": -1248.26,
+ "Z": 29.34
+ },
+ "stop": false,
+ "precise": true
+ },
+
+ {
+ "pos": {
+ "X": 97.44,
+ "Y": -1266.15,
+ "Z": 29.39
+ },
+ "stop": false,
+ "precise": true
+ },
+
+
+ {
+ "pos": {
+ "X": 175.33,
+ "Y": -1240.26,
+ "Z": 38.2
+ },
+ "stop": false,
+ "precise": true
+ },
+
+
+
+
+
+ {
+ "pos": {
+ "X": 1069.18,
+ "Y": -1193.44,
+ "Z": 55.77
+ },
+ "stop": false,
+ "precise": false
+ },
+
+
+
+
+
+ {
+ "pos": {
+ "X": 2588.98,
+ "Y": 234.05,
+ "Z": 102.81
+ },
+ "stop": false,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 2602.19,
+ "Y": 310.9,
+ "Z": 110.17
+ },
+ "stop": true,
+ "precise": true
+ },
+
+ {
+ "pos": {
+ "X": 2547.95,
+ "Y": 1637.11,
+ "Z": 19.3
+ },
+ "stop": true,
+ "precise": true
+ },
+
+
+ {
+ "pos": {
+ "X": 2437.361,
+ "Y": 2877.896,
+ "Z": 48.15889
+ },
+ "stop": false,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 2175.31,
+ "Y": 3028.54,
+ "Z": 45.3
+ },
+ "stop": false,
+ "precise": true,
+ "extra": 6
+ },
+
+
+
+
+
+
+ {
+ "pos": {
+ "X": 2008.19,
+ "Y": 3110.9,
+ "Z": 46.96
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1807.19,
+ "Y": 3280.9,
+ "Z": 42.99
+ },
+ "stop": true,
+ "precise": false
+ },
+
+ {
+ "pos": {
+ "X": 1708.33,
+ "Y": 3492.65,
+ "Z": 69.99
+ },
+ "stop": false,
+ "precise": false
+ },
+
+ {
+ "pos": {
+ "X": 1906.19,
+ "Y": 3682.9,
+ "Z": 32.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 2516.19,
+ "Y": 4122.9,
+ "Z": 38.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 2607.19,
+ "Y": 5285.9,
+ "Z": 44.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": 1694.19,
+ "Y": 6402.9,
+ "Z": 31.99
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 216.19,
+ "Y": 6577.9,
+ "Z": 31.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -214.19,
+ "Y": 6179.9,
+ "Z": 31.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -943.19,
+ "Y": 5429.9,
+ "Z": 38.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -2251.19,
+ "Y": 4294.9,
+ "Z": 47.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -3127.19,
+ "Y": 1127.9,
+ "Z": 20.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -3061.19,
+ "Y": 227.9,
+ "Z": 15.99
+ },
+ "stop": true,
+ "precise": false
+ },
+ {
+ "pos": {
+ "X": -2182.19,
+ "Y": -373.9,
+ "Z": 13.99
+ },
+ "stop": true,
+ "precise": false,
+ "extra": 8
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "routeInfo": {
+ "routeName": "Pier/Downtown",
+ "color": 5,
+ "model": "citywokbus",
+ "busNum": 4,
+ "timeBetweenBuses": 600,
+ "startHeading": 257.05,
+ "extra": 5
+ },
+ "busStops": [
+ {
+ "pos": {
+ "X": -1619.36,
+ "Y": -619.52,
+ "Z": 30.98397
+ },
+ "stop": true,
+ "precise": true
+ },
+
+
+ {
+ "pos": {
+ "X": -1496.36,
+ "Y": -721.52,
+ "Z": 25.45
+ },
+ "stop": true,
+ "precise": true
+ },
+
+
+ {
+ "pos": {
+ "X": -1332.7,
+ "Y": -677.3441,
+ "Z": 25.25592
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": -1241.169,
+ "Y": -606.9515,
+ "Z": 26.24777
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": -1262.082,
+ "Y": -532.4417,
+ "Z": 30.0682
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": -1350.266,
+ "Y": -418.9123,
+ "Z": 34.87215
+ },
+ "stop": true,
+ "precise": true,
+ "extra": 3
+ },
+ {
+ "pos": {
+ "X": -1317.338,
+ "Y": -367.4247,
+ "Z": 35.63763
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": -1128.387,
+ "Y": -261.2587,
+ "Z": 36.74206
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": -849.9679,
+ "Y": -108.8199,
+ "Z": 36.77527
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": -725.1957,
+ "Y": -42.27208,
+ "Z": 36.80471
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": -456.593,
+ "Y": -9.001204,
+ "Z": 44.69967
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": -288.9631,
+ "Y": -46.25964,
+ "Z": 48.10916
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 24.19777,
+ "Y": -152.2833,
+ "Z": 54.86399
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 171.639,
+ "Y": -212.8799,
+ "Z": 53.04113
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 329.9166,
+ "Y": -269.8445,
+ "Z": 52.8825
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 426.9875,
+ "Y": -308.601,
+ "Z": 48.88117
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 768.703,
+ "Y": -617.7209,
+ "Z": 27.839
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 767.9147,
+ "Y": -769.9069,
+ "Z": 25.45864
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 774.7111,
+ "Y": -939.4196,
+ "Z": 24.74073
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 790.8653,
+ "Y": -1258.026,
+ "Z": 25.29038
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 788.3373,
+ "Y": -1370.663,
+ "Z": 25.54936
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 826.221,
+ "Y": -1637.193,
+ "Z": 29.3816
+ },
+ "stop": true,
+ "precise": true
+ },
+ {
+ "pos": {
+ "X": 750.3759,
+ "Y": -2153.01,
+ "Z": 28.3397
+ },
+ "stop": true,
+ "precise": true,
+ "extra": 8
+ }
+ ]
+ }
+
+
+]
diff --git a/resources/BigDaddy-Jobs-BusDriver/server.lua b/resources/BigDaddy-Jobs-BusDriver/server.lua
new file mode 100644
index 000000000..a24cc0a2c
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/server.lua
@@ -0,0 +1,132 @@
+
+framework = 'custom' --VALUES CAN BE 'nat', 'qb', 'esx', 'nd', 'bigdaddy' or 'custom'
+
+reason = 'Bus Fare' --reason for the transaction will notify using framework methods
+
+useSociety = false
+toSocietyaccount = ''
+local currencySymbol = '$'
+
+if framework == 'nat' then
+ print('Framework set to nat')
+elseif framework == 'qb' then
+ QBCore = exports['qb-core']:GetCoreObject()
+elseif framework == 'esx' then
+ ESX = exports["es_extended"]:getSharedObject()
+elseif framework == 'nd' then
+ NDCore = exports.ND_Core:GetCoreObject()
+elseif framework == 'bigdaddy' then
+ print('Framework set to Big Daddy')
+elseif framework == 'custom' then
+ print('LOAD CORE OBJECT HERE IF REQUIRED, if not then you may disregard this statement.')
+else
+ print('FRAMEWORK IS NOT SET PROPERLY FOR RESOURCE! Check server.lua in ' .. GetCurrentResourceName() .. ' for money events. The current value is set to ' .. framework .. ', and this is not a valid selection.' )
+end
+
+RegisterNetEvent('BigDaddy-Jobs-BusDriver:Pay', function(amount, playerId)
+ local src = source
+
+ if framework == 'nat' then
+ local account = exports.money:getaccount(src)
+ if (tonumber(account.bank) >= tonumber(amount)) then
+ local newbalance = tonumber(account.cash) - tonumber(amount)
+ exports.money:updateaccount(src, {cash = newbalance, bank = account.bank})
+ exports.money:bankNotify(src, reason .. ' ' .. currencySymbol .. amount )
+ TriggerClientEvent('BigDaddy--Jobs-BusDriver:IsPaid', src, true)
+ else
+ TriggerClientEvent('BigDaddy--Jobs-BusDriver:IsPaid', src, false)
+ end
+ return true
+ elseif framework == 'qb' then
+ local Player = QBCore.Functions.GetPlayer(src)
+ if (Player.Functions.GetMoney(cash) >= tonumber(amount)) then
+ Player.Functions.RemoveMoney('cash', tonumber(amount), reason)
+ if (useSociety) then
+ exports['qb-management']:AddMoney(toSocietyaccount, tonumber(amount))
+ end
+ TriggerClientEvent('QBCore:Notify', src, reason, 'primary', 5000)
+ --Player.Functions.AddMoney('bank', amount, reason)
+ TriggerClientEvent('BigDaddy-Jobs-BusDriver:IsPaid', src, true)
+ else
+ TriggerClientEvent('BigDaddy-Jobs-BusDriver:IsPaid', src, false)
+ end
+ elseif framework == 'esx' then
+ local xPlayer = ESX.GetPlayerFromId(src)
+ if (xPlayer.getAccount("cash") >= tonumber(amount)) then
+ xPlayer.removeAccountMoney('cash', tonumber(amount))
+ xPlayer.showNotification(reason)
+ TriggerClientEvent('BigDaddy-Jobs-BusDriver:IsPaid', src, true)
+ else
+ TriggerClientEvent('BigDaddy-Jobs-BusDriver:IsPaid', src, false)
+ end
+ --xPlayer.addAccountMoney('bank', amount)
+ elseif framework == 'nd' then
+ local Player = NDCore.Functions.GetPlayer(src)
+ if (Player.amount >= amount) then
+ NDCore.Functions.DeductMoney(amount, src, 'cash', reason)
+ TriggerClientEvent('BigDaddy-Jobs-BusDriver:IsPaid', src, true)
+ else
+ TriggerClientEvent('BigDaddy-Jobs-BusDriver:IsPaid', src, false)
+ end
+ elseif framework == 'bigdaddy' then
+ local account = exports['BigDaddy-Money']:GetAccounts(src, playerId, -1)
+ local data = json.decode(account)
+ if (data ~= null and tonumber(data.cash) >= tonumber(amount)) then
+ local newbalance = tonumber(data.cash) - tonumber(amount)
+ exports['BigDaddy-Money']:UpdateTotals(src, data.bank, newbalance, data.dirty, -1)
+ TriggerClientEvent("BigDaddy-Money:Notify", src, 'Paid ' .. currencySymbol .. string.format("%.2f", amount) .. ' ' .. reason)
+ TriggerClientEvent('BigDaddy-Jobs-BusDriver:IsPaid', src, true)
+ else
+ TriggerClientEvent('BigDaddy-Jobs-BusDriver:IsPaid', src, false)
+ end
+ elseif framework == 'custom' then
+ --INSERT CUSTOM CODE HERE FOR CASH MANAGEMENT
+ else
+ print('FRAMEWORK IS NOT SET PROPERLY FOR RESOURCE! Check server.lua in ' .. GetCurrentResourceName() .. ' for money events. The current value is set to ' .. framework .. ', and this is not a valid selection.' )
+ end
+end)
+
+RegisterNetEvent('BigDaddy-Jobs-BusDriver:GetPaid', function(amount, toPlayerId)
+ local src = source
+
+ if framework == 'nat' then
+ local account = exports.money:getaccount(src)
+ if (tonumber(account.bank) >= tonumber(amount)) then
+ local newbalance = tonumber(account.bank) - tonumber(amount)
+ exports.money:updateaccount(src, {cash = account.amount, bank = newbalance})
+ exports.money:bankNotify(src, 'Bus Driver Pay' .. ' ' .. currencySymbol .. amount )
+ end
+ elseif framework == 'qb' then
+ local Player = QBCore.Functions.GetPlayer(src)
+ if (Player.Functions.GetMoney(bank) >= tonumber(amount)) then
+ Player.Functions.RemoveMoney('bank', tonumber(amount), 'Bus Driver Pay')
+ if (useSociety) then
+ exports['qb-management']:AddMoney(toSocietyaccount, tonumber(amount))
+ end
+ TriggerClientEvent('QBCore:Notify', src, reason, 'primary', 5000)
+ end
+ elseif framework == 'esx' then
+ local xPlayer = ESX.GetPlayerFromId(src)
+ if (xPlayer.getAccount("bank") >= tonumber(amount)) then
+ xPlayer.removeAccountMoney('bank', tonumber(amount))
+ xPlayer.showNotification('Bus Driver Pay')
+ end
+ elseif framework == 'nd' then
+ local Player = NDCore.Functions.GetPlayer(src)
+ if (Player.bank >= amount) then
+ NDCore.Functions.DeductMoney(amount, src, 'bank', 'Bus Driver Pay')
+ end
+ elseif framework == 'bigdaddy' then
+ if toPlayerId > -1 then
+ local toaccount = exports['BigDaddy-Money']:GetAccounts(toPlayerId, toPlayerId, -1)
+ local todata = json.decode(toaccount)
+ local newtobalance = tonumber(todata.bank) + tonumber(amount)
+ exports['BigDaddy-Money']:UpdateTotals(toPlayerId, newtobalance, todata.cash, todata.dirty, -1)
+ TriggerClientEvent("BigDaddy-Money:Notify", toPlayerId, 'Received ' .. currencySymbol .. string.format("%.2f", amount) .. ' ' .. 'Bus Driver Pay')
+ end
+ elseif framework == 'custom' then
+ --INSERT CUSTOM CODE HERE FOR CASH MANAGEMENT
+ else
+ print('FRAMEWORK IS NOT SET PROPERLY FOR RESOURCE! Check server.lua in ' .. GetCurrentResourceName() .. ' for money events. The current value is set to ' .. framework .. ', and this is not a valid selection.' )
+ end
+end)
diff --git a/resources/BigDaddy-Jobs-BusDriver/settings.ini b/resources/BigDaddy-Jobs-BusDriver/settings.ini
new file mode 100644
index 000000000..6b516ead6
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/settings.ini
@@ -0,0 +1,5 @@
+[licensing]
+key1=6z2dKP9l9o7EMNxdxtNuB1fLGUbrEKcPcCom9iDuP9SFSwwgMZZNtA%3d%3d
+
+[settings]
+useMoney=true
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/bus.yft b/resources/BigDaddy-Jobs-BusDriver/stream/bus.yft
new file mode 100644
index 000000000..8779d3233
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/bus.yft
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2463aea8649371c28050c6d6217cf7f91b34c47483229e99f4ffe4b02eda283f
+size 5767870
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/bus.ytd b/resources/BigDaddy-Jobs-BusDriver/stream/bus.ytd
new file mode 100644
index 000000000..95d340660
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/bus.ytd
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:87e5f14297e4760a58c07ec91afbb9f23930afb2354efc5f4dece6b1b0572d52
+size 5075397
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/bus_hi.yft b/resources/BigDaddy-Jobs-BusDriver/stream/bus_hi.yft
new file mode 100644
index 000000000..84b23258b
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/bus_hi.yft
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e14cd981ad4f001c70ad24046c0c8603c171ad3b95439fdb5b29927a4cd9e23
+size 5767883
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/charterbus.yft b/resources/BigDaddy-Jobs-BusDriver/stream/charterbus.yft
new file mode 100644
index 000000000..f02ec919a
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/charterbus.yft
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8c5f279a4942f3cc854e89a160cc57e5c4803ad0d9de187f36415423de9b67a
+size 1055836
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/charterbus.ytd b/resources/BigDaddy-Jobs-BusDriver/stream/charterbus.ytd
new file mode 100644
index 000000000..2e1ce3645
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/charterbus.ytd
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f549d496c9a6a4f0b2d990709b550f701eea32a58b4a0e7ca29467c62d9eb575
+size 4760859
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/charterbus_hi.yft b/resources/BigDaddy-Jobs-BusDriver/stream/charterbus_hi.yft
new file mode 100644
index 000000000..bc79be470
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/charterbus_hi.yft
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6c5946f472d9bf67160199e55ff44f2de62463ee1ed5ae4f89e9308408818e37
+size 1055844
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus.yft b/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus.yft
new file mode 100644
index 000000000..8779d3233
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus.yft
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2463aea8649371c28050c6d6217cf7f91b34c47483229e99f4ffe4b02eda283f
+size 5767870
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus.ytd b/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus.ytd
new file mode 100644
index 000000000..95d340660
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus.ytd
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:87e5f14297e4760a58c07ec91afbb9f23930afb2354efc5f4dece6b1b0572d52
+size 5075397
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus_hi.yft b/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus_hi.yft
new file mode 100644
index 000000000..84b23258b
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/citywokbus_hi.yft
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e14cd981ad4f001c70ad24046c0c8603c171ad3b95439fdb5b29927a4cd9e23
+size 5767883
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/coach.yft b/resources/BigDaddy-Jobs-BusDriver/stream/coach.yft
new file mode 100644
index 000000000..f02ec919a
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/coach.yft
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8c5f279a4942f3cc854e89a160cc57e5c4803ad0d9de187f36415423de9b67a
+size 1055836
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/coach.ytd b/resources/BigDaddy-Jobs-BusDriver/stream/coach.ytd
new file mode 100644
index 000000000..fb46fcf04
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/coach.ytd
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a762a896495b4639dd529a0661fe829d9c7b1a67788edf9b15c2ce773fadc324
+size 4760857
diff --git a/resources/BigDaddy-Jobs-BusDriver/stream/coach_hi.yft b/resources/BigDaddy-Jobs-BusDriver/stream/coach_hi.yft
new file mode 100644
index 000000000..bc79be470
--- /dev/null
+++ b/resources/BigDaddy-Jobs-BusDriver/stream/coach_hi.yft
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6c5946f472d9bf67160199e55ff44f2de62463ee1ed5ae4f89e9308408818e37
+size 1055844
diff --git a/resources/BigDaddy-Jobs-BusDriver/templates/charterbus_sign_1-template.png b/resources/BigDaddy-Jobs-BusDriver/templates/charterbus_sign_1-template.png
new file mode 100644
index 000000000..9a574c85d
Binary files /dev/null and b/resources/BigDaddy-Jobs-BusDriver/templates/charterbus_sign_1-template.png differ
diff --git a/resources/BigDaddy-Jobs-BusDriver/templates/charterbus_sign_1.png b/resources/BigDaddy-Jobs-BusDriver/templates/charterbus_sign_1.png
new file mode 100644
index 000000000..4ec91c174
Binary files /dev/null and b/resources/BigDaddy-Jobs-BusDriver/templates/charterbus_sign_1.png differ
diff --git a/resources/BigDaddy-Jobs-BusDriver/templates/citywokbus_sign_1.png b/resources/BigDaddy-Jobs-BusDriver/templates/citywokbus_sign_1.png
new file mode 100644
index 000000000..f3ec321fc
Binary files /dev/null and b/resources/BigDaddy-Jobs-BusDriver/templates/citywokbus_sign_1.png differ
diff --git a/resources/BigDaddy-Jobs-BusDriver/templates/digitalboardbackground.png b/resources/BigDaddy-Jobs-BusDriver/templates/digitalboardbackground.png
new file mode 100644
index 000000000..df835ca34
Binary files /dev/null and b/resources/BigDaddy-Jobs-BusDriver/templates/digitalboardbackground.png differ
diff --git a/resources/BigDaddy-RadioAnimation/settings.ini b/resources/BigDaddy-RadioAnimation/settings.ini
index 4b55fbb75..345e21bad 100644
--- a/resources/BigDaddy-RadioAnimation/settings.ini
+++ b/resources/BigDaddy-RadioAnimation/settings.ini
@@ -1,5 +1,5 @@
[licensing]
-key1=lpxkTJ3KjEwXV5OQTY0cyspNkKXrXDynyLLgK%2bwv8yUagcyQkfONgg%3d%3d
+key1=PIKr%2f9TI%2biRhuNjwAyRds7t2oMT9nOfY6xSKtWJGvw5N%2bXvX0vLBNw%3d%3d
[settings]
useSounds=true
diff --git a/resources/rhud/.fxap b/resources/rhud/.fxap
new file mode 100644
index 000000000..393a3adde
Binary files /dev/null and b/resources/rhud/.fxap differ
diff --git a/resources/rhud/config.lua b/resources/rhud/config.lua
new file mode 100644
index 000000000..369e568bb
--- /dev/null
+++ b/resources/rhud/config.lua
@@ -0,0 +1,211 @@
+-- For text formatting, refer to: https://docs.fivem.net/docs/game-references/text-formatting/
+-- For keybindings, refer to: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/
+-- For control codes, refer to: https://docs.fivem.net/docs/game-references/controls/
+
+config = {
+ version = 8, -- Config version. Do not change.
+ general = {
+ tick_delay = 500, -- Time in milliseconds between update ticks (default: 500, does not affect the other tick_delay options)
+ chat_messages = false, -- Use chat for messages instead of notifications above the minimap (default: false)
+ chat_prefix = "[^1r^0HUD]", -- Prefix for chat messages (default: "[^1r^0HUD]")
+ locale = 'en-US' -- Locale for all in-game text (default: 'en-US')
+ },
+ modules = { -- HUD Modules
+ config_panel = { -- HUD Module for Config Panel
+ enabled = true, -- Enable the config panel (default: true)
+ -- Enforcing can be used to apply a specific style or layout to all players when they join the server.
+ -- Once enabled, the respective options cannot be changed in the config panel by anyone, including those with the "config" permission.
+ -- Only those with the "export" permission can export options in the config panel to be enforced.
+ enforce_layout = false, -- Enforce exported layout options (default: false)
+ enforce_colors = false -- Enforce exported color options (default: false)
+ },
+ minimap = { -- HUD Module for Minimap
+ enabled = true, -- Enable custom rectangular minimap shape (default: true)
+ border = true, -- Show a border around the minimap (default: true)
+ vehicle_only = false -- Only show the minimap while in a vehicle (default: false)
+ },
+ land = { -- HUD Module for Landcraft
+ enabled = true, -- Enable the landcraft HUD module (default: true)
+ tick_delay = 50, -- Time in milliseconds between module update ticks (default: 50)
+ use_kmph = false, -- Use km/h instead of mph (default: false)
+ passenger = { -- Passenger options (note: these options will NOT make it so passengers can use the seatbelt)
+ show = false, -- Show landcraft HUD module to passengers (default: false)
+ seatbelt_only = false -- Show only the seatbelt indicator to passengers when `show` is true (default: false)
+ },
+ seatbelt = { -- Landcraft built-in seatbelt script
+ enabled = true, -- Enable the built-in seatbelt script (default: true)
+ flythrough_speed = 30, -- Minimum speed required to fly through the windshield in configured units (default: 30)
+ flythrough_modifier = 5.0, -- (default: 5.0)
+ alarm_sfx = true, -- Enable alarm sound effect when seatbelt is not buckled (default: true)
+ alarm_speed = 5, -- Vehicle speed to trigger the alarm (default: 5)
+ alarm_delay = 5, -- Time in seconds to delay the alarm after the trigger speed (default: 5)
+ buckle_sfx = true, -- Enable buckle and unbuckle sound effects (default: true)
+ keybind = 'K' -- Default seatbelt keybind (default: 'K')
+ },
+ fuel = { -- Landcraft specific options for the built-in fuel script
+ electric_gauge = false, -- Show fuel gauge for electric vehicles (default: false)
+ refuel_enabled = true, -- Allow refueling using the controls set in the options for the built-in fuel script (default: true)
+ warn_at = 30 -- Percentage of fuel remaining to turn indicator on (default: 30)
+ }
+ },
+ air = { -- HUD Module for Aircraft
+ enabled = true, -- Enable the aircraft HUD module (default: true)
+ tick_delay = 5, -- Time in milliseconds between module update ticks (default: 5)
+ show_passenger = false, -- Show aircraft HUD module to passenger (default: false)
+ altimeter = { -- Altitude meter options
+ unit = "ft", -- Unit of measurement (default: "ft", options: "ft", "m", "custom")
+ unit_custom = 3.281, -- When `unit` is set to "custom", this is the multiplier to convert meters to the custom unit (default: 3.281)
+ },
+ fuel = { -- Aircraft specific options for the built-in fuel script
+ airplane_gauge = false, -- Show fuel gauge for airplanes, fuel level not affected by built-in fuel script (default: false)
+ refuel_enabled = true, -- Allow refueling using the controls set in the options for the built-in fuel script (default: true)
+ warn_at = 20 -- Percentage of fuel remaining to turn indicator on (default: 20)
+ }
+ },
+ water = { -- HUD Module for Watercraft
+ enabled = true, -- Enable watercraft HUD module (default: true)
+ tick_delay = 50, -- Time in milliseconds between module update ticks (default: 50)
+ show_passenger = false, -- Show watercraft HUD module to passengers (default: false)
+ anchor = { -- Watercraft built-in anchor script
+ enabled = true, -- Enable the built-in anchor script (default: true)
+ use_combo = true, -- Use key combination to toggle the anchor (default: true)
+ combo = {
+ keybind = 133, -- Key to press (default: 133, A)
+ keybind_alt = 36 -- Key to hold (default: 36, LEFT CTRL)
+ },
+ -- Keybind can only be used if `use_combo` is set to false
+ keybind = 'PAGEDOWN', -- Default anchor keybind (default: 'PAGEDOWN')
+ slack = 0.5, -- Anchor slack (default: 0.5)
+ driving_resistance = 0.97, -- How much the boat slows when driving (higher = less resistance, default: 0.97)
+ drift_resistance = 0.90, -- How much the boat slows when drifting (higher = less resistance, default: 0.90)
+ distance_factor = 0.05, -- How much distance affects resistance (higher = more effect, default: 0.05)
+ pull_strength = 0.01, -- Force pulling back to anchor point (default: 0.01)
+ correction_strength = 0.03, -- Force applied to correct significant drift (default: 0.03)
+ min_pull_strength = 0.01, -- Minimum force when stationary (default: 0.01)
+ },
+ fuel = { -- Watercraft specific options for the built-in fuel script
+ gauge = false, -- Show fuel gauge, fuel level not affected by built-in fuel script (default: false)
+ }
+ },
+ info = { -- HUD Module for Roleplay Info
+ enabled = true, -- Enable the info HUD module (default: true)
+ postal = { -- Postals sub-module
+ enabled = true, -- Enable the postal sub-module (default: true)
+ tick_delay = 100, -- Time in milliseconds between sub-module update ticks (default: 100)
+ route_remove_range = 100.0, -- The range from the route destination to remove the waypoint (default: 100.0)
+ messages = {
+ route_deleted = "Route for postal code ~y~{code}~s~ deleted", -- {code} = Relevant postal code
+ route_not_found = "Could not find postal code ~y~{code}~s~", -- {code} = Relevant postal code
+ route_created = "Route for postal code ~y~{code}~s~ created" -- {code} = Relevant postal code
+ }
+ },
+ location = { -- Location sub-module
+ enabled = true, -- Enable the location sub-module (default: true)
+ tick_delay = 500, -- Time in milliseconds between sub-module update ticks (default: 500)
+ vehicle_only = true, -- Function only when player is in a vehicle (default: true)
+ show_passenger = false, -- Show passenger location info when `vehicle_only` is true (default: false)
+ },
+ aop = { -- AOP sub-module
+ enabled = true, -- Enable the AOP sub-module (default: true)
+ default_text = "None", -- Default AOP text (default: "None")
+ notify_all = true, -- Notify all players when AOP status is set (default: true)
+ messages = {
+ no_permission = "~r~You do not have permission to set AOP",
+ status = "AOP set to ~b~{text}~s~" -- {text} = AOP status text
+ }
+ },
+ peacetime = { -- PeaceTime sub-module
+ enabled = true, -- Enable the PeaceTime sub-module (default: true)
+ disable_weapons = true, -- Disable weapons firing when in PeaceTime (default: true)
+ default_speed_limit = 60, -- Speed limit in mph (default: 60)
+ messages = {
+ no_permission = "~r~You do not have permission to set PeaceTime.",
+ violence = "~r~Violence is not allowed during PeaceTime.",
+ speeding = "~r~You are speeding during PeaceTime. Please slow down."
+ }
+ },
+ priority = { -- Priority sub-module
+ enabled = true, -- Enable the priority sub-module (default: true)
+ cooldown = 20, -- Priority cooldown time in minutes (default: 20)
+ hide_username = false, -- Hide username in priority status (default: false)
+ messages = {
+ in_progress = "~r~Priority call in progress. ~s~All other calls are on hold until conclusion.",
+ cooldown = "~r~Priority call concluded. ~s~Civilians must wait ~r~{time}~s~ minutes before conducting another call.", -- {time} = Cooldown time in minutes
+ onhold = "~r~Priority calls on hold. ~s~No new priority calls allowed until this restriction is lifted.",
+ cooldown_in_progress = "~r~Priority call in cooldown. ~s~Please wait ~r~{time}~s~ minutes before conducting another call.", -- {time} = Remaining cooldown time in minutes
+ priority_no_permission = "~r~You do not have permission to conduct a priority call.",
+ cooldown_no_permission = "~r~You do not have permission to conlude a priority call.",
+ onhold_no_permission = "~r~You do not have permission to put a priority call on hold.",
+ reset_no_permission = "~r~You do not have permission to reset a priority call."
+ }
+ }
+ },
+ player = { -- HUD Module for Player
+ enabled = true, -- Enable the player HUD module (default: true)
+ tick_delay = 100, -- Time in milliseconds between module update ticks (default: 100)
+ weapon_icon = true, -- Show weapon icon (default: true)
+ oxygen = true, -- Show oxygen level when swimming underwater (default: true)
+ messages = {
+ healed_self = "Health restored.",
+ healed_by = "Health restored by ~b~{player}~s~.", -- {player} = Player name
+ healed_other = "Restored ~b~{player}~s~'s health.", -- {player} = Player name
+ heal_other_denied = "~r~You do not have permission to heal another player.",
+ heal_self_denied = "~r~You do not have permission to heal yourself.",
+ heal_not_found = "~r~Heal failed. ~s~Player with ID ~r~{pid}~s~ does not exist." -- {pid} = Player ID
+ }
+ },
+ speed_limit = { -- HUD Module for Posted Speed Limit
+ enabled = true, -- Enable the speed limit HUD module (default: true)
+ show_passenger = false -- Show speed limit for passengers (default: false)
+ }
+ },
+ permissions = {
+ aop = {
+ enabled = true, -- Enable AOP permissions (default: true)
+ set_aop = "rhud.aop" -- Name of the permission (default: "rhud.aop")
+ },
+ peacetime = {
+ enabled = true, -- Enable PeaceTime permissions (default: true)
+ set_peacetime = "rhud.peacetime" -- Name of the permission (default: "rhud.peacetime")
+ },
+ priority = {
+ enabled = false, -- Enable priority permissions (default: false)
+ priority = "rhud.priority.active", -- Name of permission to use the "/priority" command (default: "rhud.priority.active")
+ cooldown = "rhud.priority.cooldown", -- Name of permission to use the "/priority cooldown" command (default: "rhud.priority.cooldown")
+ onhold = "rhud.priority.onhold", -- Name of permission to use the "/priority onhold" command (default: "rhud.priority.onhold")
+ reset = "rhud.priority.reset" -- Name of permission to use the "/priority reset" command (default: "rhud.priority.reset")
+ },
+ player = {
+ enabled = true, -- Enable player permissions (default: true)
+ heal_self = "rhud.player.heal_self", -- Name of permission to use the "/heal" command to heal yourself (default: "rhud.player.heal_self")
+ heal_other = "rhud.player.heal_other" -- Name of permission to use the "/heal" command to heal another player (default: "rhud.player.heal_other")
+ },
+ config_panel = {
+ config = "rhud.config.open", -- Name of permission to open the config panel (default: "rhud.config.open")
+ export = "rhud.config.export", -- Name of permission to export from the config panel (default: "rhud.config.export", note: exported options are used for "modules > config_panel > enforce_layout and enforce_colors")
+ layout = "rhud.config.layout", -- Name of permission to allow layout options in the config panel (default: "rhud.config.layout")
+ color = "rhud.config.color" -- Name of permission to allow color options in the config panel (default: "rhud.config.color")
+ }
+ },
+ fuel = { -- Built-in fuel script options
+ enabled = true, -- Enable the built-in fuel script (default: true)
+ create_blips = true, -- Create blips for fuel stations (default: true)
+ refuel_rate = 1.0, -- Refuel rate modifier (default: 1.0)
+ drain_rate = 1.0, -- Drain rate modifier (default: 1.0)
+ acceleration_offset = 0.0002, -- Acceleration offset (default: 0.0002)
+ traction_offset = 0.0001, -- Traction offset (default: 0.0001)
+ rpm_offset = 0.0005, -- RPM offset (default: 0.0005)
+ market_visible_range = 250.0, -- Visibility range for fuel station blips (default: 250.0)
+ controls = {
+ engine_toggle = 86, -- Default: 86, E
+ refuel = 22 -- Default: 22, SPACEBAR
+ }
+ },
+ control = { -- Built-in vehicle control script
+ enabled = true, -- Enable the built-in vehicle control script (default: true)
+ hazard = 'BACK', -- Default hazard lights keybind (default: 'BACK')
+ left_signal = 'MINUS', -- Default left turn signal keybind (default: 'MINUS')
+ right_signal = 'EQUALS', -- Default right turn signal keybind (default: 'EQUALS')
+ engine = 'U' -- Default engine toggle keybind (default: 'U')
+ }
+}
diff --git a/resources/rhud/data/fuel_stations.json b/resources/rhud/data/fuel_stations.json
new file mode 100644
index 000000000..17ebd636a
--- /dev/null
+++ b/resources/rhud/data/fuel_stations.json
@@ -0,0 +1,1042 @@
+[
+ {
+ "coordinates": {
+ "x": 49.418720245361328,
+ "y": 2778.79296875,
+ "z": 58.043949127197266
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 49.499210357666016,
+ "y": 2778.912109375,
+ "z": 58.043991088867188
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 263.8948974609375,
+ "y": 2606.462890625,
+ "z": 44.983390808105469
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 263.17318725585938,
+ "y": 2606.514892578125,
+ "z": 44.9852409362793
+ },
+ {
+ "x": 265.07391357421875,
+ "y": 2606.89990234375,
+ "z": 44.9852409362793
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 1039.9580078125,
+ "y": 2671.134033203125,
+ "z": 39.550910949707031
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 1043.2860107421875,
+ "y": 2668.31591796875,
+ "z": 39.6953010559082
+ },
+ {
+ "x": 1035.779052734375,
+ "y": 2667.884033203125,
+ "z": 39.598419189453125
+ },
+ {
+ "x": 1035.363037109375,
+ "y": 2674.14599609375,
+ "z": 39.6953010559082
+ },
+ {
+ "x": 1043.22802734375,
+ "y": 2674.72705078125,
+ "z": 39.692588806152344
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 1207.260009765625,
+ "y": 2660.175048828125,
+ "z": 37.899959564208984
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 1208.802978515625,
+ "y": 2659.409912109375,
+ "z": 38.292949676513672
+ },
+ {
+ "x": 1209.3819580078125,
+ "y": 2658.550048828125,
+ "z": 38.292961120605469
+ },
+ {
+ "x": 1206.1639404296875,
+ "y": 2662.242919921875,
+ "z": 38.292961120605469
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 2539.68505859375,
+ "y": 2594.19189453125,
+ "z": 37.944881439208984
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 2540.0458984375,
+ "y": 2594.929931640625,
+ "z": 37.941139221191406
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 2679.85791015625,
+ "y": 3263.946044921875,
+ "z": 55.240570068359375
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 2680.89208984375,
+ "y": 3266.343994140625,
+ "z": 55.156509399414062
+ },
+ {
+ "x": 2678.446044921875,
+ "y": 3262.31201171875,
+ "z": 55.156818389892578
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 2005.0550537109375,
+ "y": 3773.886962890625,
+ "z": 32.4039306640625
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 2009.2080078125,
+ "y": 3776.83203125,
+ "z": 32.147579193115234
+ },
+ {
+ "x": 2006.240966796875,
+ "y": 3775.010009765625,
+ "z": 32.1514892578125
+ },
+ {
+ "x": 2003.9210205078125,
+ "y": 3773.583984375,
+ "z": 32.14501953125
+ },
+ {
+ "x": 2001.4840087890625,
+ "y": 3772.196044921875,
+ "z": 32.146701812744141
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 1687.156005859375,
+ "y": 4929.39208984375,
+ "z": 42.078090667724609
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 1684.635986328125,
+ "y": 4931.69580078125,
+ "z": 41.929531097412109
+ },
+ {
+ "x": 1690.1689453125,
+ "y": 4927.81591796875,
+ "z": 41.919490814208984
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 1701.31396484375,
+ "y": 6416.02783203125,
+ "z": 32.763950347900391
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 1701.72900390625,
+ "y": 6416.4228515625,
+ "z": 32.988300323486328
+ },
+ {
+ "x": 1697.7020263671875,
+ "y": 6418.27587890625,
+ "z": 32.396610260009766
+ },
+ {
+ "x": 1705.75,
+ "y": 6414.47607421875,
+ "z": 32.471309661865234
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 179.8572998046875,
+ "y": 6602.8388671875,
+ "z": 31.8681697845459
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 172.11669921875,
+ "y": 6603.4599609375,
+ "z": 31.767589569091797
+ },
+ {
+ "x": 179.74920654296875,
+ "y": 6604.9619140625,
+ "z": 31.750480651855469
+ },
+ {
+ "x": 187.04389953613281,
+ "y": 6606.25390625,
+ "z": 31.751010894775391
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -94.461990356445312,
+ "y": 6419.59423828125,
+ "z": 31.489519119262695
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -97.033683776855469,
+ "y": 6416.826171875,
+ "z": 31.386800765991211
+ },
+ {
+ "x": -91.3159408569336,
+ "y": 6422.505859375,
+ "z": 31.342670440673828
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -2554.99609375,
+ "y": 2334.402099609375,
+ "z": 33.078029632568359
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -2551.4208984375,
+ "y": 2327.216064453125,
+ "z": 33.017440795898438
+ },
+ {
+ "x": -2558.01806640625,
+ "y": 2327.195068359375,
+ "z": 33.078041076660156
+ },
+ {
+ "x": -2558.60791015625,
+ "y": 2334.410888671875,
+ "z": 32.963539123535156
+ },
+ {
+ "x": -2552.719970703125,
+ "y": 2334.7060546875,
+ "z": 32.972648620605469
+ },
+ {
+ "x": -2552.409912109375,
+ "y": 2341.948974609375,
+ "z": 33.005199432373047
+ },
+ {
+ "x": -2558.843017578125,
+ "y": 2340.989013671875,
+ "z": 33.010990142822266
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -1800.375,
+ "y": 803.66192626953125,
+ "z": 138.65119934082031
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -1796.2939453125,
+ "y": 811.601806640625,
+ "z": 138.50579833984375
+ },
+ {
+ "x": -1790.8709716796875,
+ "y": 806.37408447265625,
+ "z": 138.20289611816406
+ },
+ {
+ "x": -1797.1510009765625,
+ "y": 800.720703125,
+ "z": 138.38909912109375
+ },
+ {
+ "x": -1802.280029296875,
+ "y": 806.30792236328125,
+ "z": 138.37510681152344
+ },
+ {
+ "x": -1808.656982421875,
+ "y": 799.99041748046875,
+ "z": 138.427001953125
+ },
+ {
+ "x": -1803.636962890625,
+ "y": 794.51141357421875,
+ "z": 138.40969848632813
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -1437.6219482421875,
+ "y": -276.74758911132812,
+ "z": 46.207710266113281
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -1444.3399658203125,
+ "y": -274.1885986328125,
+ "z": 46.119308471679688
+ },
+ {
+ "x": -1435.3900146484375,
+ "y": -284.62548828125,
+ "z": 46.122360229492188
+ },
+ {
+ "x": -1428.98095703125,
+ "y": -278.96749877929688,
+ "z": 46.108089447021484
+ },
+ {
+ "x": -1438.0030517578125,
+ "y": -268.39871215820312,
+ "z": 46.075351715087891
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -2096.242919921875,
+ "y": -320.28671264648438,
+ "z": 13.168569564819336
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -2089.239990234375,
+ "y": -327.372802734375,
+ "z": 13.028949737548828
+ },
+ {
+ "x": -2088.4560546875,
+ "y": -320.83160400390625,
+ "z": 12.974220275878906
+ },
+ {
+ "x": -2087.032958984375,
+ "y": -312.79739379882812,
+ "z": 12.906490325927734
+ },
+ {
+ "x": -2095.93310546875,
+ "y": -311.92739868164062,
+ "z": 12.90725040435791
+ },
+ {
+ "x": -2096.466064453125,
+ "y": -320.41830444335938,
+ "z": 13.028849601745606
+ },
+ {
+ "x": -2097.3359375,
+ "y": -326.397705078125,
+ "z": 12.88916015625
+ },
+ {
+ "x": -2105.950927734375,
+ "y": -325.5889892578125,
+ "z": 12.935210227966309
+ },
+ {
+ "x": -2105.10302734375,
+ "y": -319.01840209960938,
+ "z": 12.877900123596191
+ },
+ {
+ "x": -2104.419921875,
+ "y": -311.00900268554688,
+ "z": 12.933449745178223
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -724.61920166015625,
+ "y": -935.1630859375,
+ "z": 19.213859558105469
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -715.043212890625,
+ "y": -932.56378173828125,
+ "z": 19.07505989074707
+ },
+ {
+ "x": -715.4774169921875,
+ "y": -939.2255859375,
+ "z": 19.350490570068359
+ },
+ {
+ "x": -723.8599853515625,
+ "y": -939.2935791015625,
+ "z": 18.862829208374023
+ },
+ {
+ "x": -723.7554931640625,
+ "y": -932.4473876953125,
+ "z": 19.402450561523438
+ },
+ {
+ "x": -732.39312744140625,
+ "y": -932.56280517578125,
+ "z": 19.413459777832031
+ },
+ {
+ "x": -732.469970703125,
+ "y": -939.54620361328125,
+ "z": 18.945060729980469
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -526.019775390625,
+ "y": -1211.0030517578125,
+ "z": 18.184829711914062
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -518.49932861328125,
+ "y": -1209.4429931640625,
+ "z": 18.077829360961914
+ },
+ {
+ "x": -521.27471923828125,
+ "y": -1208.4019775390625,
+ "z": 18.061979293823242
+ },
+ {
+ "x": -526.128173828125,
+ "y": -1206.4019775390625,
+ "z": 18.068170547485352
+ },
+ {
+ "x": -528.5460205078125,
+ "y": -1204.93798828125,
+ "z": 18.089929580688477
+ },
+ {
+ "x": -532.3411865234375,
+ "y": -1212.7740478515625,
+ "z": 18.075939178466797
+ },
+ {
+ "x": -529.4605712890625,
+ "y": -1213.782958984375,
+ "z": 18.075889587402344
+ },
+ {
+ "x": -524.92578125,
+ "y": -1216.4420166015625,
+ "z": 18.039810180664062
+ },
+ {
+ "x": -522.18072509765625,
+ "y": -1217.3709716796875,
+ "z": 18.076009750366211
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -70.21484375,
+ "y": -1761.7919921875,
+ "z": 29.534019470214844
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -63.784229278564453,
+ "y": -1767.8070068359375,
+ "z": 29.5849609375
+ },
+ {
+ "x": -61.2121696472168,
+ "y": -1760.782958984375,
+ "z": 29.573970794677734
+ },
+ {
+ "x": -69.465591430664062,
+ "y": -1758.156982421875,
+ "z": 29.255090713500977
+ },
+ {
+ "x": -72.028778076171875,
+ "y": -1765.1300048828125,
+ "z": 29.238740921020508
+ },
+ {
+ "x": -80.310966491699219,
+ "y": -1762.1650390625,
+ "z": 29.508279800415039
+ },
+ {
+ "x": -77.669830322265625,
+ "y": -1755.0770263671875,
+ "z": 29.527690887451172
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 265.64840698242188,
+ "y": -1261.3089599609375,
+ "z": 29.292940139770508
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 273.88919067382812,
+ "y": -1268.60595703125,
+ "z": 29.508960723876953
+ },
+ {
+ "x": 273.91018676757812,
+ "y": -1261.3409423828125,
+ "z": 29.458410263061523
+ },
+ {
+ "x": 273.9552001953125,
+ "y": -1253.5550537109375,
+ "z": 29.004629135131836
+ },
+ {
+ "x": 265.08810424804688,
+ "y": -1253.458984375,
+ "z": 29.534889221191406
+ },
+ {
+ "x": 264.59759521484375,
+ "y": -1261.260986328125,
+ "z": 29.443119049072266
+ },
+ {
+ "x": 265.19259643554688,
+ "y": -1268.5030517578125,
+ "z": 29.069480895996094
+ },
+ {
+ "x": 256.46160888671875,
+ "y": -1268.6259765625,
+ "z": 29.551509857177734
+ },
+ {
+ "x": 256.51739501953125,
+ "y": -1261.2869873046875,
+ "z": 28.948049545288086
+ },
+ {
+ "x": 256.47250366210938,
+ "y": -1253.448974609375,
+ "z": 29.557689666748047
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 819.65380859375,
+ "y": -1028.845947265625,
+ "z": 26.403419494628906
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 826.75128173828125,
+ "y": -1026.1650390625,
+ "z": 26.357280731201172
+ },
+ {
+ "x": 826.7982177734375,
+ "y": -1030.967041015625,
+ "z": 26.429569244384766
+ },
+ {
+ "x": 819.14111328125,
+ "y": -1030.9969482421875,
+ "z": 26.229820251464844
+ },
+ {
+ "x": 819.15008544921875,
+ "y": -1026.3690185546875,
+ "z": 26.181209564208984
+ },
+ {
+ "x": 810.82037353515625,
+ "y": -1026.366943359375,
+ "z": 26.151189804077148
+ },
+ {
+ "x": 810.8690185546875,
+ "y": -1031.196044921875,
+ "z": 26.158199310302734
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 1208.9510498046875,
+ "y": -1402.5670166015625,
+ "z": 35.224189758300781
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 1210.22705078125,
+ "y": -1407.06494140625,
+ "z": 35.114448547363281
+ },
+ {
+ "x": 1213.0069580078125,
+ "y": -1404.0789794921875,
+ "z": 35.095840454101562
+ },
+ {
+ "x": 1207.0810546875,
+ "y": -1398.2960205078125,
+ "z": 35.157279968261719
+ },
+ {
+ "x": 1204.208984375,
+ "y": -1401.1009521484375,
+ "z": 35.131858825683594
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 1181.3809814453125,
+ "y": -330.84710693359375,
+ "z": 69.316513061523438
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 1186.4560546875,
+ "y": -338.14840698242188,
+ "z": 69.5254135131836
+ },
+ {
+ "x": 1179.0550537109375,
+ "y": -339.394287109375,
+ "z": 69.6856689453125
+ },
+ {
+ "x": 1177.467041015625,
+ "y": -331.177490234375,
+ "z": 68.971786499023438
+ },
+ {
+ "x": 1184.803955078125,
+ "y": -329.97158813476562,
+ "z": 69.489906311035156
+ },
+ {
+ "x": 1183.2239990234375,
+ "y": -321.36898803710938,
+ "z": 69.195938110351562
+ },
+ {
+ "x": 1175.6429443359375,
+ "y": -322.26959228515625,
+ "z": 68.982192993164062
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 620.8433837890625,
+ "y": 269.10089111328125,
+ "z": 103.08950042724609
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 629.555419921875,
+ "y": 263.85690307617188,
+ "z": 103.02239990234375
+ },
+ {
+ "x": 629.37908935546875,
+ "y": 273.95458984375,
+ "z": 102.99870300292969
+ },
+ {
+ "x": 620.789794921875,
+ "y": 273.88861083984375,
+ "z": 102.99880218505859
+ },
+ {
+ "x": 612.34820556640625,
+ "y": 274.08468627929688,
+ "z": 103.00430297851563
+ },
+ {
+ "x": 612.27130126953125,
+ "y": 263.88848876953125,
+ "z": 102.99179840087891
+ },
+ {
+ "x": 620.9271240234375,
+ "y": 263.83108520507812,
+ "z": 103.02510070800781
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 2581.321044921875,
+ "y": 362.039306640625,
+ "z": 108.46880340576172
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 2588.462890625,
+ "y": 358.53900146484375,
+ "z": 108.39579772949219
+ },
+ {
+ "x": 2589.12890625,
+ "y": 363.90438842773438,
+ "z": 108.39949798583984
+ },
+ {
+ "x": 2581.26611328125,
+ "y": 364.24551391601562,
+ "z": 108.39980316162109
+ },
+ {
+ "x": 2581.087890625,
+ "y": 358.8944091796875,
+ "z": 108.37239837646484
+ },
+ {
+ "x": 2573.717041015625,
+ "y": 359.02780151367188,
+ "z": 108.36150360107422
+ },
+ {
+ "x": 2573.843994140625,
+ "y": 364.69720458984375,
+ "z": 108.39579772949219
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 1785.363037109375,
+ "y": 3330.3720703125,
+ "z": 41.381881713867188
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 1785.89501953125,
+ "y": 3330.16796875,
+ "z": 41.345619201660156
+ },
+ {
+ "x": 1785.14501953125,
+ "y": 3331.251953125,
+ "z": 41.381229400634766
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -319.69000244140625,
+ "y": -1471.6099853515625,
+ "z": 30.030000686645508
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -310.3699951171875,
+ "y": -1472.030029296875,
+ "z": 30.719999313354492
+ },
+ {
+ "x": -315.45999145507812,
+ "y": -1463.27001953125,
+ "z": 30.719999313354492
+ },
+ {
+ "x": -321.79998779296875,
+ "y": -1467.030029296875,
+ "z": 30.719999313354492
+ },
+ {
+ "x": -316.67999267578125,
+ "y": -1475.93994140625,
+ "z": 30.719999313354492
+ },
+ {
+ "x": -324.22000122070312,
+ "y": -1480.1700439453125,
+ "z": 30.719999313354492
+ },
+ {
+ "x": -329.30999755859375,
+ "y": -1471.3499755859375,
+ "z": 30.719999313354492
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 174.8800048828125,
+ "y": -1562.449951171875,
+ "z": 28.739999771118164
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 169.64999389648438,
+ "y": -1562.6800537109375,
+ "z": 29.319999694824219
+ },
+ {
+ "x": 176.41999816894531,
+ "y": -1556.280029296875,
+ "z": 29.319999694824219
+ },
+ {
+ "x": 181.38999938964844,
+ "y": -1561.56005859375,
+ "z": 29.319999694824219
+ },
+ {
+ "x": 174.63999938964844,
+ "y": -1567.68994140625,
+ "z": 29.319999694824219
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 1246.47998046875,
+ "y": -1485.449951171875,
+ "z": 34.900001525878906
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": 1246.1600341796875,
+ "y": -1488.1500244140625,
+ "z": 34.900001525878906
+ },
+ {
+ "x": 1246.47998046875,
+ "y": -1482.760009765625,
+ "z": 34.900001525878906
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -66.330001831054688,
+ "y": -2532.570068359375,
+ "z": 6.1399998664855957
+ },
+ "type": "VEHICLE",
+ "pumps": [
+ {
+ "x": -64.25,
+ "y": -2533.89990234375,
+ "z": 6.1399998664855957
+ },
+ {
+ "x": -68.720001220703125,
+ "y": -2530.7099609375,
+ "z": 6.1399998664855957
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -462.9,
+ "y": 5996.21,
+ "z": 31.25
+ },
+ "type": "HELIPAD",
+ "pumps": [
+ {
+ "x": -475.34,
+ "y": 5988.62,
+ "z": 31.34
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -1164.8,
+ "y": -2837.93,
+ "z": 14.49
+ },
+ "type": "HELIPAD",
+ "pumps": [
+ {
+ "x": -1178.45,
+ "y": -2845.79,
+ "z": 13.95
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 2506.76,
+ "y": -345.04,
+ "z": 118.03
+ },
+ "type": "HELIPAD",
+ "pumps": [
+ {
+ "x": 2510.76,
+ "y": -342.04,
+ "z": 118.19
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": 2515.03,
+ "y": -423.05,
+ "z": 118.03
+ },
+ "type": "HELIPAD",
+ "pumps": [
+ {
+ "x": 2511.32,
+ "y": -426.75,
+ "z": 118.19
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -1879.74,
+ "y": 2817.03,
+ "z": 32.81
+ },
+ "type": "HELIPAD",
+ "pumps": [
+ {
+ "x": -1877.07,
+ "y": 2805.6,
+ "z": 32.81
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -1111.43,
+ "y": -2870.02,
+ "z": 14.57
+ },
+ "type": "HELIPAD",
+ "pumps": [
+ {
+ "x": -1112.34,
+ "y": -2883.72,
+ "z": 13.95
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -1133.58,
+ "y": -2860.39,
+ "z": 13.95
+ },
+ "type": "HELIPAD",
+ "pumps": [
+ {
+ "x": -1145.85,
+ "y": -2864.52,
+ "z": 13.95
+ }
+ ]
+ },
+ {
+ "coordinates": {
+ "x": -735.29,
+ "y": -1456.16,
+ "z": 5.0
+ },
+ "type": "HELIPAD",
+ "pumps": [
+ {
+ "x": -724.67,
+ "y": -1443.87,
+ "z": 4.77
+ },
+ {
+ "x": -745.31,
+ "y": -1468.5,
+ "z": 4.77
+ }
+ ]
+ }
+]
diff --git a/resources/rhud/data/hud_colors.json b/resources/rhud/data/hud_colors.json
new file mode 100644
index 000000000..e69de29bb
diff --git a/resources/rhud/data/hud_layout.json b/resources/rhud/data/hud_layout.json
new file mode 100644
index 000000000..e69de29bb
diff --git a/resources/rhud/data/postals.json b/resources/rhud/data/postals.json
new file mode 100644
index 000000000..41fc33360
--- /dev/null
+++ b/resources/rhud/data/postals.json
@@ -0,0 +1,949 @@
+[
+ { "code": "001", "x": 57.89, "y": 7211.67 },
+ { "code": "002", "x": 172.54, "y": 7081.23 },
+ { "code": "003", "x": 76.15, "y": 7029.15 },
+ { "code": "004", "x": 25.68, "y": 6932.96 },
+ { "code": "005", "x": -23.9, "y": 6827.66 },
+ { "code": "006", "x": -145.14, "y": 6694.67 },
+ { "code": "007", "x": -251.08, "y": 6601.97 },
+ { "code": "008", "x": -394.35, "y": 6477.06 },
+ { "code": "009", "x": -570.22, "y": 6382.9 },
+ { "code": "010", "x": -633.46, "y": 6220.69 },
+ { "code": "011", "x": -709.76, "y": 6075.05 },
+ { "code": "012", "x": -903.97, "y": 6072.72 },
+ { "code": "013", "x": -861.44, "y": 5844.49 },
+ { "code": "014", "x": -623.76, "y": 5997.66 },
+ { "code": "015", "x": -525.06, "y": 6078.38 },
+ { "code": "016", "x": -430.73, "y": 6192.11 },
+ { "code": "017", "x": -396.38, "y": 6304.3 },
+ { "code": "018", "x": -368.71, "y": 6233.51 },
+ { "code": "019", "x": -303.82, "y": 6302.86 },
+ { "code": "020", "x": -304.58, "y": 6401.62 },
+ { "code": "021", "x": -228.62, "y": 6355.59 },
+ { "code": "022", "x": -218.21, "y": 6476.59 },
+ { "code": "023", "x": -168.89, "y": 6418.74 },
+ { "code": "024", "x": -114.92, "y": 6476.28 },
+ { "code": "025", "x": -134.09, "y": 6573.65 },
+ { "code": "026", "x": -42.11, "y": 6539.46 },
+ { "code": "027", "x": -30.83, "y": 6663.89 },
+ { "code": "028", "x": 13.86, "y": 6604.19 },
+ { "code": "029", "x": 73.57, "y": 6665.23 },
+ { "code": "030", "x": 118.83, "y": 6715.27 },
+ { "code": "031", "x": 181.68, "y": 6809.31 },
+ { "code": "032", "x": 148.63, "y": 6922.68 },
+ { "code": "033", "x": 265.31, "y": 6975.17 },
+ { "code": "034", "x": 325.13, "y": 6756.43 },
+ { "code": "035", "x": 450.5, "y": 4759.4 },
+ { "code": "036", "x": 660.39, "y": 6670.97 },
+ { "code": "037", "x": 448.78, "y": 6602.62 },
+ { "code": "038", "x": 335.11, "y": 6614.65 },
+ { "code": "039", "x": 150.02, "y": 6560.44 },
+ { "code": "040", "x": 69.32, "y": 6521.53 },
+ { "code": "041", "x": -6.09, "y": 6442.76 },
+ { "code": "042", "x": -99.33, "y": 6354.11 },
+ { "code": "043", "x": -169.79, "y": 6289.96 },
+ { "code": "044", "x": -251.39, "y": 6219.75 },
+ { "code": "045", "x": -306.27, "y": 6156.01 },
+ { "code": "046", "x": -375.67, "y": 6078.64 },
+ { "code": "047", "x": -444.36, "y": 5988.98 },
+ { "code": "048", "x": -584.2, "y": 5854.94 },
+ { "code": "049", "x": -688.64, "y": 5804.39 },
+ { "code": "050", "x": -899.58, "y": 5638.4 },
+ { "code": "051", "x": -821.2, "y": 5512.87 },
+ { "code": "052", "x": -629.87, "y": 5418.77 },
+ { "code": "053", "x": -567.56, "y": 5229.46 },
+ { "code": "054", "x": -448.44, "y": 5468.99 },
+ { "code": "055", "x": -681.06, "y": 5611.25 },
+ { "code": "056", "x": -610.81, "y": 5711.33 },
+ { "code": "057", "x": -438.23, "y": 5750.86 },
+ { "code": "058", "x": -343.16, "y": 5922.1 },
+ { "code": "059", "x": -234.65, "y": 6033.36 },
+ { "code": "060", "x": -145.71, "y": 6147.65 },
+ { "code": "061", "x": -42.97, "y": 6252.56 },
+ { "code": "062", "x": 38.74, "y": 6332.67 },
+ { "code": "063", "x": 115.89, "y": 6420.15 },
+ { "code": "064", "x": 192.21, "y": 6491.39 },
+ { "code": "065", "x": 355.27, "y": 6489.52 },
+ { "code": "066", "x": 601.04, "y": 6471.41 },
+ { "code": "067", "x": 932.59, "y": 6521.57 },
+ { "code": "068", "x": 1307.83, "y": 6554.15 },
+ { "code": "069", "x": 1550.26, "y": 6559.9 },
+ { "code": "070", "x": 1837.29, "y": 6397.23 },
+ { "code": "071", "x": 2298.39, "y": 6467.69 },
+ { "code": "072", "x": 2240.47, "y": 6023.38 },
+ { "code": "073", "x": 2587.95, "y": 6205.46 },
+ { "code": "074", "x": 2885.42, "y": 6294.17 },
+ { "code": "075", "x": 3091.28, "y": 6024.59 },
+ { "code": "076", "x": 2895.68, "y": 5872.12 },
+ { "code": "077", "x": 3044.11, "y": 5695.73 },
+ { "code": "078", "x": 3328.69, "y": 5822.06 },
+ { "code": "079", "x": 2963.18, "y": 5457.04 },
+ { "code": "080", "x": 3326.21, "y": 5474.35 },
+ { "code": "081", "x": 3334.97, "y": 5168.36 },
+ { "code": "082", "x": 3064.34, "y": 5042.39 },
+ { "code": "083", "x": 3443.34, "y": 4862.81 },
+ { "code": "084", "x": 3534.23, "y": 4546.99 },
+ { "code": "085", "x": 3705.83, "y": 4669.16 },
+ { "code": "086", "x": 3806.87, "y": 4435.14 },
+ { "code": "087", "x": 2947.56, "y": 4505.06 },
+ { "code": "088", "x": 2836.24, "y": 4455.4 },
+ { "code": "089", "x": 2731.01, "y": 4418.96 },
+ { "code": "090", "x": 2496.03, "y": 4251.8 },
+ { "code": "091", "x": 2528.88, "y": 4363.12 },
+ { "code": "092", "x": 2593.88, "y": 4448.93 },
+ { "code": "093", "x": 2528.93, "y": 4510.75 },
+ { "code": "094", "x": 2636.37, "y": 4586.2 },
+ { "code": "095", "x": 2870.02, "y": 4624.01 },
+ { "code": "096", "x": 2512.41, "y": 4628.08 },
+ { "code": "097", "x": 2634.24, "y": 4735.99 },
+ { "code": "098", "x": 2791.47, "y": 4752.84 },
+ { "code": "099", "x": 2773.51, "y": 4856.56 },
+ { "code": "100", "x": 2692.28, "y": 5082.1 },
+ { "code": "101", "x": 2606.59, "y": 4897.68 },
+ { "code": "102", "x": 2494.2, "y": 4846.48 },
+ { "code": "103", "x": 2441.59, "y": 4755.96 },
+ { "code": "104", "x": 2338.03, "y": 4740.14 },
+ { "code": "105", "x": 2261.15, "y": 4866.39 },
+ { "code": "106", "x": 2369.39, "y": 4982.64 },
+ { "code": "107", "x": 2540.47, "y": 5018.17 },
+ { "code": "108", "x": 2326.14, "y": 5132.18 },
+ { "code": "109", "x": 2202.27, "y": 5039.3 },
+ { "code": "110", "x": 2128.07, "y": 4805.61 },
+ { "code": "111", "x": 2005.55, "y": 4700.66 },
+ { "code": "112", "x": 1790.62, "y": 4662.87 },
+ { "code": "113", "x": 1679.17, "y": 4599.12 },
+ { "code": "114", "x": 1664.38, "y": 4748.8 },
+ { "code": "115", "x": 1723.69, "y": 4819.7 },
+ { "code": "116", "x": 1611.94, "y": 4931.3 },
+ { "code": "117", "x": 1795.1, "y": 4980.69 },
+ { "code": "118", "x": 1901.41, "y": 4842.89 },
+ { "code": "119", "x": 2065.88, "y": 4938.06 },
+ { "code": "120", "x": 1971.57, "y": 5005.72 },
+ { "code": "121", "x": 1907.1, "y": 5084.3 },
+ { "code": "122", "x": 2055.57, "y": 5112.65 },
+ { "code": "123", "x": 2153.84, "y": 5184.16 },
+ { "code": "124", "x": 2342.41, "y": 5353.43 },
+ { "code": "125", "x": 2459.5, "y": 5443.8 },
+ { "code": "126", "x": 2233.92, "y": 5800.04 },
+ { "code": "127", "x": 2187.95, "y": 5593.41 },
+ { "code": "128", "x": 1979.15, "y": 5377.7 },
+ { "code": "129", "x": 1532.13, "y": 5493.4 },
+ { "code": "130", "x": 1754.86, "y": 5852.15 },
+ { "code": "131", "x": 1525.65, "y": 6340.34 },
+ { "code": "132", "x": 1175.32, "y": 6137.02 },
+ { "code": "133", "x": 1385.66, "y": 5787.35 },
+ { "code": "134", "x": 1241.26, "y": 5564.52 },
+ { "code": "135", "x": 960.89, "y": 5661.43 },
+ { "code": "136", "x": 893.5, "y": 5012.54 },
+ { "code": "137", "x": 1438.35, "y": 4520.35 },
+ { "code": "138", "x": 1335.03, "y": 4352.95 },
+ { "code": "139", "x": 958.47, "y": 4450.7 },
+ { "code": "140", "x": 1274.12, "y": 3969.31 },
+ { "code": "141", "x": 745.94, "y": 4220.98 },
+ { "code": "142", "x": 464.76, "y": 4341.6 },
+ { "code": "143", "x": 715.34, "y": 5687.82 },
+ { "code": "144", "x": 466.13, "y": 5539.82 },
+ { "code": "145", "x": 292.11, "y": 5354.13 },
+ { "code": "146", "x": 74.91, "y": 5025.73 },
+ { "code": "147", "x": -128.3, "y": 4908.64 },
+ { "code": "148", "x": -338.0, "y": 4990.13 },
+ { "code": "149", "x": -494.47, "y": 4919.21 },
+ { "code": "150", "x": -720.81, "y": 5161.61 },
+ { "code": "151", "x": -925.71, "y": 5285.82 },
+ { "code": "152", "x": -1027.29, "y": 5384.67 },
+ { "code": "153", "x": -1326.5, "y": 5331.36 },
+ { "code": "154", "x": -1594.96, "y": 5162.34 },
+ { "code": "155", "x": -1505.05, "y": 5055.39 },
+ { "code": "156", "x": -1846.65, "y": 4808.05 },
+ { "code": "157", "x": -1720.84, "y": 4852.07 },
+ { "code": "158", "x": -1618.49, "y": 4788.35 },
+ { "code": "159", "x": -1703.09, "y": 4625.51 },
+ { "code": "160", "x": -1573.67, "y": 4592.37 },
+ { "code": "161", "x": -1380.21, "y": 4790.99 },
+ { "code": "162", "x": -1235.08, "y": 4940.79 },
+ { "code": "163", "x": -950.65, "y": 5091.73 },
+ { "code": "164", "x": -800.21, "y": 4896.16 },
+ { "code": "165", "x": -1015.02, "y": 4841.03 },
+ { "code": "166", "x": -1161.08, "y": 4798.02 },
+ { "code": "167", "x": -1265.22, "y": 4640.58 },
+ { "code": "168", "x": -1190.79, "y": 4504.04 },
+ { "code": "169", "x": -996.28, "y": 4684.9 },
+ { "code": "170", "x": -859.73, "y": 4520.98 },
+ { "code": "171", "x": -646.86, "y": 4701.5 },
+ { "code": "172", "x": -354.74, "y": 4672.88 },
+ { "code": "173", "x": -153.34, "y": 4628.94 },
+ { "code": "174", "x": -433.49, "y": 4518.1 },
+ { "code": "175", "x": 153.47, "y": 4451.1 },
+ { "code": "176", "x": -125.41, "y": 4325.8 },
+ { "code": "177", "x": -256.17, "y": 4114.77 },
+ { "code": "178", "x": -181.08, "y": 3904.16 },
+ { "code": "179", "x": -193.58, "y": 3653.89 },
+ { "code": "180", "x": 54.86, "y": 3712.61 },
+ { "code": "181", "x": 89.76, "y": 3429.12 },
+ { "code": "182", "x": -771.48, "y": 3675.12 },
+ { "code": "183", "x": -552.84, "y": 3989.58 },
+ { "code": "184", "x": -529.37, "y": 4216.78 },
+ { "code": "185", "x": -723.05, "y": 4357.47 },
+ { "code": "186", "x": -747.76, "y": 4181.3 },
+ { "code": "187", "x": -781.41, "y": 4034.06 },
+ { "code": "188", "x": -958.63, "y": 4130.36 },
+ { "code": "189", "x": -974.43, "y": 4302.33 },
+ { "code": "190", "x": -1377.25, "y": 4231.99 },
+ { "code": "191", "x": -1547.75, "y": 4221.53 },
+ { "code": "192", "x": -1547.75, "y": 4343.62 },
+ { "code": "193", "x": -1960.33, "y": 4455.51 },
+ { "code": "194", "x": -2253.77, "y": 4360.98 },
+ { "code": "195", "x": -2408.12, "y": 4217.1 },
+ { "code": "196", "x": -2458.83, "y": 3925.76 },
+ { "code": "197", "x": -1867.44, "y": 3885.44 },
+ { "code": "198", "x": -2453.29, "y": 3585.15 },
+ { "code": "199", "x": -2975.78, "y": 3449.48 },
+ { "code": "200", "x": -2737.56, "y": 3271.86 },
+ { "code": "201", "x": -2544.73, "y": 3212.66 },
+ { "code": "202", "x": -2434.53, "y": 3279.84 },
+ { "code": "203", "x": -2284.76, "y": 3223.02 },
+ { "code": "204", "x": -2134.92, "y": 3266.29 },
+ { "code": "205", "x": -1934.8, "y": 3299.99 },
+ { "code": "206", "x": -2005.45, "y": 3192.76 },
+ { "code": "207", "x": -1806.94, "y": 3231.34 },
+ { "code": "208", "x": -1893.32, "y": 3137.5 },
+ { "code": "209", "x": -1769.69, "y": 3075.26 },
+ { "code": "210", "x": -1676.56, "y": 2875.06 },
+ { "code": "211", "x": -1826.59, "y": 2948.89 },
+ { "code": "212", "x": -1852.17, "y": 2800.7 },
+ { "code": "213", "x": -2006.89, "y": 2936.98 },
+ { "code": "214", "x": -2198.22, "y": 3056.33 },
+ { "code": "215", "x": -2651.79, "y": 3025.09 },
+ { "code": "216", "x": -2591.23, "y": 2662.61 },
+ { "code": "217", "x": -2114.57, "y": 2770.27 },
+ { "code": "218", "x": -1914.7, "y": 2663.94 },
+ { "code": "219", "x": -1435.46, "y": 2713.75 },
+ { "code": "220", "x": -1185.16, "y": 3195.94 },
+ { "code": "221", "x": -842.99, "y": 2877.72 },
+ { "code": "222", "x": -472.87, "y": 3012.54 },
+ { "code": "223", "x": -40.25, "y": 3174.39 },
+ { "code": "224", "x": -19.32, "y": 3025.11 },
+ { "code": "225", "x": -43.38, "y": 2893.33 },
+ { "code": "226", "x": 23.05, "y": 2793.75 },
+ { "code": "227", "x": 221.51, "y": 2595.1 },
+ { "code": "228", "x": 192.35, "y": 2783.61 },
+ { "code": "229", "x": 168.79, "y": 2929.38 },
+ { "code": "230", "x": 187.76, "y": 3076.21 },
+ { "code": "231", "x": 246.54, "y": 3166.64 },
+ { "code": "232", "x": 283.93, "y": 3295.01 },
+ { "code": "233", "x": 340.06, "y": 3419.47 },
+ { "code": "234", "x": 336.11, "y": 3561.7 },
+ { "code": "235", "x": 463.06, "y": 3546.76 },
+ { "code": "236", "x": 649.94, "y": 3494.21 },
+ { "code": "237", "x": 596.35, "y": 3188.79 },
+ { "code": "238", "x": 517.98, "y": 3067.01 },
+ { "code": "239", "x": 408.01, "y": 2971.12 },
+ { "code": "240", "x": 504.89, "y": 2922.92 },
+ { "code": "241", "x": 402.64, "y": 2637.19 },
+ { "code": "242", "x": 567.87, "y": 2662.96 },
+ { "code": "243", "x": 766.57, "y": 2674.13 },
+ { "code": "244", "x": 599.84, "y": 2763.13 },
+ { "code": "245", "x": 635.93, "y": 2863.62 },
+ { "code": "246", "x": 784.49, "y": 2782.08 },
+ { "code": "247", "x": 958.92, "y": 2738.86 },
+ { "code": "248", "x": 866.14, "y": 2845.96 },
+ { "code": "249", "x": 648.19, "y": 3002.75 },
+ { "code": "250", "x": 954.99, "y": 3101.21 },
+ { "code": "251", "x": 836.58, "y": 3559.73 },
+ { "code": "252", "x": 884.9, "y": 3654.92 },
+ { "code": "253", "x": 1162.1, "y": 3652.9 },
+ { "code": "254", "x": 1121.66, "y": 3583.6 },
+ { "code": "255", "x": 1053.11, "y": 3492.21 },
+ { "code": "256", "x": 1021.71, "y": 3266.81 },
+ { "code": "257", "x": 1139.54, "y": 3102.91 },
+ { "code": "258", "x": 1177.44, "y": 2951.99 },
+ { "code": "259", "x": 1122.24, "y": 2835.07 },
+ { "code": "260", "x": 1188.7, "y": 2717.35 },
+ { "code": "261", "x": 1230.74, "y": 2867.29 },
+ { "code": "262", "x": 1349.07, "y": 2764.98 },
+ { "code": "263", "x": 1481.51, "y": 2818.56 },
+ { "code": "264", "x": 1584.35, "y": 2944.18 },
+ { "code": "265", "x": 1760.43, "y": 3056.04 },
+ { "code": "266", "x": 1634.04, "y": 3232.29 },
+ { "code": "267", "x": 1273.09, "y": 3202.52 },
+ { "code": "268", "x": 1346.7, "y": 3336.23 },
+ { "code": "269", "x": 1291.83, "y": 3520.35 },
+ { "code": "270", "x": 1399.23, "y": 3742.55 },
+ { "code": "271", "x": 1387.26, "y": 3632.82 },
+ { "code": "272", "x": 1512.72, "y": 3669.19 },
+ { "code": "273", "x": 1439.06, "y": 3545.85 },
+ { "code": "274", "x": 1565.14, "y": 3602.42 },
+ { "code": "275", "x": 1626.77, "y": 3516.19 },
+ { "code": "276", "x": 1579.6, "y": 3448.5 },
+ { "code": "277", "x": 1741.61, "y": 3357.36 },
+ { "code": "278", "x": 1854.22, "y": 3168.5 },
+ { "code": "279", "x": 1996.62, "y": 3039.96 },
+ { "code": "280", "x": 2047.51, "y": 3200.55 },
+ { "code": "281", "x": 1904.99, "y": 3457.81 },
+ { "code": "282", "x": 1802.43, "y": 3538.14 },
+ { "code": "283", "x": 1740.73, "y": 3625.12 },
+ { "code": "284", "x": 1732.24, "y": 3692.48 },
+ { "code": "285", "x": 1670.88, "y": 3738.2 },
+ { "code": "286", "x": 1623.83, "y": 3802.13 },
+ { "code": "287", "x": 1526.92, "y": 3803.97 },
+ { "code": "288", "x": 1650.97, "y": 3901.32 },
+ { "code": "289", "x": 1719.38, "y": 3864.03 },
+ { "code": "290", "x": 1816.43, "y": 3978.32 },
+ { "code": "291", "x": 1805.62, "y": 3904.56 },
+ { "code": "292", "x": 1840.21, "y": 3843.06 },
+ { "code": "293", "x": 1876.26, "y": 3780.74 },
+ { "code": "294", "x": 1899.93, "y": 3719.14 },
+ { "code": "295", "x": 1910.23, "y": 3899.01 },
+ { "code": "296", "x": 1955.25, "y": 3830.28 },
+ { "code": "297", "x": 1988.14, "y": 3766.92 },
+ { "code": "298", "x": 1992.02, "y": 3957.18 },
+ { "code": "299", "x": 2141.91, "y": 3850.78 },
+ { "code": "300", "x": 1994.84, "y": 3662.25 },
+ { "code": "301", "x": 2051.09, "y": 3566.75 },
+ { "code": "302", "x": 2052.41, "y": 3443.15 },
+ { "code": "303", "x": 2194.1, "y": 3501.33 },
+ { "code": "304", "x": 2200.48, "y": 3310.78 },
+ { "code": "305", "x": 2351.49, "y": 3122.77 },
+ { "code": "306", "x": 2423.53, "y": 3045.98 },
+ { "code": "307", "x": 2594.44, "y": 3164.32 },
+ { "code": "308", "x": 2669.28, "y": 3283.55 },
+ { "code": "309", "x": 2385.78, "y": 3354.56 },
+ { "code": "310", "x": 2385.78, "y": 3571.64 },
+ { "code": "311", "x": 2305.27, "y": 3842.99 },
+ { "code": "312", "x": 2527.37, "y": 3690.77 },
+ { "code": "313", "x": 2710.74, "y": 3491.29 },
+ { "code": "314", "x": 2841.03, "y": 3695.84 },
+ { "code": "315", "x": 2762.48, "y": 3798.35 },
+ { "code": "316", "x": 2551.3, "y": 3895.58 },
+ { "code": "317", "x": 2520.05, "y": 4089.98 },
+ { "code": "318", "x": 2715.41, "y": 4153.64 },
+ { "code": "319", "x": 2702.27, "y": 4301.47 },
+ { "code": "320", "x": 2897.97, "y": 4333.22 },
+ { "code": "321", "x": 3371.87, "y": 4302.2 },
+ { "code": "322", "x": 3048.75, "y": 4145.16 },
+ { "code": "323", "x": 3015.51, "y": 3898.88 },
+ { "code": "324", "x": 3015.51, "y": 3493.43 },
+ { "code": "325", "x": 3261.77, "y": 3613.51 },
+ { "code": "326", "x": 3424.61, "y": 3782.11 },
+ { "code": "327", "x": 3600.08, "y": 3703.58 },
+ { "code": "328", "x": 3456.19, "y": 3611.65 },
+ { "code": "329", "x": 3415.57, "y": 3256.18 },
+ { "code": "330", "x": 3004.31, "y": 2932.98 },
+ { "code": "331", "x": 2944.84, "y": 2791.27 },
+ { "code": "332", "x": 2928.26, "y": 2343.41 },
+ { "code": "333", "x": 2686.06, "y": 2864.83 },
+ { "code": "334", "x": 2581.15, "y": 2731.1 },
+ { "code": "335", "x": 2615.45, "y": 2475.37 },
+ { "code": "336", "x": 2604.3, "y": 2165.59 },
+ { "code": "337", "x": 2531.06, "y": 1958.04 },
+ { "code": "338", "x": 2531.06, "y": 1762.78 },
+ { "code": "339", "x": 2565.56, "y": 1626.92 },
+ { "code": "340", "x": 2748.79, "y": 1678.33 },
+ { "code": "341", "x": 2894.18, "y": 1531.8 },
+ { "code": "342", "x": 2815.04, "y": 1424.35 },
+ { "code": "343", "x": 2759.04, "y": 1553.03 },
+ { "code": "344", "x": 2676.05, "y": 1483.98 },
+ { "code": "345", "x": 2359.49, "y": 1258.14 },
+ { "code": "346", "x": 2451.25, "y": 1514.58 },
+ { "code": "347", "x": 2326.57, "y": 1654.3 },
+ { "code": "348", "x": 2203.26, "y": 1874.55 },
+ { "code": "349", "x": 2372.05, "y": 1834.46 },
+ { "code": "350", "x": 2023.27, "y": 1838.34 },
+ { "code": "351", "x": 2264.4, "y": 2010.62 },
+ { "code": "352", "x": 1822.93, "y": 2022.26 },
+ { "code": "353", "x": 1995.83, "y": 2091.57 },
+ { "code": "354", "x": 2372.37, "y": 2220.55 },
+ { "code": "355", "x": 2458.4, "y": 2372.42 },
+ { "code": "356", "x": 2348.37, "y": 2559.84 },
+ { "code": "357", "x": 2213.8, "y": 2410.46 },
+ { "code": "358", "x": 2006.63, "y": 2320.23 },
+ { "code": "359", "x": 2055.65, "y": 2564.7 },
+ { "code": "360", "x": 2164.26, "y": 2838.67 },
+ { "code": "361", "x": 1911.85, "y": 2920.68 },
+ { "code": "362", "x": 1954.34, "y": 2661.71 },
+ { "code": "363", "x": 1732.89, "y": 2828.55 },
+ { "code": "364", "x": 1600.5, "y": 2689.46 },
+ { "code": "365", "x": 1674.55, "y": 2605.99 },
+ { "code": "366", "x": 1779.12, "y": 2441.1 },
+ { "code": "367", "x": 1556.98, "y": 2172.97 },
+ { "code": "368", "x": 1527.86, "y": 1924.02 },
+ { "code": "369", "x": 1139.68, "y": 2109.46 },
+ { "code": "370", "x": 1028.77, "y": 2374.12 },
+ { "code": "371", "x": 898.52, "y": 2508.2 },
+ { "code": "372", "x": 716.86, "y": 2545.32 },
+ { "code": "373", "x": 533.53, "y": 2487.17 },
+ { "code": "374", "x": 329.27, "y": 2273.94 },
+ { "code": "375", "x": 195.2, "y": 2282.75 },
+ { "code": "376", "x": -140.08, "y": 2691.32 },
+ { "code": "377", "x": -292.11, "y": 2814.15 },
+ { "code": "378", "x": -269.0, "y": 2932.39 },
+ { "code": "379", "x": -502.53, "y": 2744.55 },
+ { "code": "380", "x": -295.69, "y": 2557.81 },
+ { "code": "381", "x": -184.75, "y": 2326.57 },
+ { "code": "382", "x": -54.18, "y": 2133.54 },
+ { "code": "383", "x": -263.45, "y": 1966.37 },
+ { "code": "384", "x": -466.55, "y": 1882.76 },
+ { "code": "385", "x": -472.1, "y": 1593.74 },
+ { "code": "386", "x": -302.09, "y": 1433.46 },
+ { "code": "387", "x": -176.54, "y": 1274.05 },
+ { "code": "388", "x": -428.33, "y": 1048.08 },
+ { "code": "389", "x": -412.64, "y": 1217.61 },
+ { "code": "390", "x": -725.63, "y": 1204.88 },
+ { "code": "391", "x": -955.38, "y": 1161.6 },
+ { "code": "392", "x": -1183.27, "y": 979.24 },
+ { "code": "393", "x": -1580.86, "y": 996.4 },
+ { "code": "394", "x": -808.26, "y": 1441.17 },
+ { "code": "395", "x": -1169.92, "y": 1579.6 },
+ { "code": "396", "x": -719.51, "y": 1650.5 },
+ { "code": "397", "x": -835.67, "y": 1733.94 },
+ { "code": "398", "x": -777.11, "y": 1938.28 },
+ { "code": "399", "x": -1030.52, "y": 2134.13 },
+ { "code": "400", "x": -563.53, "y": 2045.54 },
+ { "code": "401", "x": -737.15, "y": 2305.72 },
+ { "code": "402", "x": -713.98, "y": 2571.19 },
+ { "code": "403", "x": -971.0, "y": 2666.38 },
+ { "code": "404", "x": -1260.43, "y": 2508.38 },
+ { "code": "405", "x": -1306.21, "y": 2281.97 },
+ { "code": "406", "x": -1576.52, "y": 2113.22 },
+ { "code": "407", "x": -1635.41, "y": 2404.02 },
+ { "code": "408", "x": -1688.19, "y": 2289.79 },
+ { "code": "409", "x": -1827.33, "y": 2193.61 },
+ { "code": "410", "x": -1708.82, "y": 1958.66 },
+ { "code": "411", "x": -1429.92, "y": 1828.01 },
+ { "code": "412", "x": -1606.78, "y": 1380.87 },
+ { "code": "413", "x": -2087.62, "y": 1465.3 },
+ { "code": "414", "x": -1904.95, "y": 1903.11 },
+ { "code": "415", "x": -2038.51, "y": 1989.75 },
+ { "code": "416", "x": -2104.03, "y": 2286.66 },
+ { "code": "417", "x": -2242.48, "y": 1903.77 },
+ { "code": "418", "x": -2560.93, "y": 2310.59 },
+ { "code": "419", "x": -2756.31, "y": 2280.4 },
+ { "code": "420", "x": -2499.99, "y": 2060.99 },
+ { "code": "421", "x": -2558.26, "y": 1912.17 },
+ { "code": "422", "x": -2589.18, "y": 1610.87 },
+ { "code": "423", "x": -3087.15, "y": 1775.35 },
+ { "code": "424", "x": -2954.66, "y": 1502.93 },
+ { "code": "425", "x": -2786.93, "y": 1428.99 },
+ { "code": "426", "x": 3217.53, "y": 1270.12 },
+ { "code": "427", "x": -3089.91, "y": 1208.04 },
+ { "code": "428", "x": -2683.52, "y": 1156.31 },
+ { "code": "429", "x": -2309.19, "y": 1065.42 },
+ { "code": "430", "x": -1735.24, "y": 824.73 },
+ { "code": "431", "x": -1990.6, "y": 744.98 },
+ { "code": "432", "x": -2637.86, "y": 533.22 },
+ { "code": "433", "x": -3268.92, "y": 1097.1 },
+ { "code": "434", "x": -3438.82, "y": 981.73 },
+ { "code": "435", "x": -3200.35, "y": 892.91 },
+ { "code": "436", "x": -3124.27, "y": 683.56 },
+ { "code": "437", "x": -3047.42, "y": 504.2 },
+ { "code": "438", "x": -3118.98, "y": 333.27 },
+ { "code": "439", "x": -3078.07, "y": 126.92 },
+ { "code": "440", "x": -2829.01, "y": -9.39 },
+ { "code": "441", "x": 2550.93, "y": -232.52 },
+ { "code": "442", "x": -2172.46, "y": 204.91 },
+ { "code": "443", "x": -2352.96, "y": 284.54 },
+ { "code": "444", "x": -1992.8, "y": 642.5 },
+ { "code": "445", "x": -2034.86, "y": 481.28 },
+ { "code": "446", "x": -2030.04, "y": 245.25 },
+ { "code": "447", "x": -1866.76, "y": 103.52 },
+ { "code": "448", "x": -1791.59, "y": -13.46 },
+ { "code": "449", "x": -1514.56, "y": -59.36 },
+ { "code": "450", "x": -1367.7, "y": 60.02 },
+ { "code": "451", "x": -1159.93, "y": 96.12 },
+ { "code": "452", "x": -1649.81, "y": 27.28 },
+ { "code": "453", "x": -1524.77, "y": 136.11 },
+ { "code": "454", "x": -1733.92, "y": 136.12 },
+ { "code": "455", "x": -1616.06, "y": 229.01 },
+ { "code": "456", "x": -1843.1, "y": 261.19 },
+ { "code": "457", "x": -1905.27, "y": 520.55 },
+ { "code": "458", "x": -1751.33, "y": 438.53 },
+ { "code": "459", "x": -1697.37, "y": 342.48 },
+ { "code": "460", "x": -1526.71, "y": 430.27 },
+ { "code": "461", "x": -1382.66, "y": 756.79 },
+ { "code": "462", "x": -1366.24, "y": 487.1 },
+ { "code": "463", "x": -1309.61, "y": 303.74 },
+ { "code": "464", "x": -1118.05, "y": 333.23 },
+ { "code": "465", "x": -1176.67, "y": 566.45 },
+ { "code": "466", "x": -1220.77, "y": 652.9 },
+ { "code": "467", "x": -1018.78, "y": 760.52 },
+ { "code": "468", "x": -1005.26, "y": 615.19 },
+ { "code": "469", "x": -1007.89, "y": 451.84 },
+ { "code": "470", "x": -975.66, "y": 321.01 },
+ { "code": "471", "x": -856.73, "y": 260.2 },
+ { "code": "472", "x": -787.55, "y": 378.53 },
+ { "code": "473", "x": -604.97, "y": 312.2 },
+ { "code": "474", "x": -598.05, "y": 457.46 },
+ { "code": "475", "x": -726.84, "y": 482.14 },
+ { "code": "476", "x": -833.17, "y": 499.63 },
+ { "code": "477", "x": -713.39, "y": 557.31 },
+ { "code": "478", "x": -557.38, "y": 568.24 },
+ { "code": "479", "x": -713.31, "y": 631.08 },
+ { "code": "480", "x": -889.15, "y": 678.09 },
+ { "code": "481", "x": -762.04, "y": 792.68 },
+ { "code": "482", "x": -748.42, "y": 946.43 },
+ { "code": "483", "x": -618.29, "y": 721.08 },
+ { "code": "484", "x": -527.91, "y": 801.02 },
+ { "code": "485", "x": -492.61, "y": 914.3 },
+ { "code": "486", "x": -450.87, "y": 711.39 },
+ { "code": "487", "x": -431.95, "y": 619.62 },
+ { "code": "488", "x": -444.47, "y": 481.65 },
+ { "code": "489", "x": -476.05, "y": 319.56 },
+ { "code": "490", "x": -359.29, "y": 319.56 },
+ { "code": "491", "x": -248.17, "y": 316.49 },
+ { "code": "492", "x": -373.7, "y": 399.78 },
+ { "code": "493", "x": -220.8, "y": 460.01 },
+ { "code": "494", "x": -302.25, "y": 556.62 },
+ { "code": "495", "x": -290.51, "y": 949.49 },
+ { "code": "496", "x": -202.67, "y": 977.23 },
+ { "code": "497", "x": -27.42, "y": 1006.02 },
+ { "code": "498", "x": -56.58, "y": 949.68 },
+ { "code": "499", "x": -95.29, "y": 878.71 },
+ { "code": "500", "x": -41.53, "y": 752.74 },
+ { "code": "501", "x": -105.37, "y": 569.97 },
+ { "code": "502", "x": 11.18, "y": 504.48 },
+ { "code": "503", "x": -144.8, "y": 286.17 },
+ { "code": "504", "x": -88.91, "y": 354.27 },
+ { "code": "505", "x": 21.78, "y": 423.41 },
+ { "code": "506", "x": 144.45, "y": 733.11 },
+ { "code": "507", "x": 230.75, "y": 898.82 },
+ { "code": "508", "x": 240.48, "y": 777.85 },
+ { "code": "509", "x": 260.71, "y": 699.61 },
+ { "code": "510", "x": 193.2, "y": 545.94 },
+ { "code": "511", "x": 211.26, "y": 464.59 },
+ { "code": "512", "x": 348.36, "y": 462.58 },
+ { "code": "513", "x": 392.97, "y": 816.33 },
+ { "code": "514", "x": 440.63, "y": 912.92 },
+ { "code": "515", "x": 135.58, "y": 1155.87 },
+ { "code": "516", "x": 224.93, "y": 1315.48 },
+ { "code": "517", "x": 95.26, "y": 1600.59 },
+ { "code": "518", "x": -88.02, "y": 1916.09 },
+ { "code": "519", "x": 117.2, "y": 2022.85 },
+ { "code": "520", "x": 209.6, "y": 1852.11 },
+ { "code": "521", "x": 283.69, "y": 1677.31 },
+ { "code": "522", "x": 423.54, "y": 2058.96 },
+ { "code": "523", "x": 846.8, "y": 2170.2 },
+ { "code": "524", "x": 795.87, "y": 1976.72 },
+ { "code": "525", "x": 929.32, "y": 1708.67 },
+ { "code": "526", "x": 812.38, "y": 1270.26 },
+ { "code": "527", "x": 525.64, "y": 1288.59 },
+ { "code": "528", "x": 465.55, "y": 1178.84 },
+ { "code": "529", "x": 809.18, "y": 1145.78 },
+ { "code": "530", "x": 674.97, "y": 781.57 },
+ { "code": "531", "x": 684.25, "y": 580.17 },
+ { "code": "532", "x": 781.73, "y": 366.75 },
+ { "code": "533", "x": 1024.93, "y": 425.74 },
+ { "code": "534", "x": 1104.28, "y": 734.29 },
+ { "code": "535", "x": 1273.77, "y": 757.94 },
+ { "code": "536", "x": 1020.32, "y": 886.07 },
+ { "code": "537", "x": 1166.79, "y": 1091.65 },
+ { "code": "538", "x": 1368.17, "y": 1124.43 },
+ { "code": "539", "x": 1498.17, "y": 1092.23 },
+ { "code": "540", "x": 1283.88, "y": 1554.8 },
+ { "code": "541", "x": 1188.82, "y": 1894.8 },
+ { "code": "542", "x": 1556.69, "y": 1669.91 },
+ { "code": "543", "x": 1641.97, "y": 1513.42 },
+ { "code": "544", "x": 1947.43, "y": 1584.91 },
+ { "code": "545", "x": 1742.59, "y": 1265.97 },
+ { "code": "546", "x": 1573.78, "y": 894.01 },
+ { "code": "547", "x": 1981.75, "y": 941.22 },
+ { "code": "548", "x": 2245.72, "y": 1114.88 },
+ { "code": "549", "x": 2483.48, "y": 852.69 },
+ { "code": "550", "x": 2354.3, "y": 812.08 },
+ { "code": "551", "x": 1950.04, "y": 660.15 },
+ { "code": "552", "x": 1705.05, "y": 708.19 },
+ { "code": "553", "x": 1804.64, "y": 326.26 },
+ { "code": "554", "x": 2395.14, "y": 450.53 },
+ { "code": "555", "x": 2580.56, "y": 523.9 },
+ { "code": "556", "x": 2819.65, "y": 712.67 },
+ { "code": "557", "x": 2573.58, "y": 296.73 },
+ { "code": "558", "x": 2543.26, "y": 30.98 },
+ { "code": "559", "x": 2201.61, "y": 107.06 },
+ { "code": "560", "x": 1811.28, "y": 170.5 },
+ { "code": "561", "x": 1661.9, "y": -58.93 },
+ { "code": "562", "x": 1966.26, "y": -83.39 },
+ { "code": "563", "x": 1797.54, "y": -397.57 },
+ { "code": "564", "x": 2336.77, "y": -376.9 },
+ { "code": "565", "x": 2593.15, "y": -290.38 },
+ { "code": "566", "x": 2760.98, "y": -720.49 },
+ { "code": "567", "x": 2463.02, "y": -682.02 },
+ { "code": "568", "x": 1980.88, "y": -640.81 },
+ { "code": "569", "x": 1611.81, "y": -965.72 },
+ { "code": "570", "x": 1358.93, "y": -695.74 },
+ { "code": "571", "x": 1364.22, "y": -539.65 },
+ { "code": "572", "x": 1241.06, "y": -639.27 },
+ { "code": "573", "x": 1236.81, "y": -465.67 },
+ { "code": "574", "x": 1093.0, "y": -634.83 },
+ { "code": "575", "x": 1134.53, "y": -436.03 },
+ { "code": "576", "x": 976.81, "y": 606.63 },
+ { "code": "577", "x": 984.92, "y": -508.39 },
+ { "code": "578", "x": 678.85, "y": -486.16 },
+ { "code": "579", "x": 914.7, "y": -401.11 },
+ { "code": "580", "x": 1088.16, "y": -295.17 },
+ { "code": "581", "x": 1221.44, "y": -278.23 },
+ { "code": "582", "x": 1060.08, "y": -33.05 },
+ { "code": "583", "x": 1204.63, "y": 206.02 },
+ { "code": "584", "x": 1264.99, "y": 469.75 },
+ { "code": "585", "x": 1070.79, "y": 195.87 },
+ { "code": "586", "x": 961.44, "y": 34.46 },
+ { "code": "587", "x": 887.99, "y": -56.33 },
+ { "code": "588", "x": 881.71, "y": -173.91 },
+ { "code": "589", "x": 957.79, "y": -224.77 },
+ { "code": "590", "x": 755.36, "y": -257.49 },
+ { "code": "591", "x": 798.48, "y": -118.39 },
+ { "code": "592", "x": 626.09, "y": 149.7 },
+ { "code": "593", "x": 474.33, "y": 194.8 },
+ { "code": "594", "x": 322.56, "y": 357.99 },
+ { "code": "595", "x": 184.52, "y": 386.39 },
+ { "code": "596", "x": 306.83, "y": 246.56 },
+ { "code": "597", "x": 148.9, "y": 299.4 },
+ { "code": "598", "x": 90.56, "y": 172.29 },
+ { "code": "599", "x": 240.13, "y": 122.46 },
+ { "code": "600", "x": 401.11, "y": 59.27 },
+ { "code": "601", "x": 561.91, "y": 11.18 },
+ { "code": "602", "x": 584.57, "y": -175.44 },
+ { "code": "603", "x": 500.82, "y": -103.93 },
+ { "code": "604", "x": 369.48, "y": -34.11 },
+ { "code": "605", "x": 214.18, "y": 29.68 },
+ { "code": "606", "x": 64.54, "y": 54.93 },
+ { "code": "607", "x": 57.93, "y": -75.42 },
+ { "code": "608", "x": 211.7, "y": -119.35 },
+ { "code": "609", "x": 319.03, "y": -178.75 },
+ { "code": "610", "x": 444.26, "y": -227.06 },
+ { "code": "611", "x": 470.02, "y": -425.15 },
+ { "code": "612", "x": 397.25, "y": -342.98 },
+ { "code": "613", "x": 247.41, "y": -426.16 },
+ { "code": "614", "x": 263.56, "y": -302.76 },
+ { "code": "615", "x": 78.36, "y": -410.81 },
+ { "code": "616", "x": 130.23, "y": -256.47 },
+ { "code": "617", "x": -21.52, "y": -199.31 },
+ { "code": "618", "x": -66.63, "y": -368.87 },
+ { "code": "619", "x": -205.96, "y": -280.47 },
+ { "code": "620", "x": -196.63, "y": -134.55 },
+ { "code": "621", "x": -127.8, "y": -41.97 },
+ { "code": "622", "x": -182.96, "y": 42.3 },
+ { "code": "623", "x": -48.79, "y": 169.13 },
+ { "code": "624", "x": -164.4, "y": 165.66 },
+ { "code": "625", "x": -317.97, "y": 177.96 },
+ { "code": "626", "x": -320.9, "y": 65.98 },
+ { "code": "627", "x": -345.03, "y": -94.11 },
+ { "code": "628", "x": -319.92, "y": -242.47 },
+ { "code": "629", "x": -356.48, "y": -351.87 },
+ { "code": "630", "x": -384.75, "y": -440.9 },
+ { "code": "631", "x": -545.3, "y": -424.71 },
+ { "code": "632", "x": -473.18, "y": -332.66 },
+ { "code": "633", "x": -421.19, "y": -144.26 },
+ { "code": "634", "x": -467.52, "y": -53.62 },
+ { "code": "635", "x": -467.38, "y": 66.67 },
+ { "code": "636", "x": -463.29, "y": 184.98 },
+ { "code": "637", "x": -606.73, "y": 184.94 },
+ { "code": "638", "x": -606.72, "y": 60.32 },
+ { "code": "639", "x": -593.5, "y": -114.37 },
+ { "code": "640", "x": -524.57, "y": -220.29 },
+ { "code": "641", "x": -577.94, "y": -337.9 },
+ { "code": "642", "x": -628.56, "y": -245.58 },
+ { "code": "643", "x": -697.98, "y": -158.28 },
+ { "code": "644", "x": -776.32, "y": 4.76 },
+ { "code": "645", "x": -702.91, "y": 58.63 },
+ { "code": "646", "x": -708.77, "y": 170.35 },
+ { "code": "647", "x": -810.85, "y": 170.25 },
+ { "code": "648", "x": -952.81, "y": 203.94 },
+ { "code": "649", "x": -634.5, "y": 26.5 },
+ { "code": "650", "x": -875.29, "y": -207.29 },
+ { "code": "651", "x": -774.39, "y": -195.44 },
+ { "code": "652", "x": -710.37, "y": -312.34 },
+ { "code": "653", "x": -701.61, "y": -401.18 },
+ { "code": "654", "x": -883.08, "y": -435.71 },
+ { "code": "655", "x": -898.93, "y": -360.17 },
+ { "code": "656", "x": -977.77, "y": -275.39 },
+ { "code": "657", "x": -1220.42, "y": -76.18 },
+ { "code": "658", "x": -1201.03, "y": -188.01 },
+ { "code": "659", "x": -1082.81, "y": -326.96 },
+ { "code": "660", "x": -1053.26, "y": -426.56 },
+ { "code": "661", "x": -990.96, "y": -488.15 },
+ { "code": "662", "x": -1129.12, "y": -566.13 },
+ { "code": "663", "x": -1202.9, "y": -384.32 },
+ { "code": "664", "x": -1305.45, "y": -234.97 },
+ { "code": "665", "x": -1356.05, "y": -116.15 },
+ { "code": "666", "x": -1496.43, "y": -189.61 },
+ { "code": "667", "x": -1388.93, "y": -325.74 },
+ { "code": "668", "x": -1320.4, "y": -426.83 },
+ { "code": "669", "x": -1319.61, "y": -587.22 },
+ { "code": "670", "x": -1387.58, "y": -472.87 },
+ { "code": "671", "x": -1498.62, "y": -353.75 },
+ { "code": "672", "x": -1562.24, "y": -262.89 },
+ { "code": "673", "x": -1711.67, "y": -331.23 },
+ { "code": "674", "x": -1625.08, "y": -377.55 },
+ { "code": "675", "x": -1558.24, "y": -435.76 },
+ { "code": "676", "x": -1507.77, "y": -561.16 },
+ { "code": "677", "x": -1433.51, "y": -662.61 },
+ { "code": "678", "x": -1656.38, "y": -529.95 },
+ { "code": "679", "x": -1685.54, "y": -461.06 },
+ { "code": "680", "x": -1807.86, "y": -542.98 },
+ { "code": "681", "x": -1871.49, "y": -334.07 },
+ { "code": "682", "x": -2007.49, "y": -309.82 },
+ { "code": "683", "x": -1989.24, "y": -140.48 },
+ { "code": "684", "x": -2206.03, "y": -314.99 },
+ { "code": "685", "x": -2017.59, "y": -562.35 },
+ { "code": "686", "x": -1739.69, "y": -799.45 },
+ { "code": "687", "x": -1631.06, "y": -1034.1 },
+ { "code": "688", "x": -1824.31, "y": -1209.26 },
+ { "code": "689", "x": -1377.95, "y": -1182.64 },
+ { "code": "690", "x": -1341.94, "y": -1331.98 },
+ { "code": "691", "x": -1268.88, "y": -1456.62 },
+ { "code": "692", "x": -1329.25, "y": -1516.0 },
+ { "code": "693", "x": -1158.92, "y": -1634.12 },
+ { "code": "694", "x": -1199.95, "y": -1794.6 },
+ { "code": "695", "x": -1017.25, "y": -1508.7 },
+ { "code": "696", "x": -1055.79, "y": -1377.61 },
+ { "code": "697", "x": -1078.56, "y": -1222.01 },
+ { "code": "698", "x": -1116.51, "y": -1132.59 },
+ { "code": "699", "x": -1158.85, "y": -1021.54 },
+ { "code": "700", "x": -1201.96, "y": -935.49 },
+ { "code": "701", "x": -1234.29, "y": -834.1 },
+ { "code": "702", "x": -1328.95, "y": -785.53 },
+ { "code": "703", "x": -1177.39, "y": -735.68 },
+ { "code": "704", "x": -1099.92, "y": -846.64 },
+ { "code": "705", "x": -1053.26, "y": -936.18 },
+ { "code": "706", "x": -1002.33, "y": -1036.27 },
+ { "code": "707", "x": -960.99, "y": -1138.12 },
+ { "code": "708", "x": -946.24, "y": -1288.5 },
+ { "code": "709", "x": -815.12, "y": -1341.38 },
+ { "code": "710", "x": -744.91, "y": -1648.89 },
+ { "code": "711", "x": -592.77, "y": -1587.28 },
+ { "code": "712", "x": -694.07, "y": -1430.24 },
+ { "code": "713", "x": -822.5, "y": -1214.34 },
+ { "code": "714", "x": -849.39, "y": -1096.41 },
+ { "code": "715", "x": -899.67, "y": -985.46 },
+ { "code": "716", "x": -953.74, "y": -901.56 },
+ { "code": "717", "x": -984.2, "y": -639.5 },
+ { "code": "718", "x": -918.8, "y": -714.27 },
+ { "code": "719", "x": -915.41, "y": -832.4 },
+ { "code": "720", "x": -812.36, "y": 908.66 },
+ { "code": "721", "x": -743.93, "y": -1018.72 },
+ { "code": "722", "x": -714.1, "y": -1121.83 },
+ { "code": "723", "x": -601.88, "y": -1197.55 },
+ { "code": "724", "x": -541.31, "y": -1254.04 },
+ { "code": "725", "x": -607.12, "y": -1012.94 },
+ { "code": "726", "x": -697.32, "y": -910.79 },
+ { "code": "727", "x": -800.05, "y": -748.95 },
+ { "code": "728", "x": -803.74, "y": -601.43 },
+ { "code": "729", "x": -694.77, "y": -615.5 },
+ { "code": "730", "x": -683.23, "y": -732.72 },
+ { "code": "731", "x": -584.51, "y": -736.18 },
+ { "code": "732", "x": -579.25, "y": -895.9 },
+ { "code": "733", "x": -477.91, "y": -963.43 },
+ { "code": "734", "x": -478.81, "y": -738.45 },
+ { "code": "735", "x": -541.88, "y": -607.46 },
+ { "code": "736", "x": -319.88, "y": -601.65 },
+ { "code": "737", "x": -319.29, "y": -757.48 },
+ { "code": "738", "x": -300.45, "y": -919.35 },
+ { "code": "739", "x": -305.51, "y": -1053.61 },
+ { "code": "740", "x": -210.29, "y": -793.7 },
+ { "code": "741", "x": -157.15, "y": -601.65 },
+ { "code": "742", "x": -1.02, "y": -638.27 },
+ { "code": "743", "x": -84.77, "y": -820.84 },
+ { "code": "744", "x": -143.46, "y": -1027.29 },
+ { "code": "745", "x": -3.72, "y": -1053.45 },
+ { "code": "746", "x": 68.99, "y": -889.29 },
+ { "code": "747", "x": 133.04, "y": -680.87 },
+ { "code": "748", "x": 184.02, "y": -551.83 },
+ { "code": "749", "x": 327.89, "y": -591.39 },
+ { "code": "750", "x": 260.92, "y": -745.13 },
+ { "code": "750", "x": 261.67, "y": -744.96 },
+ { "code": "751", "x": 191.38, "y": -927.14 },
+ { "code": "752", "x": 137.4, "y": -1080.02 },
+ { "code": "753", "x": 245.16, "y": -1090.78 },
+ { "code": "754", "x": 351.54, "y": -1097.21 },
+ { "code": "755", "x": 316.97, "y": -1004.59 },
+ { "code": "756", "x": 340.31, "y": -914.5 },
+ { "code": "757", "x": 353.44, "y": -802.25 },
+ { "code": "758", "x": 475.61, "y": -626.17 },
+ { "code": "759", "x": 459.95, "y": -748.65 },
+ { "code": "760", "x": 449.86, "y": -910.28 },
+ { "code": "761", "x": 453.42, "y": -1002.07 },
+ { "code": "762", "x": 449.32, "y": -1086.69 },
+ { "code": "763", "x": 591.06, "y": -1097.53 },
+ { "code": "764", "x": 664.32, "y": -935.11 },
+ { "code": "765", "x": 656.9, "y": -771.92 },
+ { "code": "766", "x": 631.82, "y": -621.2 },
+ { "code": "767", "x": 835.0, "y": -746.68 },
+ { "code": "768", "x": 881.88, "y": -934.08 },
+ { "code": "769", "x": 779.24, "y": -1063.89 },
+ { "code": "770", "x": 920.3, "y": -1086.7 },
+ { "code": "771", "x": 1085.91, "y": -905.62 },
+ { "code": "772", "x": 1126.63, "y": -1059.18 },
+ { "code": "773", "x": 1161.43, "y": -1186.63 },
+ { "code": "774", "x": 1456.05, "y": -1465.9 },
+ { "code": "775", "x": 1787.68, "y": -1316.53 },
+ { "code": "776", "x": 1963.41, "y": -989.57 },
+ { "code": "777", "x": 2251.2, "y": -1238.52 },
+ { "code": "778", "x": 1737.3, "y": -1549.9 },
+ { "code": "779", "x": 1562.99, "y": -1687.88 },
+ { "code": "780", "x": 1780.4, "y": -1764.03 },
+ { "code": "781", "x": 1602.6, "y": -1917.81 },
+ { "code": "782", "x": 1514.86, "y": -2115.55 },
+ { "code": "783", "x": 1987.89, "y": -2126.98 },
+ { "code": "784", "x": 1489.17, "y": -2362.76 },
+ { "code": "785", "x": 1635.63, "y": -2353.05 },
+ { "code": "786", "x": 1594.83, "y": -2585.73 },
+ { "code": "787", "x": 1310.97, "y": -2558.17 },
+ { "code": "788", "x": 1213.29, "y": -2479.43 },
+ { "code": "789", "x": 1202.69, "y": -2328.16 },
+ { "code": "790", "x": 1266.28, "y": -2084.6 },
+ { "code": "791", "x": 1305.11, "y": -1895.99 },
+ { "code": "792", "x": 1320.25, "y": -1753.97 },
+ { "code": "793", "x": 1210.29, "y": -1601.95 },
+ { "code": "794", "x": 1152.64, "y": -1483.5 },
+ { "code": "795", "x": 927.58, "y": -1329.27 },
+ { "code": "796", "x": 955.62, "y": -1515.55 },
+ { "code": "797", "x": 967.34, "y": -1694.85 },
+ { "code": "798", "x": 1028.84, "y": -1845.13 },
+ { "code": "799", "x": 1006.53, "y": -2005.17 },
+ { "code": "800", "x": 1140.56, "y": -2021.06 },
+ { "code": "801", "x": 1123.42, "y": -2172.08 },
+ { "code": "802", "x": 1004.54, "y": -2196.59 },
+ { "code": "803", "x": 986.72, "y": -2377.28 },
+ { "code": "804", "x": 1023.3, "y": -2540.56 },
+ { "code": "805", "x": 882.79, "y": -2518.98 },
+ { "code": "806", "x": 833.74, "y": -2354.45 },
+ { "code": "807", "x": 861.01, "y": -2172.64 },
+ { "code": "808", "x": 872.73, "y": -2018.26 },
+ { "code": "809", "x": 892.86, "y": -1848.16 },
+ { "code": "810", "x": 773.99, "y": -1339.24 },
+ { "code": "811", "x": 609.43, "y": -1334.3 },
+ { "code": "812", "x": 712.74, "y": -1491.17 },
+ { "code": "813", "x": 691.13, "y": -1613.28 },
+ { "code": "814", "x": 755.04, "y": -1680.11 },
+ { "code": "815", "x": 742.7, "y": -1824.75 },
+ { "code": "816", "x": 729.86, "y": -1973.66 },
+ { "code": "817", "x": 724.69, "y": -2129.77 },
+ { "code": "818", "x": 707.01, "y": -2264.59 },
+ { "code": "819", "x": 692.69, "y": -2431.8 },
+ { "code": "820", "x": 541.18, "y": -2348.99 },
+ { "code": "821", "x": 549.0, "y": -2175.18 },
+ { "code": "822", "x": 533.95, "y": -1978.87 },
+ { "code": "823", "x": 541.18, "y": -1812.87 },
+ { "code": "824", "x": 545.74, "y": -1692.93 },
+ { "code": "825", "x": 541.6, "y": -1604.17 },
+ { "code": "826", "x": 444.78, "y": -1347.12 },
+ { "code": "827", "x": 438.96, "y": -1528.08 },
+ { "code": "828", "x": 450.35, "y": -1715.04 },
+ { "code": "829", "x": 456.46, "y": -1896.33 },
+ { "code": "830", "x": 434.54, "y": -2064.72 },
+ { "code": "831", "x": 372.91, "y": -1851.03 },
+ { "code": "832", "x": 333.72, "y": -1632.25 },
+ { "code": "833", "x": 350.27, "y": -1386.58 },
+ { "code": "834", "x": 297.07, "y": -1266.52 },
+ { "code": "835", "x": 133.01, "y": -1306.97 },
+ { "code": "836", "x": 241.7, "y": -1340.82 },
+ { "code": "837", "x": 182.43, "y": -1485.34 },
+ { "code": "838", "x": 193.07, "y": -1668.52 },
+ { "code": "839", "x": 265.64, "y": -1759.54 },
+ { "code": "840", "x": 191.49, "y": -1851.86 },
+ { "code": "841", "x": 244.71, "y": -1965.57 },
+ { "code": "842", "x": 322.26, "y": -2073.12 },
+ { "code": "843", "x": 175.27, "y": -2194.43 },
+ { "code": "844", "x": 164.74, "y": -2081.25 },
+ { "code": "845", "x": 74.34, "y": -1967.46 },
+ { "code": "846", "x": 129.95, "y": -1918.65 },
+ { "code": "847", "x": 32.29, "y": -1746.94 },
+ { "code": "848", "x": 73.5, "y": -1586.29 },
+ { "code": "849", "x": 33.04, "y": -1415.15 },
+ { "code": "850", "x": -15.31, "y": -1303.8 },
+ { "code": "851", "x": -206.94, "y": -1309.87 },
+ { "code": "852", "x": -127.65, "y": -1441.33 },
+ { "code": "853", "x": -27.5, "y": -1532.7 },
+ { "code": "854", "x": -238.63, "y": -1590.3 },
+ { "code": "855", "x": -128.13, "y": -1630.8 },
+ { "code": "856", "x": -29.0, "y": -1665.0 },
+ { "code": "857", "x": -106.25, "y": -1810.69 },
+ { "code": "858", "x": -137.87, "y": -1979.37 },
+ { "code": "859", "x": -16.36, "y": -2096.14 },
+ { "code": "860", "x": -63.4, "y": -2219.47 },
+ { "code": "861", "x": -245.18, "y": -2235.34 },
+ { "code": "862", "x": -289.72, "y": -2107.47 },
+ { "code": "863", "x": -330.13, "y": 1940.55 },
+ { "code": "864", "x": -314.02, "y": -1749.08 },
+ { "code": "865", "x": -326.55, "y": -1344.97 },
+ { "code": "866", "x": -337.77, "y": -1504.89 },
+ { "code": "867", "x": -461.74, "y": -1712.55 },
+ { "code": "868", "x": -595.78, "y": -1773.06 },
+ { "code": "869", "x": -484.92, "y": -1847.28 },
+ { "code": "870", "x": -369.92, "y": -2275.83 },
+ { "code": "871", "x": -491.42, "y": -2194.27 },
+ { "code": "872", "x": -597.24, "y": -2019.92 },
+ { "code": "873", "x": -759.97, "y": -2014.58 },
+ { "code": "874", "x": -835.87, "y": -1865.82 },
+ { "code": "875", "x": -1002.56, "y": -1967.47 },
+ { "code": "876", "x": -1136.27, "y": -2014.14 },
+ { "code": "877", "x": -1465.6, "y": -2243.86 },
+ { "code": "878", "x": -1555.04, "y": -2403.78 },
+ { "code": "879", "x": -1639.38, "y": -2565.44 },
+ { "code": "880", "x": -1765.9, "y": -2776.41 },
+ { "code": "881", "x": -1895.32, "y": -3017.65 },
+ { "code": "882", "x": -1638.38, "y": -3178.37 },
+ { "code": "883", "x": -1570.34, "y": -2895.16 },
+ { "code": "884", "x": -1452.07, "y": -2663.62 },
+ { "code": "885", "x": -1347.7, "y": -2496.32 },
+ { "code": "886", "x": -1256.22, "y": -2329.71 },
+ { "code": "887", "x": -1067.51, "y": -2162.76 },
+ { "code": "888", "x": -852.7, "y": -2145.14 },
+ { "code": "889", "x": -942.74, "y": -2285.86 },
+ { "code": "890", "x": -1075.97, "y": -2432.38 },
+ { "code": "891", "x": -1148.94, "y": -2560.65 },
+ { "code": "892", "x": -1257.8, "y": -2721.92 },
+ { "code": "893", "x": -1374.44, "y": 58.63 },
+ { "code": "894", "x": -1427.3, "y": -3313.97 },
+ { "code": "895", "x": -1234.17, "y": -3431.2 },
+ { "code": "896", "x": -1042.4, "y": -3517.94 },
+ { "code": "897", "x": -1166.57, "y": -3148.1 },
+ { "code": "898", "x": -947.69, "y": -3266.01 },
+ { "code": "899", "x": -1196.9, "y": -2891.09 },
+ { "code": "900", "x": -978.24, "y": -2894.07 },
+ { "code": "901", "x": -1063.62, "y": -2805.88 },
+ { "code": "902", "x": -993.56, "y": -2650.64 },
+ { "code": "903", "x": -870.7, "y": -2760.85 },
+ { "code": "904", "x": -910.43, "y": -2524.95 },
+ { "code": "905", "x": -764.12, "y": -2560.26 },
+ { "code": "906", "x": -788.34, "y": -2398.15 },
+ { "code": "907", "x": -653.69, "y": -2420.29 },
+ { "code": "908", "x": -712.61, "y": -2269.31 },
+ { "code": "909", "x": -575.6, "y": -2296.67 },
+ { "code": "910", "x": -451.01, "y": -2446.83 },
+ { "code": "911", "x": -359.47, "y": -2647.27 },
+ { "code": "912", "x": -481.01, "y": -2819.32 },
+ { "code": "913", "x": -316.88, "y": -2720.29 },
+ { "code": "914", "x": -276.22, "y": -2468.71 },
+ { "code": "915", "x": -242.02, "y": -2579.59 },
+ { "code": "916", "x": -192.04, "y": -2666.25 },
+ { "code": "917", "x": -117.25, "y": -2431.57 },
+ { "code": "918", "x": -113.17, "y": -2576.06 },
+ { "code": "919", "x": -78.04, "y": -2689.79 },
+ { "code": "920", "x": 4.26, "y": -2479.97 },
+ { "code": "921", "x": 44.96, "y": -2723.84 },
+ { "code": "922", "x": 200.3, "y": -2488.28 },
+ { "code": "923", "x": 281.17, "y": -2477.22 },
+ { "code": "924", "x": 297.33, "y": -2575.35 },
+ { "code": "925", "x": 321.38, "y": -2751.91 },
+ { "code": "926", "x": 183.48, "y": -2825.86 },
+ { "code": "927", "x": 193.76, "y": -3049.14 },
+ { "code": "928", "x": 224.82, "y": -3247.05 },
+ { "code": "929", "x": 535.1, "y": -3239.36 },
+ { "code": "930", "x": 477.2, "y": -2986.6 },
+ { "code": "931", "x": 605.82, "y": -2986.6 },
+ { "code": "932", "x": 578.28, "y": -2799.92 },
+ { "code": "933", "x": 503.08, "y": -2626.09 },
+ { "code": "934", "x": 455.97, "y": -2459.23 },
+ { "code": "935", "x": 640.79, "y": -2569.03 },
+ { "code": "936", "x": 733.44, "y": -2938.56 },
+ { "code": "937", "x": 919.29, "y": -3006.45 },
+ { "code": "938", "x": 1106.28, "y": -3006.83 },
+ { "code": "939", "x": 926.66, "y": -3111.75 },
+ { "code": "940", "x": 1095.34, "y": -3121.46 },
+ { "code": "941", "x": 1211.87, "y": -3157.59 },
+ { "code": "942", "x": 929.36, "y": -3222.4 },
+ { "code": "943", "x": 1104.13, "y": -3220.83 },
+ { "code": "944", "x": 806.47, "y": -3275.22 },
+ { "code": "945", "x": 1032.23, "y": -3281.04 },
+ { "code": "946", "x": 1213.42, "y": -3290.92 }
+]
diff --git a/resources/rhud/data/street_limits.json b/resources/rhud/data/street_limits.json
new file mode 100644
index 000000000..4b7c8eb4c
--- /dev/null
+++ b/resources/rhud/data/street_limits.json
@@ -0,0 +1,221 @@
+{
+ "Joshua Rd": 50,
+ "East Joshua Road": 50,
+ "Marina Dr": 35,
+ "Alhambra Dr": 35,
+ "Niland Ave": 35,
+ "Zancudo Ave": 35,
+ "Armadillo Ave": 35,
+ "Algonquin Blvd": 35,
+ "Mountain View Dr": 35,
+ "Cholla Springs Ave": 35,
+ "Panorama Dr": 45,
+ "Lesbos Ln": 35,
+ "Calafia Rd": 30,
+ "North Calafia Way": 30,
+ "Cassidy Trail": 25,
+ "Seaview Rd": 35,
+ "Grapeseed Main St": 35,
+ "Grapeseed Ave": 35,
+ "Joad Ln": 35,
+ "Union Rd": 40,
+ "O'Neil Way": 25,
+ "Senora Fwy": 70,
+ "Catfish View": 35,
+ "Great Ocean Hwy": 65,
+ "Paleto Blvd": 35,
+ "Duluoz Ave": 35,
+ "Procopio Dr": 35,
+ "Cascabel Ave": 30,
+ "Procopio Promenade": 25,
+ "Pyrite Ave": 30,
+ "Fort Zancudo Approach Rd": 25,
+ "Barbareno Rd": 30,
+ "Ineseno Road": 30,
+ "West Eclipse Blvd": 35,
+ "Playa Vista": 30,
+ "Bay City Ave": 30,
+ "Del Perro Fwy": 70,
+ "Equality Way": 30,
+ "Red Desert Ave": 30,
+ "Magellan Ave": 25,
+ "Sandcastle Way": 30,
+ "Vespucci Blvd": 40,
+ "Prosperity St": 30,
+ "San Andreas Ave": 40,
+ "North Rockford Dr": 35,
+ "South Rockford Dr": 35,
+ "Marathon Ave": 30,
+ "Boulevard Del Perro": 35,
+ "Cougar Ave": 30,
+ "Liberty St": 30,
+ "Bay City Incline": 40,
+ "Conquistador St": 25,
+ "Cortes St": 25,
+ "Vitus St": 25,
+ "Aguja St": 25,
+ "Goma St": 25,
+ "Melanoma St": 25,
+ "Palomino Ave": 35,
+ "Invention Ct": 25,
+ "Imagination Ct": 25,
+ "Rub St": 25,
+ "Tug St": 25,
+ "Ginger St": 30,
+ "Lindsay Circus": 30,
+ "Calais Ave": 35,
+ "Adam's Apple Blvd": 40,
+ "Alta St": 40,
+ "Integrity Way": 30,
+ "Swiss St": 30,
+ "Strawberry Ave": 40,
+ "Capital Blvd": 30,
+ "Crusade Rd": 30,
+ "Innocence Blvd": 40,
+ "Davis Ave": 40,
+ "Little Bighorn Ave": 35,
+ "Roy Lowenstein Blvd": 35,
+ "Jamestown St": 30,
+ "Carson Ave": 35,
+ "Grove St": 30,
+ "Brouge Ave": 30,
+ "Covenant Ave": 30,
+ "Dutch London St": 40,
+ "Signal St": 30,
+ "Elysian Fields Fwy": 55,
+ "Plaice Pl": 30,
+ "Chum St": 40,
+ "Chupacabra St": 30,
+ "Miriam Turner Overpass": 30,
+ "Autopia Pkwy": 35,
+ "Exceptionalists Way": 35,
+ "La Puerta Fwy": 65,
+ "New Empire Way": 30,
+ "Runway1": -1,
+ "Greenwich Pkwy": 35,
+ "Kortz Dr": 30,
+ "Banham Canyon Dr": 40,
+ "Buen Vino Rd": 40,
+ "Route 68": 60,
+ "Zancudo Grande Valley": 40,
+ "Zancudo Barranca": 40,
+ "Galileo Rd": 40,
+ "Mt Vinewood Dr": 40,
+ "Marlowe Dr": 40,
+ "Milton Rd": 35,
+ "Kimble Hill Dr": 35,
+ "Normandy Dr": 35,
+ "Hillcrest Ave": 35,
+ "Hillcrest Ridge Access Rd": 30,
+ "North Sheldon Ave": 35,
+ "Lake Vinewood Dr": 35,
+ "Lake Vinewood Est": 35,
+ "Baytree Canyon Rd": 40,
+ "North Conker Ave": 35,
+ "Wild Oats Dr": 35,
+ "Whispymound Dr": 35,
+ "Didion Dr": 35,
+ "Cox Way": 35,
+ "Picture Perfect Drive": 35,
+ "South Mo Milton Dr": 35,
+ "Cockingend Dr": 35,
+ "Mad Wayne Thunder Dr": 35,
+ "Hangman Ave": 35,
+ "Dunstable Ln": 35,
+ "Dunstable Dr": 35,
+ "Greenwich Way": 35,
+ "Greenwich Pl": 35,
+ "Hardy Way": 35,
+ "Richman St": 35,
+ "Ace Jones Dr": 35,
+ "Los Santos Freeway": 70,
+ "Senora Rd": 45,
+ "Nowhere Rd": 30,
+ "Smoke Tree Rd": 35,
+ "Cholla Rd": 35,
+ "Cat-Claw Ave": 35,
+ "Senora Way": 45,
+ "Palomino Fwy": 65,
+ "Shank St": 25,
+ "Macdonald St": 35,
+ "Route 68 Approach": 60,
+ "Vinewood Park Dr": 35,
+ "Vinewood Blvd": 40,
+ "Mirror Park Blvd": 35,
+ "Glory Way": 35,
+ "Bridge St": 35,
+ "West Mirror Drive": 35,
+ "Nikola Ave": 35,
+ "Nikola Pl": 30,
+ "East Mirror Dr": 35,
+ "Mirror Pl": 35,
+ "El Rancho Blvd": 40,
+ "Olympic Fwy": 60,
+ "Fudge Ln": 25,
+ "Amarillo Vista": 30,
+ "Labor Pl": 35,
+ "El Burro Blvd": 35,
+ "Sustancia Rd": 45,
+ "South Shambles St": 30,
+ "Hanger Way": 30,
+ "Orchardville Ave": 30,
+ "Popular St": 40,
+ "Buccaneer Way": 45,
+ "Abattoir Ave": 35,
+ "Voodoo Place": 30,
+ "Mutiny Rd": 35,
+ "South Arsenal St": 35,
+ "Forum Dr": 35,
+ "Morningwood Blvd": 35,
+ "Dorset Dr": 40,
+ "Caesars Place": 25,
+ "Spanish Ave": 30,
+ "Portola Dr": 30,
+ "Edwood Way": 25,
+ "San Vitus Blvd": 40,
+ "Eclipse Blvd": 35,
+ "Gentry Lane": 30,
+ "Las Lagunas Blvd": 40,
+ "Power St": 40,
+ "Mt Haan Rd": 40,
+ "Mt Haan Dr": 35,
+ "Steele Way": 25,
+ "Elgin Ave": 40,
+ "Hawick Ave": 35,
+ "Meteor St": 35,
+ "Alta Pl": 30,
+ "Occupation Ave": 35,
+ "Carcer Way": 40,
+ "Eastbourne Way": 30,
+ "Rockford Dr": 35,
+ "Abe Milton Pkwy": 35,
+ "Laguna Pl": 30,
+ "Sinners Passage": 30,
+ "Atlee St": 30,
+ "Sinner St": 30,
+ "Supply St": 30,
+ "Amarillo Way": 35,
+ "Tower Way": 35,
+ "Decker St": 35,
+ "Tackle St": 30,
+ "Low Power St": 35,
+ "Clinton Ave": 35,
+ "Fenwell Pl": 35,
+ "Utopia Gardens": 30,
+ "Cavalry Blvd": 35,
+ "South Boulevard Del Perro": 35,
+ "Americano Way": 25,
+ "Sam Austin Dr": 25,
+ "East Galileo Ave": 35,
+ "Galileo Park": 35,
+ "West Galileo Ave": 35,
+ "Tongva Dr": 45,
+ "Zancudo Rd": 35,
+ "Movie Star Way": 35,
+ "Heritage Way": 35,
+ "Perth St": 30,
+ "Chianski Passage": 30,
+ "Lolita Ave": 35,
+ "Meringue Ln": 35,
+ "Strangeways Dr": 30
+}
\ No newline at end of file
diff --git a/resources/rhud/data/vehicle_blacklist.json b/resources/rhud/data/vehicle_blacklist.json
new file mode 100644
index 000000000..27f945e60
--- /dev/null
+++ b/resources/rhud/data/vehicle_blacklist.json
@@ -0,0 +1,4 @@
+[
+ "mower",
+ "tractor"
+]
\ No newline at end of file
diff --git a/resources/rhud/data/weapons.json b/resources/rhud/data/weapons.json
new file mode 100644
index 000000000..5c3c984d6
--- /dev/null
+++ b/resources/rhud/data/weapons.json
@@ -0,0 +1,116 @@
+[
+ "gadget_parachute",
+ "weapon_acidpackage",
+ "weapon_advancedrifle",
+ "weapon_appistol",
+ "weapon_assaultrifle_mk2",
+ "weapon_assaultrifle",
+ "weapon_assaultshotgun",
+ "weapon_assaultsmg",
+ "weapon_autoshotgun",
+ "weapon_ball",
+ "weapon_bat",
+ "weapon_battleaxe",
+ "weapon_battlerifle",
+ "weapon_bottle",
+ "weapon_bullpuprifle_mk2",
+ "weapon_bullpuprifle",
+ "weapon_bullpupshotgun",
+ "weapon_bzgas",
+ "weapon_candycane",
+ "weapon_carbinerifle_mk2",
+ "weapon_carbinerifle",
+ "weapon_ceramicpistol",
+ "weapon_combatmg_mk2",
+ "weapon_combatmg",
+ "weapon_combatpdw",
+ "weapon_combatpistol",
+ "weapon_combatshotgun",
+ "weapon_compactlauncher",
+ "weapon_compactrifle",
+ "weapon_crowbar",
+ "weapon_dagger",
+ "weapon_dbshotgun",
+ "weapon_doubleaction",
+ "weapon_emplauncher",
+ "weapon_fertilizercan",
+ "weapon_fireextinguisher",
+ "weapon_firework",
+ "weapon_flare",
+ "weapon_flaregun",
+ "weapon_flashlight",
+ "weapon_gadgetpistol",
+ "weapon_golfclub",
+ "weapon_grenade",
+ "weapon_grenadelauncher_smoke",
+ "weapon_grenadelauncher",
+ "weapon_gusenberg",
+ "weapon_hackingdevice",
+ "weapon_hammer",
+ "weapon_hatchet",
+ "weapon_hazardcan",
+ "weapon_heavypistol",
+ "weapon_heavyrifle",
+ "weapon_heavyshotgun",
+ "weapon_heavysniper_mk2",
+ "weapon_heavysniper",
+ "weapon_hominglauncher",
+ "weapon_knife",
+ "weapon_knuckle",
+ "weapon_machete",
+ "weapon_machinepistol",
+ "weapon_marksmanpistol",
+ "weapon_marksmanrifle_mk2",
+ "weapon_marksmanrifle",
+ "weapon_mg",
+ "weapon_microsmg",
+ "weapon_militaryrifle",
+ "weapon_minigun",
+ "weapon_minismg",
+ "weapon_molotov",
+ "weapon_musket",
+ "weapon_navyrevolver",
+ "weapon_nightstick",
+ "weapon_petrolcan",
+ "weapon_pipebomb",
+ "weapon_pistol_mk2",
+ "weapon_pistol",
+ "weapon_pistol50",
+ "weapon_pistolxm3",
+ "weapon_poolcue",
+ "weapon_precisionrifle",
+ "weapon_proxmine",
+ "weapon_pumpshotgun_mk2",
+ "weapon_pumpshotgun",
+ "weapon_railgun",
+ "weapon_railgunxm3",
+ "weapon_raycarbine",
+ "weapon_rayminigun",
+ "weapon_raypistol",
+ "weapon_remotesniper",
+ "weapon_revolver_mk2",
+ "weapon_revolver",
+ "weapon_rpg",
+ "weapon_sawnoffshotgun",
+ "weapon_smg_mk2",
+ "weapon_smg",
+ "weapon_smokegrenade",
+ "weapon_sniperrifle",
+ "weapon_snowball",
+ "weapon_snowlauncher",
+ "weapon_snspistol_mk2",
+ "weapon_snspistol",
+ "weapon_specialcarbine_mk2",
+ "weapon_specialcarbine",
+ "weapon_stickybomb",
+ "weapon_stone_hatchet",
+ "weapon_stungun_mp",
+ "weapon_stungun",
+ "weapon_stunrod",
+ "weapon_switchblade",
+ "weapon_tacticalrifle",
+ "weapon_tecpistol",
+ "weapon_unarmed",
+ "weapon_vintagepistol",
+ "weapon_wrench"
+]
\ No newline at end of file
diff --git a/resources/rhud/functions.lua b/resources/rhud/functions.lua
new file mode 100644
index 000000000..17a1fea8c
--- /dev/null
+++ b/resources/rhud/functions.lua
@@ -0,0 +1,24 @@
+--- Gets the altitude of an aircraft. Used by the aircraft module.
+--- @param veh integer The vehicle handle.
+--- @param factor number The multiplier to convert altitude from meters to the configured unit.
+--- @return number altitude The altitude of the vehicle.
+function GetAircraftAltitude(veh, factor)
+ local pos = GetEntityCoords(veh, false)
+ return GetEntityHeight(veh, pos.x, pos.y, pos.z, true, true) * factor
+end
+
+--- Gets the fuel level of a vehicle. Used by all vehicle modules.
+--- @param veh integer The vehicle handle.
+--- @return number fuel The fuel level of the vehicle as a percentage.
+function GetFuelLevel(veh)
+ local max = GetVehicleHandlingFloat(veh, 'CHandlingData', 'fPetrolTankVolume')
+ local fuel = GetVehicleFuelLevel(veh)
+ return (fuel / max) * 100
+end
+
+--- @param text string
+function Notify(text)
+ BeginTextCommandThefeedPost("STRING")
+ AddTextComponentSubstringPlayerName(text)
+ EndTextCommandThefeedPostTicker(true, false)
+end
diff --git a/resources/rhud/fxmanifest.lua b/resources/rhud/fxmanifest.lua
new file mode 100644
index 000000000..59b4ce284
--- /dev/null
+++ b/resources/rhud/fxmanifest.lua
@@ -0,0 +1,38 @@
+fx_version 'cerulean'
+game 'gta5'
+
+author 'Raxdiam'
+description 'Standalone roleplay HUD'
+version '1.7.0'
+
+lua54 'yes'
+
+escrow_ignore {
+ 'config.lua',
+ 'functions.lua',
+}
+
+ui_page 'ui/index.html'
+
+files {
+ 'ui/sounds/*.ogg',
+ 'ui/icon.png',
+ 'ui/index.html',
+ 'ui/icons/*.png',
+ 'locale/*.json',
+ 'data/*.json',
+}
+
+shared_scripts {
+ 'config.lua',
+ 'script/shared.lua',
+}
+client_scripts {
+ 'functions.lua',
+ 'script/client.lua',
+}
+server_script 'script/server.lua'
+
+postal_file 'data/postals.json'
+
+dependency '/assetpacks'
\ No newline at end of file
diff --git a/resources/rhud/locale/en-US.json b/resources/rhud/locale/en-US.json
new file mode 100644
index 000000000..54d7fdf28
--- /dev/null
+++ b/resources/rhud/locale/en-US.json
@@ -0,0 +1,155 @@
+{
+ "hud.info.priority.title": "Priority",
+ "hud.info.priority.inactive": "Inactive",
+ "hud.info.priority.active": "Active",
+ "hud.info.priority.cooldown": "Cooldown",
+ "hud.info.priority.on_hold": "On Hold",
+ "hud.info.aop": "AOP",
+ "hud.info.peacetime.title": "PeaceTime",
+ "hud.info.peacetime.active": "Active",
+ "hud.info.peacetime.inactive": "Inactive",
+ "hud.info.nearest_postal": "Nearest Postal",
+ "hud.player.unarmed": "Unarmed",
+ "config.title": "Config",
+ "config.no_customization": "You do not have customization permissions on this server.",
+ "config.layout": "Layout",
+ "config.alignment.title": "Alignment",
+ "config.alignment.top_center": "Top Center",
+ "config.alignment.top_left": "Top Left",
+ "config.alignment.top_right": "Top Right",
+ "config.alignment.middle_center": "Middle Center",
+ "config.alignment.middle_left": "Middle Left",
+ "config.alignment.middle_right": "Middle Right",
+ "config.alignment.bottom_center": "Bottom Center",
+ "config.alignment.bottom_left": "Bottom Left",
+ "config.alignment.bottom_right": "Bottom Right",
+ "config.x_coord": "X Coordinate",
+ "config.y_coord": "Y Coordinate",
+ "config.scale": "Scale",
+ "config.land.title": "Land Vehicle Module",
+ "config.land.speedo.title": "Speedometer",
+ "config.land.speedo.dial": "Dial",
+ "config.land.speedo.value": "Value",
+ "config.land.speedo.value_glow": "Value Glow",
+ "config.land.speedo.unit": "Unit",
+ "config.land.speedo.gear": "Gear",
+ "config.land.fuel_gauge.title": "Fuel Gauge",
+ "config.land.fuel_gauge.dial": "Dial",
+ "config.land.other.title": "Other",
+ "config.land.other.power_off": "Power Off (Unlit)",
+ "config.land.indicators.title": "Indicators",
+ "config.land.indicators.engine_good": "Engine (Good)",
+ "config.land.indicators.engine_warn": "Engine (Warning)",
+ "config.land.indicators.engine_crit": "Engine (Critical)",
+ "config.land.indicators.fuel_low": "Fuel Low",
+ "config.land.indicators.seatbelt_off": "Seatbelt Off",
+ "config.land.indicators.headbeams_on": "Headbeams On",
+ "config.land.indicators.hazards_on": "Hazards On",
+ "config.land.indicators.door_ajar": "Door Ajar",
+ "config.land.indicators.turn_signals": "Turn Signals",
+ "config.air.title": "Air Vehicle Module",
+ "config.air.speed_gauge.title": "Airspeed Gauge",
+ "config.air.speed_gauge.dial": "Dial",
+ "config.air.speed_gauge.big_tick": "Big Tick",
+ "config.air.speed_gauge.small_tick": "Small Tick",
+ "config.air.speed_gauge.label": "Label",
+ "config.air.speed_gauge.tick_label": "Tick Label",
+ "config.air.speed_gauge.tally_value": "Tally Value",
+ "config.air.speed_gauge.tally_border": "Tally Border",
+ "config.air.fuel_gauge.title": "Fuel Gauge",
+ "config.air.fuel_gauge.dial": "Dial",
+ "config.air.altimeter.title": "Altimeter",
+ "config.air.altimeter.dial_hundreds": "Dial (Hundreds)",
+ "config.air.altimeter.dial_thousands": "Dial (Thousands)",
+ "config.air.altimeter.big_tick": "Big Tick",
+ "config.air.altimeter.small_tick": "Small Tick",
+ "config.air.altimeter.label": "Label",
+ "config.air.altimeter.tick_label": "Tick Label",
+ "config.air.altimeter.tally_value": "Tally Value",
+ "config.air.altimeter.tally_border": "Tally Border",
+ "config.air.attitude_gauge.title": "Attitude Indicator",
+ "config.air.attitude_gauge.level_lines": "Level Lines",
+ "config.air.attitude_gauge.roll_ticks": "Roll Ticks",
+ "config.air.attitude_gauge.pitch_ticks": "Pitch Ticks",
+ "config.air.attitude_gauge.sky": "Sky",
+ "config.air.attitude_gauge.ground": "Ground",
+ "config.air.indicators.title": "Indicators",
+ "config.air.indicators.engine_good": "Engine (Good)",
+ "config.air.indicators.engine_warn": "Engine (Warning)",
+ "config.air.indicators.engine_crit": "Engine (Critical)",
+ "config.air.indicators.gear_deployed": "Gear Deployed",
+ "config.air.indicators.gear_deploying": "Gear Mid-Deploy",
+ "config.air.indicators.fuel_low": "Fuel Low",
+ "config.air.indicators.compartment": "Compartment",
+ "config.air.indicators.low_beams": "Low Beams",
+ "config.air.indicators.high_beams": "High Beams",
+ "config.air.other.title": "Other",
+ "config.air.other.power_off": "Power Off (Unlit)",
+ "config.water.title": "Water Vehicle Module",
+ "config.water.speedo.title": "Speedometer",
+ "config.water.speedo.dial": "Dial",
+ "config.water.speedo.value": "Value",
+ "config.water.speedo.value_glow": "Value Glow",
+ "config.water.speedo.unit": "Unit",
+ "config.water.fuel_gauge.title": "Fuel Gauge",
+ "config.water.fuel_gauge.dial": "Dial",
+ "config.water.indicators.title": "Indicators",
+ "config.water.indicators.engine": "Engine",
+ "config.water.indicators.anchor": "Anchor",
+ "config.water.indicators.low_beams": "Low Beams",
+ "config.water.indicators.high_beams": "High Beams",
+ "config.water.other.title": "Other",
+ "config.water.other.power_off": "Power Off (Unlit)",
+ "config.player.title": "Player Module",
+ "config.player.other.title": "Other",
+ "config.player.other.health_bar": "Health Bar",
+ "config.player.other.armor_bar": "Armor Bar",
+ "config.player.other.bar_rail": "Bar Rail",
+ "config.player.inner.title": "Inner",
+ "config.player.inner.weapon": "Weapon",
+ "config.player.inner.weapon_outline": "Weapon Outline",
+ "config.player.inner.text": "Text",
+ "config.info.title": "Info Module",
+ "config.info.priority.title": "Priority",
+ "config.info.priority.inactive": "Inactive",
+ "config.info.priority.active": "Active",
+ "config.info.priority.username": "Username",
+ "config.info.priority.on_hold": "On Hold",
+ "config.info.priority.cooldown": "Cooldown",
+ "config.info.priority.cooldown_value": "Cooldown Value",
+ "config.info.other.title": "Other",
+ "config.info.other.aop": "AOP",
+ "config.info.other.text": "Text",
+ "config.info.other.label": "Label",
+ "config.info.location.title": "Location",
+ "config.info.location.bearing": "Bearing",
+ "config.info.location.street": "Street",
+ "config.info.location.zone": "Zone",
+ "config.info.postal.title": "Postal",
+ "config.info.postal.code": "Code",
+ "config.info.postal.distance": "Distance",
+ "config.speed_limit.title": "Speed Limit Module",
+ "config.speed_limit.colors.title": "Colors",
+ "config.speed_limit.colors.label": "Label",
+ "config.speed_limit.colors.value": "Value",
+ "config.speed_limit.colors.background": "Background",
+ "config.minimap.title": "Minimap Module",
+ "config.minimap.minimap.title": "Minimap",
+ "config.minimap.border.title": "Border",
+ "config.minimap.border.width": "Width",
+ "config.minimap.border.height": "Height",
+ "config.minimap.border.thickness": "Thickness",
+ "config.about": "About",
+ "config.button.confirm": "Confirm",
+ "config.button.reset.text": "Reset",
+ "config.button.reset.layout": "Reset Layout",
+ "config.button.reset.colors": "Reset Colors",
+ "config.button.reset.progress": "Resetting...",
+ "config.button.reset.complete": "Successfully reset",
+ "config.button.reset.confirm": "Click again to confirm reset",
+ "config.button.export.layout": "Export Layout",
+ "config.button.export.colors": "Export Colors",
+ "config.button.export.progress": "Exporting...",
+ "config.button.export.complete": "Successfully exported",
+ "config.button.export.confirm": "Click again to confirm export"
+}
\ No newline at end of file
diff --git a/resources/rhud/permissions.cfg b/resources/rhud/permissions.cfg
new file mode 100644
index 000000000..a5ed9a0e1
--- /dev/null
+++ b/resources/rhud/permissions.cfg
@@ -0,0 +1,22 @@
+# Note: If you change a permission's name in the config, you must also change it here.
+# Syntax: add_ace
+
+add_ace builtin.everyone rhud.config.open allow
+add_ace builtin.everyone rhud.config.layout allow
+add_ace builtin.everyone rhud.config.color allow
+add_ace group.admin rhud.config.export allow
+
+add_ace group.admin rhud.aop allow
+
+add_ace group.admin rhud.peacetime allow
+
+add_ace builtin.everyone rhud.priority.active allow
+add_ace builtin.everyone rhud.priority.cooldown allow
+add_ace builtin.everyone rhud.priority.onhold allow
+add_ace builtin.everyone rhud.priority.reset allow
+
+add_ace builtin.everyone rhud.player.heal_self allow
+add_ace group.admin rhud.player.heal_other allow
+
+# This line is needed for the seatbelt to work
+setr game_enableFlyThroughWindscreen true
diff --git a/resources/rhud/script/client.lua b/resources/rhud/script/client.lua
new file mode 100644
index 000000000..78c04a9eb
Binary files /dev/null and b/resources/rhud/script/client.lua differ
diff --git a/resources/rhud/script/server.lua b/resources/rhud/script/server.lua
new file mode 100644
index 000000000..d46d31c44
Binary files /dev/null and b/resources/rhud/script/server.lua differ
diff --git a/resources/rhud/script/shared.lua b/resources/rhud/script/shared.lua
new file mode 100644
index 000000000..5d0353d66
Binary files /dev/null and b/resources/rhud/script/shared.lua differ
diff --git a/resources/rhud/stream/minimap.gfx b/resources/rhud/stream/minimap.gfx
new file mode 100644
index 000000000..061bc2af5
Binary files /dev/null and b/resources/rhud/stream/minimap.gfx differ
diff --git a/resources/rhud/stream/squaremap.ytd b/resources/rhud/stream/squaremap.ytd
new file mode 100644
index 000000000..da2887dc5
--- /dev/null
+++ b/resources/rhud/stream/squaremap.ytd
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:452a78b6951987bcd685413d178e5da22bec34ecce1281d50459a323f043abb4
+size 833
diff --git a/resources/rhud/ui/icon.png b/resources/rhud/ui/icon.png
new file mode 100644
index 000000000..4e4e0ea8b
Binary files /dev/null and b/resources/rhud/ui/icon.png differ
diff --git a/resources/rhud/ui/icons/gadget_parachute.png b/resources/rhud/ui/icons/gadget_parachute.png
new file mode 100644
index 000000000..9a8b0da52
Binary files /dev/null and b/resources/rhud/ui/icons/gadget_parachute.png differ
diff --git a/resources/rhud/ui/icons/weapon_acidpackage.png b/resources/rhud/ui/icons/weapon_acidpackage.png
new file mode 100644
index 000000000..5f6b322e2
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_acidpackage.png differ
diff --git a/resources/rhud/ui/icons/weapon_advancedrifle.png b/resources/rhud/ui/icons/weapon_advancedrifle.png
new file mode 100644
index 000000000..93bedbda1
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_advancedrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_appistol.png b/resources/rhud/ui/icons/weapon_appistol.png
new file mode 100644
index 000000000..0c8253f9b
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_appistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_assaultrifle.png b/resources/rhud/ui/icons/weapon_assaultrifle.png
new file mode 100644
index 000000000..4af16aaaf
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_assaultrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_assaultrifle_mk2.png b/resources/rhud/ui/icons/weapon_assaultrifle_mk2.png
new file mode 100644
index 000000000..68205a8c9
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_assaultrifle_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_assaultshotgun.png b/resources/rhud/ui/icons/weapon_assaultshotgun.png
new file mode 100644
index 000000000..fe2f333fb
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_assaultshotgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_assaultsmg.png b/resources/rhud/ui/icons/weapon_assaultsmg.png
new file mode 100644
index 000000000..6f0115ffa
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_assaultsmg.png differ
diff --git a/resources/rhud/ui/icons/weapon_autoshotgun.png b/resources/rhud/ui/icons/weapon_autoshotgun.png
new file mode 100644
index 000000000..2358e1cf8
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_autoshotgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_ball.png b/resources/rhud/ui/icons/weapon_ball.png
new file mode 100644
index 000000000..2cbb026fe
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_ball.png differ
diff --git a/resources/rhud/ui/icons/weapon_bat.png b/resources/rhud/ui/icons/weapon_bat.png
new file mode 100644
index 000000000..8a37c1f8c
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_bat.png differ
diff --git a/resources/rhud/ui/icons/weapon_battleaxe.png b/resources/rhud/ui/icons/weapon_battleaxe.png
new file mode 100644
index 000000000..faf0ec0ba
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_battleaxe.png differ
diff --git a/resources/rhud/ui/icons/weapon_battlerifle.png b/resources/rhud/ui/icons/weapon_battlerifle.png
new file mode 100644
index 000000000..6ac2c67c8
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_battlerifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_bottle.png b/resources/rhud/ui/icons/weapon_bottle.png
new file mode 100644
index 000000000..c501bd1d1
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_bottle.png differ
diff --git a/resources/rhud/ui/icons/weapon_bullpuprifle.png b/resources/rhud/ui/icons/weapon_bullpuprifle.png
new file mode 100644
index 000000000..5ab99a2b1
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_bullpuprifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_bullpuprifle_mk2.png b/resources/rhud/ui/icons/weapon_bullpuprifle_mk2.png
new file mode 100644
index 000000000..500648bd6
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_bullpuprifle_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_bullpupshotgun.png b/resources/rhud/ui/icons/weapon_bullpupshotgun.png
new file mode 100644
index 000000000..81e451db6
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_bullpupshotgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_bzgas.png b/resources/rhud/ui/icons/weapon_bzgas.png
new file mode 100644
index 000000000..15670579b
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_bzgas.png differ
diff --git a/resources/rhud/ui/icons/weapon_candycane.png b/resources/rhud/ui/icons/weapon_candycane.png
new file mode 100644
index 000000000..7df0f9cda
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_candycane.png differ
diff --git a/resources/rhud/ui/icons/weapon_carbinerifle.png b/resources/rhud/ui/icons/weapon_carbinerifle.png
new file mode 100644
index 000000000..1252d355a
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_carbinerifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_carbinerifle_mk2.png b/resources/rhud/ui/icons/weapon_carbinerifle_mk2.png
new file mode 100644
index 000000000..64cc92c19
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_carbinerifle_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_ceramicpistol.png b/resources/rhud/ui/icons/weapon_ceramicpistol.png
new file mode 100644
index 000000000..390759568
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_ceramicpistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_combatmg.png b/resources/rhud/ui/icons/weapon_combatmg.png
new file mode 100644
index 000000000..9495dc9ec
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_combatmg.png differ
diff --git a/resources/rhud/ui/icons/weapon_combatmg_mk2.png b/resources/rhud/ui/icons/weapon_combatmg_mk2.png
new file mode 100644
index 000000000..c725803e0
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_combatmg_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_combatpdw.png b/resources/rhud/ui/icons/weapon_combatpdw.png
new file mode 100644
index 000000000..9027ea900
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_combatpdw.png differ
diff --git a/resources/rhud/ui/icons/weapon_combatpistol.png b/resources/rhud/ui/icons/weapon_combatpistol.png
new file mode 100644
index 000000000..647a3636e
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_combatpistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_combatshotgun.png b/resources/rhud/ui/icons/weapon_combatshotgun.png
new file mode 100644
index 000000000..91b3c6f96
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_combatshotgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_compactlauncher.png b/resources/rhud/ui/icons/weapon_compactlauncher.png
new file mode 100644
index 000000000..edbc56f43
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_compactlauncher.png differ
diff --git a/resources/rhud/ui/icons/weapon_compactrifle.png b/resources/rhud/ui/icons/weapon_compactrifle.png
new file mode 100644
index 000000000..652f0bf81
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_compactrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_crowbar.png b/resources/rhud/ui/icons/weapon_crowbar.png
new file mode 100644
index 000000000..1b087ab51
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_crowbar.png differ
diff --git a/resources/rhud/ui/icons/weapon_dagger.png b/resources/rhud/ui/icons/weapon_dagger.png
new file mode 100644
index 000000000..2f59fbdc4
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_dagger.png differ
diff --git a/resources/rhud/ui/icons/weapon_dbshotgun.png b/resources/rhud/ui/icons/weapon_dbshotgun.png
new file mode 100644
index 000000000..ed25fcbc1
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_dbshotgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_doubleaction.png b/resources/rhud/ui/icons/weapon_doubleaction.png
new file mode 100644
index 000000000..a992055d9
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_doubleaction.png differ
diff --git a/resources/rhud/ui/icons/weapon_emplauncher.png b/resources/rhud/ui/icons/weapon_emplauncher.png
new file mode 100644
index 000000000..69dc7b22d
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_emplauncher.png differ
diff --git a/resources/rhud/ui/icons/weapon_fertilizercan.png b/resources/rhud/ui/icons/weapon_fertilizercan.png
new file mode 100644
index 000000000..95b7133fe
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_fertilizercan.png differ
diff --git a/resources/rhud/ui/icons/weapon_fireextinguisher.png b/resources/rhud/ui/icons/weapon_fireextinguisher.png
new file mode 100644
index 000000000..7b6afdb76
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_fireextinguisher.png differ
diff --git a/resources/rhud/ui/icons/weapon_firework.png b/resources/rhud/ui/icons/weapon_firework.png
new file mode 100644
index 000000000..76851744f
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_firework.png differ
diff --git a/resources/rhud/ui/icons/weapon_flare.png b/resources/rhud/ui/icons/weapon_flare.png
new file mode 100644
index 000000000..b475030d1
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_flare.png differ
diff --git a/resources/rhud/ui/icons/weapon_flaregun.png b/resources/rhud/ui/icons/weapon_flaregun.png
new file mode 100644
index 000000000..0753483c3
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_flaregun.png differ
diff --git a/resources/rhud/ui/icons/weapon_flashlight.png b/resources/rhud/ui/icons/weapon_flashlight.png
new file mode 100644
index 000000000..6c677a0a4
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_flashlight.png differ
diff --git a/resources/rhud/ui/icons/weapon_gadgetpistol.png b/resources/rhud/ui/icons/weapon_gadgetpistol.png
new file mode 100644
index 000000000..ee4563246
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_gadgetpistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_golfclub.png b/resources/rhud/ui/icons/weapon_golfclub.png
new file mode 100644
index 000000000..ab1a11724
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_golfclub.png differ
diff --git a/resources/rhud/ui/icons/weapon_grenade.png b/resources/rhud/ui/icons/weapon_grenade.png
new file mode 100644
index 000000000..fc5827c89
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_grenade.png differ
diff --git a/resources/rhud/ui/icons/weapon_grenadelauncher.png b/resources/rhud/ui/icons/weapon_grenadelauncher.png
new file mode 100644
index 000000000..ed9fedbce
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_grenadelauncher.png differ
diff --git a/resources/rhud/ui/icons/weapon_grenadelauncher_smoke.png b/resources/rhud/ui/icons/weapon_grenadelauncher_smoke.png
new file mode 100644
index 000000000..7ca8b6a4e
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_grenadelauncher_smoke.png differ
diff --git a/resources/rhud/ui/icons/weapon_gusenberg.png b/resources/rhud/ui/icons/weapon_gusenberg.png
new file mode 100644
index 000000000..af83ff9d0
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_gusenberg.png differ
diff --git a/resources/rhud/ui/icons/weapon_hackingdevice.png b/resources/rhud/ui/icons/weapon_hackingdevice.png
new file mode 100644
index 000000000..7503f5956
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_hackingdevice.png differ
diff --git a/resources/rhud/ui/icons/weapon_hammer.png b/resources/rhud/ui/icons/weapon_hammer.png
new file mode 100644
index 000000000..bb78053da
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_hammer.png differ
diff --git a/resources/rhud/ui/icons/weapon_hatchet.png b/resources/rhud/ui/icons/weapon_hatchet.png
new file mode 100644
index 000000000..d758bf1a3
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_hatchet.png differ
diff --git a/resources/rhud/ui/icons/weapon_hazardcan.png b/resources/rhud/ui/icons/weapon_hazardcan.png
new file mode 100644
index 000000000..95b7133fe
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_hazardcan.png differ
diff --git a/resources/rhud/ui/icons/weapon_heavypistol.png b/resources/rhud/ui/icons/weapon_heavypistol.png
new file mode 100644
index 000000000..5c8a11981
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_heavypistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_heavyrifle.png b/resources/rhud/ui/icons/weapon_heavyrifle.png
new file mode 100644
index 000000000..d49a13573
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_heavyrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_heavyshotgun.png b/resources/rhud/ui/icons/weapon_heavyshotgun.png
new file mode 100644
index 000000000..033d16d2b
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_heavyshotgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_heavysniper.png b/resources/rhud/ui/icons/weapon_heavysniper.png
new file mode 100644
index 000000000..776f8838c
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_heavysniper.png differ
diff --git a/resources/rhud/ui/icons/weapon_heavysniper_mk2.png b/resources/rhud/ui/icons/weapon_heavysniper_mk2.png
new file mode 100644
index 000000000..9877d4e63
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_heavysniper_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_hominglauncher.png b/resources/rhud/ui/icons/weapon_hominglauncher.png
new file mode 100644
index 000000000..441115655
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_hominglauncher.png differ
diff --git a/resources/rhud/ui/icons/weapon_knife.png b/resources/rhud/ui/icons/weapon_knife.png
new file mode 100644
index 000000000..415779a65
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_knife.png differ
diff --git a/resources/rhud/ui/icons/weapon_knuckle.png b/resources/rhud/ui/icons/weapon_knuckle.png
new file mode 100644
index 000000000..f9380d2a2
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_knuckle.png differ
diff --git a/resources/rhud/ui/icons/weapon_machete.png b/resources/rhud/ui/icons/weapon_machete.png
new file mode 100644
index 000000000..55fe93608
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_machete.png differ
diff --git a/resources/rhud/ui/icons/weapon_machinepistol.png b/resources/rhud/ui/icons/weapon_machinepistol.png
new file mode 100644
index 000000000..e23cc9a44
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_machinepistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_marksmanpistol.png b/resources/rhud/ui/icons/weapon_marksmanpistol.png
new file mode 100644
index 000000000..41c2b4848
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_marksmanpistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_marksmanrifle.png b/resources/rhud/ui/icons/weapon_marksmanrifle.png
new file mode 100644
index 000000000..ffb8395ab
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_marksmanrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_marksmanrifle_mk2.png b/resources/rhud/ui/icons/weapon_marksmanrifle_mk2.png
new file mode 100644
index 000000000..df4c2fd20
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_marksmanrifle_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_mg.png b/resources/rhud/ui/icons/weapon_mg.png
new file mode 100644
index 000000000..2001a86d7
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_mg.png differ
diff --git a/resources/rhud/ui/icons/weapon_microsmg.png b/resources/rhud/ui/icons/weapon_microsmg.png
new file mode 100644
index 000000000..1ab4505ea
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_microsmg.png differ
diff --git a/resources/rhud/ui/icons/weapon_militaryrifle.png b/resources/rhud/ui/icons/weapon_militaryrifle.png
new file mode 100644
index 000000000..3823d189e
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_militaryrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_minigun.png b/resources/rhud/ui/icons/weapon_minigun.png
new file mode 100644
index 000000000..714e40ef4
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_minigun.png differ
diff --git a/resources/rhud/ui/icons/weapon_minismg.png b/resources/rhud/ui/icons/weapon_minismg.png
new file mode 100644
index 000000000..d69c7c836
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_minismg.png differ
diff --git a/resources/rhud/ui/icons/weapon_molotov.png b/resources/rhud/ui/icons/weapon_molotov.png
new file mode 100644
index 000000000..d160f0376
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_molotov.png differ
diff --git a/resources/rhud/ui/icons/weapon_musket.png b/resources/rhud/ui/icons/weapon_musket.png
new file mode 100644
index 000000000..b96dc9960
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_musket.png differ
diff --git a/resources/rhud/ui/icons/weapon_navyrevolver.png b/resources/rhud/ui/icons/weapon_navyrevolver.png
new file mode 100644
index 000000000..eb6f8b5a6
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_navyrevolver.png differ
diff --git a/resources/rhud/ui/icons/weapon_nightstick.png b/resources/rhud/ui/icons/weapon_nightstick.png
new file mode 100644
index 000000000..c186d2d92
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_nightstick.png differ
diff --git a/resources/rhud/ui/icons/weapon_petrolcan.png b/resources/rhud/ui/icons/weapon_petrolcan.png
new file mode 100644
index 000000000..95b7133fe
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_petrolcan.png differ
diff --git a/resources/rhud/ui/icons/weapon_pipebomb.png b/resources/rhud/ui/icons/weapon_pipebomb.png
new file mode 100644
index 000000000..45ace826e
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_pipebomb.png differ
diff --git a/resources/rhud/ui/icons/weapon_pistol.png b/resources/rhud/ui/icons/weapon_pistol.png
new file mode 100644
index 000000000..0dd39b1a1
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_pistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_pistol50.png b/resources/rhud/ui/icons/weapon_pistol50.png
new file mode 100644
index 000000000..10bcb85e9
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_pistol50.png differ
diff --git a/resources/rhud/ui/icons/weapon_pistol_mk2.png b/resources/rhud/ui/icons/weapon_pistol_mk2.png
new file mode 100644
index 000000000..ece4ca064
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_pistol_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_pistolxm3.png b/resources/rhud/ui/icons/weapon_pistolxm3.png
new file mode 100644
index 000000000..93fe781a5
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_pistolxm3.png differ
diff --git a/resources/rhud/ui/icons/weapon_poolcue.png b/resources/rhud/ui/icons/weapon_poolcue.png
new file mode 100644
index 000000000..1c804e595
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_poolcue.png differ
diff --git a/resources/rhud/ui/icons/weapon_precisionrifle.png b/resources/rhud/ui/icons/weapon_precisionrifle.png
new file mode 100644
index 000000000..c9a59dce6
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_precisionrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_proxmine.png b/resources/rhud/ui/icons/weapon_proxmine.png
new file mode 100644
index 000000000..6adb57597
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_proxmine.png differ
diff --git a/resources/rhud/ui/icons/weapon_pumpshotgun.png b/resources/rhud/ui/icons/weapon_pumpshotgun.png
new file mode 100644
index 000000000..df1112abc
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_pumpshotgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_pumpshotgun_mk2.png b/resources/rhud/ui/icons/weapon_pumpshotgun_mk2.png
new file mode 100644
index 000000000..765a90baa
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_pumpshotgun_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_railgun.png b/resources/rhud/ui/icons/weapon_railgun.png
new file mode 100644
index 000000000..2b86e7104
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_railgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_railgunxm3.png b/resources/rhud/ui/icons/weapon_railgunxm3.png
new file mode 100644
index 000000000..2b86e7104
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_railgunxm3.png differ
diff --git a/resources/rhud/ui/icons/weapon_raycarbine.png b/resources/rhud/ui/icons/weapon_raycarbine.png
new file mode 100644
index 000000000..27443f457
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_raycarbine.png differ
diff --git a/resources/rhud/ui/icons/weapon_rayminigun.png b/resources/rhud/ui/icons/weapon_rayminigun.png
new file mode 100644
index 000000000..7a613bf25
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_rayminigun.png differ
diff --git a/resources/rhud/ui/icons/weapon_raypistol.png b/resources/rhud/ui/icons/weapon_raypistol.png
new file mode 100644
index 000000000..c200037af
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_raypistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_remotesniper.png b/resources/rhud/ui/icons/weapon_remotesniper.png
new file mode 100644
index 000000000..776f8838c
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_remotesniper.png differ
diff --git a/resources/rhud/ui/icons/weapon_revolver.png b/resources/rhud/ui/icons/weapon_revolver.png
new file mode 100644
index 000000000..f4f6685cd
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_revolver.png differ
diff --git a/resources/rhud/ui/icons/weapon_revolver_mk2.png b/resources/rhud/ui/icons/weapon_revolver_mk2.png
new file mode 100644
index 000000000..0e42abcc3
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_revolver_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_rpg.png b/resources/rhud/ui/icons/weapon_rpg.png
new file mode 100644
index 000000000..1f44760f3
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_rpg.png differ
diff --git a/resources/rhud/ui/icons/weapon_sawnoffshotgun.png b/resources/rhud/ui/icons/weapon_sawnoffshotgun.png
new file mode 100644
index 000000000..4633ba429
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_sawnoffshotgun.png differ
diff --git a/resources/rhud/ui/icons/weapon_smg.png b/resources/rhud/ui/icons/weapon_smg.png
new file mode 100644
index 000000000..2fb294b43
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_smg.png differ
diff --git a/resources/rhud/ui/icons/weapon_smg_mk2.png b/resources/rhud/ui/icons/weapon_smg_mk2.png
new file mode 100644
index 000000000..90f443440
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_smg_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_smokegrenade.png b/resources/rhud/ui/icons/weapon_smokegrenade.png
new file mode 100644
index 000000000..9d0ce410c
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_smokegrenade.png differ
diff --git a/resources/rhud/ui/icons/weapon_sniperrifle.png b/resources/rhud/ui/icons/weapon_sniperrifle.png
new file mode 100644
index 000000000..bcfe6f796
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_sniperrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_snowball.png b/resources/rhud/ui/icons/weapon_snowball.png
new file mode 100644
index 000000000..226076d36
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_snowball.png differ
diff --git a/resources/rhud/ui/icons/weapon_snowlauncher.png b/resources/rhud/ui/icons/weapon_snowlauncher.png
new file mode 100644
index 000000000..d61cdcd8d
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_snowlauncher.png differ
diff --git a/resources/rhud/ui/icons/weapon_snspistol.png b/resources/rhud/ui/icons/weapon_snspistol.png
new file mode 100644
index 000000000..3deb75216
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_snspistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_snspistol_mk2.png b/resources/rhud/ui/icons/weapon_snspistol_mk2.png
new file mode 100644
index 000000000..111a69730
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_snspistol_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_specialcarbine.png b/resources/rhud/ui/icons/weapon_specialcarbine.png
new file mode 100644
index 000000000..0fad7dfd7
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_specialcarbine.png differ
diff --git a/resources/rhud/ui/icons/weapon_specialcarbine_mk2.png b/resources/rhud/ui/icons/weapon_specialcarbine_mk2.png
new file mode 100644
index 000000000..59209c6ac
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_specialcarbine_mk2.png differ
diff --git a/resources/rhud/ui/icons/weapon_stickybomb.png b/resources/rhud/ui/icons/weapon_stickybomb.png
new file mode 100644
index 000000000..c1dea2d9a
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_stickybomb.png differ
diff --git a/resources/rhud/ui/icons/weapon_stone_hatchet.png b/resources/rhud/ui/icons/weapon_stone_hatchet.png
new file mode 100644
index 000000000..93a817db4
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_stone_hatchet.png differ
diff --git a/resources/rhud/ui/icons/weapon_stungun.png b/resources/rhud/ui/icons/weapon_stungun.png
new file mode 100644
index 000000000..4ce3effdb
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_stungun.png differ
diff --git a/resources/rhud/ui/icons/weapon_stungun_mp.png b/resources/rhud/ui/icons/weapon_stungun_mp.png
new file mode 100644
index 000000000..4ce3effdb
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_stungun_mp.png differ
diff --git a/resources/rhud/ui/icons/weapon_stunrod.png b/resources/rhud/ui/icons/weapon_stunrod.png
new file mode 100644
index 000000000..fd017c65e
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_stunrod.png differ
diff --git a/resources/rhud/ui/icons/weapon_switchblade.png b/resources/rhud/ui/icons/weapon_switchblade.png
new file mode 100644
index 000000000..044e3bf0b
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_switchblade.png differ
diff --git a/resources/rhud/ui/icons/weapon_tacticalrifle.png b/resources/rhud/ui/icons/weapon_tacticalrifle.png
new file mode 100644
index 000000000..78504a7da
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_tacticalrifle.png differ
diff --git a/resources/rhud/ui/icons/weapon_tecpistol.png b/resources/rhud/ui/icons/weapon_tecpistol.png
new file mode 100644
index 000000000..c878ad4f7
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_tecpistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_unarmed.png b/resources/rhud/ui/icons/weapon_unarmed.png
new file mode 100644
index 000000000..ade401297
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_unarmed.png differ
diff --git a/resources/rhud/ui/icons/weapon_vintagepistol.png b/resources/rhud/ui/icons/weapon_vintagepistol.png
new file mode 100644
index 000000000..81789128d
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_vintagepistol.png differ
diff --git a/resources/rhud/ui/icons/weapon_wrench.png b/resources/rhud/ui/icons/weapon_wrench.png
new file mode 100644
index 000000000..a727be9ec
Binary files /dev/null and b/resources/rhud/ui/icons/weapon_wrench.png differ
diff --git a/resources/rhud/ui/index.html b/resources/rhud/ui/index.html
new file mode 100644
index 000000000..cbe664d32
--- /dev/null
+++ b/resources/rhud/ui/index.html
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+ rHUD
+
+
+
+
+
+
diff --git a/resources/rhud/ui/sounds/beltalarm.ogg b/resources/rhud/ui/sounds/beltalarm.ogg
new file mode 100644
index 000000000..0dd2f7910
Binary files /dev/null and b/resources/rhud/ui/sounds/beltalarm.ogg differ
diff --git a/resources/rhud/ui/sounds/beltbuckle.ogg b/resources/rhud/ui/sounds/beltbuckle.ogg
new file mode 100644
index 000000000..4bec31be3
Binary files /dev/null and b/resources/rhud/ui/sounds/beltbuckle.ogg differ
diff --git a/resources/rhud/ui/sounds/beltunbuckle.ogg b/resources/rhud/ui/sounds/beltunbuckle.ogg
new file mode 100644
index 000000000..3fc6389e3
Binary files /dev/null and b/resources/rhud/ui/sounds/beltunbuckle.ogg differ
diff --git a/server.cfg b/server.cfg
index 80103c00b..bce8b8866 100644
--- a/server.cfg
+++ b/server.cfg
@@ -262,9 +262,21 @@ ensure
ensure BigDaddy-Airbags
ensure BigDaddy-RadioAnimation
-ensure BigDaddy-VehicleDamage
ensure BigDaddy-VendingMachines
ensure BigDaddy-Money
+ensure BigDaddy-CarLockPick
+ensure BigDaddy-EAS
+ensure BigDaddy-Trains
+ensure
+ensure
+ensure
+ensure
+ensure
+ensure
+ensure
+ensure
+ensure
+
ensure thinline_leprops
ensure ltundra
@@ -897,4 +909,35 @@ add_ace group.helper hypnonema allow
add_ace builtin.everyone sem_intmenu.leo allow
add_ace builtin.everyone sem_intmenu.fire allow
add_ace group.helper sem_intmenu.unjail allow
-add_ace group.helper sem_intmenu.unhospital allow
\ No newline at end of file
+add_ace group.helper sem_intmenu.unhospital allow
+
+
+add_ace builtin.everyone rhud.config.open allow
+add_ace builtin.everyone rhud.config.layout allow
+add_ace builtin.everyone rhud.config.color allow
+add_ace group.admin rhud.config.export allow
+
+add_ace group.admin rhud.aop allow
+
+add_ace group.admin rhud.peacetime allow
+
+add_ace builtin.everyone rhud.priority.active allow
+add_ace builtin.everyone rhud.priority.cooldown allow
+add_ace builtin.everyone rhud.priority.onhold allow
+add_ace builtin.everyone rhud.priority.reset allow
+
+add_ace builtin.everyone rhud.player.heal_self allow
+add_ace group.admin rhud.player.heal_other allow
+
+
+
+
+
+
+
+
+
+
+
+
+