PLL Library
Map layout and custom biome runtime library.
PLL Library -> PEAK 


PLL Library is a PEAK map layout mod and automatic custom biome library. It selects, reorders, repeats, and regenerates PEAK's live WilIsland segments. PLL also discovers custom content built with PLL Creator.
Update • Features • Install • Configuration • Layouts • Custom Biomes • Creator • Build • Support
Update
Current package information.
Version 5.9.0 → click to collapse
- I am just lazy...
Features
Runtime behavior.
Feature list → click to expand
- I am just lazy...
Install
Mod manager and manual installation.
Install instructions → click to expand
Mod manager
- Install
PLL_Libraryfor every player who will join the lobby. - Ensure
BepInEx-BepInExPack_PEAK-5.4.75301,AeralisFoundation-Unified_Ray_Tracing-1.0.0andAeralisFoundation-PLL_Fog_Resources-1.0.0are installed. - Start PEAK once to generate the configuration file. Every member needs compatible PLL protocols and matching content.
Manual
- Install BepInExPack PEAK.
- Place
unifiedraytracingat the root of theAeralisFoundation-Unified_Ray_Tracingmod directory. Gale mounts it atPEAK/BepInEx/plugins/AeralisFoundation-Unified_Ray_Tracing/unifiedraytracing. - Place
PLL_Library.dlldirectly inPEAK/BepInEx/plugins/and the resource package'sNativeFog.bundleatPEAK/BepInEx/plugins/AeralisFoundation-PLL_Fog_Resources/NativeFog.bundle. Do not place the resource inside the DLL or biome bundle. - Start PEAK once to generate the configuration file. Every online lobby member needs compatible PLL protocols and matching content.
Custom content
Place custom .pll files built with PLL Creator directly in:
PEAK/BepInEx/plugins/PLL_Biomes/
Only files with the exact lowercase .pll extension are discovered.
Configuration
Generated BepInEx configuration.
Configuration reference → click to expand
Configuration file:
BepInEx/config/AF/PLL_Library/config.cfg
| Section / key | Default | Meaning |
|---|---|---|
| `` | `` | |
Per-biome spatial controls
Native controls are grouped under [Boundaries] and [Fog] with biome named keys:
[Boundaries]
Beach Wall Boxes = 0,10,0,2,20,100,0,0,0;20,10,0,2,20,100,0,0,0
[Fog]
Beach Fog Cutout = 40,220,0.5
Each registered custom biome receives a separate file beneath:
BepInEx/config/AF/PLL_Library/Custom Segments/
Each file records the loaded bundle's Version / Content Revision. Its Favorites, Overwrites, Before, After, and Spawn Chance values begin with the bundle defaults and remain editable by the user. Spawn Chance is an inclusive 0 through 100 percentage used by Generative Map.
Layouts
Deterministic layout selection and resolution.
Layout behavior → click to expand
- I am too lazy...
Peer plugin layout API → click to expand
PLLLibrary exposes two startup registration methods.
| API | Contract |
|---|---|
PLLLibrary.DeployLayout(LayoutDefinition) |
Registers one named boarding pass layout. Registration does not select it or rewrite configuration. |
PLLLibrary.ModifyLayout(LayoutModification) |
Registers one deterministic modification for Default or one named layout. Every registered modification for the selected target applies automatically. |
| Input | Contract |
|---|---|
LayoutDefinition |
Requires a valid nondefault LayoutId, a trimmed unique display name, a content revision, and at least one public segment token. |
LayoutModification |
Requires a canonical lowercase qualified ID, a content revision, a valid target LayoutId, and at least one nonnull edit. The target may be LayoutId.Default or a registered named layout. |
LayoutEdit |
Uses InsertBefore, InsertAfter, or Remove. Occurrence is counted from zero among matching ordinary occurrences in the original target sequence. Insert operations require at least one segment token. |
using BepInEx;
using PLL.Library;
namespace Example.PLL;
[BepInPlugin("example.pll.layout", "Example PLL Layout", "1.0.0")]
[BepInDependency(PLLLibrary.PluginGuid, BepInDependency.DependencyFlags.HardDependency)]
public sealed class ExampleLayoutPlugin : BaseUnityPlugin
{
void Awake()
{
var Layout = new LayoutDefinition(
new LayoutId("example/extended-ascent"),
"Extended Ascent",
"1",
new[]
{
"Beach", "Tropics", "Roots", "Alpine",
"Mesa", "Volcano", "Citadel", "Nadir"
});
PLLLibrary.DeployLayout(Layout);
}
}
ModifyLayout example → click to expand
This example targets the named Extended Ascent layout registered above.
using BepInEx;
using PLL.Library;
namespace Example.PLL;
[BepInPlugin("example.pll.modification", "Example PLL Modification", "1.0.0")]
[BepInDependency(PLLLibrary.PluginGuid, BepInDependency.DependencyFlags.HardDependency)]
public sealed class ExampleLayoutModificationPlugin : BaseUnityPlugin
{
void Awake()
{
var Modification = new LayoutModification(
"example/move-mesa",
"1",
new LayoutId("example/extended-ascent"),
new[]
{
LayoutEdit.InsertAfter("Roots", 0, new[] { "Mesa" }),
LayoutEdit.Remove("Mesa", 0)
});
PLLLibrary.ModifyLayout(Modification);
}
}
Both edits resolve against the original Extended Ascent sequence. Remove("Mesa", 0) removes the original Mesa, not the inserted Mesa. The result is Beach > Tropics > Roots > Mesa > Alpine > Volcano > Citadel > Nadir.
Custom Biomes
Runtime bundle, authoring, and generation contract.
Authoring reference → click to expand
- I am too lazy...
Creator
Unity authoring and .pll packaging.
Creator package → click to expand
- I am too lazy...
Build from source
Conventional Release artifacts.
Building → click to expand
Copy Config.Build.user.props.template to Config.Build.user.props. Set PEAKManagedDir in the copied file to the installed PEAK_Data\Managed directory, then run:
dotnet build .\PLL_Library.slnx -c Release
| Output | Conventional path |
|---|---|
| Runtime DLL | artifacts/bin/PLL_Library/release/PLL_Library.dll |
| NuGet package | artifacts/nuget/PLL_Library.5.9.0.nupkg |
| Thunderstore package | artifacts/thunderstore/release/PLL_Library-5.9.0.zip |
| Creator package | artifacts/Editor/com.aeralis.pll.creator-5.9.0.tgz |
| Fog resource package | artifacts/resources/release/PLL_Fog_Resources-1.0.0.zip |
Support
Diagnostics and validation boundaries.
Support and troubleshooting → click to expand
Include the following with a report:
- PLL Library, PEAK, and BepInExPack versions
- complete mod list
- current
BepInEx/LogOutput.log, and PEAKPlayer.log BepInEx/config/AF/PLL_Library/config.cfg- selected terminal layout and text seed
- custom bundle filename, stable IDs, and revisions when custom content is involved
- whether the failure occurs offline, as host, as client, during late join, or during quicksave continuation
| Symptom | Check |
|---|---|
Copyright © 2026 Aeralis Foundation
Licensed under the Aeralis Foundation's Restrictive License (AFRL), Version 1.0.
Origin Project: PLL_Library
Project Source: PLL_Library
Permission Contact: [email protected]


