You are viewing a potentially older version of this package. View all versions.
AeralisFoundation-PLL_Library-2.0.7 icon

PLL Library

Map layout mod and custom segment library.

Date uploaded 3 weeks ago
Version 2.0.7
Download link AeralisFoundation-PLL_Library-2.0.7.zip
Downloads 42
Dependency string AeralisFoundation-PLL_Library-2.0.7

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.75301 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.75301

README

WAVE_top

PLL Library -> PEAK Thunderstore VersionThunderstore VersionThunderstore Version

logo

Discord GitHub

 

PLL Library is a PEAK map layout mod and automatic custom biome library. It reorders, repeats, regenerates, and lazily loads PEAK's live WilIsland segments, and discovers creator built custom content.

Update  •  Features  •  Install  •  Configuration  •  Layouts  •  Custom Biomes  •  Creator  •  Support

 


Update

Current package information.

Version 2.0.7 → click to collapse

 

  • I am too lazy to fill the README.md with updated information.

 


Features

Runtime behavior.

Feature list → click to expand

 

 



 


Install

Mod manager and manual installation.

Install instructions → click to expand

 

Mod manager recommended

Mod manager

  1. Install PLL_Library through a PEAK and Thunderstore compatible mod manager.
  2. Ensure BepInEx-BepInExPack_PEAK-5.4.75301 is installed.
  3. Start PEAK once to generate the configuration file.

Manual

  1. Install BepInExPack PEAK.
  2. Place PLL_Library.dll directly in PEAK/BepInEx/plugins/.
  3. Start PEAK once to generate the configuration file.

Custom content

Place creator-built .pll files directly in:

PEAK/BepInEx/plugins/PLL_Biomes/

Only files with the exact lowercase .pll extension are discovered. Discovery is top level only, processes canonical full paths in ordinal order, and keeps successful bundles loaded for the process lifetime. A rejected file is unloaded before discovery continues.

 


Configuration

Generated BepInEx configuration.

Configuration reference → click to expand

 

Configuration file:

BepInEx/config/AF/PLL_Library/config.cfg

Online rooms use the host's resolved gameplay values; PLL / Advertise Layout remains each client's local display preference. An empty Map / Seed creates a fresh random seed on world entry. Any nonempty text produces the same deterministic numeric seed.

