[ESX] MSK Banking | Advanced Bankingsystem

Tebex [19.99€ incl. VAT] - Encrypted
Tebex [29.99€ incl. VAT] - Only Serverside Encrypted

Documentation
Youtube Video Preview

Description

  • Create your first main account
  • Create a second account
  • Create society accounts (integrated System or Addon_Account) [in config.lua]

  • Invoices
  • Investment
  • Transactionshistory

  • Animation at the ATMs [setatm models in config.lua]
  • Deposit, Withdraw and Transfer money
  • Transfer money via Accountnumber not via PlayerID [offline Transfer]
  • NPCs or Marker at the Bank [toggleable in config.lua]
  • Bankcard item needed to access a ATM [buyable at the Bank]
  • Set different locations for a Bank with a few options [look at the config.lua]
  • You can set the ranks that have access to the society account [in config.lua]

  • Set the Notification you want to use
  • Set Custom Banner for the NativeUI Menu
  • Discord Logs [deposit, withdraw, transfer, create or delete account, change accountnumber]

Config

Config = {}
----------------------------------------------------------------
Config.Locale = 'de' -- 'de', 'en'
Config.VersionChecker = true
Config.Debug = true
----------------------------------------------------------------
-- Add the Webhook Link in server_discordlog.lua
Config.DiscordLog = true
Config.botColor = "6205745" -- https://www.mathsisfun.com/hexadecimal-decimal-colors.html
Config.botName = "MSK Scripts"
Config.botAvatar = "https://i.imgur.com/PizJGsh.png"
----------------------------------------------------------------
-- !!! This function is clientside AND serverside !!!
Config.Notification = function(source, message)
    if IsDuplicityVersion() then -- serverside
        MSK.Notification(source, message)
    else -- clientside
        MSK.Notification(message)
    end
end
----------------------------------------------------------------
Config.Hotkey = 38 -- default: 38 = E // Change the Key in translation.lua too
Config.npcVoice = true -- The NPC will say something to you
Config.defaultTextUI = true -- Set false if you want to use a custom textui

Config.openTextUI = function(currentBank)
    if currentBank then -- If you open the Bank
        exports['okokTextUI']:Open(Translation[Config.Locale]['open_bank_textui']:format(currentBank.label), 'darkblue', 'left')
    else -- If you open the ATM
        exports['okokTextUI']:Open(Translation[Config.Locale]['open_atm_textui'], 'darkblue', 'left')
    end
end

Config.closeTextUI = function()
    exports['okokTextUI']:Close()
end
----------------------------------------------------------------
Config.CustomBanner = false -- Set true to enable Custom Banner
Config.removeTitle = true -- If Custom Banner enabled, it will remove the Title from the NativeUI

Config.bannerBank = function(currentBank) -- Banner for Bank
    if currentBank.label:match('Fleeca Bank') then
        return Sprite.New('', '', 0, 0, 512, 128) -- Banner for Fleeca Bank
    elseif currentBank.label:match('Pacific Standard Bank') then
        return Sprite.New('', '', 0, 0, 512, 128) -- Banner for Pacific Standard Bank
    elseif currentBank.label:match('Blain County Bank') then
        return Sprite.New('', '', 0, 0, 512, 128) -- Banner for Blain County Bank
    end

    return Sprite.New('', '', 0, 0, 512, 128) -- Banner if not one of the banks above
end

Config.bannerATM = function() -- Banner for ATMs
    return Sprite.New('', '', 0, 0, 512, 128)
end
----------------------------------------------------------------
-- This is only for PIN Input // If set to false then you'll use Native TextEntry
Config.MSKNumpad = {
    enable = true, -- Numpad NUI
    showPIN = false -- If you want to show the PIN at NUI or not
}
----------------------------------------------------------------
-- Players can invest an amount of money and get some money ever X time ontop of the invested money
-- Example: If 10.000$ invested you get 1% every 3 hours, so after 3 hours you have 10.100$
Config.Investment = {
    enable = true, -- Set false if you don't want that Feature
    atATM = false, -- Set true if you also want the Investment at the Bank
    time = 3, -- in hours
    dynamic = {
        enable = true, -- Set true if you want a change to get money or lose money
        chance = 60 -- default: 60% that you get Money from Investment and 40% that you lose money
    },
    percentage = {
        -- Set both to the same number if you dont want random percentage
        min = 1, -- min: 1%
        max = 2 -- max: 100%
    }
}
----------------------------------------------------------------
-- You will need esx_billing or myBilling
Config.useBilling = 'esx_billing' -- Set to 'esx_billing' or 'myBilling'

