permissions, what each one unlocks, and what other players can see when a plugin uses it.
How permissions work
A plugin asks for permissions inreskate-plugin.json:
reskate.on, when you register the handler, not when the event fires.
A name not on this page fails the manifest:
unknown permission "<name>": check the spelling, or update ReSkate. Every permission ReSkate plans is on the list already, so a manifest written for a later ReSkate still loads here.The base set: no permission
Every plugin has these without asking:reskate.id,reskate.api_version,reskate.side,reskate.log,printandrequire(base)reskate.onwith the eventsload,unload,tick,level_loadedandlevel_unloading(events)reskate.time.now,after,everyandcancel(time);slowandspeedneedgame.speedreskate.level.current(base)reskate.package.read,read_jsonandlist: the plugin’s own files (package)reskate.json.encodeanddecode(JSON)reskate.expose,require_plugin,emitandon_plugin: functions and events between plugins (libraries)
Interface
The skater
The world
Multiplayer
Game and files
Shared budgets
Some functions under different permissions share one rate budget. They are easy to trip over together:reskate.skater.noclip,boostandfreeze,reskate.camera.follow,reskate.ai.spawn,reskate.animation.play,reskate.board.tossandreskate.outfit.set: 4 calls a second between them.reskate.skater.teleportandreskate.trainer.back: 2 a second between them.reskate.music.play,pause,next,previousandgame_next: 2 a second between them.reskate.chat.sendandreskate.server.sayshare one clock: achat.sendmust come 3 s after the last line of either, and aserver.say1 s after.