Ever wanted to hijack the TV and play your own videos? Now you can.
- ✅ Full MP4 playback support using Unity's built-in Video Player
- ✅ Multi-Video support
- ✅ Manual pause/resume & previous/skip controls via hotkeys
- ✅ Automatically plays next video
- ✅ Shuffles video list on mod load.
- ✅ Play YouTube videos directly from URLs
- ✅ Video caching system for YouTube videos to improve performance
- ✅ Automatic management of temporary files
- ✅ Ability to use signs as TVs by inputting the word "customtv" onto them
While holding Shift + Ctrl:
- - or Numpad Minus → Pause video
- + or Numpad Plus → Resume video
- ] → Skip video
- [ → Previous video
- Right Arrow → Seek Forwards (10 seconds by default)
- Left Arrow → Seek Backwards (10 seconds by default)
- V → Paste YouTube URL from clipboard
- Make sure you have Melon Loader installed for Schedule I.
- Drop the CustomTV.dll into your Mods folder
- Create a folder called TV inside Mods if it doesn't exist.
- Place your mp4 files inside Mods/TV.
📁 Schedule I
└── 📁 Mods
├── 📄 CustomTV.dll
└── 📁 TV
└── 📄 example.mp4
Game Versions:
- IL2CPP (main version of Schedule I)
- Mono (alternate version available through Steam beta branch)
Framework: Melon Loader
You can tweak the keybinds and adjust the audio volume to your liking through the MelonPreferences.cfg file:
-
Where to Find the Config File
The configuration settings are now stored in the default MelonPreferences.cfg file in your game's UserData directory, not in a separate CustomTVConfig.ini file. -
Config Example (in MelonPreferences.cfg):
; Valid key names: https://docs.unity3d.com/ScriptReference/KeyCode.html
[CustomTV]
PauseKey = "Minus"
ResumeKey = "Equals"
NextVideoKey = "RightBracket"
PreviousVideoKey = "LeftBracket"
SeekForwardKey = "RightArrow"
SeekBackwardKey = "LeftArrow"
VolumePercent = 100
SeekAmount = 10.0
Shuffle = true
YoutubeURLKey = "V"
MaxCachedYoutubeVideos = 25
DeleteYoutubeVideosOnExit = true
UseFirefoxCookies = false
You still must press both Ctrl and Shift before the set keybind.
Note: Valid key names can be found in the Unity KeyCode Enum Reference
If shuffle mode is disabled, CustomTV sorts your video files in a specific order to keep episodes and seasons in a logical sequence. To ensure your videos are sorted correctly, follow these simple naming rules:
Recommended Naming Format:
-
Season and Episode Numbers First
Name your video files starting with the season and episode numbers, formatted as SxxExx.
Example: S01E01 - ShowName.mp4 -
Optional Leading Numbers
If you have files with a leading number (like special episodes, bonuses, or collections), place the number at the start of the file name.
Example: 001 - SpecialEpisode.mp4 or 10 - BonusEpisode.mp4 -
Natural Sorting
After following the above formats, CustomTV will handle sorting your files in a natural order as usually displayed in file explorer (e.g., S01E01 will come before S01E10).
Important Notes:
- Season and episode number (SxxExx) is the most important for sorting.
- Leading numbers are used for episodes or specials outside the main series.
- Files will be ordered by season first, then episode number, then any numbers at the start of the filename.
By following these simple naming conventions, CustomTV will automatically sort your episodes in a way that makes sense for watching!
The mod now supports playing videos directly from YouTube URLs.
How to use:
- Download yt-dlp and place it in your TV/yt-dlp folder
- Copy a YouTube URL to your clipboard
- Press Ctrl+Shift+V in-game to paste and process the URL
- The video will be downloaded and played on the TV
Configuration
You can configure the following YouTube-related settings in the MelonPreferences.cfg file:
- Youtube URL = V - The key to paste YouTube URL from clipboard (default: V)
- Max Cached Youtube Videos = 25 - Number of YouTube videos to keep cached (default: 25)
- Delete Youtube Videos On Exit = True - Whether to delete cached videos when the game exits (default: True)
Q: Can I use .webm or other formats?
A: No, Unity's VideoPlayer works best with .mp4 (H.264/AAC).
Q: The screen is black/frozen!
A: Make sure your video has the mp4 extension and uses a supported codec. Also sometimes happens to TVs during initial load if the TV is far away from the player during game start, to fix just pick the TV up and place it back down then skip video.
Q: Keybinds aren't working.
A: Be sure to press both ctrl and shift before the keybind, for example ctrl-shift-] to skip video.
Q: Audio isn't synced!
A: Sometimes audio gets desynced during initial load or when the TV/Sign gets reloaded after being unloaded by the game, to fix this simply just seek the video forward and back using the arrow key keybinds.
- Created by Jumble
- YouTube & Mono functionality added by IfBars