Sound Disabler and Captions Tool for Ren’Py provides players with a way to toggle off individual in-game sounds to customize their experience. Find the tool here:
This tool was created in collaboration with Alaric from Just Write Studios, who has written the following guide to categorizing sounds for your game.

Overview
Providing players with the option to disable SFX can go a long way for their quality of life! For individuals with misophonia, hyperacusis, or any other sound-related concerns, providing options at the outset of your game can help them to enjoy playing it without needless distress. Even for individuals without major auditory concerns, this accessibility feature allows any player to enjoy your game without the extreme all-or-nothing option of hearing none of your SFX or dealing with one (or more) that they dislike.
This sort of feature is meaningless if players cannot understand how to recognize problematic SFX (and thereby use this tool to turn them on or off). It is up to you, the developer, to describe sounds accurately. Playtesting your game and its audio is vital to ensure that players understand how you describe and implement this tool.
I strongly encourage you to also do your own research, and look for ways to improve on these tips! There are few games that allow this degree of audio customization, but I look forward to seeing much more innovation in the field, given it is incredibly worth the effort—for many players (myself included), this sort of feature makes or breaks if they can play your game!
Categorizing Sounds
Here are a couple of pointers for clear SFX naming to help you get started:
- Use clear language. Accessibility is not the place to be vague. “Gore” is not very helpful, because that could mean almost anything. “Crunchy bone break” is specific, evocative, and much more helpful.
- Describing the intensity of the noise is helpful. “Tinkling glass” easily conveys a light and mellow noise. “Car windshield shattering” conveys a loud and harsh noise. Be specific.
- Even if you have a category for loud noises, emphasize their volume. “Screaming bloody murder” implies much more volume than a “Quick yelp of pain.”
- Repetitive noises and long noises can be very bothersome to many individuals. Label them appropriately, even if you have an ambient audio channel. “Birds chirping loop” might be unbearable for a player, whereas a “Single owl hoot” might be fine. Don’t assume, just be clear.
- When it comes to dynamic or complex ambient noise, such as a crowded city street, clarity is just as vital. A crowd with low voices talking and no other sounds can be described as such. A crowded city street with low, talking voices, as well as a screaming baby occasionally, and vehicles driving by, would benefit from a clear description of those elements too.
- The bottom line is don’t assume your player’s needs! Give them concise and evocative info that they need to be informed and enjoy your game fully.
Depending on the number of SFX in your game, you might not need categories at all. For games with many SFX, I recommend making clear categories to help players with faster navigation in your accessibility screen. Clarity and ease of use is key!
Below are several suggestions, based on common triggers for misophonia and hyperacusis. The items listed in each category are short examples of what types of sounds would be appropriate for that given category, but be sure to use clarity and evocative language when naming your own SFX! You also may find that your game benefits from other categories, which is great. If there is overlap, how you handle that is up to you—there isn’t a wrong way to do this so long as you are clear.
Category Suggestions
Suggestions for Categories (feel free to innovate and improve on these!):
Animal Noises
- Birds chirping, dogs barking, crickets, animal grooming, etc.
Bodily Functions
- Breathing, throat clearing, swallowing, coughing, heart beating, lip smacking, chewing, sniffling, slurping, vomit, etc.
Gore
- Bones breaking, impact (punches, kicks), visceral sounds (implied mutilation or bleeding), etc.
High-pitched Noises
- Tinnitus effects, car alarms, sirens, screaming, whistling, etc.
Metal/Mechanical
- Whirring, humming, screeching, clinking, etc.
Repetitive Sounds
- Tapping, flicking, ticking, dripping, nail filing or clipping, stomping, etc.
Sudden and/or Loud Noises
- Car crash, avalanche, door slamming, dropping an object, etc.
Water
- Rain, dripping, running water (rivers, sinks), flushing toilet, waterfall, splashing, pouring tea, etc.
Voices
- Many games put voice effects on their own audio channel, or you may have separate code for voice barks, but it is worth mentioning that these also greatly benefit from accessibility options!
- Laughter, gasping, murmuring, and any other human voice could fall in this category.
Execution
(Section written by Feniks) If you don’t have an AAudioData declaration set up for a sound, the tool will automatically copy a blank version to your clipboard when starting the game. That will generally look like:
AAudioData("footsteps_wet_2", categories=["footsteps"], path="audio/sfx/footsteps/footsteps_wet_2.mp3",
caption=_(""), description=None)
You can then fill this out with appropriate information. Note that the only field that should be left unchanged is the path
field – you are free to update categories
, caption
, description
, and the initial name
as well. The name (the first string) is used to declare a variable in the audio
namespace. So, the above would declare audio.footsteps_wet_2
, so you can do play sound footsteps_wet_2
. You may want to rename this to something shorter, like just wet_footsteps
.
In the Accessible Audio tool, sounds are labelled for the exclusion system using the description
field. For example:
AAudioData("wet_footsteps", categories=["footsteps", "repetitive", "water"], path="audio/sfx/footsteps/footsteps_wet_2.mp3",
caption=_("footsteps"), description=_("footsteps on a wet surface"))

This will appear in the excluded sounds screen with the label “footsteps on a wet surface”. It will appear in the categories for “footsteps”, “repetitive”, and “water” sounds. The description field can be used to provide a more specific description than what might be needed for an audio caption – here, the audio caption is simply “footsteps”.
You can also provide translatable names for the categories with the aaudio.CATEGORY_NAMES dictionary:
define aaudio.CATEGORY_NAMES["repetitive"] = _("Repetitive Sounds")
Final Notes
Feel free to message Alaric on Discord (alaricxx) or Bluesky (@just-write-studios.itch.io) with suggestions on how to improve this info, and to do your own work on improving visual novel design! More people being able to play games is always a good thing.