Releases: uz-scripts/uz_AutoShot
Release list
v2.1.0
The HTTP server is gone. Captures now travel as native FiveM latent events, finish faster, and run on hosts that block inbound ports.
Architecture change
The bundled Node.js HTTP listener on 127.0.0.1:3959 has been removed. Capture uploads now use TriggerLatentServerEvent and land on an onNet handler. The script no longer binds a TCP port, so it runson hosts that block
inbound ports (locked-down VPS, Docker, shared panels) without any firewall configuration.
Performance
- Capture loops finish faster. The client used to wait for each HTTP upload to return before moving to the next frame. Now it fires a latent event and continues immediately, while the server processesthe queue in
parallel. A full clothing batch that took several minutes before runs through quicker on the same hardware. - Idle resmon cost down from 0.01ms to under 0.001ms. The input thread used to poll every frame; it now sleeps when no capture, preview, or wardrobe is open.
- No more multipart parsing on the server. Captures decode directly from a base64 payload, skipping the chunked body and boundary handling that the HTTP path required.
New Features
- Configurable head chroma mask:
Customize.HeadMaskis now a list of spheres, each with its own offset, size, and optional rotation. Stack multiple shapes to mask head, jaw, and neck independentlywithout one big sphere
clipping clothing. - Latent throttle config:
Customize.LatentRate(default 8 MB/s) controls the upload throttle for captures. Raise it for 4K source frames if the upload queue starts to lag. - Server-side ACE check: when
Customize.AceRestricted = true, the server rejects capture and bucket events from players who lackcommand.shotmaker. Closes the gap where the slash command was gatedbut the underlying
events were not.
Fixes
- Unsaved captures flipping 180° from the preview. The unsaved branch was using
preset.defaultAngleHinstead of the current orbit state and rotating the ped throughReapplyRotation, producing animage that looked
nothing like what the user just framed. The unsaved branch now reads the current orbit state and skips the ped rotation on presets that already setdefaultAngleH. - Players falling through the map after capture or wardrobe closes.
RestoreFullAppearancenow pre-streams collision around the original coords and waits forHasCollisionLoadedAroundEntitybeforeunfreezing the ped. attempt to compare number with nilfrom CreateCaptureCamera. Orbit locals (orbitDist,orbitAngleH, others) are declared at the top of the file so functions defined earlier can read them.
Breaking Changes
exports['uz_AutoShot']:getManifestURL()removed.exports['uz_AutoShot']:getServerPort()removed.Customize.BackendURLremoved fromCustomize.lua.- All
GET /api/*HTTP routes removed (/api/manifest,/api/exists,/api/stats).
If you were only using the cfx-nui photo URL exports (getPhotoURL, getVehiclePhotoURL, getObjectPhotoURL, getShotsBaseURL, getPhotoFormat), nothing changes for you. These are unchanged.
v2.0.0
New Features
- Vehicle Capture: auto-detects every loaded vehicle model, groups by class, with primary/secondary color picker.
Separate green screen and studio lighting sized for vehicles. - Object Capture: 30+ configurable world props (furniture, electronics, food, weapons, etc.). Add custom props in
Customize.luaor use/shotprop <model>for one-off captures. - Appearance Overlays: 12 head overlay categories (facial hair, eyebrows, makeup, blemishes, lipstick, chest hair,
and more) with correct color application per type. - Quick Capture Commands:
/shotcar <model>and/shotprop <model>for capturing a single vehicle or object
without opening the full UI. - Tabbed UI: four category tabs (Clothing, Appearance, Vehicles, Objects) with accordion group navigation.
- Vehicle Color Picker: select primary and secondary colors from 18 presets before capturing.
Improvements
- Orbit Camera: completely redesigned with roll (RMB), height (W/S), and FOV (Q/E) controls. Save angles per
category with C, reset with R. - Head-Hide System: chroma-key sphere hides the head during body-only captures for cleaner background removal.
- Camera Presets: expanded from 11 to 18 presets with per-category angle defaults.
- Green Screen: separate screen dimensions for peds, vehicles, and objects. Default size increased for better
coverage. - Configuration:
Customize.luaexpanded with overlay categories, vehicle settings, object list, and per-type
studio lighting. - New Exports:
getVehiclePhotoURL()andgetObjectPhotoURL()for other scripts to consume vehicle and object
photos. - Server: manifest now includes vehicle, object, and overlay types with proper filtering.
- Documentation: production-ready README with camera controls, troubleshooting, and full API reference.
Breaking Changes
- Camera preset names changed (e.g.
head→hair,torso→tops). If you customizedCustomize.CameraPresets,
update the keys. Customize.Categoriesnow requiresvisibleComponentsfield. See the updatedCustomize.luafor the new format.
Screenshots
Sample Outputs
UI
v1.1.2
What's new
cfx-nui photo delivery - Photos are now served through FiveM's native cfx-nui protocol instead of a local HTTP server. No port forwarding needed, works on VPS out of the box.
ACE permission system - Commands (/shotmaker, /wardrobe) now support FiveM's built-in ACE permissions. Restrict access to specific licenses, Steam IDs, or admin groups via server.cfg.
Changes
- Removed
/shots/static file serving from Node.js server (upload & API endpoints remain) - Added
shots/**/*tofxmanifest.luafiles block for native NUI serving - Updated all exports (
getPhotoURL,getShotsBaseURL) to returncfx-nuiURLs - Added
Customize.AceRestrictedconfig option (default:false)
Note
After generating new photos, restart the resource (ensure uz_AutoShot) so FiveM indexes the new files.
v1.1.0
What's new
Output dimensions now work — ScreenshotWidth and ScreenshotHeight were defined in config but never applied. Screenshots are now resized to your configured dimensions.
Magenta chroma key — Use Customize.ChromaKeyColor = 'magenta' when clothing contains green.
Better edge quality — Soft threshold, despill, and two-pass alpha feather for clean edges.
Sharper thumbnails — Area-average downscaling + post-resize sharpen.
Preview crop overlay — Letterbox bars show the final framing before capture.
![]() |
![]() |


























