When the AppRunner mounts your p3d file into the VirtualFileSystem, it installs it in the directory named by appRunner.multifileRoot. This directory, then, is the root directory of the contents of your p3d file. If you need to load a file directly out of your p3d file, look for it here. At the moment, this is a constant string; but future releases of Panda might need to install the multifile into a different place each time, so you should not write code that depends on this string being fixed.
You can assign a Python function object to this member. This function will be called whenever a Python exception propagates to the top of the call stack; you can use this to deal appropriately with unexpected behavior in your application. If you do not assign this, the default behavior for an uncaught exception will be to terminate the app.
This is the WindowProperties structure that is used for the initial window that is created when you import DirectStart; you can use this if you want to re-create a new window in the same place later (for instance, because you have an in-game option to switch between fullscreen and embedded mode).
Call this method to download and install a Panda3D package, as built by the ppackage.p3d utility, at runtime. This allows you to install the package at your leisure, instead of requiring the package to be downloaded before starting the p3d application.
Note that this method runs synchronously: it will download the package on-the-spot, however long that takes, and not return until it has finished. If you want to use an asynchronous download instead, downloading a package in the background while gameplay continues, you should use the PackageInstaller interface instead.