My own Mod can't be uploaded? What to do?

Hey there!

I started to create mods for FA, for now just simple editing of the unit.bp file....but when i try to upload it, for playing with my friends, i recieve this error message:

com.faforever.commons.api.dto.ApiException: The mod version has to be a whole number like 123, but was 'nil'
at com.faforever.client.api.JsonApiErrorHandler.handleError(
at org.springframework.web.client.ResponseErrorHandler.handleError(
at org.springframework.web.client.RestTemplate.handleResponse(
at org.springframework.web.client.RestTemplate.doExecute(
at org.springframework.web.client.RestTemplate.execute(
at org.springframework.web.client.RestTemplate.postForEntity(
at com.faforever.client.api.FafApiAccessorImpl.uploadMod(
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(
at java.base/java.lang.reflect.Method.invoke(
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(
at com.sun.proxy.$Proxy74.uploadMod(Unknown Source)
at com.faforever.client.remote.FafService.uploadMod(
at com.faforever.client.remote.FafService$$FastClassBySpringCGLIB$$6c91c77e.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(
at com.faforever.client.remote.FafService$$EnhancerBySpringCGLIB$$a886fd1f.uploadMod(<generated>)
at javafx.concurrent.Task$
at java.base/
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(
at java.base/java.util.concurrent.ThreadPoolExecutor$
at java.base/

anyone knows Where to adjust the parameter to get it running?

Thanks for your help!


you should have a mod_info.lua file with the mod's informations, the error message tells you there is no "version" attribute.

check this post for the correct way to make the info file


you could also upload your mod as zip and we can take a look/fix it.

Hey you both,
Thanks for your help...I copied the code out of the Tutorial and changed it in my way and that seems to work...absolutely no idea why it didnt work with my version at first...