F.A.Q
Setup
Set Config.Language in shared/config.lua. See the locales/ folder.
1Config.Language = 'en'Add an entry to Config.RecycleRecipes with the input item as the key:
1Config.RecycleRecipes['my_item'] = {
2 baseTime = 45,
3 outputs = {
4 { item = 'scrap_metal', min = 1, max = 3, chance = 100 },
5 { item = 'rare_part', min = 1, max = 1, chance = 15 },
6 },
7 tierBonuses = {
8 [2] = { chanceBoost = 5, quantityBoost = 1 },
9 [3] = { chanceBoost = 15, quantityBoost = 2 },
10 },
11}The input item and every output item must exist in your inventory.
Recipes can also be created from the Recipes tab of the staff panel, with an item search and a preview of the drops per tier.
Recipes and Tiers
Every machine runs at tier 1 by default. An output with tierRequired = 2 only drops at tier 2 or above, and tierBonuses raise chance and quantity per tier. Install an upgrade with effects = { tier = 2 } to raise one machine, or set tier = 2 on Config.Recycler to raise all of them.
Yes. Tier bonuses change loot chance and quantity. The turbo motor upgrade changes processing speed. They apply independently.
Loot Collection
Yes. Set AllowSteal to false in shared/config.lua. Add the table below if it is missing:
1Config.Queue = {
2 AllowSteal = false,
3}Each slot's loot is reserved for the character who deposited its items. Owning the recycler does not grant access to another character's reserved loot. The same rule applies to fixed stations and survives reconnects and resource restarts.
Set AllowSteal to true to allow public collection. Other machine permissions still apply.
Every deposit records its depositor, even while collection is public. A deposit with no recorded owner stays public.
Fuel
With Config.Features.fuelSystem = true, a running machine burns Config.Fuel.perMinute units per minute. When the tank hits zero, processing pauses. Refuel with the one-shot items in Config.Fuel.items, or with reusable ml_fuel jerrycans, which are kept and only emptied. The solar panel upgrade regenerates fuel passively.
Set Config.Features.fuelSystem = false. The fuel bar is hidden and processing never needs fuel. Fixed stations with infiniteFuel = true always skip fuel as well.
Set Config.Fuel.mlFuel.enabled = true and list the fuel types you accept in acceptedFuelTypes. Any item carrying metadata.fuelAmount and metadata.fuelType is treated as a jerrycan. One liter becomes litersToUnits recycler units.
Durability
Each completed slot lowers durability by Config.Durability.degradePerProcess. Below the slowdown threshold the machine runs slower. Below the malfunction threshold it can jam. At the broken threshold it stops until repaired with an item from Config.RepairItems.
Set Config.Features.durabilitySystem = false.
Yes. Add infiniteDurability = true to that entry in Config.FixedStations. That station never degrades, never jams and never asks for a repair item, and its durability bar is hidden. Every player-placed recycler keeps using the durability system as configured. Useful for a safezone or a job-owned machine.
Upgrades
Players install upgrades from inventory, up to Config.MaxUpgradesPerRecycler per machine. The item is consumed on install and returned on removal, and survives pickup and re-placement through item metadata. Four modules ship: turbo motor, extra tank, silencer kit, solar panel.
Yes. Add an upgrade to Config.Upgrades with effects = { slotBonus = N } and give it an item. The machine unlocks N extra slots, capped at Config.Recycler.maxSlots. The upgrade_slot_expansion label already exists in the locale files.
Not by default. Add a wear table to an upgrade definition to give it a durability curve that drains on use and auto-removes the module at zero.
Zombies
With Config.ZombieNoise.enabled = true and the zombie resource running, a working machine attracts zombies within defaultRadius. The silencer kit upgrade shrinks that radius. The noise stops when processing stops.
Staff Panel
Type /recyclers. The command name is Config.Admin.command. Players without permission get a notification and the panel stays closed.
Players with the framework admin permission. To use a dedicated ACE instead, set it in the config and grant it in server.cfg:
1Config.Admin.acePermission = 'ml_recycler.admin'1add_ace group.admin ml_recycler.admin allowOpen the Stations tab and press New station. The panel hides and a preview follows your camera: E places it, the mouse wheel rotates it, Shift and the wheel change the height, right click cancels. The station spawns immediately and the panel reopens on it.
Yes. They are stored in the ml_recycler_config table. Reset to config on each tab removes them.
It blocks changes that would cost players items: deleting a recipe while that item is processing, deleting an upgrade that is installed or required by another one, and lowering slots while the extra slots hold items. Wait for the jobs to finish or empty the slots, then save again.
Updates
- Download latest from CFX Portal
- Backup
shared/config.luaandserver/config_server.lua - Replace all files except config
- Apply any new config entries from the changelog to the saved config files.
- Restart the resource
Recycler positions, slots, upgrades and durability live in the database and survive updates.
The depositor field for private loot collection is added automatically at resource start. Deposits without a recorded owner remain public.
Changes made in the staff panel are stored in the database and are kept.