[PAID][QBCORE] Advanced Tax System

A script by ARSSANTO

No reviews yet.
[PAID][QBCORE] Advanced Tax System main image

Full Description

Advance Tax System for qbcore framework

Why this tax system script?

  • I was looking for a better tax system script but I couldn’t find one that fills up my requirements That is why I built up my own

What does this offer?

  • tax system based on how much money they have in their bank account and there are customizable brackets and % to cut

vehicle counted tax also config assigned car tax value

house count tax || Player will be taxed with a count of their owned house || No matter whether the player is the offline or online tax will be deducted for every single player

Automatic tax deduction time even admins do command to trigger tax cuts

commands to see which bracket are they in

commands to trigger tax only admins/god perms can do that

Update 1.1

  • Fixes Console error for wrong variable placement

  • Added A little Stability while tax doing its work for the populated server

  • Discord log default is true by default Make sure to put the discord webhook in the config

Update 1.2

  • Added Support for Quasar qs-smartphone

Update 1.2.1

  • Added Support for GKS PHONE

Update 1.2.2

  • Added Support for quasar qs-housing

Update 1.2.3

  • Attempt to fix qs-smartphone mail trigger

  • Added Support for lb-phone

Update 1.2.4

  • Changed Housing Config to select housing script ex: Config.OtherPropertyTax.House.HouseScript = ‘qb’,

  • Added support for loaf-housing, ps-housing,

  • qs-smartphone offline Player Mail Error Fixed image

  • Added high-phone , jpr resources jpr-phone support

  • Refined lb-phone mail event

  • Added Exports TaxPay() ex: exports['ars-tax-system]:TaxPay() to trigger the tax function from any other scripts

  • Added Society / Management / Boss Menu account support to Give Taxed money in to the account

  • Little Optimization in sql query

  • Refined Debug Mode

  • Rework On logs its more detailed now

  • Code OverHaul Removed Un wanted Variables params etc

  • Added ox_lib as Dependency As i am running ox_lib cron module ox_lib make sure download ox_lib.zip not source code

  • Added more locale language down below

  • Added Functional Component in Config to determine cron job as you want such as

Update 1.2.5

  • Added bcs housing support

  • Added Rewrite most of the function to match up to date community stuff

  • Added added ox lib notify if any phone is not determined

  • Added yflip/ yseries phone support

  • Fixed Jpr phone client error

  • all phone event are server-side now

  • changed admin perms with ox lib ace perms or just ace perms so group.admin only can run command

  • added notify position to config

Society Config you can put your society resource such as qb-management such as renewed-banking etc

    SocietyTrigger = function(account, amount)
        exports['qb-management']:AddMoney(account, amount)
    end,

Cron to handle auto tax you can use your specified cron resouce if u have if dont then you can stick with provided one the time is now seted as 12 am you can config it by provided link down below at config show case you can do date time week what ever you want to but you must need to know what you are doing

    CronTaskMethod = function()
        lib.cron.new('23 0 * * *',function()
            exports['ars-tax-system']:TaxPay()
            print('................CRON TASK INIT..................')
        end, {debug = true})
    end,

CONFIG SHOW CASE

Config = {}
Config.Locale = 'en' -->> select locale language like en|it|fr|ar etc you can check Config.Lang down below for language support if i missed your language let me know you you can add bby your self
Config.CoreExport = exports['qb-core']:GetCoreObject() -- to Get your Core Object 
Config.TriggerOnPlayerLoad = 'QBCore:Client:OnPlayerLoaded' -->> Returns On Player Load Event for your server it might be defrent on your side
Config.Phone = 'qb' -->> Returns For Phone mail || Muiltiple Phone Support || qb, qs, gks, lb, high, jpr || qb is default qb-phone ,qs is qs-smartphone, gks is gksphone, lb is lb-phone, high is high_phone, jpr is jp resource phone
Config.AdminPerms = 'god' -->> Returns For Command Permission   || mostly god or admin perms
Config.NotifyTaxOnload = true -->> Returns For Tax Bracket notify through email when player load || It will give player a notify through a mail that which bracket that player belongs 
Config.Debug = false -->> Retuns for debug in server console    ||  Printing in console for dev perpose and it help me to calculate all amounts 

-->> Money Grab Target supported Method is Config.MoneyGrab = 'cash' // it will just grab value from cash amount \\ Config.MoneyGrab = 'bank' it will just grab value from bank amount // Config.MoneyGrab = 'both' will be do cash + bank  == value
Config.MoneyGrab = 'bank' -->> can be set cash or bank or both

-->> Set your Commands
Config.Commands = {
    AdminCommand = 'paytax',
    UserCommand = 'mytax'
}

-->> Finally The Auto Tax system has a functional component where you can write your own fucntion like cron as default or any other time calculating resource such as https://github.com/LucaNL/cron-fivem
-->> Default i am using ox_lib cron task 
-->> for better understanding  https://overextended.dev/ox_lib/Modules/Cron/Server
-->> Time Adjusting https://en.wikipedia.org/wiki/Cron#:~:text=%23%20%E2%94%8C%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%E2%94%80%20minute%20(0%20%2D%2059,command%20to%20execute%3E

Config.AutoTax = {
    Switch = false, -->> Returns as Switch for Turn On or OFF for Auto Tax cutting You can say its a Switch
    CronTaskMethod = function()
        lib.cron.new('23 0 * * *',function() ---Setup the timing replace the * with this order  [minute-hour-day-month-week]
            exports['ars-tax-system']:TaxPay()
            print('................CRON TASK INIT...................')
        end, {debug = true})
    end,
}

-->> SocietySend Is for Adding money to bossmenu or society funds u can add your own exports with provided function variable default is qb-management exports but if u use defrent the you know what to change here
-->> SocietyAcounts Is Multi society supported that means you can add more then one society but when you gonna add more then one soceity then it will devide the 
Config.SocietySend = {
    Switch = false,
    SocietyAcounts = {
        'police',
        'ambulance',
    },
    SocietyTrigger = function(account, amount)
        -- print('SocietySend: ', account, amount)
        exports['qb-management']:AddMoney(account, amount)
    end,
}

Config.TaxConfig = {
    -->> ⚠️ Alert: Do Not Add or Edit the Variables here You can edit Values and % 
    -->> Mail MailTitle Returns For Bracket Name which gonna show in Mail  Same thing for MailPercent this tow gonna show in Mail
    -->> AccountTarget Returns  For How much money will hit that particuller bracket
    -->> Percent Returns  For How Much Percent will deduct on particuller bracket its counting like Round(bankamount * taxbracket)
    Homeless = { -- Key || Alert: ⚠️ Dont Edit the key
        MailTitle = 'Homeless',
        MailPercent = '0%',
        AccountTarget = 49000,
        Percent = 0.00, -- 0%
    },
    Poor = {
        MailTitle = 'Poor',
        MailPercent = '1%',
        AccountTarget = 50000,
        Percent = 0.01 -- 1%
    },
    NotBad = {
        MailTitle = 'Lower Middle Class',
        MailPercent = '2%',
        AccountTarget = 100000,
        Percent = 0.02 -- 2%
    },
    Medium   = {
        MailTitle = 'Middle Class',
        MailPercent = '3%',
        AccountTarget = 500000, -- 3%
        Percent = 0.03 },
    Rich     = {
        MailTitle = 'Upper Middle Class',
        MailPercent = '4%',
        AccountTarget = 1000000,
        Percent = 0.04 -- 4%
    },
    TooRich  = {
        MailTitle = 'Rich',
        MailPercent = '5%',
        AccountTarget = 3000000,
        Percent = 0.05 -- 5%
    },
}

Config.OtherPropertyTax = {
    Vehicle = {
        Switch = false,  -->> Returns For Switch of Vehicle count Taxes
        Price = {
            Globalcars = 50, -->>Returns For All over price globally those are not listed under
            sultan2 = 20, -->> Returns For Specified car tax amount such as Cutedtax =  Cutedtax + oracle2 
            thrax = 70, --Mention your vehicle model in lowercase such as sultan then add value after = 0,
        }
    },
    House = {
        Switch = false,  -->> Returns For Switch of House count Taxes
        TaxPrice = 80, -->> Returns For Tax Price Per House Count
        HouseCount = 1, -->> Returns For Minimum House count to trigger house tax lets say you wanna do tax when people has more then 1 house then it wil trigger now its set like [FetchHouse >= HouseCount]
        HouseScript = 'qb', -->> Returns For House Script || Muiltiple Housing Script Support || qb,qs,ps,loaf || qb is default [qb-houses](https://github.com/qbcore-framework/qb-houses), qs is [qs-houses](you know what qs-housing is!!), ps is [ps-housing](https://github.com/Project-Sloth/ps-housing) , loaf is loaf housing
    }
}

Config.DiscordLog = {
    Switch = false,  -->> Returns For Switch of Discord Logs
    webhook = 'your web hook here', --put your discord
    name = 'Tax Logs',
    image = 'https://cdn.discordapp.com/attachments/894622077217280071/997914971587481613/FiveM-Logo-700x394.png'
}

Config.Lang = {
    -->> Locale System You can make your OWN Make Sure Change the value in Config.Locale
    ['en'] = {
        ['money'] = '$',
        ['counting_notify_client'] = 'We are counting your tax fees please be patient',
        ['Gender_Male'] = 'Sir',
        ['Gender_Female'] = 'Mrs',
        ['MailSender'] = 'Govt. Info',
        ['MailSender_MailAdress'] = 'info@arstax.com',
        ['TaxedMail_subject'] = 'Automatic Payment',
        ['TaxedMail_description_a'] = 'You have been taxed by Goverment.',
        ['TaxedMail_description_b'] = 'There is',
        ['TaxedMail_description_c'] = 'Taken  from your bank account.',
        ['TaxedMail_description_d'] = 'Sincerely,<br/> Govt.', -- Remove <br/> if you are using lb-phone
        ['TaxInfo_subject'] = 'Tax Information',
        ['TaxInfo_description_a'] = 'You are currently staying at ',
        ['TaxInfo_description_b'] = 'Zone.',
        ['TaxInfo_description_c'] = 'Your Tax Percentage is ',
        ['TaxInfo_description_d'] = 'This email message was auto-generated. Please do not respond. If you need additional help, please visit Govt. Office.',
        ['Offline_Tax_subject'] = 'Govt. Tax Paid',
        ['Offline_Tax_description_a'] = 'Govt. Tax Paid',
        ['Dearmsg'] = 'Dear ',
        ['Chat_tax_user_info'] = 'Check your Tax Status',
        ['Chat_tax_admin_info'] = 'Command to Trigger Tax',
    },
    ['it'] = {
        ['money'] = '€',
        ['counting_notify_client'] = 'Stiamo calcolando le tue tasse, per favore sii paziente',
        ['Gender_Male'] = 'Signor',
        ['Gender_Female'] = 'Signora',
        ['MailSender'] = 'Info Governo',
        ['MailSender_MailAdress'] = 'info@arstax.com',
        ['TaxedMail_subject'] = 'Pagamento Automatico',
        ['TaxedMail_description_a'] = 'Sei stato tassato dal Governo.',
        ['TaxedMail_description_b'] = 'È stato addebitato un importo',
        ['TaxedMail_description_c'] = 'dal tuo conto bancario.',
        ['TaxedMail_description_d'] = 'Cordiali saluti,<br/> Governo.', -- Rimuovi <br/> se stai usando lb-phone
        ['TaxInfo_subject'] = 'Informazioni Fiscali',
        ['TaxInfo_description_a'] = 'Attualmente risiedi nella zona',
        ['TaxInfo_description_b'] = '.',
        ['TaxInfo_description_c'] = 'La tua percentuale di tasse è',
        ['TaxInfo_description_d'] = 'Questo messaggio email è stato generato automaticamente. Si prega di non rispondere. Se hai bisogno di ulteriori aiuti, visita l\'Ufficio del Governo.',
        ['Offline_Tax_subject'] = 'Tasse Governo Pagate',
        ['Offline_Tax_description_a'] = 'Tasse Governo Pagate',
        ['Dearmsg'] = 'Caro',
        ['Chat_tax_user_info'] = 'Verifica lo stato delle tue tasse',
        ['Chat_tax_admin_info'] = 'Comando per Attivare le Tasse',
    },
    ['ar'] = {
        ['money'] = 'دولار',
        ['counting_notify_client'] = 'نحن نقوم بحساب رسوم الضرائب الخاصة بك، يرجى التحلي بالصبر',
        ['Gender_Male'] = 'سيدي',
        ['Gender_Female'] = 'سيدتي',
        ['MailSender'] = 'معلومات الحكومة',
        ['MailSender_MailAdress'] = 'info@arstax.com',
        ['TaxedMail_subject'] = 'الدفع التلقائي',
        ['TaxedMail_description_a'] = 'تم فرض ضريبة عليك من قبل الحكومة.',
        ['TaxedMail_description_b'] = 'هناك',
        ['TaxedMail_description_c'] = 'تم خصمه من حسابك البنكي.',
        ['TaxedMail_description_d'] = 'بكل احترام,<br/> الحكومة.', -- احذف <br/> إذا كنت تستخدم lb-phone
        ['TaxInfo_subject'] = 'معلومات الضرائب',
        ['TaxInfo_description_a'] = 'أنت تقيم حاليًا في',
        ['TaxInfo_description_b'] = 'المنطقة.',
        ['TaxInfo_description_c'] = 'نسبة ضريبتك هي',
        ['TaxInfo_description_d'] = 'تم إنشاء هذه الرسالة الإلكترونية تلقائيًا. يرجى عدم الرد. إذا كنت بحاجة إلى مساعدة إضافية، يرجى زيارة مكتب الحكومة.',
        ['Offline_Tax_subject'] = 'تم دفع الضرائب للحكومة',
        ['Offline_Tax_description_a'] = 'تم دفع الضرائب للحكومة',
        ['Dearmsg'] = 'عزيزي',
        ['Chat_tax_user_info'] = 'تحقق من حالة الضرائب الخاصة بك',
        ['Chat_tax_admin_info'] = 'أمر لتنشيط الضرائب',
    },
    ['fr'] = {
        ['money'] = '€',
        ['counting_notify_client'] = 'Nous comptons vos frais de taxe, veuillez patienter s\'il vous plaît',
        ['Gender_Male'] = 'Monsieur',
        ['Gender_Female'] = 'Madame',
        ['MailSender'] = 'Info Gouvernement',
        ['MailSender_MailAdress'] = 'info@arstax.com',
        ['TaxedMail_subject'] = 'Paiement Automatique',
        ['TaxedMail_description_a'] = 'Vous avez été taxé par le gouvernement.',
        ['TaxedMail_description_b'] = 'Il y a',
        ['TaxedMail_description_c'] = 'prélevé de votre compte bancaire.',
        ['TaxedMail_description_d'] = 'Cordialement,<br/> Gouvernement.', -- Retirez <br/> si vous utilisez lb-phone
        ['TaxInfo_subject'] = 'Informations Fiscales',
        ['TaxInfo_description_a'] = 'Vous séjournez actuellement dans la zone',
        ['TaxInfo_description_b'] = '.',
        ['TaxInfo_description_c'] = 'Votre pourcentage de taxe est de',
        ['TaxInfo_description_d'] = 'Ce message électronique a été généré automatiquement. Veuillez ne pas répondre. Si vous avez besoin d\'aide supplémentaire, veuillez visiter le bureau du gouvernement.',
        ['Offline_Tax_subject'] = 'Paiement de Taxe au Gouvernement',
        ['Offline_Tax_description_a'] = 'Paiement de Taxe au Gouvernement',
        ['Dearmsg'] = 'Cher',
        ['Chat_tax_user_info'] = 'Vérifiez votre statut fiscal',
        ['Chat_tax_admin_info'] = 'Commande pour Déclencher la Taxe',
    },
    ['hi'] = {
        ['money'] = '₹',
        ['counting_notify_client'] = 'हम आपके कर शुल्क फीस की गणना कर रहे हैं, कृपया धैर्य रखें',
        ['Gender_Male'] = 'श्री',
        ['Gender_Female'] = 'श्रीमती',
        ['MailSender'] = 'सरकारी जानकारी',
        ['MailSender_MailAdress'] = 'info@arstax.com',
        ['TaxedMail_subject'] = 'स्वच्छ भुगतान',
        ['TaxedMail_description_a'] = 'आपको सरकार द्वारा कर लिया गया है।',
        ['TaxedMail_description_b'] = 'वहाँ है',
        ['TaxedMail_description_c'] = 'आपके बैंक खाते से लिया गया है।',
        ['TaxedMail_description_d'] = 'ईमानदारी से,<br/> सरकार।', -- <br/> को हटाएं अगर आप lb-phone का उपयोग नहीं कर रहे हैं
        ['TaxInfo_subject'] = 'कर जानकारी',
        ['TaxInfo_description_a'] = 'आप वर्तमान में इस ज़ोन में रह रहे हैं',
        ['TaxInfo_description_b'] = '।',
        ['TaxInfo_description_c'] = 'आपका कर दर है',
        ['TaxInfo_description_d'] = 'यह ईमेल संदेश स्वच्छ रूप से जनरेट किया गया था। कृपया प्रतिक्रिया न दें। यदि आपको अतिरिक्त सहायता की आवश्यकता है, कृपया सरकारी कार्यालय पर जाएं।',
        ['Offline_Tax_subject'] = 'सरकारी कर भुगतान',
        ['Offline_Tax_description_a'] = 'सरकारी कर भुगतान',
        ['Dearmsg'] = 'प्रिय',
        ['Chat_tax_user_info'] = 'अपनी कर स्थिति की जाँच करें',
        ['Chat_tax_admin_info'] = 'कर को क्रियान्वित करने के लिए आदेश',
    },
    ['bn'] = {
        ['money'] = '৳',
        ['counting_notify_client'] = 'আমরা আপনার কর ফি গণনা করছি, দয়া করে ধৈর্য ধরুন',
        ['Gender_Male'] = 'জনাব',
        ['Gender_Female'] = 'মেমস',
        ['MailSender'] = 'সরকারি তথ্য',
        ['MailSender_MailAdress'] = 'info@arstax.com',
        ['TaxedMail_subject'] = 'স্বয়ংক্রিয় পেমেন্ট',
        ['TaxedMail_description_a'] = 'আপনাকে সরকার দ্বারা কর প্রদান করা হয়েছে।',
        ['TaxedMail_description_b'] = 'এখানে আছে',
        ['TaxedMail_description_c'] = 'আপনার ব্যাঙ্ক অ্যাকাউন্ট থেকে নেওয়া হয়েছে।',
        ['TaxedMail_description_d'] = 'সত্যিই,<br/> সরকার।', -- <br/> ব্যবহার করতে lb-phone না হলে অপসারণ করুন
        ['TaxInfo_subject'] = 'কর তথ্য',
        ['TaxInfo_description_a'] = 'আপনি বর্তমানে',
        ['TaxInfo_description_b'] = 'জোনে বসবাস করছেন।',
        ['TaxInfo_description_c'] = 'আপনার করের শতাংশ',
        ['TaxInfo_description_d'] = 'এই ইমেল বার্তা স্বয়ংক্রিয়ভাবে তৈরি হয়েছে। দয়া করে উত্তর দেবেন না। যদি আপনার যাত্রাপথে অতিরিক্ত সাহায্য প্রয়োজন হয়, তবে সরকারের দফতর দর্শন করুন।',
        ['Offline_Tax_subject'] = 'সরকারি কর প্রদান হয়েছে',
        ['Offline_Tax_description_a'] = 'সরকারি কর প্রদান হয়েছে',
        ['Dearmsg'] = 'প্রিয়',
        ['Chat_tax_user_info'] = 'আপনার কর স্থিতি চেক করুন',
        ['Chat_tax_admin_info'] = 'কর সক্রিয় করতে নির্দেশ',
    },
    ['cn'] = {
        ['money'] = '¥',
        ['counting_notify_client'] = '我们正在计算您的税费,请耐心等待',
        ['Gender_Male'] = '先生',
        ['Gender_Female'] = '女士',
        ['MailSender'] = '政府信息',
        ['MailSender_MailAdress'] = 'info@arstax.com',
        ['TaxedMail_subject'] = '自动支付',
        ['TaxedMail_description_a'] = '您已被政府征税。',
        ['TaxedMail_description_b'] = '已从您的银行账户中扣除',
        ['TaxedMail_description_c'] = '。',
        ['TaxedMail_description_d'] = '此电子邮件消息是自动生成的。请勿回复。如果需要额外帮助,请访问政府办公室。',
        ['TaxInfo_subject'] = '税务信息',
        ['TaxInfo_description_a'] = '您目前居住在',
        ['TaxInfo_description_b'] = '区。',
        ['TaxInfo_description_c'] = '您的税率是',
        ['TaxInfo_description_d'] = '此电子邮件消息是自动生成的。请勿回复。如果需要额外帮助,请访问政府办公室。',
        ['Offline_Tax_subject'] = '政府税款已支付',
        ['Offline_Tax_description_a'] = '政府税款已支付',
        ['Dearmsg'] = '尊敬的',
        ['Chat_tax_user_info'] = '查看您的税务状态',
        ['Chat_tax_admin_info'] = '触发税款的命令',
    },
}
  • Note: If you need any other phone support let me know by replying to this topic

:shopping: Buy from Tebex

Some Picture preview




|-------------------------------------|----------------------------|
| Code is accessible | no |
| Subscription-based | no |
| Lines (approximately) | 494 (without config) |
| Requirements | qb-core , oxmysql |
| Support | Yes