Repository navigation
Installation
Norz3n edited this page Nov 27, 2025
·
1 revision
This guide covers installing the RenPy Dynamic Ambient System in your Ren'Py project.
- Ren'Py SDK: Version 8.4 or higher
- Python knowledge: Basic understanding helpful but not required
- Audio files: OGG format recommended
The system requires PyYAML for configuration parsing. Install it to your game's python-packages folder.
pip install pyyaml -t game/python-packagesuv pip install pyyaml --target game/python-packages- Download PyYAML from PyPI
- Extract and copy the
yamlfolder togame/python-packages/
Copy the following files to your game/ directory:
| File | Description |
|---|---|
dynamic_ambient.rpy |
Core system class |
audio_assets.yaml |
Track configuration |
arrangements.yaml |
Arrangement definitions |
| File | Description |
|---|---|
ambient_auto_start.rpy |
Auto-start in main menu |
ambient_integration.rpy |
Settings UI screen |
debug_ambient.rpy |
Debug overlay |
For Creator-Defined Statements support:
game/
└── libs/
└── rpda/
└── 02-rpda-cds.rpy
After installation, your project should look like:
game/
├── audio/
│ ├── ambient_track1.ogg
│ ├── ambient_track2.ogg
│ └── main_theme.mp3
├── libs/
│ └── rpda/
│ └── 02-rpda-cds.rpy # Optional: CDS support
├── python-packages/
│ └── yaml/ # PyYAML library
├── dynamic_ambient.rpy # Core system
├── ambient_auto_start.rpy # Optional: Auto-start
├── ambient_integration.rpy # Optional: Settings UI
├── audio_assets.yaml # Track configuration
├── arrangements.yaml # Arrangement configuration
└── script.rpy # Your game script
Create game/audio_assets.yaml:
defaults:
fade_in: 2.0
fade_out: 2.0
tracks:
# Define your tracks here
base_ambient:
file: "audio/ambient_base.ogg"
type: "mandatory"
volume: 0.6
fade_in: 4.0
fade_out: 4.0
random_effect:
file: "audio/effect.ogg"
type: "random"
volume: 0.5
chance: 0.3
interval: [30, 120]
fade_in: 3.0
fade_out: 3.0
# Optional: Main menu theme
main_theme:
file: "audio/main_theme.mp3"
duration: 60
volume: 0.8
fade_in: 2.0
fade_out: 4.0
after_theme_arrangement: "main_menu"Create game/arrangements.yaml:
arrangements:
main_menu:
tracks:
base_ambient: { volume: 0.6 }
random_effect: { volume: 0.5 }Add to your script.rpy:
label start:
"Testing ambient system..."
# Using CDS (if installed)
ambient play "main_menu"
# Or using Python API
# $ ambient.play_arrangement("main_menu")
"Ambient should be playing now."
ambient stop
"Test complete."
returnWhen Ren'Py starts, you should see:
DynamicAmbientSystem: Registering X ambient channels.
DynamicAmbientSystem: Configuration loaded successfully.
- Ensure PyYAML is installed in
game/python-packages/ - Check the folder structure:
game/python-packages/yaml/__init__.pyshould exist
- Verify audio file paths in
audio_assets.yaml - Check that audio files exist in the specified locations
- Ensure files are in a supported format (OGG recommended)
- Verify
libs/rpda/02-rpda-cds.rpyexists - Ensure Ren'Py version is 8.5.0+ for CDS support
- Restart Ren'Py after adding CDS files
- Check for errors in the console during startup
- Ensure
dynamic_ambient.rpyis in thegame/folder
- Quick-Start — Get your first ambient scene running
- Audio-Assets-YAML — Learn track configuration
- Arrangements-YAML — Create complex audio scenes
RenPy Dynamic Ambient System v2.0.0 | Home | Installation | Quick Start | FAQ