Skip to main content
Paper plugins use YAML configuration files to store settings. The JavaPlugin class provides built-in methods for working with a default config.yml file.

Default Configuration

The default configuration file is config.yml located in your plugin’s data folder.

Configuration Methods

From JavaPlugin.java, the configuration methods:

Creating a Default Configuration

1

Create config.yml in resources

Create a config.yml file in src/main/resources/:
2

Load configuration in plugin

Load the configuration in your plugin’s onEnable() method:
saveDefaultConfig() only creates the file if it doesn’t exist. It won’t overwrite existing configurations.

Reading Configuration Values

Basic Values

Lists

Nested Values (Configuration Sections)

Check if Key Exists

Writing Configuration Values

Setting Values

Creating Sections

Reloading Configuration

Reload the configuration from disk:
From JavaPlugin.java:171-180:

Custom Configuration Files

Create additional configuration files beyond the default config.yml:

Using Custom Configurations

Saving Resources

Extract files from your plugin JAR to the data folder:
From JavaPlugin.java:199-234:

Configuration Patterns

Wrapper Class Pattern

Create a class to manage configuration:
Usage:

Data Folder

The plugin’s data folder is automatically created:
From JavaPlugin.java:84-86:

Best Practices

  1. Provide defaults:
  2. Validate configuration:
  3. Use saveDefaultConfig() carefully:
  4. Cache configuration values:
  5. Handle missing sections:
Consider using a configuration wrapper class to provide type-safe access to configuration values and centralize default values.