You are viewing a potentially older version of this package. View all versions.
DooDesch-Litterally-1.1.0 icon

Litterally

Litterally more trash, zero lag - routes Schedule I's litter into a cheap instanced field so the map holds far more of it, with no feature loss.

Date uploaded 6 days ago
Version 1.1.0
Download link DooDesch-Litterally-1.1.0.zip
Downloads 103
Dependency string DooDesch-Litterally-1.1.0

This mod requires the following mods to function

LavaGang-MelonLoader-0.7.3 icon
LavaGang-MelonLoader

The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono

Preferred version: 0.7.3
ifBars-S1API_Forked-3.1.1 icon
ifBars-S1API_Forked

S1API is an open source collaboration project to help standardize Schedule One modding processes. The goal is to provide a standard place for common functionalities so you can focus on making content versus reverse engineering the game.

Preferred version: 3.1.1

README

Litterally - Trash Without the Lag

🛟 Need help or found a bug? Get support at support.doodesch.de/litterally.

Schedule I's litter is a known performance sink - every scrap is a real object with a rigidbody, colliders and its own save entry. Litterally routes all of it into a cheap instanced field and only makes the trash near you real. You get the vanilla amount of litter and better frames; turn one setting up and the map holds litterally tens of thousands of pieces, still at a playable frame rate.

Version Game MelonLoader S1API

What it does

The game's trash generators are expensive: every piece of litter is a real GameObject with a rigidbody, colliders, a per-item tick and its own save file. Litterally routes that generated trash into a cheap GPU-instanced field (a few draw calls, compact arrays) and materializes real, interactable items only in the small working set around the player and cleaners. Everything else stays virtual until you (or a cleaner) actually get near it.

Turn the multiplier up and the map holds tens of thousands of trash items at a playable frame rate, with everything still working exactly like vanilla.

Features

  • Pick up / throw trash near you - the items in front of you are real TrashItems.
  • Cleaners roam, collect the litter, empty their bins and dispose the bags as usual.
  • Sleeping-dynamic physics - nearby trash settles into natural poses, collides realistically and can be shoved or thrown, then auto-sleeps so it stops costing.
  • Persistence - the field is saved as one compact blob and restored on load, written outside the game's save folder so it can never bloat or corrupt your save.
  • Good citizen - only the game generator's own trash is absorbed; trash another mod creates directly is left untouched.
  • More trash if you want it - TrashMultiplier defaults to 1, the vanilla amount. Raise it to pile up far more litter; the same layer keeps that cheap.

Requirements

  • Schedule I 0.4.6f11 (IL2CPP) with MelonLoader 0.7.3+.
  • S1API (pulled in as a dependency).

The performance layer turns on automatically - there is nothing to configure to get the benefit.

Settings

Editable in UserData/MelonPreferences.cfg (category Litterally_01_Main):

Setting Default Meaning
EnablePerformanceLayer on Master switch. Off = fully vanilla trash.
EnableInMultiplayer off Force the layer on in multiplayer (experimental).
MaxRealItems 200 How many trash items are real/interactable around you at once.
MaterializeDistance 32 How far ahead (m) trash becomes interactable.
RenderDistance 150 How far (m) the instanced field draws.
TrashMultiplier 1 Multiply the game's own trash output (1 = vanilla, up to 1000).
ActivePhysics off Materialized trash uses active (sleeping-dynamic) physics.

Optional on-screen overlays (all off by default): ShowFpsCounter, ShowActiveItems, ShowStatsPanel, ShowRanges.

Multiplayer

The instanced field is local-only - it is not replicated over the network - so by default the performance layer auto-disables in multiplayer and the game runs vanilla. Set EnableInMultiplayer = on to try it anyway. Proper host-authoritative multiplayer support is a planned follow-up.

License

MIT. See the included LICENSE.md.

CHANGELOG

Changelog

All notable changes to Litterally are documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.1.0] - 2026-08-04

Changed

  • New installs now get the vanilla amount of trash. TrashMultiplier used to default to 10, which meant installing a performance mod also multiplied your litter by ten. Set it back up whenever you want the piles; the layer keeps them just as cheap.
    • Already playing? Your MelonPreferences.cfg keeps whatever you have set. Change it there if you want the new default.

[1.0.1] - 2026-08-04

Fixed

  • Turning on the debug stats panel or the trash highlighting no longer crashes the game. Both drew their boxes in a way this build of the game does not support (ShowStatsPanel, ShowActiveItems and ShowRanges in MelonPreferences).

[1.0.0] - 2026-06-20

First public release.

Added

  • Routes the game's own generated trash into a cheap GPU-instanced field (rendered in a few draw calls, stored as compact arrays) so the map can hold tens of thousands of trash items at a playable frame rate.
  • Materializes real, interactable TrashItems only in the small working set around the player and cleaners - everything else stays virtual until you (or a cleaner) get near it.
  • Keeps all base-game behaviour: pick up / throw nearby trash, cleaners roam and collect and dispose litter as usual, and persistence is preserved.
  • Sleeping-dynamic materialized physics: nearby trash settles into natural resting poses, collides realistically, can be shoved or thrown, then auto-sleeps so it stops costing.
  • Compact save blob: the field is saved as one blob and restored on load, written outside the game's save folder so it can never bloat or corrupt your save.
  • Good citizen: only the game generator's own trash is absorbed; trash another mod creates directly is left untouched.
  • Render distance cap for the instanced field (RenderDistance) - a perf win when looking across open ground, with no effect on interaction range.
  • Settings: EnablePerformanceLayer, EnableInMultiplayer, MaxRealItems, MaterializeDistance, RenderDistance, TrashMultiplier, ActivePhysics, plus opt-in on-screen overlays (ShowFpsCounter, ShowActiveItems, ShowStatsPanel, ShowRanges).

Notes

  • The instanced field is local-only, so the performance layer auto-disables in multiplayer to avoid desync (set EnableInMultiplayer to try it anyway). Host-authoritative multiplayer support is a planned follow-up.