PLL Library
Map layout and custom biome runtime library.
| Date uploaded | 2 days ago |
| Version | 5.9.4 |
| Download link | AeralisFoundation-PLL_Library-5.9.4.zip |
| Downloads | 79 |
| Dependency string | AeralisFoundation-PLL_Library-5.9.4 |
This mod requires the following mods to function
BepInEx-BepInExPack_PEAK
BepInEx pack for PEAK. Preconfigured and ready to use.
Preferred version: 5.4.75301AeralisFoundation-Unified_Ray_Tracing
Unity 6000.3.15f1 SRP Core 17.3.0 Unified Ray Tracing compute resources for PEAK mods.
Preferred version: 1.0.0AeralisFoundation-PLL_Fog_Resources
Sealed Direct3D 11 fog shader resources for PLL Library on PEAK 2.6a.
Preferred version: 1.0.0README
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]
CHANGELOG
Changelog
The format is based on Keep a Changelog.
[5.9.9]
Version Details → click to collapse
Fixed
- Automatic plane placement fits the visible meshes to the ground instead of lifting their bounding box above nearby rocks.
- Tornado velocity RPCs update the native field while source binding is pending.
Changed
- Reused native mesh loading and bounding volume traversal for plane contact, including contact inside triangles rather than only at sampled vertices.
- Removed two fixed target Harmony binding factories and a repeated settings page cleanup scan.
- Shortened the Creator's luggage and native flow help text.
[5.9.8]
Version Details → click to collapse
Fixed
- Automatic plane and player starts stay just inside the first biome's entrance instead of searching the whole map.
- Solid generated rocks can support the landing.
Changed
- Removed map wide support grouping and coarse whole mesh samples.
[5.9.7]
Version Details → click to collapse
Fixed
- Automatic native starts use the placed map after prop generation.
- Player clearance and the full plane footprint are checked before spawning players.
Changed
- Start placement uses one captured player formation and one collision inventory.
- Collision queries use Unity's spatial index and reusable hit buffers instead of scanning every collider.
[5.9.6]
Version Details → click to collapse
Fixed
- Lazy Condor generation retains an inactive template instead of a scene object that native prop cleanup destroys.
- Authored amulet spawners accept flat ground when the native minimum slope is zero.
- Local lava generation uses its captured material without requiring the original scene component to remain alive.
- Map teardown releases hooked outputs before destroying their source objects.
- Run cancellation does not dispose a coroutine from inside its own active step, preserving the original failure.
- Creator reconfiguration imports the generated SDK and scripts before compiling them.
Changed
- Removed duplicate hierarchy membership helpers and six fixed target Harmony binding factories.
- Simplified Creator dialogs and tooltips.
[5.9.5]
Version Details → click to collapse
Added
- Creator's native material browser lists PEAK materials, shaders, properties and texture previews.
- Native Material can apply edited preview properties while retaining PEAK's shader and native keywords.
Fixed
- Native start placement grounds the crashed plane separately from the player spawn points when the biome has no plane anchor.
Changed
- Shared cleanup preserves individual failures without duplicated exception handlers.
- Creator setup and authoring messages use shorter, concrete descriptions. =w=
[5.9.4]
Version Details → click to collapse
Fixed
- Initial FakeItem synchronization identifies scene roots by their unique names, not their positions in Unity's scene root array.
- Native night cold respects biome roles instead of applying to every native biome, preserving Volcano and Citadel exclusions at ascent 5 and above.
Added
- Native biome and custom variation group selections include Pattern with a companion string.
Changed
- Creator's NativeModifiers component is grouped under PLL/Effects.
[5.9.3]
Version Details → click to collapse
Fixed
- Native actor sealing accepts compatible Photon prefab pools, including PEAKLib's wrapper, without modifying their resource caches.
- Room settings retain the startup biome schema when a bundle fails live compatibility sealing.
- Variation settings own their IDs, titles and default weights without retaining authoring objects from rejected bundles.
- Food and Content Spawners resolve names within their selected item or prop kind.
- Native prop lists can reference the same prefab as ItemDatabase.
- Effect zones, effects, visuals and sound emitters can bind while their deferred biome roots are inactive.
- Particle fingerprints exclude ParticleSystemRenderer's runtime bounds, which Unity does not preserve when cloning.
[5.9.2]
Version Details → click to collapse
Fixed
- Startup patches bind concrete material and bridge overrides instead of abstract or broader base methods.
- Creator adds shared placement constraints after constructing every translated spawner, including native Content Spawner children.
- Creator and runtime share amulet selection limits, so a biome cannot build with multiple simultaneously selected sources.
- Native texture mappings use primitive bundle fields so texture only references survive loading in PEAK.
- Food and Content Spawner weighted lists use primitive bundle fields for the same Editor to player serialization boundary.
[5.9.1]
Version Details → click to collapse
Fixed
- Photon transport stays active while loading through room codes, Steam lobbies and invites, including clients still joining with an assigned room.
- Room code clients can confirm their Steam lobby membership before starting the island.
- Ordinary hooked props under a custom biome root are no longer rejected as managed fixtures.
- Network and image cleanup releases owned resources when an earlier operation fails.
- Invalid collision vertices and rope skin directions are rejected before native construction.
- Creator detects invalid amulet settings and routes supported native authoring tools correctly.
Changed
- Removed duplicate scans, sorting, unused state and manual fixed-target bindings where typed access is available. Open serialized-value and RPC discovery remain supported.
- Simplified configuration, setup, inspector and multiplayer messages without removing required usage information.
[5.9.0]
Version Details → click to collapse
Added
- Food Spawner attaches native regional pools or custom weighted item lists to authored and generated custom props.
- Content Spawner places weighted native items and prop families in bounded biome zones.
- Creator native content browser can append selectors directly to Food and Content Spawner lists.
- Native Material authoring resolves named PEAK materials and independent texture property mappings in game without bundling native shader or texture copies.
- Creator validates native material slot ownership and preserves reference settings through staged bundle serialization.
[5.8.3]
Version Details → click to collapse
Fixed
- Creator accepts unset optional Shader references on Material only visuals while still rejecting missing serialized asset references.
[5.8.2]
Version Details → click to collapse
Added
- Optional biome-root
NativeModifierswith independent Night Cold and Mesa Heatstroke settings.
Fixed
- Night cold no longer depends on a fixed progress index.
- Custom Mesa heat preserves native shade and item protections without stacking native heat volumes.
- Shared cleanup failure capture replaces duplicate library implementations.
- Creator package trust uses a bound delegate instead of repeated reflective invocation.
- Creator diagnostics discover authoring components in one hierarchy pass.
- Configuration parsing and environment/property lookups avoid redundant work.
[5.8.1]
[5.8.0]
Version Details → click to collapse
Added
Fixed
[5.7.8]
[5.7.7]
[5.7.6]
[5.7.5]
[5.7.4]
[5.7.3]
[5.7.2]
[5.7.1]
[5.7.0]
Version Details → click to collapse
Added
Fixed
[5.6.2]
[5.6.1]
[5.6.0]
Version Details → click to collapse
Added
Fixed
[5.5.0]
[5.4.1]
[5.4.0]
[5.3.1]
[5.3.0]
Version Details → click to collapse
Changed
Fixed
[5.2.4]
[5.2.3]
[5.2.2]
[5.2.1]
[5.2.0]
[5.1.4]
[5.1.3]
[5.1.2]
[5.1.1]
[5.1.0]
Version Details → click to collapse
Added
Changed
Fixed
[5.0.1]
Version Details → click to collapse
Fixed
Removed
[5.0.0]
Version Details → click to collapse
Changed
Fixed
[4.1.0]
Version Details → click to collapse
Changed
Removed
Fixed
[4.0.1]
Version Details → click to collapse
Changed
Fixed
[4.0.0]
Version Details → click to collapse
Added
Changed
Fixed
[3.7.0]
Version Details → click to collapse
Added
Changed
[3.6.0]
Version Details → click to collapse
Added
Changed
Fixed
[3.5.0]
Version Details → click to collapse
Added
Changed
Fixed
[3.4.0]
Version Details → click to collapse
Added
Changed
Fixed
[3.3.0]
Version Details → click to collapse
Added
Changed
Fixed
Removed
[3.2.0]
Version Details → click to collapse
Added
Changed
Fixed
Removed
[3.0.1]
Version Details → click to collapse
Changed
Fixed
Removed
[3.0.0]
Version Details → click to collapse
Changed
Fixed
Removed
[2.0.8]
Version Details → click to collapse
Changed
Fixed
Removed
[2.0.7]
Version Details → click to collapse
Changed
Fixed
[2.0.6]
Version Details → click to collapse
Changed
Fixed
[2.0.5]
Version Details → click to collapse
Changed
Fixed
[2.0.4]
Version Details → click to collapse
Changed
Fixed
[2.0.3]
Version Details → click to collapse
Changed
Fixed
[2.0.2]
Version Details → click to collapse
Changed
Fixed
[2.0.1]
Version Details → click to collapse
Changed
Fixed
[2.0.0]
Version Details → click to collapse
Changed
Removed
Fixed
[1.30.1]
Version Details → click to collapse
Changed
Fixed
[1.30.0]
Version Details → click to collapse
Changed
Fixed
[1.29.7]
Version Details → click to collapse
Changed
Fixed
[1.29.6]
Version Details → click to collapse
Added
Changed
Fixed
[1.29.5]
Version Details → click to collapse
Changed
Fixed
[1.29.4]
Version Details → click to collapse
Changed
Fixed
[1.29.3]
Version Details → click to collapse
Changed
Fixed
[1.29.2]
Version Details → click to collapse
Changed
Fixed
[1.29.1]
Version Details → click to collapse
Changed
Fixed
[1.29.0]
Version Details → click to collapse
Added
Changed
Fixed
[1.28.1]
Version Details → click to collapse
Changed
Fixed
[1.28.0]
Version Details → click to expand
Changed
Fixed
[1.27.0]
Version Details → click to expand
Changed
Fixed
[1.26.0]
Version Details → click to expand
Changed
Fixed
[1.25.0]
Version Details → click to expand
Changed
Fixed
[1.24.0]
Version Details → click to expand
Changed
Fixed
[1.23.0]
[1.22.0]
Version Details → click to expand
Changed
Fixed
[1.21.0]
Version Details → click to expand
Changed
Fixed
[1.20.0]
Version Details → click to expand
Changed
Fixed
[1.19.0]
[1.18.1]
[1.18.0]
[1.17.2]
Version Details → click to expand
Changed
Fixed
[1.17.1]
Version Details → click to expand
Changed
Fixed
[1.17.0]
Version Details → click to expand
Changed
Fixed
[1.16.2]
Version Details → click to expand
Changed
Fixed
[1.16.1]
Version Details → click to expand
Changed
Fixed
[1.16.0]
Version Details → click to expand
Changed
Fixed
[1.15.2]
Version Details → click to expand
Changed
Fixed
[1.15.1]
Version Details → click to expand
Changed
Fixed
[1.15.0]
Version Details → click to expand
Added
Changed
Fixed
[1.14.3]
Version Details → click to expand
Changed
Fixed
[1.14.2]
Version Details → click to expand
Added
Changed
Fixed
[1.14.1]
Version Details → click to expand
Changed
Fixed
[1.14.0]
Version Details → click to expand
Changed
Fixed
[1.13.1]
Version Details → click to expand
Changed
Fixed
[1.13.0]
Version Details → click to expand
Added
Changed
[1.12.3]
[1.12.2]
[1.12.1]
[1.12.0]
Version Details → click to expand
Changed
Fixed
[1.11.0]
Version Details → click to expand
Changed
Fixed
[1.10.2]
[1.10.1]
[1.10.0]
[1.9.1]
[1.9.0]
Version Details → click to expand
Added
Changed
Fixed
[1.8.1]
[1.8.0]
Version Details → click to expand
Changed
Fixed
[1.7.1]
Version Details → click to expand
Changed
Fixed
[1.7.0]
Version Details → click to expand
Added
Changed
Fixed
Removed
- Legacy
.pllbundleingress, public/manual content registration, andPLLBundleManifestsupport.
[1.6.2]
Version Details → click to expand
Fixed
- Boarding-pass layout controls were updated.
- PLL Creator's Unity Editor integration was patched.
- Future-segment colliders are temporarily disabled during terrain processing and restored afterward.
[1.6.1]
Version Details → click to expand
Fixed
- Creator setup now isolates Unity's stock
TutorialInfoscripts into an Editor-only named assembly before importing PEAK'sAssembly-CSharpprovider. - Remaining project
Assembly-CSharpconflicts now identify the source scripts that require a named assembly definition. - Creator setup now replaces its pending transaction record through a real backup path accepted by Unity's Windows Mono runtime.
[1.6.0]
Version Details → click to expand
Added
- An installable hidden
PLL CreatorUnity Package Manager package with automatic local PEAK discovery and no generated files underAssets. PLLFinalGenerationfor deferred final-phase roots containing the supported exactPropSpawnercapability.PLLForceSpawnerfor exact-name native-prop families with occurrence-owned generation and cleanup.
Changed
- Creator setup now installs from the released
.tgz;bootstrap.ps1and the generated creator project were removed from the user workflow. - The boarding-pass layout row uses native dropdown item visuals, an auto-hiding scrollbar, compact padding, and a left-hand Order checkbox.
- Native first-segment placement derives the four-player formation from authored structural Terrain/Map mesh support instead of generated prop output.
Fixed
- Fog patches no longer publish stale origins while a new flight is still preparing its fog binding.
- Plane and player relocation no longer select generated or airborne prop colliders in Roots, Tropics, or other native starts.
Unsupported
- Item-domain
PLLForceSpawnernames are rejected because PEAK detaches room-owned item output; native props containing anotherISpawnerare also rejected.
[1.5.1]
Version Details → click to expand
Changed
- Boarding-pass layout controls now occupy PEAK's native white ascent panel and use its custom-run selector styling.
- Creator bootstrap accepts installed Unity patch releases from PEAK's detected major.minor editor stream.
Fixed
- Offline quicksave continuation transfers saved layout selection directly into the active flight snapshot instead of routing it through resettable terminal UI state.
- The layout dropdown and Order toggle no longer overlap or extend beneath the boarding-pass border.
[1.5.0]
Version Details → click to expand
Added
- A native scrolling boarding-pass layout dropdown and adjacent per-flight Layout Order toggle.
- Deterministic Generative Map layouts over native and eligible custom biomes.
- Per-custom-biome
Favorites,Overwrites,Before,After, andSpawn Chanceconfiguration files. - Exact-
BiomeIdcustom configuration lookup APIs. - A separate Unity creator SDK and
.pllpackaging project for the current pre-authored biome schema.
Changed
- Layout mode now resolves in the order registered/order toggle, Generative Map, InfiniteMap, then PEAK's live base order.
- Cloned native segments run surviving active configuration steps under a per-occurrence seed before PEAK's generation steps.
- The host configuration, layout identity, quicksave identity, and generation epoch include Generative Map and effective custom-biome configuration.
Fixed
- Future flights no longer inherit the preceding flight's Layout Order toggle override.
- Reused native generation no longer leaves nearby generated Photon views untracked or duplicates stale per-occurrence output.
- Creator publication restores the prior bundle and report together when either destination cannot be replaced.
[1.4.1]
Version Details → click to expand
Fixed
- The layout selector now uses PEAK's text-bearing custom-options style and occupies the boarding pass's native footer instead of failing on the icon-only run button.
- Configuration schema replacement is staged and atomically committed; an unchanged configuration is no longer rewritten during startup.
[1.4.0]
Version Details → click to expand
Added
- Host-selectable registered layouts on PEAK's boarding pass.
DeployLayoutand deterministicModifyLayoutAPIs.ForceloadandForceloadElementinactive world-root preparation APIs.PllContentRegistry, bundle-element definitions, and stable segment, element, and layout identities.- Deterministic
Overwrites,Before,After, andFavoriteslayout resolution. Prerequisites / Guarantee Campfire Loot.Patches / Patch bridges.
Changed
- Layout edits and InfiniteMap expansion now resolve metadata once over the final logical sequence.
- The host synchronizes selected layout identity, layout-registry revision, campfire-loot behavior, and bridge-patch behavior.
- Legacy PLL quicksaves use their original layout-revision serialization; a legacy revision rejection leaves the save intact.
- Runtime compatibility checks bind to the capabilities used instead of an independent PEAK member inventory.
- The public README now documents installation, configuration, layout registration, inert content loading, and custom-biome contracts.
Fixed
- Cloned Caldera containers no longer retain duplicate generated The Kiln output.
- Regenerated Beach bridges retain PEAK's non-damaging collision callback behavior.
- Required campfire roots regenerate when their player-scaled Campfire food output is incomplete.
- Custom segment IDs cannot collide with published native segment IDs.
Peakcannot appear before later layout tokens.- Unselected named layouts no longer abort the selected map because their live content is unavailable.
[1.3.0]
Version Details → click to expand
Added
- Custom biome API (Will be made automatic in next release).
Changed
- The default
LayoutOrder. Peakis documented and enforced as the native attachment that must directly followVolcano.- Custom segments.
- PLL quick saves.
[1.2.0]
Version Details → click to expand
Added
- Lazy Features.
- Ambiance Correction.
- Sound Correction.
- Begin Index for Infinite Map.
- No Plane.
Changed
- Prop Generation.
- Object Relocation.
- Spawn and Plane.
Removed
- Lazy Baking.
[1.1.0]
Version Details → click to expand
Added
- Remove Old Optimization.
- Winnable.
- Peak at end.
- Water follows Beach.
- Relocate Plane.
- Relocate Start.
- Lazy Generation.
- Fogless.
- No Water.
Changed
- Prop Generation.
- Beach Segment.
[1.0.0]
Version Details → click to expand
Added
- Initial Aeralis Foundation: PEAKLevelLoader Library.

