Reacts to your game
Run something when a match ends, a player joins, or a server comes up, without wiring a queue yourself.
A preview — a match ends, and a payout runs
0 runningon-match-ended
export default on('match.ended', async ({ match }) => {
for (const p of match.placings) {
const coins = (p.place === 1 ? 50 : 10) + p.kills * 2
await wallets.credit(p.player, coins, { match: match.id })
}
})Eventmatch.ended · m-812 · scrim-eu-3 · 4 players
Nothing is running and nothing is listening on your behalf. End the match.
Nothing running in between
Your logic exists when it is called and costs nothing when it is not. There is no idle backend to pay for or patch.
A preview — matchmaking, one invocation per run
Queue4 waiting
- orin-b3501240
- quill-7b0e1760
- nyx-91c41820
- pike-05fd2410
Matchesgap ≤ 150
- None yet.
Four players, and one of them is far above everybody else. Run it and see who is left.
Ship a change in a minute
Fix a payout or tweak matchmaking without patching the client and waiting for a store review.
A preview — change a reward, not the client
const WIN_REWARD = 50
export default on('match.ended', ({ winner }) =>
wallets.credit(winner, WIN_REWARD))Game client
build 1.4.2Unchanged — nobody had to updateFunction
v12 · WIN_REWARD = 50ServingChange the reward, deploy it, and end a match.
Scales without you watching
A launch day and a quiet Tuesday are handled the same way, which is to say you do not handle them.
Trustworthy scoring
Keep the rules where players cannot reach them, so a score means what it says.
Talks to the rest
Your servers, your leaderboards and your saves are already here, so there is nothing to connect up.
Functions is on its way.
There is nothing to sign up for yet. The rest of the platform is running today.