Config.Bills = {
    enable = true, -- Set false if you dont want esx_billing
    atATM = false, -- Set true if you also want the Bills at the Bank
}
----------------------------------------------------------------
Config.Transactions = true -- Set false if you dont want transactions

Config.mainAccount = {
    enable = false, -- Set true if you want to use that Feature
    amount = 60000, -- Amount that the player gets on his Mainaccount if he created his Mainaccount
    price = 150 -- Price to create a Mainaccount
}
Config.bankAccounts = {
    enable = true, -- If set to true, the Player can create a second Bankaccount
    price = 500 -- Price for a new Second Bank Account
}
Config.PIN = {
    enable = true, -- Set false to disable the PIN Feature
    price = 50, -- Price for change the PIN
    length = 4 -- Max length of the PIN
}
Config.IBAN = {
    enable = true, -- Set false if you dont want that Players can change the IBAN themself
    delete = true, -- Set false if you dont want that Players can delete there second Bank Account
    prefix = 'SA', -- IBAN looks like this SAXXXXXX
    length = 6, -- default: 6 // max length for Custom IBAN // IBAN looks like this SAXXXXXX
    design = false, -- If false then numbers ONLY // If true then numbers and letters
    price = 500 -- default: $500
}
Config.Bankcard = {
    enable = true, -- If false then you dont need a Bankcard to open an ATM and you cant buy them in the Bank
    item = 'bankcard', -- Set the item that you want to use
    price = 100 -- default: $100 // Set the price that Players have to pay for a new Bankcard
}
Config.Animation = {
    -- Only for ATMs not for Banks
    enable = true, -- Set false if you dont want animations
    dict = 'anim@amb@prop_human_atm@interior@male@enter',
    anim = 'enter',
    time = 2 -- default: 2 seconds
}
Config.Society = {
    enable = true, -- Set false if you dont want society accounts

    addon_account = false, -- Set true if you want to use Societyaccounts from addon_account and NOT the Build in System
    addon_account_sync_money = true, -- Set true if you want to sync addon_account and msk_banking money (Only if job is not already set in database)

    atATM = false, -- Set true if you want to access the society account at the ATM

    jobs = {
        -- IBAN always looks like Prefix + IBAN // Example: SALSPD
        {label = 'LSPD', name = 'police', iban = 'LSPD', grade_name = {'boss'}},
        {label = 'LSMD', name = 'ambulance', iban = 'LSMC', grade_name = {'boss'}},
        {label = 'ACLS', name = 'mechanic', iban = 'ACLS', grade_name = {'boss'}},
    }
}
----------------------------------------------------------------
Config.ATMDistance = 1.5
Config.ATMs = {
    models = {-870868698, -1126237515, -1364697528, 506770882}
}

