This textbook is a comprehensive documentation of Plotagon Studio Modded, with operation done by VeryExcited, who managed to fix a decompiled Plotagon Studio Desktop 1.11.0 and make it into its official form.
Performance Additions and Features documented in full below.
https://drive.google.com/file/d/1hGeYfYUW9darrMb_Zma9bPH7IYZTKvPB/view?usp=sharing
You must install Plotagon Studio Desktop (make sure it's 1.11.0 by going to the options menu) and download this google drive link, extract it, and then Run setup.bat with administrator.
This works on windows 11 now since sept. 7 2026 at midnight
For the first time since plotagon's entire life, there are countless improvements and optimizations made within it
Todo: PlotagonLibVorbis, CoherentUI full port? and AcapelaTTS unified v9+v12 support
And that's it, for now.
Note: not all features will come out at once. But, eventually that will happen. The big one's yet to release, which was said above.
The Vanilla Plotagon Studio Desktop 1.11.0 uses lix265 inside PlotagonWinRecorder.dll. This encoder is slow.
But, I had managed to have it use libx264 and that the app depends on ffmpeg instead now of whatever dll code it depended on, because that way is how mobile support can exist.
I had actually used mkv to shave off the remaining tail of bottlenecks, because I wanted to shave off the remaining syscalls too, even on an NVME like on my ThinkCentre720Q.
Rendering now has basically all of the configurations you would ever want.
Framerate's new, since it went first into Plotagon Studio Modded and was actually the first thing to come, hence the mod's original purpose "60fps mod".
Quality is configured with CRF.
And lastly, there are checkboxed options that are below the rendering options, which are "Hardware Acceleration", "HDR Video", and lastly, "Power Saving".
Power Saving should most commonly be utilized on mobile, or refer to "Media Codec" (upcoming, but expect limited functionality and still HDR support).
There's also an aspect ratio feature as well, which makes your video wider which can fit more characters inside it (especially with cinematic action scenes).
Vanilla Plotagon Studio Desktop also generated all of the audio itself before the video got to render, which is a huge bottleneck, and I mean huge.
So, again, ffmpeg. Vanilla uses AAC, I continue using AAC except done with ffmpeg.
There's also a native c# port of sox 14.4.1 for the first time in existence (exact version plotagon studio desktop 1.11.0 uses), and it's 100% accurate to the original c source.
Custom Music now coverts audio files of other formats to the FLAC file type, that being precisely 50% smaller than a regular wav, which should save space im your plotagon folder, as ffmpeg processes are cycled throughout each custom music track.
Microphone noise removal is also in this, but it's on by default and also optimized for mobile cases.
Audio channel count is configured with Audio Channels (including 3.1 and 5.1 options for a cinematic level action performance), but requires higher bitrate (which was exactly what I did).
All of these, in combination, are being streamed together within a single render frame, giving the benefit of smoother performance.
The User Interface's JavaScript code within itself was massively revamped for better functionality, less internet usage, a door to more customization, and at last, new themes and amazing optimizations, such as the following:
- Manuscript Instructions list now runs smoothly without it lagging when you have a long plot that's estimated 30min in duration.
- The plot selection menu was paginated for even faster loading.
- The character selection and scene selection menus both load faster as a result of specific optimizations.
- The manuscript instruction input should feel more consistently responsive.
And that's it.
Custom themes include whole accents including background, text, buttons, and even highlights.
Don't you believe that? Look in the Visual Screenshots below. There's also a button to the left of the options menu you should see when you want to immediately change custom themes inside it.
There's also new vanilla themes replacing the bland Gray and White themes, along with a lighting variant system within the new vanilla themes.
There's even a whole custom location system, which you should see position and rotation as draggable grid dot of with properties and even going back to a normal location, unless you run out of normal locations.
And, at last, there's a new dedicated effects instruction that pops up visually, and to the right of the instruction element, is a duplicate button with the total four buttons (including move and delete) being smaller and also perfectly fits the shortest instructions being sound and music.
Yep. And Rendering Menu got a revamp. See for yourself on the visual screenshots below.
Phoneme calculation is now streamed throughout all of the dialogue instead of being calculated in whole before the dialogue plays, reducing hitches significantly.
And, the animation itself is now deterministic and not dependant on unity delta time, meaning no matter how many times you render the same plot with the same dialogue and animations, you get a byte-identical output each time, which is wonderful.
And, for one major new thing, actors are now culled via a new Component on BakedCharacterObject, and it's also the best thing, because this means your low end device can handle rendering higher resolutions better and stuff.
Combine that with mipmapping.
The face animation itself uses interpolation due to it previously being a default 30fps one that plotagon put for their framerate constraints, and the lipsync uses different interpolation as well.
And also (if you didn't know), new types of conflict can actually be recreated thanks to Plotagon Studio Modded's custom location system, whenever you have them walking or not in specific situations, drastically increasing your creativity.
And lastly, there were a few frames at max where the face can stay frozen at its last animation before snapping straight to the following expression, which was pointed out by MSedat23.
The following glitch was once patched on new versions of plotagon story before its delisting from the app store from android.
Here, that face glitch and the pointy armpits issue were both fixed as a result of it, so now it should look cleaner.
The User Interface has unified support for landscape and portrait, with portait being for mobile. This solidifies things and makes it so you can just compile the app on mobile and drop in the same app.js.
(most of the pre-backup system screenshots are present here being launched in real time)
i love my life



Okay. after trying to install using this new version and manually putting the app.js in plotagon studio_data/userinterface/build/app.js, it works... until you want to open a plot. then it's stuck on this:

this is my log:
`Mono path[0] = 'C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/Managed'
Mono config path = 'C:/Program Files/Plotagon/Plotagon Studio/MonoBleedingEdge/etc'
Initialize engine version: 2020.3.7f1 (dd97f2c94397)
[Subsystems] Discovering subsystems at path C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/UnitySubsystems
GfxDevice: creating device client; threaded=1
Direct3D:
Version: Direct3D 11.0 [level 11.1]
Renderer: NVIDIA GeForce GTX 1050 Ti (ID=0x1c82)
Vendor:
VRAM: 4004 MB
Driver: 32.0.15.8266
Begin MonoManager ReloadAssembly
D3D11 device created for Microsoft Media Foundation video decoding.
Initializing input.
Input initialized.
Initialized touch support.
UnloadTime: 2.318300 ms
The referenced script (Unknown) on this Behaviour is missing!
The referenced script (Unknown) on this Behaviour is missing!
The referenced script on this Behaviour (Game Object '') is missing!
A scripted object (script unknown or not yet loaded) has a different serialization layout when loading. (Read 56 bytes but expected 84 bytes)
Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
The referenced script on this Behaviour (Game Object '') is missing!
A scripted object (script unknown or not yet loaded) has a different serialization layout when loading. (Read 48 bytes but expected 72 bytes)
Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
ProgramData folder: C:\ProgramData\PLOTAGON_PROGRAMDATA_3057dc7a-17d0-4222-aeac-74679bc28c4a
C:/Users/Artem/AppData/LocalLow/Plotagon/Plotagon Studio\UserInterface
YAAAAAAAAAY
PreviewRenderer: Created ARGB32 RenderTexture 1280x720
PreviewRenderer: Assigned ARGB32 RenderTexture to camera. Size: 1280x720
CaptureRenderer: Created RenderTextures 1280x720, AA: 1, Format: ARGB32 (Texture2D is RGBA32, encoder reads from that)
CaptureRenderer: Assigned RenderTexture to camera. Size: 1280x720
no activator
[UI Engine] (Info) Initializing Coherent UI ver. 1.8.9.3
UI Engine initialized..
Fallback handler could not load library C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/Mono/CoherentUI_Native
Fallback handler could not load library C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/Mono/CoherentUI_Native.dll
Fallback handler could not load library C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/Mono/CoherentUI_Native
Fallback handler could not load library C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/Mono/libCoherentUI_Native
Fallback handler could not load library C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/Mono/libCoherentUI_Native.dll
Fallback handler could not load library C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/Mono/libCoherentUI_Native
High-resolution timer initialized successfully
[UI Engine] (Info) PID: 8568 | 17208 19:29:28.917197 Staring Coherent UI Host ver. 1.8.9.2
[UI Engine] (Info) PID: 8568 | 17208 19:29:28.917197 Detected OS: Windows NT 6.2
[UI Engine] (Info) PID: 8568 | 17208 19:29:28.979238 [8568:17208:INFO:UIContentClient.cpp(73)] GPU info collected in host process:
[UI Engine] (Info) PID: 8568 | 17208 19:29:28.979238 [8568:17208:INFO:UIContentClient.cpp(78)] Main GPU vendor 4318 device 7298
[UI Engine] (Info) PID: 8568 | 17208 19:29:28.979238 [8568:17208:INFO:UIContentClient.cpp(98)] GPU driver NVIDIA 32.0.15.8266 from 6-9-2026
=== Loading Compute Shader Bundle ===
Bundle not found, trying Resources...
✗ Failed to load ARGB_To_NV12 compute shader!
Make sure the compute shader is either:
In a 'render_compute' bundle in StreamingAssets
In a Resources folder
=== Loading Compute Shader Bundle ===
Bundle not found, trying Resources...
✗ Failed to load ARGB_To_NV12 compute shader!
Make sure the compute shader is either:
In a 'render_compute' bundle in StreamingAssets
In a Resources folder
acapelaLibBasePath: C:\ProgramData\PLOTAGON_PROGRAMDATA_3057dc7a-17d0-4222-aeac-74679bc28c4a\AcapelaPlugin
Loading acapela library with path: C:\ProgramData\PLOTAGON_PROGRAMDATA_3057dc7a-17d0-4222-aeac-74679bc28c4a\AcapelaPlugin\AcaTTS.64.dll
C:\WINDOWS\system32
Loaded plugin!
Setting license!
License set!
Intialized tts
Number of voices: 2
Load result: 0
Unloading 5 Unused Serialized files (Serialized files now loaded: 2)
Unloading 17 unused Assets to reduce memory usage. Loaded Objects now: 1805.
Total: 6.313500 ms (FindLiveObjects: 0.114300 ms CreateObjectMapping: 0.040700 ms MarkObjects: 6.111100 ms DeleteObjects: 0.047000 ms)
Cannot delete content in builtin path
Existing Bundle out of date, using new one: C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/StreamingAssets\Content/items/top/model.female.top.prisoncoverall.3640152770.pcf
Unloading 1 Unused Serialized files (Serialized files now loaded: 2)
Unloading 0 unused Assets to reduce memory usage. Loaded Objects now: 2154.
Total: 15.156600 ms (FindLiveObjects: 0.155200 ms CreateObjectMapping: 0.040400 ms MarkObjects: 14.946800 ms DeleteObjects: 0.013300 ms)
[UI Engine] (Info) Coherent UI system initialized successfully
[UI Engine] (Warning) PID: 8568 | 17208 19:29:36.878649 Requesting resource read for file:///C:/Users/Artem/AppData/LocalLow/Plotagon/Plotagon Studio/cookies.dat with internal id 0 reported FAIL
The referenced script (PlotagonBuildPipe) on this Behaviour is missing!
The referenced script on this Behaviour (Game Object '') is missing!
A scripted object (probably PlotagonBuildPipe?) has a different serialization layout when loading. (Read 56 bytes but expected 84 bytes)
Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
The referenced script (PlotagonBuildPipe) on this Behaviour is missing!
The referenced script on this Behaviour (Game Object '') is missing!
A scripted object (probably PlotagonBuildPipe?) has a different serialization layout when loading. (Read 48 bytes but expected 72 bytes)
Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
[UI Engine] (Info) View created successfully with id 0
[UI Engine] (Info) PID: 8568 | 17208 19:29:36.982104 Navigating view 0 to coui://UserInterface/desktopWindows.html?appVersion=1.11.0&buildVersion=1&environment=production&deviceModel=MS-7C51%20(Micro-Star%20International%20Co.%2c%20Ltd.)&deviceOs=Windows%2010%20%20(10.0.26100)%2064bit&deviceId=unityPlayerDeviceId&bundleId=com.plotagon.plotagonstudio&appName=Plotagon%20Studio&isEditor=false&logging=false&platform=desktop&isSpecialDevice=normal&language=en&contentQuality=hq&textureFlavor=pvrtc
[UI Engine] (Info) PID: 8568 | 13988 19:29:37.095829 [5696:12964:INFO:renderer_main.cc(215)] Running without renderer sandbox
JS: Engine is attached
JS: Reading local storage from disk
JS: {"0":"Starting app with config","1":{"appVersion":"1.11.0","buildVersion":"1","environment":"production","deviceModel":"MS-7C51 (Micro-Star International Co., Ltd.)","deviceOs":"Windows 10 (10.0.26100) 64bit","mockUnity":false,"mockApi":false,"oauthClient...
JS: [Offline] getStoreContent patched – scenes and characters stripped from API response
[ManuscriptController] Accelerated rendering set to: False
[ManuscriptController] HDR recording set to: False
UI initialized!
JS: {"0":"Failed to load products from server","1":{}}
Unloading 1 Unused Serialized files (Serialized files now loaded: 2)
Unloading 3 unused Assets to reduce memory usage. Loaded Objects now: 2156.
Total: 23.772700 ms (FindLiveObjects: 0.305700 ms CreateObjectMapping: 0.055400 ms MarkObjects: 23.384500 ms DeleteObjects: 0.026000 ms)
JS: {"0":"[Offline] No local scene products loaded, using API fallback:","1":{"error":"scenes.json not found","searched":["C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/StreamingAssets\scenes.json"]}}
JS: {"0":"[Offline] No local character products loaded, using API fallback:","1":{"error":"characters.json not found","searched":["C:/Program Files/Plotagon/Plotagon Studio/Plotagon Studio_Data/StreamingAssets\characters.json"]}}
Building manuscript list from filesystem...
The referenced script (PlotagonBuildPipe) on this Behaviour is missing!
The referenced script on this Behaviour (Game Object '') is missing!
A scripted object (probably PlotagonBuildPipe?) has a different serialization layout when loading. (Read 56 bytes but expected 84 bytes)
Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
The referenced script (PlotagonBuildPipe) on this Behaviour is missing!
The referenced script on this Behaviour (Game Object '') is missing!
A scripted object (probably PlotagonBuildPipe?) has a different serialization layout when loading. (Read 48 bytes but expected 72 bytes)
Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
trying to unload content that doesnt exist: CCAnimatorController
`