Section / key Default Meaning
Version / SchemaRevision 17 Configuration-schema marker.
PLL / Advertise Layout false Shows at most one configured-state label beneath PEAK's ascent name: Generative takes priority over Modified, then Infinite, then Randomized.
Map / Seed empty Random when empty; deterministic text seed otherwise.
Map / Replace Generated true Rebuilds already-generated native props with the selected seed. false reuses eligible unique authored native output; repeated or forced clones still generate their own output.
Map / LayoutOrder Beach > Tropics > Roots > Alpine > Mesa > Volcano > Citadel > Nadir Defines an ordered list of public native or custom ordinary layout segments. Volcano and Citadel each include their native lower half; the visible Swamp is internal Gloom, not a separate root. Caldera, Gloom, Peak, and their structural aliases are invalid tokens; Nadir is movable and repeatable.
Map / DoOrder true Initial state of the boarding-pass Layout Order toggle.
Map / Generative Map false Builds one seeded layout from registered public native choices and eligible custom biomes when Layout Order is off.
Map / InfiniteMap false Builds a deterministic weighted expansion.
Map / Nadir at end false Appends Nadir as the final public ordinary segment.
Fields / InfiniteMap: Repeatable empty Up to 255 public segment names eligible for repetition, separated by >. Nadir is eligible.
Fields / InfiniteMap: Chances empty Position-matched non-negative weights. Invalid lists use equal weights.
Fields / InfiniteMap: Scale 8 Requested total public segment count. Configuration accepts 1 through 255; current PEAK navigation resolves at most 254 ordinary internal slots, and native composites consume two. Online shared-room ViewID capacity is separate and content-dependent.
Fields / InfiniteMap: Begin Index -1 -1 inserts at the final eligible public boundary (before a terminal Nadir); other values are clamped zero-based public insertion boundaries.
Fields / InfiniteMap: Remove Old false Replaces the base layout with repeatable choices.
Behaviors / Winnable true Enables final-zone win behavior.
Behaviors / Peak at end false Attaches full Peak at the final layout boundary: immediately before terminal Nadir, or after another final ordinary segment. Terminal Volcano and Citadel retain contextual Peak.
Behaviors / Gemless Nadir false Allows every Nadir occurrence to load without Scout's Honor.
Behaviors / Water follows Beach true Activates the shared water floor when Beach is reached.
Behaviors / Void Water follows Nadir true Activates each Nadir-local Void Water surface and WaterZone only while its Nadir occurrence is current; false enables it from run start. Beach water is independent.
Prerequisites / Relocate Plane true Moves PEAK's plane to the first segment start.
Prerequisites / Relocate Start true Moves the active four-player spawn formation to the first segment start.
Prerequisites / Guarantee Campfire Loot true Regenerates incomplete required campfire roots and requires one through four player-scaled outputs from an exact base PropSpawner. Each output gets one deterministic placement probe, runs PEAK's native constraints without bypass, and gets one construction attempt; any failure aborts generation.
Prerequisites / Valid Nadir true Allows Nadir to require Scout's Honor only after Shore, Tropics or Roots, Alpine or Mesa, and Volcano or Citadel have appeared; otherwise Nadir is gemless.
Optimizations / No Rising Ghosts false Disables Nadir's rising lost-soul fog and Citadel's rising Gloom.
Optimizations / No Sleep Fog false Disables Gloom's stationary sleep fog field.
Optimizations / Lazy Generation true Defers procedural generation until its prerequisite zone is reached and keeps future cloned feature roots inactive until their occurrence activates. Every clone remains inactive until its exact synchronized batch roots are reserved, even when this setting is disabled for eager generation.
Optimizations / Fogless false Disables fog-sphere behavior.
Optimizations / No Water false Disables Beach water and relocation.
Optimizations / No Void Water false Disables every Nadir-local Void Water surface and WaterZone.
Optimizations / No Plane false Removes the crashed plane and affiliates except spawn points.
Optimizations / Remove Old true Destroys zones older than the immediately previous zone.

Each registered custom biome receives a separate file beneath:

BepInEx/config/AF/PLL_Library/Custom Segments/

Its Favorites, Overwrites, Before, After, and Spawn Chance values begin with the bundle defaults and remain user-editable. Spawn Chance is an inclusive 0 through 100 percentage used by Generative Map. The host resolves these values for the flight.

 



 


Layouts

Deterministic layout selection and resolution.

Layout behavior → click to expand

 

  • Default uses the configured Map / LayoutOrder and Map / DoOrder values. With ordering off and neither Generative Map nor InfiniteMap active, PLL keeps PEAK's game authored current base/active variant layout.
  • Library Base appears whenever the effective Default selection differs from PLL's compiled LayoutOrder default, including when DoOrder is off or a registered modification targets Default. It is not a named layout and does not rewrite configuration: it selects that compiled default order, forces ordering on for the selected flight, and ignores registered modifications targeting Default. The terminal override clears after the flight configuration is captured.
  • Named layouts supply their own ordered tokens and always enable ordering for that flight.

Each layout sequence contains public ordinary choices only. Exact public native names and exact custom segment IDs select a source; qualified biome tokens such as peak/beach select from registered owners and declared overwriters. Caldera, Gloom, and Peak are internal structure, not public choices, so those names and their structural aliases are rejected as layout tokens. The solver maximizes valid overwrite substitutions, then Before/After, then Favorites, and finally ordinal stable-ID order. Metadata never inserts a biome by itself.

