# Installation

{% hint style="warning" %}
Ich empfehle zur Installation von Scripts **WinSCP**

**FileZilla** überträgt in den meisten Fällen einige verschlüsselte Dateien nicht. Dadurch kann es passieren, dass die Scripts nicht funktionieren!
{% endhint %}

## 1. Krankenversicherung herunterladen

Lade das Krankenversicherungsscript über unser License Panel herunter.

{% embed url="<https://license.wavecore.dev>" %}

Füge das Krankenversicherungsscript (wavecore\_krankenversicherung) anschließend in deine Start Config hinzu.&#x20;

Das Krankenversicherungsscript muss **nach** der Framework (z.B. es\_extended) und MySQL (z.B. mysql-async oder oxmysql) Ressource starten.

```
start wavecore_krankenversicherung
```

## 2. ESX Gehaltsabrechnung (wenn Gesetzliche Versicherung vorhanden)

Das den Usern 5% von dem Gehalt abgezogen werden, wenn die eine Gesetzliche Versicherung haben, muss unter es\_extended eine Änderung vorgenommen werden. Befolge diese Schritte

1. Öffne es\_extended → server → paycheck.lua
2. Ersetze alles mit dem Code unten

```lua
local StaatsfraksGehaltOverride = {
  ['fire'] = true,
  ['bergwacht'] = true,
  ['bka'] = true,
  ['justiz'] = true,
  ['krankenhaus'] = true,
  ['luftrettung'] = true,
  ['police'] = true,
  ['ambulance'] = true,
  ['stadtwerke'] = true,
  ['sek'] = true,
  ['stadtverwaltung'] = true,
  ['zoll'] = true
}

function StartPayCheck()
  CreateThread(function()
    while true do
      Wait(Config.PaycheckInterval)
      for player, xPlayer in pairs(ESX.Players) do
        local jobLabel = xPlayer.job.label
        local job = xPlayer.job.grade_name
        local salary = xPlayer.job.grade_salary

        if salary > 0 then
          if job == 'unemployed' then -- unemployed
            -- xPlayer.addAccountMoney('bank', salary, "Welfare Check")
            TriggerEvent('wavecore_krankenversicherung:triggerSalaryDeduction', xPlayer, salary)
            TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_help', salary),
              'CHAR_BANK_MAZE', 9)
            if Config.LogPaycheck then
              ESX.DiscordLogFields("Paycheck", "Paycheck - Unemployment Benefits", "green", {
                { name = "Player", value = xPlayer.name,   inline = true },
                { name = "ID",     value = xPlayer.source, inline = true },
                { name = "Amount", value = salary,         inline = true }
              })
            end
          elseif Config.EnableSocietyPayouts then -- possibly a society
            TriggerEvent('esx_society:getSociety', xPlayer.job.name, function(society)
              if society ~= nil then              -- verified society
                TriggerEvent('esx_addonaccount:getSharedAccount', society.account, function(account)
                  if account.money >= salary then -- does the society money to pay its employees?
                    -- xPlayer.addAccountMoney('bank', salary, "Paycheck")
                    TriggerEvent('wavecore_krankenversicherung:triggerSalaryDeduction', xPlayer, salary)
                    account.removeMoney(salary)
                    if Config.LogPaycheck then
                      ESX.DiscordLogFields("Paycheck", "Paycheck - " .. jobLabel, "green", {
                        { name = "Player", value = xPlayer.name,   inline = true },
                        { name = "ID",     value = xPlayer.source, inline = true },
                        { name = "Amount", value = salary,         inline = true }
                      })
                    end

                    TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'),
                      TranslateCap('received_salary', salary), 'CHAR_BANK_MAZE', 9)

                  elseif StaatsfraksGehaltOverride[xPlayer.job.name] then
                    -- xPlayer.addAccountMoney('bank', salary, "Paycheck")
                    TriggerEvent('wavecore_krankenversicherung:triggerSalaryDeduction', xPlayer, salary)
                    TriggerClientEvent('notify', xPlayer.source, 'error', 'System', ('Das Konto deiner Firma ist nicht ausreichend gedeckt! Dein Gehalt, in Höhe von %s€, wurde daher durch den Staat finanziert!'):format(salary), 15000)
                  else
                    TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), '', TranslateCap('company_nomoney'), 'CHAR_BANK_MAZE', 1)
                  end
                end)
              else -- not a society
                -- xPlayer.addAccountMoney('bank', salary, "Paycheck")
                TriggerEvent('wavecore_krankenversicherung:triggerSalaryDeduction', xPlayer, salary)
                if Config.LogPaycheck then
                  ESX.DiscordLogFields("Paycheck", "Paycheck - " .. jobLabel, "green", {
                    { name = "Player", value = xPlayer.name,   inline = true },
                    { name = "ID",     value = xPlayer.source, inline = true },
                    { name = "Amount", value = salary,         inline = true }
                  })
                end
                TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary),
                  'CHAR_BANK_MAZE', 9)
              end
            end)
          else -- generic job
            -- xPlayer.addAccountMoney('bank', salary, "Paycheck")
            TriggerEvent('wavecore_krankenversicherung:triggerSalaryDeduction', xPlayer, salary)
            if Config.LogPaycheck then
              ESX.DiscordLogFields("Paycheck", "Paycheck - Generic", "green", {
                { name = "Player", value = xPlayer.name,   inline = true },
                { name = "ID",     value = xPlayer.source, inline = true },
                { name = "Amount", value = salary,         inline = true }
              })
            end
            TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary),
              'CHAR_BANK_MAZE', 9)
          end
        end
      end
    end
  end)
end

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wavecore.dev/wavecore/krankenversicherung/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
