Skip to content

SlonickLab/Smart-Replay-Mover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

48 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Smart Replay Mover

The Ultimate Zero-Config Organizer for OBS

Automatically organize your Replay Buffer clips, Recordings, and Screenshots into game-specific folders.

Version License Platform OBS

Features โ€ข Installation โ€ข Configuration โ€ข Custom Names
FFmpeg Setup โ€ข Troubleshooting โ€ข Changelog


โœจ Why Smart Replay Mover?

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

๐Ÿš€ Features

๐ŸŽฏ Intelligent Game Detection

  • 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 to Minecraft
  • Anti-Cheat Compatible โ€” Window title fallback for protected games
  • 99.9% Accuracy โ€” Smart fallback chain ensures correct detection

๐Ÿ”” Notification System

  • 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

๐Ÿ“ Organization

  • 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

๐Ÿ›ก๏ธ Quality of Life

  • 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

๐Ÿ“ฅ Installation

  1. Download the latest release from Releases

  2. Extract the ZIP archive

    โš ๏ธ Do NOT load the .zip file directly into OBS

  3. Move Smart Replay Mover.lua to a permanent location (e.g., Documents)

  4. Add to OBS:

    • Open OBS Studio
    • Go to Tools โ†’ Scripts
    • Click + and select the .lua file
  5. Done! The script works immediately with default settings.


โš™๏ธ Configuration

Click on the script in OBS Scripts window to access settings:

๐Ÿ“ File Naming

Setting Description
Add game prefix Adds game name to filename (e.g., CS2 - Replay...)
Fallback folder Folder name when no game detected (default: Desktop)

๐Ÿ—‚๏ธ Organization

Setting Description
Monthly subfolders Creates YYYY-MM subfolders
Organize screenshots Also sort screenshots
Organize recordings Sort regular recordings (not just replays)

๐Ÿ›ก๏ธ Spam Protection

Setting Description
Cooldown Seconds between saves (prevents duplicates)
Auto-delete Automatically remove duplicate files

๐Ÿ”” Notifications

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)

๐ŸŽฅ Advanced (FFmpeg)

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

๐Ÿ’พ Backup

Setting Description
File path Optional custom path for import/export
Import Load custom names from file
Export Save custom names to file

๐ŸŽฎ Custom Names

Three powerful matching modes for any situation:

Exact Match

CS2 > Counter-Strike 2 Maps process name directly to folder name.

Keywords Mode

+Warhammer Marine > Space Marine 2 Matches if all keywords are present (AND logic). Prefix with +.

Contains Mode

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!

Examples

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...

๐Ÿ”Š Custom Notification Sound

  1. Find a short sound file (1-2 seconds recommended)
  2. Convert to WAV format if needed
  3. Rename to notification_sound.wav
  4. Place in the same folder as the script:
๐Ÿ“ Your Folder/
โ”œโ”€โ”€ Smart Replay Mover.lua
โ””โ”€โ”€ notification_sound.wav
  1. Reload the script โ€” done!

๐Ÿ”‡ Quiet Sound Option (v2.7.7+)

If the standard sound is too loud, you can use a separate "quiet" sound file:

  1. Prepare a quieter sound file.
  2. Name it notification_sound_silent.wav.
  3. Place it in the same folder.
  4. In script settings, check "Use Quiet Sound".

Now you can toggle between the Normal and Quiet versions instantly!


๐Ÿ“‚ Output Structure

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

โ“ Troubleshooting

Clips save to "Desktop" instead of game folder?

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:

  1. Open OBS โ†’ Tools โ†’ Scripts โ†’ Click on the script
  2. In CUSTOM NAMES section, enter:
    • Game: *Your Game Name* (with asterisks)
    • Folder: Your Game Name
  3. 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!


๐ŸŽž๏ธ Video Thumbnails (FFmpeg)

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.

๐Ÿ“ฅ 1. Download FFmpeg

  1. Go to gyan.dev (recommended Windows builds).
  2. Download the ffmpeg-release-essentials.zip.
  3. Extract it to a permanent folder (e.g., C:\Program Files\ffmpeg).

โš™๏ธ 2. Configuration in OBS

  1. Open OBS Studio โ†’ Tools โ†’ Scripts.
  2. Select Smart Replay Mover.
  3. Go to the ๐ŸŽฅ Advanced (FFmpeg) section.
  4. Enable "Enable Thumbnails".
  5. Click Browse for FFmpeg Path and select the ffmpeg.exe file (located inside the bin folder of your extraction).

โœจ Benefits

  • 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).

๐Ÿ“‹ Changelog

v2.7.8

  • ๐Ÿ”„ 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

v2.7.7

  • ๐Ÿ“ 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

v2.7.6

  • ๐Ÿ›ก๏ธ 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

v2.7.5

  • ๐Ÿ”„ 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

v2.7.4

  • ๐Ÿ”„ 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

v2.7.3 (Pull Request by zxsleebu)

  • ๐Ÿ›ก๏ธ Critical Crash Fix โ€” Fixed the lua51.dll crash by switching to native DefWindowProcA
  • ๐ŸŽจ Safe Rendering โ€” New timer-based drawing system for thread safety

v2.7.2

  • ๐Ÿ–ผ๏ธ 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 IsWindow validation 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

v2.7.1

  • ๐Ÿ”ง Window Reuse โ€” Redesigned notification system to reuse windows instead of constant destroy/create
  • ๐Ÿ› Crash Fix โ€” Fixed critical access violations when spamming notifications
  • ๐Ÿ›ก๏ธ Validation โ€” Added IsWindow checks to timer callbacks and FFI definitions

v2.7.0

  • ๐Ÿ“ฆ 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

v2.6.3

  • ๐Ÿ› Fixed Telegram/Explorer creating wrong folders from window titles
  • ๐Ÿ“ธ Added screenshot save notifications
  • ๐Ÿ”ค Added Unicode/Cyrillic support in popups

v2.6.2

  • ๐Ÿ”” 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

v2.4.0

  • ๐ŸŽฌ Full recording support (Start/Stop)
  • โœ‚๏ธ File splitting support for long recordings
  • ๐Ÿ”ง Stability improvements

v2.0.0

  • ๐ŸŽฎ Custom names system with GUI
  • ๐Ÿ“ฆ Import/Export functionality
  • ๐Ÿ›ก๏ธ Anti-spam protection

v1.0.0

  • ๐Ÿš€ Initial release
  • ๐ŸŽฏ Basic game detection
  • ๐Ÿ“ Automatic folder creation

๐Ÿค Contributing

Contributions are welcome! Feel free to:

  • ๐Ÿ› Report bugs
  • ๐Ÿ’ก Suggest features
  • ๐ŸŽฎ Add game mappings
  • ๐ŸŒ Help with translations

๐Ÿ“œ License

This project is licensed under the GNU General Public License v3.0 โ€” see the LICENSE file for details.


Made with โค๏ธ by SlonickLab

โฌ† Back to Top

About

Smart Replay Mover - The Ultimate Zero-Config Organizer for OBS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages