The whole desktop runs here with sample data, in all three looks, and so does the admin panel. Sign in, open the apps, write a document, play a hacking minigame. Nothing to install.
sd-computers puts a working desktop on any computer in your city. Players walk up to a prop or a place, sign in and use real apps: Mail, a document editor that prints to paper, a browser for the city's own sites, banking, a job's notice board and boss menu, security cameras, that machine's own logs, and a Command Prompt that launches hacking minigames. It runs on QBOX and QBCORE, and on ESX without the Business Manager.
Every computer opens in one of three original looks, picked per computer: a current desktop, a 1991 one inside a CRT, and one with a dock and a menu bar. Admins place computers, security cameras and printers in game with /computeradmin, without touching a config file.
The screen on the prop is real too. Sit down at a computer and the camera goes up to it: the desktop is inside the prop's own bezel, with the room still there around it. A computer nobody is using shows its lock screen, and one somebody is using shows what they are doing, live, to anyone standing nearby.
So is the paper. A page waits in the printer's tray, is taken as an item, and opens as a sheet of A4 that can be handed to somebody else and signed.
And it takes your own apps. Any resource can put a program of its own on the desktop: a web page in its own window, with an icon on the desktop, taskbar and dock, the desktop's dialogs, notifications and printing, and calls to its own server. Start from the app templates, in plain JavaScript, React, Vue or Svelte.
Live demo · Documentation · Store · Discord
If you're enjoying sd-computers and want to support my work, consider picking up a script from Samuel's Development. Every purchase helps me keep building and improving resources like sd-computers. Browse Petty Crimes, Advanced Crafting, Horde, Smash Down, and more to find something for your server.
On a server, at a desk in Mission Row. Click any image for the full-size version.
Nobody at the desk: the monitor shows its lock screen to the room, and so does the one through the window
Recorded from the browser demo, with sample data.
Starting up, signing in and looking round
Captured from the browser demo using sample data. Click any image for the full-size version.
Jump to: SD OS Pro · SD OS Harbor · SD Desktop 3.11 · Printed pages · Hacking minigames · Admin panel · Props
A current desktop: centred taskbar, Start menu with search, rounded translucent windows, dark and light themes.
Every screen of SD OS Pro (36)
A top menu bar, a dock that magnifies, traffic-light window buttons and a search overlay.
Every screen of SD OS Harbor (35)
A 1991 shell inside a beige CRT: a DOS boot, a teal desktop and bevelled grey windows that snap open in chunky steps.
Every screen of SD Desktop 3.11 (34)
What a printout opens as: a sheet of A4 held up over the game, that leans with the mouse and turns like a page. A document prints the way it was set, and its lines to sign on are signed here, by whoever holds the page.
Ten minigames, launched from Command Prompt or from your own scripts. Shown here in SD OS Pro; the games are the same in every look.
Network Maze |
Node Capture |
Cipher Lock |
Data Worm |
Firewall Defense |
Highway Evasion |
Code Injection |
Signal Replay |
Packet Routing |
ICE Breaker |
Program list |
Standalone window |
Every computer, security camera and printer on the server, and the tools that place new ones.
A computer can be placed as, or picked from the world as, a monitor, a laptop or a tower PC, and a printer as a printer or a photocopier. Towers are off out of the box: they have no screen, so they open fullscreen. Add any streamed prop from the admin panel, or in configs/shared/admin.lua. Every prop, photographed in game, is in the docs under props and screens.
![]() Flat monitor prop_monitor_01a |
![]() CRT monitor prop_monitor_03b |
![]() Laptop prop_laptop_01a |
![]() Laser printer prop_printer_01 |
Tip
Running sd-phone v1.0.7 or newer? The computers pick it up. A computer becomes another screen for the character's phone: Mail switches to the phone's own mailboxes, three more apps appear (Messages, Notes and Contacts), and Files, Photos and Bank show the phone's documents, gallery and banking history. Players link their phone to a machine with a code from the Phone Link app, and the Browser shows the city's own sites live. sd-computers is complete without it. More in the docs.
Shared, password-protected @lsmail.com accounts (sign up, sign in, multiple accounts), inbox, flagged, drafts, sent, bin, reply and forward, bounces for unknown addresses, live new-mail toasts |
|
| Event Viewer | That computer's System Logs: sign-ins and failed PINs, lockouts, apps opened, mail sent, Business Manager actions, hack attempts and breaches, plus anything other resources write. Filterable; clearing it leaves a "log was cleared by X" entry (event 1102) |
| Command Prompt | A real-feeling cmd.exe (ipconfig, systeminfo, ping, tasklist and more) that launches the hacking minigames: free practice (hack maze hard) and configured breach targets (targets, breach fleeca-ledger) that pay rewards server-side |
| Business Manager | The boss menu: roster with online and on-duty status, promote, demote and fire, hire the players standing at the computer or anyone online by their player ID (they get an accept prompt either way), society balance chart, deposit and withdraw, statement. Only shown to that job's bosses |
| Files | The character's documents, written in a proper editor: a typeface for the page, and a typeface, size and ink of its own for any part of it; headings, lists, quotes, bold and the rest, alignment, rules, pictures out of Photos with a size, a side and a caption, and lines to sign on. They follow the character to every computer and print the way they are set. With sd-phone, the phone's documents show beside them |
| Photos | The character's pictures: added by their link, they follow the character to every computer, and they are what Files puts into a document. With sd-phone, the phone's gallery shows beside them once the phone is linked |
| Browser | A closed, in-game network: the sites you list. With sd-phone those are the city's own, live: Weazel News, the Marketplace, the Yellow Pages, a business directory, Squawk, the penal code and the stock market. You can also write pages right in the config, or embed your own web page. Any other address "can't be reached" |
| Bank | The character's bank balance, cash and recent transactions, to look at. Nothing can be moved from it |
| Company Board | A job's notice board: bosses post, pin and remove announcements, everyone in the job reads them from any computer, and it shows who is on duty. Only shown to players with a job |
| Security Cameras | The cameras a player is allowed to watch from that computer. Picking one plays its picture live in the app's window, to look around and zoom with, and Full screen puts it over the whole display. Only shown to players with at least one camera to watch; every first look is written to the System Logs |
| Notepad, Files, Mail, Bank and Event Viewer print to a printer near the computer. The page waits in the printer's tray and is taken as an item that opens as the sheet of A4 it is | |
| Games | A shelf of three, each one a program of its own with its own window, icon and look: Mines on a bomb-disposal console, Solitaire on a felt card table, Snake on an arcade screen. Best results are kept |
| Phone Link | Only with sd-phone: links the character's phone to that machine. It sends a code to the phone as a notification; typing it in puts the phone's apps on the desktop there and then, until they unlink it |
| Messages / Notes / Contacts | Only with sd-phone, once the phone is linked in Phone Link: the phone's texts, notes and address book on the desktop |
| Notepad / Calculator / Settings | Notes that follow the character to every computer; a full standard calculator; wallpaper, accent colour and dark or light mode, saved per character |
| Your own apps | Any resource can add one: a page of its own in a window of its own, on every look. See Custom apps, and start from the app templates |
Around the apps: a lock screen with an optional per-computer PIN (checked server-side, with lockout), welcome and shutdown screens, draggable, resizable, snap-to-maximize windows, calendar and quick-settings flyouts, toast notifications, and system sounds for starting up, signing in, windows, clicks and notifications (synthesized, no audio files; each style has its own and can switch them off).
Your own resource can put a program on the desktop. Register it from your server and it gets an icon, a window, a taskbar or dock entry and a count badge in all three looks; its page talks to your server, your client script and the OS through a small API: the desktop's own dialogs and context menus, notifications, printing to a printer in the room, storage per character or per computer, opening Mail or the Browser, and lines in the Event Viewer. Your endpoints only ever run for a player signed in at a computer that has your app.
exports['sd-computers']:AddCustomApp({
id = 'wrenchworks',
label = 'Wrenchworks',
ui = 'wrenchworks/web/index.html',
icon = 'wrenchworks/web/icon.svg',
groups = { mechanic = 0 },
endpoints = {
['orders:list'] = function(source, data, ctx) return { orders = orders } end,
},
})Start from the app templates: the same small app in plain JavaScript, React (JS and TS), Vue and Svelte, ready to copy and rename, and Wrenchworks, the full example in the picture above (a garage's work-order book that uses every call). Custom apps in the docs.
Every computer runs the same apps against the same server. Its style decides the shell around them:
| Style | Name on screen | Feel |
|---|---|---|
modern |
SD OS Pro | Centred taskbar and Start menu, rounded translucent windows, dark or light, soft glassy system sounds |
retro |
SD Desktop 3.11 | A 1991 shell inside a beige CRT: DOS boot, teal desktop, bevelled grey windows that snap open in chunky steps, synthesized period sounds |
mac |
SD OS Harbor | Top menu bar, magnifying dock, traffic-light window buttons, search overlay, a startup chord and its own pops and whooshes |
The style is picked per computer, and every character's wallpaper, accent and light or dark choice is saved per style. All three are original designs: no real OS logos, names, wallpapers or fonts.
Using a computer does not cover the game with a desktop. The camera moves up to the prop, square on to its screen, and the desktop sits exactly inside it, with the room still there around it. Out in the world, a computer nobody is using shows its lock screen on the prop, and one somebody is using shows a live copy of what they are doing to anyone standing nearby (PIN and password fields masked). Any prop can be given a screen: the admin panel has a tool that draws it on the prop with the mouse. Props and screens in the docs.
Command Prompt launches ten minigames from sd-deaddrop, with the same server-side anti-cheat: proof-of-play floors, ordered milestones and server-seeded puzzles. hack runs a practice game; breach runs a target you set up in configs/server/targets.lua, with its minigame steps, item requirement, cooldowns, police alert and a reward the server pays (items, money, mail or your own event). Your own robberies and heists can put the same minigames in front of a door or a vault, with a result the server has verified. Hacking and hacks in your scripts in the docs.
/computeradmin lists every computer, security camera and printer on the server, with who is sitting at which, and places new ones in game without touching a config file: stand a prop with the placement gizmo, or turn a monitor or printer the game already has into one. Cameras are put up by flying a camera to where it hangs. The same panel switches the monitors and laptops around the map on and off as computers, model by model, and adds props of your own. The admin panel in the docs.
A page is not handed to whoever pressed Print: it comes out of a printer in the world and waits in its tray until somebody takes it. A printout is one inventory item, a sheet of A4 that can be read, handed over, stashed and signed by whoever holds it, with the name and time under each signature written by the server. Mail, bank statements and logs are built by the server from its own data, so nobody can print a statement the bank does not agree with. Printers in the docs.
Everything else is on the docs site, docs.samueldev.shop/resources/computers:
| Page | What is on it |
|---|---|
| Installation | Dependencies, the printout item for your inventory, setting up computers, breach targets, PINs and admin permissions |
| Configuration | Every setting in every config file, and the full default files |
| Admin Panel | Placing computers, cameras and printers, picking props from the world, automatic computers, permissions |
| Props & Screens | Every prop, adding your own, the screen on the prop, drawing a prop's screen |
| Printers | Printing, trays, the printed page, signing |
| Hacking & Breach Targets | Command Prompt, the minigames, breach targets and rewards, the anti-cheat |
| Hacks in Your Scripts | Putting the minigames into your own robberies: from the server, from the client with a proof, or at a computer |
| Browser Sites | sd-phone's sites live, pages written in the config, your own web pages |
| sd-phone Link | What changes with sd-phone, and linking a phone to a machine |
| Security | How the server keeps a modified client from doing what a player at the desk could not |
| Custom Apps | Your own programs on the desktop: registering one, the page's API, endpoints, printing, storage, the example app |
| Client Exports / Server Exports | Opening computers from other scripts, verified hacks, System Logs, mail, printing your own pages, the breach event |
| Layer | Supported |
|---|---|
| Frameworks | QBox, QBCore. ESX works for everything except the Business Manager, which hides itself |
| Target | ox_target, qb-target, qtarget |
| Society funds | sd-banking, Renewed-Banking (optional; the Finances tab hides without one) |
| Phone | sd-phone v1.0.7 or newer (optional) |
Download sd-computers.zip from the latest release and unzip it into your resources folder: it is the resource with its UI already built, ready to drop in.
Important
Download the sd-computers.zip asset, not Source code (zip) or the green Code button. Those are the source, without the built UI: the computer would open to a blank screen until you build it yourself.
It needs ox_lib, oxmysql and a target resource (ox_target, qb-target or qtarget). Start it after them, your framework and your banking:
ensure ox_lib
ensure oxmysql
ensure sd-computersThe database tables create themselves on first start. Then add the printed_document item to your inventory (the picture is in docs/items/) and set up your computers: the full guide is Installation in the docs.
| Key | What it does |
|---|---|
| Esc | On the lock screen or an empty desktop, stands you up |
| Ctrl + Esc | Opens Start |
| Alt + F4 | Closes the focused window |
Start > Power > Shut down stands you up too, with the shutdown screen. Walking away closes the computer.
The repository is the source: the built UI (web/build) is not committed, and each release builds it into its zip. To run a clone, or to change the UI, build it with Node.js (LTS):
cd web
npm install
npm run buildA source ZIP unpacks to sd-computers-main: rename the folder to sd-computers, the name its exports are called by. After changing the UI, run npm run build again; the game loads web/build, not the source.
npm run dev opens the whole OS in a browser with mock data (dev PIN 1031). Hashes: #desktop skips the lock screen, #mail / #boss / #logs / #cmd and so on open an app (#ext:wrenchworks opens the example custom app, with the app templates checked out beside this repository), #lib shows a standalone StartHack window, and ?style=retro or ?style=mac switches the look. ?frame=0.2,0.1,0.6,0.78 (left, top, width, height as fractions of the window) lays the desktop out as it sits on a prop's screen. The admin panel is a page of its own: http://localhost:<port>/admin.html shows it with mock computers (placing "runs the gizmo" by hiding the panel for a moment). So is a prop's screen: /screen.html?mode=idle&style=retro is a lock face, and /screen.html?mode=live in a second tab shows a live copy of the OS running in the first. App contracts and UI conventions are in web/FRONTEND.md.














