# 🪚 Job States

With **ExcellentJobs** you can create <mark style="color:green;">**primary**</mark> and <mark style="color:red;">**secondary**</mark> jobs for your players!

**Primary** jobs produces <mark style="color:green;">**maximum**</mark> of possible income and rewards without limits.

**Secondary** jobs generally have a <mark style="color:red;">**lower**</mark> max. possible level and therefore produces less rewards and income.

## Features

* Set max. amount of primary jobs for players depends on their rank / permissions.
* Set max. amount of secondary jobs for players depends on their rank / permissions.
* Set which states are allowed for each job!
* Set initial state for each job for new players, aka force give jobs to new players!

## Give Jobs to New Players

You can make new players to join certain (or all) jobs automatically on first join!

This setting will have effect on existent players for newly created jobs as well!

{% hint style="info" %}
Keep in mind that this setting bypasses amount of primary / secondary jobs allowed for a player.
{% endhint %}

**Setup Steps:**

1. Go to `/jobs/` directory inside **ExcellentJobs** folder.
2. Select a job, and open its folder.
3. Open the `settings.yml` config file.
4. Search for `Initial_State` option.
5. Set it to one of the following states: `INACTIVE`, `PRIMARY`, `SECONDARY`
6. Save the file and reload the plugin with `/jobs reload`.
7. Done!

## Setup Jobs Amount

By default players can have as many primary / secondary jobs as they want.

**If you want to change that:**

1. Go to **ExcellentJobs** directory and open the `config.yml`
2. Scroll down to `Jobs` -> `Primary_Amount` **or** `Secondary_Amount` section.
3. Read comments and configure the options to your own preferences.
4. Save the config and reload the plugin with `/jobs reload`.
5. Done!

**Example of unlimited primary jobs:**

```yaml
Primary_Amount:
  Mode: RANK
  Permission_Prefix: excellentjobs.jobs.primary.
  Default_Value: -1
  Values:
    default: -1 # This is not even necessary
```

**Example of limited primary jobs by rank:**

```yaml
Primary_Amount:
  Mode: RANK
  Permission_Prefix: excellentjobs.jobs.primary.
  Default_Value: 3 # regular players will have 3 primary jobs
  Values:
    vip: 4 # Players with 'vip' permission group will have 4 primary jobs.
    gold: 5 # the same as above, but 'gold' group.
    premium: 6 # the same as above, but 'premium' group.
```

**Example of limited primary jobs by permissions:**

```yaml
Primary_Amount:
  Mode: PERMISSION
  Permission_Prefix: excellentjobs.jobs.primary.
  Default_Value: 3 # regular players will have 3 primary jobs
  Values:
    vip: 4 # Players having 'excellentjobs.jobs.primary.vip' permission will have 4 primary jobs.
    gold: 5 # the same as above, but 'excellentjobs.jobs.primary.gold' permission
    premium:6  # the same as above, but 'excellentjobs.jobs.primary.premium' permission
```

## Setup Job States

By default players can take any job as primary or secondary one, as well as leave any joined job.

You can restrict certain jobs from being taken as primary / secondary ones, or even to prevent players from leaving them!

**To do that:**

1. Go to `/jobs/` directory inside **ExcellentJobs** folder.
2. Select a job, and open its folder.
3. Open the `settings.yml` config file.
4. Search for `Allowed_States` option.
5. Remove or add the following state(s): `INACTIVE`, `PRIMARY`, `SECONDARY`
6. Save the file and reload the plugin with `/jobs reload`.
7. Done!

{% hint style="success" %}
You **can remove** the `INACTIVE` state from `Allowed_States`. This will prevent players from leaving that job.
{% endhint %}

{% hint style="warning" %}
Removing certain states from `Allowed_States` option **will not affect** players that already have jobs with that states.
{% endhint %}
