You can learn in this guide for how to use phone, and phone how it works.
Phone usage mainly preffered as consume/usage, this means when you use phone like other items(water, sandwich etc.) it will appear to your screen!
Using by key can works too! Assigned to M key by default but it can have errors/glitches.
Phone is using metadata, this means when someone stole your phone all data is gone and they can use everything in your phone.
This option can be configured by disabling! You can check this link for how to disable metadata.
Phone have a battery & internet, this means if you want to download an app or use probably requires an internet and can battery runout when over usage!
This option can be configured by disabling! You can check this link for how to disable battery and this link for how to disable internet.
Configuration
We're prefer to configuring phone, after configuring it will looks like how you're wanted.
Webhook (Images)
You need to webhooks for take an photo in this section you'll learn how to add webhooks.
First locate configs/config_server.lua and scroll to end find Config.Server.Webhook and modify.
configs/config_server.lua
Config.Server.Webhook = "your webhook link"
Custom Billing
If you're using custom billing script, locate configs/config_server.lua and find Config.Server.Paybilling after that you can modify the whole code,
configs/config_server.lua
Config.Server.PayBilling = function(Ply, society, amount, invoiceId, sendercitizenid)
local Invoices = {}
-- Your code
return Invoices
end
After that locate server/others.lua and find ls-phone:s:getAllBilling modify the whole code,
server/others.lua
LS_CORE.Callback.Functions.CreateCallback("ls-phone:s:getAllBilling", function(source, cb)
local invoices = LS_CORE.Config.DATABASE(LS_CORE.Config.DATABASE_NAME, 'fetchAll', 'SELECT * FROM phone_invoices WHERE citizenid = ?', {Config.Server.GetPlayerIdentifier(source)})
if invoices[1] ~= nil then
cb(invoices)
end
end)
If you're using client side paid function, locate client/others.lua and find PayInvoice modify the whole code,
client/others.lua
RegisterNUICallback('PayInvoice', function(data, cb)
local senderCitizenId = data.senderCitizenId
local society = data.society
local amount = data.amount
local invoiceId = data.invoiceId
-- Your code
end)
Custom Garage
If you're using custom garage script, locate server/others.lua and find these code snippet and edit whole code,
server/others.lua
Framework.Functions.CreateCallback("ls-phone:s:getCars", function(source, cb)
local Player = Config.Server.GetPlayer(source)
if not Player then return end
local result = LS_CORE.Config.DATABASE(LS_CORE.Config.DATABASE_NAME, 'fetchAll', 'SELECT * FROM player_vehicles WHERE citizenid = ?', { Config.Server.GetPlayerIdentifier(source) })
local results = {}
for key, value in ipairs(result) do
table.insert(results, {["garage"] = value["garage"], ["plate"] = value["plate"], ["model"] = value["vehicle"]})
end
cb(results)
end)
RegisterNetEvent("ls-phone:s:deletePed", function()
local src = source
Config.Server.GetPlayer(src, true).Functions.RemoveMoney("bank", Config.ValetCost, "Money taken from bank")
TriggerClientEvent("ls-phone:c:sendNotification", src, {
app = "garage",
message = "VALET_COST",
})
end)
RegisterNetEvent("ls-phone:s:changeVehicleDatabaseStatus", function(plate)
LS_CORE.Config.DATABASE( LS_CORE.Config.DATABASE_NAME, 'execute', 'UPDATE `player_vehicles` SET `garage` = @garage WHERE `plate` = @plate', {
["@plate"] = plate,
["@garage"] = nil,
})
end)
Framework.Functions.CreateCallback("ls-phone:s:getVehicleFromPlate", function(source, cb, plate)
cb(LS_CORE.Config.DATABASE(LS_CORE.Config.DATABASE_NAME, 'fetchAll', 'SELECT * FROM player_vehicles WHERE plate = ?', { plate })[1])
end)
Disabling Metadata
Some inventory does not support metadata usage, for reason best choice is closing metadata.
For changing metadata, configs/config_server.lua
If you close the metadata, you need to add metadata sql to your own server.
CREATE TABLE IF NOT EXISTS `phone_metadata` (
`identifier` varchar(255) NOT NULL,
`data` longtext NOT NULL,
PRIMARY KEY (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Battery
Only way to charge your phone is powerbank. If you dont have "powerbank" item in your database, create one.
When holding phone, using battery will charge phone.
For changing battery, configs/config.js
Internet
There is 2 way to use internet, mobile data or wi-fi. Some apps requires internet for use.
For disabling Internet, configs/config.js
Server Side Exports & Events
Phone
GivePhoneToPlayer- Default code for give phones to player. It can be used everywhere