you can use a "virtual audio cable" otherwise known as a loopback. VB-AUDIO makes one that i use myself.
essentially you would set the vtspog output device as the cable 'input' and then the 'output' becomes rahituber's input.
Thanks for the log, that makes the problem clear: The issue is the GPU - I've never seen a Microsoft Corporation GDI Generic renderer before...
Do you have a GPU installed? If so, try the "I get a blank window / Rendering problems" step in the FAQ: https://itch.io/t/3967527/faq#post-10433312
Hi - yeah, you'd be better off using a "Active while talking" State instead of the Blink function. With those, you can set a timeout that keeps it visible for a short time after it's active.
There's an example of my own hand gesture state in the States and Automation Tutorial
This update should fix it - please let me know if it does! Thanks! https://rahisaurus.itch.io/rahituber/devlog/1462908/update-2026-03-18
It does not already exist, don't worry...
My design for the layer stack is based on art programs, where the order you see is what you get. Adding a z-order option would break that, as soon as one of the layers has a custom order then you can't just look at the list and see what's what. There's also the issue of moving other layers around, should the custom z-order change or remain static?
For now, we have a few options:
- RahiTuber doesn't store an image more than once, so having identical layers won't affect your performance unless you're actually drawing them more than once. With that in mind, you could actually make a folder for each expression with the entire model in each, and just hide/show the folders.
Currently that would come with its own awkwardness, because duplicated layers still retain their inherit/clip options as the original layers, so you'd have to manually change them (I've got an option to change that in the future)
- another option is for me to add a filter to the state layer list, so you could just search "hair" and see them all together.
Hi, sorry for the late reply, I hadn't seen this!
The issue is that the file paths are using backspaces. The "Make Portable" function is supposed to do this, but unfortunately there was a brief period where that function was broken. I have just discovered that it is STILL broken despite my effort to fix it last update... Will fix asap!
Hi there, this is in the tutorials thread but it's a little hard to see. I'll turn it into a text tutorial at some point.
https://bsky.app/profile/rahisaurus.itch.io/post/3lmarixnzzs2c
So, you have a model with multiple expressions, outfits, or props, and you want to switch between them easily? This is what States are for!
States are settings that can be applied to multiple layers at once, triggered by a keyboard / controller / mouse button, a timer, or a html message.
My model has art for several expressions. Let's set up states to help me switch between them.
The visibility setting in States has 3 options: Show, Hide, or No Change. When you trigger the State, Show will make the layer visible, Hide will make it invisible, and No Change will leave it alone.
By default, my model loads with the neutral expression:

If I want her to look happy, I can hide the neutral stuff manually and show the happy sprites (the layers in yellow) by clicking all the visibility icons like this:

but we can do it in one go by using a State. I'll open the States menu with this button:

and press "Add" to get a new empty state.

Clicking the "No Hotkey" header will expand the options and we can set it up.

First we'll choose a hotkey by clicking the "Click to record Hotkey" button. I'll press 5 on the numpad. The title and button changes to reflect this.

We can rename the state if we want to, by pressing the pencil icon in the header. I type a new name and press Enter to save it.

Let's tell the State which layers to show and hide. The list below the trigger options shows each layer and the 3 visibility options available. To show the Happy expression, we need to press "Show" on those layers and press "Hide" on the neutral layers where the art would conflict.
I'm also going to press "Hide" on the other art from the other expressions, because we will need that later when we switch between.

That's all we need to toggle the happy expression! Pressing Numpad 5 will activate the state.

There are 3 "Active Type" options available for States, and these set how the state will behave when the button is pressed.
If you've set up a schedule, you don't actually need to bind a hotkey at all - you can just let it be fully automatic. This is one way to blink several layers at once, for example.
There are also Trigger conditions:
These can be paired for interesting effects, for example I have a speech gesture that randomly raises my arm for a short period when I speak:

If you have run out of hotkeys and are looking for other ways to trigger your states - or you want your stream chat to be able to trigger them for you, you can use the "Control States via HTTP" option!
It means you can integrate RahiTuber with your streaming bots and automated scripts much easier. Here's how it works:



