└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Mechanic Guide 2 | Read this before opening a ticket. please GOD, read it. 3 | 4 | ## Multi-Framework Support 5 | My actual "live" support of this is very limited 6 | With the use of my free script `jim_bridge` the script is now able to be used fully on: 7 | - qb-core 8 | - qbx-core 9 | - ox_core 10 | - ex_extended - (with the use of `ox_lib`, `ox_target` and `ox_inventory`) 11 | 12 | The ones we can personally help with are qb-core and qbx-core, the others are just compatability as of now 13 | Most likely `es_extended` will have many options that I don't know about, so don't expect anything special from it 14 | 15 | ------------------ 16 | ## Performance Items 17 | 18 | - These all work very similarly 19 | - Stand next to the vehicle and use these items. 20 | - If the upgrade can not be put on the car, you will get a notification telling you so. 21 | - If it can, you will begin adding it to the vehicle. 22 | - If you have an upgraded part already in the vehicle, adding a different level item will remove the previous upgrade from the car and place it in your inventory. 23 | - The mechanic's `toolbox` item is used to remove these upgrades and set them back to stock. 24 | - The items classed as performance items include: 25 | ``` 26 | - car_armor - "Vehicle Armor" 27 | - brakes1 - "Tier 1 Brakes" 28 | - brakes2 - "Tier 2 Brakes" 29 | - brakes3 - "Tier 3 Brakes" 30 | 31 | - engine1 - "Tier 1 Engine" 32 | - engine2 - "Tier 2 Engine" 33 | - engine3 - "Tier 3 Engine" 34 | - engine4 - "Tier 4 Engine" 35 | - engine5 - "Tier 5 Engine" 36 | 37 | - suspension1 - "Tier 1 Suspension" 38 | - suspension2 - "Tier 2 Suspension" 39 | - suspension3 - "Tier 3 Suspension" 40 | - suspension4 - "Tier 4 Suspension" 41 | - suspension5 - "Tier 5 Suspension" 42 | 43 | - transmission1 - "Tier 1 Transmission" 44 | - transmission2 - "Tier 2 Transmission" 45 | - transmission3 - "Tier 3 Transmission" 46 | - transmission4 - "Tier 4 Transmission" 47 | 48 | - drifttires - "Drift Tires" 49 | - bprooftires - "Bulletproof Tires" 50 | 51 | - turbo - "Supercharger Turbo" 52 | - headlights - "Xenon Headlights" 53 | ``` 54 | ------------------ 55 | ## Cosmetic Items 56 | 57 | - These all work very similarly 58 | - Stand next to or get in the vehicle and use these items, if options are available for the car this will bring up a menu that shows a list of possible cosmetics 59 | - To reset back to default, use another of the same item, as you are putting the "stock" on 60 | - The items classed as costmetic items include: 61 | ``` 62 | - bumper - "Vehicle Bumper" 63 | - exhaust - "Vehicle Exhaust" 64 | - externals - "Exterior Cosmetics" 65 | - hood - "Vehicle Hood" 66 | - horn - "Custom Vehicle Horn" 67 | - internals - "Internal Cosmetics" 68 | - livery - "Livery Roll" 69 | - paintcan - "Vehicle Spray Can" 70 | - customplate - "Customized Plates" 71 | - rims - "Custom Wheel Rims" 72 | - roof - "Vehicle Roof" 73 | - rollcage - "Roll Cage" 74 | - seat - "Seat Cosmetics" 75 | - skirts - "Vehicle Skirts" 76 | - spoiler - "Vehicle Spoiler" 77 | - tires - "Drift Smoke Tires" 78 | - tint_supplies - "Tint Supplies" 79 | ``` 80 | 81 | ------------------ 82 | ## Extra Damage Items 83 | 84 | - These items are for the extra damages included in jim-mechanic 85 | - The upgrades improve durability for each part and lower the chance of the damage effects kicking in 86 | - Oil Pump 87 | - "Your engine is overheating" - Slowly damages your engine's health 88 | - Drive Shaft 89 | - "The steering feels wrong.." - Affects steering temporarily 90 | - Spark Plugs 91 | - "The engine has stalled" - The car will stop temporarily 92 | - Car Battery 93 | - "Theres something affecting your lights.." - Makes the lights in your car flicker on and off 94 | - Fuel Tank 95 | - "You hear something dripping.." - Lowers fuel level faster 96 | 97 | These can be repaired by a mechanic with mechanic tools item 98 | 99 | ------------------ 100 | ## Mechanic Items 101 | 102 | - This is the list of rest of the items that come with this script 103 | ``` 104 | - toolbox - "Toolbox" - This is the scripts main way to control the performance modifications in a car. 105 | - mechanic_tools - "Mechanic tools" - This is the script's main repair tools 106 | - nos - "NOS Bottle" - My scripts Nitrous Canister 107 | - noscan - "Empty NOS Bottle" - Empty Nitrous Canister 108 | - ducttape - "Duct Tape" - A configurable repair item 109 | - mechboard - "Mechanic Sheet" - Given as a list of changes when completing a preview of the vehicle 110 | - underglow_controller - "Neon Controller"- Controls underglow style and colour + xenon headlight colours 111 | - sparetire - For repairing wheels while in the toolbox menu 112 | - sparkplugs - For repairs 113 | - carbattery - For repairs 114 | - axleparts - For repairs 115 | - newoil - For repairs 116 | ``` 117 | 118 | ------------------ 119 | ## Toolbox / Check_tunes.lua 120 | 121 | - This is all about the item "toolbox" this item 122 | - The toolbox is only usable by mechanics, if `Config.System.ItemRequiresJob` is enabled 123 | - This item can only be used **OUTSIDE** of a vehicle. 124 | - This displays information about the vehicle's currently installed peformance modifications 125 | - It will attempt to grab information from `vehicles.lua` to display vehicle names and the value, it does this by searching for a matching "model hash". 126 | - It will list the names and levels of each installed modification, and even if they can be installed on the vehicle at all. 127 | - If there is an installed item you can select it in the shown menu, then you will be the given a confirmation option to remove it. Doing so will set it back to stock and place the specific upgrade in your inventory. 128 | - At the bottom of this menu is a quick shortcut to what is displayed by the `/checkmods` command, which displays a simple list of all possible cosmetic mods that can applied to the current vehicle 129 | 130 | ------------------ 131 | ## Mechanic_Tools / repair.lua 132 | 133 | - This menu is activated by the item "mechanic_tools" 134 | - Note: It tires to get all the information BEFORE the progressbars so if you don't get any animations or menu, theres an error. 135 | - It will start with an animated check of the engine and body for damage and then get a list what it found. 136 | - How this menu functions is defined by the config options 137 | - `FreeRepair = true` will allow you to repair the car with no requirements 138 | - `StashRepair = true` will place a stash location for the mechanics to place their materials so they can be pulled from there and used when repairing 139 | 140 | ------------------ 141 | ## Nitrous / nos.lua 142 | 143 | - Nitrous relies on three columns in the database `player_vehicles` 144 | - `hasnitro` - Wether the vehicle has Nitrous in or not 145 | - `noslevel` - The amount of nos that is in the vehicle (max 100) 146 | - `noscolour` - The RGB colours of the NOS Purge 147 | - A vehicle's NOS is saved between server restarts for player owned vehicles 148 | - To add NOS to a vehicle you will first need `Turbo` to be installed on the vehicle. 149 | - Then you will need a NOS cannister (`nos`) and to use it outside of the vehicle. This will start a skill check to install it. 150 | - The NOS consists of two modes, these can be switched with `Left Ctrl` 151 | - Boost Mode 152 | - Purge Mode 153 | - When in Boost Mode you can control the power with `Page Down` or `Page Up` and is activated with `Left Shift` 154 | - Level 1 - Standard NOS Boost 155 | - Level 2 - Increased acceleration + Boost 156 | - Level 3 - Greater acceleration + Boost 157 | - Boosting for too long will damage the engine and the greater the boost level the more damage that will be done 158 | - When in Purge Mode, you will be able to activate purge spray's from your vehicle 159 | - `Page Down` or `Page Up` in this mode controls the the of spray (purely cosmetic) 160 | - Purging after boosting speeds up the cooldown and allows you to boost again sooner 161 | - When the NOS is used up in a vehicle, the driver will receive an empty nos can, which can be refilled/crafted to make it full again. 162 | - If you put in a new can before you run out of NOS in the vehicle you will also recieve an empty can. 163 | - NOS can be installed on almost any vehicle 164 | - If it allows you to install `Turbo` you can install NOS 165 | - The `manualPurgeLoc` table at the bottom of the file is the Manually placed Purge locations on vehicles 166 | - Currently I added Super cars beacuse their default placement was all over the place 167 | - Feel free to edit/add any and share these with others. 168 | ``` 169 | { xOffset, yOffset, zOffset, xRotation, yRotation, zRotation }, 170 | ``` 171 | ------------------ 172 | ## manualrepair.lua / Non-Mechanic repair benches 173 | 174 | - This file creates repair benches that can **ONLY** be used when there isn't any mechanics on duty. 175 | - The benches are added to set locations at the top of this file 176 | - They are activated by targetting with `qb-target` while in a car 177 | - How the config.lua options are set will determine how the menu functions 178 | - `Config.ManualRepairs.ManualRepairCost` - This is the **SET** amount a vehicle repair will cost 179 | - `Config.ManualRepairs.ManualRepairBased` - when `true` this overrides the above and grabs the value of the vehicle from vehicles.lua 180 | - `Config.ManualRepairs.ManualRepairPercent` - The percentage of the vehicle value to be used. Default is `5` 181 | - `Config.ManualRepairs.repairEngine` - `true` repair engine + body, `false` repair body only 182 | - `Config.ManualRepairs.repairExtras` - `true` will attempt to repair extra damages 183 | - `Config.ManualRepairs.dutyMessage` - The excuse for why people can't repair while mechanics are on duty. 184 | - `Config.ManualRepairs.repairAnimate` - Animates the repair, better than a progress bar 185 | - `Config.ManualRepairs.repairSpeed` - How fast each repair step takes 186 | 187 | ------------------ 188 | ## police.lua / Emergency Repair Benches 189 | 190 | - This file creates repair/customisation benches for police 191 | - These are intended to be for Police/EMS players, but other job roles can be added easily 192 | - It adds a bench to the set locations where they can repair and change a cosmetics and performance. 193 | - This is activated by using your target script. 194 | - What can be accessed is handled in the config under `Emergency` 195 | 196 | ------------------ 197 | ## preview.lua - `/preview` 198 | 199 | - The preview system is shown by typing `/preview` 200 | - Shows a menu with all possible cosmetic changes for the current vehicle 201 | - There is a `hardCam` config option to lock the camera, which is moveable with the camera button at the top of each cosmetic menu 202 | - When complete, press "Stop Previewing" or exit the vehicle and the preview will be classed as finished 203 | - This system locks the vehicle in place 204 | - As per exploit protection, is attempts to change the vehicle plate so people can't save their changes 205 | - This is controlled by `Config.Overrides.disablePreviewPlate` 206 | - Some people need to remove this as some persistant vehicle scripts cause vehicles to duplicate. 207 | - When exiting the vehicle, depending on the set config options you will recieve a list of the changes made 208 | - `Config.Discord.DiscordPreview` will attempt to print the list to a specified discord channel 209 | - `Config.Previews.PreviewPhone = true` will attempt to use the set phone system to send the player a phone email with the list 210 | - `Config.Previews.PreviewPhone = false` will spawn a item `mechboard` which when used will show the list of changes on screen 211 | - Note: Spawning the `mechboard` item, trying to use it and then asking me why it's telling you not to spawn it shows you haven't read this- 212 | 213 | #### To create a discord webhook follow the following steps: 214 | - Click the gear icon (Edit Channel) of the channel you want to post to. 215 | - Click Webhooks in the left menu. 216 | - Click the Create Webhook button. 217 | - Enter a Name of your choice. 218 | - Click the Copy button of the Webhook URL. 219 | - Click the Save button. 220 | - Paste the Webhook URL in the script you want to use it. 221 | 222 | ## Car Lifts 223 | The script features built in synced carlift for your vehicles to be placed on 224 | - These aren't required for edits, but change the animation for RP 225 | - These are toggleable in the config if you wish to use another carlift script 226 | - All locations come preset with carlifts in some form 227 | - Some have replacement carlifts 228 | - Some have new carlifts 229 | - Some make use of the carlifts already in a MLO 230 | 231 | For example: 232 | ```lua 233 | carLift = { 234 | { coords = vec4(-201.85, -1319.65, 31.3, 19.36), useMLOLift = true }, 235 | { coords = vec4(-221.27, -1318.71, 31.3, 352.67), useMLOLift = true }, 236 | }, 237 | ``` 238 | These locations make use of CarLifts already in place at Gabz Alta Street MLO, this is shown with the extra `use = true` or `useMLOLift = true` 239 | 240 | ----------------- 241 | ## Configuration 242 | 243 | There is little snippets of information on each line for these, but this is a more detailed list of information 244 | 245 | ### Config.Lan 246 | - This script has a built in locale system 247 | - You will need to then set the langauge with Config.Lan. By default it's set to english `"en"` 248 | 249 | ----------------- 250 | ## System 251 | 252 | ### Debug 253 | - This enables a debug mode, this will enable the debug boxes around locations to show you where they are set and where they are moving to. 254 | - This also enables Debug Messages in the F8 Menu and server console to help me and you with debugging issues 255 | 256 | ### Menu 257 | - This controls which menu will be used 258 | - "qb" for `qb-menu/qbx-menu` or `jixel-menu` 259 | - "ox" for `ox_lib` 260 | - "gta" for `warmenu` 261 | 262 | ### Notify 263 | - This controls which notification system is to be called 264 | - "qb" - `qb-core/qbx-core` 265 | - "ox" - `ox_lib` 266 | - "esx" - `es_extended` 267 | - "gta" - `Built in GTA notifications` 268 | - "okok" - `okok-notify` 269 | 270 | ### ProgressBar 271 | - This Controls what progressbar will be shown when using the script 272 | - "qb" - `qb-core/qbx-core` Default 273 | - "ox" - `ox_lib` default 274 | - "gta" - `gta` default 275 | - "esx" - `esx_progressbar` default 276 | 277 | ### distkph 278 | - This is only used when the odometer is used, toolbox menu and the onscreen milage display. 279 | - `true` = distance in Kilometers 280 | - `false` = distance in Miles 281 | 282 | ----------------- 283 | ## General 284 | 285 | ### JimShops 286 | - Set this to true if you are using my free qb-shops alternative, [jim-shops](https://github.com/jimathy/jim-shops) 287 | - Set to false to use default inventory style shops 288 | 289 | ### showClockInTill 290 | - Toggle this to enable showing toggling duty option at cash registers 291 | 292 | ### showBossMenuTill 293 | - Toggle this to enable showing the BossMenu option at cash registers 294 | 295 | ----------------- 296 | ## Main 297 | 298 | ### craftCam 299 | - This enables alot the use of custom cameras all around the script 300 | - Its in the crafting location as this is what it was based on 301 | - It adds custom cameras for extra immersion when crafting or editing vehicles 302 | 303 | ### MultiCraft 304 | - This enables multicrafting 305 | - Using this allows you to make multiples of crafting recipes faster 306 | 307 | ### MultiCraftAmounts 308 | - This how many multiples will be offered when crafting 309 | 310 | ### showItemBox 311 | - This was added for people with customised inventories 312 | - qb-inventory by default(for some reason) doesn't include the itembox event when triggered (use, add, remove) 313 | - you need to add them your self after, but some put them in to be automated 314 | - Basically this toggles showing these boxes or not, to stop doubling them up 315 | 316 | ----------------- 317 | ## Main 318 | 319 | ### isVehicleOwned 320 | - This checks the database for if the vehicle is player owned or not. 321 | - If you only want customisations to be made to player owned vehicles, enable this. 322 | 323 | ### ItemRequiresJob 324 | - This locks the mechanics performance items and cosmetic items behind a job role. 325 | - The jobs are set lower in the config.lua file at `Config.JobRoles` 326 | 327 | ### JobLocationRequired 328 | - This makes it so items become location locked. You will only be able to work if you are in a polyzone for a job's location (items will only work in a set mechanic shop) 329 | - If this is disabled items can be used anywhere. 330 | 331 | ### LocationBlips 332 | - This enables your locations blips even if you disable location requirements 333 | 334 | ### CostmeticJob 335 | - This enables or disables a job requirement on cosmetic items. 336 | - This ignores `Config.System.ItemRequiresJob` 337 | 338 | ### JobRoles 339 | - This is the list of jobs that can use items in the script if `ItemRequiresJob` is enabled 340 | 341 | ## Overrides 342 | 343 | ### CosmeticItemRemoval 344 | - This makes cosmetic items have unlimited uses 345 | - Disabling this makes items remove from inventory after use. 346 | 347 | ### updateServerDelay 348 | - This is to help stop overloading of server databases when many changes are happening between players 349 | - It adds a specified cooldown in seconds between changes which resets every time a change is made 350 | - It doesn't save the current vehicle's mods until the cooldown is done 351 | 352 | ### ChameleonPaints 353 | - This adds makes the console exclusive chameleon paints appear when changing vehicle paints 354 | - They are loaded in the script by default and to fully remove, you need to remove the loaded files in the data and stream folders 355 | 356 | ### DoorAnimations 357 | - This enables or disables door opening and closing animations whne editing vehicles or viewing modifications 358 | 359 | ### disableNos 360 | - Enabling this disables ALL Nirtous boosting related effects controlled by `jim-mechanic` 361 | - Do this if you don't want NOS in your server/have another script controlling it 362 | 363 | ### showItemBox 364 | - Enabling this shows the "item boxes" for using, adding and removing items 365 | - Inventory scripts like ox_lib don't use this 366 | - But some inventories do this automatically so this isn't needed and may show duplicate boxes 367 | 368 | ### disablePreviewPlate 369 | - Enabling this `disables` the changing of the plates when previewing 370 | - There is added in exploit protection as some users were managing to save their vehicles with previewed mods on 371 | - Some persistant vehicle scripts counter act this and duplicate the vehicle. 372 | - Disabling stops this, but also removes the exploit protection 373 | - I am attempting to work with other devs to make this completely usable. 374 | 375 | ### disableToolboxProp 376 | - This is a simple toggle to remove the toolbox when using the `toolbox` prop when using the `toolbox` item 377 | - For some reason it wont load for some people so this stops the script from hanging when loading it 378 | 379 | ### saveOnExit 380 | - This is a toggle to enable attempting to save the current vehicle the player is exiting to the database 381 | - It doesn't save if your garage removes the vehicle "too fast" or instantly 382 | - This isn't on by default as it SHOULD save the vehicle while driving but adds an extra chance for it 383 | 384 | ## Crafting 385 | 386 | ### craftCam 387 | - This enables customs cameras ALL through the script, when modifying vehicles, when crafting 388 | - This is a toggle because some users complained of motion sickness 389 | 390 | ### MultiCraft 391 | - This enables the basic MultiCrafting features when crafting 392 | - It allows users to make multiples of items when crafting 393 | 394 | ### MutliCraftAmounts 395 | - This is the multiples of amounts you can craft when multicrafting 396 | 397 | ## Harness 398 | 399 | ### JobOnly 400 | - This enables the harness item to only be put on the vehicles by the job roles specified in `Config.Main.JobRoles` 401 | - Disabling this makes it so anyone can add a harness to a vehicle 402 | 403 | ### HarnessControl 404 | - This enables harness and seatbelt controls inside jim-mechanic 405 | - Only use this if you have followed the install instructions correctly 406 | 407 | ### seatbeltEasyLeave 408 | - This enables the ability to leave a vehicle while the `seatbelt` is attached 409 | - Disabling locks you in the vehicle until you unbuckle it 410 | 411 | ### harmessEasyLeave 412 | - This enables the ability to leave a vehicle while the `harness` is attached 413 | - Disabling locks you in the vehicle until you unbuckle it 414 | 415 | ### progOn 416 | - This adds a progress bar for players when buckling their `harness` 417 | - Disabling makes it instant 418 | 419 | ### progOff 420 | - This adds a progress bar for players when un-buckling their `harness` 421 | - Disabling makes it instant 422 | 423 | ### seatbeltNotify 424 | - When enabled shows a notification when buckling and unbuckling the seatbelt and harness 425 | 426 | ### timeOn 427 | - How long it takes for the harness to be attached 428 | - Default = `3000` 429 | ### timeOff 430 | - How long it takes for the harness to be attached 431 | - Default = `2000` 432 | 433 | ### crashKill 434 | - Enable this to make it more likely when a player is ejected when crashing to be gravely injured 435 | 436 | 437 | ## vehFailure 438 | 439 | ### damages 440 | - This enables `jim-mechanic` control of vehicle extra damages in the script 441 | - Enable this if you don't use `qb-vehiclefailure` 442 | 443 | ### repairKits 444 | - This takes control of `advancedrepairkit` and `repairkit` if you don't use either `qb-mechanicjob` or `qb-vehiclefailure` 445 | - On frameworks that didn't use thse items, they can be added manually after enabling this 446 | 447 | ### fixCommand 448 | - This takes control of the `/fix` command after removing `qb-mechanicjob` and `qb-vehiclefailure` 449 | - This fixes the vehicle's extra damages aswell if enabled 450 | - Don't use this if you haven't removed the previous `/fix` command 451 | 452 | ### PreventRoll 453 | - This was added to take over `qb-vehiclefailures` ability to prevent vehicles from being flipped over by pressing right or left while still in the drivers seat 454 | 455 | ## CarLifts 456 | 457 | ### Enable 458 | - Simply enables the use of carlifts in the script 459 | 460 | ### Sound 461 | - Enables the carlift sounds when lifting up or moving down 462 | - Disabling makes them silent 463 | 464 | ### CarLiftModelReplace 465 | - This is list of possible carlift models that can be replaced in MLO's 466 | 467 | ### CarLiftUse 468 | - This is the list of usable carlife models in that a preadded to MLO's 469 | - It contains the offsets for the targets where you can control the lift 470 | 471 | ## Repairs 472 | 473 | ### FreeRepair 474 | - Enabling this makes all repairs by mechanic not require any materials to repair, so they repairs are free. 475 | 476 | ### StashRepair 477 | - This enables grabbing materials for repairs from their current jobs mechanics stash, these stashes are accessible at set loications in the locations.lua. 478 | - If disabled materials will be taken from the players inventory. 479 | 480 | ### ExtraDamages 481 | - This enables the extra damages throughout the script 482 | - (they are explained above) 483 | 484 | ### EffectLevels 485 | - These are the percent of damage to each part that is needed before they have a chance of triggering 486 | 487 | ### Parts 488 | - This is a list of items that are needed to repair the vehicles 489 | - You can only set one item per repair but the `MAX` cost is set next to it 490 | - If you have 1% of damages as an example, you will only need 1 item 491 | - If you have 100% of damages, you will need the full amount 492 | 493 | ## Previews 494 | 495 | ### hardCam 496 | - This enables custom set cameras for previewing 497 | - Pressing the camera button in the menu will change the angle of it 498 | - Stopping the preview will return it to normal 499 | 500 | ### PreviewPhone 501 | - If this is enabled, it will attempt to send an email to your phone of the changed mods during a preview 502 | - The current supported phones as of writing this are: 503 | - "gks" 504 | - "qs" 505 | - "qb" 506 | - "roadphone" 507 | - If this is disabled then the user will recieve a clipboard `mechboard` item with the list of changes 508 | 509 | ### PreviewJob 510 | - This makes it so a job role set in `Config.Main.JobRoles` is required to use the /preview command 511 | 512 | ### PreviewLocation 513 | - This makes it so you need to be a job location's polyzone to use the /preview command 514 | 515 | ### PhoneMail 516 | - If PreviewPhone is true, change this to choose the correct phone system 517 | - "qb" = use qb-phone for emails 518 | - "gks" = use gks-phone for emails 519 | - "qs" = use qs-smartphone for emails 520 | - "roadphone" = use roadphone for emails 521 | 522 | ### PhoneItems 523 | - This is list of phone items that are checked on the user 524 | - If not found the script will default to giving the player a clipboard instead 525 | 526 | ## StoreCraft 527 | 528 | ### Crafting 529 | - This simply enables crafting in the script for mechanics at targets set in locations.lua 530 | 531 | ### StashCraft 532 | - This enables crafting from the set stash in each location for job roles 533 | 534 | ### Stores 535 | - This enables the use of Stores to buy mechanic related items 536 | 537 | ## Odometer 538 | 539 | ### ShowOdo 540 | - This enables the use of the odometer hud in the script 541 | - Players can toggle this theirselves with `/showodo` 542 | 543 | ### OdoLocation 544 | - This determines where the location of the Odometer will be for your players 545 | - List of possible options: 546 | ``` 547 | "left" 548 | "right" 549 | "top" 550 | "top-left" 551 | "top-right" 552 | "bottom" 553 | "bottom-left" 554 | "bottom-right" 555 | ``` 556 | 557 | ### OdoShowIcons 558 | - As of v2.9 there is now a "dashboard" feature that shows icons representing the damage 559 | - Toggling this enables or completely disables these 560 | 561 | ### OdoAlwaysShowIcons 562 | - Enable this to show the icons ALL THE TIME, even when parts are not damaged 563 | 564 | ### ShowToAll 565 | - Enabling this allows all passengers in the car to see the cars odometer hud 566 | 567 | ### OdoIconsToShow 568 | - Fine control over which icons will show 569 | - Setting any of these to false will make the icon never be shown 570 | 571 | ## Emergency 572 | 573 | ### requireDutyCheck 574 | - When enabled you won't be able to repair at an Emergency Repair bench if there are any people with the mechanics online 575 | - When disabled, the repair option will always be there 576 | 577 | ### Jobs 578 | - These are the jobs and their grades that can that the bench 579 | 580 | ### LockEmergency 581 | - This makes it so you can only modify vehicles with the class "emergency" in their meta data 582 | 583 | ### Locations 584 | - The locations where the benches will spawn, they are currently defaulted to GABZ MPRD and PillBox 585 | 586 | ### CosmeticsTable 587 | - The list of items that will show in the emergency bench menu's 588 | 589 | ### PerformanceTable 590 | - The list of perfromance settigns that show in the emergency bench menu's 591 | 592 | ## ManualRepairs 593 | 594 | ### ManualRepairCost 595 | - This is the amount to charge people for a repair at the manual repair benches. 596 | - The default is `5000` but I recommend setting this to a high amount for your server 597 | - The intention of the mechanic script is to provide RP to the server, there is no RP in using a prop instead of talking to someone. 598 | 599 | ### ManualRepairCostBased 600 | - Set this to true if you want the cost to ALWAYS be the amount set at "ManualRepairCost" 601 | - Set this to false if you want it to "ManualRepairCost" to be the max and cost is calculated by damage 602 | 603 | ### ManualRepairBased 604 | - This overrides the previous setting `ManualRepairCost` 605 | - Setting this to true sets the price of the repair to be based on the cost of the vehicle in your vehicles.lua 606 | 607 | ### ManualRepairPercent 608 | - This is only used if `ManualRepairBased` is enabled. 609 | - This needs to be set to the percentage of the value of the vehicle you want to charge people per repair 610 | - For example: 611 | - 5% of a $10,000 car would be $500 per repair 612 | - 10% of a $200,000 car would be $20,000 per repair 613 | 614 | ### repairEngine 615 | - When enabled this will include engine repairs in the Repair Bench process 616 | - If disabled it will only attempt to repair the body 617 | 618 | ### repairExtras 619 | - Enabling this will include Extra Damages repair that come from `qb-mechanicjob` 620 | - if `qb-mechanicjob` is not found but this is true, it will skip over these extras 621 | 622 | ### dutyMessage 623 | - I left his here as people were giving me different reasons for why they wanted the repair benches in the script 624 | - I'm leaving this up to them for how they want to phrase their notification. 625 | - Default: `"There is a Mechanic on duty!"` 626 | 627 | ### repairAnimate 628 | - When `true` this will add a small animatied sequence to the repair of the vehicle, instead of people just sitting and watching a progressbar 629 | 630 | ### repairSpeed 631 | - The time between each task while using repairAnimate. `1500` Seems to be a reasonable time for each one 632 | 633 | ## antiLag 634 | 635 | ### antiLagDis 636 | - This is the distance in units that players will hear the antilag noises 637 | 638 | ## maxAudio 639 | - The max volume of the antilag audio clips (max setting is 1.0) 640 | 641 | ## NOS 642 | 643 | ### JobOnly 644 | - Only allow job roles to change NOS 645 | 646 | ### NosRefillCharge 647 | - This only is used at NOS Refill stations, if you have added them to your locations in locations.lua 648 | - The amount in dollars required for a player to refill an Empty NOS can. 649 | - Note: There is also the option of a mechanic crafting them for you. 650 | - The default is `1000` 651 | 652 | ### NosBoostPower 653 | - Fine controls over the accelleration power for each boost level 654 | - Shown as a table for optimization 655 | ```lua 656 | NosBoostPower = { 657 | 20.0, -- Level 1 658 | 35.0, -- Level 2 659 | 50.0, -- Level 3 660 | }, 661 | ``` 662 | - These values seem a good default, but may need adjusting if you have customised vehicle meta files 663 | 664 | ### NitrousUseRate 665 | - This is how fast the nitrous drains 666 | - Default - `0.3` 667 | - Boost Level 1 changes this number minus half of this number (0.4 - (0.4 / 2)) 668 | - Boost Level 3 changes this number plus half of this number (0.4 + (0.4 / 2)) 669 | 670 | ### NitrousCoolDown 671 | - This is how long a player has to wait before the boost works again 672 | - Default - `7` 673 | - 7 seconds seems to be enough time for it to cooldown, setting this too low allows some servers players to travel at insane speeds after spamming the button 674 | - Set to `0` to disable this 675 | 676 | ### CooldownConfirm 677 | - Simply, this will play a confirmation beep when cooldown is complete 678 | - Made is toggleable in the config in case people didn't like it 679 | 680 | ### nosDamage 681 | - This enables NOS causing damage to engine while boosting 682 | - Boosting for too long will play sound alerts and damage the Engine. 683 | 684 | ### boostExplode 685 | - If boosting too long at Boost Level 3 the NOS tank will explode. 686 | - Will cause damage to the vehicle and cause a fire. 687 | - This will remove remaining NOS from the vehicle and not give an empty tank 688 | 689 | ### EnableFlame 690 | - `true` adds exhaut flame effects while boosting 691 | ### EnableTrails 692 | - `true` adds taillight effects while boosting 693 | ### EnableScreen 694 | - `true` True adds screen effects while boosting 695 | 696 | ### FlameDis 697 | - This is the distance check on the visuals for flame effects from nos 698 | - As of v3.3 this currently only applies to anti lag effects 699 | 700 | ### skillcheck 701 | - When adding Nos to a vehicle there are three skillcheck script options available 702 | - "qb-skillbar" 703 | - "qb-lock" 704 | - "ps-ui" 705 | 706 | ### explosiveFail 707 | - When `true` there is a `1 in 10` chance for when you fail the skillcheck for the tank to explode in the vehicle. 708 | - Doesn't cause much damage, but fill push the player and vehicle back 709 | 710 | ### explosiveFailJob 711 | - When `false` mecahnics WILL **NOT** cause explosions on failing the skill check 712 | - When `true` mechanics **CAN** cause explosions on failing the skill check 713 | 714 | ### HandlingChange 715 | - This helps change handling but is not recommended as some users reported this never resetting to defaults when boosting is finished. 716 | 717 | ## Discord 718 | 719 | ### DiscordPreview 720 | - This enables or disables the Discord Reports for the `/preview` command 721 | - When `true` this system will send the report to a specified discord channel using a webhook 722 | - When `false` this system will be ignored/disabled 723 | 724 | ### DiscordDefault 725 | - So people seem to be confused by this one. 726 | - This is the default channel that will be used, no matter where you are. 727 | - If you haven't set specific discord channels in a location, it **should** "default" to this link. 728 | 729 | ### DiscordColour 730 | - You don't need to touch this, but this is the default colour of the post in the discord channel 731 | - The default colour is `16753920` - this is a "decimal" colour number, which is a yellow colour. 732 | 733 | ### Duct tape: 734 | - Many people forgot these are a thing while begging me to add repair benches.. 735 | - The Ducttape item is intended to be an alternative and customisable version of repairkits 736 | - They are customisable and let even set the max amount of how much the parts get repaired 737 | 738 | ### Config.DuctTape.DuctSimpleMode 739 | - This sets the duct tape item into simple mode, repairing to the amount every time 740 | - `true` makes duct tape set every use to the amount set below at `MaxDuctEngine` 741 | - `false` uses the `DuctAmountEngine` value to repair the by vehicle each use 742 | 743 | ### Config.DuctTape.MaxDuctEngine 744 | - This is the MAX value the engine can be repaired by, leave this below 1000(100%) so people still need to use mechanic's 745 | - If `DuctSimpleMode` is `true` will set it straight to this amount 746 | - If `DuctSimpleMode` is `false` it will be the max amount it can be repaired to 747 | - Default = `450.0` - (45% health) 748 | 749 | ### Config.DuctAmountEngine 750 | - The amount to repair your engine by each ducttape item use 751 | - This is only used if `DuctSimpleMode` is `false` 752 | - Default = `100.0` - (10% Health) 753 | 754 | ### Config.DuctTape.DuctTapeBody 755 | - Setting this to `true` allows the body to be repaired along side the engine 756 | - This is also affected by `DuctSimpleMode` in the same ways 757 | 758 | ### Config.DuctTape.MaxDuctBody 759 | - This is the MAX value the body can be repaired by, leave this below 1000(100%) so people still need to use mechanic's 760 | - If `DuctSimpleMode` is `true` will set it straight to this amount 761 | - If `DuctSimpleMode` is `false` it will be the max amount it can be repaired to 762 | - Default = `450.0` - (45% health) 763 | 764 | ### Config.DuctAmountBody 765 | - The amount to repair your engine by each ducttape item use 766 | - This is only used if `DuctSimpleMode` is `false` 767 | - Default = `100.0` - (10% Health) 768 | 769 | ### Config.RemoveDuctTape 770 | - Simply, if this is `true` it will remove 1 ducttape item after use 771 | - If `false` it will be constantly reusable 772 | 773 | ------------------ 774 | ## Locations.lua 775 | 776 | - This is one of the most important files in the script 777 | - It holds all the locations for going on duty, where people can apply mods etc. 778 | - I have tried to include as many default mechanic shops as possible (All Gabz MLO's supported) 779 | - These are easy to edit, change or remove, make a new polyzone using the commands 780 | 1. `/pzcreate poly` 781 | 2. `/pzadd` 782 | 3. `/pzfinish` 783 | - The main building's polyzones are made use of when `Config.System.JobLocationRequired = true` enabling this makes it so mechanic items can only used these zones. 784 | - If you have `Config.System.RequiresJob = false` then anyone can use the items in this location, setting this config option to `true` makes it so mechanic workers are the only ones who can use them. 785 | 786 | ### Explanation of the locations and how to make one 787 | ```lua 788 | Config.Locations[#Config.Locations+1] = { 789 | Enabled = true, 790 | job = "mechanic", 791 | zones = { 792 | vec2(-263.99075317382, -1349.6701660156), 793 | vec2(-263.5015258789, -1298.9702148438), 794 | vec2(-229.94024658204, -1299.089477539), 795 | vec2(-229.81985473632, -1291.589477539), 796 | vec2(-216.73846435546, -1288.9470214844), 797 | vec2(-193.63221740722, -1294.155883789), 798 | vec2(-174.24346923828, -1293.1431884766), 799 | vec2(-151.77659606934, -1300.6693115234), 800 | vec2(-151.88639831542, -1311.1921386718), 801 | vec2(-177.41833496094, -1311.566772461), 802 | vec2(-177.5919342041, -1351.1942138672) 803 | }, 804 | autoClock = { enter = true, exit = true, }, 805 | stash = { 806 | { coords = vec4(-226.48, -1316.17, 31.27, 0.0), w = 3.6, d = 0.8, }, 807 | }, 808 | store = { 809 | { coords = vec4(-228.64, -1314.19, 31.3, 90.0), w = 3.60, d = 0.8 }, 810 | }, 811 | crafting = { 812 | { coords = vec4(-214.82, -1339.74, 31.46, 90.0), w = 2.8, d = 1.5 }, 813 | }, 814 | clockin = { 815 | { coords = vec4(-195.55, -1316.46, 31.2, 181.72), prop = false }, 816 | }, 817 | manualRepair = { 818 | { coords = vec4(-200.28, -1311.62, 31.3, 0.0), prop = true, }, 819 | }, 820 | carLift = { 821 | { coords = vec4(-201.85, -1319.65, 31.3, 19.36), use = true }, 822 | { coords = vec4(-221.27, -1318.71, 31.3, 352.67), use = true }, 823 | }, 824 | garage = { 825 | spawn = vec4(-182.74, -1317.61, 30.63, 357.23), 826 | out = vec4(-190.62, -1311.57, 31.3, 0.0), 827 | list = { "towtruck", "panto", "slamtruck", "cheburek", "utillitruck3" }, 828 | prop = true 829 | }, 830 | payments = { 831 | img = "https://static.wikia.nocookie.net/gtawiki/images/b/be/BennysOriginalMotorWorks-GTAO-Logo.png", 832 | { coords = vec4(-192.21, -1316.34, 31.10, 285.83), prop = true }, 833 | }, 834 | Restrictions = { 835 | Vehicle = { "Compacts", "Sedans", "SUVs", "Coupes", "Muscle", "Sports Classics", "Sports", "Super", "Motorcycles", "Off-road", "Industrial", "Utility", "Vans", "Cycles", "Service", "Emergency", "Commercial", }, 836 | Allow = { "tools", "cosmetics", "repairs", "nos", "perform" }, 837 | }, 838 | blip = { 839 | coords = vec3(-211.55, -1324.55, 30.9), 840 | label = "Bennys Original Motorworks", 841 | color = 1, 842 | sprite = 446, 843 | disp = 6, 844 | scale = 0.7, 845 | cat = nil, 846 | }, 847 | discord = { 848 | link = "", 849 | color = 16711680, 850 | } 851 | } 852 | ``` 853 | ### Explanation of each part of the location snippet 854 | - `Enabled` 855 | - Toggling this enables or disables the current location 856 | - `job` 857 | - The job role that will work in this building 858 | - `autoClockout` 859 | - Take employees off duty when leaving the polyzone if they were working in this location 860 | - `zones` 861 | - This is a batch of `vec2` locations (usually corners of a building) to create a polyzone 862 | - `stash` 863 | - Where the job stashes will be accessible 864 | - Only appears if `Config.StoreCraft.StashCraft` or `Config.Repairs.StashRepair` are `true` 865 | - `store` - Where the job lock stores will be accessible 866 | - These stores are set in the `recipes.lua` 867 | - By default the items are priced at $0 (free) 868 | - `crafting` 869 | - Where the crafting stations will be accessible 870 | - `clockin` 871 | - Where the player can go on duty (Clockin locations are also available at payment locations) 872 | - `nosrefill` 873 | - Where the non-mechanic nos refill station will be 874 | - `carlift` 875 | - This is the carlifts that appear when you enter the location, useMLOLift enables the use of a CarLift models used in custom MLO's 876 | - `garage` - The "job garage" system that spawns a fresh temporary car 877 | - `spawn` - The vec4 location and direction where the spawned vehicle will appear 878 | - `out` - The vec4 location and direction of the "parking meter" prop used to access the spawn menu 879 | - `list` - The list of vehicle spawn codes that will appear in the garage's menu 880 | - `payments` 881 | - Location, heading, and job's logo used for access payment scripts (default: [jim-payments](https://github.com/jimathy/jim-payments)) 882 | - `Restrictions` 883 | - This section controls what CAN be edited in the location 884 | - Each location comes with all the presets available 885 | - `blip` 886 | - Where the map maker of the building will appear 887 | - `label` 888 | - The name of the job/building that will appear on the map 889 | - `color` 890 | - The colour id of the map marker 891 | - `sprite` 892 | - The sprite of the blip for the maps 893 | - `disp` 894 | - 895 | - `scale` 896 | - The size of the blip marker (defaults are usually 0.7) 897 | - `cat` 898 | - Category, this isn't required unless you have them set on your server 899 | - `discordlink` 900 | - The webhook of the channel where this locations `/preview` reports are sent 901 | - This can be set per location, all you need to do is grab a webhook from a discord channel and then paste it here 902 | - This can be used in any discord, for example a players job discord's channel 903 | - If the locations link isn't set or left as `""` it will use the link set at `Config.DiscordDefault` instead, if available 904 | - `discordcolour` 905 | - This is the colour of the post for the discord channel, this is a "decimal" colour number 906 | 907 | ### Creating a new polyzone location: 908 | - This is simple guide for making new locations 909 | - Creating a "Zone" 910 | - Start by standing new a corner of a new building 911 | - Type in your chat `/pzcreate zone` and this will bring up a box to name it, type whatever you want to help find it later 912 | - You can move the created point with your `arrow keys` 913 | - When this point is placed placed type `/pzadd` to create a new point 914 | - You can again move this location with your `arrow keys` 915 | - Repeat this until finished 916 | - Type `/pzfinish` to finsh creating the zone and save the information to a file 917 | - The file is located in your server folder next to your `server.cfg` 918 | - Creating a "Box" 919 | - Start by standing near the zone you wish to create 920 | - Type in your chat `/pzcreate box` and this will bring up a box to name it 921 | - It will then ask you the width and length of the box, a good default is 0.6 and 0.6 922 | - Holding `Shift` or `Alt` while using the scroll wheel will allow you to change these values 923 | - Pressing `Z` will swap to being able to move the box up and down and changing the box height 924 | - Holding `Ctrl` while doing any of this will make it move slower for precise handling 925 | - Type `/pzfinish` to finsh creating the box and save the information to a file 926 | - The file is located in your server folder next to your `server.cfg` 927 | 928 | ------------------ 929 | ## recipes.lua 930 | 931 | ## Crafting 932 | - Crafting can be enabled/disabled in `config.lua` with the setting `Config.Crafting` 933 | - Crafting is accessed through locations created by `locations.lua` 934 | - The menu's are shared between all jobs/locations but you can lock items to specific jobs and grades 935 | - And example of a recipe snippet 936 | ```lua 937 | --This example is purely an example 938 | { ['cleaningkit'] = { --The item that will be crafted 939 | ['rubber'] = 1, 940 | ["engine2"] = 1, --An ingredient and the amount needed 941 | ['plastic'] = 1, 942 | }, 943 | ["amount"] = 2, -- The amount that of the crafted item you will recieve 944 | ["job"] = { -- Support for hiding items only to certain jobs (multiple possible) 945 | ["mechanic"] = 4, -- Job: "mechanic" and Grade "4" only and above can see this recipe 946 | ["tuner"] = 4, -- Job: "tuner" and Grade "4" only and above can see this recipe 947 | } 948 | }, 949 | ``` 950 | - Where the ingredients come from depends on the `config.lua` settings 951 | - `StashCraft = true` would demand the ingredients come from the current job roles stash 952 | - `StashCraft = false` would instead check the players inventory for the ingredient items 953 | 954 | ## Stores 955 | - Stores can be enabled/disabled in `config.lua` with the setting `Config.Stores` 956 | - There are built in job stores that allow quick access of items 957 | - By default the items are free, but you can change this easily 958 | - Example of a store snippet entry: 959 | ```lua 960 | { 961 | name = "mechanic_tools", -- Item's spawn code 962 | price = 0, -- Cost of the item 963 | amount = 10, -- How many are available to buy 964 | info = {}, -- Usually blank, none of my items use this 965 | type = "item", -- Usually left as "item" 966 | requiredJob = { -- Job lock for items (THIS ONLY WORKS WITH JIM-SHOPS) 967 | ["mechanic"] = 1, -- Mechanic grade 1 and higher can see/buy this item 968 | ["tuner"] = 1, -- Tuner grade 1 and higher can see/buy this item 969 | } 970 | }, 971 | ``` --------------------------------------------------------------------------------