Chat Commands - Catman-232/Homebrewery GitHub Wiki

This page was up to date as of version 4.3.2
In version 4.1.0, chat commands were added! You can start a message with /hb followed by a command's alias and parameters if any, if you try to send a message that starts with /hb, it will be grabbed by Homebrewery instead of being sent as a chat message, so don't worry about making spelling mistake as long as you got /hb at the start!

Below are the commands with reference examples and a bit of technical explanation if I have anything worth mentioning. In the example commands that list the argument names, anything in braces { } is mandatory, while anything in brackets [ ] is optional and will have a default value used if nothing is specified.


effect / effects / fx

/hb fx {effect, string} [duration, float : 1] [power, float: 1] [interval, float: (1/60)] [delayed, true/false: false]
Examples:
/hb fx gravity 30 0.1 (Set your gravity very low for 30 seconds)
/hb fx boobs 20 10 1 (+10 to boobs each second for 20 seconds)
/hb fx butt 10 25 10 true (Wait 10 seconds and then gain +25 to butt)
/hb fx spin 5 99999 (Spin excessively fast for 5 seconds)
/hb fx knockback 0 999 (Get sent flying)
Details:
This command creates and applies consumable effects, using the same system that HB's consumables use, so other HB users will see these effects too. It should work for everything in the Consumable Effects List. You don't need to specify an interval for effects that can operate with one, HB will just use the default 1/60 interval to vaguely mimic a 60fps fixed rate anyway.


scale / slider

/hb scale {slider, string} [endpoint, float] [duration, float: 1]
Examples:
/hb scale butt 200 10 (Scale the butt from its current value towards 200, taking 10 seconds)
/hb scale boobs (Output what the current value is for the boobs)
Details:
This command calculates a power to create a character proportions consumable effect with that will take the specified amount of time to reach the desired value. If you don't specify an endpoint, it will just tell you what the current value is. If you don't specify a duration, it will default to 1 second. Specifying boobs when they are not actually toggled on will not turn them on, likewise with using torso when the boobs are toggled on will not turn them off. Try using /hb fx chestbinded

If your current slider value or the desired endpoint is outside of the range for the slider in your BepInEx/config/HBLimitCFGs/ (HB_*race*_YourLimits.cfg and HB_*race*_OthersLimits.cfg), the command will not apply.

Valid Slider names:

  • butt, ass
  • boobs, tits
  • torso, chest
  • belly, tummy
  • arms, biceps
  • muzzle, face
  • voice
  • head
  • height
  • width
  • depth
  • size (uses the HeightWidth consumable effect)

look / eyes

/hb look [Eye State, string] [duration, float: 2]
Examples:
/hb look up 5 (Look up for 5 seconds)
/hb look hurt 0 (Look hurt indefinitely - until something interupts it like a jump attack)
Details:
Use this command to mess with your eye state, this uses the Consumable Effect system as well, so that other HB users should see your eyes change too. Using a duration of 0 will make it last forever, at least until something else forces them to a different state, which is only a few things like jump attacking. The names are the same as the aliases for custom eyes, with some extra short ones added. Technically neither parameter is mandatory, but it will complain at you for not specifying a state to use, and then do Center for 2 seconds, if the state isn't recognised it will use Center in that case as well. The default duration is 2 seconds, like the hotkeys do in the UIs where they work.

Valid Eye State names:

  • center, centre, open, opened, o
  • shut, closed, c
  • left, l
  • right, r
  • up, u
  • down, d
  • pissed, angry, mad, p
  • hurt, oof, damage, damaged, h

mouth

/hb mouth [duration, float: 2]
Details:
As above, but for the mouth, there's only a closed and an open state for the mouth anyway so this command doesn't need any aliases, it will use the open state for 2 seconds if no parameters are given, or for the duration specified.


camera / cam

