├── .eslintignore ├── .eslintrc ├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ └── bug_report.md ├── .gitignore ├── LICENSE.md ├── README.md ├── addons ├── notifications │ ├── addon.js │ ├── config.ini │ ├── index.html │ └── package.json ├── obs-studio │ ├── addon.js │ ├── config.ini │ ├── index.html │ └── package.json ├── spotify │ ├── addon.js │ ├── auth.json │ ├── config.ini │ ├── index.html │ └── package.json └── twitch │ ├── addon.js │ ├── auth.json │ ├── config.ini │ ├── index.html │ ├── package.json │ └── twurple.js ├── build ├── afterPack.js ├── icon.icns ├── icon.png └── license.txt ├── docs ├── .nojekyll ├── _config.yml ├── css │ ├── github-markdown-dark.css │ └── main.css ├── favicon.ico ├── images │ ├── logo.webp │ ├── multi-actions │ │ ├── blocks │ │ │ ├── app-status.webp │ │ │ ├── audio-play.webp │ │ │ ├── audio-stop.webp │ │ │ ├── cooldown.webp │ │ │ ├── discord-webhook-embed.webp │ │ │ ├── discord-webhook-message.webp │ │ │ ├── download-file.webp │ │ │ ├── file-read.webp │ │ │ ├── file-write.webp │ │ │ ├── http-request.webp │ │ │ ├── keyboard-shortcut.webp │ │ │ ├── kill-app.webp │ │ │ ├── launch-app.webp │ │ │ ├── launch.webp │ │ │ ├── note.webp │ │ │ ├── notification.webp │ │ │ ├── obs-studio-connection.webp │ │ │ ├── obs-studio-exit.webp │ │ │ ├── obs-studio-lock-source.webp │ │ │ ├── obs-studio-recording.webp │ │ │ ├── obs-studio-replay.webp │ │ │ ├── obs-studio-save-replay.webp │ │ │ ├── obs-studio-set-browser.webp │ │ │ ├── obs-studio-set-image.webp │ │ │ ├── obs-studio-set-media.webp │ │ │ ├── obs-studio-set-text.webp │ │ │ ├── obs-studio-source-selected.webp │ │ │ ├── obs-studio-streaming.webp │ │ │ ├── obs-studio-switch-scene.webp │ │ │ ├── obs-studio-toggle-filter.webp │ │ │ ├── obs-studio-toggle-source.webp │ │ │ ├── obs-studio-virtualcam.webp │ │ │ ├── open-url.webp │ │ │ ├── self-timer.webp │ │ │ ├── socket-request.webp │ │ │ ├── spotify-add-to-queue.webp │ │ │ ├── spotify-current-queue.webp │ │ │ ├── spotify-currently-playing.webp │ │ │ ├── spotify-play-pause.webp │ │ │ ├── spotify-prev-next.webp │ │ │ ├── spotify-repeat.webp │ │ │ ├── spotify-search.webp │ │ │ ├── spotify-shuffle.webp │ │ │ ├── spotify-volume.webp │ │ │ ├── streamdeck-action.webp │ │ │ ├── toggle-block.webp │ │ │ ├── twitch-action.webp │ │ │ ├── twitch-announce.webp │ │ │ ├── twitch-ban.webp │ │ │ ├── twitch-chat-clear.webp │ │ │ ├── twitch-cheer.webp │ │ │ ├── twitch-command.webp │ │ │ ├── twitch-community-pay-forward.webp │ │ │ ├── twitch-community-sub.webp │ │ │ ├── twitch-delete-message.webp │ │ │ ├── twitch-emote-only.webp │ │ │ ├── twitch-first-message.webp │ │ │ ├── twitch-follow.webp │ │ │ ├── twitch-followers-only.webp │ │ │ ├── twitch-game.webp │ │ │ ├── twitch-gift-paid-upgrade.webp │ │ │ ├── twitch-host.webp │ │ │ ├── twitch-hosted.webp │ │ │ ├── twitch-info.webp │ │ │ ├── twitch-message-delay.webp │ │ │ ├── twitch-message-remove.webp │ │ │ ├── twitch-message.webp │ │ │ ├── twitch-prime-community-gift.webp │ │ │ ├── twitch-prime-paid-upgrade.webp │ │ │ ├── twitch-raid-cancel.webp │ │ │ ├── twitch-raid.webp │ │ │ ├── twitch-redemption.webp │ │ │ ├── twitch-resub.webp │ │ │ ├── twitch-reward-gift.webp │ │ │ ├── twitch-ritual.webp │ │ │ ├── twitch-shoutout.webp │ │ │ ├── twitch-slow.webp │ │ │ ├── twitch-standard-pay-forward.webp │ │ │ ├── twitch-sub-extend.webp │ │ │ ├── twitch-sub-gift.webp │ │ │ ├── twitch-sub.webp │ │ │ ├── twitch-subs-only.webp │ │ │ ├── twitch-timeout.webp │ │ │ ├── twitch-unhost.webp │ │ │ ├── twitch-unique-message.webp │ │ │ ├── twitch-whisper.webp │ │ │ ├── usb-detection.webp │ │ │ ├── variable-condition.webp │ │ │ ├── variable-increment.webp │ │ │ ├── variable-remove.webp │ │ │ ├── variable-replace.webp │ │ │ ├── variable-setter.webp │ │ │ └── websocket-request.webp │ │ ├── deprecated.webp │ │ ├── input.webp │ │ ├── output.webp │ │ └── visuals │ │ │ ├── v2.0 │ │ │ ├── both-cooldown.webp │ │ │ ├── both-http-request.webp │ │ │ ├── both-launch-app.webp │ │ │ ├── both-self-timer.webp │ │ │ ├── both-socket-request.webp │ │ │ ├── both-spotify-search.webp │ │ │ ├── both-twitch-game.webp │ │ │ ├── both-twitch-info.webp │ │ │ ├── both-variable-condition.webp │ │ │ ├── both-variable-increment.webp │ │ │ ├── both-variable-remove.webp │ │ │ ├── both-variable-replace.webp │ │ │ ├── both-variable-setter.webp │ │ │ ├── both-websocket-request.webp │ │ │ ├── inputs-audio-play.webp │ │ │ ├── inputs-audio-stop.webp │ │ │ ├── inputs-discord-webhook-embed.webp │ │ │ ├── inputs-discord-webhook-message.webp │ │ │ ├── inputs-kill-app.webp │ │ │ ├── inputs-notification.webp │ │ │ ├── inputs-obs-studio-lock-source.webp │ │ │ ├── inputs-obs-studio-recording.webp │ │ │ ├── inputs-obs-studio-replay.webp │ │ │ ├── inputs-obs-studio-save-replay.webp │ │ │ ├── inputs-obs-studio-set-text.webp │ │ │ ├── inputs-obs-studio-streaming.webp │ │ │ ├── inputs-obs-studio-switch-scene.webp │ │ │ ├── inputs-obs-studio-toggle-filter.webp │ │ │ ├── inputs-obs-studio-toggle-source.webp │ │ │ ├── inputs-obs-studio-virtualcam.webp │ │ │ ├── inputs-open-url.webp │ │ │ ├── inputs-spotify-add-to-queue.webp │ │ │ ├── inputs-spotify-play-pause.webp │ │ │ ├── inputs-spotify-prev-next.webp │ │ │ ├── inputs-spotify-repeat.webp │ │ │ ├── inputs-spotify-shuffle.webp │ │ │ ├── inputs-spotify-volume.webp │ │ │ ├── inputs-toggle-block.webp │ │ │ ├── inputs-twitch-action.webp │ │ │ ├── inputs-twitch-announce.webp │ │ │ ├── inputs-twitch-ban.webp │ │ │ ├── inputs-twitch-chat-clear.webp │ │ │ ├── inputs-twitch-delete-message.webp │ │ │ ├── inputs-twitch-emote-only.webp │ │ │ ├── inputs-twitch-followers-only.webp │ │ │ ├── inputs-twitch-host.webp │ │ │ ├── inputs-twitch-info.webp │ │ │ ├── inputs-twitch-message-delay.webp │ │ │ ├── inputs-twitch-message.webp │ │ │ ├── inputs-twitch-raid-cancel.webp │ │ │ ├── inputs-twitch-raid.webp │ │ │ ├── inputs-twitch-slow.webp │ │ │ ├── inputs-twitch-subs-only.webp │ │ │ ├── inputs-twitch-timeout.webp │ │ │ ├── inputs-twitch-unhost.webp │ │ │ ├── inputs-twitch-unique-message.webp │ │ │ ├── inputs-twitch-whisper.webp │ │ │ ├── outputs-app-status.webp │ │ │ ├── outputs-launch.webp │ │ │ ├── outputs-obs-studio-connection.webp │ │ │ ├── outputs-obs-studio-exit.webp │ │ │ ├── outputs-obs-studio-lock-source.webp │ │ │ ├── outputs-obs-studio-recording.webp │ │ │ ├── outputs-obs-studio-replay.webp │ │ │ ├── outputs-obs-studio-save-replay.webp │ │ │ ├── outputs-obs-studio-source-selected.webp │ │ │ ├── outputs-obs-studio-streaming.webp │ │ │ ├── outputs-obs-studio-switch-scene.webp │ │ │ ├── outputs-obs-studio-toggle-filter.webp │ │ │ ├── outputs-obs-studio-toggle-source.webp │ │ │ ├── outputs-obs-studio-virtualcam.webp │ │ │ ├── outputs-toggle-block.webp │ │ │ ├── outputs-twitch-action.webp │ │ │ ├── outputs-twitch-announce.webp │ │ │ ├── outputs-twitch-ban.webp │ │ │ ├── outputs-twitch-chat-clear.webp │ │ │ ├── outputs-twitch-cheer.webp │ │ │ ├── outputs-twitch-command.webp │ │ │ ├── outputs-twitch-community-pay-forward.webp │ │ │ ├── outputs-twitch-community-sub.webp │ │ │ ├── outputs-twitch-emote-only.webp │ │ │ ├── outputs-twitch-first-message.webp │ │ │ ├── outputs-twitch-follow.webp │ │ │ ├── outputs-twitch-followers-only.webp │ │ │ ├── outputs-twitch-gift-paid-upgrade.webp │ │ │ ├── outputs-twitch-host.webp │ │ │ ├── outputs-twitch-hosted.webp │ │ │ ├── outputs-twitch-info.webp │ │ │ ├── outputs-twitch-message-remove.webp │ │ │ ├── outputs-twitch-message.webp │ │ │ ├── outputs-twitch-prime-community-gift.webp │ │ │ ├── outputs-twitch-prime-paid-upgrade.webp │ │ │ ├── outputs-twitch-raid-cancel.webp │ │ │ ├── outputs-twitch-raid.webp │ │ │ ├── outputs-twitch-redemption.webp │ │ │ ├── outputs-twitch-resub.webp │ │ │ ├── outputs-twitch-reward-gift.webp │ │ │ ├── outputs-twitch-ritual.webp │ │ │ ├── outputs-twitch-slow.webp │ │ │ ├── outputs-twitch-standard-pay-forward.webp │ │ │ ├── outputs-twitch-sub-extend.webp │ │ │ ├── outputs-twitch-sub-gift.webp │ │ │ ├── outputs-twitch-sub.webp │ │ │ ├── outputs-twitch-subs-only.webp │ │ │ ├── outputs-twitch-timeout.webp │ │ │ ├── outputs-twitch-unhost.webp │ │ │ ├── outputs-twitch-unique-message.webp │ │ │ ├── outputs-twitch-whisper.webp │ │ │ └── outputs-usb-detection.webp │ │ │ └── v2.1 │ │ │ ├── both-discord-webhook-embed.webp │ │ │ ├── both-discord-webhook-message.webp │ │ │ ├── both-download-file.webp │ │ │ ├── both-file-read.webp │ │ │ ├── both-spotify-current-queue.webp │ │ │ ├── both-spotify-currently-playing.webp │ │ │ ├── inputs-file-write.webp │ │ │ ├── inputs-kill-app.webp │ │ │ ├── inputs-obs-studio-set-browser.webp │ │ │ ├── inputs-obs-studio-set-image.webp │ │ │ ├── inputs-obs-studio-set-media.webp │ │ │ ├── inputs-twitch-action.webp │ │ │ ├── inputs-twitch-announce.webp │ │ │ ├── inputs-twitch-message.webp │ │ │ ├── inputs-twitch-shoutout.webp │ │ │ ├── outputs-keyboard-shortcut.webp │ │ │ └── outputs-streamdeck-action.webp │ └── screenshots │ │ ├── v2.0 │ │ ├── multi-actions.webp │ │ ├── notifications.webp │ │ ├── obs-studio.webp │ │ ├── spotify.webp │ │ ├── stream-flash.webp │ │ ├── stream-widgets.webp │ │ └── twitch.webp │ │ └── v2.1 │ │ ├── about.webp │ │ ├── multi-actions.webp │ │ ├── settings.webp │ │ ├── stream-flash.webp │ │ ├── streamdeck.webp │ │ ├── touchportal.webp │ │ └── twitch.webp ├── index.html ├── js │ └── main.js └── pages │ ├── EN │ ├── v2.0 │ │ ├── home.html │ │ └── multi-actions.html │ └── v2.1 │ │ ├── home.html │ │ └── multi-actions.html │ └── FR │ ├── v2.0 │ ├── home.html │ └── multi-actions.html │ └── v2.1 │ ├── home.html │ └── multi-actions.html ├── env.json ├── main.js ├── package.json ├── preload.js ├── public ├── about.html ├── css │ ├── all.min.css │ ├── bulma-dark.min.css │ ├── config.css │ ├── share.css │ └── styles.css ├── images │ ├── donation.png │ ├── logo-gray.png │ └── logo.png ├── index.html ├── settings.html └── webfonts │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff2 │ ├── fa-v4compatibility.ttf │ └── fa-v4compatibility.woff2 ├── screenshot.png └── scripts ├── multi-actions ├── config.ini ├── guide.webp ├── icons │ ├── action.webp │ ├── add.webp │ ├── announce.webp │ ├── application.webp │ ├── authentification.webp │ ├── ban.webp │ ├── button.webp │ ├── chat-clear.webp │ ├── command.webp │ ├── connection.webp │ ├── cooldown.webp │ ├── crystals.webp │ ├── download.webp │ ├── emotes.webp │ ├── empty.webp │ ├── exit.webp │ ├── file.webp │ ├── first.webp │ ├── follow.webp │ ├── game.webp │ ├── host.webp │ ├── info.webp │ ├── kill.webp │ ├── launch.webp │ ├── locked.webp │ ├── message-remove.webp │ ├── message.webp │ ├── music.webp │ ├── next.webp │ ├── notification.webp │ ├── open-url.webp │ ├── picture.webp │ ├── play.webp │ ├── playlist.webp │ ├── prime.webp │ ├── raid-cancel.webp │ ├── raid.webp │ ├── recording.webp │ ├── redemption.webp │ ├── rename.webp │ ├── repeat.webp │ ├── replay.webp │ ├── request.webp │ ├── reward-gift.webp │ ├── ritual.webp │ ├── search.webp │ ├── selected.webp │ ├── self-timer.webp │ ├── shoutout.webp │ ├── shuffle.webp │ ├── slow.webp │ ├── stop.webp │ ├── streaming.webp │ ├── studio.webp │ ├── subscribers.webp │ ├── text.webp │ ├── timeout.webp │ ├── toggle.webp │ ├── unhost.webp │ ├── variable-condition.webp │ ├── variable-increment.webp │ ├── variable-remove.webp │ ├── variable-setter.webp │ ├── virtual-camera.webp │ ├── volume.webp │ ├── webhook.webp │ └── whisper.webp ├── index.html ├── libs │ ├── drawflow.blocks.js │ ├── drawflow.min.css │ ├── drawflow.min.js │ └── drawflow.style.css ├── package.json └── script.js ├── stream-flash ├── config.ini ├── flash │ ├── index.html │ └── preload.js ├── index.html ├── package.json └── script.js └── stream-widgets ├── config.ini ├── index.html ├── package.json ├── script.js └── widgets ├── index.html └── preload.js /.eslintignore: -------------------------------------------------------------------------------- 1 | *.min.js -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parserOptions": { 4 | "ecmaVersion": "latest", 5 | "sourceType": "module", 6 | "ecmaFeatures": { 7 | "jsx": true 8 | } 9 | }, 10 | "env": { 11 | "browser": true, 12 | "node": true, 13 | "es6": true 14 | }, 15 | "extends": [ 16 | "eslint:recommended" 17 | ], 18 | "rules": { 19 | "eqeqeq": "warn", 20 | "indent": ["warn", 2, { "SwitchCase": 1 }], 21 | "multiline-ternary": ["warn", "always-multiline"], 22 | "no-empty": ["error", { "allowEmptyCatch": true }], 23 | "no-unused-vars": "off" 24 | }, 25 | "globals": { 26 | "BluetoothUUID": "readonly" 27 | } 28 | } -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [arubinu] -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. Win11] 28 | - Installation: NSIS or Portable 29 | - Version [e.g. 2.0.5] 30 | 31 | **Additional context** 32 | Add any other context about the problem here. 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | package-lock.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Scripts Manager 2 | 3 | Program grouping together a multitude of scripts to avoid redeveloping everything each time. 4 |
To know everything about how this software works, documentation is available here: https://arubinu.github.io/Scripts-Manager 5 | 6 | ![](screenshot.png) 7 | 8 | ### For Developers 9 | 10 | Before using the commands that follow, you must install the dependencies with the following command _(you must be in the project folder)_: 11 | ``` 12 | npm install 13 | ``` 14 | 15 | To launch the project from source _(note: add your twitch app's client_id in `addons/twitch/auth.json`, and same in spotify)_: 16 | ``` 17 | npm start 18 | ``` 19 | 20 | To compile the project and make it an executable: 21 | ``` 22 | npm run build 23 | ``` 24 | 25 | ### Notes 26 | 27 | If you are developing __addons__ or __scripts__ for this tool, you can directly tell me about it on Discord __Arubinu#9947__ _(I may suggest a repository to group them together)_. 28 | 29 | In any case, thank you for using this tool, which is close to my heart 🙂 30 | -------------------------------------------------------------------------------- /addons/notifications/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | name=Notifications 3 | methods=websocket 4 | enabled=false 5 | 6 | [settings] 7 | round=0 8 | scale=100 9 | anchor[]="bottom" 10 | anchor[]="right" 11 | screen=0 12 | opacity=100 -------------------------------------------------------------------------------- /addons/notifications/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Notifications 10 | 11 | 12 | 69 | 70 | 71 | 72 |
73 |
74 |
75 |

