About Carbon Cleaner | Keep your system clean
CarbonCleaner
Short description
Finds orphaned files in `carbon/config/`, `carbon/data/`, and `carbon/lang/` based on the installed/loaded plugins and provides a sleek in-game CUI for selecting and deleting them.
Features
- Matching logic (plugin detection)
- Reads plugin base names from `carbon/plugins` (`*.cs`) **and** from the Carbon runtime (loaded plugins).
- Base names `Admin` and `CorePlugin` are always treated as present.
- Scan areas
- config: Top-level `*.json` and top-level folders whose base name does not correspond to a plugin.
- data: Top-level files (except `*.data`/`*.db`) and top-level folders without a plugin match.
- lang: `lang/<LOCALE>/*.json` whose base name does not correspond to a plugin.
- UI (CUI)
- Three columns: CONFIG, DATA, LANG with count, file size, and checkboxes.
- Select All for CONFIG/DATA, language sections can be expanded/collapsed for LANG.
- Delete button shows number of selections; after deletion, automatic rescan.
- Secure deletion
- Deletes only within the `carbon/` root (path is validated).
- Supports files **and** folders (recursively).
- Backup
- You have the option to decide whether you want to back up individual files..
> Note: `*.data` and `*.db` in the **data** root are **not** listed as orphaned (are skipped). This protects runtime databases.
Commands
In-Game (Chat)
- `/carboncleaner` — Opens the UI (requires permission).
Server console
- `carboncleaner.scan` — Shows number/size of hits.
- `carboncleaner.delete “<relativePath>|<relativePath>|...”`
Example:
`carboncleaner.delete “config/Old.json|data/OldFolder|lang/en/Old.json”`
Deletes the specified relative paths under `carbon/`.
Permissions
- `carboncleaner.admin` — required for all functions (chat/UI).
