Invisible, Inc.

Invisible, Inc.

39 ratings
Sim Constructor + Sequential Mod Loader
File Size
0.035 MB
Dec 21, 2015 @ 10:20am
Oct 7 @ 3:52am
23 Change Notes ( view )

Subscribe to download
Sim Constructor + Sequential Mod Loader

The Sim Constructor is a tool that gives mod makers more freedom while maintaining compability.

These are the current modules:
1) Early, late, and unload options for mod loading
2) Modding existing generation options and customizing new options(more than one value, default to false etc)
3) Defining required mods. These mods will always be loaded before your. (I did not make this module. Credit goes to Lemonhead)
4) Adding Agent banter
5) Customizing hud elements

If you are using a mod that is made using the Sim Constructor, you need to have the Sim Constructor to run it.

How to use it (for mod makers)
--Change an existing generation option --Defined by option name, not simdef name --Reference can be found in client\states\state-generation-options rawset(simdefs.CUSTOM_OPTIONS,anyname,{ name, tip, check, strings, values, apply, retrieve }) --Customized generation option --If enabled=false this ption will start unchecked(ignored if Values is defined) --Values is a table that holds different alternatives --Strings contains names that match values(optional) --Value is default value(optional) modApi:addGenerationOption(optionName, name , tip, {enabled,values,strings,value} ) --Modify a hud file --The files that can be modified are all files located in gui.kwad/gui (you need to use kwad extractor to see these files) --data is deepmerged, so you only need to include the info that you are changing simdefs.SCREEN_CUSTOMS = util.extend(simdefs.SCREEN_CUSTOMS) { [filename] = { data } } --Set a game param directly --This feature has not been fully tested, use at your own risk --This code needs to be called in the load function instead of the init function modApi.mod_manager.genOptions[option] = options[option] --Loading mod content before or after other mods, or if the mod is disabled local function earlyLoad( modApi, options ) end local function earlyUnload( modApi, options ) end local function unload( modApi, options ) end local function lateLoad( modApi, options ) end local function lateUnload( modApi, options ) end --Add agent banter (use in load function after adding guard to agentdef, not in the init function) modApi:addBanter( { agents = {id,id},--The agents that are talking dialogue = { {id,string},--Id is the talking agent, string is what they say {id,string}, }, } ) --Set required mods modApi.requirements = { mods }

Here's an example mod that uses the Sim Constructor:

Feel free to discuss the mod on our Discord:
< >
cyberboy2000  [author] Oct 7 @ 3:54am 
No more errors if you try to add banter to an agent that is not enabled.
Added the ability to add arbitrary functions to be called whenever campaign time chamges.
cyberboy2000  [author] Oct 3 @ 6:50am 
Fixed another crash
cyberboy2000  [author] Sep 30 @ 12:03pm 
Made the addWorldPrefabt function work with existing corporations as well as other mods
cyberboy2000  [author] Sep 28 @ 3:43am 
Fixed incorrect looking doors when using custom wall textures
cyberboy2000  [author] Sep 24 @ 6:39am 
Fixed mods not unloading for old saves.
Added worldmap modifying features.
cyberboy2000  [author] Aug 23 @ 8:58am 
Update, because for some reason stuff broke in the last update.
cyberboy2000  [author] Aug 20 @ 1:52pm 
Added support for banter with a different number of agents than 2.
Custom stores can now define what type of overlay they have (fixes issues with Auxillary Server Terminals from Programs Extended)
DonkeyWorld Jun 19 @ 10:46am 
Thanks! I looked in core game's agentsdef but didn't see the IDs. I'd certainly make use of 3/4-way banter if you get to adding it (assuming I can figure out how to trigger banters at other times).
cyberboy2000  [author] Jun 19 @ 9:50am 
The agent id is the agentID variable in the agentdef. For klei agents this is:
-- 1 Decker
-- 2 Shalem
-- 3 Xu
-- 4 Banks
-- 5 Internationale
-- 6 Nika
-- 7 Sharp
-- 8 Prism
-- 100 Monster
-- 108 Central
-- 1000 Olivia
-- 1001 Derek
-- 1002 Rush
-- 1003 Draco

It's currently not possible to add banter that requires a number of agents different than two, but that's probably a thing that I should get to. I have no plans for adding support for banter at times other than level entry.
DonkeyWorld Jun 19 @ 9:24am 
For banter, how do I know which agent ID corresponds to which agent? Is 3-way banter possible?

And, this might be out of the scope of this mod but is it possible to trigger banter after certain events (turn #s,opening safe, KOing a guard)?