CBATeam / CBA_A3

Community Base Addons for Arma 3
https://github.com/CBATeam/CBA_A3/wiki
GNU General Public License v2.0
367 stars 150 forks source link

Settings Framework doesn't support mod settings (non mission/server) #504

Closed Grezvany13 closed 8 years ago

Grezvany13 commented 8 years ago

Arma 3 Version: 1.62 (stable) CBA Version: 3.6.2.0 (stable)

Mods:

Description: The Settings Framework is a great tool to add custom settings for a mod inside a mission, however it seems that it currently doesn't support local settings for a mod/addon without being tied to a mission (like a userconfig file would).

Steps to reproduce: 1) Start Arma3 with @CBA and @CustomMod (which uses cba_settings_fnc_init to add settings) 2) Go to Options -> Game -> Configure Addons 3) You'll see that the Addons select box is empty

Where did the issue occur?

RPT log file:

This is either a bug, a (missing) feature or simply me not understanding how to implement it. However reading the scripts of the Settings UI, it doesn't seem to support profileNamespace. This feature would be very useful for mod developers to include mod specific settings which may be set client side (and could be forcefully overwritten by mission/server settings).

commy2 commented 8 years ago

Settings Client/Server values are stored in the profileNamespace https://github.com/CBATeam/CBA_A3/blob/master/addons/settings/fnc_set.sqf#L61

Settings Mission values are stored in the mission.sqm https://github.com/CBATeam/CBA_A3/blob/master/addons/settings/fnc_set.sqf#L96

The setting should show up just fine. Can you upload a screenshot? Are you testing in 3den? The thing with 3den is, that it's bugged with the preInit = 1; CfgFunctions and doesn't execute postInit at all unless you preview the mission. To make sure the setting shows up there, you should ideally use CBA XEH preInit (which get's around this bug with some band aid magic).

Grezvany13 commented 8 years ago

Thanks @commy2, I figured out what went wrong.

Since I had some issues with calling the scripts (and therefor didn't work), I messed up the event handlers during debugging which made it worse.

And I found out, after reading some issues at ACE3, that it's required to pre-load a world map when starting the game, otherwise PreInit doesn't work (and the "Configure Addons" is grayed out).

For people who try to make it work as well and end up at this issue I've created a simple gist with some example code: ArmA 3 - @CBA_A3 - CBA Settings Framework

commy2 commented 8 years ago

Yeah. Sorry that I still haven't written a proper doc. I'll probably do that asap.

shadez95 commented 8 years ago

https://github.com/CBATeam/CBA_A3/wiki/Settings-system