BankController

API -

The bank controller's purpose is to allow for custom currency integrations.

All functions shown below are required and the data you provide is completely up to you.

(Usually currency integrations will use Websockets or WWWRequests to be the middle-man for talking between applications)

First you have to enable the LuaScript Integration found in: Shop Editing > Currency Settings.

script_trigger_type = 'On Connect';

--note:
--the withdraw, deposit, getBalance, getRichest, fixedAdjustment 
--MUST return value(s);



function fixedAdjustment(viewerId, amount)

    --code to set the viewerId's currency to the exact amount
    
    
    return amount; --return the new balance
end


function getRichest(howMany)
    --this is used for extension leaderboard data. the data returned here will be displayed on the extension

    --try to grab the top howMany requested and put it into a richest array like so...
    --this array will be sorted correctly so order doesnt matter, just ensure it's the richest users.

    local richestArray = {
        { displayName = 'clonzeh', points = 1234 },
        { displayName = 'Person2', points = 442 },
        { displayName = 'Person3', points = 14532 }
    };

    return richestArray; --return the richest users array
end


function getBalance(viewerId)
    --code to check lua balance of viewerId;
    return 1234; --return the balance of the viewer
end

function deposit(viewerId, amount)
    --code to add points to the viewerid
    local newBalance = 1234 + amount;
    --finish code
    
    return newBalance; --return the new balance of the viewer
end

function withdraw(viewerId, amount)

    local balanceFound = 1234;
    local success = false;
    
    if balanceFound > amount then
        --code to subtract points from the viewerId
        local newBalance = balanceFound - amount;
        --if the subtraction works then
        --set success to true...
        success = true;
        return success, newBalance;
    end

    return success, balanceFound; --return the new balance of the user
end

function massDeposit(viewerIds, amounts)

    --efficiently deposit large amounts points to users...
    --this is useful if a custom bot currency system has an endpoint to adjust multiple users at once.


    --or just do it one at a time inside a loop the deposit(viewerId, amount); function
    for key, value in ipairs(viewerIds) do
        deposit(value, amounts[key]);
    end
end

return function()
    setupBankController(); --adds all required events for the bank controlling system.
    --NOTE: All functions above must exist with the same parameters specificed.
    
    keepAlive();
end

Events are asynchronous coroutines.

Last updated