: These contain local data or temporary build files . saves/ (Your personal playtest saves) cache/ (Internal Ren'Py cache) tmp/ (Temporary files)
: These change every time you launch the game or encounter an error . log.txt errors.txt traceback.txt lint.txt
my_visual_novel/ ├── .gitignore ├── game/ │ ├── script.rpy │ ├── gui.rpy │ └── ... └── renpy/ (Ren'Py SDK – usually not committed)
mkdir -p saves touch saves/.gitkeep git add saves/.gitkeep
# --- Generated Directories --- # These directories are generated by the engine on build/run android/ ios/ web/ linux/ mac/ windows/ renpy/
# Windows System Files Thumbs.db ehthumbs.db Desktop.ini
Most Ren’Py projects have this structure:
If you have already committed these files in the past, simply adding them to .gitignore won't delete them. You need to remove them from the Git cache first:
# --- Ren'Py Auto-generated Files --- *.rpyc *.rpymc # --- Save Data and Persistent Info --- # These are local to your machine and shouldn't be shared /saves/ /game/saves/ /game/cache/ /game/tl/None/ # --- Build and Distribution Artifacts --- # Created when you export the game for Windows/Mac/Linux /build/ *-dists/ *-dist/ # --- System and IDE Files --- .DS_Store Thumbs.db .vscode/ .idea/ Use code with caution. Detailed Breakdown of What to Ignore 1. Compiled Script Files ( *.rpyc )
Large artwork, music, or voice files? Consider Git LFS (Large File Storage). Add patterns like *.png , *.ogg , *.mp3 to .gitattributes , not .gitignore .
Setting up a .gitignore for a Ren’Py project is essential for keeping your repository clean, protecting your privacy (by not sharing local save files), and avoiding merge conflicts on auto-generated files. The "Bare Minimum" Ren'Py .gitignore For most small projects, PyTom (Ren’Py’s creator) recommends focusing on compiled files and local user data: gitignore # Compiled script files (Ren'Py regenerates these automatically) *.rpyc *.rpymc