> For the complete documentation index, see [llms.txt](https://mairwunnx.gitbook.io/project-essentials/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mairwunnx.gitbook.io/project-essentials/project-essentials-warps.md).

# Project Essentials Warps

## How to Install

For start the modification, you **need installed Forge**, it is desirable that the version matches the supported versions. You can download Forge 1.14.4 from the [link](https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.14.4.html) and Forge 1.15.2 from it [link](https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.15.2.html). Move the downloaded mod to the `mods` folder (*installation example below*).

```
val MV = valueOf(your_minecraft_version)

.
├── assets
├── config
├── libraries
├── mods (that's how it should be)
│   ├── Project Essentials Core-MOD-1.MV.X-1.X.X.jar (mandatory)
│   ├── Project Essentials Cooldown-1.MV.X-1.X.X.jar (recommended)
│   ├── Project Essentials Permissions-1.MV.X-1.X.X.jar (recommended)
│   └── Project Essentials Warps-1.MV.X-1.X.X.jar
└── ...
```

### **Dependencies**

Also **do not forget** to install dependencies, only two types of dependencies: **mandatory** (*game will not start without a mod*) and **recommended** (*without a mod, game can start, but I recommend using it*).

#### **Download dependencies**: [Cooldown](https://github.com/ProjectEssentials/ProjectEssentials-Cooldown) · [Core](https://github.com/ProjectEssentials/ProjectEssentials-Core) · [Permissions](https://github.com/ProjectEssentials/ProjectEssentials-Permissions)

### Last step

Now try to start the game, go to the `mods` tab, if this modification is displayed in the `mods` tab, then the mod has been **successfully installed.**

## **Configuration**

### **Configuration location**

```
.minecraft/config/ProjectEssentials/warps.json
```

### **Default configuration**

```javascript
{
    "addResistanceEffect": true,
    "resistanceEffectDuration": 200,
    "enableTeleportSound": true,
    "enableTeleportEffect": true,
    "warps": []
}
```

### Configuration description

#### Base configuration

| Name                       | Type      | Description                                                                                                                              |
| -------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `addResistanceEffect`      | `Boolean` | If value `true`, then after teleport to any warp, you'll get resistance effect. Basically it needed for protecting player from griefing. |
| `resistanceEffectDuration` | `Int`     | Make influence on resistance effect duration. (value accepts **NOT AS SECONDS**, in minecraft ticks)                                     |
| `enableTeleportSound`      | `Boolean` | If value `true`, then after teleport to any warp, you'll hear teleport sound.                                                            |
| `enableTeleportEffect`     | `Boolean` | If value `true`, then after teleport to any warp, you'll see teleport effect (portal effect, like enderman teleporting effect).          |
| `warps`                    | `Warps`   | *See: `Warps` model configuration.*                                                                                                      |

#### `Warps` model configuration

| Name          | Type     | Description                     |
| ------------- | -------- | ------------------------------- |
| `name`        | `String` | Warp name.                      |
| `clientWorld` | `String` | Client world name.              |
| `owner`       | `String` | Warp creator nickname.          |
| `worldId`     | `Int`    | Minecraft world id.             |
| `xPos`        | `Int`    | Warp position by `X` axis.      |
| `yPos`        | `Int`    | Warp position by `Y` axis.      |
| `zPos`        | `Int`    | Warp position by `Z` axis.      |
| `yaw`         | `Float`  | Player camera rotation `yaw`.   |
| `pitch`       | `Float`  | Player camera rotation `pitch`. |

### Configuration example

{% hint style="warning" %}
It just for example, for understanding configuration structure.
{% endhint %}

```javascript
{
    "addResistanceEffect": true,
    "resistanceEffectDuration": 200,
    "enableTeleportSound": true,
    "enableTeleportEffect": true,
    "warps": [
        {
            "name": "MyWarp",
            "clientWorld": "New World",
            "owner": "MairwunNx",
            "worldId": 0,
            "xPos": 1094,
            "yPos": 91,
            "zPos": 520,
            "yaw": 178.35184,
            "pitch": 43.199905
        },
        {
            "name": "MyWarp1",
            "clientWorld": "New World",
            "owner": "MairwunNx",
            "worldId": 0,
            "xPos": 1093,
            "yPos": 91,
            "zPos": 520,
            "yaw": 265.3518,
            "pitch": 4.6499176
        }
    ]
}
```

## Commands and permissions

| Command                | Permission        | Op level | Description                                                                       |
| ---------------------- | ----------------- | -------- | --------------------------------------------------------------------------------- |
| `/warp [warp name]`    | `ess.warp`        | `0`      | Base command of warps module; just teleport you to target warp point.             |
| `/setwarp [warp name]` | `ess.warp.set`    | `0`      | Create new warp point at player position and now it warp point owned only by you. |
| `/delwarp [warp name]` | `ess.warp.remove` | `0`      | Remove warp point if warp point created by you.                                   |

## If you have any questions or encounter a problem, be sure to open an [issue](https://github.com/ProjectEssentials/ProjectEssentials-Warps/issues/new/choose)
