Skip to content

0.13.0 - #138

Draft
nndda wants to merge 82 commits into
mainfrom
dev
Draft

0.13.0#138
nndda wants to merge 82 commits into
mainfrom
dev

Conversation

@nndda

@nndda nndda commented Jan 23, 2026

Copy link
Copy Markdown
Owner

(WIP changelogs)

0.13.0

Another big, breaking, and exciting changes and updates.

New

  • Dialogue: nested scope access is now possible! (Nested scope property #118)
    Before, you could only access the direct properties/methods of a scope.

    Scope.property = value
    Scope.method(args)

    Now, you can access any arbitrary deep properties of a scope.

    Scope.object.property = value
    Scope.object.another_object.method(args)
  • Dialogue: added dialogue line attribute data. (Dialogue line attribute #133)
    Metadata/attributes thingy for each line of the dialogue. For those who prefers declarative stuff:

    Dia:
        $portrait = "dia_happy.png"
        $voice_line = "dia_1.wav"
    
        "Welcome! to the Theatre!"

    And then, on the dialogue data:

    {
        ...,
        Key.ATTR: {
            "portrait": "dia_happy.png",
            "voice_line": "dia_1.wav"
        }
    }
  • Stage: func_call_filter property. (Add function call interceptor from user-defined callable #132)
    A Callable that intercept function calls made from the dialogue, and choose whether to execute it or not.
    If it returns true, the function gets executed. Otherwise, the function will be skipped.

    Use cases (that I could think of):

    • Sandboxing. Disallow certain methods or properties to be manipulated on certain scopes.
    • State managing. Allows for one-time use of functions.

    Example:

    func foo(func_data):
        # Skip function calls from Dialogue that calls `OS.execute()`
        if func_data[Dialogue.FUNC_SCOPE] == "OS" and\
           func_data[Dialogue.FUNC_NAME] == "execute":
                return false
    
        return true

    And then:

    stage.func_call_filter = foo
  • Stage: function_called signal.

    function_called(func_data: Dictionary, executed: bool)

    Emitted when, well, a function is called. It also give you its function, and an executed status: whether the function was called or not.

  • Dialogue: {jump} dialogue tags.
    Render the whole block of text wrapped in this tag immediately, all at once.

    Ritsu:
        "Wait wait wait...{d=0.5} you did {jump}WHAT??!!{/jump}"
  • Dialogue: Both {delay} and {speed} tags now have defaults value, that can be configured in the project setting.
    If you used certain value frequently, instead of inserting it over and over like this:

    Dia:
       "One,{d=1.2} two,{d=1.2} three,{d=1.2} aaaand..."

    You can set 1.2 as the default value, and just insert the {d}:

    Dia:
       "One,{d} two,{d} three,{d} aaaand..."
  • General: You can now disable/enable Theatre's header print (the 🎭 Theatre v<version> by nnda stuff) in the project settings, at theatre/general/print_header.

  • Parser: There's now parser benchmark, that measures how fast the parser compiles the written dialogue file. You can see the results from the GitHub Actions workflow logs here.

Changes

  • Stage: [BREAKING] Removed the old Stage class.

  • Stage: [BREAKING] Removed the deprecated caller-named methods.

  • Config: [BREAKING] Multi-thread parser import option now moved to theatre/parser.

  • General: Theatre version is now tracked in your project internally. (Use internal ProjectSettings over .theatre file #119)

  • Tons of bug fixes and performance improvements.

nndda and others added 30 commits October 29, 2025 12:56
Don't log error and create new `.theatre` file if not present.
whoopsie
`scan_sources()` doesn't trigger the Dialogue resources reimport :/
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@nndda nndda added this to the 0.13.0 milestone Jan 23, 2026
@nndda nndda self-assigned this Jan 23, 2026
@nndda nndda added bug Something isn't working enhancement New feature or request labels Jan 23, 2026
@nndda
nndda marked this pull request as draft January 23, 2026 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant