Skip to content

Ho11ow1/RenTale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RenTale

Version: 2.0.0 License: MIT
A strongly typed Ren'Py framework for building Visual Novels without the usual runtime chaos.
Locations, Events, Characters, Inventory, Audio, Time, Gallery, and Flags all ready to go.


Features

Systems

  • Location, Event, FlagRef, Inventory, and Gallery systems, all type-checked and auto-registered.

Characters

  • ExtendedCharacter wraps Ren'Py's built-in character with relationship stats and labels.

Managers

  • Static utility classes for Audio and Time

Type Safety

  • Runtime validation, custom exceptions, and sandboxed event actions.

Build

  • Custom pipeline that strips junk and packages assets into deterministic RPA archives.
  • Each concern gets its own archive — RenTale core, user scripts, audio, and other assets are all separated.

Quick Example

# Define locations
default L_City = Location("City", "label_city")
default L_Park = Location("Park", "label_park", isUnlocked = False)
 
# Define a character
default Willow = ExtendedCharacter("Willow", color = "#1b1b1b", relationship = "The weeping one")
 
# Define an event
default E_Meet_Willow = Event(
    name = "Meet_Willow",
    location = L_City,
    isUnlocked = True,
    isAutomatic = True,
    action = (
        "AudioManager.PlaySFX('audio/SFX/EventNotification.mp3');"
        "Willow.IncreaseStat(StatType.Friendship, 10);"
        "L_Park.Unlock();" 
        "renpy.call('Label_Event_Meet_Willow');"
    )
)

# In a location label
label label_city:
    $ RenTale_TriggerAutomaticEvents()
    # ...

Docs

Reference Description
API.md Core framework — all models, managers, functions, variables, and exceptions
UserAPI.md User-level code — ExtendedCharacter, StatType, modification guide

Code Style

RenTale uses a C# naming convention rather than PEP 8:

Element Convention Example
Classes PascalCase ExtendedCharacter, FlagRef
Methods PascalCase Set(), Increment(), Unlock()
Public functions RenTale_PascalCase RenTale_TriggerAutomaticEvents()
Private functions RenTale_snake_case No example as they're internal
Public properties PascalCase Name, Friendship
Files PascalCase.rpy matches class name

This prioritises consistency with statically-typed languages and keeps RenTale internals visually distinct from user code.

If you prefer snake_case, nothing stops you from adapting things to your own style.


Requirements

  • Ren'Py SDK version 8.0 or higher
  • Basic Python OOP knowledge (classes, methods, enums)
  • Minimal Ren'Py scripting knowledge

License

MIT License - see LICENSE

If you find any issues during usage, please create a github Issue Here

About

A strongly typed Ren'Py framework for building Visual Novels without the usual runtime chaos

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages