subd - a place to reward your subscribers from any platform

Overview

subd

subd's goal is to create a link between the various ways viewers support you as a live content creator, and the interactions that can be triggered from various forms for support.

Interactions:

  • Twitch viewers, subs, donators, memers,
  • Github Sponsors
  • Twitter supporters/shit-posters
  • Youtube comment Warriors/Tik-Tok Comment Therapists
  • Discord Commentors
  • <more>

Integrations You Can Trigger:

  • OBS
  • Browser Source
  • Twitch Chat+Moderation
  • Discord
  • Twitter
  • Neovim
  • Whatever we want!!!!

Status

We are developing this on the Twitch streams: teej_dv and beginbot

Development / Running

There are several steps required to set up subd. See Developers for more information.


Commands

The commands available from Twitch Chat, what they do, and how they work.

!scroll

!scroll SOURCE SCROLL_SETTING speed duration

Scroll Settings:

  • speed_x
  • speed_y

Real Examples:

// Scroll the "begin source
// along "x" at a speed of "500",
// taking "10000" milliseconds to reach full speed
!scroll begin speed_x 500 10000

// speed_y is the other SCROLL_SETTING
!scroll begin speed_y 100 1000

// You can also use the x and y shorthand
!scroll begin x 5 300
!scroll begin y 50 3000

// This is examples of stopping the scroll
!scroll begin x 0
!scroll begin y 0

!scroll primetime x 500

!blur & !unblur

Blur or Unblur the source passed in.

!blur primetime 100

!move snoop 500 500

!scale snoop 200 200

!blur SOURCE AMOUNT DURATION_TO_REACH_BLUR_AMOUNT

If you send in the Blur amount to 0, it's unbluring. !unblur SOURCE and !noblur SOURCE do the same.

!blur begin 50
!blur begin
!blur begin 100 // This is the same as no value passed in
!unblur begin
!noblur begin

!grow & !scale

Scale a Source using the actual OBS source settings, and no other filters

!scale SOURCE X Y

Scales the source's X and Y dimensions as a percentage of the total size. So 1.0 is the original size of the Object. !scale SOURCE 0.5 0.5 is shrinking the objects size by half for both the X & Y dimension.

!scale begin 0.5 0.5
!scale begin 1 1
!scale begin 1.1 0.2

!3d

Requires the Stream FX Plugin

Affect the 3D Transform Filter Settings.

Format:

!3d SOURCE FILTER_NAME FILTER_VALUE DURATION

Effect: Zoom in Close

!3d begin Scale.X 400
!3d begin Scale.Y 400
!3d begin Position.X -150

!3d begin Scale.X 100
!3d begin Scale.Y 100
!3d begin Position.X 0

Effect: Rotation a lot one way fast, then slowly the other way

!3d begin Rotation.Z 3600 3000
!3d begin Rotation.Z 0 90000

Effect: Hiding in the bottom and slowly Rising Up

// This hides you down below
!3d begin Position.Y 200 500

// This raises you slowly
!3d begin Position.Y 0 20000


!norm

Return the source specified to normal. This is returning filters to normal, and updating the size and position to more "normal" positions.

!norm begin

!move

Move a source to a specific X & Y location.

!move SOURCE X Y
!move begin 500 500

!tr / !tl / !br / !bl

Top-Right, Top-Left, Bottom-Right, Bottom-Left

!tr
!tl
!br
!bl

!follow

Follow the source specified, by all sources added by viewers.

!follow garfield

!staff

Figure the necessary filter and source move changes to not get banned by Staff in the chat.

There are no arguments to the !staff function.

!staff

!create_source

Create a source in the Primary scene THAT ALREADY EXISTS

!create_source garfield

!create_source_for_filters

Create the filters to manipulate a source, using StreamFX, SDF Effects and others.

!create_source_for_filters garfield

!filter

Print off information about a Filter.

!source FILTER_NAME

!source

Print off information about a Source.

!source SOURCE

!chat

Change to the Scene where you can read chat.

!chat

!code

Change to the Scene where you can read code.

!code

!memes !nomemes !nojokes !work

# Show the "memes" subscene
!memes

# Hide the "memes" subscene
# All aliases of the same thing
!nomemes
!nojokes
!work

!ortho

!ortho technofroggo

!show / !hide

!show a single source !hide all sources

Corner Pin

!corner frog Corners.BottomLeft.X 100
!corner frog Corners.BottomLeft.Y 10
!corner frog Corners.BottomRight.X 10
!corner frog Corners.BottomRight.Y 10
!corner frog Corners.TopLeft.X 10
!corner frog Corners.TopLeft.Y 10
!corner frog Corners.TopRight.X 10
!corner frog Corners.TopRight.Y 10

