[HELP] setElementData warning ...

Recommended Posts

Hello so i just watched a tutorial and tried to re-write exactly the same code as on the video it seemed to work throughout the tutorial but then at the end the error's started to pop up ,

BAD ARGUMENT @ 'setElementData' [Expected element at argument 1 got boolean]

I have no idea what to do i tried to solve it for a long time now without effects.


function createVehicleForPlayer(player, command, model)
    local db = exports.db:getConnection()
    local x,y,z = getElementPosition(player)
    y = y+5
    dbExec(db,"INSERT INTO vehicles(model, x, y, z) VALUES (?,?,?,?)",model, x , y , z)
    local vehicleObject = createVehicle(model,x, y, z)
    setElementData(vehicleObject, "id",,true)
        local results = dbPoll(queryHandle, 0)
        local vehicle = results[1]
    end, db,"SELECT id FROM vehicles ORDER BY id DESC LIMIT 1")
function loadAllVehicles(queryHandle, player)
    local results = dbPoll(queryHandle, 0)
    for index, vehicle in pairs(results) do
    local vehicleObject = createVehicle(vehicle.model, vehicle.x, vehicle.y, vehicle.z)
addEventHandler("onResourceStart",resourceRoot,function ()
    local db = exports.db:getConnection()
    dbQuery(loadAllVehicles, db,"SELECT*FROM vehicles")
addEventHandler("onResourceStop", resourceRoot,function ()
    local db = exports.db:getConnection()
    local vehicles = getElementsByType("vehicle")
    for index, vehicle in pairs(vehicles) do
        local id = getElementData(vehicle, "id")
        local x,y,z = getElementPosition(vehicle)
        dbExec(db,"UPDATE vehicles SET x = ?, y = ?, z = ? WHERE id = ?",x,y,z,model)


Share this post

Link to post

Are you sure you have the car in the database?

Add something like that to check whether the databse is empty or not:

if #results > 0 then -- #results means how many rows are in the table, if rows are more then 0 then...
	-- code if the database IS NOT empty
	outputDebugString("Vehicles database is EMPTY") -- outputs warning in debugmode (/debugscript 3)


Share this post

Link to post


On my opinion the problem is right here:

local results = dbPoll(queryHandle, 0)

change result timeout from 0 to -1:

local results = dbPoll(queryHandle, -1)


Use 0 for an instant response (which may return nil)

Edited by JeViCo

Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.