local currentlyTowedVehicle = nil RegisterNetEvent('asser:tow') AddEventHandler('asser:tow', function() local playerped = GetPlayerPed(-1) local vehicle = GetVehiclePedIsIn(playerped, true) local towmodel = GetHashKey('flatbed') local isVehicleTow = IsVehicleModel(vehicle, towmodel) if isVehicleTow then local coordA = GetEntityCoords(playerped, 1) local coordB = GetOffsetFromEntityInWorldCoords(playerped, 0.0, 5.0, 0.0) local targetVehicle = getVehicleInDirection(coordA, coordB) if currentlyTowedVehicle == nil then if targetVehicle ~= 0 then if not IsPedInAnyVehicle(playerped, true) then if vehicle ~= targetVehicle then AttachEntityToEntity(targetVehicle, vehicle, 20, -0.5, -5.0, 1.0, 0.0, 0.0, 0.0, false, false, false, false, 20, true) currentlyTowedVehicle = targetVehicle TriggerEvent("chatMessage", "[TOWFuckers]", {255, 255, 0}, "Vehicle successfully attached to towtruck!") else TriggerEvent("chatMessage", "[TOWFuckers]", {255, 255, 0}, "Are you retarded? You cant tow your own towtruck with your own towtruck?") end end else TriggerEvent("chatMessage", "[TOWFuckers]", {255, 255, 0}, "Theres no vehicle to tow?") end else AttachEntityToEntity(currentlyTowedVehicle, vehicle, 20, -0.5, -12.0, 1.0, 0.0, 0.0, 0.0, false, false, false, false, 20, true) DetachEntity(currentlyTowedVehicle, true, true) currentlyTowedVehicle = nil TriggerEvent("chatMessage", "[TOWFuckers]", {255, 255, 0}, "The vehicle has been successfully detached!") end end end) function getVehicleInDirection(coordFrom, coordTo) local rayHandle = CastRayPointToPoint(coordFrom.x, coordFrom.y, coordFrom.z, coordTo.x, coordTo.y, coordTo.z, 10, GetPlayerPed(-1), 0) local a, b, c, d, vehicle = GetRaycastResult(rayHandle) return vehicle end