A submod that adds a simple way to add new fonts to Monika After Story so you can give it your personal touch.
- Replaces the font in the Monika After Story mod.
- (New!) An updated, cleaner UI that moves the font list to a separate window.
- (New!) A new 'Size+' menu to adjust font size (min. 8) and padding directly in-game.
- (New!) State-aware buttons (Apply, Update, Reset) that dim when no changes are pending.
- (New!) Now supports cross-platform (Windows, Mac, Linux).
- It has change levels (Low, Medium, High) in case the user does not want to saturate the interface.
- This submod is compatible with Comfy UI.
- It has a preview so that the user can see the font type before applying the changes.
- (Optional) Supports combined/multilingual fonts (Chinese, Japanese, Korean, etc.) via the
full_unicodeflag — for fonts that already include non-Latin characters built-in.
| Before | After | Comfy UI |
|---|---|---|
![]() |
![]() |
![]() |
- Download the latest release from the Releases page.
- Unzip the downloaded zip file.
- Move the
FontSwitcherfolder directly into yourgame/submods/folder.
To ensure you've installed it correctly and MAS can detect it, your folder structure should look exactly like this:
game/
└── submods/
└── FontSwitcher/ <-- The main folder
├── font/ <-- Contains .ttf / .otf files
├── json/ <-- Contains .json configuration files
├── definitions.rpy
├── functions.rpy
├── header.rpy
├── screen.rpy
├── style-max.rpy
├── style-medium.rpy
└── style-min.rpy
Warning
If you see a double folder like game/submods/FontSwitcher/FontSwitcher/, you need to take the inside folder and move it out. The game will not detect the submod if it's double-layered!
You can easily add your own fonts:
- Place your font file (e.g., MyFont.ttf, MyFont.otf) inside the submods/FontSwitcher/font folder.
- Create a new .json file (e.g., MyFont.json) inside the submods/FontSwitcher/json folder. You can use this example as a template for your new JSON file.
{ # ↓ This is the font ID, it has to be unique.
"cupcake": {
"name": "Natsuki's handwriting", # ← Font name, it is recommended to keep it short to avoid screen saturation.
"font_default": "Nat.ttf", # ← Path of the main font (New method: just the filename!) (Game Text, Dialogue).
"font_label": "Nat.ttf", # ← Path of the label font (New method: just the filename!) (General Titles).
"font_button": "Nat.ttf", # ← Path of the button font (New method: just the filename!) (Options).
"size_default": 26, # ← Applies the size of the main font.
"size_button": 26, # ← Applies the font size of the buttons.
"size_quick": 18, # ← The size of the quick menu (History, Skip, Auto, Save, Load, Settings).
"size_label": 32, # ← It is the size of the titles (Preferences, Navigation, Game Menu).
"padding": 3, # ← This is used to adjust the position and size of the button content. Therefore you will use it in some fonts where it is necessary to modify the padding.
"full_unicode": false # ← (Optional) Set to true if your font already includes CJK characters (Chinese, Korean, Japanese). When true, the font is used directly without fallback mapping, so all glyphs render from your font.
}
}Note (Backward Compatibility):
This new version simplifies paths. You only need the filename (e.g., "Nat.ttf") as long as the font is in the font/ folder. Don't worry! If you added custom fonts using the old method (e.g., "font_default": "submods/FontSwitcher/font/Comfortaa.ttf"), the submod is fully backward compatible with the old path format, so no changes are necessary.



