PEAK
Install with App

Details

Latest version
5.9.4
Last Updated
First Uploaded
Downloads
1.8K
Likes
4
Size
1.5MB
Dependants
Use DirectX 11  

WAVE_top

PLL Library -> PEAK Thunderstore VersionThunderstore VersionThunderstore Version

logo

Discord

 

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 recommended

Mod manager

  1. Install PLL_Library for every player who will join the lobby.
  2. Ensure BepInEx-BepInExPack_PEAK-5.4.75301, AeralisFoundation-Unified_Ray_Tracing-1.0.0 and AeralisFoundation-PLL_Fog_Resources-1.0.0 are installed.
  3. Start PEAK once to generate the configuration file. Every member needs compatible PLL protocols and matching content.

Manual

  1. Install BepInExPack PEAK.
  2. Place unifiedraytracing at the root of the AeralisFoundation-Unified_Ray_Tracing mod directory. Gale mounts it at PEAK/BepInEx/plugins/AeralisFoundation-Unified_Ray_Tracing/unifiedraytracing.
  3. Place PLL_Library.dll directly in PEAK/BepInEx/plugins/ and the resource package's NativeFog.bundle at PEAK/BepInEx/plugins/AeralisFoundation-PLL_Fog_Resources/NativeFog.bundle. Do not place the resource inside the DLL or biome bundle.
  4. 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 PEAK Player.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]


WAVE_bottom

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.