Config.BankDistance = 2.5
Config.MarkerDistance = 5.0
Config.PedDistance = 15.0
Config.Banks = {
    -- Set 'pedmodel' to false if you want to use a Marker instead
    -- !!! Some NPC Peds are NOT talking to you so test it with diffrent NPCs yourself !!!
    {label = 'Fleeca Bank', location = {x = 148.09, y = -1041.66, z = 29.37, h = 341.17}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 'a_f_y_business_01', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
    {label = 'Fleeca Bank', location = {x = -1211.95, y = -332.01, z = 37.78, h = 22.44}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 's_f_y_airhostess_01', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
    {label = 'Fleeca Bank', location = {x = -2961.14, y = 481.48, z = 15.7, h = 87.36}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 's_f_y_airhostess_01', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
    {label = 'Blain County Bank', location = {x = -111.24, y = 6470.02, z = 31.63, h = 133.32}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 's_f_m_shop_high', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
    {label = 'Fleeca Bank', location = {x = 312.28, y = -279.98, z = 54.16, h = 335.8}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 's_f_y_airhostess_01', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
    {label = 'Fleeca Bank', location = {x = -351.34, y = -51.24, z = 49.04, h = 336.09}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 's_f_y_airhostess_01', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
    {label = 'Pacific Standard Bank', location = {x = 248.92, y = 224.3, z = 106.29, h = 157.51}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 's_f_m_shop_high', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
    {label = 'Fleeca Bank', location = {x = 1176.34, y = 2708.21, z = 38.09, h = 179.69}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 's_f_y_airhostess_01', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
    {label = 'Fleeca Bank', location = {x = -1039.2, y = -2845.22, z = 27.71, h = 98.08}, blip = {enable = true, id = 108, color = 5, scale = 0.8}, pedmodel = 's_f_y_airhostess_01', draw3dtext = {enable = true, label = '~g~Open Bank', size = 0.8}, marker = {enable = true, type = 27, size = {a = 1.0, b = 1.0, c = 1.0}, color = {a = 255, b = 255, c = 255}}},
}

Optional Requirements

  • esx_addon_account
  • esx_billing
  • myBilling
  • okokBilling
Code is accessible No [Discord Logs accessible]
Subscription-based No
Lines (approximately) ~ 1500
Requirements ESX Legacy, NativeUI, oxmysql, msk_core
Support Yes

Latest Update

My other Scripts

Paid

Free

3 Likes

Update v1.1

  • Fixed change Accountnumber with Mainaccount if you already created a second Account.

Update this script it runs much too high 0.14-0.18ms at resmon

I know that. Please be patient.

When will this be? and what will there be a fix for the armor

Update v2.0

  • Completly reworked the Code
  • Improved performance
  • Added esx_addon_account
  • Added Discord Logs and much more [read the Description above]

Re-download msk_banking at your keymaster

1 Like

Update v2.1

  • Added a new Option for Custom Banner
  • NativeUI Menu is closing if not in distance
  • Fixed can’t change IBAN if second Account created

Re-download msk_banking at your keymaster

1 Like

Update v2.2

  • Added Option for Distances
  • Added Option for ESX Legacy
  • Fixed Bug where you only can open the Bank at Legion Square Bank

Re-download msk_banking at your keymaster

1 Like

With V2 its fixed :slight_smile:

Update v2.3

  • Fixed Jobs and Ranks for Society Accounts

Update v2.4

  • Fixed Investment payouts

Re-download msk_banking at your keymaster

1 Like

Update v2.5

  • Fixed creating Mainaccount
  • Fixed some text labels

Update v2.6

  • Disable PIN Feature in config

Re-download msk_banking at your keymaster

1 Like

Update v2.6.1

  • Fixed a small Bug with esx_addonaccount (not necessary if you don’t have problems)
  • No database.sql needed anymore. Items will be inserted automatically

Re-download msk_banking at your keymaster

1 Like

hi, i buyed this but can you make this work for esx 1.9

Hey I saw your post at discord. This is the Solution.

You lack the required entitlement to use msk_banking
Try restarting your server and make sure your server license key is correct. If you bought the resource on the wrong account, you can transfer it to another account on https://keymaster.fivem.net/

Update v3.0

  • Completly reworked the Code
  • New Database Structur (will be updated automatically. you won’t lose any money!)
  • Improved Performance
  • Fixed Discord Webhook Logs
  • Invoices
  • Numpad NUI
  • Transactionhistory
  • Transactionhistory for Paychecks (view documentation)
  • Set a reason for the transfer
  • You can set you own TextUI in Config
  • NativeUI will be re-opened after Deposit, Withdraw, …
  • Investment: Added chance to get or lose money
  • Lots of new Events and Exports (view documentation)
1 Like

Update v3.1

  • Improved serverside performance
  • Fixed an Error with menu.lua:448: bag argument #1 to ‘gsub’
  • Fixed a small Bug if addon_account and sync_money is activated
  • Added new Events to the documentation

Update v3.1.1

  • Added okokBilling

Update v3.1.2

  • Fixed an error if not using okokBilling

Update v3.1.3

  • Some Bugfixes
  • Investment Fix if dynamic is deactivated
  • Added new Scenario Animation
  • Added Bankcard Prop for ATMs

Update v3.1.5

  • Fixed critical Error

Update v3.2

  • Several Bugfixes
  • Fixed Second Account if addon_account = true
  • Changed getSharedAccounts Event (view documentation)

Update v3.2.1

  • Fixed critical Error with Second Accounts

Update v3.2.2

  • Fixed Error that you can’t use Banking if you created a new Account

Update v3.3

  • Some Bugfixes
  • Fixed some Bugs with SharedAccounts
  • Added Dots for Numbers that it looks like 1.000 and not like 1000
  • Deleted unnecessary database queries, because sharedaccounts.lua has better performance
  • Changed and added some exports (few documentation for more information)

Update v3.3.1

  • Fixed Society Accounts not getting updated if addon_account is activated

Update v3.3.3

  • Fixed Transactionhistory
  • Fixed some English Translations
  • New Event will be triggered if SharedAccounts changes - (view documentation)
  • Rewritten Investment - (Performance Improvements)
  • Investment will now be executed before server restart if time if nearly over
  • New Export and Callback for Investment - (view documentation)

Latest Version of msk_core will be needed!