tiktok fps patcher

uses ffmpeg to retime mp4s and force 30fps while maintaining the orginal fps metadata, allowing for smoother videos on tiktok

permission key server channel bot amii only
.autoassignrole.aar
administrationautoassignerolecommands
auto-assigns a role to every user joining the server, provide no parameters to list current auto-assigning roles. maximum: 3 roles at a time
Requires
administrator
example.autoassignrole.autoassignrole @role
.imageonlychannel.imageonly
administrationchannelmoderationcommands
toggles image only for a channel, bans users from using the channel if sending more than a few non-images
Requires
administrator
example.imageonly
.linkonlychannel.linkonly
administrationchannelmoderationcommands
toggles link only channel bans users from using the channel if sending more than a few non-images
Requires
administrator
example.linkonly
.slowmode
administrationchannelmoderationcommands
enables slowmode, provide no parameters to disable maximum: 6 hours
Requires
manage channels
examples.slowmode.slowmode 6h
.nsfwtoggle.artoggle
administrationchannelmodererationcommands
toggles whether the current channel is age-restricted
Requires
manage channels
example.nsfwtoggle
.delmsgoncmd.dmc
administrationchannelmoderationcommands
toggles automatic deletion of users' successful command messages using 3 settings. use list parameter to scope current setting settings: enable · disable · inherit
Requires
administrator
examples.delmsgoncmd.delmsgoncmd channel enable.delmsgoncmd ch inherit.delmsgoncmd list
.boost
administrationgreetcommands
toggles boost announcement in current channel
Requires
manage server
example.boost
.boostdel
administrationgreetcommands
sets time (in seconds) before auto-deleting boost announcements, set to 0 to disable maximum: 600 seconds · default: 30
Requires
manage server
examples.boostdel.boostdel 60
.boostmsg
administrationgreetcommands
sets boost announcement message, providing no parameters will show default boost message supports placeholders and embed json ↗
Requires
manage server
examples.boostmsg %user% thank you for boosting!.boostdel 60
.greet
administrationgreetcommands
toggles greet messages in current channel
Requires
manage server
example.greet
.greetdel
administrationgreetcommands
sets time (in seconds) before auto-deleting greet messages, set to 0 to disable maximum: 600 seconds · default: 30
Requires
manage server
examples.greetdel 0.greetdel 60
.greetmsg
administrationgreetcommands
sets greet message, providing no parameters will show current greet message supports placeholders and embed json ↗
Requires
manage server
example.greet %user% welcome to the server!
.greetdm
administrationgreetcommands
toggles whether greet messages will be sent in users' dms. separate from .greet, both, one, or neither can be enabled
Requires
manage server
example.greetdm
.greetdmmsg
administrationgreetcommands
sets dm greet message, providing no parameters will show default boost message supports placeholders and embed json ↗
Requires
manage server
example.greetdmmsg
.bye
administrationgreetcommands
toggles announcements in current channel when a user leaves the server
Requires
manage server
example.bye
.byedel
administrationgreetcommands
sets time (in seconds) before auto-deleting bye messages, set to 0 to disable maximum: 600 seconds · default: 30
Requires
manage server
example.greetdel 0.greetdel 60
.byemsg
administrationgreetcommands
sets bye message, providing no parameters will show current bye message supports placeholders and embed json ↗
Requires
manage server
example.byemsg %user% has left the server
.greettest
administrationgreetcommands
sends the current greet message in current channel, can also specify another user
Requires
manage server
example.greettest.greettest @user
.greetdmtest
administrationgreetcommands
sends the dm greet message to your dms, or another user specified
Requires
manage server
example.greetdmtest.greetdmtest @user
.byetest
administrationgreetcommands
sends the current bye message in current channel, can also specify another user
Requires
manage server
example.byetest.byetest @user
.boosttest
administrationgreetcommands
sends the current boost message in current channel, can also specify another user
Requires
manage server
example.boosttest.boosttest @user
.languageset.langset
administrationlocalizationcommands
sets server's response language, reset by using default and provide no parameters to see current setting
Requires
manage server
example.languageset de-DE.languageset default
.langsetdefault.langsetd
administrationlocalizationcommands
sets quiet's default response language, provide no parameters to scope current setting
Requires
amii only
example.langsetdefault en-US.langsetdefault default
.languageslist.langli
administrationlocalizationcommands
list of languages available
example.languageslist
.edit
administrationmessagecommands
edits the bot's message, specify message ID and new text, optionally a channel supports embed json ↗
Requires
manage server
example.edit 1519625401368842410 new message!.edit #channel 1519625401368842410 new message.edit #channel 1519625401368842410 {"description":"new message!"}
no commands found T__T
(function () { const moduleNames = [ "administrator", "expressions", "gambling", "games", "help", "music", "perms", "searches", "utility", "waifus", "xp" ]; const selectedModules = new Set(); let initialized = false; function initializeCommandFilters() { if (initialized) { return; } const searchInput = document.getElementById("command-search"); const rows = Array.from( document.querySelectorAll(".command-row") ); const count = document.getElementById("command-count"); const emptyMessages = Array.from( document.querySelectorAll(".command-empty") ); const moduleButtons = Array.from( document.querySelectorAll("#buttons22 a") ); /* Carrd may not have inserted every element yet. Keep trying briefly until everything exists. */ if ( !searchInput || rows.length === 0 || moduleButtons.length === 0 ) { setTimeout(initializeCommandFilters, 150); return; } initialized = true; console.log("Command filters initialized:", { rows: rows.length, buttons: moduleButtons.length }); moduleButtons.forEach(function (button, index) { const moduleName = moduleNames[index]; if (!moduleName) { return; } button.dataset.module = moduleName; button.setAttribute("aria-pressed", "false"); }); function updateCommands() { const query = searchInput.value.trim().toLowerCase(); let visibleCount = 0; rows.forEach(function (row) { const moduleName = row.getAttribute("data-module") || ""; const searchText = [ row.textContent || "", row.getAttribute("data-tags") || "", row.getAttribute("data-permission") || "" ] .join(" ") .toLowerCase(); const matchesModule = selectedModules.size === 0 || selectedModules.has(moduleName); const matchesSearch = query === "" || searchText.includes(query); const shouldShow = matchesModule && matchesSearch; row.classList.toggle( "command-hidden", !shouldShow ); if (shouldShow) { visibleCount++; } }); if (count) { count.textContent = visibleCount + (visibleCount === 1 ? " command" : " commands"); } emptyMessages.forEach(function (message) { message.classList.toggle( "visible", visibleCount === 0 ); }); } /* Capture clicks at document level so Carrd cannot replace the buttons or navigate through href="#". */ document.addEventListener( "click", function (event) { const target = event.target; if (!(target instanceof Element)) { return; } const button = target.closest("#buttons22 a"); if (!button) { return; } event.preventDefault(); event.stopPropagation(); event.stopImmediatePropagation(); const currentButtons = Array.from( document.querySelectorAll("#buttons22 a") ); const buttonIndex = currentButtons.indexOf(button); const moduleName = moduleNames[buttonIndex]; if (!moduleName) { return; } if (selectedModules.has(moduleName)) { selectedModules.delete(moduleName); button.classList.remove("active"); button.setAttribute( "aria-pressed", "false" ); } else { selectedModules.add(moduleName); button.classList.add("active"); button.setAttribute( "aria-pressed", "true" ); } updateCommands(); }, true ); searchInput.addEventListener( "input", updateCommands ); updateCommands(); } /* Works whether Carrd executes this before OR after DOMContentLoaded. */ if (document.readyState === "loading") { document.addEventListener( "DOMContentLoaded", initializeCommandFilters ); } else { initializeCommandFilters(); } /* Extra Carrd insurance in case its elements finish rendering after the initial document event. */ window.addEventListener( "load", initializeCommandFilters ); setTimeout(initializeCommandFilters, 250); })();

feel free to join my support server with any questions ♡


socials / support