Page MenuHomeFeedback Tracker

CfgMods Conflict with Steam Workshop
Assigned, WishlistPublic

Description

Due to the nature of CfgMods, it can not be used with steam in its current state. You can not use @ as the prefix to your dir name inside CfgMods.
You are forced by the publisher to have a @ prefix on your mod folder name.

example:

class CfgPatches
{
class My_Mod //naming @My_Mod causes error, arma 3 will not launch
{

		units[] = {};
		weapons[] = {};
		requiredVersion = 1;
		requiredAddons[] = {"A3_Data_F"};
		author = "Benargee";

};
};

class CfgMods
{

       class My_Mod //naming @My_Mod causes error, arma 3 will not launch
       {
		dir = "My_Mod"; //naming @My_Mod doesnt work
		hidePicture = 0;
		hideName = 0;
		name = "My Mod";
		picture = "\My_Mod\My_Mod_logo_Small_128.paa";
		logoOver = "\My_Mod\My_Mod_logo_Small_128.paa";
		actionName = "Website";
		overview = "With my mod you can mod arma";
		tooltip = "My Mod";
		action = "http://www.example.com";
       };

CfgPatches, CfgMods and CfgMods.My_Mod.dir must all be equal for proper function.

If I upload my_mod.pbo, i will get folder named @my_mod when I subscribe to my_mod. There is no known way to get around automatic @ prefixing.

Either CfgMods needs to be reworked to allow @my_mod to work in dir while class is My_Mod, or steam publisher needs to stop adding @ to the beginning of every mod folder that gets downloaded. At least make it optional.

Details

Legacy ID
912197570
Severity
None
Resolution
Open
Reproducibility
Always
Category
Steam Workshop
Additional Information

Also, if possible. Add a parameter in mod.cpp that allows you to override CfgMods. So when you have a mod folder filled with mods that us CfgMods, you only have one entry displayed in the main menu. Or better yet, when you look at your mod list in the main menu, add a sub menu that lists all CfgMods under that master mod pack.

Event Timeline

Benargee edited Additional Information. (Show Details)Mar 20 2015, 8:31 PM
Benargee set Category to Steam Workshop.
Benargee set Reproducibility to Always.
Benargee set Severity to None.
Benargee set Resolution to Open.
Benargee set Legacy ID to 912197570.May 8 2016, 11:43 AM
Benargee edited a custom field.

Thank you for assigning this. It would make steam integration so much better. either add optional @ prefixing or make CfgMods less fussy. :)

Gekon added a comment.May 11 2015, 2:31 PM

There are two separate things here,

  • One is @ in the directory path, which should work. But you would have to include @ in the PBO header (prefix) as well, because directory paths are resolved using a virtual file system defined in the PBO header. Also, this is not related to Launcher, because the virtual file system and windows file system do not overlap.
  • Other one is @ in the class name. This will not work.

Adding the parameter won't likely happen. Why don't you just overwrite the specific class with a new empty value?

@Gekon
Sorry, my mistake, it's an issue with the publisher, not the launcher. I have no issues getting CfgMods working with non-Steam mods.
Could you possibly post an example on how to use the PBOPREFIX to avert this issue? I have little experience with prefixing. So far I have been making my addons without a pbo prefix.

I have no idea what you mean by overwriting the class with an empty value. What will that even acheive?

Just to be clear, @ is not in the pbo name. This would be the file path:
(Arma 3 exe directory)/@My_Mod/addons/My_Mod.pbo

The prefix is set in Addon Builder (Options > Prefix), but according to your example, it's not necessary.

Having /@My_Mod/addons/My_Mod.pbo should be fine and
dir = "@My_Mod" should work (See Epoch mod for example http://steamcommunity.com/sharedfiles/filedetails/?id=421839251 )

If you have multiple mods, each with cfgMods main menu icon defined. You can overwrite their classes in the last mod loaded to show only the ones you want to (and define other empty). Hiding of some loaded mods in main menu (or sub menu as you've called it) is something we want to do, but no ETA.