Every edit, InfiniteMap expansion, and metadata choice is resolved once over the completed public sequence before native composites expand to internal slots. Invalid connectors, unknown strict tokens, structural aliases, or excessive solver bounds fail before map mutation. PLLLibrary.DeployLayout(LayoutDefinition) and deterministic PLLLibrary.ModifyLayout(LayoutModification) remain supported for peer plugins.

 


Custom Biomes

Runtime bundle, authoring, and generation contract.

Authoring reference → click to expand

 

 


Creator

Unity authoring and .pll packaging.

Creator package → click to expand

 

Install com.aeralis.pll.creator-1.28.1.tgz through Unity Package Manager using Add package from tarball. Use an Unity project with Windows Build Support installed.

  1. Run PLL > Create Biome to create a valid starting root, definition, ports, anchors, fog/progress shell, and optional day-night profile.
  2. Use the focused PLL > helpers for supported authoring components.
  3. Select one or more PllBiomeDefinition or PllBiomeRegistry assets.
  4. Run PLL > Build .pll and choose a destination outside the Unity project.

PLL > Validate Selected Biome and the definition inspector use the same authoritative complete reachable prefab graph as the build.

 



 


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;
  • BepInEx/LogOutput.log and PEAK Player.log;
  • BepInEx/config/AF/PLL_Library/config.cfg;
  • selected terminal layout and text seed;
  • for custom content: bundle filename, stable IDs, and revisions;
  • whether the failure occurs offline, as host, as client, during late join, or during quicksave continuation.
Symptom Check
A custom biome is absent Place its exact lowercase .pll file directly in BepInEx/plugins/PLL_Biomes/ and read the first bundle rejection.
A strict layout token fails Use an exact public native name, exact custom segment ID, or registered public qualified biome token. Caldera, Gloom, Peak, and their structural aliases are not layout tokens.
Peak fails Remove it from the public layout. Peak is derived only at a supported terminal boundary.
Nadir gate is unavailable Terminal Nadir follows PEAK's native ending. A gemless Peak successor uses the bound statue directly as a Beach-like all player campfire checkpoint. An eligible honor Nadir first requires four distinct committed amulet types and native FX, then exposes the same CAMPFIRE; the native reward warp is suppressed for that checkpoint.
Infinite expansion fails Supply at least one public ordinary repeatable token and a connector-compatible chain within the internal slot limit.
Bundle is rejected Read the first bundle path and content-ID error; one failed bundle transaction does not partially register.
Inactive native map roots appear under WilIsland Leave them inactive. They are intentional rollback templates; manual activation is unsupported and activates duplicate PhotonView components alongside the committed layout. PLL does not destructively clear them.
Client disconnects during load Ensure every peer uses wire revision 40 with matching bundles, configuration, and authored revisions.
Quicksave continuation fails Restore behavior active configuration and registered content from the saved run. Quicksaves whose identity encoded Lazy Features=false or Patch bridges=false are intentionally rejected; PLL does not silently reinterpret behavior that is now always active.
A server timeout is reported after a map load exception Capture the first exception and complete logs. PLL's queue finalizer restores Photon's message queue only when PEAK's ActivateWithoutMessageQueue path throws; it is exception hardening, not proof that PLL caused the timeout.

 



WAVE_bottom

CHANGELOG

Changelog

The format is based on Keep a Changelog.

