# 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. Technical dispatches herunterladen und installieren

Nach dem Kauf von technical dispatches über den Tebex Store kannst du es unter folgendem Link herunterladen und über ein FTP Programm auf deinem Server hinzufügen:

{% embed url="<https://portal.cfx.re>" %}

Füge technical dispatches anschließend **am Ende** der Start Config (beispielsweise über txAdmin) hinzu.

```lua
start [TECHNICAL_DISPATCHES]
```

## 2. SQL Import

Damit technical dispatches ordnungsgemäß funktioniert, muss die beiliegende SQL Datei in deine Datenbank importiert werden.

## 3. Admin Zugriff (ACE Permission)

Um vollständigen Zugriff auf die Administration zu haben, sind so genannte ACE Permissions notwendig. Diese kannst du einfach in deine Start Config hinzufügen. Die License bzw. Steam ID findest du beispielsweise in der users Datenbank.

```
#ACE Permission anhand der License ID
add_ace identifier.license:xxxx "td.admin" allow

#ACE Permission anhand der Steam ID
add_ace identifier.steam:xxxx "td.admin" allow

#ACE Permission für Benutzer Gruppen
add_ace group.superadmin "td.admin" allow
```

{% hint style="info" %}
Spieler mit ACE Permission haben **vollständigen** Zugriff auf die Administration. Gehe damit mit Bedacht um!
{% endhint %}

## 4. Items

{% hint style="danger" %}
Die Items müssen nur eingetragen werden, wenn du das Equipment Menü nicht nutzt.
{% endhint %}

### 4.1. ESX

Führe eines der folgenden SQL Befehle (je nach items Datenbank) aus.

#### 4.1.1. ESX Limit

```
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('kettensaege', 'Kettensäge', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('gaswarngeraet', 'Gaswarngeraet', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('abdichtmaterial', 'Abdichtmaterial', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('werkzeugkoffer', 'Werkzeugkoffer', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('transportbox', 'Transportbox', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('glasmaster', 'Glasmaster', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('halligantool', 'Halligan Tool', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('spreizer', 'Spreizer', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('besen', 'Besen', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('oelbindemittel', 'Oelbindemittel', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('elektro_werkzeug', 'Elektro Werkzeug', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `limit`, `rare`, `can_remove`) VALUES ('bombe_werkzeug', 'Werkzeug Bombenfund', 10, 0, 1);
```

#### 4.1.2. ESX Weight

```
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('kettensaege', 'Kettensäge', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('gaswarngeraet', 'Gaswarngeraet', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('abdichtmaterial', 'Abdichtmaterial', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('werkzeugkoffer', 'Werkzeugkoffer', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('transportbox', 'Transportbox', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('glasmaster', 'Glasmaster', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('halligantool', 'Halligan Tool', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('spreizer', 'Spreizer', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('besen', 'Besen', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('oelbindemittel', 'Oelbindemittel', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('elektro_werkzeug', 'Elektro Werkzeug', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('bombe_werkzeug', 'Werkzeug Bombenfund', 10, 0, 1);
```

### 4.2. QBCore

Script: qb-core\
Dateiname: shared/items.lua

<pre><code>['kettensaege'] 			 	 = {['name'] = 'kettensaege', 			  			['label'] = 'Kettensäge', 				['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'kettensaege.png', 				['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Kettensäge zum Zersägen umgefallener Bäume'},
['gaswarngeraet'] 			 	 = {['name'] = 'gaswarngeraet', 			  		['label'] = 'Gaswarngerät', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'gaswarngeraet.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Gaswarngerät zum analysieren der Umwelt'},
['transportbox'] 			 	 = {['name'] = 'transportbox', 			  			['label'] = 'Transportbox', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'transportbox.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Transportbox zum Transportieren von Kleintieren'},
['werkzeugkoffer'] 			 	 = {['name'] = 'werkzeugkoffer', 			  		['label'] = 'Werkzeugkoffer', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'werkzeugkoffer.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Werkzeugkoffer zum Untersuchen von Leckagen'},
['abdichtmaterial'] 		 	 = {['name'] = 'abdichtmaterial', 			  		['label'] = 'Abdichtmaterial', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'abdichtmaterial.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Abdichtmaterial zum Abdichten von Leckagen'},
['glasmaster'] 		 	 = {['name'] = 'glasmaster', 			  		['label'] = 'Glasmaser', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'glasmaster.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Glasmaster zum Entfernen von Fensterscheiben'},
['spreizer'] 		 	 = {['name'] = 'spreizer', 			  		['label'] = 'Spreizer', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'spreizer.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Spreizer zum Öffnen von Fahrzeugtüren'},
<strong>['halligantool'] 		 	 = {['name'] = 'halligantool', 			  		['label'] = 'Halligan Tool', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'halligantool.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Halligan Tool zum Aufbrechen verschlossener Haustüren'},
</strong>['besen'] 		 	 = {['name'] = 'besen', 			  		['label'] = 'Besen', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'besen.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Besen zum Fegen der Straße'},
['oelbindemittel'] 		 	 = {['name'] = 'oelbindemittel', 			  		['label'] = 'Oelbindemittel', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'oelbindemittel.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Oelbindemittel'},
['elektro_werkzeug'] 		 	 = {['name'] = 'elektro_werkzeug', 			  		['label'] = 'Elektro Werkzeug', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'elektro_werkzeug.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Werkzeug für Stromkästen'},
['bombe_werkzeug'] 		 	 = {['name'] = 'bombe_werkzeug', 			  		['label'] = 'Werkzeug Bombenfund', 			['weight'] = 100, 	    ['type'] = 'item', 		['image'] = 'bombe_werkzeug.png', 			['unique'] = false, 	['useable'] = true, 	['shouldClose'] = true,    ['combinable'] = nil,   ['description'] = 'Werkzeug zum Bombenfund'},
</code></pre>

## 5. Script Integrationen

In technical Dispatches besteht die Möglichkeit, einige Features mit Scripts von Drittanwendern zu verbinden. Folgende Scripts sind bereits integriert.

| Script Hersteller | Script Name    | Funktion                                                                                     |
| ----------------- | -------------- | -------------------------------------------------------------------------------------------- |
| jaksam            | doors\_creator | Öffnen verschlossener Haustüren mit Halligan Tool und Ziehfix                                |
| overextended      | ox\_doorlock   | Öffnen verschlossener Haustüren mit Halligan Tool und Ziehfix                                |
| jaksam            | jobs\_creator  | <p>Batterie bei Reparatur automatisch anklemmen<br><br>nur QB: Jobs aus Datenbank laden</p>  |
| txAdmin           | txAdmin        | Batterie bei Reparatur automatisch anklemmen                                                 |
| London Studios    | SmartFires     | Automatische Feuergenerierung bei Gas Einsätzen und falscher Batterie Polung                 |
| Rytrak            | SCBA           | Überprüfung, ob Atemschutz angelegt ist, wenn die Gaskonzentration gesundheitsgefährdend ist |
