NullSect
Systems nominal

Docs / Illegal System / Changelog

Changelog — ns-illegal

1.3.0 — 2026-10-23

Added

  • ns-storerobbery link: two new activities, store_robbery (every robber who got cash, XP by the store tier: low ×1.0, mid ×1.4, high ×1.8) and store_safe (the one who emptied the safe). ns-storerobbery is allowed to report them by default (Config.Integrations.activityReporters); nothing to configure.

1.2.0 — 2026-10-22

Added

  • Location editor (/illegal locations, admins, #44): every position of the script on a map and a list: contacts, parking spots, vehicle drop-offs, house doors, contract drop points, interior entries / exits / search spots. Teleport, set the GPS, move (walk there, a live preview follows you, E saves; you face the heading), add, switch off / on, reset to the file value, delete added points; contact radius, drop point name and radius, house interior. World view (markers, labels, ghost peds and cars) and map blips. Changes apply at once, survive restarts (new table ns_illegal_points) and are audited. Running jobs keep their positions.
  • ns-locksmith vehicle spots as theft parking spots (#45): Config.VehicleTheft.locksmithSpots = 'add' ('replace', false). ns-locksmith's data/locations.json is only read.
  • A parking spot with a vehicle or a player on it is skipped (Config.VehicleTheft.spotClearRadius).

Changed

  • Empty spots / dropoffs / houses lists are a start warning instead of an error (fill them in game).
  • A house whose interior has fewer search spots than minSearched is not given out (it could not be completed).
  • Database schema v2 (ns_illegal_points): automatic with autoMigrate, otherwise import sql/ns-illegal.sql again.
  • Default positions of 7 contacts (data/locations.lua) and both contract drop points (config.lua) updated to the spots placed in game with the editor.

Confirmed in game (2026-10-22).

1.1.1 — 2026-10-22

Fixed

  • A theft contract car that someone else hotwired first no longer fails the contract: when the owner gets in and twists the hanging wires, ns-carthief hands it over and the contract moves on to the drop-off. Twisting wires someone else pulled out never counts as a street theft.
  • The contract car only counts as yours when you hotwire it from the driver seat.
  • While ns-carthief opens the contract car, the job notice and a "Check the lock" option at the car say how to open it (lockpick, then hotwire from the driver seat).
  • An ns-carthief tier name longer than 16 characters gives normal XP instead of being refused.
  • Other resources asking about a player (GetCareer, AtContact) no longer create a career row for players who never used the Dark Tablet.
  • Config.Integrations.houserobbery = false now also stops ns-houserobbery from accepting its offers at the house contacts.

Confirmed in game (2026-10-22).

1.1.0

Added

  • Works with ns-carthief and ns-houserobbery (optional, automatic, Config.Integrations.carthief / houserobbery):
    • theft contract vehicles are opened with the ns-carthief lockpick + hotwire while it runs (the progress-bar break-in is off); delivery XP scales with the ns-carthief vehicle tier;
    • every other hotwired vehicle is a street theft (new activity vehicle_hotwire, 40 XP, 20 per day; over the limit the theft still works, it just gives no XP);
    • house contacts open the ns-houserobbery contract offers; its finished contracts count as house_robbery (XP by house tier, missions keep counting) and the safe cracker gets house_safe.
  • ReportActivity accepts a tier label (data.tier); Config.Activities[x].tierMultiplier turns it into an XP multiplier (unknown label = 1). New exports ReportHotwire (ns-carthief) and AtContact (ns-houserobbery).
  • English README.md and ARCHITECTURE.md.

Fixed

  • A completion inside an activity's cooldown (recorded with 0 XP) no longer restarts the cooldown or uses up the daily cap: both now count only rewarded completions. Career results say why XP was 0 (cappedBy = 'cooldown' | 'daily').
  • core/ matches ns-core 1.0.1 again (the Turkish-letter fix is now part of ns-core, so ns-check no longer reports it as hand-edited).

Nothing of the ns-carthief / ns-houserobbery link has been tested in game yet (offline tests only).

Changed

  • New Dark Tablet look: rugged burner-device casing (bumpers, screws, tape, barcode sticker), phosphor terminal screen (scanlines, grid, corner-bracket cards, monospace labels), night-vision location maps, contract ids, completion stamps on objectives, a burner-phone contact panel and a terminal-style progress HUD.
  • The page sets its lang from the server locale, so uppercase labels keep Turkish letters (İ, not I).

1.0.0

Added

  • Dark Tablet item: server-checked opening (framework usable item or ox_inventory export), item re-check on every tablet action and while open, first-use username registration (unique, case-insensitive, atomic).
  • Career progression: level 0-30 from XP, tiers at levels 10 / 20 / 30 (Kingpin), reputation -100..100 with seven ranks (Snitch … Known Figure), one server-authoritative progression service with an idempotent ledger.
  • Police arrest integration: allow-listed ReportArrest / ReportArrestByIdentifier exports, repeat penalties, incident deduplication, offline arrests, audit trail.
  • Tablet sections: Dashboard (career overview, career path, recent events, operations, searchable player directory), Missions (automatic one-time / daily / weekly objectives), Locations (blurred clue cards, purchase, GPS), Anonymous (global contracts with a single first-finisher winner, admin publishing / cancel / reward retry).
  • Activities: vehicle theft, house robbery (private routing buckets), vehicle dismantling, cultivation (persistent batches), buyers and suppliers at unlocked contacts.
  • GTA-style progress HUD: animated XP bar, multi-level crossing, level-up / tier / Kingpin / standing banners.
  • Integration exports for other resources (ReportActivity, GetCareer, CanDoActivity, GetItemCategory).
  • Admin command /illegal (profile, XP / reputation correction, username reset, contracts, test arrest, config validation), player command /illegalcancel.
  • English and Turkish locales, automatic database migrations, configuration validation on start.
  • Built on ns-core 1.0.1 (Turkish letters are kept by text sanitising under every server locale).

Cart

Your cart is empty.