{"id":16586256,"url":"https://github.com/tjdevries/subd","last_synced_at":"2025-04-21T15:30:48.202Z","repository":{"id":39594996,"uuid":"487154135","full_name":"tjdevries/subd","owner":"tjdevries","description":"subd - a place to reward your subscribers from any platform","archived":false,"fork":false,"pushed_at":"2025-03-26T10:46:46.000Z","size":6258081,"stargazers_count":56,"open_issues_count":46,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-13T18:54:45.449Z","etag":null,"topics":["hacktoberfest","hacktoberfest2022"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tjdevries.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-30T01:30:55.000Z","updated_at":"2025-03-28T11:48:45.000Z","dependencies_parsed_at":"2023-12-21T02:29:00.801Z","dependency_job_id":"3c013808-8d14-4add-b615-58b9a60eeabe","html_url":"https://github.com/tjdevries/subd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjdevries%2Fsubd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjdevries%2Fsubd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjdevries%2Fsubd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tjdevries%2Fsubd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tjdevries","download_url":"https://codeload.github.com/tjdevries/subd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250080492,"owners_count":21371516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","hacktoberfest2022"],"created_at":"2024-10-11T22:50:58.139Z","updated_at":"2025-04-21T15:30:43.191Z","avatar_url":"https://github.com/tjdevries.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# subd\n\n`subd`'s goal is to create a link between the various ways viewers support you\nas a live content creator, and the interactions that can be triggered from\nvarious forms for support.\n\nInteractions:\n- Twitch viewers, subs, donators, memers,\n- Github Sponsors\n- Twitter supporters/shit-posters\n- Youtube comment Warriors/Tik-Tok Comment Therapists\n- Discord Commentors\n- `\u003cmore\u003e`\n\nIntegrations You Can Trigger:\n- OBS\n- Browser Source\n- Twitch Chat+Moderation\n- Discord\n- Twitter\n- Neovim\n- Whatever we want!!!!\n\n## Status\n\nWe are developing this on the Twitch streams: [teej_dv](https://twitch.tv/teej_dv) and [beginbot](https://www.twitch.tv/beginbot)\n\n## Development / Running\n\nThere are several steps required to set up `subd`. See [Developers](./DEVELOPERS.md) for more information.\n\n----\n\n## Commands\n\nThe commands available from Twitch Chat, what they do, and how they work.\n\n### !scroll\n\n```\n!scroll SOURCE SCROLL_SETTING speed duration\n```\n\nScroll Settings:\n\n- speed_x\n- speed_y\n\n**Real Examples:**\n```\n// Scroll the \"begin source\n// along \"x\" at a speed of \"500\",\n// taking \"10000\" milliseconds to reach full speed\n!scroll begin speed_x 500 10000\n\n// speed_y is the other SCROLL_SETTING\n!scroll begin speed_y 100 1000\n\n// You can also use the x and y shorthand\n!scroll begin x 5 300\n!scroll begin y 50 3000\n\n// This is examples of stopping the scroll\n!scroll begin x 0\n!scroll begin y 0\n\n!scroll primetime x 500\n```\n\n### !blur \u0026 !unblur\n\nBlur or Unblur the source passed in.\n\n!blur primetime 100\n\n!move snoop 500 500\n\n!scale snoop 200 200\n\n\n```\n!blur SOURCE AMOUNT DURATION_TO_REACH_BLUR_AMOUNT\n```\n\nIf you send in the Blur amount to 0,  it's unbluring.\n`!unblur SOURCE` and `!noblur SOURCE` do the same.\n\n```\n!blur begin 50\n!blur begin\n!blur begin 100 // This is the same as no value passed in\n!unblur begin\n!noblur begin\n```\n\n### !grow \u0026 !scale\n\nScale a Source using the actual OBS source settings, and no other filters\n\n```\n!scale SOURCE X Y\n```\n\nScales the source's X and Y dimensions as a percentage of the total size. So 1.0\nis the original size of the Object. `!scale SOURCE 0.5 0.5` is shrinking the\nobjects size by half for both the X \u0026 Y dimension.\n\n```\n!scale begin 0.5 0.5\n!scale begin 1 1\n!scale begin 1.1 0.2\n```\n\n### !3d\n\nRequires the [Stream FX Plugin](https://github.com/Xaymar/obs-StreamFX)\n\nAffect the 3D Transform Filter Settings.\n\n**Format:**\n```\n!3d SOURCE FILTER_NAME FILTER_VALUE DURATION\n```\n\n**Effect:** Zoom in Close\n```\n!3d begin Scale.X 400\n!3d begin Scale.Y 400\n!3d begin Position.X -150\n\n!3d begin Scale.X 100\n!3d begin Scale.Y 100\n!3d begin Position.X 0\n```\n\n**Effect:** Rotation a lot one way fast, then slowly the other way\n```\n!3d begin Rotation.Z 3600 3000\n!3d begin Rotation.Z 0 90000\n```\n\n**Effect:** Hiding in the bottom and slowly Rising Up\n```\n// This hides you down below\n!3d begin Position.Y 200 500\n\n// This raises you slowly\n!3d begin Position.Y 0 20000\n\n```\n\n---\n\n### !norm\n\nReturn the source specified to normal. This is returning filters to normal, and\nupdating the size and position to more \"normal\" positions.\n\n```\n!norm begin\n```\n\n### !move\n\nMove a source to a specific X \u0026 Y location.\n\n```\n!move SOURCE X Y\n```\n\n```\n!move begin 500 500\n```\n\n### !tr / !tl / !br / !bl\n\nTop-Right, Top-Left, Bottom-Right, Bottom-Left\n\n```\n!tr\n!tl\n!br\n!bl\n```\n\n### !follow\n\nFollow the source specified, by all sources added by viewers.\n\n```\n!follow garfield\n```\n\n### !staff\n\nFigure the necessary filter and source move changes to not get banned by Staff in the chat.\n\nThere are no arguments to the `!staff` function.\n\n```\n!staff\n```\n\n### !create_source\n\nCreate a source in the Primary scene THAT ALREADY EXISTS\n\n```\n!create_source garfield\n```\n\n### !create_source_for_filters\n\nCreate the filters to manipulate a source, using StreamFX, SDF Effects and\nothers.\n\n```\n!create_source_for_filters garfield\n```\n\n### !filter\n\nPrint off information about a Filter.\n\n```\n!source FILTER_NAME\n```\n\n### !source\n\nPrint off information about a Source.\n\n```\n!source SOURCE\n```\n\n### !chat\n\nChange to the Scene where you can read chat.\n\n```\n!chat\n```\n\n### !code\n\nChange to the Scene where you can read code.\n\n```\n!code\n```\n\n### !memes !nomemes !nojokes !work\n\n\n```\n# Show the \"memes\" subscene\n!memes\n\n# Hide the \"memes\" subscene\n# All aliases of the same thing\n!nomemes\n!nojokes\n!work\n```\n\n### !ortho\n\n!ortho technofroggo\n\n\n### !show / !hide\n\n!show a single source\n!hide all sources\n\n\n## Corner Pin\n\n```\n!corner frog Corners.BottomLeft.X 100\n!corner frog Corners.BottomLeft.Y 10\n!corner frog Corners.BottomRight.X 10\n!corner frog Corners.BottomRight.Y 10\n!corner frog Corners.TopLeft.X 10\n!corner frog Corners.TopLeft.Y 10\n!corner frog Corners.TopRight.X 10\n!corner frog Corners.TopRight.Y 10\n\n!corner frog Corners.BottomLeft.X 100\n!corner frog Corners.BottomLeft.Y 10\n!corner frog Corners.BottomRight.X 10\n!corner frog Corners.BottomRight.Y 10\n!corner frog Corners.TopLeft.X 10\n!corner frog Corners.TopLeft.Y 10\n!corner frog Corners.TopRight.X 10\n!corner frog Corners.TopRight.Y 10\n```\n\n# Orthographic\n\n```\n\n!def_ortho frog\n!ortho frog Scale.Y 1000\n!ortho frog Shear.X 1000\n!ortho frog Shear.Y 1000\n!ortho frog Position.X -300\n!ortho frog Position.X 0 3000\n!ortho frog Position.Y 0\n!ortho frog Rotation.X 36000\n!ortho frog Rotation.Y 360\n!ortho frog Rotation.Z 3600\n```\n\n## Perspective\n\n```\n!perp frog Camera.FieldOfView 1000\n!perp frog Scale.X 200\n!perp frog Scale.Y 200\n!perp frog Shear.X 10\n!perp frog Shear.Y 10\n!perp frog Position.X 220\n!perp frog Position.Y 220\n!perp frog Position.Z 1\n!perp frog Rotation.X 360\n!perp frog Rotation.Y 360\n!perp frog Rotation.Z 360\n\n```\n\n---\n\n## Returning to Normal\n\n- Right now Begin has Super+H to return as much as possible to normal\n\n### Questions\n\n- How does scroll stop???\n\n## Remove BG\n\n- [rembg](https://github.com/danielgatis/rembg) and available on the PATH\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftjdevries%2Fsubd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftjdevries%2Fsubd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftjdevries%2Fsubd/lists"}