Class is in session!
A free curriculum for making DDLC mods and fanworks, from your first line of Ren'Py to release day. Start with FND 101, then follow a track: 100-level courses are for beginners, 200s build on them, and 300s go deep. The lessons are still being written.
- Foundations
- Ren'Py and scripting
- Writing
- Art and design
- Music and sound
- Release and community
- Beyond mods
Foundations
Start here: what modding is, the rules, and the setup every other course assumes.
Playing mods
For players: get mods running, and keep your copy of DDLC safe.
- Getting DDLC and keeping a clean copy
- Installing a mod on Windows, macOS, and Linux
- Playing mods on Android
- Why mods need the original DDLC, not DDLC Plus
- Antivirus warnings, missing files, and other common fixes
Your first mod
From an empty folder to a scene you can play.
- What a mod is, and what a fangame is
- Team Salvato's IP guidelines, in plain words
- Installing the Ren'Py SDK and a text editor
- Setting up the Doki Doki Modding Template
- A tour of the project: the game folder, scripts, and archives
- Writing your first scene
- Launching, testing, and fixing your first error
Ren'Py and scripting
The engine behind DDLC, from your first line of dialogue to effects that break the fourth wall.
Ren'Py basics
The statements every scene is built from.
- Dialogue, narration, and characters
- Showing backgrounds and sprites
- Transitions: scene, show, hide, and with
- Labels, jumps, and calls
- Menus and choices
- Variables and flags
- Playing music and sound
Working with DDLC's code
How DDLC itself is put together, and how to build on it.
- How DDLC's scripts are organized
- Sprite codes: poses and expressions
- Defining your own images, backgrounds, and CGs
- Persistent data and repeat playthroughs
- The poem minigame
- Keeping saves working between updates
Screens and interface code
Ren'Py's screen language, for menus and anything clickable.
- Screen language basics
- Buttons, bars, and actions
- Rebuilding DDLC's menus
- Custom textboxes and name boxes
- Phones, notebooks, and other in-game interfaces
Android ports
Bring a mod to phones and tablets.
- What changes on Android
- Touch-friendly menus and text sizes
- Building an APK with Ren'Py
- Testing on real devices
Effects and the fourth wall
The tricks DDLC is famous for, done well.
- ATL: animating with transforms
- Glitches, screen tears, and visual noise
- Fourth-wall tricks: files, names, and the game window
- Python inside Ren'Py
- Debugging with the console and tracebacks
- Performance and load times
Writing
Stories, characters, and poems worth clicking through.
Writing a visual novel
Plan and write a story that works on screen.
- Finding your premise
- Outlining a story
- Writing the club in character
- MC, the player, and point of view
- Dialogue that fits a textbox
- Pacing scenes across days
Poetry workshop
Poems carry half of DDLC's storytelling.
- How each club member writes
- Writing poems in character
- Poems that tell the story
- Word lists for the poem game
Branching stories
Choices that matter, and endings you can actually finish.
- Choices that matter
- Routes and flags on paper
- Multiple endings without multiplying the work
- Charting a branching script
- Playtesting every path
Horror and the fourth wall
Dread, meta storytelling, and heavy themes, handled with care.
- What DDLC teaches about slow-burn horror
- Foreshadowing and wrongness
- When the game talks to the player
- Writing heavy themes responsibly
- Content warnings that don't spoil
Editing and feedback
Turn a finished draft into a finished mod.
- Self-editing a script
- Proofreading inside Ren'Py
- Finding beta readers
- Taking feedback and rewriting
Art and design
Sprites, backgrounds, CGs, and the interface around them.
Working with DDLC's art
Edit and extend the art the game already has.
- How DDLC sprites are put together
- New expressions from existing parts
- Outfit and pose edits
- Editing backgrounds, and making night versions
- Sizes, formats, and exporting for Ren'Py
- Crediting art you didn't make
Original characters and art
New characters, backgrounds, and CGs that belong in the club.
- Designing an original character
- Matching DDLC's art style
- Drawing a full sprite set
- Backgrounds from scratch or from photos
- Composing a CG
Interface design
Give your mod a look of its own.
- What each of DDLC's interface files does
- Recoloring and retheming the interface
- Fonts, textboxes, and readability
- Title screens and main menus
- Contrast and accessibility
Music and sound
Soundtracks and sound effects, from finding them to making your own.
Music and sound for mods
Find, edit, and use audio you're allowed to use.
- Music you're allowed to use
- Finding and editing sound effects
- Seamless loops
- Audio formats, volume, and file size
- Channels, fades, and queues in Ren'Py
Composing a soundtrack
Original music that carries a scene.
- Tools: DAWs, instruments, and sample libraries
- Theme and variation, the DDLC way
- Scoring a scene's mood
- Mixing and mastering basics
- Covers and remixes of DDLC's music
Release and community
Ship it, share it, and keep a team going.
Releasing a mod
Everything between "it works on my machine" and launch day.
- Playtesting and bug hunting
- Building a release: what to ship, and what to leave out
- Hosting downloads
- A description and thumbnail that sell it
- Content warnings and age ratings
- Submitting to DDMC, and sharing it around
- Updates, version numbers, and changelogs
Running a mod team
Scope, collaborate, and finish together.
- Scoping a project you can finish
- Finding and keeping collaborators
- Version control with Git and GitHub
- Credits, roles, and communication
- Handling criticism
- Avoiding burnout
Beyond mods
Video mods, fangames, and other ways to tell DDLC stories.
Video mods
Tell a mod-style story as a video.
- What a video mod is
- Writing and staging for video
- Recording clean footage
- Editing, pacing, and voices
- Copyright and Content ID
Making a standalone fangame
Leave DDLC's files behind and build a game of your own.
- From mod to fangame: what changes
- Replacing every DDLC asset
- Choosing an engine
- Distributing a fangame under the IP guidelines