Developer

2 min readUpdated 2 weeks ago

Overview

ML Recycler fires server events at key points. Listen to them from any server script. The files in open/ hold handler stubs that the script does not call, so put your logic in the event handlers below.

Server Event Hooks

Processing

your_script/server.lua
1AddEventHandler('ml_recycler:hook:itemAdded', function(source, data)
2end)
3
4AddEventHandler('ml_recycler:hook:processingComplete', function(data)
5end)
6
7AddEventHandler('ml_recycler:hook:lootCollected', function(source, data)
8end)
  • itemAdded: a player inserts items. data holds recyclerId, recyclerType, slotIndex, itemName, itemCount and status
  • processingComplete: a slot finishes, with no player source. data holds recyclerId, recyclerType, slotIndex, itemName, itemCount and owner, the owner's license identifier
  • lootCollected: a player collects a slot. data holds recyclerId, recyclerType, slotIndex and loot, a list of { item, count, rarity }

Maintenance

your_script/server.lua
1AddEventHandler('ml_recycler:hook:refueled', function(source, data)
2end)
3
4AddEventHandler('ml_recycler:hook:repaired', function(source, data)
5end)
6
7AddEventHandler('ml_recycler:hook:malfunction', function(source, data)
8end)
  • refueled: recyclerId, recyclerType, fuelItem, quantity, newFuel
  • repaired: recyclerId, recyclerType, repairItem, quantity, newDurability
  • malfunction: recyclerId, recyclerType, durability

Upgrades

your_script/server.lua
1AddEventHandler('ml_recycler:hook:upgradeInstalled', function(source, data)
2end)
3
4AddEventHandler('ml_recycler:hook:upgradeRemoved', function(source, data)
5end)
6
7AddEventHandler('ml_recycler:hook:upgradeBroken', function(data)
8end)
  • upgradeInstalled, upgradeRemoved: recyclerId, recyclerType, upgradeKey, upgrades
  • upgradeBroken: recyclerId, recyclerType, upgradeKey. It has no player source and fires when a worn upgrade reaches zero

Placement

your_script/server.lua
1AddEventHandler('ml_recycler:hook:recyclerPlaced', function(source, data)
2end)
3
4AddEventHandler('ml_recycler:hook:recyclerPickedUp', function(source, data)
5end)
  • recyclerPlaced: recyclerId, recyclerType, coords, heading
  • recyclerPickedUp: recyclerId, recyclerType

Examples

your_script/server.lua
1AddEventHandler('ml_recycler:hook:lootCollected', function(source, data)
2    exports.ml_skills:AddXp('personal', 15, source)
3end)

Set rarity = 'legendary' on the outputs you want logged.

your_script/server.lua
1AddEventHandler('ml_recycler:hook:lootCollected', function(source, data)
2    for _, loot in ipairs(data.loot) do
3        if loot.rarity == 'legendary' then
4            Bridge.Log({
5                webhook = 'YOUR_WEBHOOK',
6                title = 'Legendary Drop',
7                description = loot.item .. ' x' .. loot.count,
8                player = source,
9            })
10        end
11    end
12end)