Is there a function or script to check to see if certain mods are enabled? Like if I wanted to detect a specific unit pack mod is in use?
Check for Specific Mods Loaded
@rama Quite a long time ago I found (in one of the mods) a modlocator.
local MODfound = 'nottrue'
function MODisactive()
if MODfound == 'nottrue' then
MODfound = GetActiveModLocation("Your mod ID")
end
return MODfound
end
function GetActiveModLocation( mod_Id )
for i, mod in __active_mods do
if mod_Id == mod.uid then
LOG("MANIMAL\'s MOD LOCATOR INFO: Active Mod Found (name="..(mod.name or 'unknown')..", UID="..(mod.uid or 'none')..", location = "..mod.location..") .")
return mod.location
end
end
return nil
end
I always keep this file in the root folder of the mod.
It gives variety. If the mod is enabled, then one action occurs, and if it is disabled, then another.
In *script.lua it looks like this:
local MODISACTIVE = import('/mods/Your mod name/modlocator.lua').MODisactive()
OnStopBeingBuilt = function(self,builder,layer)
if MODISACTIVE then
else
end
Unit.OnStopBeingBuilt(self,builder,layer)
end,
Try. This modlocator helps me out.
If you are working on say your own mod, there is a way. I'm not 100% on what it is, but 4z0t's ScoreBoard has a mod dependency (requires UI Mod Tools V8) , so you can probably check how he did that and derive your own functions.
I have uses this in my Commander Survival Kit to Check If one of my Mods is activated.
The Check is required for the Space Reinforcements Manager, which should be only available If a Player has activate my Space Mod (FBP Orbital). If Not the Space Reinforcements Manager is simple Not available for the Player If He plays the Commander Survival Kit Ingame.
local GetFBPOPath = function() for i, mod in __active_mods do if mod.name == "(F.B.P.) Future Battlefield Pack: Orbital" then return mod.location end end end
FBPOPath = GetFBPOPath()
In other Files in CSK
I Just use this Code to Check it:
If FBPOPath then
--Load Content or Functions
else
-- Empty = Do nothing
end
Really simple and easy
This Code is located in /Mods/Commander Survival Kit/hook/Lua/Game.lua and appears in other Lua Files of CSK as Well. It works perfectly