> For the complete documentation index, see [llms.txt](https://skills.advancedplugins.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://skills.advancedplugins.net/features/classes.md).

# Classes

## Classes in AdvancedSkills

Classes in AdvancedSkills provide players with a way to specialize their character and gain advantages in specific skills. This system adds depth to player progression and encourages diverse playstyles.

### How Classes Work

Players can select a class that aligns with their preferred playstyle. Each class provides bonuses to specific skills, allowing players to excel in certain areas. Classes can be configured to be a one-time choice or allow switching with a cooldown.

### Configuring the Class System

The class system is configured in the `classes.yml` file. Let's break down the configuration:

{% code title="classes.yml " lineNumbers="true" %}

```yaml
# classes.yml
enabled: true

# Classes can be edited in `classes` folder!
allow-class-change: true  # Whether players can change their class
class-change-cooldown: 604800  # Cooldown in seconds for changing class, default 604800 = 7 days

# Should players be reminded after login if they have not selected a class?
# They will be sent a message few seconds after logging in
remind-class-selection: true
```

{% endcode %}

1. `enabled`: Set to `true` to activate the class system.
2. `allow-class-change`: If `true`, players can switch classes.
3. `class-change-cooldown`: The time (in seconds) players must wait before changing classes again. Default is 604800 (7 days).
4. `remind-class-selection`: If `true`, players without a class will be reminded to choose one after logging in.

### Creating a Class

Classes are defined in individual YAML files within the `classes` folder. Let's examine the "Craftsman" class example:

```yaml
name: "Craftsman"
description: "A master of creation and resource gathering."
icon:
  type: CRAFTING_TABLE
skills:
  mining: 1.2
  woodcutting: 1.2
  repair: 1.2
  smelting: 1.2
  alchemy: 1.1
```

Let's break down each part:

1. `name`: The display name of the class.
2. `description`: A brief explanation of the class's strengths.
3. `icon`: The item used to represent the class in menus.
   * `type`: The Minecraft material type. Refer to the [Material List](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html) for options.
4. `skills`: This section defines the skill bonuses for the class.
   * Each skill is listed with a multiplier. For example, `mining: 1.2` means the Craftsman gains 20% more experience in the Mining skill.
