# servers

id: f75ca6b2-55ee-40ac-91f7-25b06cd03632
name: Test 123
ownerId: 5749584c-4ae6-44c1-b901-81ed4a80be63
ownerPublicKey: 5749584c-4ae6-44c1-b901-81ed4a80be63
icon:
  data:image/webp;base64,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


id: c32fa959-3597-4c77-9e4d-2270bd47bd00
name: (())
ownerId: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
ownerPublicKey: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
icon:
  data:image/webp;base64,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


# server_plugin_requirements

serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: example.all-api-boilerplate
status: required
versionRange: ^1.0.0
reason: A documented starter plugin that demonstrates every public Toju client plugin API surface.
configuredBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
installUrl: file:///home/ludde/Desktop/TojuPluginExample/toju-plugin.json
sourceUrl: file:///home/ludde/Desktop/TojuPluginExample/plugin-source.json
manifestJson:
  {"schemaVersion":1,"id":"example.all-api-boilerplate","title":"All API Boilerplate Plugin","description":"A documented starter plugin that demonstrates every public Toju client plugin API surface.","version":"1.0.0","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./src/main.js","readme":"./README.md","homepage":"https://git.azaaxin.com/myxelium/Toju","authors":[{"name":"MetoYou Plugin Developer"}],"capabilities":["profile.read","profile.write","users.read","users.manage","roles.read","roles.manage","messages.read","messages.send","messages.editOwn","messages.deleteOwn","messages.moderate","messages.sync","channels.read","channels.manage","server.read","server.manage","p2p.data","p2p.media","media.playAudio","media.addAudioStream","media.addVideoStream","audio.volume","audio.effects","ui.settings","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.local","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe","events.p2p.publish","events.p2p.subscribe"],"events":[{"eventName":"example:server","direction":"serverRelay","scope":"server","maxPayloadBytes":8192},{"eventName":"example:p2p","direction":"p2pHint","scope":"user","maxPayloadBytes":8192}],"data":[{"key":"example-client-state","scope":"client","storage":"local"},{"key":"example-server-state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true},"announcementPrefix":{"type":"string","default":"Plugin"}}},"ui":{"settingsPages":["overview"],"sidePanels":["control-panel"],"channelSections":["tools"],"appPages":["docs"],"composerActions":["announce"],"toolbarActions":["snapshot"],"profileActions":["inspect"],"embeds":["example.card"]},"pluginUser":{"displayName":"Example Plugin Bot","label":"Boilerplate helper"}}


serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: test.server-blog
status: required
versionRange: ^1.0.1
configuredBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
installUrl: file:///home/ludde/Desktop/TestPlugin/toju-plugin.json
sourceUrl: file:///home/ludde/Desktop/TestPlugin/plugin-source.json
reason:
  A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.

manifestJson:
  {"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.1","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.settings","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}}


serverId: f75ca6b2-55ee-40ac-91f7-25b06cd03632
pluginId: metoyou.polls-wheel
status: required
versionRange: ^2.2.0
reason: Advanced polls and spinning wheel with real-time sync, timers, and live UI.
configuredBy: 5749584c-4ae6-44c1-b901-81ed4a80be63
installUrl: file:///home/ludde/Desktop/my-plugin/toju-plugin.json
sourceUrl: file:///home/ludde/Desktop/my-plugin/plugin-source.json
manifestJson:
  {"schemaVersion":1,"id":"metoyou.polls-wheel","title":"Polls & Wheel of Destiny","description":"Advanced polls and spinning wheel with real-time sync, timers, and live UI.","version":"2.2.0","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","readme":"./README.md","homepage":"https://git.azaaxin.com/myxelium/Toju","authors":[{"name":"MetoYou Plugin Developer"}],"capabilities":["channels.read","messages.send","ui.embeds","ui.sidePanel","storage.serverData.read","storage.serverData.write","events.p2p.publish","events.p2p.subscribe"],"events":[{"eventName":"metoyou.polls.sync","direction":"p2pHint","scope":"server","maxPayloadBytes":16384}],"data":[{"key":"polls-wheel-state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"allowMultiVoteDefault":{"type":"boolean","default":false},"defaultDurationSeconds":{"type":"number","default":60},"enableWheel":{"type":"boolean","default":true}}},"ui":{"sidePanels":["control-panel"],"embeds":["metoyou.poll"]},"pluginUser":{"displayName":"Poll Bot","label":"Poll system"}}


serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: toju.lavalink-player
status: required
versionRange: ^0.1.7
reason: Search LavaSrc/Lavalink sources and coordinate a shared music queue per Toju voice channel.
configuredBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
installUrl: file:///home/ludde/Desktop/Lavalink-plugin/toju-plugin.json
sourceUrl: file:///home/ludde/Desktop/Lavalink-plugin/plugin-source.json
manifestJson:
  {"schemaVersion":1,"id":"toju.lavalink-player","title":"Lavalink Player","description":"Search LavaSrc/Lavalink sources and coordinate a shared music queue per Toju voice channel.","version":"0.1.7","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0"},"entrypoint":"./main.js","readme":"./README.md","capabilities":["media.addAudioStream","ui.sidePanel","ui.settings","storage.serverData.read","storage.serverData.write","events.p2p.publish","events.p2p.subscribe"],"data":[{"key":"lavalink:settings","scope":"server","storage":"serverData"}],"settings":{"host":"Lavalink host, for example lavalink.jirayu.net","port":"Lavalink port, for example 13592","password":"Lavalink Authorization password, for example youshallnotpass","secure":"Use HTTPS for Lavalink REST requests","userId":"Lavalink client/user id used for identification","sourceMode":"all or one source prefix such as ytsearch","playbackUrlTemplate":"Optional advanced browser-playable audio bridge URL template using {encoded}, {identifier}, {uri}"}}


serverId: 3d060ea7-03c9-4d7c-97c6-4e112da211d5
pluginId: com.metoyou.discord-import
status: required
versionRange: ^1.0.0
configuredBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
installUrl: file:///home/ludde/Desktop/DiscordImport/toju-plugin.json
sourceUrl: file:///home/ludde/Desktop/DiscordImport/plugin-source.json
reason:
  Imports Discord server text channels, historical messages, attachment links, and user mappings into the current Toju server.

manifestJson:
  {"schemaVersion":1,"id":"com.metoyou.discord-import","title":"Discord Import","description":"Imports Discord server text channels, historical messages, attachment links, and user mappings into the current Toju server.","version":"1.0.0","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0"},"entrypoint":"./main.js","readme":"./README.md","capabilities":["ui.pages","server.read","users.read","users.manage","channels.read","channels.manage","messages.sync","storage.serverData.read","storage.serverData.write"],"data":[{"key":"discordToken","scope":"server","storage":"serverData"},{"key":"userMap","scope":"server","storage":"serverData"},{"key":"importState","scope":"server","storage":"serverData"}]}


# plugin_data

serverId: 5d9b1879-143a-4b0f-978f-095524faa012
pluginId: metoyou.plugin-store
scope: server
key: installedPlugins
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"installedPlugins":[{"installedAt":1777413110698,"installUrl":"file:///home/ludde/Desktop/TestPlugin/toju-plugin.json","manifest":{"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.1","kind":"client","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.settings","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}},"sourceUrl":"file:///home/ludde/Desktop/TestPlugin/plugin-source.json","updatedAt":1777414801565}],"schemaVersion":1}


serverId: 4d7a1f18-d789-4be9-b521-7c85e3f1754d
pluginId: metoyou.plugin-store
scope: server
key: installedPlugins
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"installedPlugins":[{"installedAt":1777413136372,"installUrl":"file:///home/ludde/Desktop/TestPlugin/toju-plugin.json","manifest":{"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.0","kind":"client","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}},"sourceUrl":"file:///home/ludde/Desktop/TestPlugin/plugin-source.json","updatedAt":1777413136372}],"schemaVersion":1}


serverId: 7ebdde75-f814-4b08-9531-4492dee27b89
pluginId: metoyou.plugin-store
scope: server
key: installedPlugins
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"installedPlugins":[{"installedAt":1777413348053,"installUrl":"file:///home/ludde/Desktop/TestPlugin/toju-plugin.json","manifest":{"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.0","kind":"client","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}},"sourceUrl":"file:///home/ludde/Desktop/TestPlugin/plugin-source.json","updatedAt":1777413348053}],"schemaVersion":1}


serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: metoyou.plugin-store
scope: server
key: installedPlugins
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"installedPlugins":[{"installedAt":1777416404891,"installUrl":"file:///home/ludde/Desktop/TestPlugin/toju-plugin.json","manifest":{"schemaVersion":1,"id":"test.server-blog","title":"Server Blog","description":"A server-scoped personal blog module for creating, following, bookmarking, discovering, and sharing persistent posts inside a server.","version":"1.0.1","kind":"client","scope":"server","apiVersion":"1.0.0","compatibility":{"minimumTojuVersion":"1.0.0","verifiedTojuVersion":"1.0.0"},"entrypoint":"./main.js","authors":[{"name":"MetoYou Test Plugin"}],"homepage":"https://localhost/plugin/server-blog","readme":"./README.md","capabilities":["profile.read","users.read","channels.read","messages.send","server.read","ui.settings","ui.pages","ui.sidePanel","ui.channelsSection","ui.embeds","ui.dom","storage.serverData.read","storage.serverData.write","events.server.publish","events.server.subscribe"],"events":[{"eventName":"server.blog.updated","direction":"serverRelay","scope":"server","maxPayloadBytes":8192}],"data":[{"key":"state","scope":"server","storage":"serverData"}],"settings":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}}},"ui":{"settingsPages":["server-blog"],"sidePanels":["server-blog"],"channelSections":["server-blog"],"appPages":["server-blog"]}},"sourceUrl":"file:///home/ludde/Desktop/TestPlugin/plugin-source.json","updatedAt":1777416404891}],"schemaVersion":1}


serverId: 3ef99d21-c895-4272-a503-6efb75f15249
pluginId: test.server-blog
scope: server
key: state
updatedBy: 7bdc0392-9bbb-44cc-bd67-eaf236b0299e
valueJson:
  {"schemaVersion":1,"posts":{"post-1777413590939-q5rpu32":{"id":"post-1777413590939-q5rpu32","authorId":"7bdc0392-9bbb-44cc-bd67-eaf236b0299e","authorName":"Ludde","content":"TEST","createdAt":1777413590939,"updatedAt":1777413590939}},"userState":{"7bdc0392-9bbb-44cc-bd67-eaf236b0299e":{"following":[],"bookmarks":[],"lastSeenByAuthor":{"7bdc0392-9bbb-44cc-bd67-eaf236b0299e":1777413590939}}},"shares":[{"channelId":"general","postId":"post-1777413590939-q5rpu32","sharedAt":1777415528841,"sharedById":"7bdc0392-9bbb-44cc-bd67-eaf236b0299e","sharedByName":"Ludde"},{"channelId":"general","postId":"post-1777413590939-q5rpu32","sharedAt":1777413604533,"sharedById":"7bdc0392-9bbb-44cc-bd67-eaf236b0299e","sharedByName":"Ludde"}],"updatedAt":1777416583897}


