Ren'Py/Cookbook
From VNDev Wiki
This article has been marked for cleanup. You can help by editing & proofreading its content to make it more clear and to comply with the Manual of Style. |
A list of resources and code snippets for the Ren'Py game engine.
Audio
- Sound - Many useful code snippets
- Dynamic music in Ren'Py!
- Phoenix Wright Blip and mouth animation library
- Sprite blinking with voice beeps
- Dynamic Text Bleeps/Animalese/Phonemes
- How to convert loop information between samples and seconds
UI
General
- Change Theme Quickly
- Dark and Light Colour Schemes Source Code
- How to make a custom theme for the Ren'Py Launcher!
- Unofficial Launcher Skin Directory (Abandoned)
- 0GUI
- Variable Text Size Without Breaking Your GUI
- All-In-One GUI Template (Version 2.2)
Cursor
Displayables / Widgets
- RADC - Ren'Py Asset Download Complement (Download Bar)
- HSV color picker
- "Continue game" button
- Continue button
- Rotateable wheel with buttons
- Analog Clock (Updated)
- Analog/Digital Clock
- Wheel UI
- Drawing a flashlight with a creator-defined displayable
- Scrolling marquee
- X-ray effect: Creator-Defined Displayable
- Tilemap (Creator-Defined Displayable)
- Mirage/Heat Shimmer/Kagerou Effect Displayable
- Pictures in the menu buttons
- Heart popup
- Power/energy meter
- Love Meter Bar
- Skip Movie Button
- Radar Chart
- Collapsible GUI panels
- Animated Imagemap Main Menu
- Main Menu with a Video Background Code
- Main Menu Label
- Returning to Main Menu from Settings
- Have characters greet you at game launch
Particles
Screens
- (Tutorial) Making a Contents page / screen
- Health Screen
- Ren'Py Universal Player - A Improved Music Room Screen
- Character select screen using imagebuttons
- History screen - Many useful code snippets
- Separated History Screen
- Add images to history log
- Simple shopping menu
- Information Screen
- Alternate Menu (using Python/Class code)
- Easy guide to: Pause menu
- Basic Customized Menu With Keyboard Shortcuts
- Side story menu code
- Japanese ADV Interaction Menu
Textbox / Namebox
- Simple tracker for change of speaker (aka applying transforms to the namebox)
- Easy way to give characters different nameboxes
- Change textbox look several time during the game
- (Tutorial) Customizing the NVL Textbox
- How to Customize Textbox and Choice menu
- (Tutorial) Customizing the Textbox
- (UDD) animated pirouetting inverted triangle CTC
- (Tutorial) CTC ~ Click to Continue Icon
Transitions / ATL
- ATL transitions
- New ATL warpers
- Quaking Dissolve
- Some Transitions for your characters
- TransitionShowingSwitch and TransitionConditionSwitch
- Path motion
- Catmull-Rom Spline Paths
- Quick special effects
Images
- ChromaGlitch : show images with a DDLC-like glitch effect
- Simple glitch effect
- Shaders
- Wave shader
- Side Images with Circular Cropping
- Custom Placeholder Portraits on the Fly
- Sprite blinking with voice beeps
- Parallax Camera and "Drunken" Blur
- Scrolling credits
- Layeredimages dynamic control using adjust_attributes
Inputs / Controls
- Joystick like an android
- Text input (on screen)
- Non-Linear Game - How to make ren'py wait / pause for user input: click on npc, object, arrow for movement, in scene.
- Screen with input box for variables that get stored
- Screen (click-to-type) User Input Examples
- On Screen Text Input
- OUYA Controls Screen
- Player controlled movement of entity (update 2019-03-13)
- Using a Custom Controller
- Detects what type of Game Pad the player is using
- Something like cheat codes
- pygame and actions by holding the button
Minigames
- 47 mini game Renpy
- Simple minigames
- Go minigame
- Ren'Py Chess Engine Source Code
- Simple Interactive Chess Engine in Ren'Py
- Dress up game
- Dynamic Dress Up Framework
- Scratch Ticket
- Another Rock Paper Scissors game
- Rock Paper Scissors, Knock knock jokes and assorted code
- Dueling/Aim Hero minigame
- Yet another shooting game
- Simple Shooting Game for Ren'Py
- Simple shooting minigame
- Shooter / Shmup / Shoot 'em Up prototype
- Renpystein: Pseudo 3D with Ray casting
- Hidden Object Game
- Hidden Object Example - Beginner
- Quick Time Event
- Quick Time Events - For Noobs
- Color Lines
- Simple fighting minigame
- Build a Rhythm Game!
- Rhythm Game in Ren'Py!
- Simon minigame (Renpy 6.9+)
- Minigames on new context
- Skyrim/Fallout-style Lockpicking Mini-Game
- Spot The Difference Game skeleton
- Mad Libs game
- Tetris
- Jigsaw Puzzle
- Combination lock
- Diceroll on table using a 2D-Array
- Turn-based game on a grid
- Breadth First Search Graph Based Pathfinding (Find shortest distance between two graph points)
- Breadth First Search Grid Based Pathfinding w/Walls (Find shortest distance between grid points)
Platform-specific
- Add in-game purchases to the Android game and ios
- Screens for Android phone
- Android-compatible Keyboard Screen
- Building your android app
- Renpy On Screen / Touch Screen Keyboard. PC / Android.
- Renpy Android Set up/Tutorial/Error Troubleshoot
- RenPy onto Google Play - lessons learned
- Changing the Ren'py Icon on Mac
- RenPSP Visual Novel Engine
Project management
Debug
- More useful variable viewer
- Position Viewer
- 3D camera motion and Transform Viewer
- Dynamic Value Adjuster
- Measuring time for code execution
- Ren'py Safe Logger - Version 2.7- Updated 2-15-2014
Testing
- Betatester mode
- Ren'Edit: Beta Tester & Editor GUI Tool for Feedback
- Helping playtesters generate feedback
- Simple game looper
File size reduction
- Optimizing images
- PNG quality with 30% size using JCC + a trick
- How to reduce the size of the project Renpy
- Automagically recreate project with smaller image sizes
- How to save space in your Ren'Py game
Randomness
- Random selection custom text tag for procedural text
- Save-proof randomness
- Randomized Item Clicking Mini-game
- Random Music Generator
- Random Chance Label Function
- Random Name Generator
- Random event code. (Example)
- Random sounds for sound sample button
- Amy's simple Markov chain text and randomized menu choices
- Unique password in the game
Systems
Achievements
Gallery
- Another dynamic gallery cookbook
- How to make a character selection page for gallery
- Tutorial: A very alternative CG/BG Gallery using Imagebutton
- Extended Gallery functionality (+example) RenPy 7.4.4
- Per-Character Gallery (+ Multiple Pages)
- Extras gallery with actual GUI
- Very Simple Gallery Code
- Gallery for Custom Characters
- Character Gallery based on "Help"
- Gallery code
- Instant CG and BG gallery
- Image Gallery/CGs/Album- Free source code on itch.io
Glossary
- Encyclopaedia / Bestiary Framework
- Simple Glossary / Dictionary / Footnote Implementation
- Glossary Screen Implementation
Inventory
- Inventory System
- Inventory Screen
- LezInventory - Free Inventory Framework!
- Infinite, Stackable Inventory/Crafting/Vendor - UPDATED v1.5
- a very simple screen-based inventory
- Ace Attorney style Court Record
Phone / Message
- yet another phone system + UI
- telegram messenger (2 version)
- Simple messaging UI for mobile game
- RenPy phone messaging system
- Adding a smartphone with various functionality
- Basic Message System
- Mobile phone text-message system
- Messenger - Version 1.0.0
- Automatic Location/Minimap System
- Simple Navigation System
- Simple navigation map
- Navigation Quest Time Routine System for Ren'py
- Node-based Non-linear Navigation Framework
- Basic Interactive Grid Map
- Location Manager
Point-and-click
- Point-and-click adventure framework
- Point and Click Sample Project
- Point and Click Tutorial (YouTube)
RPG / Dungeon crawler
- Animated RPG Battle Engine 1.2
- RPG Weather System
- RPG Overworld Engine
- RPG Battle System/Other Misc Features
- Dungeon Crawl RPG Framework
- Simple RPG Battle Framework A.K.A Sheepstorm
- Simple RPG Framework
- 1-on-1 RPG Battle Framework
- RPG combat library 2.0.0
- RPG Battle Engine - Alpha 7.5, downloads in first post
- RPG Battle Engine (similar to RPG Maker)
- Customizable battle system(RPG homebrew)
- Example for a turn-based battle system
- Raiser RPG Framework
- Character Creation (AD&D/RPG style)
- Battle System in Visual Novel View
- Basic Top Down Dungeon Crawler
- Another 3D dungeon crawl engine
- How to create a 3d dungeon crawler (WIP)
Save / Load
- Save/Load - Many useful code snippets
- Alternate Quick/Auto Load/Save screen
- Naming Your Saves
- Real "Delete" Button. At Save Menu.
- Save-proof randomness
- Arcade slot framework
Stats / Points
- Character Stats
- Stats System (just like persona 5's social stats)
- Really Simple Character Creation Stats
- Ren'Geon - D&D 5e Stat Roller and Character Creator
- Dungeons and Dragons Alignment System
- Affection Points
- Hentai Highschool Type of game framework
- Dating sim tool kit
- Dating Sim Engine (DSE) 4.1! Day Planner and Event Manager
Other
Text
- FancyText: Effects for Slow Text Display
- Kinetic Text Tags (Moving, waving, bouncing, shaking, replacement, style changes and more!)
- Ren'py Custom Text Tags Script For Renpy 6.18
- Fading onscreen text
- Font aliases
- Random selection custom text tag for procedural text
- Font Selection Option
- Allow player to change font
- Cycle and preview fonts in game.
- Replying through dialogue/ Artificial Intelligence based
- Artificial Intelligence Personalities
- A really simple text / keyword highlighter
- Splitting up long NVL text
Third party integration
- Ren'Py Steam Quickstart
- Ren'py compatibility with Steam
- Ren'Py Steam Achievement Guide
- Ren'Py Discord Rich Presence
- Yandex Mobile Ads in Ren'Py Game
- Attaching Admob to RenPy
- Expanding Mobile Functionality With Pyobjus/Pyjnius (Notifications)
- Game Jolt API for RenPy
- Implementing FMOD Studio into Ren'Py for All Platforms Community Project
Time
- Using a real Datetime to control flow of your game
- Date with weekdays and leap year
- Time spent in a game.
- ⭐Timed choice menus
- Timed Menus
- A timer that would work and after leaving the project
- TUTORIAL: Changing image/screen according to real time.
- Simple beginner-level calendar using python
- Scarily simple game calendar... with day parts
- Persona-style animated calendar
- A game for seven days
- Determine zodiac sign by a day
- Play events by day (quick mode)
Tools
- Articy: draft converter for RenPy
- Translation tools
- Twine to Ren'Py tool
- Converting Twine source to .rpy files
- Converting normal story text into renpy text v2
- Tool: Converting normal story text into renpy text
- Convert Python(.py) files to Ren'Py(.rpy)
- Detailed word counts for Lint
- Connect to MySQL with Spring Boot
Editors
- Runtime visual novel editor
- XRen'Py: visual editor for Ren'Py
- Renpy editor UI - create story without code - need testers
- Event Editor
- Ren'Edit: Beta Tester & Editor GUI Tool for Feedback
- EditPad Pro Syntax Coloring Scheme for Ren'Py
- 'Dark' Editra theme - kinder on the eyes
- Configuring Notepad++ for Ren'Py
- Ren'Py language support in Atom
- Renpy language support in Sublime Text
Tutorials
Unsorted
- Mark chosen choices
- Deleting choices automatically after they have been chosen
- Showing side image during choice menu
- Custom/Bulk character definitions
- Automatic character, background, etc. image defining script
- Automatically composite images define
- Using %s to generate Images for sprites and more
- A simple wardrobe (and expression changer) using variable tags
- A little script to speed up BG/Sprites declarations
- Declare automatically images/sprites from your files names
- Auto Highlight for Sprites
- Showing Layered Sprites With Different Emotions (Corrected)
- Tile based Sprite Sheets
- (Tutorial) Using Ren'Py SpriteManager for Complex Systems (Beginner-Friendly)
- How To Doll in Renpy, with attributes, clothes, animation and blinking
- Dynamic Paper Dolls
- Input MC name that filters NPC names! + extra nifty features (Ren'Py 7.4.2)
- PronounsClass to manage the pronouns of one or several characters
- Inserting a name/class into dialogue
- Events for specific names
- 2 simple codes (Input names and blinking)
- Player gender and custom pronouns, changeable on settings
- Player Naming your MC with Keyboard
- Brightness in game settings
- Select language automatically, based on system settings
- 3D Stereoscopic Sample (Side-By-Side for your fancy HDTV)
- How to enable Python 3 mode in Ren'Py 7.4
- Useful codes for demo used in IRL fest
- Pink Engine: A framework for using Tiled-created orthogonal maps in Ren'py
- how to put a screen over a video
- Simple Chapter Per Character Selection Screen.
- Viewport - zoom centered on mouse position
- Python for Ren'Py Dev Cookbook
- Character Screen - Free source code on itch.io
- Leafing through the pages of the book
- Wave Rendering
- Imagebutton GUI Framework (GxImagebuttons)
- BEST of Cookbook (working)
- SWHolo : show images with a Star Wars-styled hologram effect
- Separate Text and Voice Acting Selector, And Predicting User Language
- Equalizer, shooter, and music tag parser.
- Speaking animation while playing an audio using layeredimages
- A Tooltip whose x/y position follows the mouse's.
- Ren'Py QuickStart (Gallery, Codex, Scheduler, Tutorials etc)
- Automatic text translator for games on the RenPy.
- How to encrypt / obfuscate your Ren'Py archive RPA files to prevent common programs from opening them
- Modified Extend Character
- Color map
- Ramen, Renpy framework
- Text Adventure Engine for Ren'Py
- Accessibility Options
- Camera plugin for the Ren'py Engine
- Auto Weather Change weather-utils
- Rotating an object with movement of the mouse
- Layered Parallax Code
- Clickable areas for all
- how to write conditionswitch in python
- Calling a call from screen
- Challenge System For Ren'Py
- Scroll any background seamlessly
- Play Video Element from Screens
- Event Handler with Lexer based controls
- Imagemap character selection screen!
- One approach to a non-looping Movie
- getting your head around Ren'py: for coders
- Noir-Style Shadow/Lighting Effects
- Using XML to populate lists using classes
- Condition Switch within Condition Switch
- How to display percentage of your game completed/read
- About full customization
- Nested image manipulators
- SVG Color Chart
- How to interact with the environment
- 'Now Playing' popup window
- Confusing multiflag-dependant if statement
- All of Cute Demon Crashers! custom code :)
- One-screen visual novel
- Screen Sizes - Different Physical/Virtual Dimensions
- Flash -> Ren'Py Exporter (v 1.4, 26/4/2013)
- How to have hidden ending, unlock scene, dubbing
- Ren'Py Dictionary (Community Project)
- Object Oriented Programming & Rollback Module
- Beginner Level>Ren'Py>Questions>Graphics>Basics
- Dialogue and Diction Filter
- Customizing and Polishing Your Game
- Writing answers instead of choosing menu options
- LiveComposite Template Game
- Getting started and "common" mistakes in Renpy
- How to Start Ren'Py For Beginners!
- ConditionSwitch tutorial
- Renpy Tutorial for beginners (YouTube)
- Ren'Py Beginners Coding (Tutorial)
- Renpy Live2D Tutorial for Renpy 7.4.0
- LayeredImage Tutorial
- (Tutorial) Customizing Menus
- Implementing Translations in Ren'Py (Tutorial)
- (Tutorial) Easy Yes/No prompt customization (no imagemaps)
- A (short) Tutorial on Bars
- (Tutorial) Dynamic blur background for overlay menu like iOS
- (Tutorial) Animation and Transforms by Example
- (Tutorial) Making a Separate Content Patch
- Logo Intro, Opening and Press to Start Screen (Tutorial)
- Messy character customization tutorial
- (Tutorial) Crash course in screen language/UI design
- (Tutorial) Custom Backgrounds:Save/Load/Pref/Yes-No/MainMenu
- (Tutorial) Moving from Pygame to Renpy
- Button's behavior (explanation)
- Imagemaps explained by a dummy
- Image Tags Explained With Example On Sprites (Tutorial)