Notifications usable via scripts (such as Multi Actions).

76 |
77 |
78 | 79 |
80 |
81 |
82 | 83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | 91 |
92 |
93 |
94 | 100 |
101 | 102 |
103 |
104 |
105 |
106 |
107 | 113 |
114 | 115 |
116 |
117 |
118 |
119 |
120 | 126 |
127 | 128 |
129 |
130 |
131 |
132 |
133 |

Anchor

134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 | 146 | 228 | 229 | 230 | 231 | -------------------------------------------------------------------------------- /addons/notifications/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notifications", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "addon.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Arubinu", 10 | "license": "ISC", 11 | "dependencies": { 12 | "electron-custom-notifications": "github:Arubinu/electron-custom-notifications", 13 | "temp": "^0.9.4" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /addons/obs-studio/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | name=OBS Studio 3 | enabled=false 4 | 5 | [connection] 6 | address=ws://localhost:4455 7 | password= 8 | -------------------------------------------------------------------------------- /addons/obs-studio/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | OBS Studio 10 | 11 | 12 | 35 | 36 | 37 | 38 |
39 |
40 |
41 |

Links to OBS Studio for scripts that require this feature.

42 |
43 |
44 | 45 |
46 |
47 |
48 | 49 |
50 |
51 |
52 |
53 | 54 |
55 |
56 |
57 |
58 | 59 |
60 |
61 | 62 |
63 |
64 |
65 |
66 | 67 | 68 | 69 | 70 |
71 |
72 |
73 |
74 |
75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 |
DateType
85 |
86 | 87 | 194 | 195 | 196 | 197 | -------------------------------------------------------------------------------- /addons/obs-studio/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "obs-studio", 3 | "version": "2.0.0", 4 | "description": "", 5 | "main": "addon.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Arubinu", 10 | "license": "ISC", 11 | "dependencies": { 12 | "obs-websocket-js": "^4.0.3" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /addons/spotify/auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "client_id": "", 3 | "client_secret": "", 4 | "scopes": [ 5 | "playlist-read-private", 6 | "playlist-modify-public", 7 | "playlist-modify-private", 8 | "user-read-playback-state", 9 | "user-modify-playback-state" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /addons/spotify/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | name=Spotify 3 | methods=http 4 | enabled=false 5 | 6 | [connection] 7 | client_id= 8 | client_secret= 9 | access_token= 10 | refresh_token= 11 | -------------------------------------------------------------------------------- /addons/spotify/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Spotify 10 | 11 | 12 | 22 | 23 | 24 | 25 |
26 |
27 |
28 |

Links with Spotify for scripts requiring its functionality.

29 |
30 |
31 | 32 |
33 |
34 |
35 | 36 |
37 |
38 |
39 |
40 | 41 | 42 | 43 | 44 |
45 | 50 |
51 |
52 |
53 | 54 |
55 |
56 | 57 |
58 |
59 |
60 |
61 | 62 | 63 | 64 | 65 |
66 |
67 |
68 |
69 | 70 |
71 |
The information below is optional.
72 |
Enter "" as the "Redirect URL" on your Spotify developer app.
73 |
74 | 75 |
76 |
77 | 78 |
79 |
80 |
81 |
82 | 83 | 84 | 85 | 86 |
87 |
88 |
89 |
90 | 91 |
92 |
93 | 94 |
95 |
96 |
97 |
98 | 99 | 100 | 101 | 102 |
103 |
104 |
105 |
106 |
107 |
108 | 109 | 173 | 174 | 175 | 176 | -------------------------------------------------------------------------------- /addons/spotify/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "twitch", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "addon.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Arubinu", 10 | "license": "ISC", 11 | "dependencies": { 12 | "spotify-web-api-node": "^5.0.2" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /addons/twitch/addon.js: -------------------------------------------------------------------------------- 1 | const querystring = require('node:querystring'), 2 | twurple = require('./twurple'); 3 | 4 | const { 5 | client_id: CLIENT_ID, 6 | scopes: SCOPES, 7 | } = require('./auth.json'); 8 | 9 | let _logs = [], 10 | _vars = {}, 11 | _config = {}, 12 | _sender = null, 13 | _changes = false, 14 | _refresh = false, 15 | _accounts = false, 16 | _connected = false, 17 | _wait_bot_token = false; 18 | 19 | function update_interface() { 20 | const token_data = { 21 | client_id: CLIENT_ID, 22 | redirect_uri: `${_vars.http}/twitch/authorize`, 23 | scope: SCOPES.join('+'), 24 | response_type: 'token' 25 | }, 26 | authorize = 'https://id.twitch.tv/oauth2/authorize?' + querystring.stringify(token_data); 27 | 28 | _sender('message', 'config', Object.assign({ 29 | account_broadcaster: _accounts ? _accounts.broadcaster.display : '', 30 | account_bot: _accounts ? _accounts.bot.display : '', 31 | authorize: authorize.replace(/%2B/g, '+'), 32 | refresh: _refresh, 33 | wait: _wait_bot_token 34 | }, _config)); 35 | } 36 | 37 | function update_refresh() { 38 | let scopes = { 39 | saved: _config.connection.scopes, 40 | bot_saved : _config.connection.bot_scopes, 41 | current: SCOPES 42 | }; 43 | scopes.current.sort(); 44 | if (Array.isArray(scopes.saved)) { 45 | scopes.saved.sort(); 46 | } 47 | if (Array.isArray(scopes.bot_saved)) { 48 | scopes.bot_saved.sort(); 49 | } 50 | 51 | const bad_scopes = _config.connection.token && JSON.stringify(scopes.saved) !== JSON.stringify(scopes.current), 52 | bot_bad_scopes = _config.connection.bot_token && JSON.stringify(scopes.bot_saved) !== JSON.stringify(scopes.current); 53 | 54 | if (bad_scopes) console.log('bad_scopes:', JSON.stringify(scopes.saved), JSON.stringify(scopes.current)); 55 | if (bot_bad_scopes) console.log('bot_bad_scopes:', JSON.stringify(scopes.bot_saved), JSON.stringify(scopes.current)); 56 | 57 | if (bad_scopes || bot_bad_scopes) { 58 | _refresh = (bad_scopes && bot_bad_scopes) ? 3 : (bad_scopes ? 1 : 2); 59 | _sender('manager', 'state', 'warning'); 60 | } else { 61 | _refresh = false; 62 | _sender('manager', 'state'); 63 | } 64 | } 65 | 66 | async function global_send(type, obj) { 67 | _sender('broadcast', type, obj); 68 | _sender('manager', 'websocket', { name: type, target: 'twitch', data: obj }); 69 | } 70 | 71 | async function connect() { 72 | if (_config.connection.token) { 73 | global_send('Connection', []); 74 | _sender('manager', 'state', (_refresh ? 'warning' : 'connected')); 75 | 76 | _changes = false; 77 | _connected = true; 78 | _accounts = await twurple.connect(CLIENT_ID, _config.connection.token, _config.connection.bot_token, obj => { 79 | _logs.unshift(obj); 80 | for (let i = (_logs.length - 1); i >= 20; --i) { 81 | delete _logs[i]; 82 | } 83 | 84 | _sender('message', 'logs', obj); 85 | global_send(obj.type, JSON.parse(JSON.stringify(obj))); 86 | }); 87 | 88 | update_interface(); 89 | } 90 | } 91 | 92 | async function reconnect() { 93 | await disconnect(false); 94 | await new Promise(resolve => setTimeout(resolve, 1000)); 95 | await connect(); 96 | } 97 | 98 | async function disconnect(broadcast) { 99 | if (_connected) { 100 | _connected = false; 101 | 102 | _sender('manager', 'state', (_refresh ? 'warning' : 'disconnected')); 103 | await twurple.disconnect(); 104 | 105 | const obj = { 106 | type: 'Disconnected', 107 | date: Date.now(), 108 | from: '', 109 | sub: false, 110 | vip: false, 111 | mod: false, 112 | brd: false 113 | }; 114 | _logs.unshift(obj); 115 | _sender('message', 'logs', obj); 116 | 117 | if (typeof broadcast === 'undefined' || broadcast) { 118 | global_send('Disconnected', []); 119 | } 120 | } 121 | } 122 | 123 | 124 | module.exports = { 125 | init: (origin, config, sender, vars) => { 126 | _vars = vars; 127 | _sender = sender; 128 | _config = config; 129 | }, 130 | initialized: () => { 131 | if (_config.connection.token) { 132 | update_refresh(); 133 | } 134 | 135 | if (_config.default.enabled) { 136 | connect().then(); 137 | } 138 | }, 139 | receiver: async (id, name, data) => { 140 | if (id === 'manager') { 141 | if (name === 'show') { 142 | if (!data && _changes && _config.default.enabled) { 143 | await reconnect(); 144 | } 145 | 146 | _wait_bot_token = false; 147 | _sender('message', 'logs', _logs); 148 | update_interface(); 149 | } else if (name === 'enabled') { 150 | _config.default.enabled = data; 151 | if (!_config.default.enabled) { 152 | await disconnect(); 153 | } else { 154 | await connect(); 155 | } 156 | } 157 | 158 | return; 159 | } else if (id === 'message') { 160 | if (typeof data === 'object') { 161 | const name = Object.keys(data)[0]; 162 | if (name === 'refresh') { 163 | if (_config.default.enabled && _changes) { 164 | await reconnect(); 165 | } 166 | 167 | return; 168 | } else if (name === 'bot') { 169 | _wait_bot_token = data[name]; 170 | return; 171 | } 172 | 173 | if (typeof data[name] === typeof _config.connection[name]) { 174 | _changes = true; 175 | _config.connection[name] = data[name]; 176 | } 177 | _sender('manager', 'config', _config); 178 | } 179 | 180 | return; 181 | } else if (id === 'methods') { 182 | const url = '/twitch/authorize'; 183 | 184 | if (name === 'http' && data.req && data.req.url === url) { 185 | data.res.writeHead(200); 186 | data.res.end(``); 197 | 198 | return true; 199 | } else if (name === 'websocket') { 200 | if (typeof data === 'object') { 201 | if (data.url === url && !data.data.indexOf('#')) { 202 | const hash = querystring.parse(data.data.substr(1)); 203 | 204 | if (typeof hash.access_token === 'string') { 205 | if (_wait_bot_token) { 206 | _config.connection.bot_token = hash.access_token; 207 | _config.connection.bot_scopes = SCOPES; 208 | } else { 209 | _config.connection.token = hash.access_token; 210 | _config.connection.scopes = SCOPES; 211 | } 212 | 213 | update_refresh(); 214 | update_interface(); 215 | _sender('manager', 'config', _config); 216 | 217 | if (_config.default.enabled) { 218 | await reconnect(); 219 | } 220 | } 221 | 222 | return true; 223 | } else if (data.target === 'twitch' && data.name === 'subscriptions:get') { 224 | const subscriptions = await twurple.exec('Methods', 'getSubscriptions'); 225 | _sender('manager', 'websocket', { name: data.name, target: 'twitch', data: subscriptions }); 226 | return true; 227 | } 228 | } 229 | } 230 | 231 | return; 232 | } 233 | 234 | let check = false; 235 | if ((name === 'disconnect' || name === 'reconnect') && (check = true)) { 236 | await disconnect(); 237 | } 238 | if ((name === 'connect' || name === 'reconnect') && (check = true)) { 239 | await connect(); 240 | } 241 | 242 | if (!check) { 243 | return await twurple.exec(data.type, name, data.args); 244 | } 245 | } 246 | }; 247 | -------------------------------------------------------------------------------- /addons/twitch/auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "client_id": "", 3 | "scopes": [ 4 | "bits:read", 5 | "channel:edit:commercial", 6 | "channel:read:charity", 7 | "channel:read:goals", 8 | "channel:read:hype_train", 9 | "channel:read:polls", 10 | "channel:read:predictions", 11 | "channel:read:redemptions", 12 | "channel:read:subscriptions", 13 | "channel:manage:broadcast", 14 | "channel:manage:polls", 15 | "channel:manage:predictions", 16 | "channel:manage:raids", 17 | "channel:manage:redemptions", 18 | "channel:moderate", 19 | "chat:edit", 20 | "chat:read", 21 | "moderation:read", 22 | "moderator:manage:automod", 23 | "moderator:manage:announcements", 24 | "moderator:manage:banned_users", 25 | "moderator:manage:blocked_terms", 26 | "moderator:manage:chat_messages", 27 | "moderator:manage:chat_settings", 28 | "moderator:manage:shoutouts", 29 | "moderator:read:followers", 30 | "moderator:read:chat_settings", 31 | "user:read:follows", 32 | "whispers:edit", 33 | "whispers:read" 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /addons/twitch/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | name=Twitch 3 | methods=http,websocket 4 | enabled=false 5 | 6 | [connection] 7 | token= 8 | bot_token= 9 | -------------------------------------------------------------------------------- /addons/twitch/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "twitch", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "addon.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Arubinu", 10 | "license": "ISC", 11 | "dependencies": { 12 | "@twurple/api": "^6.0.6", 13 | "@twurple/auth": "^6.0.6", 14 | "@twurple/chat": "^6.0.6", 15 | "@twurple/eventsub-ws": "^6.0.6", 16 | "@twurple/pubsub": "^6.0.6" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /build/afterPack.js: -------------------------------------------------------------------------------- 1 | const fs = require('node:fs'), 2 | path = require('node:path'); 3 | 4 | exports.default = async function(context) { 5 | for (const target of context.targets) { 6 | if (target.name === 'portable') { 7 | const timeout = setInterval(() => { 8 | try { 9 | fs.rmSync(path.join(context.appOutDir, 'resources', 'elevate.exe')); 10 | console.log(' • elevate.exe removed') 11 | clearTimeout(timeout); 12 | } catch (e) {} 13 | }, 10); 14 | 15 | break; 16 | } 17 | } 18 | }; -------------------------------------------------------------------------------- /build/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/build/icon.icns -------------------------------------------------------------------------------- /build/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/build/icon.png -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/.nojekyll -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: no-theme 2 | title: Scripts Manager WIKI 3 | description: All information about the Scripts Manager software. -------------------------------------------------------------------------------- /docs/css/main.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | } 4 | 5 | h1 > img, 6 | h2 > img, 7 | h3 > img, 8 | h4 > img, 9 | h5 > img, 10 | h6 > img { 11 | vertical-align: -2px; 12 | } 13 | 14 | body { 15 | margin: 0 auto; 16 | font-family: -apple-system,BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; 17 | background-color: #0d1117; 18 | } 19 | 20 | header { 21 | display: block; 22 | position: fixed; 23 | top: 0px; 24 | width: 100%; 25 | height: 50px; 26 | background-color: #2b333e; 27 | } 28 | header .logo { 29 | display: inline-block; 30 | padding: 4px 5px 4px 10px; 31 | height: 100%; 32 | vertical-align: -1rem; 33 | } 34 | header .title { 35 | font-size: 1.5rem; 36 | font-weight: 600; 37 | color: #fff; 38 | text-decoration: none; 39 | } 40 | header .right { 41 | float: right; 42 | margin-right: 10px; 43 | } 44 | header .right > * { 45 | margin-left: 4px; 46 | } 47 | 48 | #container { 49 | position: fixed; 50 | display: flex; 51 | flex-direction: row; 52 | top: 50px; 53 | bottom: 0; 54 | left: 0; 55 | right: 0; 56 | background-color: #0d1117; 57 | } 58 | 59 | #container > nav { 60 | overflow: auto; 61 | flex-basis: 280px; 62 | flex-shrink: 0; 63 | padding: 20px; 64 | padding-left: 10px; 65 | font-size: 1.1rem; 66 | font-weight: 500; 67 | background-color: #1b212a; 68 | scroll-behavior: smooth; 69 | } 70 | #container > nav ul { 71 | padding-left: 1.2rem; 72 | list-style: none; 73 | } 74 | #container > nav > ul { 75 | padding-left: .5rem; 76 | } 77 | #container > nav li { 78 | position: relative; 79 | padding-top: .1rem; 80 | padding-bottom: .1rem; 81 | } 82 | #container > nav li:first-child { 83 | padding-top: .2rem; 84 | } 85 | #container > nav li:last-child { 86 | padding-bottom: 0; 87 | } 88 | #container > nav li > a { 89 | display: block; 90 | padding: .2rem .6rem; 91 | color: #c9d1d9; 92 | } 93 | #container > nav li.is-active > a { 94 | background-color: rgba(255, 255, 255, .1); 95 | border-radius: 4px; 96 | } 97 | #container > nav li > .caret { 98 | position: absolute; 99 | top: 17px; 100 | right: 9px; 101 | } 102 | #container > nav li:not(.is-active) > ul { 103 | display: none; 104 | } 105 | #container > nav li > ul { 106 | padding-top: .2rem; 107 | } 108 | #container > nav > ul > li:not(.is-active) > ul { 109 | display: list-item; 110 | } 111 | 112 | #container > article { 113 | overflow: auto; 114 | flex-grow: 1; 115 | padding: 45px; 116 | scroll-behavior: smooth; 117 | } 118 | #container > article img { 119 | max-width: 100%; 120 | } 121 | #container > article > img { 122 | display: block; 123 | margin: 1rem 0; 124 | } 125 | #container > article > table { 126 | display: table; 127 | width: 100%; 128 | } 129 | 130 | .text-cyan { 131 | color: cyan; 132 | } 133 | .text-lightblue { 134 | color: lightblue; 135 | } 136 | .text-lime { 137 | color: lime; 138 | } 139 | .text-orange { 140 | color: orange; 141 | } 142 | 143 | .underline-gray { 144 | text-decoration-color: rgba(255, 255, 255, .3); 145 | } 146 | 147 | .caret { 148 | width: 0; 149 | height: 0; 150 | border: 7px solid transparent; 151 | } 152 | .caret.down { 153 | border-top-color: rgba(255, 255, 255, .7); 154 | } 155 | .caret.right { 156 | border-left-color: rgba(255, 255, 255, .7); 157 | } 158 | .caret.up { 159 | border-bottom-color: rgba(255, 255, 255, .7); 160 | } 161 | .caret.left { 162 | border-right-color: rgba(255, 255, 255, .7); 163 | } 164 | 165 | .sponsor { 166 | vertical-align: -9px; 167 | border: 0; 168 | border-radius: 6px; 169 | } 170 | 171 | .vertical-baseline { 172 | vertical-align: baseline; 173 | } 174 | 175 | [select] { 176 | display: inline-block; 177 | position: relative; 178 | margin-top: 8px; 179 | padding: 5px 12px; 180 | text-align: center; 181 | border: 1px solid rgba(255, 255, 255, .3); 182 | border-radius: 5px; 183 | cursor: pointer; 184 | } 185 | [select] > ul { 186 | position: absolute; 187 | top: 100%; 188 | left: 0px; 189 | margin: 0; 190 | padding-left: 0; 191 | min-width: 100%; 192 | text-align: center; 193 | background-color: #2b333e; 194 | border: 1px solid rgba(255, 255, 255, .3); 195 | border-radius: 5px; 196 | list-style: none; 197 | } 198 | [select].select-top > ul { 199 | border-top-left-radius: 0; 200 | border-top-right-radius: 0; 201 | } 202 | [select].select-bottom > ul { 203 | top: unset; 204 | bottom: 100%; 205 | border-bottom-left-radius: 0; 206 | border-bottom-right-radius: 0; 207 | } 208 | [select].select-right > ul { 209 | left: unset; 210 | right: 0px; 211 | } 212 | [select] > ul:not(.is-active) { 213 | display: none; 214 | } 215 | [select] > ul > li { 216 | padding: 5px; 217 | } 218 | [select] > ul > li:hover { 219 | background-color: rgba(255, 255, 255, .1); 220 | } -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/favicon.ico -------------------------------------------------------------------------------- /docs/images/logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/logo.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/app-status.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/app-status.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/audio-play.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/audio-play.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/audio-stop.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/audio-stop.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/cooldown.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/cooldown.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/discord-webhook-embed.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/discord-webhook-embed.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/discord-webhook-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/discord-webhook-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/download-file.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/download-file.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/file-read.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/file-read.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/file-write.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/file-write.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/http-request.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/http-request.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/keyboard-shortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/keyboard-shortcut.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/kill-app.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/kill-app.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/launch-app.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/launch-app.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/launch.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/launch.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/note.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/note.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/notification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/notification.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-connection.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-connection.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-exit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-exit.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-lock-source.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-lock-source.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-recording.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-recording.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-replay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-replay.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-save-replay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-save-replay.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-set-browser.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-set-browser.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-set-image.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-set-image.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-set-media.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-set-media.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-set-text.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-set-text.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-source-selected.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-source-selected.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-streaming.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-streaming.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-switch-scene.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-switch-scene.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-toggle-filter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-toggle-filter.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-toggle-source.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-toggle-source.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/obs-studio-virtualcam.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/obs-studio-virtualcam.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/open-url.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/open-url.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/self-timer.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/self-timer.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/socket-request.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/socket-request.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-add-to-queue.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-add-to-queue.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-current-queue.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-current-queue.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-currently-playing.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-currently-playing.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-play-pause.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-play-pause.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-prev-next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-prev-next.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-repeat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-repeat.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-search.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-shuffle.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-shuffle.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/spotify-volume.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/spotify-volume.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/streamdeck-action.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/streamdeck-action.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/toggle-block.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/toggle-block.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-action.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-action.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-announce.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-announce.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-ban.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-ban.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-chat-clear.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-chat-clear.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-cheer.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-cheer.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-command.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-command.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-community-pay-forward.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-community-pay-forward.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-community-sub.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-community-sub.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-delete-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-delete-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-emote-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-emote-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-first-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-first-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-follow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-follow.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-followers-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-followers-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-game.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-game.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-gift-paid-upgrade.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-gift-paid-upgrade.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-host.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-host.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-hosted.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-hosted.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-info.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-message-delay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-message-delay.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-message-remove.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-message-remove.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-prime-community-gift.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-prime-community-gift.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-prime-paid-upgrade.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-prime-paid-upgrade.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-raid-cancel.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-raid-cancel.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-raid.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-raid.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-redemption.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-redemption.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-resub.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-resub.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-reward-gift.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-reward-gift.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-ritual.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-ritual.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-shoutout.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-shoutout.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-slow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-slow.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-standard-pay-forward.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-standard-pay-forward.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-sub-extend.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-sub-extend.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-sub-gift.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-sub-gift.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-sub.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-sub.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-subs-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-subs-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-timeout.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-timeout.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-unhost.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-unhost.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-unique-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-unique-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/twitch-whisper.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/twitch-whisper.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/usb-detection.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/usb-detection.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/variable-condition.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/variable-condition.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/variable-increment.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/variable-increment.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/variable-remove.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/variable-remove.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/variable-replace.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/variable-replace.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/variable-setter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/variable-setter.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/blocks/websocket-request.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/blocks/websocket-request.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/deprecated.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/deprecated.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/input.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/input.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/output.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/output.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-cooldown.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-cooldown.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-http-request.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-http-request.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-launch-app.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-launch-app.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-self-timer.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-self-timer.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-socket-request.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-socket-request.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-spotify-search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-spotify-search.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-twitch-game.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-twitch-game.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-twitch-info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-twitch-info.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-variable-condition.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-variable-condition.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-variable-increment.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-variable-increment.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-variable-remove.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-variable-remove.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-variable-replace.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-variable-replace.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-variable-setter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-variable-setter.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/both-websocket-request.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/both-websocket-request.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-audio-play.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-audio-play.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-audio-stop.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-audio-stop.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-discord-webhook-embed.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-discord-webhook-embed.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-discord-webhook-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-discord-webhook-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-kill-app.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-kill-app.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-notification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-notification.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-lock-source.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-lock-source.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-recording.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-recording.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-replay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-replay.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-save-replay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-save-replay.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-set-text.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-set-text.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-streaming.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-streaming.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-switch-scene.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-switch-scene.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-toggle-filter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-toggle-filter.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-toggle-source.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-toggle-source.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-virtualcam.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-obs-studio-virtualcam.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-open-url.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-open-url.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-spotify-add-to-queue.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-spotify-add-to-queue.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-spotify-play-pause.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-spotify-play-pause.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-spotify-prev-next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-spotify-prev-next.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-spotify-repeat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-spotify-repeat.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-spotify-shuffle.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-spotify-shuffle.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-spotify-volume.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-spotify-volume.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-toggle-block.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-toggle-block.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-action.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-action.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-announce.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-announce.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-ban.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-ban.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-chat-clear.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-chat-clear.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-delete-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-delete-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-emote-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-emote-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-followers-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-followers-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-host.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-host.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-info.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-message-delay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-message-delay.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-raid-cancel.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-raid-cancel.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-raid.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-raid.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-slow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-slow.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-subs-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-subs-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-timeout.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-timeout.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-unhost.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-unhost.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-unique-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-unique-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/inputs-twitch-whisper.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/inputs-twitch-whisper.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-app-status.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-app-status.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-launch.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-launch.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-connection.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-connection.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-exit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-exit.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-lock-source.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-lock-source.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-recording.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-recording.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-replay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-replay.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-save-replay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-save-replay.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-source-selected.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-source-selected.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-streaming.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-streaming.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-switch-scene.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-switch-scene.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-toggle-filter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-toggle-filter.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-toggle-source.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-toggle-source.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-virtualcam.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-obs-studio-virtualcam.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-toggle-block.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-toggle-block.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-action.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-action.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-announce.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-announce.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-ban.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-ban.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-chat-clear.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-chat-clear.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-cheer.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-cheer.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-command.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-command.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-community-pay-forward.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-community-pay-forward.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-community-sub.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-community-sub.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-emote-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-emote-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-first-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-first-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-follow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-follow.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-followers-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-followers-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-gift-paid-upgrade.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-gift-paid-upgrade.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-host.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-host.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-hosted.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-hosted.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-info.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-message-remove.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-message-remove.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-prime-community-gift.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-prime-community-gift.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-prime-paid-upgrade.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-prime-paid-upgrade.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-raid-cancel.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-raid-cancel.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-raid.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-raid.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-redemption.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-redemption.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-resub.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-resub.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-reward-gift.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-reward-gift.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-ritual.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-ritual.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-slow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-slow.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-standard-pay-forward.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-standard-pay-forward.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-sub-extend.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-sub-extend.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-sub-gift.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-sub-gift.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-sub.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-sub.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-subs-only.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-subs-only.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-timeout.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-timeout.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-unhost.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-unhost.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-unique-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-unique-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-twitch-whisper.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-twitch-whisper.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.0/outputs-usb-detection.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.0/outputs-usb-detection.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/both-discord-webhook-embed.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/both-discord-webhook-embed.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/both-discord-webhook-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/both-discord-webhook-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/both-download-file.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/both-download-file.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/both-file-read.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/both-file-read.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/both-spotify-current-queue.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/both-spotify-current-queue.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/both-spotify-currently-playing.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/both-spotify-currently-playing.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-file-write.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-file-write.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-kill-app.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-kill-app.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-obs-studio-set-browser.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-obs-studio-set-browser.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-obs-studio-set-image.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-obs-studio-set-image.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-obs-studio-set-media.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-obs-studio-set-media.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-twitch-action.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-twitch-action.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-twitch-announce.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-twitch-announce.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-twitch-message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-twitch-message.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/inputs-twitch-shoutout.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/inputs-twitch-shoutout.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/outputs-keyboard-shortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/outputs-keyboard-shortcut.webp -------------------------------------------------------------------------------- /docs/images/multi-actions/visuals/v2.1/outputs-streamdeck-action.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/multi-actions/visuals/v2.1/outputs-streamdeck-action.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.0/multi-actions.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.0/multi-actions.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.0/notifications.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.0/notifications.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.0/obs-studio.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.0/obs-studio.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.0/spotify.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.0/spotify.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.0/stream-flash.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.0/stream-flash.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.0/stream-widgets.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.0/stream-widgets.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.0/twitch.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.0/twitch.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.1/about.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.1/about.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.1/multi-actions.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.1/multi-actions.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.1/settings.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.1/settings.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.1/stream-flash.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.1/stream-flash.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.1/streamdeck.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.1/streamdeck.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.1/touchportal.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.1/touchportal.webp -------------------------------------------------------------------------------- /docs/images/screenshots/v2.1/twitch.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/docs/images/screenshots/v2.1/twitch.webp -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Scripts Manager Documentation 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 | 27 |
28 |
29 | 30 | Scripts Manager 31 | 32 |
33 | 34 | 35 |
36 | 37 |
    38 |
  • v2.0
  • 39 |
  • v2.1
  • 40 |
41 |
42 | 43 |
44 | 45 |
    46 |
  • EN
  • 47 |
  • FR
  • 48 |
49 |
50 |
51 |
52 | 53 | 56 | 57 |
58 |
59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /docs/js/main.js: -------------------------------------------------------------------------------- 1 | window.addEventListener('DOMContentLoaded', () => { 2 | const container = document.querySelector('#container'), 3 | nav = container.querySelector(':scope > nav'), 4 | menu = nav.querySelector(':scope > ul'), 5 | article = container.querySelector(':scope > article'), 6 | template = document.querySelector('#menu-item'), 7 | menu_item = template.innerText; 8 | 9 | template.remove(); 10 | article.addEventListener('scroll', menu_select); 11 | 12 | // select 13 | for (const select of document.querySelectorAll('[select]')) { 14 | const name = `select-${select.getAttribute('select')}`, 15 | label = select.querySelector(':scope > span'), 16 | list = select.querySelector(':scope > ul'); 17 | 18 | let selected = '', 19 | values = []; 20 | 21 | for (const item of list.querySelectorAll(':scope > li')) { 22 | const value = item.innerText; 23 | 24 | values.push(value); 25 | if (!selected && item.hasAttribute('selected')) { 26 | selected = value; 27 | } 28 | 29 | let storage = localStorage.getItem(name); 30 | if (storage) { 31 | selected = storage; 32 | } 33 | 34 | item.addEventListener('click', () => { 35 | list.classList.remove('is-active'); 36 | label.innerText = value; 37 | 38 | localStorage.setItem(name, value); 39 | list.dispatchEvent(new Event('change', { bubbles: true, cancelable: true })); 40 | }, false); 41 | } 42 | 43 | label.innerText = selected || (values.length ? values[0] : ' '); 44 | select.addEventListener('click', event => { 45 | if (event.target.nodeName.toLowerCase() !== 'li') { 46 | list.classList.toggle('is-active'); 47 | } 48 | }, false); 49 | } 50 | 51 | // langs 52 | let langs = []; 53 | for (const lang of document.querySelectorAll('[select="lang"] > ul > li')) { 54 | langs.push(lang.innerText); 55 | } 56 | document.querySelector('[select="lang"]').addEventListener('change', () => { 57 | load_page(); 58 | }, false); 59 | 60 | // versions 61 | let versions = []; 62 | for (const version of document.querySelectorAll('[select="version"] > ul > li')) { 63 | versions.push(version.innerText); 64 | } 65 | document.querySelector('[select="version"]').addEventListener('change', () => { 66 | load_page(); 67 | }, false); 68 | 69 | // load page 70 | load_page(() => { 71 | if (document.location.hash) { 72 | const anchor = article.querySelector(document.location.hash); 73 | if (anchor) { 74 | setTimeout(() => { 75 | anchor.scrollIntoView({ behavior: 'smooth' }, true); 76 | }, 250); 77 | } 78 | } 79 | }); 80 | 81 | // methods 82 | let menu_timeout = 0; 83 | function menu_select() { 84 | const anchors = article.querySelectorAll('[id]'); 85 | 86 | let anchor = anchors[0]; 87 | for (const item of anchors) { 88 | const top = item.offsetTop - 10; 89 | if (top <= article.scrollTop) { 90 | anchor = item; 91 | } else if (top > article.scrollTop) { 92 | break; 93 | } 94 | } 95 | 96 | const sublink = nav.querySelector(`li > a[href="#${anchor.getAttribute('id')}"]`), 97 | submenu = sublink ? sublink.parentElement : false; 98 | 99 | if (submenu) { 100 | clearTimeout(menu_timeout); 101 | menu_timeout = setTimeout(() => { 102 | let offset_top = 0, 103 | offset_height = sublink.offsetHeight; 104 | 105 | for (const item of nav.querySelectorAll('li.is-active')) { 106 | item.classList.remove('is-active'); 107 | } 108 | 109 | for (let id = 6, parent = submenu; id > 0 && parent; --id) { 110 | parent.classList.add('is-active'); 111 | parent = parent.parentElement.closest('li'); 112 | } 113 | 114 | for (let id = 6, parent = submenu; id > 0 && parent; --id) { 115 | offset_top += parent.offsetTop + parent.parentElement.offsetTop; 116 | parent = parent.parentElement.closest('li'); 117 | } 118 | offset_top -= menu.offsetTop; 119 | 120 | if (nav.scrollTop > (offset_top - offset_height) || (nav.scrollTop + nav.offsetHeight) < offset_top) { 121 | nav.scrollTo({ 122 | top: Math.max(0, (offset_top - (nav.offsetHeight / 2))), 123 | behavior: 'smooth' 124 | }); 125 | } 126 | }, 10); 127 | } 128 | } 129 | 130 | function load_page(callback) { 131 | const lang_label = document.querySelector('[select="lang"] > span'), 132 | version_label = document.querySelector('[select="version"] > span'); 133 | 134 | let page = document.location.search.substring(1); 135 | if (!/^[A-Z-]+$/gi.test(page)) { 136 | page = 'home'; 137 | } 138 | 139 | let lang = lang_label.innerText; 140 | if (langs.indexOf(lang) < 0) { 141 | lang = langs[0]; 142 | lang_label.innerText = lang; 143 | } 144 | 145 | let version = version_label.innerText; 146 | if (versions.indexOf(version) < 0) { 147 | version = versions.slice(-1)[0]; 148 | version_label.innerText = version; 149 | } 150 | 151 | fetch(`./pages/${lang}/${version}/${page}.html`) 152 | .then(res => { 153 | if (res.status === 200) { 154 | return res.text(); 155 | } 156 | }) 157 | .then(content => { 158 | if (typeof content !== 'undefined') { 159 | article.innerHTML = content; 160 | 161 | const template = document.createElement('div'); 162 | template.insertAdjacentHTML('beforeend', menu_item); 163 | 164 | setTimeout(() => { 165 | const menu_item = template.children[0], 166 | arbo = [], 167 | insert = (id, elem) => { 168 | if (!arbo.length) { 169 | arbo.push({ id, elem: elem.querySelector('ul') }); 170 | menu.appendChild(elem); 171 | } else if (arbo[arbo.length - 1].id < id) { 172 | arbo[arbo.length - 1].elem.appendChild(elem); 173 | arbo.push({ id, elem: elem.querySelector('ul') }); 174 | } else { 175 | arbo.pop(); 176 | insert(id, elem); 177 | } 178 | }; 179 | 180 | menu.innerHTML = ''; 181 | for (const header of article.querySelectorAll('h1 > a[id], h2 > a[id], h3 > a[id], h4 > a[id], h5 > a[id], h6 > a[id]')) { 182 | const id = parseInt(header.parentElement.nodeName[1]), 183 | elem = menu_item.cloneNode(true), 184 | a = elem.querySelector('a'); 185 | 186 | a.setAttribute('href', `#${header.getAttribute('id')}`); 187 | a.innerText = header.parentElement.innerText.split('-').slice(-1)[0]; 188 | 189 | insert(id, elem); 190 | } 191 | 192 | for (const submenu of menu.querySelectorAll('li > ul')) { 193 | if (!submenu.children.length) { 194 | submenu.parentElement.querySelector(':scope > .caret').remove(); 195 | submenu.remove(); 196 | } 197 | } 198 | 199 | menu_select(); 200 | if (callback) { 201 | callback(); 202 | } 203 | }, 100); 204 | } 205 | }); 206 | } 207 | }, false); -------------------------------------------------------------------------------- /env.json: -------------------------------------------------------------------------------- 1 | { 2 | "NODE_ENV": "development" 3 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "scripts-manager", 3 | "version": "2.1.1", 4 | "description": "Scripts Manager is a tool for streamers, developers, but also anyone who wants to automate actions on their computer.", 5 | "main": "main.js", 6 | "scripts": { 7 | "start": "cross-env NODE_TOOLS=1 electron .", 8 | "lint": "eslint --max-warnings=0 .", 9 | "lint:fix": "eslint --max-warnings=0 --fix .", 10 | "build": "npm run build:nsis && npm run build:portable", 11 | "build:dev": "npm run build:nsis:dev && npm run build:portable:dev", 12 | "build:nsis": "npm run remove-unpacked && electron-builder build --config.files=\"!env.json\" --win nsis", 13 | "build:nsis:dev": "npm run remove-unpacked && electron-builder build --win nsis", 14 | "build:portable": "npm run remove-unpacked && electron-builder build --config.files=\"!env.json\" --win portable", 15 | "build:portable:dev": "npm run remove-unpacked && electron-builder build --win portable", 16 | "remove-unpacked": "node -e \"require('node:fs').rmSync('./dist/win-unpacked', { force: true, recursive: true });\"" 17 | }, 18 | "repository": "https://github.com/Arubinu/Scripts-Manager", 19 | "keywords": [ 20 | "Scripts", 21 | "Manager", 22 | "Addons", 23 | "Scripts", 24 | "OBS", 25 | "Studio", 26 | "Touch", 27 | "Portal", 28 | "Spotify", 29 | "Stream", 30 | "Twitch", 31 | "Multi", 32 | "Actions", 33 | "Flash", 34 | "Widget" 35 | ], 36 | "author": "Alvin Pergens", 37 | "license": "GPL-3.0", 38 | "devDependencies": { 39 | "cross-env": "^7.0.3", 40 | "electron": "^19.0.6", 41 | "electron-builder": "^23.6.0", 42 | "eslint": "^8.33.0" 43 | }, 44 | "dependencies": { 45 | "@twurple/api": "^6.0.6", 46 | "@twurple/auth": "^6.0.6", 47 | "@twurple/chat": "^6.0.6", 48 | "@twurple/eventsub-ws": "^6.0.6", 49 | "@twurple/pubsub": "^6.0.6", 50 | "dgram": "^1.0.1", 51 | "discord.js": "^14.8.0", 52 | "electron-custom-notifications": "github:Arubinu/electron-custom-notifications", 53 | "electron-log": "^4.4.7", 54 | "electron-store": "^8.0.1", 55 | "node-global-key-listener": "^0.1.1", 56 | "obs-websocket-js": "^5.0.2", 57 | "read-ini-file": "^3.0.1", 58 | "spotify-web-api-node": "^5.0.2", 59 | "temp": "^0.9.4", 60 | "touchportal-api": "github:Arubinu/touchportal-node-api", 61 | "undici": "^5.5.1", 62 | "uniqid": "^5.4.0", 63 | "usb": "^2.4.3", 64 | "write-ini-file": "^3.0.2", 65 | "ws": "^8.13.0" 66 | }, 67 | "build": { 68 | "appId": "fr.arubinu42.scripts-manager", 69 | "productName": "Scripts-Manager", 70 | "copyright": "", 71 | "asar": true, 72 | "files": [ 73 | "!docs{,/**/*}", 74 | "!screenshot.png", 75 | "!**/*.{md,log,pfx,afphoto,code-workspace}" 76 | ], 77 | "extraFiles": [ 78 | { 79 | "from": "node_modules/file-type", 80 | "to": "node_modules/file-type", 81 | "filter": [ 82 | "**/*" 83 | ] 84 | }, 85 | { 86 | "from": "node_modules/strtok3", 87 | "to": "node_modules/strtok3", 88 | "filter": [ 89 | "**/*" 90 | ] 91 | }, 92 | { 93 | "from": "node_modules/token-types", 94 | "to": "node_modules/token-types", 95 | "filter": [ 96 | "**/*" 97 | ] 98 | }, 99 | { 100 | "from": "node_modules/peek-readable", 101 | "to": "node_modules/peek-readable", 102 | "filter": [ 103 | "**/*" 104 | ] 105 | }, 106 | { 107 | "from": "node_modules/ieee754", 108 | "to": "node_modules/ieee754", 109 | "filter": [ 110 | "**/*" 111 | ] 112 | } 113 | ], 114 | "afterPack": "./build/afterPack.js", 115 | "win": { 116 | "publisherName": "Arubinu", 117 | "artifactName": "${productName}_v${version}_installer.${ext}", 118 | "target": [ 119 | "nsis", 120 | "portable" 121 | ] 122 | }, 123 | "nsis": { 124 | "oneClick": false, 125 | "perMachine": false, 126 | "allowElevation": false, 127 | "packElevateHelper": false, 128 | "allowToChangeInstallationDirectory": true, 129 | "license": "build/license.txt", 130 | "uninstallDisplayName": "Scripts Manager v${version}" 131 | }, 132 | "portable": { 133 | "artifactName": "${productName}_v${version}_portable.${ext}" 134 | } 135 | }, 136 | "gitHooks": { 137 | "pre-push": "npm run lint" 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /public/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | About 10 | 11 | 12 | 36 | 37 | 38 | 39 |
40 |
41 |
42 |

This program allows you to have access to a multitude of features in one place.

43 |
44 |
45 | 46 |
47 |
48 | Thank you for using this tool, and feel free to suggest ideas for improvement ! 49 |
50 | 51 | 54 | 55 |
56 | 57 | Scripts Manager was designed to be completely free and open source. 58 |
So you can help me in this adventure by making a small donation. 59 |

Thank you for your support on GitHub: https://github.com/sponsors/Arubinu. 60 |
61 | 62 |
63 |
64 | Find the progress of this project on its GitHub page: 65 |
66 |
67 | 73 |
74 |
75 |
76 |
77 | You can also find me on my Twitch channel: 78 |
79 |
80 | 86 |
87 |
88 |
89 |
90 | To join the Discord (in French) of my channel: 91 |
92 |
93 | 99 |
100 |
101 | 102 |
103 |
104 |
105 | 106 | 107 |
108 |
109 | 110 |
111 |
112 | node 113 | 114 |
115 |
116 | 117 |
118 |
119 | electron 120 | 121 |
122 |
123 | 124 |
125 |
126 | chrome 127 | 128 |
129 |
130 |
131 |
132 |
133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /public/css/config.css: -------------------------------------------------------------------------------- 1 | @import 'share.css'; 2 | @import 'all.min.css'; 3 | @import 'bulma-dark.min.css'; 4 | 5 | *, 6 | *:focus { 7 | -webkit-tap-highlight-color: transparent; 8 | -moz-tap-highlight-color: transparent; 9 | -o-tap-highlight-color: transparent; 10 | tap-highlight-color: transparent; 11 | } 12 | 13 | html, body { 14 | overflow: hidden visible; 15 | color: #eee; 16 | background-color: transparent; 17 | } 18 | 19 | a:focus, 20 | input:focus, 21 | button:focus, 22 | textarea:focus { 23 | border: initial !important; 24 | box-shadow: none !important; 25 | } 26 | 27 | .is-selected { 28 | background-color: rgba(0, 0, 0, .5); 29 | } 30 | .is-narrow, 31 | .is-narrow-top { 32 | border-top: 1px solid #555; 33 | } 34 | .is-narrow, 35 | .is-narrow-bottom { 36 | border-bottom: 1px solid #555; 37 | } 38 | 39 | select option { 40 | background-color: #333; 41 | } 42 | 43 | .modal-card-foot, .modal-card-head { 44 | background-color: rgb(30, 32, 33); 45 | } 46 | .modal-card-body { 47 | background-color: rgb(24, 26, 27); 48 | } 49 | .modal-background { 50 | background-color: rgba(0, 0, 0, 0.65); 51 | } 52 | 53 | .container { 54 | max-width: initial !important; 55 | } 56 | 57 | .hero .subtitle .fas { 58 | line-height: 20px; 59 | cursor: pointer; 60 | } 61 | .hero .subtitle .select { 62 | margin-top: -5px; 63 | margin-bottom: -10px; 64 | } 65 | .hero .subtitle .select select { 66 | border-radius: 2px; 67 | } 68 | .hero .subtitle input, 69 | .hero .subtitle button, 70 | .hero .subtitle .select select { 71 | background-color: rgba(0, 0, 0, 0.7); 72 | } 73 | .select:not(.is-multiple):not(.is-loading)::after { 74 | border-color: #888; 75 | } 76 | -------------------------------------------------------------------------------- /public/css/share.css: -------------------------------------------------------------------------------- 1 | /* Scrollbar */ 2 | 3 | * { 4 | scrollbar-width: auto; 5 | scrollbar-color: rgb(42, 42, 42); 6 | } 7 | 8 | *::-webkit-scrollbar { 9 | margin-top: 3px; 10 | margin-bottom: 3px; 11 | width: 8px; 12 | } 13 | 14 | *::-webkit-scrollbar-track { 15 | background: transparent; 16 | } 17 | 18 | *::-webkit-scrollbar-thumb { 19 | background-color: rgb(42, 42, 42); 20 | border-radius: 0; 21 | border-top-left-radius: 12px; 22 | border-bottom-left-radius: 12px; 23 | outline: 2px solid rgb(255, 255, 255, .2); 24 | } 25 | 26 | /* Checkbox */ 27 | .switch { 28 | display: inline-block; 29 | position: relative; 30 | width: 48px; 31 | height: 24px; 32 | } 33 | 34 | .switch input { 35 | display: none; 36 | } 37 | 38 | .slider { 39 | position: absolute; 40 | top: 0; 41 | left: 0; 42 | right: 0; 43 | bottom: 0; 44 | background-color: #ccc; 45 | cursor: pointer; 46 | transition: .4s; 47 | } 48 | 49 | .slider:before { 50 | content: ''; 51 | position: absolute; 52 | left: 4px; 53 | bottom: 4px; 54 | width: 16px; 55 | height: 16px; 56 | background-color: #fff; 57 | transition: .4s; 58 | } 59 | 60 | input:checked + .slider { 61 | background-color: #66bb6a; 62 | } 63 | 64 | input:checked + .slider:before { 65 | transform: translateX(24px); 66 | } 67 | 68 | .slider.round { 69 | border-radius: 24px; 70 | outline: 1px solid rgba(255, 255, 255, .4); 71 | } 72 | 73 | .slider.round:before { 74 | border-radius: 50%; 75 | } 76 | -------------------------------------------------------------------------------- /public/css/styles.css: -------------------------------------------------------------------------------- 1 | @import 'share.css'; 2 | @import 'all.min.css'; 3 | @import 'bulma-dark.min.css'; 4 | 5 | html, body { 6 | overflow: hidden; 7 | } 8 | 9 | .is-fullheight { 10 | height: 100vh; 11 | min-height: 100vh; 12 | max-height: 100vh; 13 | } 14 | 15 | .menu-label { 16 | color: #2e2e2e; 17 | font-size: .8em; 18 | font-weight: bold; 19 | } 20 | 21 | .lateral-menu { 22 | position: fixed; 23 | top: 0px; 24 | left: 0px; 25 | bottom: 0px; 26 | width: 300px; 27 | border-right: 1px solid #666; 28 | outline: 1px solid #333; 29 | user-select: none; 30 | } 31 | .lateral-menu hr { 32 | height: 1px; 33 | margin: 1.5rem 1em; 34 | } 35 | .lateral-menu ul, 36 | .lateral-menu li { 37 | min-width: 100%; 38 | } 39 | .lateral-menu li { 40 | position: relative; 41 | } 42 | .lateral-menu > section { 43 | overflow-y: auto; 44 | width: 100%; 45 | min-height: 100%; 46 | } 47 | body[mode="development"] .lateral-menu > section { 48 | background-color: #b70f0f; 49 | } 50 | .lateral-menu > section > .hero-body { 51 | flex-direction: column; 52 | align-items: inherit !important; 53 | padding: 1.5em; 54 | color: #eee; 55 | } 56 | .lateral-menu a:hover { 57 | background-color: rgba(255, 255, 255, .2) !important; 58 | } 59 | .lateral-menu a.is-active { 60 | background-color: rgba(255, 255, 255, .3) !important; 61 | } 62 | .lateral-menu .switch { 63 | position: absolute; 64 | top: 6px; 65 | right: 6px; 66 | } 67 | 68 | .content { 69 | overflow: hidden scroll; 70 | position: relative; 71 | margin-left: 300px; 72 | padding: 0px; 73 | width: calc(100% - 300px + 8px); 74 | color: #eee; 75 | background-color: #363636; 76 | } 77 | .content.is-scrollbar { 78 | width: calc(100% - 300px); 79 | } 80 | 81 | .content > iframe { 82 | position: absolute; 83 | top: 0px; 84 | right: 0px; 85 | bottom: 0px; 86 | left: 0px; 87 | width: 100%; 88 | min-height: 100%; 89 | } 90 | 91 | [state]::before { 92 | content: ' '; 93 | position: absolute; 94 | left: -1.6rem; 95 | margin-right: .5rem; 96 | width: 18px; 97 | height: 18px; 98 | background-color: #fff; 99 | border: 1px solid rgba(0, 0, 0, .4); 100 | border-radius: 3px; 101 | } 102 | [state="connected"]::before { 103 | background-color: #3bcb42; 104 | } 105 | [state="warning"]::before { 106 | background-color: #cbc93b; 107 | } 108 | [state="disconnected"]::before { 109 | background-color: #b72b2b; 110 | } -------------------------------------------------------------------------------- /public/images/donation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/images/donation.png -------------------------------------------------------------------------------- /public/images/logo-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/images/logo-gray.png -------------------------------------------------------------------------------- /public/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/images/logo.png -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Scripts Manager 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 29 |
30 |
31 |
32 |
33 | 34 |
35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /public/settings.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Settings 10 | 11 | 12 | 13 | 14 | 15 | 31 | 32 | 48 | 49 |
50 |
51 |
52 |

Some basic Scripts Manager settings can be found here.

53 |
54 |
55 | 56 |
57 |
58 |
59 | 60 |
61 |
62 |
63 |
64 | 65 |
66 | 71 |
72 |
73 |
74 | 75 |
76 |
77 | 78 |
79 |
80 |
81 |
82 | 83 | 84 |
85 |
86 |
87 |
88 | 89 |
90 |
91 | 92 |
93 |
94 |
95 |
96 | 97 | 98 |
99 |
100 |
101 |
102 | 103 |
104 |
105 | 106 |
107 |
108 |
109 | 110 | 111 |
112 |
113 |
114 | 115 |
116 |
117 | 118 |
119 |
120 |
121 | 122 | 123 |
124 |
125 |
126 | 127 |
128 |
Attention, the following button completely resets Scripts Manager!
129 |
130 | 131 |
132 | 133 |
134 |
135 |
136 | 137 | 138 | 139 | -------------------------------------------------------------------------------- /public/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /public/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /public/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /public/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /public/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /public/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /public/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /public/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/public/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/screenshot.png -------------------------------------------------------------------------------- /scripts/multi-actions/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | name=Multi Actions 3 | version=1.1.0 4 | author=Arubinu 5 | addons=notifications,obs-studio,spotify,twitch 6 | methods=audio,usb,websocket 7 | enabled=false 8 | 9 | [settings] 10 | module= 11 | disabled[]= 12 | 13 | [actions] 14 | -------------------------------------------------------------------------------- /scripts/multi-actions/guide.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/guide.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/action.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/action.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/add.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/add.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/announce.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/announce.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/application.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/application.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/authentification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/authentification.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/ban.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/ban.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/button.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/button.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/chat-clear.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/chat-clear.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/command.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/command.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/connection.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/connection.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/cooldown.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/cooldown.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/crystals.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/crystals.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/download.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/download.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/emotes.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/emotes.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/empty.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/empty.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/exit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/exit.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/file.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/file.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/first.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/first.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/follow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/follow.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/game.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/game.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/host.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/host.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/info.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/kill.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/kill.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/launch.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/launch.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/locked.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/locked.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/message-remove.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/message-remove.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/message.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/message.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/music.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/music.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/next.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/next.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/notification.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/notification.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/open-url.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/open-url.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/picture.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/picture.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/play.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/play.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/playlist.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/playlist.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/prime.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/prime.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/raid-cancel.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/raid-cancel.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/raid.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/raid.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/recording.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/recording.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/redemption.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/redemption.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/rename.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/rename.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/repeat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/repeat.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/replay.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/replay.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/request.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/request.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/reward-gift.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/reward-gift.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/ritual.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/ritual.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/search.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/search.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/selected.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/selected.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/self-timer.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/self-timer.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/shoutout.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/shoutout.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/shuffle.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/shuffle.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/slow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/slow.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/stop.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/stop.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/streaming.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/streaming.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/studio.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/studio.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/subscribers.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/subscribers.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/text.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/text.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/timeout.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/timeout.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/toggle.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/toggle.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/unhost.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/unhost.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/variable-condition.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/variable-condition.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/variable-increment.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/variable-increment.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/variable-remove.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/variable-remove.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/variable-setter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/variable-setter.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/virtual-camera.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/virtual-camera.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/volume.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/volume.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/webhook.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/webhook.webp -------------------------------------------------------------------------------- /scripts/multi-actions/icons/whisper.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Arubinu/Scripts-Manager/aa3e050a6b5b1248cd1e199703795c89ad5b1fc3/scripts/multi-actions/icons/whisper.webp -------------------------------------------------------------------------------- /scripts/multi-actions/libs/drawflow.min.css: -------------------------------------------------------------------------------- 1 | .drawflow,.drawflow .parent-node{position:relative}.parent-drawflow{display:flex;overflow:hidden;touch-action:none;outline:0}.drawflow{width:100%;height:100%;user-select:none;perspective:0}.drawflow .drawflow-node{display:flex;align-items:center;position:absolute;background:#0ff;width:160px;min-height:40px;border-radius:4px;border:2px solid #000;color:#000;z-index:2;padding:15px}.drawflow .drawflow-node.selected{background:red}.drawflow .drawflow-node:hover{cursor:move}.drawflow .drawflow-node .inputs,.drawflow .drawflow-node .outputs{width:0}.drawflow .drawflow-node .drawflow_content_node{width:100%;display:block}.drawflow .drawflow-node .input,.drawflow .drawflow-node .output{position:relative;width:20px;height:20px;background:#fff;border-radius:50%;border:2px solid #000;cursor:crosshair;z-index:1;margin-bottom:5px}.drawflow .drawflow-node .input{left:-27px;top:2px;background:#ff0}.drawflow .drawflow-node .output{right:-3px;top:2px}.drawflow svg{z-index:0;position:absolute;overflow:visible!important}.drawflow .connection{position:absolute;pointer-events:none;aspect-ratio:1/1}.drawflow .connection .main-path{fill:none;stroke-width:5px;stroke:#4682b4;pointer-events:all}.drawflow .connection .main-path:hover{stroke:#1266ab;cursor:pointer}.drawflow .connection .main-path.selected{stroke:#43b993}.drawflow .connection .point{cursor:move;stroke:#000;stroke-width:2;fill:#fff;pointer-events:all}.drawflow .connection .point.selected,.drawflow .connection .point:hover{fill:#1266ab}.drawflow .main-path{fill:none;stroke-width:5px;stroke:#4682b4}.drawflow-delete{position:absolute;display:block;width:30px;height:30px;background:#000;color:#fff;z-index:4;border:2px solid #fff;line-height:30px;font-weight:700;text-align:center;border-radius:50%;font-family:monospace;cursor:pointer}.drawflow>.drawflow-delete{margin-left:-15px;margin-top:15px}.parent-node .drawflow-delete{right:-15px;top:-15px} -------------------------------------------------------------------------------- /scripts/multi-actions/libs/drawflow.style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --border-color: rgb(63, 68, 71); 3 | --background-color: rgb(24, 26, 27); 4 | 5 | --background-box-title: rgb(54, 59, 61); 6 | } 7 | 8 | .drawflow .drawflow-node { 9 | background: var(--background-color); 10 | border: 1px solid var(--border-color); 11 | -webkit-box-shadow: 0 2px 5px 2px rgba(0, 0, 0, .3); 12 | box-shadow: 0 2px 5px 2px rgba(0, 0, 0, .3); 13 | padding: 0px; 14 | width: 200px; 15 | color: rgb(200, 200, 200); 16 | } 17 | 18 | .drawflow .drawflow-node .no-box .title-box { 19 | border-bottom: none; 20 | } 21 | .drawflow .drawflow-node .no-box .title-box::before { 22 | height: calc(100% + 1px); 23 | border-bottom-left-radius: 4px; 24 | } 25 | 26 | .drawflow .drawflow-node.selected { 27 | background: transparent; 28 | border: 1px solid rgba(149, 165, 166, .5); 29 | -webkit-box-shadow: 0 2px 20px 2px rgba(149, 165, 166, .5); 30 | box-shadow: 0 2px 20px 2px rgba(149, 165, 166, .5); 31 | z-index: 5; 32 | } 33 | 34 | .drawflow .drawflow-node.selected .title-box { 35 | /*color: #22598c;*/ 36 | border-bottom: 1px solid #4ea9ff; 37 | } 38 | 39 | .drawflow .connection .main-path { 40 | stroke: #4ea9ff; 41 | stroke-width: 3px; 42 | } 43 | 44 | .drawflow .drawflow-node .input, .drawflow .drawflow-node .output { 45 | margin: 0px !important; 46 | padding: 0.38em !important; 47 | height: 15px; 48 | width: 15px; 49 | background: rgb(150, 150, 150); 50 | border: 2px solid var(--border-color); 51 | } 52 | 53 | .drawflow .drawflow-node .input:hover, .drawflow .drawflow-node .output:hover { 54 | background: #4ea9ff; 55 | } 56 | 57 | .drawflow .drawflow-node .output { 58 | right: 7px; 59 | } 60 | 61 | .drawflow .drawflow-node .input { 62 | left: -9px; 63 | } 64 | 65 | .drawflow > .drawflow-delete { 66 | color: rgb(50, 50, 50); 67 | font-family: inherit; 68 | font-size: 22px; 69 | line-height: 21px; 70 | background: rgb(192, 57, 43); 71 | border: 2px solid rgb(192, 57, 43); 72 | box-shadow: none; 73 | } 74 | 75 | .drawflow-delete { 76 | color: rgb(50, 50, 50); 77 | font-family: inherit; 78 | font-size: 22px; 79 | line-height: 21px; 80 | background: #4ea9ff; 81 | border: 2px solid #4ea9ff; 82 | box-shadow: none; 83 | } 84 | 85 | .drawflow-node .title-box { 86 | overflow: hidden; 87 | padding-right: 10px; 88 | height: 50px; 89 | text-overflow: ellipsis; 90 | line-height: 50px; 91 | word-break: break-all; 92 | white-space: nowrap; 93 | background: var(--background-box-title); 94 | border-bottom: 1px solid rgb(54, 59, 61); 95 | border-radius: 4px 4px 0px 0px; 96 | padding-left: 16px; 97 | } 98 | .drawflow-node.disabled .title-box { 99 | background-image: repeating-linear-gradient(45deg, rgba(0, 0, 0, .15), rgba(0, 0, 0, .15) 5px, transparent 5px, transparent 10px); 100 | } 101 | .drawflow-node.helper .title-box:hover img, 102 | .drawflow-node.helper .title-box:not(:hover) .help { 103 | display: none !important; 104 | } 105 | .drawflow-node .title-box .help { 106 | display: inline-block; 107 | margin-left: 5px; 108 | margin-right: 10px; 109 | height: 1.5em; 110 | vertical-align: -3px; 111 | font-size: 1.5rem; 112 | } 113 | .drawflow-node .title-box img { 114 | margin-left: 5px; 115 | margin-right: 10px; 116 | height: 1.5em; 117 | vertical-align: -6px; 118 | filter: invert(.8) drop-shadow(2px 2px 6px rgba(0, 0, 0, .6)); 119 | } 120 | .drawflow .title-box svg { 121 | position: initial; 122 | } 123 | .drawflow-node .box { 124 | padding: 10px 20px; 125 | font-size: 14px; 126 | color: rgba(255, 255, 255, .5); 127 | border-top-left-radius: 0; 128 | border-top-right-radius: 0; 129 | box-shadow: none !important; 130 | } 131 | .drawflow-node .box p { 132 | margin-top: 5px; 133 | margin-bottom: 5px; 134 | } 135 | .drawflow-node .box p > .fas { 136 | float: right; 137 | line-height: 1.4rem; 138 | cursor: pointer; 139 | } 140 | .drawflow-node.welcome { 141 | width: 250px; 142 | } 143 | 144 | .drawflow-node.slack .title-box { 145 | border-radius: 4px; 146 | } 147 | 148 | .drawflow-node input, .drawflow-node select, .drawflow-node textarea { 149 | margin: 0px -20px; 150 | padding: 0px 6px; 151 | width: calc(100% + (2 * 20px)); 152 | height: 30px; 153 | color: rgba(255, 255, 255, .4); 154 | font-size: 16px; 155 | line-height: 30px; 156 | background-color: rgba(0, 0, 0, .2); 157 | border: 1px solid #252525; 158 | border-left: none; 159 | border-right: none; 160 | border-radius: none; 161 | } 162 | .drawflow-node input:focus, .drawflow-node select:focus, .drawflow-node textarea:focus { 163 | outline: none; 164 | } 165 | 166 | .drawflow-node textarea { 167 | height: 100px; 168 | } 169 | 170 | .drawflow-node.personalized { 171 | background: red; 172 | height: 200px; 173 | text-align: center; 174 | color: white; 175 | } 176 | .drawflow-node.personalized .input { 177 | background: yellow; 178 | } 179 | .drawflow-node.personalized .output { 180 | background: green; 181 | } 182 | 183 | .drawflow-node.personalized.selected { 184 | background: blue; 185 | } 186 | 187 | .drawflow .connection .point { 188 | stroke: var(--border-color); 189 | stroke-width: 2; 190 | fill: white; 191 | 192 | } 193 | 194 | .drawflow .connection .point.selected, .drawflow .connection .point:hover { 195 | fill: #4ea9ff; 196 | } 197 | -------------------------------------------------------------------------------- /scripts/multi-actions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "multi-actions", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "script.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Arubinu", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "electron": "^19.0.6" 13 | }, 14 | "dependencies": { 15 | "dgram": "^1.0.1", 16 | "discord.js": "^14.8.0", 17 | "node-global-key-listener": "^0.1.1", 18 | "temp": "^0.9.4", 19 | "undici": "^5.5.1", 20 | "ws": "^8.13.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /scripts/stream-flash/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | name=Stream Flash 3 | version=1.0.1 4 | author=Arubinu 5 | addons=twitch 6 | methods=websocket 7 | enabled=false 8 | 9 | [menu] 10 | reconnect=Reconnect 11 | next=Next Screen 12 | 13 | [settings] 14 | screen=0 15 | delay=15 16 | pause=1 17 | duration=400 18 | join=false 19 | command=false 20 | 21 | [statistics] 22 | flash=0 23 | viewer=0 24 | subscriber=0 25 | moderator=0 26 | -------------------------------------------------------------------------------- /scripts/stream-flash/flash/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 19 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /scripts/stream-flash/flash/preload.js: -------------------------------------------------------------------------------- 1 | const { ipcRenderer } = require('electron'); 2 | 3 | ipcRenderer.on('flash', (event, data) => { 4 | document.body.removeAttribute('class'); 5 | setTimeout(() => { document.body.classList.add(data || 'flash'); }, 20); 6 | }); 7 | 8 | ipcRenderer.on('opacity', (event, data) => { 9 | document.body.removeAttribute('class'); 10 | document.querySelector('#keyframes').innerHTML = ` 11 | @keyframes flash { from { background: transparent; } to { background: rgba(255, 255, 255, ${(data / 100).toFixed(2)}); } } 12 | @keyframes connected { from { background: transparent; } to { background: rgba(0, 255, 0, ${(data / 100).toFixed(2)}); } } 13 | @keyframes disconnected { from { background: transparent; } to { background: rgba(255, 0, 0, ${(data / 100).toFixed(2)}); } } 14 | `; 15 | }); 16 | 17 | ipcRenderer.on('duration', (event, data) => { 18 | document.body.removeAttribute('class'); 19 | document.querySelector('#animations').innerHTML = ` 20 | body.flash { animation: ${data}ms linear 0s 2 alternate flash; } 21 | body.connected { animation: ${data}ms linear 0s 2 alternate connected; } 22 | body.disconnected { animation: ${data}ms linear 0s 2 alternate disconnected; } 23 | `; 24 | }); 25 | -------------------------------------------------------------------------------- /scripts/stream-flash/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stream-flash", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "script.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Arubinu", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "electron": "^19.0.6" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /scripts/stream-flash/script.js: -------------------------------------------------------------------------------- 1 | const path = require('node:path'), 2 | { screen, BrowserWindow } = require('electron'); 3 | 4 | let win = null, 5 | _last = 0, 6 | _menu = [], 7 | _pause = 0, 8 | _screen = 0, 9 | _config = {}, 10 | _sender = null, 11 | _default = { 12 | settings: { 13 | screen: 0, 14 | delay: 15, 15 | pause: 1, 16 | opacity: 80, 17 | duration: 400, 18 | join: false, 19 | command: true 20 | }, 21 | statistics: { 22 | flash: 0, 23 | viewer: 0, 24 | follower: 0, 25 | subscriber: 0, 26 | moderator: 0 27 | } 28 | }; 29 | 30 | function is_numeric(n) { 31 | return (!isNaN(parseFloat(n)) && isFinite(n)); 32 | } 33 | 34 | function create_window() { 35 | win = new BrowserWindow({ 36 | show: false, 37 | width: 1920, 38 | height: 1080, 39 | movable: false, 40 | closable: false, 41 | focusable: false, 42 | hasShadow: false, 43 | resizable: false, 44 | thickFrame: false, 45 | skipTaskbar: true, 46 | transparent: true, 47 | titleBarStyle: 'hidden', 48 | webPreferences: { 49 | preload: path.join(__dirname, 'flash', 'preload.js') 50 | } 51 | }); 52 | 53 | _screen = _config.settings.screen; 54 | next_screen(_screen); 55 | 56 | win.setMenu(null); 57 | win.setIgnoreMouseEvents(true); 58 | win.loadFile(path.join(__dirname, 'flash', 'index.html')).then(() => { 59 | set_opacity(_config.settings.opacity); 60 | set_duration(_config.settings.duration); 61 | 62 | win.setAlwaysOnTop(true, 'screen-saver'); 63 | win.setVisibleOnAllWorkspaces(true); 64 | win.show(); 65 | }); 66 | setInterval(() => { 67 | if (_config.default.enabled) { 68 | try { 69 | win.setAlwaysOnTop(true, 'screen-saver'); 70 | win.setVisibleOnAllWorkspaces(true); 71 | } catch (e) {} 72 | } 73 | }, 100); 74 | } 75 | 76 | function update_menu() { 77 | _sender('manager', 'menu', [ 78 | { label: 'Pause', type: 'checkbox', click : item => { 79 | clearTimeout(_pause); 80 | _pause = 0; 81 | 82 | if (item.checked) { 83 | _pause = setTimeout(() => { 84 | _pause = 0; 85 | item.checked = false; 86 | }, (_config.settings.pause * 1000 * 60)); 87 | } 88 | }, checked: !!_pause }, 89 | { label: 'Next Screen', click : () => { 90 | next_screen(); 91 | update_interface(); 92 | save_config(); 93 | 94 | flash_screen(false, true); 95 | } } 96 | ]).then(); 97 | } 98 | 99 | function update_interface() { 100 | const screens = screen.getAllDisplays(); 101 | 102 | _sender('message', 'config', _config); 103 | _sender('message', 'screens', screens.length); 104 | } 105 | 106 | function save_config() { 107 | _sender('manager', 'config', _config); 108 | } 109 | 110 | function set_opacity(opacity) { 111 | opacity = Math.max(0, Math.min(100, opacity)); 112 | win.webContents.send('opacity', opacity); 113 | } 114 | 115 | function set_duration(duration) { 116 | duration = Math.max(100, duration); 117 | win.webContents.send('duration', duration); 118 | } 119 | 120 | function next_screen(index) { 121 | const screens = screen.getAllDisplays(); 122 | if (typeof index === 'undefined') { 123 | _screen = ((_screen + 1) % screens.length); 124 | _config.settings.screen = _screen; 125 | } else { 126 | _screen = ((index < screens.length) ? index : 0); 127 | } 128 | 129 | const bounds = screens[_screen].bounds; 130 | win.setPosition(bounds.x, bounds.y); 131 | win.setMinimumSize(bounds.width, bounds.height); // fix 132 | win.setSize(bounds.width, bounds.height); 133 | } 134 | 135 | function flash_screen(name, force) { 136 | let now = Date.now(); 137 | if (force || !_last || (_last + (_config.settings.delay * 1000)) < now) { 138 | _last = now + (force ? 1000 : 0); 139 | win.webContents.send('flash', name); 140 | return true; 141 | } 142 | 143 | return false; 144 | } 145 | 146 | 147 | module.exports = { 148 | init: (origin, config, sender) => { 149 | _sender = sender; 150 | _config = config; 151 | 152 | for (const section in _default) { 153 | if (typeof _config[section] !== 'object') { 154 | _config[section] = {}; 155 | } 156 | 157 | for (const name in _default[section]) { 158 | const config_value = _config[section][name]; 159 | const default_value = _default[section][name]; 160 | const config_type = typeof config_value; 161 | const default_type = typeof default_value; 162 | if (config_type !== default_type) { 163 | if (default_type === 'number' && config_type === 'string' && is_numeric(config_value)) { 164 | _config[section][name] = parseFloat(config_value); 165 | } else { 166 | _config[section][name] = default_value; 167 | } 168 | } 169 | } 170 | } 171 | 172 | _config.settings.delay = Math.max(1, _config.settings.delay); 173 | _config.settings.opacity = Math.max(0, Math.min(100, _config.settings.opacity)); 174 | _config.settings.duration = Math.max(100, _config.settings.duration); 175 | }, 176 | initialized: () => { 177 | update_menu(); 178 | create_window(); 179 | }, 180 | receiver: (id, name, data) => { 181 | if (id === 'manager') { 182 | if (name === 'show') { 183 | update_interface(); 184 | } else if (name === 'enabled') { 185 | _config.default.enabled = data; 186 | } 187 | } else if (id === 'message') { 188 | if (typeof data === 'object') { 189 | const name = Object.keys(data)[0]; 190 | if (typeof data[name] === typeof _config.settings[name]) { 191 | _config.settings[name] = data[name]; 192 | } 193 | save_config(); 194 | 195 | if (name === 'screen') { 196 | next_screen(data.screen); 197 | flash_screen(false, true); 198 | } else if (name === 'opacity') { 199 | set_opacity(data.opacity); 200 | } else if (name === 'duration') { 201 | set_duration(data.duration); 202 | } 203 | } else if (data === 'reset') { 204 | _config.statistics.flash = 0; 205 | _config.statistics.viewer = 0; 206 | _config.statistics.follower = 0; 207 | _config.statistics.subscriber = 0; 208 | _config.statistics.moderator = 0; 209 | 210 | update_interface(); 211 | save_config(); 212 | } 213 | } else if (id === 'methods') { 214 | if (name === 'websocket') { 215 | if (typeof data === 'object' && data.target === 'stream-flash') { 216 | if (data.name === 'pause') { 217 | const state = (typeof data.data === 'object' && typeof data.data.state === 'boolean') ? data.data.state : !_pause, 218 | delay = (typeof data.data === 'object' && typeof data.data.delay === 'number' && data.data.delay > 0) ? data.data.delay : _config.settings.pause; 219 | 220 | clearTimeout(_pause); 221 | _pause = 0; 222 | 223 | if (state) { 224 | _pause = setTimeout(() => { 225 | _pause = 0; 226 | }, (delay * 1000 * 60)); 227 | } 228 | 229 | update_menu(); 230 | } else if (data.name === 'next-screen') { 231 | next_screen(); 232 | update_interface(); 233 | save_config(); 234 | 235 | flash_screen(false, true); 236 | } 237 | } 238 | } 239 | 240 | return; 241 | } 242 | 243 | if (_config.default.enabled) { 244 | if (id === 'twitch' && name === 'AuthenticationSuccess') { 245 | flash_screen('connected', true); 246 | } else if (id === 'twitch' && (name === 'AuthenticationFailure' || name === 'Disconnected')) { 247 | flash_screen('disconnected', true); 248 | } 249 | 250 | if (id === 'twitch' && (name === 'Message' || (_config.settings.join && name === 'Join') || (_config.settings.command && name === 'Command'))) { 251 | if (_pause || !flash_screen()) { 252 | return; 253 | } 254 | 255 | ++_config.statistics.flash; 256 | 257 | if (data.flags) { 258 | let viewer = !data.flags.broadcaster; 259 | if (data.flags.moderator && !(viewer = false)) { 260 | ++_config.statistics.moderator; 261 | } 262 | if (data.flags.subscriber && !(viewer = false)) { 263 | ++_config.statistics.subscriber; 264 | } 265 | if (data.flags.follower && !(viewer = false)) { 266 | ++_config.statistics.follower; 267 | } 268 | 269 | if (viewer) { 270 | ++_config.statistics.viewer; 271 | } 272 | } 273 | 274 | update_interface(); 275 | save_config(); 276 | } 277 | } 278 | } 279 | }; 280 | -------------------------------------------------------------------------------- /scripts/stream-widgets/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | name=Stream Widgets 3 | version=1.0.0 4 | author=Arubinu 5 | methods=websocket 6 | enabled=false 7 | 8 | [settings] 9 | screen=0 10 | 11 | [presets] 12 | 13 | [widgets] 14 | -------------------------------------------------------------------------------- /scripts/stream-widgets/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stream-widgets", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "script.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Arubinu", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "electron": "^19.0.6" 13 | }, 14 | "dependencies": { 15 | "node-global-key-listener": "^0.1.1", 16 | "uniqid": "^5.4.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /scripts/stream-widgets/script.js: -------------------------------------------------------------------------------- 1 | const path = require('node:path'), 2 | uniqid = require('uniqid'), 3 | keyevents = require('node-global-key-listener').GlobalKeyboardListener, 4 | { screen, BrowserWindow, ipcMain } = require('electron'); 5 | 6 | let win = null, 7 | _edit = false, 8 | _screen = 0, 9 | _config = {}, 10 | _sender = null, 11 | _default = { 12 | settings: { 13 | screen: 0 14 | }, 15 | presets: {}, 16 | widgets: {} 17 | }; 18 | 19 | function is_numeric(n) { 20 | return (!isNaN(parseFloat(n)) && isFinite(n)); 21 | } 22 | 23 | function create_window() { 24 | win = new BrowserWindow({ 25 | show: false, 26 | width: 1920, 27 | height: 1080, 28 | movable: false, 29 | closable: false, 30 | focusable: false, 31 | hasShadow: false, 32 | resizable: false, 33 | thickFrame: false, 34 | skipTaskbar: true, 35 | transparent: true, 36 | titleBarStyle: 'hidden', 37 | webPreferences: { 38 | preload: path.join(__dirname, 'widgets', 'preload.js') 39 | } 40 | }); 41 | 42 | _screen = _config.settings.screen; 43 | next_screen(_screen); 44 | 45 | win.setMenu(null); 46 | win.setIgnoreMouseEvents(true); 47 | win.loadFile(path.join(__dirname, 'widgets', 'index.html')).then(() => { 48 | ipcMain.handle('edit', (event, data) => { 49 | if (typeof _config.widgets[data.id] !== 'undefined') { 50 | let widget = JSON.parse(_config.widgets[data.id]); 51 | for (const attr of ['x', 'y', 'width', 'height']) { 52 | if (typeof data[attr] !== 'undefined') { 53 | widget[attr] = data[attr]; 54 | } 55 | } 56 | 57 | _config.widgets[data.id] = JSON.stringify(widget); 58 | _sender('message', 'add', { id: data.id, widget: _config.widgets[data.id] }); 59 | save_config(); 60 | } 61 | }); 62 | 63 | for (const widget_index in _config.widgets) { 64 | const widget = JSON.parse(_config.widgets[widget_index]); 65 | win.webContents.send('add', { id: widget_index, widget }); 66 | } 67 | 68 | //win.webContents.openDevTools(); 69 | win.webContents.send('enabled', _config.default.enabled); 70 | win.setAlwaysOnTop(true, 'screen-saver'); 71 | win.setVisibleOnAllWorkspaces(true); 72 | win.show(); 73 | }); 74 | setInterval(() => { 75 | if (_config.default.enabled) { 76 | try { 77 | win.setAlwaysOnTop(true, 'screen-saver'); 78 | win.setVisibleOnAllWorkspaces(true); 79 | } catch (e) {} 80 | } 81 | }, 100); 82 | } 83 | 84 | function update_interface() { 85 | const screens = screen.getAllDisplays(); 86 | 87 | _sender('message', 'config', _config); 88 | _sender('message', 'screens', screens.length); 89 | } 90 | 91 | function save_config() { 92 | _sender('manager', 'config:override', _config); 93 | } 94 | 95 | function next_screen(index) { 96 | const screens = screen.getAllDisplays(); 97 | if (typeof index === 'undefined') { 98 | _screen = ((_screen + 1) % screens.length); 99 | _config.settings.screen = _screen; 100 | } else { 101 | _screen = ((index < screens.length) ? index : 0); 102 | } 103 | 104 | const bounds = screens[_screen].bounds; 105 | win.setPosition(bounds.x, bounds.y); 106 | win.setMinimumSize(bounds.width, bounds.height); // fix 107 | win.setSize(bounds.width, bounds.height); 108 | 109 | win.webContents.send('flash'); 110 | } 111 | 112 | function edit_widget(name, callback) { 113 | for (const id in _config.widgets) { 114 | const widget = JSON.parse(_config.widgets[id]); 115 | if (widget.name === name) { 116 | callback(widget); 117 | 118 | _config.widgets[id] = JSON.stringify(widget); 119 | win.webContents.send('add', { id, widget }); 120 | 121 | update_interface(); 122 | save_config(); 123 | 124 | break; 125 | } 126 | } 127 | } 128 | 129 | 130 | module.exports = { 131 | init: (origin, config, sender) => { 132 | _sender = sender; 133 | _config = config; 134 | 135 | for (const section in _default) { 136 | if (typeof _config[section] !== 'object') { 137 | _config[section] = {}; 138 | } 139 | 140 | for (const name in _default[section]) { 141 | const config_value = _config[section][name]; 142 | const default_value = _default[section][name]; 143 | const config_type = typeof config_value; 144 | const default_type = typeof default_value; 145 | if (config_type !== default_type) { 146 | if (default_type === 'number' && config_type === 'string' && is_numeric(config_value)) { 147 | _config[section][name] = parseFloat(config_value); 148 | } else { 149 | _config[section][name] = default_value; 150 | } 151 | } 152 | } 153 | } 154 | }, 155 | initialized: () => { 156 | _sender('manager', 'menu', [ { label: 'Edit Mode', click : () => { 157 | if (_config.default.enabled) { 158 | _edit = true; 159 | win.setIgnoreMouseEvents(!_edit); 160 | win.webContents.send('edit', _edit); 161 | } 162 | } }, { label: 'Next Screen', click : () => { 163 | next_screen(); 164 | update_interface(); 165 | save_config(); 166 | } }]); 167 | 168 | (new keyevents()).addListener(event => { 169 | if (event.name === 'ESCAPE' && event.state === 'DOWN') { 170 | _edit = false; 171 | win.setIgnoreMouseEvents(!_edit); 172 | win.webContents.send('edit', _edit); 173 | } 174 | }); 175 | 176 | create_window(); 177 | }, 178 | receiver: (id, name, data) => { 179 | if (id === 'manager') { 180 | if (name === 'show') { 181 | update_interface(); 182 | } else if (name === 'enabled') { 183 | _config.default.enabled = data; 184 | win.webContents.send('enabled', _config.default.enabled); 185 | } 186 | } else if (name === 'websocket') { 187 | if (typeof data === 'object' && data.target === 'stream-widgets') { 188 | if (data.name === 'toggle-widget' && typeof data.data === 'object' && typeof data.data.name === 'string') { 189 | edit_widget(data.data.name, widget => { 190 | widget.hide = (typeof data.data.state === 'boolean') ? !data.data.state : !widget.hide; 191 | }); 192 | } else if (data.name === 'replace-url' && typeof data.data === 'object' && typeof data.data.name === 'string' && typeof data.data.url === 'string') { 193 | edit_widget(data.data.name, widget => { 194 | widget.url = data.data.url; 195 | }); 196 | } else if (data.name === 'next-screen') { 197 | next_screen(); 198 | update_interface(); 199 | save_config(); 200 | } 201 | } 202 | } 203 | 204 | if (id === 'message') { 205 | if (typeof data === 'object') { 206 | const name = Object.keys(data)[0]; 207 | 208 | if (name === 'create') { 209 | const id = uniqid(); 210 | _config.widgets[id] = data[name].widget; 211 | win.webContents.send('add', { id, widget: JSON.parse(_config.widgets[id]) }); 212 | _sender('message', 'add', { id, widget: _config.widgets[id] }); 213 | } else if (name === 'update') { 214 | const id = data[name].id; 215 | _config.widgets[id] = data[name].widget; 216 | win.webContents.send('add', { id, widget: JSON.parse(_config.widgets[id]) }); 217 | } else if (name === 'delete') { 218 | const id = data[name].id; 219 | delete _config.widgets[id]; 220 | win.webContents.send('remove', { id }); 221 | } else if (typeof data[name] === typeof _config.settings[name]) { 222 | _config.settings[name] = data[name]; 223 | } 224 | save_config(); 225 | 226 | if (name === 'screen') { 227 | next_screen(data.screen); 228 | } 229 | } 230 | } 231 | } 232 | }; 233 | -------------------------------------------------------------------------------- /scripts/stream-widgets/widgets/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 104 | 105 | 106 | 107 |
108 |
109 |
110 |
111 |
112 |
113 | 114 |
115 |
116 | 117 | 118 | 119 | --------------------------------------------------------------------------------