NullSect
Systems nominal

Scripts / jobs · v1.5.3

Electrician

Diagnose the real fault with a multimeter, fix it through tool minigames and get paid for the quality of your work.

  • Qbox
  • QBCore
  • ESX
Coming soon

Features

  1. 01

    13 job types

    From a blown fuse to transformers, emergency outages and line inspections.

  2. 02

    Real diagnosis

    The faulty component is hidden server-side. Measure with the multimeter, then name the part you believe is broken.

  3. 03

    7 minigames

    Fuse box, wiring, circuit, breakers, voltage, multimeter and cable repair, checked by the server.

  4. 04

    Power state

    Open jobs actually cut the power of their system. Other resources can read it through GlobalState, an export or an event.

  5. 05

    Career and equipment

    Levels from Apprentice to Master Electrician, reputation, three-tier equipment, upgradeable vans and daily assignments.

Requirements

Frameworks
Qbox, QBCore, ESX
Requires
oxmysql, OneSync
Works with
ox_lib, ox_target, qb-target, ns-hud, ox_inventory
Version
1.5.3

Recent changes

Read the docs →

1.5.3

Fixed

  • Admin check: on servers where the ACE check answers 1 / 0 instead of true / false, real admins were refused (Qbox fallback and the standalone Config.Standalone.isAdmin). Only true or 1 counts as allowed now (Utils.AceAllowed). If you keep an edited config.lua without a framework, change isAdmin to return Utils.AceAllowed(src, 'admin').

Development

  • Offline test for the 1 / 0 ACE answer.

1.5.2

Fixed

  • The router refuses payloads with NaN / infinite numbers or nesting deeper than 8 levels (NaN passes every range check); Utils.Clamp maps NaN to the minimum.

Development

  • Offline server tests (lua5.4 tests/run_server.lua): router refusals, profile, shift, job board, accept / cancel, diagnosis probe range, admin permission, disconnect cleanup. Not shipped.

1.5.1 — security and lifecycle fixes

Fixed

  • Reflex minigames (voltage, multimeter, cable) and the minimum solve time of the puzzle minigames trusted the time reported by the client: a modified client could finish them instantly. The server now measures the time from challenge to submission itself.
  • Test jobs touched the career: they paid no money but still gave XP, reputation, job counters, tool wear and fired ns-electrician:hook:jobCompleted; cancelling or failing one cost reputation. Test jobs are now logged only (with the XP they would have earned).
  • /electest offers were not flagged as test jobs and paid real money. They are now test jobs like the recorder's Test call.
  • Restarting or stopping the resource counted every active job as abandoned (reputation penalty, failed log row). A resource stop now drops the job without a penalty; a disconnect is still penalised.
  • The deadline watchdog could expire a job while it was being paid (the payment waits on the database), which charged an expiry penalty on top of the payout; a second watchdog tick could also penalise the same expired job twice. A finished job is never ended a second time.
  • A database error while paying a job was treated as a duplicate completion: the player was flagged duplicate_completion. It now answers err_database, raises no security flag and logs the job uid, payout and XP so an admin can compensate it.
  • An error while settling a job could leave the finished job stuck on the player (no new job, no cancel). It is now closed and answered with err_internal.
  • The last step of a job (job:restore, the closing dlg:choose) answered success even when the payment failed; the error key now reaches the player.

Changed

  • Locale key ui_test_note reworded (EN + TR).

Related

Cart

Your cart is empty.