Browse docs
Troubleshooting
Commands deny access
- Confirm the global permissions bootstrap is loaded before
sky_base. - Confirm the player belongs to a group listed for that command in
Config.CommandPermissions. - Reconnect the player after changing principals.
- Restart the resource after changing command permission groups.
- Remember that an unlisted command is console-only.
See Permissions for framework-specific setup.
Job Configurator changes do not match config.lua
When Config.UseJobConfigurator is enabled, saved configurator values take priority over matching Lua fallback values. Make the change in /jobconfig, or intentionally disable configurator use before relying only on fallback job definitions.
A workshop interaction is missing
- Verify its feature is enabled.
- Verify the point exists for the correct job.
- Check public and job restrictions.
- Confirm marker, NPC, and interaction settings are not all disabled.
- Check that
sky_jobs_basestarted beforesky_mechanicjob.
Self-Service Tuning says that the player has no permission
Mechanic Job 1.22.0 had a restart regression: the server validated checkout against a temporary
runtime copy of workshop locations. The points remained saved, but that copy was empty after a
restart. This was fixed in Mechanic Job 1.23.0; the server now validates against the persisted
Workshop Creator data.
The matching 1.23.0 release set is Sky Base 1.34.0, Jobs Base 1.37.0, and Mechanic Job
1.23.0. Updating only the Mechanic folder does not make the running stack current, and restoring
an old source directory over the new package restores the bug.
If the same notification still appears on a claimed current installation:
- Check the
versionin thefxmanifest.luainside the resource directory that the live server actually starts. A download folder or another resource copy does not prove the running version. - Restart the complete dependency chain in this order:
sky_base,sky_jobs_base, thensky_mechanicjob. Do not only replace files while the old resource remains loaded. - Reproduce the checkout once and inspect the server console:
job locations are missingmeans pre-1.23.0server code is still running.workshop creator data is missingmeans the current Mechanic Job cannot read the registered Workshop Creator from Jobs Base.no self_service_tuning points are configuredmeans no matching point was returned for that workshop job.
- Confirm the Self-Service Tuning point belongs to the same job that opened the interaction.
- If the point works until the next restart, confirm its
workshopcreatorentry was actually written tosky_jobs_locations. A point visible in the current runtime is not proof that the database write succeeded; check the Jobs Base and database error logs.
Recreating the point after every restart only refreshes runtime state and is not a permanent fix. Several identical notifications normally mean checkout was clicked several times; use the first matching server log to diagnose the original rejection.
global 'Sky' in framework vehicle-property functions
Do not copy the two Sky fuel-adapter calls from sky_base/config/vehicle_functions.lua into
qb-core/client/functions.lua or es_extended/client/functions.lua. Those framework resources do
not own the Sky global. The typical F8 error is
attempt to index a nil value (global 'Sky'). The resulting getter fails before returning the
garage property table, and the setter fails before paint, xenon, and later mods are applied.
Use the framework-local fuel substitutions in Garage Integration.
Do not add a reverse sky_base dependency to the framework manifest.
Parts Shop orders cannot be collected
- Create a Parts Delivery point for the mechanic job.
- Confirm the delivery point has enough free space.
- Wait for the configured delivery time.
- Verify the ordered items still exist in the delivery catalog and inventory.
- Check company permission and balance when company-card payment was used.
An item cannot be used or installed
- Confirm the exact item name matches the configuration.
- Confirm the item is defined in the active inventory.
- Check whether the related feature is enabled.
- Verify the player is near the required vehicle or workshop point.
- Check whether the workflow requires a lift, engine hoist, or wheel flow.
Tuning or mileage does not persist
- Confirm automatic database queries succeeded or import
import.sqlmanually. - Confirm the vehicle uses a stable, normalized plate.
- With owned-vehicle persistence enabled, confirm the plate exists in the framework vehicle ownership table.
- Confirm the garage saves its complete property JSON into the correct owned-vehicle column.
- Confirm the garage uses its synchronized QBCore or ESX getter/setter pair, or the supported Qbox/Ox property pipeline.
- Check for another resource that overwrites vehicle properties or handling after the garage spawn.
See Garage Integration for QBCore, ESX, and custom garage examples.
Custom handling becomes stronger after every entry
Keep Config.CustomHandlingOptions.overwriteHandling disabled unless another resource resets handling on vehicle entry. Repeated multiplier application can stack vehicle behavior.
Electric vehicle diagnostics are incorrect
Use game build 3258 or newer for native electric detection. On older builds, add custom and missing electric models to Config.ElectricVehicleFallback.models.
Vehicle fluid leaks do not appear
- Confirm Vehicle Fluid Leaks is enabled in
/jobconfig. - Confirm the configured provider resource is started and
Config.OilLeaks.integration.serverEventmatches its server event. - Confirm the vehicle is not electric and is travelling above the configured minimum speed.
- Confirm
engine_oilortransmission_fluidis at or below its configured threshold. - Check the interval, minimum-distance, and chance values before assuming the provider failed.
- If another resource called
SetFluidLeakProvider, callResetFluidLeakProvideror restart Mechanic Job to restore the configured provider.
Temporarily enable Impact diagnostics only while testing frontal-impact thresholds; disable it again for normal production use.
Dealer payout uses the wrong currency
Choose account only for a real framework account. Choose item when the currency is an inventory item. Confirm the selected account or item exists before testing a sale.
Duplicate mechanic salary payments
Set framework salary values for the mechanic grades to 0 when Sky Jobs Base handles the salary. Do not run both salary systems for the same job.
Database checklist
The installation is incomplete if any of these required tables are missing:
sky_mechanic_vehicle_tuningsky_mechanic_tuning_orderssky_mechanic_vehicle_profilessky_mechanic_vehicle_historysky_mechanic_part_deliveries
Getting support
Before opening a support request, collect the resource versions, framework, inventory, relevant configuration values, exact server-console error, and steps needed to reproduce the issue.
Join Discord