With Escoria you can do something like this... I made a level exit scene with a cool arrow marker that has animations etc. When the player walks too far to the left of that marker I make a call to vm.run_event()
vm.run_event basically lets you run things the same way as using a .esc file, it just has a tricky "event" format.
So at the top of my scene script for the level_exit I have:
export(String, FILE, "*.scn") var scene_file
then in your function call wherever you trigger the scene change do:
var vm = gettree().getroot().getnode("vm")
event = [{"name":"changescene", "params":[scenefile]}]
vm.runevent(event)
That triggers a scene change just like in a .esc file for an object I think but without requiring the player to use the object etc. I just trigger it by proximity instead.