clvrk/vellum

Papyrus render error on Windows

grbray opened this issue · 1 comments

Papyrus has a render error in Windows when attempting a force render.

Hot backups are enabled in Windows

force start render
[         VELLUM         ] Creating backup...
[         VELLUM         ]      -> Holding world saving...
No targets matched selector
[         VELLUM         ]      -> Copying 200 files...
[         VELLUM         ]      -> Veryfing file-integrity...
[         VELLUM         ]      -> Resuming world saving...
[         VELLUM         ] Backup done!
[         VELLUM         ] Initializing map rendering...
No targets matched selector
No targets matched selector
[         VELLUM         ]      -> Rendering map 1/3...
Stopping Bedrock server due to an unhandled exception from vellum...
System.ComponentModel.Win32Exception (5): Access is denied.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at Vellum.Automation.RenderManager.Start(String worldPath)
   at Vellum.Program.InvokeRender(String worldPath, String tempWorldPath)
   at Vellum.Program.<>c__DisplayClass16_1.<Main>b__7(String text)
   at Vellum.Program.<>c.<Main>b__16_3()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
[2020-08-22 12:03:01 INFO] Server stop requested.
[2020-08-22 12:03:01 INFO] Stopping server...
Quit correctly
Unhandled exception. System.ComponentModel.Win32Exception (5): Access is denied.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at Vellum.Automation.RenderManager.Start(String worldPath)
   at Vellum.Program.InvokeRender(String worldPath, String tempWorldPath)
   at Vellum.Program.<>c__DisplayClass16_1.<Main>b__7(String text)
   at Vellum.Program.<>c.<Main>b__16_3()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

The pertinent part of my vellum config is below

    "EnableRenders": true,
    "PapyrusBinPath": "c:\\bedrock-server-1.16.20.03\\papyruscs",
    "PapyrusOutputPath": "c:\\bedrock-server-1.16.20.03\\papyruscs\\output",
    "RenderInterval": 180.0,
    "PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html -f png -q 100 --deleteexistingupdatefolder",
    "PapyrusTasks": [
      "--dim 0",
      "--dim 1",
      "--dim 2"
    ]
  },

All folders exist in the appropriate locations as well.

clvrk commented

Might be because PapyrusBinPath has to point to the path including the executable name like this:

"PapyrusBinPath": "c:\\bedrock-server-1.16.20.03\\papyruscs\\PapyrusCs.exe",

Does this fix your issue?