Changelog
Released version and their changes.
#Changes
- Added carrier management and in-world slot fitting to
/towadmin.- Create, edit, and delete carriers.
- Configure vehicle size limits, slot layouts and per-slot height limits, loading zones, and trunk-opening requirements.
- Preview, adjust, and save slot layouts in world using multiple test vehicle models.
- Admin and debug commands now accept the
command,admin,superadmin, orownerACE groups by default. - Fixed detached ropes being stowed instead of remaining in your hand; detached metal cables are still stowed.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- client/unlocked/menus/admin_menu.lua
- server/locked/*
- server/unlocked/carrier_defaults.lua
- shared/locked/*
- shared/unlocked/beds.lua
- shared/unlocked/config.lua
- nui/*
- README.md
- locales/*
- types/types.lua
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Added
Config.Settings.adminMenu.carrierFitLocation=vector4(-1336.0, -3044.0, 13.94, 330.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").loadingZoneOffset(wasvector3(0.0, -13.0, 0.0)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").maxVehicleSize(wasvector3(2.5, 6.0, 3.0)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").mountedWinch.mode(was"builtIn") - Removed
Config.Settings.beds.models.GetHashKey("flatbed").mountedWinch.offset(wasvector3(-0.00001310347397, -4.73494911193847, -0.43463221192359)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").mountedWinch.rotation(wasvector3(0.0, 0.0, 180.0)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rearWinch(was{bone = "misc_c", offset = vector3(0.0, -4.83875, -0.61), reach = 2.5}) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").resource(was"zyke_flatbed") - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.deck.model(was"zyke_flatbed_bed") - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.deck.origin(wasvector3(0.0, -2.4, 0.425)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.deck.pivot(wasvector3(0.0, -4.45, 0.425)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.deck.slide(was3.2) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.deck.slideFraction(was0.5) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.deck.tilt(was17.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.deck.winchOffset(wasvector3(0.0, 3.193, 0.525)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.duration(was6000) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.lowered(was1.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.raised(was0.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.unloadAssist(was8.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.winchBone(was"misc_b") - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.winchSpeed(was0.6) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.winchStrength(was10.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.winchTimeout(was45000) - Removed
Config.Settings.beds.models.GetHashKey("flatbed").slots.[1](was{bone = "misc_a", offset = vector3(0.0, 0.0, 0.0), rotation = vector3(0.0, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").loadingZoneOffset(wasvector3(0.0, -13.0, 0.0)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").maxVehicleSize(wasvector3(2.5, 6.0, 3.0)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").mountedWinch.mode(was"builtIn") - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").mountedWinch.offset(wasvector3(-0.00001310347397, -4.73494911193847, -0.43463221192359)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").mountedWinch.rotation(wasvector3(0.0, 0.0, 180.0)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rearWinch(was{bone = "misc_c", offset = vector3(0.0, -4.83875, -0.61), reach = 2.5}) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").resource(was"zyke_flatbed_addon") - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.deck.model(was"zyke_flatbed_addon_bed") - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.deck.origin(wasvector3(0.0, -2.4, 0.425)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.deck.pivot(wasvector3(0.0, -4.45, 0.425)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.deck.slide(was3.2) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.deck.slideFraction(was0.5) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.deck.tilt(was17.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.deck.winchOffset(wasvector3(0.0, 3.193, 0.525)) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.duration(was6000) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.lowered(was1.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.raised(was0.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.unloadAssist(was8.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.winchBone(was"misc_b") - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.winchSpeed(was0.6) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.winchStrength(was10.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.winchTimeout(was45000) - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").slots.[1](was{bone = "misc_a", offset = vector3(0.0, 0.0, 0.0), rotation = vector3(0.0, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").loadingZoneOffset(wasvector3(0.0, -14.3, 0.0)) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").maxVehicleSize(wasvector3(2.8, 6.8, 3.0)) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.duration(was6000) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.lowered(was0.220) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.raised(was0.03) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.unloadAssist(was8.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.winchBone(was"misc_b") - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.winchSpeed(was0.6) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.winchStrength(was10.0) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.winchTimeout(was45000) - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").slots.[1](was{bone = "misc_a", offset = vector3(0.0, 0.75, 0.16), rotation = vector3(0.0, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("tr2").loadingZoneOffset(wasvector3(0.0, -11.0, 0.0)) - Removed
Config.Settings.beds.models.GetHashKey("tr2").maxVehicleSize(wasvector3(2.9, 4.8, 3.0)) - Removed
Config.Settings.beds.models.GetHashKey("tr2").requireTrunkOpen(wastrue) - Removed
Config.Settings.beds.models.GetHashKey("tr2").slots.[1](was{offset = vector3(0.0, 5.0, 0.43), maxVehicleHeight = 1.8, rotation = vector3(0.0, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("tr2").slots.[2](was{offset = vector3(0.0, 0.0, 0.563), maxVehicleHeight = 1.8, rotation = vector3(-3.14, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("tr2").slots.[3](was{offset = vector3(0.0, -5.0, 0.508), maxVehicleHeight = 1.8, rotation = vector3(4.51, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("tr2").slots.[4](was{offset = vector3(0.0, 5.0, 2.387), rotation = vector3(3.17, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("tr2").slots.[5](was{offset = vector3(0.0, 0.0, 2.493), rotation = vector3(-5.35, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("tr2").slots.[6](was{offset = vector3(0.0, -5.0, 2.73), rotation = vector3(-0.15, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("tr2").trunkDoorServerIndex(was1) - Removed
Config.Settings.beds.models.GetHashKey("trflat").loadingZoneOffset(wasvector3(0.0, -11.0, 0.0)) - Removed
Config.Settings.beds.models.GetHashKey("trflat").maxVehicleSize(wasvector3(2.8, 5.0, 3.0)) - Removed
Config.Settings.beds.models.GetHashKey("trflat").slots.[1](was{offset = vector3(0.0, 2.5, 0.41), rotation = vector3(0.0, 0.0, 0.0)}) - Removed
Config.Settings.beds.models.GetHashKey("trflat").slots.[2](was{offset = vector3(0.0, -2.5, 0.41), rotation = vector3(0.0, 0.0, 0.0)}) - Edited
Config.Settings.commandPermission:"command"->{"command", "admin", "superadmin", "owner"}
- Added
2026-10-07 09:02 CET
#Changes
- Added configured pickup spots and drop-off bays to the job defaults.
- Includes 30 pickup spots across roadside, highway, parking, and off-road locations, with tilted vehicle poses at some spots.
- Default drop-off bays now use configured outlines instead of placeholder rectangles at impound, mechanic, Benny’s, scrapyard, Harmony Repairs, and Beeker’s locations.
- Added ground-aware pickup placement and custom vehicle tilt.
- Added translucent vehicle previews when viewing pickup spots, matching the spot’s position and heading and falling back to an outline if the vehicle model cannot load.
- Added scroll-wheel rotation while placing pickup spots, with faster adjustments while holding Shift and without also changing weapons or radio stations.
/tow_survey_pickupsnow surveys spots missing a stored street name even if they already have terrain survey data, and saves the measured street.- Pickup spots now stay in creation order, oldest first, even after edits.
- Fixed incorrect street labels for unnamed pickup spots viewed from far away.
- Nearby saves record the street; remote saves retain the stored street only if the spot remains within the survey distance of its saved location.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- server/locked/*
- server/unlocked/job_defaults.lua
- shared/locked/*
- nui/*
- locales/*
- types/types.lua
- fxmanifest.lua
#Changes
- Attachment points for carried ropes and cables are now marked in the world with interest points instead of the placement panel.
- Added
Config.Settings.interactionto choose between interaction points (the default) and target menus. - Added a teleport button to the drop-off editor that takes you to the bay's center without closing the creator.
- Bay corners in the job creator are now added after the last placed corner, and right click removes the most recently placed corner.
- Removed the drop-off preview from the UI as it no longer served a purpose.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- shared/unlocked/config.lua
- nui/*
- README.md
- locales/*
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Added
Config.Settings.interaction="point"
- Added
#Changes
- Added a shared tow dispatch board where eligible drivers can accept recovery jobs.
- Accepting a job spawns the customer vehicle at a reserved pickup spot, and board jobs go to the nearest drop-off for their scenario.
- Some board jobs are long hauls to a farther drop-off, with higher pay and extra time.
- Deliveries are graded on vehicle condition, towing method, distance driven, speed and time, which affect stars and pay.
- Severely damaged vehicles are rejected for no payout.
- Terrain recoveries get extra allowance for the towing method needed to winch a vehicle out before loading.
- Added an on-screen tracker showing the active job's steps and remaining time.
- The active delivery's parking bay is now drawn in the world and turns green when the vehicle is inside, with unhooking guidance at the release step.
- Added experimental player tow requests through a Tow Service phone app for sd-phone and lb-phone.
- Drivers are notified and see customer requests on the dispatch board; the customer's own vehicle is used and is never replaced.
- Customers get a fee quote, and the fee is charged only when a driver accepts; it is refunded if the driver fails, and a customer cancellation after acceptance pays the driver a call-out.
- Customers can add preset or custom tips, changeable while the request is open, paid to the driver in full outside grading and payout multipliers.
- Customers pick from eligible cars and bikes and can switch an open request to another vehicle without reposting it.
- When terrain cannot be surveyed from afar, the request shows the maximum possible fee; the driver surveys on arrival and any unused held amount is refunded.
- Safeguards prevent customers from taking their own requests, limit repeat pairings and posting cooldowns, and require an available tow driver and an eligible drop-off.
- Board jobs are now rated by pickup terrain difficulty, which adjusts payout and time limits.
- Harder tiers can require specific recovery vehicle classes, and moving a job vehicle with an unapproved one past the allowance warns the driver and reduces stars and payout.
- Admins can survey pickup terrain in the creator or with the pickup survey command, and the first driver to reach an unsurveyed board pickup can supply its survey.
- Added an in-game tow job creator in the admin menu for job types, drop-off bays, pickup spots and vehicle groups.
- Create, edit and delete job types, including labels, payouts, time limits, towing methods and customer-vehicle conditions.
- Draw and reshape drop-off bays and place pickup spots in the world, with previews against nearby references and view-in-world actions.
- Manage vehicle groups with a multiplier; invalid vehicle models are shown and block saving.
- Warnings flag disabled job types and entries with no weight, vehicles, pickup types, pickups or drop-offs.
- Unsaved edits are kept when switching entries or closing the menu, with unsaved entries marked in the list and a notification when closing.
- Unnamed pickup spots are labeled by street and zone, and each tab explains its contents when no entry is open.
- Job type payout ranges appear in the list and are searchable.
- Drivers without the required job now see a specific wrong-job message instead of a generic permission denial.
- Disabled winch actions in the admin menu now explain why they are unavailable, such as a missing cable or a winch in use.
- Driver profiles now track completed, failed and earned totals along with job history and ratings.
- Added server events and webhook entries for tow jobs being accepted or finished and for tow requests being created or closed.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- client/unlocked/can_checks.lua
- client/unlocked/job_issues.lua
- client/unlocked/menus/admin_menu.lua
- client/unlocked/phone.lua
- server/locked/*
- server/unlocked/can_checks.lua
- server/unlocked/hooks.lua
- server/unlocked/items.lua
- server/unlocked/job_defaults.lua
- server/unlocked/jobs.lua
- server/unlocked/phone.lua
- server/unlocked/request_vehicles.lua
- shared/locked/*
- shared/unlocked/config.lua
- shared/unlocked/jobs.lua
- nui/*
- README.md
- extras/items/ox_inventory.txt
- extras/items/qb-core.txt
- extras/webhooks/towing.lua
- locales/*
- types/types.lua
- fxmanifest.lua
#Changes
- Added a
/towadminoverview menu for admins to monitor and manage towing across the server.- Browse active tow lines, carrier beds, and installed portable winches sorted by distance, with search by plate, model, player, or ID; the list refreshes while open.
- Teleport to a tow line's tower, detach a line without refunding its rope while keeping a loaded winch cable, or snap it like a break, which destroys the line and its mounted-winch cable.
- Inspect carrier-bed loads by slot, rollback position, and bed-cable state, and teleport to the carrier.
- Repair a portable winch, restore its loaded cable's durability, or delete the stored winch without returning an item; cable restoration requires a loaded cable, and deletion is blocked while the winch is in use.
- Added a developer API of exports for reading and controlling towing state from other resources.
- Read copied tow records, a vehicle's tow connections and full tow chain, and whether a vehicle is in a tow, towing, or being towed.
- Query a vehicle's carrier and slot, a carrier's loaded vehicles by slot, and a rollback bed's position, lowered state, and moving state.
- Inspect a player's attached tows, the material of the local player's carried rope or cable, and the vehicle endpoint of a player-carried winch cable.
- Detach a tow without refunding its rope, or snap it like a break, which destroys the line and removes a mounted winch's loaded cable.
- Added towing events that other resources can listen to; they are notifications only and cannot block towing actions.
- Added server logging for towing activity, with optional per-action Discord webhooks.
- Logs cover tow lines, beds, bed cables, winches, low-durability and worn-out parts, and admin actions; an empty webhook URL disables that action.
- Added vehicle model blacklist and whitelist rules for towing, bed loading, and portable-winch installation, working alongside the existing blocked-class rules.
- Rules accept spawn names or model hashes, and each rule set can be enabled per feature; defaults use blacklist mode with all three features enabled.
- Tow and bed-load rules are checked on both client and server, but do not prevent unloading an already loaded vehicle, and configured carrier models are not checked as bed loads.
- Portable winches can only be installed on allowed models; disallowed vehicles are not selected for placement and the server rejects them.
- Added low-durability warnings for portable winches and their loaded cables, enabled by default at 20%.
- The operator is notified once when a part crosses the threshold, and the winch meter shows which part is low.
- Taking a cable from a winch also warns if its durability is already at or below the threshold.
- Disabling warnings hides the warning row and notifications, while the winch-condition check remains available.
- Added synced towing sounds through
zyke_soundsfor winch operation, rollback-bed movement, line attachment and detachment, and snaps.- Sounds can be enabled, tuned for volume and distance, or muted individually; towing works without
zyke_sounds. - A bundle of six audio files is supplied in
extras/sounds/towingto copy intozyke_sounds/nui/sounds/, followed by a restart of that resource.
- Sounds can be enabled, tuned for volume and distance, or muted individually; towing works without
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- client/unlocked/menus/admin_menu.lua
- server/locked/*
- server/unlocked/grinding.lua
- server/unlocked/hooks.lua
- shared/locked/*
- shared/unlocked/config.lua
- shared/unlocked/restrictions.lua
- nui/*
- README.md
- extras/portable-winch.md
- extras/rollback_controller.md
- extras/sounds/CREDITS.md
- extras/sounds/towing/bed_hydraulics.ogg
- extras/sounds/towing/hook_attach.ogg
- extras/sounds/towing/hook_detach.ogg
- extras/sounds/towing/line_snap.ogg
- extras/sounds/towing/winch_motor.ogg
- extras/sounds/towing/winch_ratchet.ogg
- extras/webhooks/towing.lua
- locales/*
- types/types.lua
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Added
Config.Settings.adminMenu.command="towadmin" - Added
Config.Settings.adminMenu.enabled=true - Added
Config.Settings.adminMenu.refreshMs=3000 - Added
Config.Settings.towing.mountedWinch.durability.lowWarning={enabled = true, threshold = 20.0} - Added the full
Config.Settings.soundstable. Copy the entire table from the new config.
- Added
#Changes
- Adjusted inventory image organization.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- extras/items/images/256/artwork/tow_cable.png
- extras/items/images/256/artwork/tow_controller.png
- extras/items/images/256/artwork/tow_rope.png
- extras/items/images/256/artwork/tow_winch.png
- extras/items/images/256/artwork/tow_winch_empty.png
- extras/items/images/256/tow_cable.png
- extras/items/images/256/tow_controller.png
- extras/items/images/256/tow_rope.png
- extras/items/images/256/tow_winch.png
- extras/items/images/256/tow_winch_empty.png
- extras/items/images/4096/README.md
- extras/items/images/tow_cable.png
- extras/items/images/tow_controller.png
- extras/items/images/tow_rope.png
- extras/items/images/tow_winch.png
- extras/items/images/tow_winch_empty.png
- fxmanifest.lua
#Changes
- Adjusted inventory image organization.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- extras/items/images/256/artwork/tow_cable.png
- extras/items/images/256/artwork/tow_controller.png
- extras/items/images/256/artwork/tow_rope.png
- extras/items/images/256/artwork/tow_winch.png
- extras/items/images/256/artwork/tow_winch_empty.png
- extras/items/images/256/tow_cable.png
- extras/items/images/256/tow_controller.png
- extras/items/images/256/tow_rope.png
- extras/items/images/256/tow_winch.png
- extras/items/images/256/tow_winch_empty.png
- extras/items/images/4096/README.md
- extras/items/images/tow_cable.png
- extras/items/images/tow_controller.png
- extras/items/images/tow_rope.png
- extras/items/images/tow_winch.png
- extras/items/images/tow_winch_empty.png
- fxmanifest.lua
#Changes
- Added tow rope and winch cable cutting with the angle grinder script, coming soon as a separate resource.
- Cutting is flagged as illegal so witnesses can report the tow-line cut.
- Fixed the rollback controller to no longer force head and facial movement.
- Added direct winch cable loading via item use.
- Added clear-path checks for towline attachments.
- Blocked attachments fail with a notice and show a temporary red line between points.
- Server owners can toggle the line-of-sight requirement, shipped enabled.
- Reworked towing permissions around per-feature jobs and vehicle keys.
- Rollback beds now start and stop instantly with controls without waiting for the server.
- Release positions reconcile within tolerance and ignore stale inputs to prevent snap-back and unintended motion.
- Fixed clamped vehicles to stay held by reapplying wheelclamp brakes after bed-winch brake release when the wheelclamp resource is running.
- Fixed speed, traction, and pull-power effects to fully clear after the last tow ends.
- Tightened security checks on tow-line breaks.
- Breaks now validate driver proximity and seat, line existence, speed, distance, and tower health.
- Tightened security checks on stored winches.
- Fixed floating rope and controller props left by crashed players to be deleted on drop.
- Fixed hand-rope pickup to abort instead of hanging when loading fails or the carry changes.
- Fixed bed remote mode to fully stop when equipped while dead.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- client/unlocked/can_checks.lua
- client/unlocked/grinding.lua
- server/locked/*
- server/unlocked/can_checks.lua
- server/unlocked/grinding.lua
- server/unlocked/items.lua
- shared/unlocked/config.lua
- nui/*
- README.md
- extras/items/ox_inventory.txt
- extras/items/qb-core.txt
- extras/portable-winch.md
- extras/rollback_cable.md
- extras/rollback_controller.md
- locales/*
- stream/zyke_towing_controller.ycd
- types/types.lua
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Added
Config.Settings.access.bed={jobs = {}, keys = true} - Added
Config.Settings.access.cable={jobs = {}, keys = true} - Added
Config.Settings.access.rope={jobs = {}, keys = true} - Added
Config.Settings.access.winch={jobs = {}, keys = true} - Removed
Config.Settings.beds.access(was"keys") - Added
Config.Settings.beds.controllerItem="tow_controller" - Removed
Config.Settings.beds.jobs(was{"mechanic"}) - Added
Config.Settings.towing.grinding.enabled=true - Added
Config.Settings.towing.grinding.materials.metal={checks = {"easy", "easy", "easy"}, seconds = 2, durabilityLoss = {min = 8, max = 15}} - Added
Config.Settings.towing.grinding.materials.rope={checks = {"easy"}, seconds = 2, durabilityLoss = {min = 3, max = 6}} - Removed
Config.Settings.towing.jobRequirements.cable(was{}) - Removed
Config.Settings.towing.jobRequirements.rope(was{}) - Removed
Config.Settings.towing.jobRequirements.winch(was{}) - Added
Config.Settings.towing.strictAttachmentLineOfSight=true
- Added
#Changes
- Added additional gates in the
can_checks.luafiles, and added some default gates for jobs. - Added
towing.cableSimulationsetting to choose settled cable physics, defaulting to custom.- Custom looks better, native is more performance-friendly.
- Winch lines can now only be held by only one player at a time.
- Holds clear automatically if cancelled, interrupted, or the holder leaves.
- Removing a winch or servicing its cable is blocked while another player holds the line.
- Added mouse controls for winch placement.
- Confirm placement with left-click when the gizmo isn't focused and sprint isn't held.
- Cancel placement with right-click or ESC.
- Secured rollback loads now re-anchor after streaming or reconnect instead of staying loose.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- client/unlocked/can_checks.lua
- server/locked/*
- server/unlocked/can_checks.lua
- shared/unlocked/beds.lua
- shared/unlocked/config.lua
- locales/*
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Added
Config.Settings.towing.cableSimulation="custom" - Added
Config.Settings.towing.jobRequirements.cable={} - Added
Config.Settings.towing.jobRequirements.rope={} - Added
Config.Settings.towing.jobRequirements.winch={}
- Added
#Changes
- Fixed the rollback controller not working on all zyke_lib supported inventories.
- Added a confirmation dialog when removing a portable mounted winch to prevent accidental removal.
- Notifications
- Updates some generic notificaitons to be more specific for the cables.
- Removing a portable mounted winch now shows dedicated failure reasons, including when inventory is full, with clearer feedback when no vehicle is nearby.
- Checking a mounted winch condition now shows N/A for the cable when no cable is installed instead of 0%.
- Untying a rollback-bed cable now checks whether you can carry the refunded cable and fails safely if you cannot.
- Started using the new resource start cache from zyke_lib to save on performance.
- Add Lithuanian language.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- server/locked/*
- shared/unlocked/beds.lua
- locales/*
- fxmanifest.lua
#Changes
- Added dual winch support for flatbeds with built-in winches.
- Fixed rollback controller pairing and remote sessions to work with the server's configured inventory.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- server/locked/*
- shared/locked/*
- shared/unlocked/config.lua
- nui/*
- README.md
- extras/items/ox_inventory.txt
- extras/items/qb-core.txt
- extras/portable-winch.md
- extras/rollback_controller.md
- types/types.lua
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Edited
Config.Settings.beds.models.GetHashKey("flatbed").rearWinch:{bone = "misc_c", offset = vector3(0.0, -4.83875, -0.61), reach = 1.65}->{bone = "misc_c", offset = vector3(0.0, -4.83875, -0.61), reach = 2.5} - Edited
Config.Settings.beds.models.GetHashKey("flatbed").rollback.deck.winchOffset:vector3(0.0, 3.15, 0.225)->vector3(0.0, 3.193, 0.525) - Edited
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rearWinch:{bone = "misc_c", offset = vector3(0.0, -4.83875, -0.61), reach = 1.65}->{bone = "misc_c", offset = vector3(0.0, -4.83875, -0.61), reach = 2.5} - Edited
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.deck.winchOffset:vector3(0.0, 3.15, 0.225)->vector3(0.0, 3.193, 0.525) - Edited
Config.Settings.towing.ropeMaterials.metal.winch.minLength:3.0, maxLength = 30.0, speed = 1.0->3.0, bedMinLength = 0.5, maxLength = 30.0, speed = 1.0
- Edited
#Changes
- Added portable winches that mount to any vehicle and provide a reusable steel cable for towing.
- Install with the
tow_winchitem or permission-checked/tow_winchon a stationary vehicle, positioning it with the placement gizmo; limited to one per vehicle and requires solid mounting contact. - Take the cable nearby with targeting or
/tow_winch_use; the winch end stays attached so only the free end needs a bumper anchor before driving either vehicle to tow. - Load a steel cable from inventory into an empty winch, then unload it with targeting or
/tow_winch_unloadleaving the winch mounted or take it directly into hand with a brief pickup animation; the drum shows loaded or empty and broken winches refuse handling. - Remove the winch nearby with targeting or
/tow_winch_removeto recover the winch and any loaded cable if you can carry them; animated removal requires staying nearby, is blocked while towing, and confirms success or failure. - Steel cables work only from an installed winch while bumper-to-bumper towing uses rope.
- Detaching a winch tow keeps the free end in hand, and condition checks show winch and cable wear separately.
- Winch and cable wear only while the cable is taut and either vehicle moves, with heavier loads wearing faster; sudden hard pulls add extra wear, and depleting either part detaches the tow, consuming the cable, with a snapped-cable or broken-winch warning.
- Flatbed carriers include a built-in rear winch and cable that needs no item and cannot be loaded, unloaded, removed, or inspected, with no wear.
- Steel cable tows must start from the winch end, and reeling control follows that winch vehicle rather than the tow chain leader.
- Installed winches persist through garage parking, respawns, and restarts, with props hidden during garage handling without losing the installation.
- Short winch cables stay taut instead of going slack.
- Install with the
- Fixed deleted flatbeds leaving bed motion state behind so guards, freezes, and prompts no longer stick, and rollback waits no longer stall while a carrier prompt is shown.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- client/unlocked/can_checks.lua
- server/locked/*
- server/unlocked/can_checks.lua
- server/unlocked/items.lua
- shared/locked/*
- shared/unlocked/config.lua
- nui/*
- README.md
- extras/items/images/tow_winch.png
- extras/items/images/tow_winch_empty.png
- extras/items/ox_inventory.txt
- extras/items/qb-core.txt
- extras/portable-winch.md
- extras/rollback_cable.md
- locales/*
- stream/zyke_winch.ydr
- stream/zyke_winch.ytyp
- stream/zyke_winch_empty.ydr
- stream/zyke_winch_empty.ytyp
- types/types.lua
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Added the full
Config.Settings.beds.modelstable. Copy the entire table from the new config. - Added the full
Config.Settings.towing.mountedWinchtable. Copy the entire table from the new config.
- Added the full
#Changes
- Added explicit registration for tow bed vehicles.
- Spawn resources can register and unregister supported bed vehicles with
RegisterTowBedVehicleandUnregisterTowBedVehicle. - Server owners can disable automatic bed-vehicle discovery with
Config.Settings.beds.automaticVehicleDiscovery(enabled by default) so only explicitly registered beds are used.
- Spawn resources can register and unregister supported bed vehicles with
- Fixed manual bed cable reattachment so the cable can be reattached to a vehicle already loaded on the same carrier.
- Releasing the manual winch while pulling cable in now stops the cable at its current length and applies the towed vehicle's handbrake to hold it in place when you have network control.
- Winch meter now gives clearer feedback.
- Shows smooth partial fill with tick labels matched to the current range and the reading to one decimal.
- Rollback controller now handles out-of-range use more clearly.
- Moving beyond 20 metres keeps remote mode equipped with controls disabled until you return.
- Using the paired controller beyond 20 metres still pairs to the nearest matching rollback in the same routing bucket and reports out-of-range instead of unavailable, as does operating the bed while the remote is equipped but out of range.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- server/locked/*
- shared/unlocked/config.lua
- nui/*
- README.md
- extras/rollback_controller.md
- locales/*
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Added
Config.Settings.beds.automaticVehicleDiscovery=true
- Added
#Changes
- Added configurable rollback winch strength so operators can increase pulling force for specific flatbeds.
- Added automatic securing for empty loose vehicles left resting on a stationary flatbed deck when no players are nearby.
- Attached flatbed cargo now keeps its bed assignment across resource restarts and stops when it remains physically attached to its carrier.
- Fixed rollback beds resetting to the raised position after a restart by restoring their saved tilt and slide position.
- Tow ropes and metal cables now have updated thickness and materials for a more realistic look.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- server/locked/*
- shared/unlocked/config.lua
- shared/unlocked/functions.lua
- types/types.lua
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Removed
Config.Settings.beds.models.GetHashKey("flatbed").rollback.maxAcceleration(was10.0) - Added
Config.Settings.beds.models.GetHashKey("flatbed").rollback.winchStrength=10.0 - Removed
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.maxAcceleration(was10.0) - Added
Config.Settings.beds.models.GetHashKey("flatbed_zyke").rollback.winchStrength=10.0 - Removed
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.maxAcceleration(was10.0) - Added
Config.Settings.beds.models.GetHashKey("flatbedm2").rollback.winchStrength=10.0 - Edited
Config.Settings.towing.ropeMaterials.metal.rope:{ropeType = 6, spawnDistance = 75.0}->{ropeType = 5, radius = 0.01, spawnDistance = 75.0} - Edited
Config.Settings.towing.ropeMaterials.rope.rope:{ropeType = 2, spawnDistance = 75.0}->{ropeType = 2, radius = 0.01, spawnDistance = 75.0}
- Removed
#Changes
- Fixed rear-winched vehicles securing backward on the rollback bed.
- Fixed vehicles and rollback decks snagging or jolting when attaching, reseating, or detaching on the tow bed near ambient traffic, fixing a quirk that would randomly delete vehicles not owned by a player entity.
- Slowed the animation when using the remote.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- client/unlocked/can_checks.lua
- server/locked/*
- server/unlocked/can_checks.lua
- fxmanifest.lua
#Changes
- Added bundled tow controller prop and animations.
- Adjusted invalid asset notification.
#Files Affected
- client/locked/*
- locales/*
- stream/anim@scripted@freemode@ig8_radio_car@[email protected]
- stream/anim@scripted@freemode@ig8_radio_car@[email protected]
- stream/zyke_controller.ydr
- stream/zyke_controller.ytyp
- fxmanifest.lua
#Changes
- Fixed retried tow connections validate more carefully to avoid wrong vehicles with similar data.
- Physical winch payout off a rollback bed now succeeds into an occupied unloading area instead of failing as obstructed, with collisions still enabled.
- Pressing winch controls with no active tow or with a rope that cannot winch is now ignored instead of showing a notification.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- server/locked/*
- fxmanifest.lua
#Changes
- Added rollback-bed towing.
- Supports the Freightliner M2 and Zyke Flatbed replacement/addon, with hydraulic or sliding-and-tilting beds. Vehicle assets are installed separately; the Zyke Flatbed integrations require their matching vehicle resource to be running.
- Hold Up Arrow or Down Arrow from the cab to raise or lower the bed. Releasing stops it partway, and changing direction works without releasing first. Secured cargo follows the moving bed.
- Manually connect a metal cable to either bumper and winch vehicles onto the deck, including rear-first loading. Fitting vehicles secure once aligned on the bed; oversized vehicles can still be pulled without automatically securing.
- Releasing the winch keeps the cable attached at its current length, allowing cable towing without loading the vehicle onto the deck. Lower the bed fully before winching secured cargo off.
- Untie a stopped cable from either end to recover the cable item. If your inventory cannot receive it, the cable stays attached.
- Controlled unloading helps vehicles roll off the deck, with restored tyre clearance and collision when the bed attachment releases.
- Bed operation from the cab applies a configurable driving-speed limit, defaulting to 30 km/h. Driving above 10 km/h with an unsecured cable load cuts the cable if the bed is insufficiently lowered; the default threshold is 80%, with a warning when it cuts.
- Zyke Flatbeds have a separate rear towing outlet that does not block bed operation. With the bed fully raised and stationary, winch controls prioritize an active ordinary tow.
- Bed travel, movement speed, winch behavior and vehicle-fit limits can be configured per model. Conventional carriers retain their menu-based loading workflow.
- Added shareable, plate-paired towing controllers.
- Pair a controller inside a compatible rollback, then operate its bed and bed winch on foot within 20 metres. Pairing is stored on the item and survives restarts and vehicle respawns with the same plate.
- Lend the paired controller to another player so they can operate the bed without needing the original operator's towing permission or keys.
- The controller also operates the carrier's ordinary tow winch from outside, subject to towing permission and bed access. It has an in-hand prop and animations, and disconnects when taken out of range or lost.
- Added trailer and cargo weight effects.
- Hitched trailers and vehicles secured to carrier beds reduce acceleration according to their combined weight, without counting nested loads twice or changing braking and collision handling.
- Configure the extra weight penalty and minimum available power, or disable the penalty. Existing vehicle handling and rope-pulling assistance remain part of the calculation.
/tow_debugnow shows trailer/cargo weight and its effect on engine power, including when no rope tow is active.
- Changed the default winch controls: Page Up now reels in and Page Down pays out, for both ordinary towlines and rollback cables.
- Carrier height checks now use sampled vehicle collision instead of counting decorative geometry such as antennas, reducing false “too tall” rejections.
- Increased the TR2 carrier's supported vehicle width from 2.6 m to 2.9 m.
- Added a final loading check to prevent attaching a vehicle that became occupied, unavailable or no longer controlled during the operation.
- Tow winching now stops when an interface takes input focus, preventing it from continuing behind an open menu.
- Extras templates and supporting files are now excluded from escrow encryption so they remain editable.
#Config Changes
- In
shared/unlocked/config.lua, addConfig.Settings.towing.loadPhysicswithmassMultiplier = 0.3andminimumPowerMultiplier = 0.2. SetmassMultiplierto0.0to disable the extra weight penalty. - Add
Config.Settings.beds.operatingSpeedKmh = 30.0andConfig.Settings.beds.cableCutLoweredPercent = 80. - Merge the new
flatbedm2andflatbed_zykemodel entries and the updatedflatbedentry, including their rollback, slot and rear-winch settings. The stock Flatbed integration now requireszyke_flatbed; the addon useszyke_flatbed_addon. - Update the TR2
maxVehicleSizewidth to2.9, keeping its existing length and height limits. - Add the new
tow_controllerinventory item and its image, and ensure thezyke_controllerprop is available before using the remote. - Existing saved FiveM key bindings may override the new winch defaults; update them if Page Up and Page Down still behave as before.
#Changes
- Added a personal settings menu with a modal UI for viewing and changing per-player towing settings, including slider and option-style settings with a command hint footer.
- The UI now waits for loading to finish before rendering and warns after 10 seconds unless warnings are silenced.
- Added configurable permissions to allow or deny using a tow rope by material, showing a custom denial message when provided and a generic message otherwise.
- Added configurable permissions to allow or deny attaching a tow between specific vehicles, ends, and materials, also checked during target selection.
- Added configurable permissions to allow or deny detaching an active tow.
- Added configurable permissions to allow or deny winching a tow in or out, checked while winching is held; stopping the winch is always allowed.
- Added configurable permissions to allow or deny loading, unloading, and repositioning vehicles in tow bed slots.
- Added configurable permissions to allow or deny opening the tow bed menu for a carrier.
- Missing tow rope denials now show the specific server-provided reason when available instead of always showing a generic message.
#Files Affected
Note: Due to the number of files changed, we recommend a full reinstall instead of swapping out individual files.
- client/locked/*
- client/unlocked/can_checks.lua
- client/unlocked/menus/personal_settings.lua
- server/locked/*
- server/unlocked/can_checks.lua
- server/unlocked/items.lua
- shared/locked/*
- shared/unlocked/beds.lua
- shared/unlocked/config.lua
- shared/unlocked/functions.lua
- shared/unlocked/loader.lua
- nui/*
- README.md
- types/types.lua
- fxmanifest.lua
#Config Changes
shared/unlocked/config.lua- Added the full
Config.Settings.bedstable. Copy the entire table from the new config. - Added the full
Config.Settings.personalSettingstable. Copy the entire table from the new config. - Added the full
Config.Settings.towingtable. Copy the entire table from the new config. - Added three new
Config.Settings.personalSettings.settingsentries:winchMeterScalewinchMeterHideDelaywinchMeterAlwaysShow
- Added the full
Initial beta test release.