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.mdsky_dojjob/config/config.luasky_dojjob/config/locales/*sky_dojjob/config/registry.luasky_dojjob/config/registry/README.mdsky_dojjob/config/registry/businesses.luasky_dojjob/config/registry/client/businesses.luasky_dojjob/config/registry/client/marriages.luasky_dojjob/config/registry/licenses.luasky_dojjob/config/registry/marriages.luasky_dojjob/config/registry/name_changes.luasky_dojjob/config/registry/server/businesses.luasky_dojjob/config/registry/server/licenses.luasky_dojjob/config/registry/server/marriages.luasky_dojjob/config/registry/server/name_changes.luasky_dojjob/fxmanifest.luasky_dojjob/import.sqlsky_dojjob/source/*— delete and reinsertsky_dojjob/stream/sky_doj_court_board_93.ydrsky_dojjob/stream/sky_doj_court_board_93_02.ydrsky_dojjob/stream/sky_doj_court_board_93_03.ydrsky_dojjob/stream/sky_doj_court_board_93_04.ydrsky_dojjob/stream/sky_doj_court_board_93_05.ydrsky_dojjob/stream/sky_doj_court_board_93_06.ydrsky_dojjob/stream/sky_doj_court_board_93_07.ydrsky_dojjob/stream/sky_doj_court_board_93_08.ydrsky_dojjob/stream/sky_doj_court_board_93_09.ydrsky_dojjob/stream/sky_doj_court_board_93_10.ydrsky_dojjob/stream/sky_doj_court_board_93_11.ydrsky_dojjob/stream/sky_doj_court_board_93_12.ydrsky_dojjob/stream/sky_doj_court_board_93_13.ydrsky_dojjob/stream/sky_doj_court_board_93_14.ydrsky_dojjob/stream/sky_doj_court_board_93_15.ydrsky_dojjob/stream/sky_doj_court_board_93_16.ydrsky_dojjob/stream/sky_doj_court_board_93_17.ydrsky_dojjob/stream/sky_doj_court_board_93_18.ydrsky_dojjob/stream/sky_doj_court_board_93_19.ydrsky_dojjob/stream/sky_doj_court_board_93_20.ydrsky_dojjob/stream/sky_doj_court_monitor_27.ydrsky_dojjob/stream/sky_doj_court_monitor_27_02.ydrsky_dojjob/stream/sky_doj_court_monitor_27_03.ydrsky_dojjob/stream/sky_doj_court_monitor_27_04.ydrsky_dojjob/stream/sky_doj_court_monitor_27_05.ydrsky_dojjob/stream/sky_doj_court_monitor_27_06.ydrsky_dojjob/stream/sky_doj_court_monitor_27_07.ydrsky_dojjob/stream/sky_doj_court_monitor_27_08.ydrsky_dojjob/stream/sky_doj_court_monitor_27_09.ydrsky_dojjob/stream/sky_doj_court_monitor_27_10.ydrsky_dojjob/stream/sky_doj_court_monitor_27_11.ydrsky_dojjob/stream/sky_doj_court_monitor_27_12.ydrsky_dojjob/stream/sky_doj_court_monitor_27_13.ydrsky_dojjob/stream/sky_doj_court_monitor_27_14.ydrsky_dojjob/stream/sky_doj_court_monitor_27_15.ydrsky_dojjob/stream/sky_doj_court_monitor_27_16.ydrsky_dojjob/stream/sky_doj_court_monitor_27_17.ydrsky_dojjob/stream/sky_doj_court_monitor_27_18.ydrsky_dojjob/stream/sky_doj_court_monitor_27_19.ydrsky_dojjob/stream/sky_doj_court_monitor_27_20.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_02.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_03.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_04.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_05.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_06.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_07.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_08.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_09.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_10.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_11.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_12.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_13.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_14.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_15.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_16.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_17.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_18.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_19.ydrsky_dojjob/stream/sky_doj_court_projection_screen_01_20.ydrsky_dojjob/stream/sky_doj_court_tv_100.ydrsky_dojjob/stream/sky_doj_court_tv_100_02.ydrsky_dojjob/stream/sky_doj_court_tv_100_03.ydrsky_dojjob/stream/sky_doj_court_tv_100_04.ydrsky_dojjob/stream/sky_doj_court_tv_100_05.ydrsky_dojjob/stream/sky_doj_court_tv_100_06.ydrsky_dojjob/stream/sky_doj_court_tv_100_07.ydrsky_dojjob/stream/sky_doj_court_tv_100_08.ydrsky_dojjob/stream/sky_doj_court_tv_100_09.ydrsky_dojjob/stream/sky_doj_court_tv_100_10.ydrsky_dojjob/stream/sky_doj_court_tv_100_11.ydrsky_dojjob/stream/sky_doj_court_tv_100_12.ydrsky_dojjob/stream/sky_doj_court_tv_100_13.ydrsky_dojjob/stream/sky_doj_court_tv_100_14.ydrsky_dojjob/stream/sky_doj_court_tv_100_15.ydrsky_dojjob/stream/sky_doj_court_tv_100_16.ydrsky_dojjob/stream/sky_doj_court_tv_100_17.ydrsky_dojjob/stream/sky_doj_court_tv_100_18.ydrsky_dojjob/stream/sky_doj_court_tv_100_19.ydrsky_dojjob/stream/sky_doj_court_tv_100_20.ydrsky_dojjob/stream/sky_doj_court_tv_120.ydrsky_dojjob/stream/sky_doj_court_tv_120_02.ydrsky_dojjob/stream/sky_doj_court_tv_120_03.ydrsky_dojjob/stream/sky_doj_court_tv_120_04.ydrsky_dojjob/stream/sky_doj_court_tv_120_05.ydrsky_dojjob/stream/sky_doj_court_tv_120_06.ydrsky_dojjob/stream/sky_doj_court_tv_120_07.ydrsky_dojjob/stream/sky_doj_court_tv_120_08.ydrsky_dojjob/stream/sky_doj_court_tv_120_09.ydrsky_dojjob/stream/sky_doj_court_tv_120_10.ydrsky_dojjob/stream/sky_doj_court_tv_120_11.ydrsky_dojjob/stream/sky_doj_court_tv_120_12.ydrsky_dojjob/stream/sky_doj_court_tv_120_13.ydrsky_dojjob/stream/sky_doj_court_tv_120_14.ydrsky_dojjob/stream/sky_doj_court_tv_120_15.ydrsky_dojjob/stream/sky_doj_court_tv_120_16.ydrsky_dojjob/stream/sky_doj_court_tv_120_17.ydrsky_dojjob/stream/sky_doj_court_tv_120_18.ydrsky_dojjob/stream/sky_doj_court_tv_120_19.ydrsky_dojjob/stream/sky_doj_court_tv_120_20.ydrsky_dojjob/stream/sky_doj_court_tv_150.ydrsky_dojjob/stream/sky_doj_court_tv_150_02.ydrsky_dojjob/stream/sky_doj_court_tv_150_03.ydrsky_dojjob/stream/sky_doj_court_tv_150_04.ydrsky_dojjob/stream/sky_doj_court_tv_150_05.ydrsky_dojjob/stream/sky_doj_court_tv_150_06.ydrsky_dojjob/stream/sky_doj_court_tv_150_07.ydrsky_dojjob/stream/sky_doj_court_tv_150_08.ydrsky_dojjob/stream/sky_doj_court_tv_150_09.ydrsky_dojjob/stream/sky_doj_court_tv_150_10.ydrsky_dojjob/stream/sky_doj_court_tv_150_11.ydrsky_dojjob/stream/sky_doj_court_tv_150_12.ydrsky_dojjob/stream/sky_doj_court_tv_150_13.ydrsky_dojjob/stream/sky_doj_court_tv_150_14.ydrsky_dojjob/stream/sky_doj_court_tv_150_15.ydrsky_dojjob/stream/sky_doj_court_tv_150_16.ydrsky_dojjob/stream/sky_doj_court_tv_150_17.ydrsky_dojjob/stream/sky_doj_court_tv_150_18.ydrsky_dojjob/stream/sky_doj_court_tv_150_19.ydrsky_dojjob/stream/sky_doj_court_tv_150_20.ydrsky_dojjob/stream/sky_doj_court_tv_55.ydrsky_dojjob/stream/sky_doj_court_tv_55_02.ydrsky_dojjob/stream/sky_doj_court_tv_55_03.ydrsky_dojjob/stream/sky_doj_court_tv_55_04.ydrsky_dojjob/stream/sky_doj_court_tv_55_05.ydrsky_dojjob/stream/sky_doj_court_tv_55_06.ydrsky_dojjob/stream/sky_doj_court_tv_55_07.ydrsky_dojjob/stream/sky_doj_court_tv_55_08.ydrsky_dojjob/stream/sky_doj_court_tv_55_09.ydrsky_dojjob/stream/sky_doj_court_tv_55_10.ydrsky_dojjob/stream/sky_doj_court_tv_55_11.ydrsky_dojjob/stream/sky_doj_court_tv_55_12.ydrsky_dojjob/stream/sky_doj_court_tv_55_13.ydrsky_dojjob/stream/sky_doj_court_tv_55_14.ydrsky_dojjob/stream/sky_doj_court_tv_55_15.ydrsky_dojjob/stream/sky_doj_court_tv_55_16.ydrsky_dojjob/stream/sky_doj_court_tv_55_17.ydrsky_dojjob/stream/sky_doj_court_tv_55_18.ydrsky_dojjob/stream/sky_doj_court_tv_55_19.ydrsky_dojjob/stream/sky_doj_court_tv_55_20.ydrsky_dojjob/stream/sky_doj_court_tv_75.ydrsky_dojjob/stream/sky_doj_court_tv_75_02.ydrsky_dojjob/stream/sky_doj_court_tv_75_03.ydrsky_dojjob/stream/sky_doj_court_tv_75_04.ydrsky_dojjob/stream/sky_doj_court_tv_75_05.ydrsky_dojjob/stream/sky_doj_court_tv_75_06.ydrsky_dojjob/stream/sky_doj_court_tv_75_07.ydrsky_dojjob/stream/sky_doj_court_tv_75_08.ydrsky_dojjob/stream/sky_doj_court_tv_75_09.ydrsky_dojjob/stream/sky_doj_court_tv_75_10.ydrsky_dojjob/stream/sky_doj_court_tv_75_11.ydrsky_dojjob/stream/sky_doj_court_tv_75_12.ydrsky_dojjob/stream/sky_doj_court_tv_75_13.ydrsky_dojjob/stream/sky_doj_court_tv_75_14.ydrsky_dojjob/stream/sky_doj_court_tv_75_15.ydrsky_dojjob/stream/sky_doj_court_tv_75_16.ydrsky_dojjob/stream/sky_doj_court_tv_75_17.ydrsky_dojjob/stream/sky_doj_court_tv_75_18.ydrsky_dojjob/stream/sky_doj_court_tv_75_19.ydrsky_dojjob/stream/sky_doj_court_tv_75_20.ydrsky_dojjob/stream/sky_doj_desk_monitor_27.ydrsky_dojjob/stream/sky_doj_display_materials+hi.ytdsky_dojjob/stream/sky_doj_display_materials.ytdsky_dojjob/stream/sky_doj_floor_terminal_43.ydrsky_dojjob/stream/sky_doj_projection_screen_01.ydrsky_dojjob/stream/sky_doj_props.ytypsky_dojjob/stream/sky_doj_voting_booth_01.ydrsky_dojjob/stream/sky_doj_voting_curtain_left.ydrsky_dojjob/stream/sky_doj_voting_curtain_right.ydrsky_dojjob/stream/sky_doj_wall_tv_100.ydrsky_dojjob/stream/sky_doj_wall_tv_120.ydrsky_dojjob/stream/sky_doj_wall_tv_150.ydrsky_dojjob/stream/sky_doj_wall_tv_55.ydrsky_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.
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
- 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.
- Record
Config.AutoExecuteQueryfromsky_dojjob/config/config.lua.trueselects the automatic database update;falserequires 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. - Record your existing
/jobconfigsettings, roles, shared-workspace access and Creator placements. Collect completed printer output before maintenance. In particular, check each printer'sdeleteCopiesAfterRestartsetting: if enabled, this update removes its uncollected completed DOJ output on initialization. The default isfalse; copies already in an inventory are not removed. - 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.
- 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
- 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.
- 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.