---
description: Some of the game systems and mechanics
---

# System &  Mechanics

## Avoid Draw System​&#x20;

To avoid constant draws you can enable the avoid-draw system.

If game reaches max time will end in a Draw, however, with avoid-draw the game will check the team with most kills and this team will win.

If both teams has same amount of kills the game will draw - A overtime system was tested but not implemented.

## Teams​&#x20;

There are two teams, so the amount of players per team is the division of max players per game by 2, make sure to set the max of players multiples of 2.

If the team size is smaller than game player amount divided by 2 the player will not be able to join.

The default amount of max players per team is 6, you can change that at options.yml.

## Portals​&#x20;

This is a game mechanic to be used with Elytra, it will give you a velocity boost.

Some information about the portals:

* Each portal can have different particle, velocity and more.
* Portals are saved in arena folder.
  * They are not saved in arena file due dynamic access, arena file should not be constantly accessed.
  * Each portal will have a different name in arena file so you can indentify them.

## Mounts

​You can enable mounts if your map is too big and you don't have jump or speed enabled, mounts will work with kits or classes.\
\
Some information about the mount system:\


* You will receive a item (you can edit this item) when game starts, right click on it to spawn your horse.
* Horses will not receive damage, however he will despawn if the passenger receives any damage.
* Horse will despawn when you press shift.
* You can modify the horse varient, speed and jump.
* Has a cooldown to use, you can modify it.
  * Cooldown will trigger after you dismount the horse.

\
This feature is disabled by default so you will not receive the mount item. You can enable it on the options.yml file.



## Guns​

Quality Armory​You will need ItemBridge to work with [Quality Armory](https://www.spigotmc.org/resources/quality-armory.47561/).\


1. Set ItemBridge to true in options.yml.
2. Set the weapon/ammo name the same as provided by Quality Armory.
3. Add 'weapon' tag to the item in kits.yml



```yaml
weaponTest:
  needs-permission: true
  permission: "wizards.kits.weapons"
  slot: 3
  price: 200
  display-item: 'CROSSBOW : 1 : name:ak47'
  helmet: 'IRON_HELMET : 1'
  chestplate: 'IRON_CHESTPLATE : 1'
  leggings: 'IRON_LEGGINGS : 1'
  boots: 'IRON_BOOTS : 1'
  items:
  - 'CROSSBOW : 1 : weapon : name:ak47'
  - 'CROSSBOW : 1 : weapon : name:kar98k'
  lore:
  - '&7Test weapon kit'
  potion-effects: []
```



**WeaponMechanics​**&#x20;

To enable it, go to settings.yml -> Options.WeaponMechanics and set it to true

Usage example (kits.yml):

<div align="left"><figure><img src="https://4293080539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYrTV6pKptRagG0E9N0EQ%2Fuploads%2FcVecTEYWhrmnWkUHPrEW%2Fa0d3fbb0de6063d91b12f2a72e3238834e035ae2.png?alt=media&#x26;token=3324213c-0122-4d6c-9638-392704a5fcf5" alt=""><figcaption></figcaption></figure></div>

* ITEM : AMOUNT : weapon : name:Weapon Name
* You can put any item here, it will be replaced to the weapon.
* I'm not sure if using special characters on kit name at the top (AK47) will cause any problems, avoid it just in case.

Make sure to use the weapon tag or else it won't work.\
\
**Crackshot**

* You now need to use the weapon tag and correct weapon name.
  * Example: FEATHER : 1 : weapon : name:AK-47
  * Note that you need to set Options.CrackShot and restart the server.



## Custom Item Tags, ModelData & NBT

HideItemInfo (custom flag)

* Will hide attributes, unbreakable, enchants, dye and Potion Effects. Example: **item: 'GOLDEN\_HOE : 1 : HideItemInfo'**
* Item Flags - ItemFlag. Example: **item: 'GOLDEN\_AXE : 1 : ItemFlag:HIDE\_ATTRIBUTES'**
* (1.14+) [CustomModelData](https://www.planetminecraft.com/forums/communities/texturing/new-1-14-custom-item-models-tuto-578834/) - ModelData:{Value}
* dye: Can be both the color name of RGB

**NBT**

Set **Options.Always-Use-NBT** to true and items will be saved and loaded as NBT. Note that is the entire item data, not just tags, for example



```
 display-item: 'DIAMOND_SWORD : 1 : NBT:{id:"minecraft:diamond_sword",Count:1b,tag:{AttributeModifiers:[0:{UUIDMost:471157,UUIDLeast:384572,Amount:14,Slot:"mainhand",AttributeName:"generic.maxHealth",Operation:0,Name:"generic.maxHealth"},1:{UUIDMost:699344,UUIDLeast:129385,Amount:2,AttributeName:"generic.movementSpeed",Operation:0,Name:"generic.movementSpeed"}]},Damage:0s} : enchant:DAMAGE_ALL:1 : enchant:KNOCKBACK:1
      : name:&6Fighter : lore:&f&lLine1 : lore:&f&lLine 2: &eLine2'
```



## Game Arena​&#x20;

Spawn-Protection-Size & Objective-Protection-Size​ In your arena.yml you will see Spawn-Protection-Size and Objective-Protection-Size, this will set the protected area where skills cannot explode blocks.

## Spectator Mode​&#x20;

You can spectate a game by using /wizards spectate . Spectator has a different scoreboard from the normal game, you can change its lines on language file.

For BungeeCord, set Options.Spectate-When-In-Game to true and players will be added to the spectator mode if the match is in IN GAME state.\
\
It will not work if the game is starting or ending, you will receive the message at Messages.Cannot-Spectate.\
\
The spectator spawn location can be added via the command\


* /wizards setLocation \<arena> SPEC\_SPAWN



## One Class/Kit Per Game​

This option is quite complicated so please read everything if you want to use it. When enabled, two players on the same team cannot use the same kit/class\
\
Can be enabled at Options.One-KitClass-Per-Teammate\
Message: Messages.Kit-Already-Selected-By-Other\


* This also work for classes.
* When enabled, the player will never haver a kit selected when joining a game.
* If the game starts before a player chooses a kit, you can do the following: Check Options.Game.Action-When-Player-Kit-Is-Null
  * Actions
    * SHUTDOWN\_GAME - Cancels the game
    * FORCE\_RANDOM\_DEFAULT - Forces a random kit anyways, it will result in duplicates.
    * REMOVE\_PLAYER - Removes players without a kit from the game
    * GIVE\_KIT\_KITNAME - Gives a predetermined kit, for example GIVE\_KIT\_ARCHER
    * RESTART\_COUNTDOWN - Set the game to starting again.

