Additional Informations

Page dedicated to Additional Informations about our Police MDT [V2]

Localization (Adding New Languages)

The MDT supports multiple languages. Follow these steps to add a new one (e.g., Dutch nl).

  1. Create the File:

    • Navigate to config/translations/.

    • Copy en.lua and paste it as nl.lua.

    • Open nl.lua and translate the content. Important: Change the language code at the top:

      luaTRANSLATIONS['nl-NL'] = { -- Change code here    code = "nl-NL",    -- ... translations}
  2. Register in Manifest:

    • Open fxmanifest.lua.

    • Add your new file to shared_scripts:

      luashared_scripts {    -- ... others    'config/translations/nl.lua', -- Add this line    'config/config.lua',}
    • Add it to escrow_ignore (to ensure it loads for you):

      luaescrow_ignore {    -- ... others    'config/translations/nl.lua', -- Add this line}
  3. Update Config:

    • Open config/config.lua.

    • Set Config.Locale = "nl-NL".

    • (Optional) Add it to the login screen format options in Config.NUI if you want players to select it manually.


UI & Branding Customization

Most branding can be done without editing the HTML/CSS directly.

Changing Logotypes and Colors

  • Primary Color: In config.lua, find Config.Basics.primaryColor. This accepts a HSL value (e.g., "233 99% 59%").

  • Images: You can change the sidebar icons and rank icons in config.lua by providing direct URLs (Discord webhooks or Imgur links recommended).

  • Bodycam: The bodycam logo and overlay text are fully editable in Config.NUI.bodyCam.

Advanced UI Edits

The UI is built with React and bundled. You cannot directly edit .jsx files without the source code. However, you can:

  • Replace Static Assets: If you need to replace specific bundled images, check web/dist/assets/. Note: Most images should be changed via Config URLs instead.


Advanced Script Configuration

Customizing Animations & Props

If you have a custom tablet prop or animation dictionary you prefer:

  1. Open client/main.lua (Note: This file is open source in some versions, but core logic might be locked. If accessible:).

  2. Look for CLIENT.tabletModel, CLIENT.tabletDict, and CLIENT.tabletAnim.

  3. Change these values to your preferred animation.

    • Warning: Converting this to a different item (e.g., clipboard) may require adjusting the AttachEntityToEntity bone index and offsets in attachObject() function.

Death Logic

By default, the MDT closes when a player dies.

  • File: config/client/death.lua

  • Customization: You can remove the CLIENT.CloseMDT() call if you want the MDT to remain open (e.g., for EMS to see details), or add extra logic to check for specific injury states.


Database & Manual Fixes

The script uses oxmysql. Key tables include:

  • qf_mdt_police_officers: Stores police specific data (hours, badge, active duty status).

    • Issue: Player cannot go on duty?

    • Fix: Check if they exist in this table. If fireJob config is used, ensure they haven't been "fired" in the database (removed row).

  • qf_mdt_police_warrants: Active warrants.

  • qf_mdt_police_audit_logs: All history.

Tip: If you wipe your server database (users/players), you must also wipe qf_mdt_police_officers to prevent "ghost" officers appearing in lists who no longer exist in the main users table.


FAQ & Troubleshooting

Q: The MDT won't open when I press the key.

A:

  1. Check config.lua: Is your job named 'police'? If you use 'lspd', change Config.Jobs = {['lspd'] = true}.

  2. Check config/client/editable.lua: The CanOpenMDT function might have custom restrictions (e.g., must be in vehicle).

  3. Check Server Console: Are there any SQL errors during startup?

Q: Images in the Gallery/Mugshots are broken.

A:

  • This is usually a Discord/imgur hotlinking issue.

  • Ensure the URL is a distinct image link (ends in .png/.jpg).

  • If using Discord, their links now expire. We recommend using a dedicated image host or a self-hosted proxy if you store many images.

Q: How do I add a new vehicle class color for dispatch?

A: In config.lua -> Config.Dispatch.Colors. You can add new mappings based on the vehicle class ID (GTA V assumes class 0-21).

Q: "You are not a police officer" error, but I have the job.

A: Ensure Config.Grades matches your esx_addonaccount or qb-core shared configuration exactly. If your database grade is 4 but config only goes to 3, the script may fail to validate the officer.

Last updated