Personal Settings
Player-specific Vehicle Keys settings.
Open the menu with /keysettings. It uses the same card-based design as the Garages personal settings menu: every card shows the setting name, description, current status, and available values.
Selecting a value saves it immediately. There is no separate confirmation step. The close button, clicking outside the menu, and Escape all close it without discarding an already selected value.
Values are stored in the local FiveM KVP configured by Config.Settings.personalSettings.kvp. They remain after reconnecting and restarting the resource, but they belong to that FiveM installation rather than a character or account.
#Menu States
- The selected value displays a check icon.
- Disabled boolean settings use a red status indicator; enabled settings use green.
- A forced setting displays Locked, uses a lock icon on its selected value, and cannot be changed by the player.
- The footer shows the configured command so the player knows how to reopen the menu.
#Vehicle Exit Procedure
Controls which exit action preserves the current engine state.
| Value | Tap exit | Hold exit |
|---|---|---|
| Disabled | Keeps the engine running. | Stops the engine. |
| Enabled (default) | Stops the engine. | Keeps the current engine state. |
This setting is named holdExitToKeepState in Config.Settings.personalSettings.settings.
#Auto-Start Engine
| Value | Behavior |
|---|---|
| Disabled | Entering the driver's seat leaves the current engine state unchanged. |
| Enabled (default) | Entering as the driver starts an off engine when Vehicle Keys permits engine use. |
#Server Configuration
The menu is definition-driven, matching Garages. Each entry owns its values, default, and lock state:
luapersonalSettings = {
command = "keysettings",
kvp = "zyke_vehiclekeys:personal_settings",
settings = {
{
name = "holdExitToKeepState",
values = {false, true},
default = true,
force = false,
},
{
name = "autoStartEngine",
values = {false, true},
default = true,
force = false,
},
},
}
Each setting entry supports:
| Value | Description |
|---|---|
name | Internal setting name. Keep the existing names because Vehicle Keys uses them to apply each behavior. |
values | Values the player may select. Both current settings accept false and true. |
default | Value used when the player has no valid saved selection. |
force | When true, always uses default and prevents the player from changing that setting. |
Changing a default does not replace an existing saved selection unless force is enabled. When force is later disabled, the player's previously saved selection becomes available again.
Keep both names and values = {false, true}. The entry order controls the menu order. default must match one of the configured values.
When force is true, the entry's default is used and the player cannot change it. The saved selection is preserved and becomes active again when force returns to false.
Changing default affects players who have no saved value. It does not overwrite existing selections.
#Required Config Migration
Servers updating from the earlier personal-settings config must apply this migration. The old fields are no longer read by Vehicle Keys.
- Remove
vehicleEngine.holdExitToKeepStateand move its value todefaultin theholdExitToKeepStateentry. - Remove
vehicleEngine.autoStartEngineand move its value todefaultin theautoStartEngineentry. - Replace
personalSettings.force.holdExitToKeepStatewithforcein the matching entry. - Replace
personalSettings.force.autoStartEnginewithforcein the matching entry. - Keep
kvp = "zyke_vehiclekeys:personal_settings"unless you intentionally want the client to start with fresh selections.
Existing saved selections remain valid because the KVP key and internal setting names have not changed. The complete field reference is available on the Config page.
#Integrations
Vehicle Keys also exposes GetPersonalSettings() and SetPersonalSetting(name, value) for custom menus.