Configuration File
Iris stores all configuration inplugins/Iris/settings.json. This file is automatically created on first launch with default values.
Configuration changes are hot-reloaded automatically. Iris checks for file modifications every 60 seconds and applies changes without requiring a restart.
Accessing Configuration
Configuration Structure
Thesettings.json file is organized into sections based on functionality:
General Settings
FromIrisSettings.java:209-231, general plugin behavior:
commandSounds
commandSounds
Type:
Default:
booleanDefault:
truePlay sounds when executing Iris commands.debug
debug
Type:
Default:
booleanDefault:
falseEnable debug logging. Logs detailed information to console and plugins/Iris/debug/.Toggle via command:disableNMS
disableNMS
Type:
Default:
booleanDefault:
falseDisable Native Minecraft Server (NMS) bindings.NMS enables custom biomes. Only disable if experiencing compatibility issues.
pluginMetrics
pluginMetrics
Type:
Default:
booleanDefault:
trueEnable anonymous usage statistics via bStats. Helps developers understand plugin usage.useConsoleCustomColors
useConsoleCustomColors
Type:
Default:
booleanDefault:
trueUse colored output in server console (requires Adventure API support).World Settings
FromIrisSettings.java:124-135, world behavior configuration:
asyncTeleport
asyncTeleport
Type:
objectConfigure asynchronous teleportation:enabled: Enable async teleport (default:false)loadViewDistance: Chunks to load before teleport (default:2)urgent: High-priority chunk loading (default:false)
From
IrisSettings.java:117-121, async teleport loads chunks before moving the player for smoother transitions.markerEntitySpawningSystem
markerEntitySpawningSystem
Type:
Default:
booleanDefault:
trueUse marker entities for custom spawning systems in dimension packs.globalPregenCache
globalPregenCache
Type:
Default:
booleanDefault:
falseShare pregeneration cache between worlds. Useful for multiple worlds with the same dimension.Concurrency Settings
FromIrisSettings.java:138-146, thread pool configuration:
Negative values are interpreted as multiples of CPU cores:
-1= Number of CPU cores-2= Half the number of CPU cores-4= Quarter of CPU cores- Positive values = Exact thread count
parallelism
parallelism
Type:
Default:Recommendations:
integerDefault:
-1General parallelism for non-world-gen tasks.From IrisSettings.java:51-56:- High-end servers (16+ cores):
-1(use all cores) - Medium servers (8-16 cores):
-1or-2 - Low-end servers (4-8 cores):
-2or-4
ioParallelism
ioParallelism
Type:
Default:
integerDefault:
-2Thread pool for I/O operations (file reading/writing).worldGenParallelism
worldGenParallelism
Type:
Default:
integerDefault:
-1Dedicated threads for world generation.This is the most important performance setting. More threads = faster generation but higher CPU usage.Example configurations:Performance Settings
FromIrisSettings.java:158-175, caching and optimization:
engineSVC.useVirtualThreads
engineSVC.useVirtualThreads
Type:
Default:
booleanDefault:
trueUse Java 21 virtual threads for engine operations.Virtual threads (Project Loom) reduce memory overhead and improve scalability. Requires Java 21+.
noiseCacheSize
noiseCacheSize
Type:
Default:
integerDefault:
1024Cache size for noise generation. Higher values = more memory, fewer recalculations.Recommendations:- 8GB+ RAM:
2048or higher - 4-8GB RAM:
1024(default) - Less than 4GB RAM:
512
objectLoaderCacheSize
objectLoaderCacheSize
Type:
Default:
integerDefault:
4096Cache size for loaded objects (structures, trees, etc.).This is the largest cache because objects are frequently reused. Increase if using many custom structures.tectonicPlateSize
tectonicPlateSize
Type:
Default:
integerDefault:
-1Tectonic plate simulation size. -1 = auto-calculate based on available memory.From IrisSettings.java:169-174:Generator Settings
FromIrisSettings.java:248-256, world generation behavior:
defaultWorldType
defaultWorldType
Type:
Default:
stringDefault:
"overworld"Default dimension pack when creating worlds without specifying a dimension.From Iris.java:641:maxBiomeChildDepth
maxBiomeChildDepth
Type:
Default:
integerDefault:
4Maximum depth for nested child biomes. Higher values allow more complex biome variations but increase generation time.preventLeafDecay
preventLeafDecay
Type:
Default:
booleanDefault:
truePrevent leaves from decaying in generated structures. Recommended for custom trees.Pregeneration Settings
FromIrisSettings.java:149-155, pregen configuration:
useCacheByDefault
useCacheByDefault
Type:
Default:
booleanDefault:
trueCache generated chunks to disk during pregeneration. Significantly faster for large areas.maxConcurrency
maxConcurrency
Type:
Default:
integerDefault:
256Maximum concurrent chunk generation during pregeneration.Recommendations:- 16GB+ RAM:
256-512 - 8GB RAM:
128-256 - 4GB RAM:
64-128
useVirtualThreads
useVirtualThreads
Type:
Default:
booleanDefault:
falseUse virtual threads for pregeneration (Java 21+ feature).Currently disabled by default. May improve performance on Java 21+ servers.
Studio Settings
FromIrisSettings.java:259-264, Studio mode configuration:
studio
studio
Type:
Default:
booleanDefault:
trueEnable Studio mode functionality.openVSCode
openVSCode
Type:
Default:
booleanDefault:
trueAutomatically open VS Code when starting a studio world (if VS Code is installed).disableTimeAndWeather
disableTimeAndWeather
Type:
Default:
booleanDefault:
trueDisable time progression and weather in studio worlds for easier testing.autoStartDefaultStudio
autoStartDefaultStudio
Type:
Default:
booleanDefault:
falseAutomatically start a studio world on server startup.Auto-Configuration
FromIrisSettings.java:110-114, server auto-configuration:
Auto-configuration modifies your server’s configuration files to optimize for Iris. From
ServerConfigurator.java, this runs on startup.Performance Tuning Guide
High-Performance Configuration
For dedicated servers with 16GB+ RAM:Balanced Configuration
For shared servers with 8GB RAM:Low-Resource Configuration
For budget servers with 4GB RAM:Troubleshooting
Settings not applying
Settings not applying
Symptoms: Changes to settings.json don’t take effectSolutions:
- Verify JSON syntax (use a JSON validator)
- Manually reload:
/iris reload - Check file permissions (must be writable)
- Look for errors in
logs/latest.log
High memory usage
High memory usage
Symptoms: Server runs out of memory during generationSolutions:
- Reduce cache sizes in
performancesection - Lower
pregen.maxConcurrency - Decrease
worldGenParallelism - Allocate more RAM:
java -Xmx8G -jar paper.jar
Slow world generation
Slow world generation
Symptoms: Chunks generate slowlySolutions:
- Increase
worldGenParallelismto-1 - Raise cache sizes if you have spare RAM
- Enable
performance.engineSVC.useVirtualThreads - Use SSD storage for faster I/O
Advanced Configuration
Sentry Error Reporting
FromIrisSettings.java:234-238:
GUI Settings
FromIrisSettings.java:241-245:
Next Steps
API Reference
Learn to use Iris programmatically
Dimension Packs
Create custom dimension packs
Commands Reference
Complete command documentation
Discord Support
Get help from the community