!corner frog Corners.BottomLeft.X 100
!corner frog Corners.BottomLeft.Y 10
!corner frog Corners.BottomRight.X 10
!corner frog Corners.BottomRight.Y 10
!corner frog Corners.TopLeft.X 10
!corner frog Corners.TopLeft.Y 10
!corner frog Corners.TopRight.X 10
!corner frog Corners.TopRight.Y 10

Orthographic


!def_ortho frog
!ortho frog Scale.Y 1000
!ortho frog Shear.X 1000
!ortho frog Shear.Y 1000
!ortho frog Position.X -300
!ortho frog Position.X 0 3000
!ortho frog Position.Y 0
!ortho frog Rotation.X 36000
!ortho frog Rotation.Y 360
!ortho frog Rotation.Z 3600

Perspective

!perp frog Camera.FieldOfView 1000
!perp frog Scale.X 200
!perp frog Scale.Y 200
!perp frog Shear.X 10
!perp frog Shear.Y 10
!perp frog Position.X 220
!perp frog Position.Y 220
!perp frog Position.Z 1
!perp frog Rotation.X 360
!perp frog Rotation.Y 360
!perp frog Rotation.Z 360


Returning to Normal

  • Right now Begin has Super+H to return as much as possible to normal

Questions

  • How does scroll stop???

Remove BG

  • rembg and available on the PATH
Comments
  • Add `!upload_image` WIP

    Add `!upload_image` WIP

    Note: this should work, but I couldn't get postgres working, so couldn't compile. Also, possible security issues since it downloads the file (with curl) right into a python script (rembg).

    !upload_image URL will download the image, remove the background, and resize into a 256x256 image size (by the largest dimension, and keeping the aspect ratio).

    Needs

    • curl
    • rembg in your path
    • imagemagick (convert)
    curl -s {} | rembg i > output.png
    convert output.png -resize 256x256^ {}
    
    opened by rockerBOO 1
  • Add `!upload_image` WIP

    Add `!upload_image` WIP

    !upload_image URL will download the image, remove the background, and resize into a 256x256 image size (by the largest dimension, and keeping the aspect ratio).

    Needs

    • curl
    • rembg in your path
    • imagemagick (convert)
    curl -s {} | rembg i > output.png
    convert output.png -resize 256x256^ {}
    
    opened by rockerBOO 1
  • Split 3D transform filter into 3 Camera-Types

    Split 3D transform filter into 3 Camera-Types

    Camera Types:

    • Orthographic
    • Corner Pin
    • Perspective

    Once these are separate filters it will remove lots of confusion, and allow for cool combined filters.

    enhancement obs priority 
    opened by davidbegin 1
  • Play Sound when program crashes

    Play Sound when program crashes

    cargo run && audio-player --volume 0.1 "$HOME/code/audio-player/[output.ogg](https://output.ogg/)" || audio-player --volume 0.1 "$HOME/code/tmp/error-sounds/[priceisright.ogg](https://priceisright.ogg/)"
    
    enhancement sounds 
    opened by davidbegin 1
  • Explore duplicating Scenes

    Explore duplicating Scenes

    We can duplicate them, by Creating a new scene, and then copying over the data. However, it looks like OBS Websockets doesn't currently have a direct duplicate Endpoint for Scenes.

    Also note that duplicated using the OBS UI doesn't copy Hot-Keys for Scenes, or Colors for sources.

    obs exploration 
    opened by davidbegin 0
  • Figure out hack for creating Hot-Keys Dynamically

    Figure out hack for creating Hot-Keys Dynamically

    Right now it's not possible through the OBS websockets API.

    We might be able to just edit the JSON config for the scene. Could also royally screw something up!

    obs exploration 
    opened by davidbegin 0
  • Improve !norm feature to handle all filters

    Improve !norm feature to handle all filters

    Currently !norm on a source is not returning the source to normal entirely.

    Things that need to be returned to normal:

    • Scroll
    • Blur
    • SDF EFfects
    • StreamFX
    • Position in Scene
    • Actual Scale in Scene
    enhancement obs priority 
    opened by davidbegin 0
  • Figure out use of OBS Studio Mode with Chat

    Figure out use of OBS Studio Mode with Chat

    Currently if you have Studio Mode enabled, when Chatters affect things on the OBS screen, it doesn't show until you transition the screen in Studio Mode.

    This can be useful or annoying depending on how used.

    Also I use Super+S to trigger Studio mode, which we could give the Chat that power as well.

    Also note that if you keep all your Viewer created sources on another sub-scene, keeping Studio-Mode up is very useful when debugging, so you can see the settings of the OBS sources without changing to that Sub-Scene (losing your camera, screen, chat etc.)

    obs twitch exploration 
    opened by davidbegin 0
