[Release] Car spawning via chat commands

CaesarNero, I hoped someone who knows what they were doing might give you some completed script. I have something working but it’s embedded in a bigger script that I am playing with. When I extract the /spawn vehicle section however it doesn’t act like I expect. It seems to need a loop in the client but I’m not sure why. Anyway, you can use this below until someone does it properly – I think it will work.

Create a folder named ‘Spawn’ in your server ‘resources’ folder and then create these files. First put the following into a file named ‘sv_spawn.lua’:

AddEventHandler('chatMessage', function(source, n, message)
  local args = stringsplit(message, " ")
  if (args[1] == "/spawn") then
    CancelEvent()
    if (args[2] ~= nil) then
      local playerID = tonumber(source)
      local vehicleName = tostring(args[2])
      TriggerClientEvent('VehicleSpawn', playerID, vehicleName)
    else
      local event = 'chatMessage'
      local eventTarget = source
      local messageSender = "SYSTEM"
      local messageSenderColor = {200, 0, 0}
      local message = "Usage: /spawn <Vehicle_Name>  (for example /spawn polmav)"
      TriggerClientEvent(event, eventTarget, messageSender, messageSenderColor, message)
    end
  end
end)

function stringsplit(self, delimiter)
  local a = self:Split(delimiter)
  local t = {}

  for i = 0, #a - 1 do
     table.insert(t, a[i])
  end

  return t
end

Second put the following in a file named ‘cl_spawn.lua’:

RegisterNetEvent('VehicleSpawn')
AddEventHandler('VehicleSpawn', function(vehicleName)
  local myPed = GetPlayerPed(-1)
  local player = PlayerId()
  local vehicle = GetHashKey(vehicleName)
  RequestModel(vehicle)
  while not HasModelLoaded(vehicle) do
    Wait(1)
  end
  local coords = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), 0, 5.0, 0)
  local spawned_car = CreateVehicle(vehicle, coords, GetEntityHeading(myPed), true, false)
  SetVehicleOnGroundProperly(spawned_car)
  SetModelAsNoLongerNeeded(vehicle)
  Citizen.InvokeNative(0xB736A491E64A32CF,Citizen.PointerValueIntInitialized(spawned_car))
end)

Citizen.CreateThread(function()
  while true do
    Wait(1)
  end
end)

Third create your ‘__resource.lua’ file in the same folder with the following:

client_script "cl_spawn.lua"
server_script "sv_spawn.lua"

And finally, in the citmp-server.yml file in your main server folder, add “- spawn” to the end of your list of “AutoStartResources:”.

4 Likes

Thank you very much!

Works perfectly. Thank you

How to make spawn only one car model with one drive?

i have error with the script

Hello there,

I was wondering if you could help to add a permission in this code because i’ve tried but it doesnt work.

Thanks in advance

1 Like

Hello! I’ve been using this script in my CitizenMP Server and it’s working fine but when I try it in FX Server it’s not working!! Any clues why it’s not working?

Replace function in server script:

function stringsplit(inputstr, sep)
    if sep == nil then
        sep = "%s"
    end
    local t={} ; i=1
    for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
        t[i] = str
        i = i + 1
    end
    return t
end
5 Likes

I tried this for my local FX test server and keep getting error when connecting to server “could not load resource spawn”

2 Likes

i fallowed ur step but didnt still spawn car is there anything els i should do to the script ?

ME TOO lol i did the same thing that this guy said

hi bro. i dont have the citmp-server.yml file… what do i need to do?

Here’s an updated one Very simple /car command

How to install the script?

hey mate !! do you have any solution about remove command (SPAWN) in chat, coz someone can (/spawn khanjali) in my server !! thx

Add ace perms to it so you can control who is able to use the cmd.

i’ve read many times that script and that solved but someone still spawn vehicle, when they try to use command chat for spawn vehicle, in my screen said ( System : spawn is not valid command ) but the vehicle still spawn

Its not a script its a client native found here (FiveM Natives)

If you set it up correctly it wont let anyone spawn them in unless you want them to.
You also need to make sure there is no other ways to spawn the cars.

This works great ^_^/)
Thank you.

PS: can spawn addons cars with this?!!
PS2: yes it works :blush:

after this line,

SetVehicleOnGroundProperly(spawned_car)

add this

Citizen.Wait(200)

    SetPedIntoVehicle(PlayerPedId(), spawned_car, -1)