> For the complete documentation index, see [llms.txt](https://izaap-studios.gitbook.io/izaap-scripts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://izaap-studios.gitbook.io/izaap-scripts/arenapvp/installation-and-configuration.md).

# Installation & Configuration

### Downloading Dependencies

{% stepper %}
{% step %}

### **Oxmysql**

{% embed url="<https://github.com/overextended/oxmysql>" %}
{% endstep %}
{% endstepper %}

***

### **Server cfg**

```shellscript
# iZaap Studios - Garages
ensure oxmysql
ensure izaap_arenapvp
```

#### SQL

Import the included SQL file into your database:

<details>

<summary>.SQL</summary>

```sql
CREATE TABLE `izaap_rooms_active` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`code` VARCHAR(10) NOT NULL COLLATE 'utf8mb4_unicode_ci',
	`state` VARCHAR(16) NOT NULL DEFAULT 'waiting' COLLATE 'utf8mb4_unicode_ci',
	`mode` VARCHAR(32) NOT NULL DEFAULT 'default' COLLATE 'utf8mb4_unicode_ci',
	`rounds` INT(11) NOT NULL DEFAULT '3',
	`weapon` VARCHAR(64) NOT NULL DEFAULT 'NONE' COLLATE 'utf8mb4_unicode_ci',
	`armor` TINYINT(1) NOT NULL DEFAULT '0',
	`mapKey` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci',
	`bet_type` VARCHAR(16) NOT NULL DEFAULT 'none' COLLATE 'utf8mb4_unicode_ci',
	`bet_amount` INT(11) NOT NULL DEFAULT '0',
	`bet_weapon` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
	`owner_src` INT(11) NOT NULL DEFAULT '0',
	`owner_identifier` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci',
	`owner_name` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci',
	`opponent_src` INT(11) NULL DEFAULT NULL,
	`opponent_identifier` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
	`opponent_name` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
	`team_a` LONGTEXT NOT NULL COLLATE 'utf8mb4_unicode_ci',
	`team_b` LONGTEXT NOT NULL COLLATE 'utf8mb4_unicode_ci',
	`team_none` LONGTEXT NOT NULL COLLATE 'utf8mb4_unicode_ci',
	`score_a` INT(11) NOT NULL DEFAULT '0',
	`score_b` INT(11) NOT NULL DEFAULT '0',
	`created_at` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
	`updated_at` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
	PRIMARY KEY (`id`) USING BTREE,
	UNIQUE INDEX `uk_code` (`code`) USING BTREE,
	INDEX `idx_state` (`state`) USING BTREE,
	INDEX `idx_owner_identifier` (`owner_identifier`) USING BTREE,
	INDEX `idx_opponent_identifier` (`opponent_identifier`) USING BTREE
)
COLLATE='utf8mb4_unicode_ci'
ENGINE=InnoDB
AUTO_INCREMENT=396
;

CREATE TABLE `izaap_arena_ranked` (
	`identifier` VARCHAR(80) NOT NULL COLLATE 'utf8mb4_uca1400_ai_ci',
	`player_name` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb4_uca1400_ai_ci',
	`score` INT(11) NOT NULL DEFAULT '0',
	`wins` INT(11) NOT NULL DEFAULT '0',
	`losses` INT(11) NOT NULL DEFAULT '0',
	`matches` INT(11) NOT NULL DEFAULT '0',
	`last_arena_key` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_uca1400_ai_ci',
	`updated_at` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
	`created_at` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
	PRIMARY KEY (`identifier`) USING BTREE
)
COLLATE='utf8mb4_uca1400_ai_ci'
ENGINE=InnoDB
;

CREATE TABLE `izaap_arena_ranked_rewards` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`identifier` VARCHAR(80) NOT NULL COLLATE 'utf8mb4_uca1400_ai_ci',
	`reward_key` VARCHAR(80) NOT NULL COLLATE 'utf8mb4_uca1400_ai_ci',
	`claimed_at` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
	PRIMARY KEY (`id`) USING BTREE,
	UNIQUE INDEX `uniq_identifier_reward` (`identifier`, `reward_key`) USING BTREE
)
COLLATE='utf8mb4_uca1400_ai_ci'
ENGINE=InnoDB
AUTO_INCREMENT=3
;

CREATE TABLE `izaap_leaderboard` (
	`identifier` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_uca1400_ai_ci',
	`name` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb4_uca1400_ai_ci',
	`wins` INT(11) NOT NULL DEFAULT '0',
	`kills` INT(11) NOT NULL DEFAULT '0',
	`score` INT(11) NOT NULL DEFAULT '0',
	`skin` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_uca1400_ai_ci',
	`updated_at` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
	PRIMARY KEY (`identifier`) USING BTREE
)
COLLATE='utf8mb4_uca1400_ai_ci'
ENGINE=InnoDB
;

CREATE TABLE `izaap_logs` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`code` VARCHAR(10) NOT NULL COLLATE 'utf8mb4_unicode_ci',
	`mode` VARCHAR(32) NOT NULL DEFAULT 'default' COLLATE 'utf8mb4_unicode_ci',
	`rounds` INT(11) NOT NULL DEFAULT '3',
	`weapon` VARCHAR(64) NOT NULL DEFAULT 'NONE' COLLATE 'utf8mb4_unicode_ci',
	`armor` TINYINT(1) NOT NULL DEFAULT '0',
	`mapKey` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci',
	`bet_type` VARCHAR(16) NOT NULL DEFAULT 'none' COLLATE 'utf8mb4_unicode_ci',
	`bet_amount` INT(11) NOT NULL DEFAULT '0',
	`bet_weapon` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
	`owner_identifier` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci',
	`owner_name` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci',
	`opponent_identifier` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
	`opponent_name` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
	`team_a` LONGTEXT NOT NULL COLLATE 'utf8mb4_unicode_ci',
	`team_b` LONGTEXT NOT NULL COLLATE 'utf8mb4_unicode_ci',
	`score_a` INT(11) NOT NULL DEFAULT '0',
	`score_b` INT(11) NOT NULL DEFAULT '0',
	`winner_identifier` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci',
	`duration_sec` INT(11) NOT NULL DEFAULT '0',
	`created_at` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
	PRIMARY KEY (`id`) USING BTREE,
	INDEX `idx_code` (`code`) USING BTREE,
	INDEX `idx_winner` (`winner_identifier`) USING BTREE,
	INDEX `idx_owner` (`owner_identifier`) USING BTREE,
	INDEX `idx_created` (`created_at`) USING BTREE
)
COLLATE='utf8mb4_unicode_ci'
ENGINE=InnoDB
AUTO_INCREMENT=213
;

CREATE TABLE `izaap_tournaments` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`tournament_uid` VARCHAR(64) NOT NULL COLLATE 'utf8mb3_general_ci',
	`creator_license` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`creator_name` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`name` VARCHAR(100) NOT NULL COLLATE 'utf8mb3_general_ci',
	`mode` VARCHAR(20) NOT NULL COLLATE 'utf8mb3_general_ci',
	`rounds` INT(11) NOT NULL DEFAULT '1',
	`weapon` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`map_key` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`max_players` INT(11) NOT NULL DEFAULT '4',
	`state` VARCHAR(20) NOT NULL DEFAULT 'waiting' COLLATE 'utf8mb3_general_ci',
	`winner_name` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`winner_license` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`return_x` DOUBLE NULL DEFAULT NULL,
	`return_y` DOUBLE NULL DEFAULT NULL,
	`return_z` DOUBLE NULL DEFAULT NULL,
	`return_w` DOUBLE NULL DEFAULT NULL,
	`created_at` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
	`started_at` TIMESTAMP NULL DEFAULT NULL,
	`finished_at` TIMESTAMP NULL DEFAULT NULL,
	PRIMARY KEY (`id`) USING BTREE,
	UNIQUE INDEX `uniq_tournament_uid` (`tournament_uid`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=190
;

CREATE TABLE `izaap_tournament_matches` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`tournament_uid` VARCHAR(64) NOT NULL COLLATE 'utf8mb3_general_ci',
	`match_uid` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`round_index` INT(11) NOT NULL,
	`slot_index` INT(11) NOT NULL,
	`round_label` VARCHAR(40) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`side_a_name` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`side_a_license` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`side_b_name` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`side_b_license` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`winner_name` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`winner_license` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`state` VARCHAR(20) NOT NULL DEFAULT 'pending' COLLATE 'utf8mb3_general_ci',
	`room_id` INT(11) NULL DEFAULT NULL,
	`created_at` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
	`updated_at` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
	PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=22
;


CREATE TABLE `izaap_tournament_players` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`tournament_uid` VARCHAR(64) NOT NULL COLLATE 'utf8mb3_general_ci',
	`player_license` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
	`player_name` VARCHAR(80) NOT NULL COLLATE 'utf8mb3_general_ci',
	`joined_at` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
	`status` VARCHAR(20) NOT NULL DEFAULT 'joined' COLLATE 'utf8mb3_general_ci',
	PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=125
;



```

</details>

***

#### Permissions

Permissions for the tournament command are configured in the config.lua file itself; you can specify identifiers there.

```lua
    AllowedLicenses = {
        --'license:c70da7d1b951554d2f69aae6632823642b0fa939',
    },
```

***
