Automatically organize your Replay Buffer clips, Recordings, and Screenshots into game-specific folders.
Features โข Installation โข Configuration โข Custom Names
FFmpeg Setup โข Troubleshooting โข Changelog
Stop messing with Python installations, libraries, and version conflicts. Smart Replay Mover is a native Lua script designed for maximum performance and ease of use.
Unlike other scripts that rely solely on OBS internal hooks, this tool uses Windows API (via FFI) to intelligently detect what you're actually playing. This ensures your clips land in the right folder every timeโeven with Display Capture, Borderless modes, or Anti-Cheat systems.
| โ Before | โ After |
|---|---|
| All clips in one messy folder | Organized by game automatically |
| Manual sorting after each session | Set and forget |
| No idea when clip was saved | Visual + sound notifications |
- Windows API Detection โ Checks what Windows is focusing on, not just OBS
- 1800+ Built-in Games โ Massive embedded database, no external files needed
- Auto-Pattern Matching โ
minecraft_1.20.exeโ Saves toMinecraft - Anti-Cheat Compatible โ Window title fallback for protected games
- 99.9% Accuracy โ Smart fallback chain ensures correct detection
- Visual Popup โ ShadowPlay-style dark popup with smooth animations
- Smart Fullscreen Detection โ Popup in Borderless, sound-only in Exclusive Fullscreen
- Custom Sound โ Use your own notification sound
- Click-through โ Popup doesn't block your game
- Replay Buffer โ Automatically organized
- Regular Recordings โ Start/Stop recording support
- Screenshots โ Optional organization
- File Splitting โ Handles long recording segments correctly
- ๐ผ๏ธ FFmpeg Thumbnails โ Optional cover art embedding for your clips
- Anti-Spam Protection โ Deletes duplicate files from panic-pressing hotkeys
- Case-Insensitive โ Won't create duplicate folders with different cases
- Date Subfolders โ Optional monthly organization (2025-06/)
- 230+ Ignored Programs โ Won't confuse Discord, Chrome, launchers or utilities with games
-
Download the latest release from Releases
-
Extract the ZIP archive
โ ๏ธ Do NOT load the .zip file directly into OBS -
Move
Smart Replay Mover.luato a permanent location (e.g., Documents) -
Add to OBS:
- Open OBS Studio
- Go to
ToolsโScripts - Click
+and select the.luafile
-
Done! The script works immediately with default settings.
Click on the script in OBS Scripts window to access settings:
| Setting | Description |
|---|---|
| Add game prefix | Adds game name to filename (e.g., CS2 - Replay...) |
| Fallback folder | Folder name when no game detected (default: Desktop) |
| Setting | Description |
|---|---|
| Monthly subfolders | Creates YYYY-MM subfolders |
| Organize screenshots | Also sort screenshots |
| Organize recordings | Sort regular recordings (not just replays) |
| Setting | Description |
|---|---|
| Cooldown | Seconds between saves (prevents duplicates) |
| Auto-delete | Automatically remove duplicate files |
| Setting | Description |
|---|---|
| Show popup | Visual notification (Borderless/Windowed only) |
| Play sound | Audio notification (works in Fullscreen) |
| Duration | How long popup stays visible (1-10 seconds) |
| Setting | Description |
|---|---|
| Enable Thumbnails | Embed frame from video as cover art |
| FFmpeg Path | Path to your ffmpeg.exe |
| Thumbnail Offset | Time (sec) to grab the frame from |
| Setting | Description |
|---|---|
| File path | Optional custom path for import/export |
| Import | Load custom names from file |
| Export | Save custom names to file |
Three powerful matching modes for any situation:
CS2 > Counter-Strike 2 Maps process name directly to folder name.
+Warhammer Marine > Space Marine 2
Matches if all keywords are present (AND logic). Prefix with +.
Space Marine 2 > Space Marine 2
Matches if text is found anywhere in process name or window title. Wrap in *.
๐ก Pro Tip: Contains mode is perfect for games with version numbers that change with updates!
| Custom Name | What It Matches |
|---|---|
r5apex > Apex Legends |
Process r5apex.exe |
+Warhammer Space > WH40K |
Any window containing both words |
*Cyberpunk* > Cyberpunk 2077 |
Cyberpunk 2077 v2.1 Patch... |
- Find a short sound file (1-2 seconds recommended)
- Convert to WAV format if needed
- Rename to
notification_sound.wav - Place in the same folder as the script:
๐ Your Folder/
โโโ Smart Replay Mover.lua
โโโ notification_sound.wav
- Reload the script โ done!
If the standard sound is too loud, you can use a separate "quiet" sound file:
- Prepare a quieter sound file.
- Name it
notification_sound_silent.wav. - Place it in the same folder.
- In script settings, check "Use Quiet Sound".
Now you can toggle between the Normal and Quiet versions instantly!
The script creates this folder structure automatically:
๐ Videos/
โโโ ๐ Counter-Strike 2/
โ โโโ CS2 - 2025-06-15 14-30-01.mp4
โ โโโ CS2 - 2025-06-15 14-35-22.png
โ
โโโ ๐ Valorant/
โ โโโ Valorant - 2025-06-16 20-10-55.mp4
โ
โโโ ๐ Space Marine 2/
โ โโโ Space Marine 2 - 2025-06-17 18-45-00.mp4
โ
โโโ ๐ Desktop/
โโโ Desktop - 2025-06-17 09-00-00.mp4
Some games with anti-cheat protection (Easy Anti-Cheat, Vanguard, etc.) block the script from reading the process name. If the game isn't in our built-in list, it will fall back to "Desktop".
Solution: Add a Custom Name mapping:
- Open OBS โ Tools โ Scripts โ Click on the script
- In CUSTOM NAMES section, enter:
- Game:
*Your Game Name*(with asterisks) - Folder:
Your Game Name
- Game:
- Click Add
Examples:
| Game | Folder |
|---|---|
*Sea of Thieves* |
Sea of Thieves |
*New World* |
New World |
*PUBG* |
PUBG |
๐ก The
*pattern*mode matches the window title, which works even when anti-cheat blocks process detection!
Enhance your clip library by embedding high-quality cover art into your videos. This allows Windows Explorer (and tools like Icaros) to display a frame from your gameplay as the file icon instead of a generic media player logo.
- Go to gyan.dev (recommended Windows builds).
- Download the
ffmpeg-release-essentials.zip. - Extract it to a permanent folder (e.g.,
C:\Program Files\ffmpeg).
- Open OBS Studio โ Tools โ Scripts.
- Select Smart Replay Mover.
- Go to the ๐ฅ Advanced (FFmpeg) section.
- Enable "Enable Thumbnails".
- Click Browse for FFmpeg Path and select the
ffmpeg.exefile (located inside thebinfolder of your extraction).
- Silent & Invisible โ FFmpeg runs completely in the background without popups.
- No Quality Loss โ Metadata is embedded without re-encoding your video.
- Universal Compatibility โ Works with both MKV (attachments) and MP4 (tags).
- ๐ Auto-Restart Buffer โ Option to automatically restart buffer after save to prevent overlapping clips (Idea be VoidNW)
- ๐ก๏ธ Safe Logic โ Uses event-driven system to ensure file safety before restart
- ๐ ๏ธ Buffer Control โ New settings section for buffer management
- ๐ Notification Scaling โ Resize popup (100-300%) for 4K/HiDPI monitors
- ๐ Quiet Sound Option โ Toggle for alternative silent sound file
- ๐ Test Button โ Preview notifications instantly from settings
- ๐ก๏ธ Anti-Cheat Compatibility โ Fixed detection for protected games (ARC Raiders, THE FINALS) using advanced API fallback
- ๐ฎ 445+ New Games โ Massive database expansion from Discord's game list and community sources
- ๐ 1,900+ Games โ Total database now covers over 1,900 games
- ๐ Auto Update Check โ Script now checks for updates automatically on load
- ๐ Status at Top โ Update status displayed at the very top of script properties
- ๐ฅ Download Button โ Clickable button opens releases page directly in browser
- ๐ Refresh Button โ Manual refresh to display update status after check completes
- ๐ฌ Clearer Messages โ Improved status text like "๐ New version available: vX.X.X"
- ๐ Credits Link โ Added clickable GitHub link in script description
- ๐ Update Checker โ Added a "Check for Updates" button to quickly see if a new version is out
- โ๏ธ Freeze Fix โ Implemented window reuse to prevent OBS hangs during high-stress events
- โ๏ธ CPU Optimization โ Redraw throttling ensures notifications only render once per state
- ๐ฌ Recording Stability โ Added 0.5s safety delay during recording start initialization
- ๐ธ Screenshot Cache โ Added detection cache & throttle to handle rapid photo bursts
- ๐งน Memory Leak Fix โ Fixed background brush leaks during script reloads
- ๐ฆ Cleanup โ Added missing timer disposal on script unload to prevent log errors
- ๐ก๏ธ Critical Crash Fix โ Fixed the
lua51.dllcrash by switching to nativeDefWindowProcA - ๐จ Safe Rendering โ New timer-based drawing system for thread safety
- ๐ผ๏ธ Video Thumbnails โ Added FFmpeg support for embedding cover art into replays
- ๐คซ Background Processing โ FFmpeg operations are completely silent and invisible
- ๐ ๏ธ Stability & Performance โ Fixed crashes during rapid screenshots in Fullscreen mode
- ๐ก๏ธ Enhanced Logic โ Integrated
IsWindowvalidation and cooldowns for thread safety - ๐ Safe File Handling โ Files are verified before original is removed
- ๐ง Auto-Correction โ Improved path handling for spaces and incorrect exe selection
- ๐ง Window Reuse โ Redesigned notification system to reuse windows instead of constant destroy/create
- ๐ Crash Fix โ Fixed critical access violations when spamming notifications
- ๐ก๏ธ Validation โ Added
IsWindowchecks to timer callbacks and FFI definitions
- ๐ฆ All-In-One Package โ Single file with embedded database (no external dependencies!)
- ๐ฎ 1800+ Games Database โ Massive built-in game library (~1876 games)
- ๐ก๏ธ 230+ Ignored Programs โ Expanded filter list for launchers, utilities, and system apps
- ๐จ Polished UI โ Beautiful emoji icons throughout the interface
- โก Instant Loading โ No lazy-loading delays, database ready immediately
- ๐ง Cleaner Code โ Optimized and consolidated codebase
- ๐ Fixed Explorer folders with game names no longer confused with actual games
View older versions
- ๐ Fixed Telegram/Explorer creating wrong folders from window titles
- ๐ธ Added screenshot save notifications
- ๐ค Added Unicode/Cyrillic support in popups
- ๐ Notification System โ Visual popups + sound notifications
- ๐ฏ Contains Matching โ New
*pattern*mode for flexible matching - ๐ Fixed white background flash on popup
- ๐ก๏ธ Expanded ignore list to 80+ programs
- ๐ฅ Improved import/export functionality
- ๐ฌ Full recording support (Start/Stop)
- โ๏ธ File splitting support for long recordings
- ๐ง Stability improvements
- ๐ฎ Custom names system with GUI
- ๐ฆ Import/Export functionality
- ๐ก๏ธ Anti-spam protection
- ๐ Initial release
- ๐ฏ Basic game detection
- ๐ Automatic folder creation
Contributions are welcome! Feel free to:
- ๐ Report bugs
- ๐ก Suggest features
- ๐ฎ Add game mappings
- ๐ Help with translations
This project is licensed under the GNU General Public License v3.0 โ see the LICENSE file for details.
Made with โค๏ธ by SlonickLab