/hb cam [subcommand, string] [value1, float] [value2, float]
Examples:
/hb cam (Toggles the CameraDX functionality on/off)
/hb cam max 120 (Sets your maximum zoom out value to 120)
/hb cam minmax -10 120 (Sets your minimum zoom in value to -10, and maximum zoom out value to 120)
Details:
This command controls the config values for the CameraDX feature added in 4.1.0, it vaguely mimics how Appearance+ handled the camera overriding, but has been optimised slightly, it is off by default and the values of the settings match the vanilla camera properties. If you use the command without a subcommand, it will just toggle the whole thing on or off. These commands update the config settings in the Homebrewery.cfg file.

Valid Subcommands:

  • on : Turns CameraDX on
  • off : Turns CameraDX off
  • cull, show, hide : Toggles the AlwaysShowPlayer function, which means the player is never culled when the camera is close.
  • fps, orbit, head : Toggles CameraOrbitsHead, which uses an alternate camera follow position that tries to better match where the head is even if your character scale is very high or low.
  • clip, collide : Toggles IgnoreCollision, which should prevent the camera from being pushed towards you when it would normally hit something.
  • min : Followed by a value to set the minimum zoom value, which can be negative to put the camera in front of you like a binoculars effect. Using it without a value will just tell you the current value.
  • max : As above but for the maximum zoom out value.
  • minmax, zoom : combines the two above into one command, with min first then max.
  • step : Followed by a value to set the amount the camera moves when using the scroll wheel to zoom.
  • speed : Followed by a value to set the speed the camera moves when using a controller Dpad to zoom.
  • far, farclip, farclipplane : Using this subcommand without a value will toggle whether the far clipping plane distance is being overridden by a config value or not. Followed by a value it will set the distance, minimum is set to 10 since any closer than that and you risk not being able to see the entire game. Value is 10000 by default. The vanilla setting in the options for this is the Render Distance one.
  • reset : Sets the value back to defaults - Min 0.6, Max 60, Step 35.5, Speed 65.5, other options False.
  • offset : This command lets you change the ranges of the camera position sliders in the Options menu. Without an argument this prints the current settings. The valid arguments are:
    • up : Followed by a value to set the maximum Vertical offset.
    • down : Followed by a value to set the minimum Vertical offset.
    • left : Followed by a value to set the minimum Horizontal offset.
    • right : Followed by a value to set the maximum Horizontal offset.
    • reset : Sets the four properties to their default values - Up: 0.15, Down: -0.1, Left: -0.25, Right: 0.25.
  • key, keys, bind : Without an argument this toggles whether the extra zoom keys are on or off. The valid arguments are:
    • in : Followed by the case sensitive string name of a KeyCode to set the extra key for zooming in.
    • out : Followed by the case sensitive string name of a KeyCode to set the extra key for zooming out.
    • step : Toggles whether the extra keys work like the scrollwheel or the controller Dpad, by default it's the Dpad style.
    • reset: Sets the keybinds to be the defaults of PageDown for zoom in and PageUp for zoom out.

