Skip to main content

v3.0.0

This is a big one. VehicleKeys now comes with its own in-game admin dashboard, and most of the config moves into the database so you can manage everything while the server is running.

New

  • Admin dashboard. Type /advehiclekeys in-game to open it. From there you can hand out or take keys, look up who owns a plate and who is carrying a key for it, set up locksmiths, edit your whitelist, blacklist and job vehicles, change the settings and decide who else is allowed in. You can rename the command with Config.adminCommand.
  • Permission system. You can give your team access to the dashboard without handing them the keys to everything. Every group gets its own set of rights. group.admin can always do it all and group.user can never get in. You manage the groups from the Permissions tab, and Config.dashboardGroups decides which groups may open the dashboard at all.
  • Force refresh. On the Players tab you get a normal refresh and a force refresh. The force one gives the player every missing key item back, even if you normally keep item handouts turned off for realism.
  • Owner needs item (optional). New option Config.Settings.key.ownerNeedsItem. Turn it on if you want the vehicle owner to carry the key item as well. It is off by default, so your current setup does not change unless you enable it.
  • Theme editor. You can recolor the dashboard live from the Settings tab.

Changed

  • Everything runs off the database now. The config is imported once on the first start, and after that the database is the source of truth and you edit things from the dashboard. Three tables are created automatically for this: msk_vehiclekeys_settings, msk_vehiclekeys_permissions and msk_vehiclekeys_locksmiths. Your existing msk_vehiclekeys_keys table stays exactly as it is.
  • Config was split into two files. config/settings.lua holds all the values you can also change in the dashboard, and config/static.lua holds the code parts like the framework detection, the notification and the TextUI. Config.Framework moved into config/static.lua.
  • Vehicle models are written as names now. In the whitelist, blacklist, admin vehicles and job vehicles you can just write the spawn name like 'police' instead of a hash. Old hash entries still work, so you do not have to change anything if you do not want to.
  • Locksmiths are managed from the dashboard. The spots in the config are only the starting point. After that you add, edit and delete them from the Locksmith tab, and the peds and blips update right away without a restart.

Security

  • Closed a few holes where players could mess with keys they should not touch. Giving out a key, taking a key, exchanging locks and transferring a vehicle now check that you actually own the car and that the other player is standing next to you. The lookups that used to leak other players' keys were tightened as well.

Breaking

  • config.lua is gone and replaced by the config/ folder. Please give your config a quick look after updating and move any custom values over to config/settings.lua (or config/static.lua for the code parts).
  • Vehicle models in the lists are spawn names now. Your old backtick hashes keep working, so this only matters if you want the cleaner look.

Changed files

This release is a full rewrite. Replace the entire resource. The new layout adds the config/ split (settings.lua and static.lua), the server/admin/ dashboard backend, the shared/admin_perms.lua rights, and the React NUI in web/ built into html/.