Owner
TJ DeVries
Software developer. I like using Neovim (core team) and stream here: https://www.twitch.tv/teej_dv
TJ DeVries
A faster way to navigate your filesystem

zoxide A faster way to navigate your filesystem Table of contents Introduction Examples Getting started Step 1: Install zoxide Step 2: Install fzf (op

Ajeet D'Souza 8.7k Jan 8, 2023
:stars: Manage your shell commands.

Pueue Pueue is a command-line task management tool for sequential and parallel execution of long-running tasks. Simply put, it's a tool that processes

Arne Beer 3.3k Jan 8, 2023
gt your desired path with minimal keystrokes

goto (gt) gt is a simple and user-friendly way to jump to your indexed directories. gt is short for "goto", which is basically what you want to do wit

Sylvester Chin 25 Nov 7, 2022
Count your code, quickly.

Tokei (ζ™‚θ¨ˆ) Tokei is a program that displays statistics about your code. Tokei will show the number of files, total lines within those files and code,

null 7.5k Jan 9, 2023
CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path

Move Links CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path (or name). Usage execu

Ben Mefteh 18 May 22, 2022
Your project’s nix-env [maintainer=@Profpatsch]

lorri https://github.com/nix-community/lorri lorri is a nix-shell replacement for project development. lorri is based around fast direnv integration f

Nix community projects 442 Jan 1, 2023
πŸ“Š Fetch & monitor your server's resource usage through Lua

?? gmsv_serverstat Simple serverside binary module which can expose information about system resource usage to Lua. Installation Download the relevant

William 21 Jul 30, 2022
Build fast, reward everyone, and scale without friction.

Scrypto Language for building DeFi apps on Radix. Terminology Package: A collection of blueprints, compiled and published as a single unit. Blueprint:

Radix DLT 330 Dec 25, 2022
A simple menu to keep all your most used one-liners and scripts in one place

Dama Desktop Agnostic Menu Aggregate This program aims to be a hackable, easy to use menu that can be paired to lightweight window managers in order t

null 47 Jul 23, 2022
Unify your game sources in one place and aquire more of them, using modules made by the community.

Project Black Pearl Unify your game sources in one place by using modules made by the community. What is Project Black Pearl? Project Black Pearl (or

Project Black Pearl 8 Jan 15, 2023
πŸ§–πŸ»β€β™€οΈ Symlink your Steam screenshots to a sensible place

lnshot ????‍♀️ Symlink your Steam games' screenshot directories into your Pictures folder About This is a little utility to work around a bugbear of m

Jessica Stokes 23 Jan 31, 2023
Standard Graphics is a command-line tool for printing 2D graphics from any language to any screen.

2D graphics in any programming language with just print statements!

Caleb Winston 123 Nov 20, 2022
Quickly setup your development environment on your Chromebook/ChromeOS or any Linux distribution 🐧 ❄️ πŸ’» πŸš€ ✨

Crosup ?? ?? ?? ✨ Crosup is a CLI tool to help you quickly setup your development environment on a new Chromebook (ChromeOS) or any Linux distribution

Tsiry Sandratraina 11 Jun 15, 2023
in-place allocation-reusing queues for Rust

FAQs Q: Why did you make this? A: For tracing, I wanted to be able to send formatted log lines to a dedicated worker thread that writes them to a file

Eliza Weisman 141 Jan 3, 2023
A place for the community to upload example Scrypto code

community-scrypto A place for the community to upload example Scrypto code. Please fork from main, work out of a sub-directory of your choosing, and t

Radix DLT 80 Dec 13, 2022
A place to start when building webgl apps in Bevy. Use this to avoid writing the boilerplate.

Template Bevy project with WebGL enabled Prerequisites cargo install cargo-make Build and serve WASM version Set your local ip address in Makefile.to

Michael Dorst 0 Dec 24, 2021
This repo contains crates that are used to create the micro services and keep shared code in a common place.

MyEmma Helper Crates This repo contains crates that can are reused over different services. These crate are used in projects at MyEmma. But these crat

MyEmma 1 Jan 14, 2022
πŸ–ŠοΈ Just a place to paste

Just a place to paste API GET /p/:id - Get a paste by ID POST /p/n - Post a new paste GET /s - Get stats about the zer0bin instance Public instances S

mellowmarshe 68 Dec 28, 2022
A simple clone of reddit r/place

Run First install rustup with instructions on Rustup. Then run it: cargo run Endpoints There is two endpoints, one for getting canvas and the other fo

Kaveh 1 Sep 12, 2022
A tutorial for an NFT Market Place Built with Near Protocol and React.js

nft-marketplace-part-1 A tutorial for an NFT Market Place built using Near Protocol and React.js. Preview To run this app locally, follow below steps:

Kohwo Orien 5 Jun 29, 2022