Documentation › Mushrooms › Integrations › Exports & Events

Exports & Events

Server exports and events for other resources.

Server exports

lua
local fc = exports.smile_mushrooms

fc:CountMushrooms(src, 'boletus', 2)         -- pieces of 2★ or better
fc:RemoveMushrooms(src, 'boletus', 10, 2)    -- true/false, lowest eligible quality first
fc:AddMushrooms(src, 'boletus', 5, 3)        -- give 5× 3★
fc:GetMushroomStacks(src, 'boletus')         -- { { count, quality, slot }, ... }
fc:GetMushroomPrice('boletus', 3)            -- min, max unit price right now
fc:GetReputationLevel(src)
fc:GetPlayerMushroomStats(src)               -- { collected, sold, earned }
fc:AddReputation(src, 10)                    -- counts as 10 collected mushrooms
fc:AddAchievementProgress(src, 'quests', 1)
fc:GetTopRanking(10, 'week', 'earned')       -- scope: all | week | month, field: collected | earned

Example: a restaurant that buys 3★ boletus

lua
RegisterNetEvent('restaurant:deliverMushrooms', function()
    local src = source
    if exports.smile_mushrooms:CountMushrooms(src, 'boletus', 3) < 20 then
        return -- not enough 3★ boletus
    end
    if exports.smile_mushrooms:RemoveMushrooms(src, 'boletus', 20, 3) then
        -- pay the player, count it as a quest for achievements
        exports.smile_mushrooms:AddAchievementProgress(src, 'quests', 1)
    end
end)

Server events

lua
AddEventHandler('smile_mushrooms:collected', function(src, item, amount, quality) end)
AddEventHandler('smile_mushrooms:sold', function(src, lines, paid) end)   -- lines: { name, label, qty, price, line }
AddEventHandler('smile_mushrooms:questCompleted', function(src, quest) end)

Client exports (item use)

mushroom_use and mushroom_event are used by inventories that call an export when an item is used (eating a mushroom). The install guide for your inventory shows where to put them.