Renpy Gitignore 'link' May 2026
If you’re building a visual novel with Ren’Py and using Git for version control, you’ve probably noticed a lot of clutter. Compiled files, cache data, and platform-specific leftovers can bloat your repository, cause unnecessary merge conflicts, and even expose sensitive information.
mkdir -p saves touch saves/.gitkeep git add saves/.gitkeep Then in .gitignore : renpy gitignore
Here’s the essential .gitignore template for any Ren’Py project—plus an explanation of why each entry matters. Create a file named .gitignore in the root folder of your Ren’Py project (the same folder that contains script.rpy , gui.rpy , etc.) and paste this: If you’re building a visual novel with Ren’Py
saves/* !saves/.gitkeep Most Ren’Py projects have this structure: Create a file named
# Ren'Py compiled and generated files *.rpyc *.rpymc cache/ saves/ log.txt errors.txt traceback.txt updater.json build/ dist/ tmp/ android-build/ android-project/ android-*.apk web/ *.app *.dmg *.exe *.zip *.sh *.tar.bz2 Python cache pycache / *.py[cod] *.so Editor & OS junk .DS_Store Thumbs.db *.swp *.swo *~ .idea/ .vscode/ *.iml Secrets (never commit these!) steam_appid.txt steam_upload.vdf secrets.rpym *.pem *.key *.env Ren'Py launcher/developer files renpy_cache/ editor_cache/ Why Each Section Matters *.rpyc and *.rpymc Ren’Py compiles your .rpy script files into bytecode ( .rpyc ) for faster loading. These are regeneratable and change on every run. Committing them creates meaningless merge conflicts. cache/ and saves/ Cache files are temporary graphics or data caches. Save files belong to players, not your repository. Never track them. build/ , dist/ , tmp/ These folders are created when you build distributions from the Ren’Py launcher. Your source control should contain the source, not the packaged game. web/ , *.app , *.exe , etc. These are complete, compiled game outputs for various platforms. They’re large, binary, and should be generated by CI or manual builds, not stored in Git. __pycache__/ Python bytecode left by Ren’Py’s Python modules. Unnecessary and system-specific. .DS_Store , Thumbs.db , .idea/ System and IDE metadata. Keeps commits clean for all team members. steam_appid.txt , secrets.rpym You don’t want your Steam App ID or API keys accidentally public. secrets.rpym is a great pattern for local passwords or analytics tokens. Special Case: Want to Keep an Empty Folder? Git doesn’t track empty folders. If your game expects a folder like saves/ or cache/ to exist, add a .gitkeep file inside it.
my_visual_novel/ ├── .gitignore ├── game/ │ ├── script.rpy │ ├── gui.rpy │ └── ... └── renpy/ (Ren'Py SDK – usually not committed) commit the renpy/ SDK folder. Each developer should install Ren’Py separately. If your project is open source, committing the SDK violates its license.

