Wert Give Money System
You can access the setup information you need about this product
Last updated
You can access the setup information you need about this product
Last updated
1 - Upload the script folder to the location of your resources
2 - Check config and editable file settings. If you are using different systems, you can make the necessary adjustments in these files, such as for , ox_lib
, etc.
3 - Installation successful, have a good funs
There are many ox settings available in the files, if you want, you can configure them.
If you want to use ox_lib, please check if this link is enabled on fxmanifest.check it out from inside lua. this must be turned on before you can use ox_lib. After opening it, it will be enough to use the refresh and ensure commands.
The script comes with default settings. There are many settings in the configuration file, and you can customize all of them to your personal preferences. Below are the configuration files, feel free to check them out.
Config = {}
Config.OxLib = false
Config.DebugPoly = false
-- # Interaction distance settings
Config.RenderDistance = 10.0 -- Render distance, player long distance interaction ui's show in how much distance so we can say min distance for render interaction ui
Config.InteractionDistance = 1.0 -- Interaction distance, if u try give money for other player u need near how much distance
-- # Interaction text and key settings
Config.LongDistanceInteractionInner = 'E' -- Text for long distance interface also if u want change for icon support : https://fontawesome.com/icons
Config.NearDistanceInteractionKey = 'E' -- Near interaction key text
Config.NearDistanceInteractionInner = 'Give Money (%s$)' -- Give money text for near distance (%s for money amount, if u dont want this u can edit this line for another default string or change position what u want ...)
Config.InteractionKeyForGiveMoney = 38 -- Key code for start give money to other player https://docs.fivem.net/docs/game-references/controls/
-- # Command settings
-- Command for start give money
Config.CommandSettings = {
active = true,
name = 'givemoney',
description = 'Give money other players!',
argument_desc = 'Amount ($)',
}
-- # Key settings
-- Hot key for start fast give money
Config.KeySettings = {
active = true,
key = 'HOME',
description = 'Give money other players!',
}
Config.CancelKey = {key = 'H', description = 'Cancel active give action'}
Config.PlaceKey = {key = 'G', description = 'Place ur money'}
-- # Place settings
Config.EnablePlace = true -- true or false | If u set true u allows drops | So if player press place key him drop money own location for after take ... u can take information in video or features ...
Config.PlaceRenderInteractionDistance = 5.0 -- How far away the interface will be displayed for droped moneys
Config.PlaceKeyInteractionDistance = 1.2 -- How many distances can you press the key within for droped moneys
Config.PlaceLongDistanceInteractionInner = 'E' -- Text for long distance interface also if u want change for icon support : https://fontawesome.com/icons
Config.PlaceNearDistanceInteractionKey = 'E' -- Near interaction key text
Config.PlaceNearDistanceInteractionInner = 'Take Money (%s$)' -- Give money text for near distance (%s for money amount, if u dont want this u can edit this line for another default string or change position what u want ...)
Config.PlaceInteractionKeyForGiveMoney = 38 -- Key code for start give money to other player https://docs.fivem.net/docs/game-references/controls/
-- # Input settings
-- When u not set amount for money from command or u use hotkey or u trigger start event for another script like radial menu for the set amount this is requid
-- Note : If u want use ox_lib u need open Config.OxLib
-- This input settings editable in client side
Config.InputSystem = 'wert-input' -- 'ox_lib' | 'qb-input' | 'custom' | 'wert-input' | Wert input is script feature, if u dont have or dont want others u can use we input system
-- # Model and attach settings
Config.MoneyModel = `prop_cash_pile_02`
Config.MoneyPlacementBone = 28422
Config.MoneyPlacement = {
0.11, -- Position X
0.0, -- Position Y
-0.03, -- Position Z
77.0, -- Rotation X
0.0, -- Rotation Y
0.0 -- Rotation Z
}
-- The dynamic model system allows you to choose between different models and animations as the amount of money changes.
-- You can customize it through the settings below.
-- If you disable the dynamic system, the default Config.MoneyModel value will be used for all money amounts.
Config.UseDynamicModelSystem = true -- # true or false | boolean
Config.UseDynamicModels = {
{
minMoney = 1,
maxMoney = 10000,
model = `prop_cash_pile_02`,
attach = {
bone = 28422,
pos = {0.11, 0.0, -0.03}, -- Position x , y ,z
rot = {77.0, 0.0, 0.0} -- Rotation x , y , z
},
anim = {
dict = "amb@world_human_tourist_map@male@base",
anim = "base",
flag = 50
}
},
{
minMoney = 10001,
maxMoney = 50000,
model = `prop_med_bag_01b`,
attach = {
bone = 28422,
pos = {0.3000, 0.0100, 0.0040}, -- Position x , y ,z
rot = {90.0, 0.0, -90.0} -- Rotation x , y , z
},
anim = {
dict = "move_weapon@jerrycan@generic",
anim = "idle",
flag = 50
}
},
{
minMoney = 50001,
maxMoney = 'unlimited',
model = `prop_ld_suitcase_01`,
attach = {
bone = 28422,
pos = {0.2900, 0.0100, 0.0040}, -- Position x , y ,z
rot = {90.0, 0.0, -90.0} -- Rotation x , y , z
},
anim = {
dict = "move_weapon@jerrycan@generic",
anim = "idle",
flag = 50
}
},
-- If u want add or edit more setting here
}
-- # Money carry animation and settings
Config.AnimationSettings = { -- No dynamic system setting. If u want use dynamic system u can edit above Config.UseDynamicModels table.
dict = "amb@world_human_tourist_map@male@base",
anim = "base",
flag = 50,
}
-- # Give to target animation
Config.GiveTargetAnimationSettings = {
dict = 'mp_common',
anim = 'givetake1_b',
flag = 50,
}
-- # Take money for target animation
Config.TakeMoneyAnimationSettings = {
dict = "mp_common",
anim = "givetake1_a",
flag = 50,
}
-- # Disable control settings (When give money active on hand disable this controls)
Config.DisableControls = {
active = true, -- If u dont want disable system set false this
controls = { 24, 25, 59, 63, 64, 71, 72, 75, 140, 141, 142, 143, 257, 263, 264 },
disableShot = true
}
-- # Request system
-- This is a question system. When player try give money, target player have a question ui. If target accept this give money request, give money action successfully completed.
Config.UseRequestSystem = true -- true or false | For the enable system set true
Config.RequestAnswerTime = 30 -- Second (Player must answer request in this time, if not answer action auto cancel)
Config.RequestInteractionKey = {
key = 'LMENU',
description = 'Enable / Disable request menu interaction'
}
Config.RequestShowGiverName = false -- If You want the see money sender player name on request popui u can set true (LANG file have much text setting for this settings). | true or false | boolean
Config.RequestShowGiverAdvancedSettings = { -- !IMPORTANT for the must work this settings u need open Config.RequestShowGiverName setting.
active = true, -- Do you want to activate the system that checks that the player is unrecognizable by checking clothes ? Like mask check.
datas = {
-- ['key'] (string) = {table}
['1'] = {0}, -- Example : 1) Mask id | Not mask component id drawableId 0 so if player not have mask script show player name but if player have mask it write like mask player (Lang file have edit)
-- If u want add more component id and drawableId like above
},
props = {
-- ['key'] (string) = {table}
-- Same rules available for this like above ...
}
}
Config.RequestShowMoneyAmount = false -- If u want see money amount on popui u can set true (LANG file have much text setting for this settings). | true or false | boolean
-- # Take money from drop animation (Place system)
Config.TakeMoneyFromDropAnimation = {
dict = 'anim@mp_snowball',
anim = 'pickup_snowball',
flag = 0
}
local QBCore = exports['qb-core']:GetCoreObject()
-- # Functions
function CustomNotifVariation(text, style, time)
QBCore.Functions.Notify(text, style, time)
end
function CustomStatusUI(bool, place)
-- If u want change ui for ur self.
-- Now use original script interface
exports['wert-givemoneysystem']:StatusUIActivity(bool, place)
end
function OpenInput()
-- This is input system without wert-input
-- If u want select custom in config and add ur custom input system
if Config.InputSystem == 'ox_lib' then
local dialog = lib.inputDialog(LANG.input.label, {
{type = 'number', label = LANG.input.header, description = LANG.input.description, icon = 'money-bill-wave', required = true},
})
if dialog and dialog[1] then
local amount = tonumber(dialog[1])
if amount > 0 then return amount else
-- Must bigger than 0
return false
end
else
-- Invalid value notif
return false
end
elseif Config.InputSystem == 'qb-input' then
local dialog = exports['qb-input']:ShowInput({
header = LANG.input.header,
submitText = LANG.input.confirm,
inputs = {
{
text = LANG.input.description,
name = "amount",
type = "number",
isRequired = true
},
},
})
if dialog and dialog.amount and dialog.amount ~= '' then
local amount = tonumber(dialog.amount)
if amount > 0 then return amount else
-- Must bigger than 0
return false
end
else
-- Invalid value notif
return false
end
elseif Config.InputSystem == 'custom' then
-- Custom for u
end
end
-- # Events
RegisterNetEvent('wert-givemoneysystem:client:system-activity', function(bool)
-- This is a event handler. When give money action start or stop this event trigger. If u want use with other scripts and add much intergate for other scripts.
-- A example u can use this and disable ur phone open or inventory open, with custom ur exports.
--[[ if bool then
print('Give money action started')
else
print('Give money action finished!')
end ]]
end)
RegisterNetEvent('wert-givemoneysystem:client:send-custom-notif', function(text, style, time)
CustomNotifVariation(text, style, time)
end)
local QBCore = exports['qb-core']:GetCoreObject()
EnableDiscordLogs = true -- !IMPORTANT | If u want use discord logs please set true this. If u dont want set false.
local StartWebHook = ""
local CancelWebHook = ""
local CompleteWebHook = ""
local MoneyDropComplete = ""
PlaceWebHook = ""
function SendNotify(src, msg, style, time) TriggerClientEvent('wert-givemoneysystem:client:send-custom-notif', src, msg, style, time) end
function GetPlayerFullName(ply)
if not ply then return 'Unkown' end
local myfullname = ply.PlayerData.charinfo.firstname .. ' ' .. ply.PlayerData.charinfo.lastname
return myfullname
end
function CheckMoney(src, amount)
local ply = QBCore.Functions.GetPlayer(src)
if not ply then SendNotify(src, LANG.error.player_not_online, 'error') return false end
amount = tonumber(amount)
local money = ply.PlayerData.money.cash
if (money - amount) >= 0 then
ply.Functions.RemoveMoney('cash', amount)
if EnableDiscordLogs then
local time = exports['wert-givemoneysystem']:getTimeStatus()
local fullname = ply.PlayerData.charinfo.firstname .. ' ' .. ply.PlayerData.charinfo.lastname
local cid = ply.PlayerData.citizenid
local logMessage = 'Player Name : ' .. fullname ..
'\n Player Cid / Identifier : ' .. cid ..
'\n Amount : ' .. amount ..
'\n ID : ' .. src ..
'\n Time : ' .. time
exports['wert-givemoneysystem']:sendLog(StartWebHook, 'Player Start Give Money', logMessage)
end
return true
else
SendNotify(src, LANG.error.money_enough, 'error')
return false
end
end
function AddBackMoney(src, amount)
local ply = QBCore.Functions.GetPlayer(src)
if not ply then return end
amount = tonumber(amount)
ply.Functions.AddMoney('cash', amount)
if EnableDiscordLogs then
local time = exports['wert-givemoneysystem']:getTimeStatus()
local fullname = ply.PlayerData.charinfo.firstname .. ' ' .. ply.PlayerData.charinfo.lastname
local cid = ply.PlayerData.citizenid
local logMessage = 'Player Name : ' .. fullname ..
'\n Player Cid / Identifier : ' .. cid ..
'\n Amount : ' .. amount ..
'\n ID : ' .. src ..
'\n Time : ' .. time
exports['wert-givemoneysystem']:sendLog(CancelWebHook, 'Player Cancelled Give Action', logMessage)
end
end
function MoneyTransferCompleted(id, amount, src)
local target = QBCore.Functions.GetPlayer(id)
if not target then return end
amount = tonumber(amount)
target.Functions.AddMoney('cash', amount)
if EnableDiscordLogs then
local ply = QBCore.Functions.GetPlayer(src)
if not ply then return end
local time = exports['wert-givemoneysystem']:getTimeStatus()
local fullname = ply.PlayerData.charinfo.firstname .. ' ' .. ply.PlayerData.charinfo.lastname
local cid = ply.PlayerData.citizenid
local targetcid = target.PlayerData.citizenid
local targetname = target.PlayerData.charinfo.firstname .. ' ' .. target.PlayerData.charinfo.lastname
local logMessage = 'Player Name : ' .. fullname ..
'\n Player Cid / Identifier : ' .. cid ..
'\n Amount : ' .. amount ..
'\n Player ID : ' .. src ..
'\n Target Name : ' .. targetname ..
'\n Target Cid / Identifier : ' .. targetcid ..
'\n Target ID : ' .. id ..
'\n Time : ' .. time
exports['wert-givemoneysystem']:sendLog(CompleteWebHook, 'Player Completed Give Action', logMessage)
end
end
function TakeMoneyFromDrop(src, amount, index)
local ply = QBCore.Functions.GetPlayer(src)
if not ply then return end
amount = tonumber(amount)
ply.Functions.AddMoney('cash', amount)
if EnableDiscordLogs then
local time = exports['wert-givemoneysystem']:getTimeStatus()
local fullname = ply.PlayerData.charinfo.firstname .. ' ' .. ply.PlayerData.charinfo.lastname
local cid = ply.PlayerData.citizenid
local logMessage = 'Player Name : ' .. fullname ..
'\n Player Cid / Identifier : ' .. cid ..
'\n Amount : ' .. amount ..
'\n Player ID : ' .. src ..
'\n Taked Money Index : ' .. index ..
'\n Time : ' .. time
exports['wert-givemoneysystem']:sendLog(MoneyDropComplete, 'Player Take Money From Drop', logMessage)
end
end
LANG = {
error = {
player_not_online = 'Player Not Online!',
money_enough = 'You are not have enough money!',
invalid_amount = 'Invalid amount value!',
amount_minus = 'Your amount value must bigger than 0 !',
target_not_online = 'Target not online!',
id_not_found = 'Id not found!',
target_busy = 'Target busy!',
request_already_have = 'You are already have a request!',
request_time_expire = 'Target did not respond to the call for a long time!',
request_target_cancelled = 'Your call has been canceled by the target!',
target_too_far = 'Player so faar, please go near or cancel this request!',
you_have_active_request = 'You can not do this while you have an active response process!',
money_not_found_on_hand = 'No money was found in your hand, please try again later!',
request_not_found = 'Request not found!',
money_drop_not_found = 'Money drop not found!',
money_drop_so_far = 'You are away from the money drop!',
},
success = {
request_send = 'The request has been sent!',
},
input = {
label = 'Give Money',
header = 'How much money u want transfer ?',
description = 'Money (Number $)',
confirm = 'Confirm',
placeholder = 'Amount',
cancel = 'Cancel'
},
statusUI = {
cancel_key = 'H',
cancel_txt = 'Cancel',
place_key = 'G',
place_txt = 'Place'
},
requestInterface = {
accept = 'Accept',
decline = 'Decline',
interaction = 'Press ALT to interact',
header = 'SOMEONE WANT GIVE MONEY',
header_only_money = 'SOMEONE WANT GIVE %s$',
header_name_and_money = '%s WANT GIVE %s$',
header_only_name = '%s WANT GIVE MONEY',
header_mask_and_money = 'MASKED WANT GIVE MONEY %s$',
header_only_mask = 'MASKED WANT GIVE MONEY',
},
}