# Getting Started

This page will go over the steps required to get started with the Pterodactyl cog.

/// admonition | Screenshots may be visually distinct
    type: info
For the purpose of this guide, I'll be using [Bloom Host's](https://bloom.host/) [Pterodactyl fork](https://mc.bloom.host/).  
The steps should be basically identical for other panels, but screenshots will look visually different.  
If in doubt, contact your host's support.
///

## Installing the cog

This project is a [cog](https://discordpy.readthedocs.io/en/stable/ext/commands/cogs.html) made for use with *specifically* instances of [Red-DiscordBot](https://github.com/Cog-Creators/Red-DiscordBot).  
See the [Red documentation](https://docs.discord.red/en/stable/install_guides/index.html) for information on how to run an instance of Red. Once you've got it running, come back here.

/// admonition | `[p]` is your bot's prefix
    type: tip
///

Now, load the Downloader cog:

```
[p]load downloader
```

The Downloader cog allows you to add Git repositories to your bot in order to download cogs from them.  
Now, use Downloader to add my repository to your bot:

```
[p]repo add sea-cogs https://www.coastalcommits.com/cswimr/SeaCogs
```

Now, install the Pterodactyl cog:

```
[p]cog install sea-cogs pterodactyl
[p]load pterodactyl
```

## Creating a sub-user

This is **optional**, but highly recommended, for security reasons.

Navigate to your `Users` page, and click the `New User` button.  
Type in an email address, and scroll down to the `Control` header.  
Click the checkmark on that header to select all of the permissions contained under the header.  
Now, scroll back up to the top of the prompt and press `Invite User`.

![image](../img/pterodactyl/setup/1.png)
![image](../img/pterodactyl/setup/2.png)

Now, you'll need to check the email you just entered into the subusers page, and create an account. I won't cover this, as it'll change depending on what host you're using.

## Getting an API Key

**Log out of your primary account, and switch to the sub-user you just created.**

Navigate to your sub-user account's `API Credentials` page.

![image](../img/pterodactyl/setup/3.png)

Create a new API key.

![image](../img/pterodactyl/setup/4.png)

You don't have to specify an allowed IP if you don't want to, but I recommend it. If you chose to, you'll need to retrieve your bot's IP address. You can do this through SSH or through a cog like [AAA3A's IP cog](https://github.com/AAA3A-AAA3A/AAA3A-cogs).

![image](../img/pterodactyl/setup/5.png)

Now, use the `[p]set api` command on your bot to add the API key.  
The format is as follows:

```
# Service: pterodactyl
# Keys and Tokens: api_key ptlc_...
```

![image](../img/pterodactyl/setup/6.png)

## Getting server information

There's some other information that the Pterodactyl cog needs to function.

First, get the base url for your panel. This does not include any extra information, like server ids, or whatnot. In my case, I'm using `https://mc.bloom.host/`.

![image](../img/pterodactyl/setup/7.png)

Use the `[p]pterodactyl config url` command to set the URL the cog will use.  
In my case, I'd use `-pterodactyl config url https://mc.bloom.host/`.

![image](../img/pterodactyl/setup/8.png)

Now, we need to get the id of your server.  Navigate to the `Settings` page in your panel.

![image](../img/pterodactyl/setup/9.png)

Use the `[p]pterodactyl config serverid` command to add the server id to the bot.
In my case, I'd use `-pterodactyl config serverid ad712016-df3d-47a5-b1df-6b71baf50340`.

![image](../img/pterodactyl/setup/10.png)

Once you've done all of this, you should see a connection message in the bot's logs. Now, we need to configure some other things.  
See the [Configuration](configuration.md) page for more information.
