Browse docs

Changelog

Full change history for Sky DOJ Job.
Before installing or updating, make sure sky_base and sky_jobs_base are up to date.
Current

Version 0.2.0

Highlights

  • Added managed team workspaces with folder structures and access assigned to individual employees, units, grades, functional roles or an entire job.
  • Added case handovers for tasks or changes of responsibility, with recipient selection, acceptance, questions, forwarding, decisions and a recorded history.
  • Added Finance for faction balances, treasury payments and collections, with a history of DOJ operations and citizen bank investigations where the selected banking provider supports them.
  • Added file-based civil registers and printable certificates for name changes, marriages and divorces, selected licenses and businesses.

Notable Changes

  • Improved courtroom display rendering and added nearby annotation controls, larger displays, projection screens and a movable 150-inch smartboard that can be pushed from its rear handle.
  • Added authorized Bodycam and CCTV recordings as courtroom evidence through Sky Jobs Base.
  • Added redacted text copies of native DOJ documents and folder ZIP archives stored in the workspace while preserving their originals.
  • Added assignment of loose documents to a numbered case and transfer of case responsibility without changing existing document references.
  • Added saved functional roles and audience controls for team workspace structures, folder access and ordering.
  • Restored individual document sharing from personal and shared workspaces.
  • Added access to permitted Mechanic vehicle reports from the Vehicles directory, including inspection history and signature information.
  • Added supported citizen account freezes and license management with separate permissions for those actions.
  • Added independent copies of shared and personal document templates, preserving the selected version's layout and fields for further editing.
  • Added certificate templates that automatically publish supplied updates while preserving custom layouts, deleted templates and previously issued documents.
  • Changed election recording to allow one vote per character without an election secret; migration preserves old vote totals and closes published ballots containing legacy votes.
  • Improved printer output counters and added configurable retention of printed documents across restarts.
  • Improved printed item labels with document and case references, and made collection failures visible without repeating the same error.
  • Improved legal-code formatting with custom typography and clearer validation errors while retaining unsaved input.

Other Changes

  • Fixed an issue where courthouse interaction settings were not consistently saved or applied to markers, map icons, NPCs, labels and interaction distances.
  • Fixed an issue where renaming a smartboard location left its interaction prompt with the old name.
  • Improved File Explorer and handover loading by reducing repeated requests and providing clearer loading, empty and error states.
  • Improved case list readability with visible case numbers and a more compact handover layout.
  • Fixed document images positioned relative to text so they follow the surrounding text or table content.
  • Improved tablet forms and dialogs on high-resolution displays, and fixed the hearing list layout beside its details.
  • Improved resource initialization with the shared Sky imports and clearer database-startup diagnostics.

