New VASSAL Engine Module error class not buildable

Dear all,

I am having problems with starting my newly created Module.
The error I get is: {className} cannot be cast to class VASSAL.build.Buildable.
Does anyone knows how to solve this?

2023-10-12 14:26:39,725 [17496-main] INFO VASSAL.launch.StartUp - Starting
2023-10-12 14:26:39,746 [17496-main] INFO VASSAL.launch.StartUp - OS Windows 10 10.0 amd64
2023-10-12 14:26:39,747 [17496-main] INFO VASSAL.launch.StartUp - Java version 20.0.2
2023-10-12 14:26:39,747 [17496-main] INFO VASSAL.launch.StartUp - Java home C:\Program Files\VASSAL-3.7.1\jre
2023-10-12 14:26:39,747 [17496-main] INFO VASSAL.launch.StartUp - VASSAL version 3.7.1
2023-10-12 14:26:39,895 [17496-AWT-EventQueue-0] INFO VASSAL.launch.ModuleManager - Manager
2023-10-12 14:26:48,010 [17496-SwingWorker-pool-2-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module file C:\Users\OANU\Downloads\OADemoGame_20231012.vmod
2023-10-12 14:26:48,210 [17496-SwingWorker-pool-2-thread-1] INFO VASSAL.launch.TilingHandler - No images to tile.
2023-10-12 14:26:48,210 [17496-SwingWorker-pool-2-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module OA Demo Wargame
2023-10-12 14:26:48,220 [17496-SwingWorker-pool-2-thread-1] INFO VASSAL.tools.io.ProcessLauncher - launching C:\Program Files\VASSAL-3.7.1\jre\bin\java -Xms1024M -Xmx1024M -javaagent:lib\vassal-agent.jar --add-opens java.desktop/sun.awt.shell=ALL-UNNAMED -Duser.home=C:\Users\OANU -Duser.dir=C:\Program Files\VASSAL-3.7.1 -cp lib\Vengine.jar VASSAL.launch.Editor --edit – C:\Users\OANU\Downloads\OADemoGame_20231012.vmod
2023-10-12 14:26:49,740 [46128-main] INFO VASSAL.launch.StartUp - Starting
2023-10-12 14:26:49,760 [46128-main] INFO VASSAL.launch.StartUp - OS Windows 10 10.0 amd64
2023-10-12 14:26:49,760 [46128-main] INFO VASSAL.launch.StartUp - Java version 20.0.2
2023-10-12 14:26:49,760 [46128-main] INFO VASSAL.launch.StartUp - Java home C:\Program Files\VASSAL-3.7.1\jre
2023-10-12 14:26:49,760 [46128-main] INFO VASSAL.launch.StartUp - VASSAL version 3.7.1
2023-10-12 14:26:49,760 [46128-main] INFO VASSAL.launch.Launcher - Editor
2023-10-12 14:26:52,050 [46128-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
VASSAL.build.IllegalBuildException: failed to load class MyTestModule.TdcRatings
at VASSAL.build.Builder.create(Builder.java:145)
at VASSAL.build.Builder.build(Builder.java:80)
at VASSAL.build.AbstractBuildable.build(AbstractBuildable.java:104)
at VASSAL.build.GameModule.build(GameModule.java:785)
at VASSAL.build.GameModule.build(GameModule.java:716)
at VASSAL.build.GameModule.init(GameModule.java:1985)
at VASSAL.launch.EditModuleAction.loadModule(EditModuleAction.java:48)
at VASSAL.launch.Editor.launch(Editor.java:82)
at VASSAL.launch.Launcher$1.run(Launcher.java:96)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassCastException: class MyTestModule.TdcRatings cannot be cast to class VASSAL.build.Buildable (MyTestModule.TdcRatings is in unnamed module of loader ‘data archive’ @2395dbfa; VASSAL.build.Buildable is in unnamed module of loader ‘app’)
at VASSAL.build.Builder.create(Builder.java:118)
… 21 common frames omitted
2023-10-12 14:26:52,180 [46128-AWT-EventQueue-0] INFO VASSAL.build.GameModule - OA Demo Wargame version 0.1

Hi,

The problem is your module is calling custom code MyTestModule.TdcRatings, but that custom code cannot be found in the module.

Have you copied your custom code into the module? In your vmod should be a folder name MyTestModule and in that folder should be a file TdcRatings.class.

Regards.

Hi,

Yes, the code is there. And in that specific folder and in that namespace.
And when I ignore the error, I can still import the class in a new definition and it works.
Any more tips?

With kind regards,

When I don’t include the class in the build.xml, but import this from inside the Editor of the Module, then I have no errors. So I guess I will go with this solution for now.

Glad you found a solution. Next step would have been for you to post a link to tour module so I could have a look.