From eeadbbc6d4d4bb10516c5cf6d27ff2790b344bf1 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Wed, 1 Mar 2023 10:15:38 -0800 Subject: [PATCH 01/11] feat(es_extended/client): Onesync range validation for client-sided spawning a better version of: https://github.com/esx-framework/esx_core/pull/915 --- [core]/es_extended/client/functions.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 8e137eca..3cce9106 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -406,6 +406,12 @@ function ESX.Game.SpawnVehicle(vehicle, coords, heading, cb, networked) local model = type(vehicle) == 'number' and vehicle or joaat(vehicle) local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) networked = networked or true + local player_coords = GetEntityCoords(ESX.PlayerData.ped) + local dist = #(player_coords - vector) + if dist > 424 then + local executing_resource = GetInvokingResource() or "Unknown" + return print(("[^1ERROR^7] Resource ^5%s^7 Tried to spawn vehicle on the client but the position is too far away (Out of onesync range)."):format(executing_resource)) + end CreateThread(function() ESX.Streaming.RequestModel(model) From 3a7765767926e644f343ea9d4ec3b12afe31315e Mon Sep 17 00:00:00 2001 From: Mycroft Date: Wed, 1 Mar 2023 10:27:52 -0800 Subject: [PATCH 02/11] feat(es_extended): Better error messaging to ensure onesync infinity is enabled --- [core]/es_extended/client/functions.lua | 2 +- [core]/es_extended/fxmanifest.lua | 1 - [core]/es_extended/server/main.lua | 4 ++++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 3cce9106..0a3f2e48 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -408,7 +408,7 @@ function ESX.Game.SpawnVehicle(vehicle, coords, heading, cb, networked) networked = networked or true local player_coords = GetEntityCoords(ESX.PlayerData.ped) local dist = #(player_coords - vector) - if dist > 424 then + if dist > 424 then -- Onesync infinity Range (https://docs.fivem.net/docs/scripting-reference/onesync/) local executing_resource = GetInvokingResource() or "Unknown" return print(("[^1ERROR^7] Resource ^5%s^7 Tried to spawn vehicle on the client but the position is too far away (Out of onesync range)."):format(executing_resource)) end diff --git a/[core]/es_extended/fxmanifest.lua b/[core]/es_extended/fxmanifest.lua index 3312541c..2899228b 100644 --- a/[core]/es_extended/fxmanifest.lua +++ b/[core]/es_extended/fxmanifest.lua @@ -75,7 +75,6 @@ files { dependencies { '/server:5949', - '/onesync', 'oxmysql', 'spawnmanager', } diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 603b85d2..6988aff2 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -1,6 +1,7 @@ SetMapName('San Andreas') SetGameType('ESX Legacy') +local OnesyncState = GetConvar('onesync', 'off') local newPlayer = 'INSERT INTO `users` SET `accounts` = ?, `identifier` = ?, `group` = ?' local loadPlayer = 'SELECT `accounts`, `job`, `job_grade`, `group`, `position`, `inventory`, `skin`, `loadout`, `meta`' @@ -95,6 +96,9 @@ if not Config.Multichar then local playerId = source local identifier = ESX.GetIdentifier(playerId) + if OnesyncState == "off" or OnesyncState == "legacy" then + deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(OnesyncState)) + end if identifier then if ESX.GetPlayerFromIdentifier(identifier) then deferrals.done( From e4b36d2d4cc2d5ed12650a603a9f4161c996f353 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Wed, 1 Mar 2023 11:43:06 -0800 Subject: [PATCH 03/11] feat: Database connection validation Suggested by tabarra. Instead of throwing them into awaiting scripts with 0 information. stop them from joining and tell them the user --- [core]/es_extended/server/common.lua | 3 ++- [core]/es_extended/server/main.lua | 14 ++++++++++---- [core]/esx_multicharacter/server/main.lua | 21 ++++++++++++++++++++- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/[core]/es_extended/server/common.lua b/[core]/es_extended/server/common.lua index 0867042b..57f1479e 100644 --- a/[core]/es_extended/server/common.lua +++ b/[core]/es_extended/server/common.lua @@ -8,7 +8,7 @@ Core.RegisteredCommands = {} Core.Pickups = {} Core.PickupId = 0 Core.PlayerFunctionOverrides = {} - +Core.DatabaseConnected = false Core.playersByIdentifier = {} Core.vehicleTypesByModel = {} @@ -39,6 +39,7 @@ local function StartDBSync() end MySQL.ready(function() + Core.DatabaseConnected = true if not Config.OxInventory then local items = MySQL.query.await('SELECT * FROM items') for k, v in ipairs(items) do diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 6988aff2..d1d0a361 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -56,6 +56,7 @@ function onPlayerJoined(playerId) if result then loadESXPlayer(identifier, playerId, false) else + createESXPlayer(identifier, playerId) end end @@ -97,18 +98,23 @@ if not Config.Multichar then local identifier = ESX.GetIdentifier(playerId) if OnesyncState == "off" or OnesyncState == "legacy" then - deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(OnesyncState)) + return deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(OnesyncState)) end + + if not Core.DatabaseConnected then + return deferrals.done(('[ESX] ESX Cannot Connect to your database. Please make sure it is correctly configured in your server.cfg'):format(OnesyncState)) + end + if identifier then if ESX.GetPlayerFromIdentifier(identifier) then - deferrals.done( + return deferrals.done( ('[ESX] There was an error loading your character!\nError code: identifier-active\n\nThis error is caused by a player on this server who has the same identifier as you have. Make sure you are not playing on the same account.\n\nYour identifier: %s'):format( identifier)) else - deferrals.done() + return deferrals.done() end else - deferrals.done( + return deferrals.done( '[ESX] There was an error loading your character!\nError code: identifier-missing\n\nThe cause of this error is not known, your identifier could not be found. Please come back later or report this problem to the server administration team.') end end) diff --git a/[core]/esx_multicharacter/server/main.lua b/[core]/esx_multicharacter/server/main.lua index cce710f0..1e6b19e9 100644 --- a/[core]/esx_multicharacter/server/main.lua +++ b/[core]/esx_multicharacter/server/main.lua @@ -1,6 +1,10 @@ if not ESX then error('\n^1Unable to start Multicharacter - you must be using ESX Legacy^0') elseif ESX.GetConfig().Multichar then + local DatabaseConnected = false + local DatabaseFound = false + local OnesyncState = GetConvar('onesync', 'off') + local DATABASE do local connectionString = GetConvar('mysql_connection_string', ''); if connectionString == '' then @@ -8,6 +12,7 @@ elseif ESX.GetConfig().Multichar then elseif connectionString:find('mysql://') then connectionString = connectionString:sub(9, -1) DATABASE = connectionString:sub(connectionString:find('/')+1, -1):gsub('[%?]+[%w%p]*$', '') + DatabaseFound = true else connectionString = {string.strsplit(';', connectionString)} for i = 1, #connectionString do @@ -16,6 +21,7 @@ elseif ESX.GetConfig().Multichar then DATABASE = v:sub(10, #v) end end + DatabaseFound = true end end @@ -92,11 +98,23 @@ elseif ESX.GetConfig().Multichar then AddEventHandler('playerConnecting', function(playerName, setKickReason, deferrals) deferrals.defer() local identifier = GetIdentifier(source) + if OnesyncState == "off" or OnesyncState == "legacy" then + return deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(OnesyncState)) + end + if not DatabaseFound then + deferrals.done(('[ESX Multicharacter] Cannot Find the servers mysql_connection_string. Please make sure it is correctly configured in your server.cfg'):format(OnesyncState)) + end + + if not DatabaseConnected then + deferrals.done(('[ESX Multicharacter] ESX Cannot Connect to your database. Please make sure it is correctly configured in your server.cfg'):format(OnesyncState)) + end + if identifier then + if not ESX.GetConfig().EnableDebug then if ESX.Players[identifier] then - deferrals.done(('A player is already connected to the server with this identifier.\nYour identifier: %s:%s'):format(PRIMARY_IDENTIFIER, identifier)) + deferrals.done(('[ESX Multicharacter] A player is already connected to the server with this identifier.\nYour identifier: %s:%s'):format(PRIMARY_IDENTIFIER, identifier)) else deferrals.done() end @@ -179,6 +197,7 @@ elseif ESX.GetConfig().Multichar then until next(ESX.Jobs) FETCH = 'SELECT identifier, accounts, job, job_grade, firstname, lastname, dateofbirth, sex, skin, disabled FROM users WHERE identifier LIKE ? LIMIT ?' + DatabaseConnected = true end end) From 0644cbf8991dda066ca98106408800192b344c9e Mon Sep 17 00:00:00 2001 From: Mycroft Date: Wed, 1 Mar 2023 11:47:02 -0800 Subject: [PATCH 04/11] fix(esx_multicharacter): store database tables correctly this has been broken for a while. all character data should now delete when deleting a character --- [core]/esx_multicharacter/server/main.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/[core]/esx_multicharacter/server/main.lua b/[core]/esx_multicharacter/server/main.lua index 1e6b19e9..ce90c665 100644 --- a/[core]/esx_multicharacter/server/main.lua +++ b/[core]/esx_multicharacter/server/main.lua @@ -109,7 +109,7 @@ elseif ESX.GetConfig().Multichar then if not DatabaseConnected then deferrals.done(('[ESX Multicharacter] ESX Cannot Connect to your database. Please make sure it is correctly configured in your server.cfg'):format(OnesyncState)) end - + if identifier then if not ESX.GetConfig().EnableDebug then @@ -159,11 +159,12 @@ elseif ESX.GetConfig().Multichar then local count = 0 for i = 1, #DB_COLUMNS do - local v = DB_COLUMNS[i] + local column = DB_COLUMNS[i] + DB_TABLES[column.TABLE_NAME] = column.COLUMN_NAME - if v?.CHARACTER_MAXIMUM_LENGTH ~= length then + if column?.CHARACTER_MAXIMUM_LENGTH ~= length then count += 1 - columns[v.TABLE_NAME] = v.COLUMN_NAME + columns[column.TABLE_NAME] = column.COLUMN_NAME end end From d1965696f41dacb41656ff160818ec05e7fc5772 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Wed, 1 Mar 2023 22:56:26 +0000 Subject: [PATCH 05/11] tweak: change `OnesyncState` to `oneSyncState` --- [core]/es_extended/server/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index d1d0a361..35dc7951 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -1,7 +1,7 @@ SetMapName('San Andreas') SetGameType('ESX Legacy') -local OnesyncState = GetConvar('onesync', 'off') +local oneSyncState = GetConvar('onesync', 'off') local newPlayer = 'INSERT INTO `users` SET `accounts` = ?, `identifier` = ?, `group` = ?' local loadPlayer = 'SELECT `accounts`, `job`, `job_grade`, `group`, `position`, `inventory`, `skin`, `loadout`, `meta`' From 05b158c57a47cd3f5e6e3e0074e77f10cae57162 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Wed, 1 Mar 2023 22:57:16 +0000 Subject: [PATCH 06/11] tweak: change `OnesyncState` to `oneSyncState` --- [core]/esx_multicharacter/server/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/esx_multicharacter/server/main.lua b/[core]/esx_multicharacter/server/main.lua index ce90c665..8833819d 100644 --- a/[core]/esx_multicharacter/server/main.lua +++ b/[core]/esx_multicharacter/server/main.lua @@ -3,7 +3,7 @@ if not ESX then elseif ESX.GetConfig().Multichar then local DatabaseConnected = false local DatabaseFound = false - local OnesyncState = GetConvar('onesync', 'off') + local oneSyncState = GetConvar('onesync', 'off') local DATABASE do local connectionString = GetConvar('mysql_connection_string', ''); From 33b68df021714930e12b2c8af9d09c44fa21a391 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 2 Mar 2023 08:13:50 -0800 Subject: [PATCH 07/11] formatting: correct naming scheme --- [core]/es_extended/server/main.lua | 6 +++--- [core]/esx_multicharacter/server/main.lua | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 35dc7951..6512c920 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -97,12 +97,12 @@ if not Config.Multichar then local playerId = source local identifier = ESX.GetIdentifier(playerId) - if OnesyncState == "off" or OnesyncState == "legacy" then - return deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(OnesyncState)) + if oneSyncState == "off" or oneSyncState == "legacy" then + return deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(oneSyncState)) end if not Core.DatabaseConnected then - return deferrals.done(('[ESX] ESX Cannot Connect to your database. Please make sure it is correctly configured in your server.cfg'):format(OnesyncState)) + return deferrals.done(('[ESX] ESX Cannot Connect to your database. Please make sure it is correctly configured in your server.cfg'):format(oneSyncState)) end if identifier then diff --git a/[core]/esx_multicharacter/server/main.lua b/[core]/esx_multicharacter/server/main.lua index 8833819d..564c7085 100644 --- a/[core]/esx_multicharacter/server/main.lua +++ b/[core]/esx_multicharacter/server/main.lua @@ -1,8 +1,8 @@ if not ESX then error('\n^1Unable to start Multicharacter - you must be using ESX Legacy^0') elseif ESX.GetConfig().Multichar then - local DatabaseConnected = false - local DatabaseFound = false + local databaseConnected = false + local databaseFound = false local oneSyncState = GetConvar('onesync', 'off') local DATABASE do @@ -12,7 +12,7 @@ elseif ESX.GetConfig().Multichar then elseif connectionString:find('mysql://') then connectionString = connectionString:sub(9, -1) DATABASE = connectionString:sub(connectionString:find('/')+1, -1):gsub('[%?]+[%w%p]*$', '') - DatabaseFound = true + databaseFound = true else connectionString = {string.strsplit(';', connectionString)} for i = 1, #connectionString do @@ -21,7 +21,7 @@ elseif ESX.GetConfig().Multichar then DATABASE = v:sub(10, #v) end end - DatabaseFound = true + databaseFound = true end end @@ -98,16 +98,16 @@ elseif ESX.GetConfig().Multichar then AddEventHandler('playerConnecting', function(playerName, setKickReason, deferrals) deferrals.defer() local identifier = GetIdentifier(source) - if OnesyncState == "off" or OnesyncState == "legacy" then - return deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(OnesyncState)) + if oneSyncState == "off" or oneSyncState == "legacy" then + return deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(oneSyncState)) end - if not DatabaseFound then - deferrals.done(('[ESX Multicharacter] Cannot Find the servers mysql_connection_string. Please make sure it is correctly configured in your server.cfg'):format(OnesyncState)) + if not databaseFound then + deferrals.done(('[ESX Multicharacter] Cannot Find the servers mysql_connection_string. Please make sure it is correctly configured in your server.cfg'):format(oneSyncState)) end - if not DatabaseConnected then - deferrals.done(('[ESX Multicharacter] ESX Cannot Connect to your database. Please make sure it is correctly configured in your server.cfg'):format(OnesyncState)) + if not databaseConnected then + deferrals.done(('[ESX Multicharacter] ESX Cannot Connect to your database. Please make sure it is correctly configured in your server.cfg'):format(oneSyncState)) end if identifier then @@ -198,7 +198,7 @@ elseif ESX.GetConfig().Multichar then until next(ESX.Jobs) FETCH = 'SELECT identifier, accounts, job, job_grade, firstname, lastname, dateofbirth, sex, skin, disabled FROM users WHERE identifier LIKE ? LIMIT ?' - DatabaseConnected = true + databaseConnected = true end end) From 30bee9343fa61674d175563af69ef5d7552da052 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 2 Mar 2023 08:34:35 -0800 Subject: [PATCH 08/11] refactor: make Config.Multichar an automatic value Credit to Fantik for the idea --- [core]/es_extended/config.lua | 2 +- [core]/esx_multicharacter/server/main.lua | 47 ++++++++++------------- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/[core]/es_extended/config.lua b/[core]/es_extended/config.lua index 1c6da954..ceca3601 100644 --- a/[core]/es_extended/config.lua +++ b/[core]/es_extended/config.lua @@ -29,7 +29,7 @@ Config.EnableDefaultInventory = true -- Display the default Inventory ( F2 ) Config.EnableWantedLevel = false -- Use Normal GTA wanted Level? Config.EnablePVP = true -- Allow Player to player combat -Config.Multichar = true -- Enable support for esx_multicharacter +Config.Multichar = GetResourceState("esx_multicharacter") ~= "missing" Config.Identity = true -- Select a characters identity data before they have loaded in (this happens by default with multichar) Config.DistanceGive = 4.0 -- Max distance when giving items, weapons etc. diff --git a/[core]/esx_multicharacter/server/main.lua b/[core]/esx_multicharacter/server/main.lua index 564c7085..12864d99 100644 --- a/[core]/esx_multicharacter/server/main.lua +++ b/[core]/esx_multicharacter/server/main.lua @@ -1,29 +1,26 @@ -if not ESX then - error('\n^1Unable to start Multicharacter - you must be using ESX Legacy^0') -elseif ESX.GetConfig().Multichar then - local databaseConnected = false - local databaseFound = false - local oneSyncState = GetConvar('onesync', 'off') +local databaseConnected = false +local databaseFound = false +local oneSyncState = GetConvar('onesync', 'off') - local DATABASE do - local connectionString = GetConvar('mysql_connection_string', ''); - if connectionString == '' then - error(connectionString..'\n^1Unable to start Multicharacter - unable to determine database from mysql_connection_string^0', 0) - elseif connectionString:find('mysql://') then - connectionString = connectionString:sub(9, -1) - DATABASE = connectionString:sub(connectionString:find('/')+1, -1):gsub('[%?]+[%w%p]*$', '') - databaseFound = true - else - connectionString = {string.strsplit(';', connectionString)} - for i = 1, #connectionString do - local v = connectionString[i] - if v:match('database') then - DATABASE = v:sub(10, #v) - end +local DATABASE do + local connectionString = GetConvar('mysql_connection_string', ''); + if connectionString == '' then + error(connectionString..'\n^1Unable to start Multicharacter - unable to determine database from mysql_connection_string^0', 0) + elseif connectionString:find('mysql://') then + connectionString = connectionString:sub(9, -1) + DATABASE = connectionString:sub(connectionString:find('/')+1, -1):gsub('[%?]+[%w%p]*$', '') + databaseFound = true + else + connectionString = {string.strsplit(';', connectionString)} + for i = 1, #connectionString do + local v = connectionString[i] + if v:match('database') then + DATABASE = v:sub(10, #v) end - databaseFound = true end + databaseFound = true end +end local DB_TABLES = {users = 'identifier'} local FETCH = nil @@ -239,8 +236,4 @@ elseif ESX.GetConfig().Multichar then RegisterNetEvent('esx_multicharacter:relog', function() local source = source TriggerEvent('esx:playerLogout', source) - end) - - else - assert(nil, '^3WARNING: Multicharacter is disabled - please check your ESX configuration^0') - end + end) \ No newline at end of file From 9be905588f0246a89284bf54eac76761bd39421a Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 2 Mar 2023 08:39:19 -0800 Subject: [PATCH 09/11] tweak(es_extended/client/functions.lua): add more validation --- [core]/es_extended/client/functions.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 0a3f2e48..25d22163 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -406,8 +406,11 @@ function ESX.Game.SpawnVehicle(vehicle, coords, heading, cb, networked) local model = type(vehicle) == 'number' and vehicle or joaat(vehicle) local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) networked = networked or true - local player_coords = GetEntityCoords(ESX.PlayerData.ped) - local dist = #(player_coords - vector) + local playerCoords = GetEntityCoords(ESX.PlayerData.ped) + if not vector or not playerCoords then + return + end + local dist = #(playerCoords - vector) if dist > 424 then -- Onesync infinity Range (https://docs.fivem.net/docs/scripting-reference/onesync/) local executing_resource = GetInvokingResource() or "Unknown" return print(("[^1ERROR^7] Resource ^5%s^7 Tried to spawn vehicle on the client but the position is too far away (Out of onesync range)."):format(executing_resource)) From 322d268c264f498a3465fca0eb5fab7f685efa5f Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 2 Mar 2023 08:42:06 -0800 Subject: [PATCH 10/11] formatting: more camelCase --- [core]/es_extended/client/functions.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 25d22163..b07c7610 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -412,7 +412,7 @@ function ESX.Game.SpawnVehicle(vehicle, coords, heading, cb, networked) end local dist = #(playerCoords - vector) if dist > 424 then -- Onesync infinity Range (https://docs.fivem.net/docs/scripting-reference/onesync/) - local executing_resource = GetInvokingResource() or "Unknown" + local executingResource = GetInvokingResource() or "Unknown" return print(("[^1ERROR^7] Resource ^5%s^7 Tried to spawn vehicle on the client but the position is too far away (Out of onesync range)."):format(executing_resource)) end CreateThread(function() From 789dc8b49e6d2037e5a916c417e2cff14028e448 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 2 Mar 2023 10:49:22 -0800 Subject: [PATCH 11/11] tweak(es_extended/fxmanifest.lua): change requirement to be exact --- [core]/es_extended/fxmanifest.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/fxmanifest.lua b/[core]/es_extended/fxmanifest.lua index 2899228b..81bb8157 100644 --- a/[core]/es_extended/fxmanifest.lua +++ b/[core]/es_extended/fxmanifest.lua @@ -74,7 +74,7 @@ files { } dependencies { - '/server:5949', + '/native:0x6AE51D4B', 'oxmysql', 'spawnmanager', }