Here's a list of the KeyCodes, I cannot guarantee all of them will actually work.
https://docs.unity3d.com/ScriptReference/KeyCode.html#:~:text=Properties
(Scroll down to the heading "Properties" if it doesn't automatically)


food

/hb food [subcommand, string or value, float]
Examples:
/hb food (Output what the current food value is)
/hb food cap 10 (Set your food capacity to 10)
/hb food 2 (Add 2 to your food value)
Details:
This command controls the config values for the consumables' silly food capacity system that still has no UI and I bet a lot of people have toggled on the bypass setting anyway. You can also use this command to simulate the value increasing or decreasing. If you use it without a subcommand, it will state what your current food level is. These commands update the config settings in the Homebrewery.cfg file.

I feel like stating here that I do not care about food related kinks at all, I just noticed months ago when patching Use_Consumable() that I could make a custom error message pop-up and felt it was a funny excuse to have a whimsical food stat for consumables. If it's aided your roleplays, then I am glad, if it's annoyed you, then sorry. At least now it's even easier to configure it to your liking.

Valid Subcommands:

  • rate : Followed by a value to set the "digestion" rate, if used without a value it will set itself to the default of 40 seconds, which roughly means -1 every in-game hour. Minimum of 1.
  • cap : Followed by a value to set the "capacity", if used without a value it will set itself to the default of 5. Minimum is 2, since the default food stat for consumables is 2, so it would be a bit of a problem lower than that.
  • bypass : Toggles BypassFoodCapacity on/off, this will make HB ignore the food level and capacity entirely.
  • value : Putting a value instead of a subcommand will add/subtract from your food level, but will still clamp to the range of 0 and capacity.

blink

/hb blink [subcommand, string or value, float]
Examples:
/hb blink (Toggles BlinkPatch on/off)
/hb blink 25 (Sets BlinkPercent to 25)
Details:
This command controls the config values for the BlinkPatch, which I wonder how many people even realise is a feature of Homebrewery at all. Have you ever noticed how the eyes switch to the closed state when doing that eye squish animation? That's because I made them do that, it bothered me that they didn't already, the vanilla code only uses the closed eyes when you sit-down, tap to block or are dead.

The default value for BlinkPercent used to be 87, which means it applies when the shapekey value for the eyes is above 87, but some people had not been noticing it working at all, which is why I added it as a config setting in the first place. Since adding this command and testing it, I tried a much lower value and realised I could hardly tell the difference until about 20, where it would look like they were closed too long, so I settled for 30.

Valid Subcommands:

  • on : Turns BlinkPatch on.
  • off : Turns BlinkPatch off.
  • value : Sets the value for BlinkPercent, which changes the point where HB tells the eyes to use the closed state during the eye squish animation. Clamped to the range 1 to 99.
  • reset : Sets the value for BlinkPercent to the default of 30.

unstuck / nudge

/hb nudge (Uses the nudge on you, like when you are stuck and jump three times)
Details:
Not much to say about this one, it just lets you manually invoke the nudge that normally happens when HB thinks you are stuck due to jumping three times consecutively while being considered grounded each time. So if you still got stuck somehow and it doesn't work when spamming jump, this might help you out.


call / phone

/hb call [contact, string]
Examples:
/hb call (Repeats the previous successful call, or opens the HB Phone dialogue, otherwise accessed with Ctrl + P)
/hb call enok (Starts a dialogue with Enok, if he's loaded in your game)
Details:
This command was fun to implement! You can type the name of an NPC and attempt to remotely interact with them, I make the loading screen appear during the dialogue to simulate the effect of having magic long distance conversation, and totally not to mask the fact that the camera will fly to the NPC from wherever you are. This only works on NPCs that are currently loaded in your game, so NPCs who reside outside of Sanctum cannot be reached while inside Sanctum, but hosts (which also means in singleplayer) can still contact the Sanctum NPCs while outside of Sanctum. It's pretty amusing because the NPC will turn to face you, even if you are on the other side of the map.

For convenience I have added an alias for Torta the fisher, whose data name is actually _npc_fisher, to be honest I had no idea his name was Torta before this. So you can use either "torta" or "fisher" to contact him.

Similarly you can contact the Vanity Mirror (if you really want to do that instead of just using HB Phone's shortcut) by using "vanity mirror", "vanity" or "mirror" since its data name is actually _npc_vanityMirror

You can specifically call HB Phone or Based Department by using "hb" or "based" as the contact.


wiki

/hb wiki [keyword, string]
Examples:
/hb wiki (Opens the wiki's homepage)
/hb wiki cmd (Opens this page!)
Details:
Using this command will open the wiki at a page related to the keyword you entered, or it will try to search the repo's wiki pages for the text you entered. If you don't write a keyword, it will just open the wiki's homepage.

Valid Keywords (so far):


xyz

/hb xyz
Details:
Prints your X, Y and Z coordinates, for what purpose? Who knows? You decide.


testdye

/hb testdye [subcommand, string or value1, float] [value2, float] [value3, float] [value4, float]
Examples:
/hb testdye hue 200 (Sets TEST Dye's Hue to 200)
/hb testdye 200 1.2 0.1 0.9 (Sets TEST Dye's properties to H:200, S:1.2, B:0.1, C:0.9)
Details:
Use this for a direct way to alter the values of TEST Dye instead of the hotkeys that only do it by steps. Without any subcommands, this will just print the current values.


log

/hb log [subcommand, string or value, int]
Examples:
/hb log 2 (Sets LogLevel value to 2)
/hb log cmd (Toggles the LogCommands setting)
Details:
This command is for altering the config values of LogLevel and LogCommands, if used without a subcommand it will print what the current log level is and what kind of logging it would cover.


mylimits

/hb mylimits {race, string} {slider, string} [subcommand, string or min, float] [min or max, float] [max, float]
Examples:
/hb mylimits chang butt (Prints the values of ButtMin and ButtMax values from BepInEx > config > HBLimitCFGs > HB_Chang_YourLimits.cfg)
/hb mylimits imp boobs max 400 (Sets the BoobsMax value in BepInEx > config > HBLimitCFGs > HB_Imp_YourLimits.cfg to be 400)
/hb mylimits kubold height 0.2 8 (Sets the HeightMin and HeightMax values in BepInEx > config > HBLimitCFGs > HB_Kubold_YourLimits.cfg to be 0.2 and 8 respectively)
Details:
Damn this was complicated to put together... Use this command to edit the values in your proportions limits cfg files in-game. The HBLimitCFGs are what HB uses to prevent your proportions from getting deranged when using consumables, and the YourLimits ones are synced to other HB users in multiplayer to prevent potential size desyncing when you are under an effect that alters your proportions. They only apply to your characters, the limits for other player characters are in the OthersLimits files, however HB will use the OthersLimits as an overriding global limit. Which is to say, if your personal scale limits are larger than the others limits values, they still won't go outside those values.

Slider names are the same as the ones for the Scale / Slider command. You know what the race names are, I hope, there are a few shortened aliases though like "bird", "rat", "gob" and "pon". Additionally, "me" will automatically grab your current race.


fog

/hb fog (Toggles the fog on/off)
Details:
Use this to force the fog completely off, it looks pretty weird.


show

/hb show [item name, string]
Examples:
/hb show five (Will show off the Five Hundred Cigarettes item, assuming the partial matcher didn't find something else first!)
/hb show (If something was shown previously, this will reshow it)
Details:
This command lets you use the emote that shows off an item, the one that happens when you fish up something. Kiseff had posted about this being added as an inventory item content menu option but for some reason it's not in the release. The method takes the name of an item, it can be any item, you don't need to have it. I am using the same partial name matcher code that I wrote for the enchant cost item property that weapons have, which means that vanilla item names are Case Sensitive, but custom item names aren't. The previously shown off item is remembered so that you don't have to type it out again, you can just use the command without any item name and it will reuse that previous item.


fc / freecam

/hb fc [subcommand, string] [value, float]
Examples:
/hb fc (Toggles freecam)
/hb fc lock (Toggles lock mode, or turns on freecam with lock mode on)
/hb fc speed 40 (Sets the freecam movement speed to 40)
Details:
This command lets you use a freecam implementation I put together, and it doesn't involve the character flying around. You can toggle locking the camera in place and allowing your character to move. You can also toggle the movement to be world aligned rather than camera direction based. The controls are the same as the movement controls, with jump being up and dash being down. You can also use the zoom inputs to move the camera forward and backwards at a quarter of the movement speed.

Valid Subcommands:

  • lock : Toggles the camera movement to be locked and the character movement to be unlocked. If freecam is not on, this subcommand will turn on freecam and toggle this setting at the same time.
  • axis : Toggles whether the camera moves relative to the world orientation or the camera's direction. By default it is the camera direction, which is to say moving forward goes in the direction the camera is facing in even if you point it up or down.
  • speed : Followed by a value to set the movement speed of the camera flight. Default is 40, which matches the base movement speed of players. Minimum is 1.
⚠️ **GitHub.com Fallback** ⚠️