[3.1.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

  • Configuration schema 17 now upgrades directly to current schema 20.
  • Host selected Level_* scene is retained when PLL performs no map processing.
  • TowerStacker file provenance starts once at the first published layout identity boundary instead of during every PLL startup.

Fixed

  • A normal upgrade from public PLL 1.28.1 no longer disables PLL during Plugin.Awake with Configuration schema '17' is unsupported.
  • A fallible final owner, including light volume resource restoration, can no longer strand a run permanently in Releasing.
  • Final release failures no longer mask earlier published, unpublished, or rollback cleanup failures.
  • A Peak bestow cleanup failure no longer skips checkpoint cleanup.
  • Remove Old and No Sky Props alone no longer force PEAK's native Level_* flight into WilIsland.

Removed

  • Global LoadingScreenHandler.LoadSceneProcess Level_* replacement.
  • Unpublished schema 19 migration.
  • MapRun.releaseComplete and TryFinishRelease retry shaped state.
  • Duplicate pending release environment, generation hash, and retired state resets.
  • Dead ReleasedSlotRetirement.ResetReleasedState and ViewBatchSynchronization.ResetReleasedState methods.
  • Startup fingerprint plan/job/source wrappers, cross path revalidation, and the 18 file existence preflight.
  • Duplicate native base release.

 


[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

  • Previous-checkpoint quicksave input now classifies the canonical immediately previous published slot before reading RespawnChest.IsSpent or requiring the already-resolved previous-statue result to be non-null. Nadir and a registered semantic Peak checkpoint supply neutral false to PEAK's RunProgress evaluation. The Peak checkpoint authority is Peak.ScoutStatue, not Campfire or RespawnChest, so no previous RespawnChest is required for that semantic checkpoint. Installed PEAK 2.2's RunProgress constructor discards the boolean; no checkpoint state is persisted.
  • An ordinary previous checkpoint still supplies its exact RespawnChest.IsSpent value to that evaluation. A missing ordinary previous RespawnChest now fails an explicit invariant instead of being dereferenced. The quicksave finalizer returns the original exception, so SaveNow failures still propagate to the transition owner rather than being suppressed.

 


[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]

Version Details → click to expand

 

Fixed

 


[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]

Version Details → click to expand

 

Changed

 


[1.18.1]

Version Details → click to expand

 

Changed

 


[1.18.0]

Version Details → click to expand

 

Changed

 


[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]

Version Details → click to expand

 

Fixed

 


[1.12.2]

Version Details → click to expand

 

Fixed

 


[1.12.1]

Version Details → click to expand

 

Added

 


[1.12.0]

Version Details → click to expand

 

Changed

Fixed

 


[1.11.0]

Version Details → click to expand

 

Changed

Fixed

 


[1.10.2]

Version Details → click to expand

 

Fixed

 


[1.10.1]

Version Details → click to expand

 

Fixed

 


[1.10.0]

Version Details → click to expand

 

Fixed

 


[1.9.1]

Version Details → click to expand

 

Fixed

 


[1.9.0]

Version Details → click to expand

 

Added

Changed

Fixed

 


[1.8.1]

Version Details → click to expand

 

Fixed

 


[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 .pllbundle ingress, public/manual content registration, and PLLBundleManifest support.

 


[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 TutorialInfo scripts into an Editor-only named assembly before importing PEAK's Assembly-CSharp provider.
  • Remaining project Assembly-CSharp conflicts 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 Creator Unity Package Manager package with automatic local PEAK discovery and no generated files under Assets.
  • PLLFinalGeneration for deferred final-phase roots containing the supported exact PropSpawner capability.
  • PLLForceSpawner for exact-name native-prop families with occurrence-owned generation and cleanup.

Changed

  • Creator setup now installs from the released .tgz; bootstrap.ps1 and 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 PLLForceSpawner names are rejected because PEAK detaches room-owned item output; native props containing another ISpawner are 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, and Spawn Chance configuration files.
  • Exact-BiomeId custom configuration lookup APIs.
  • A separate Unity creator SDK and .pll packaging 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.
  • DeployLayout and deterministic ModifyLayout APIs.
  • Forceload and ForceloadElement inactive world-root preparation APIs.
  • PllContentRegistry, bundle-element definitions, and stable segment, element, and layout identities.
  • Deterministic Overwrites, Before, After, and Favorites layout 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.
  • Peak cannot 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.
  • Peak is documented and enforced as the native attachment that must directly follow Volcano.
  • 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.