Changed Files

  • sky_dojjob/README.md
  • sky_dojjob/config/config.lua
  • sky_dojjob/config/locales/*
  • sky_dojjob/config/registry.lua
  • sky_dojjob/config/registry/README.md
  • sky_dojjob/config/registry/businesses.lua
  • sky_dojjob/config/registry/client/businesses.lua
  • sky_dojjob/config/registry/client/marriages.lua
  • sky_dojjob/config/registry/licenses.lua
  • sky_dojjob/config/registry/marriages.lua
  • sky_dojjob/config/registry/name_changes.lua
  • sky_dojjob/config/registry/server/businesses.lua
  • sky_dojjob/config/registry/server/licenses.lua
  • sky_dojjob/config/registry/server/marriages.lua
  • sky_dojjob/config/registry/server/name_changes.lua
  • sky_dojjob/fxmanifest.lua
  • sky_dojjob/import.sql
  • sky_dojjob/source/* — delete and reinsert
  • sky_dojjob/stream/sky_doj_court_board_93.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_02.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_03.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_04.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_05.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_06.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_07.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_08.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_09.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_10.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_11.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_12.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_13.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_14.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_15.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_16.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_17.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_18.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_19.ydr
  • sky_dojjob/stream/sky_doj_court_board_93_20.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_02.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_03.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_04.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_05.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_06.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_07.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_08.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_09.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_10.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_11.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_12.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_13.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_14.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_15.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_16.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_17.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_18.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_19.ydr
  • sky_dojjob/stream/sky_doj_court_monitor_27_20.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_02.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_03.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_04.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_05.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_06.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_07.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_08.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_09.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_10.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_11.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_12.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_13.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_14.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_15.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_16.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_17.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_18.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_19.ydr
  • sky_dojjob/stream/sky_doj_court_projection_screen_01_20.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_02.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_03.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_04.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_05.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_06.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_07.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_08.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_09.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_10.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_11.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_12.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_13.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_14.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_15.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_16.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_17.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_18.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_19.ydr
  • sky_dojjob/stream/sky_doj_court_tv_100_20.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_02.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_03.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_04.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_05.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_06.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_07.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_08.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_09.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_10.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_11.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_12.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_13.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_14.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_15.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_16.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_17.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_18.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_19.ydr
  • sky_dojjob/stream/sky_doj_court_tv_120_20.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_02.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_03.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_04.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_05.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_06.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_07.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_08.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_09.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_10.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_11.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_12.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_13.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_14.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_15.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_16.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_17.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_18.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_19.ydr
  • sky_dojjob/stream/sky_doj_court_tv_150_20.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_02.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_03.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_04.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_05.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_06.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_07.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_08.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_09.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_10.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_11.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_12.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_13.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_14.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_15.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_16.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_17.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_18.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_19.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55_20.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_02.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_03.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_04.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_05.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_06.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_07.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_08.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_09.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_10.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_11.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_12.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_13.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_14.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_15.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_16.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_17.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_18.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_19.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75_20.ydr
  • sky_dojjob/stream/sky_doj_desk_monitor_27.ydr
  • sky_dojjob/stream/sky_doj_display_materials+hi.ytd
  • sky_dojjob/stream/sky_doj_display_materials.ytd
  • sky_dojjob/stream/sky_doj_floor_terminal_43.ydr
  • sky_dojjob/stream/sky_doj_projection_screen_01.ydr
  • sky_dojjob/stream/sky_doj_props.ytyp
  • sky_dojjob/stream/sky_doj_voting_booth_01.ydr
  • sky_dojjob/stream/sky_doj_voting_curtain_left.ydr
  • sky_dojjob/stream/sky_doj_voting_curtain_right.ydr
  • sky_dojjob/stream/sky_doj_wall_tv_100.ydr
  • sky_dojjob/stream/sky_doj_wall_tv_120.ydr
  • sky_dojjob/stream/sky_doj_wall_tv_150.ydr
  • sky_dojjob/stream/sky_doj_wall_tv_55.ydr
  • sky_dojjob/stream/sky_doj_wall_tv_75.ydr
Update InstructionsA guided update for server owners0.1.10.2.0

Guided update

Update sky_dojjob safely

Complete the five phases in order. Your progress is kept while this page remains open.

0 / 5phases complete

Phase 1 of 5

Prepare

These instructions cover sky_dojjob 0.1.1 → 0.2.0. Complete earlier required schema installation first if your installed version is older. Prepare Base 1.44.0, Jobs Base 1.47.0 and the complete DOJ 0.2.0 download for the same maintenance window. Follow the Base and Jobs Base update instructions too.

Before stopping the server

  1. Download Sky DOJ Job 0.2.0 and the matching sky_base 1.44.0 and sky_jobs_base 1.47.0 packages. Prepare these companion updates now; replace them together during the maintenance steps below.
  2. Record Config.AutoExecuteQuery from sky_dojjob/config/config.lua. true selects the automatic database update; false requires the manual SQL update below. Keep your chosen value when merging the new configuration. This startup setting is read before the later in-game configuration is applied.
  3. Record your existing /jobconfig settings, roles, shared-workspace access and Creator placements. Collect completed printer output before maintenance. In particular, check each printer's deleteCopiesAfterRestart setting: if enabled, this update removes its uncollected completed DOJ output on initialization. The default is false; copies already in an inventory are not removed.
  4. Finish active court sessions and give players time to save their work. Tell election administrators that published elections containing old votes will be closed by the update, with their results retained. They must start a new election if voting needs to continue after the update.
  5. Keep the existing private election secret with the backup. The new voting system no longer uses it, but it is still needed if the entire installation is restored to 0.1.1.

Stop and back up

  1. Stop FXServer so players and resources cannot write during the update. Back up the database, the existing resource folders and configuration, saved job settings/Creator data, and your inventory storage with its item metadata. Use a consistent backup of these parts before proceeding.
  2. In your database tool, select the server's existing database and run SELECT DATABASE();. Save the election status and vote totals from these read-only queries so you can compare them after migration:
SELECT id, election_key, status, version, closed_at
FROM sky_doj_elections
ORDER BY id;

SELECT election_id, option_id, COUNT(*) AS votes
FROM sky_doj_election_votes
GROUP BY election_id, option_id
ORDER BY election_id, option_id;

Use the complete downloads and follow their own update instructions. These are the matching dependency releases for this update. Keep your configured framework, database and optional provider resources ahead of the Sky resources in the server start order.

ensure sky_base
ensure sky_jobs_base
# Start the compatible optional job/provider resources you actually use here.
ensure sky_dojjob

Keep the compatible Police resource running for citizen searches, bank investigations against real characters, Police case imports and Police-backed conditions. Keep Mechanic running when using its permitted vehicle reports. Their data remains subject to the source job's access rules. A missing banking, billing or license capability cannot be enabled by a DOJ feature switch.

Version 0.1.1

Highlights

  • Added a DOJ tablet with numbered case files, citizen and vehicle records, personal folders and shared agency documents.
  • Added versioned document templates, document editing, signatures, sharing and physical printed copies.
  • Added hearing schedules and courtroom sessions with participants, evidence presentation and public courthouse information screens.
  • Added legal codes, a Fine Catalogue, structured court conditions and digital elections.

Notable Changes

  • Added document layout controls, reusable fields, document references and published template versions that remain attached to the documents created from them.
  • Added staff signature lines and targeted participant signature requests, with eligibility checks for the document version being signed.
  • Added document attachments, independent copies, moving files, search and folders for organizing case material.
  • Added browser-assisted uploads of local files for document attachments, with time-limited upload sessions.
  • Added personal workspace sharing, shortcuts and reusable folder templates, with markers for folders created during setup.
  • Added restoration of personal document drafts after reopening the editor.
  • Added court document templates for Police and authorized imports of Police activity records.
  • Added document sharing and revocation while keeping separately issued copies and prints tied to their original content.
  • Added printer collection and readable inventory documents, plus law-book items that retain their issued edition.
  • Added legal-code editing with rich text, DOCX import, saved versions and a public reader.
  • Added a shared DOJ and Police offence catalogue with fine and sentence calculations.
  • Added hearing participants, courtroom scheduling, attendance and self check-in.
  • Added courtroom role stations, admitted evidence, independent evidence screens, annotations, jury votes, personal witness oaths, a microphone and a judge's gavel.
  • Added public hearing displays with configurable subject and judge visibility, separate from private case access.
  • Added election drafts, answer options, voting periods, staff results and in-world digital voting booths.
  • Added court conditions with deadlines, evidence and violation tracking, including optional billing and Police integrations.
  • Added optional civil-registry workflows with supported name and license changes; the registry module remains disabled by default in this historical version.
  • Added optional vehicle and property taxes, disabled by default.

Other Changes

  • Added in-game configuration for DOJ jobs, courthouses, available modules and access settings through /jobconfig.
  • Added prosecution, judiciary and court-administration access based on configured technical grade names, duty and action permissions.
  • Added automatic database setup and the corresponding manual SQL file for the implemented systems.
  • Added localized interfaces and supplied courtroom display, voting-booth and gavel assets.
  • Added configurable Miranda text and clearer guidance for technical grade assignments.
  • Improved document, attachment and sharing checks so access changes are applied to the affected actions.

Setup Notes

Configure the role mapping, printers and courtroom placements for your server. Case-file access requires a mapping version and the actual technical grade names. Civil registries and asset taxes are disabled by default in this version; the Citizens and Vehicles directories are separate from the registry toggle.

Elections in this version require a private sky_dojjob_election_pepper server setting for elections: 32–512 characters without whitespace or control characters. Published elections are bound to that secret. Do not remove or rotate it on an installation still using this implementation. Character-based voting, Finance, case handovers, saved functional roles and the later register certificates were added in 0.2.0.

Changed Files

  • sky_dojjob/EXPLORER_ICONS_LICENSE.txt
  • sky_dojjob/README.md
  • sky_dojjob/config/config.lua
  • sky_dojjob/config/locales/*
  • sky_dojjob/fxmanifest.lua
  • sky_dojjob/import.sql
  • sky_dojjob/source/* — delete and reinsert
  • sky_dojjob/stream/sky_doj_court_monitor_27.ydr
  • sky_dojjob/stream/sky_doj_court_tv_55.ydr
  • sky_dojjob/stream/sky_doj_court_tv_75.ydr
  • sky_dojjob/stream/sky_doj_desk_monitor_27.ydr
  • sky_dojjob/stream/sky_doj_display_materials+hi.ytd
  • sky_dojjob/stream/sky_doj_display_materials.ytd
  • sky_dojjob/stream/sky_doj_floor_terminal_43.ydr
  • sky_dojjob/stream/sky_doj_gavel_01.ydr
  • sky_dojjob/stream/sky_doj_props.ytyp
  • sky_dojjob/stream/sky_doj_voting_booth_01.ydr
  • sky_dojjob/stream/sky_doj_voting_curtain_left.ydr
  • sky_dojjob/stream/sky_doj_voting_curtain_right.ydr
  • sky_dojjob/stream/sky_doj_wall_tv_55.ydr
  • sky_dojjob/stream/sky_doj_wall_tv_75.ydr

Update Instructions

Use the installation instructions supplied with your download and keep sky_base and sky_jobs_base up to date. Back up existing configuration, database records, saved settings and inventory metadata before updating an installed server.

Keep the election secret while using this version. Apply the newer 0.2.0 settings only with their matching update instructions above.