I cant get my mod to start


Recommended Posts

I've been working for a few days on a mod, I plan for it to be a very big mod (it has proven to be quite a challenge so far!) I haven't finished implementing all of the features (and I would mention them in here, but coding some of this features is kind of hard and could be controversial for some people so I think it is best not to compromise myself to show features I don't know if I can even implement) but I thought I had enough code to test the features I did complete to this point.

 

But the game simply refuses to start. I checked the task manager and no invisible inc process is running, it starts and suddenly disappears. I checked the game's log and I think I found where the problem is, I get this error:

 

Pre localization mounting for content mod [mods/my_mod_test_1/scripts.zip] scripts at: [my_mod_test_1]
Executing pre localization 'my_mod_test_1/modinit.lua':
MOD-INITSTRINGS FAILED: pcall failed
 
while all other mods I have show this:
 
Executing pre localization 'workshop-551989114/modinit.lua':
MOD-INITSTRINGS OK

 

I deduced that there was a problem in my modinit.lua file regarding how I initialized my strings or something string related (initstrings? maybe) but I just don't seem to get it to work. Could someone please explain to me what I am doing wrong and how to solve it? If it is required I could post a copy of my modinit.lua file's contents.

Link to comment
Share on other sites

I thought I had enough code to test the features I did complete to this point.

Dunno what you were doing and how, but if I were you I'd take api example and starts to add small feature after small feature, with play-testing of every small single step.

Link to comment
Share on other sites

There could be many reasons for this error (it happens to me all the time) so I think you should show us your modinit file.

 

After tinkering around a little bit more with the code, it seems I covered a hole by digging a deeper one  :hopelessness:

 

now I have this error:

Executing pre localization 'my_mod_test_1/modinit.lua':
MOD-NO INITSTRINGS FUNCTION PRESENT
MOD-INITSTRINGS OK

 

I do have strings to initialize! What's going on?!

here's my modinit code:

 

-- the main initialization of the mod's code local util = include( "modules/util" )-- init will be called oncelocal function init( modApi )   	log:write("inside the AGENT_REBALANCE mod")    	local dataPath = modApi:getDataPath()	local scriptPath = modApi:getScriptPath()	KLEIResourceMgr.MountPackage( dataPath .. "/gui.kwad", "data" )    	KLEIResourceMgr.MountPackage( dataPath .. "/drpedler.kwad", "data" ) 	KLEIResourceMgr.MountPackage( dataPath .. "/alt_deck.kwad", "data" )     	KLEIResourceMgr.MountPackage( dataPath .. "/drpedler_grp_anim.kwad", "data/anims" ) 	    -- Load MOD strings.      local DLC_STRINGS = include( scriptPath .. "/strings" )    modApi:addStrings( dataPath, "AR", DLC_STRINGS )    	local scriptPath = modApi:getScriptPath()	--modApi:addAbilityDef("smr_vulnerability_analysis" scriptPath .. "/vulnerability_analysis" )	 modApi:addAbilityDef( "breakDoor_2", scriptPath .."/breakDoor_2" )	 modApi:addAbilityDef( "throw_2", scriptPath .."/throw_2" )	 modApi:addAbilityDef( "melee", scriptPath .."/melee" ) 	 modApi:addAbilityDef( "sprint", scriptPath .."/newsprint" )	 modApi:addAbilityDef( "wireless_sniff", scriptPath .."/wireless_sniff" )    modApi:addGenerationOption("agentAndItems", STRINGS.AR.OPTIONS.ENABLE_AGENTS , STRINGS.AR.OPTIONS.ENABLE_AGENTS_TIP)    modApi:addGenerationOption("noWireframes", STRINGS.AR.OPTIONS.WIREFRAMES , STRINGS.AR.OPTIONS.WIREFRAMES_TIP)    end-- load will be refreshed and run each time a new campaign is started.local function load( modApi, options )   local scriptPath = modApi:getScriptPath()--   local agentdefs = include( scriptPath .. "/agentdefs" )--   for name, agentDef in pairs(agentdefs) do--      modApi:addAgentDef( name, agentDef, { name } )--   end--        --   local itemdefs = include( scriptPath .. "/itemdefs" )--   for name, itemDef in pairs(itemdefs) do--      modApi:addItemDef( name, itemDef )--   end    if options["noWireframes"].enabled then        	 local animdefs = include( scriptPath .. "/animdefs_no_wireframes" )    for name, animDef in pairs(animdefs) do        modApi:addAnimDef( name, animDef )    end    				    end -- Dr.Pedler and his stuff:     if options["agentAndItems"].enabled then      	local agentdefs = include( scriptPath .. "/agentdefs" )        for name, agentDef in pairs(agentdefs) do            modApi:addAgentDef( name, agentDef, { name } )        end                local itemdefs = include( scriptPath .. "/itemdefs" )        for name, itemDef in pairs(itemdefs) do            modApi:addItemDef( name, itemDef )        end   		 local animdefs = include( scriptPath .. "/animdefs" )    for name, animDef in pairs(animdefs) do        modApi:addAnimDef( name, animDef )    end     	--add him to the detention centres:	       local serverdefs = include( scriptPath .. "/serverdefs" )       if serverdefs.TEMPLATE_AGENCY and serverdefs.TEMPLATE_AGENCY.unitDefsPotential then            for i,unitDef in ipairs(serverdefs.TEMPLATE_AGENCY.unitDefsPotential) do                modApi:addRescueAgent( unitDef )            end       end    end	end--local function initStrings( modApi )----endreturn {    init = init,    load = load,   -- initStrings= initStrings,} 

 

I have been using other mod's modinit files as examples (mainly shrish's Dr. Peddler modinit), but I think the root of the problem is that I don't have very clear where should I initialize the strings.

 

The game still refuses to boot though  :grumpy:

 

oh I also got this error:

 

 [LUA] mod.init ERROR: error loading module 'my_mod_test_1/strings' from file 'my_mod_test_1/strings.lua':
my_mod_test_1/strings.lua:19: '}' expected (to close '{' at line 17) near 'BREAK_DOOR_2_DESC'
stack traceback:
game/client/mod-manager.lua:263: in function <game/client/mod-manager.lua:262>
[C]: ?
[C]: in function 'require'
game/client/include.lua:10: in function 'include'
my_mod_test_1/modinit.lua:18: in function 'init'
game/client/mod-manager.lua:260: in function <game/client/mod-manager.lua:256>
[C]: in function 'xpcall'
game/client/mod-manager.lua:255: in function 'mountContentMod'
game/client/mod-manager.lua:73: in function 'init'
game/client/class.lua:39: in function <game/client/class.lua:30>
main.lua:129: in main chunk
----------------------------------------------------------------
game/client/strict.lua:26: variable 'res' is not declared
 
stack traceback:
[C] ?
[C] in function 'assert'
game/client/strict.lua:26 in function <game/client/strict.lua:24>
game/client/mod-manager.lua:271 in function 'mountContentMod'
game/client/mod-manager.lua:73 in function 'init'
game/client/class.lua:39 in function <game/client/class.lua:30>
main.lua:129 in main chunk
 
----------------------------------------------------------------
game/client/strict.lua:26: variable 'statemgr' is not declared
 
stack traceback:
[C] ?
[C] in function 'assert'
game/client/strict.lua:26 in function <game/client/strict.lua:24>
game/modules/bugreport.lua:17 in function <game/modules/bugreport.lua:11>
[C] ?
[C] in function 'assert'
game/client/strict.lua:26 in function <game/client/strict.lua:24>
game/client/mod-manager.lua:271 in function 'mountContentMod'
game/client/mod-manager.lua:73 in function 'init'
game/client/class.lua:39 in function <game/client/class.lua:30>
main.lua:129 in main chunk
 
----------------------------------------------------------------
Dec 31 15:46:56 -- game/client/strict.lua:26: variable 'statemgr' is not declared
 

 

I think there's a problem with a comma that is interfering with the "}" somehow.

Link to comment
Share on other sites

Ok as of the date I am writing this post I can't still get my mod to boot. I will get that thing to work eventually, but on the meantime could someone explain to me the process of extracting .png files from .kwad files?

 

I used MadDoctor5813's tool, but I am running into the problem Shirsh ran when trying to extract Peddler's anims and portraits: I am getting images with "swamped channels" (I don't know if this is the correct term to use, but those in the ".kwad?" topic were using it to refer to it) what I mean is that all the .png I extract have weird color unlike the colors in game.

 

I tried editing the images, I thought changing the color saturation could help get the original colors back, but that didn't work. Please excuse me if the answer to my question can be found on the ".kwad?" topic and I failed to find it.

Link to comment
Share on other sites

KWADTool man, I think latter edition of MadDoctor's extractor don't mess channels, but anyway, just use Strelock's KWADTool. Thread in modding forum. Check my basic guide btw http://steamcommunity.com/sharedfiles/filedetails/?id=582056968

 

 

Pre localization mounting for content mod [mods/my_mod_test_1/scripts.zip] scripts at: [my_mod_test_1]Executing pre localization 'my_mod_test_1/modinit.lua':MOD-INITSTRINGS OK

HECK YEAH! freaking finally! Thanks everybody, It finally worked!

...

...

It still doesn't boot though  :dejection:

 

But hey, that's just a small victory for today, there seems to be another problem somewhere in the code, probably a missing "}" or I forgot a comma (as I learned the hard way EVERYTHING is a list in lua and thus EVERYTHING in an ... array? list? Table! yeah table, is to be followed by commas   :lol:) but tomorrow will be a new day.

 

And by the way thanks for your help Shirsh, I knew there must be some tutorial on that somewhere, I just didn't know where.

 

While my last unpacking had messed up colors I did realized there are a lot of unused icons, some for this so-called "prototype items" that's weird, I guess it is content from when the game was still called "incognita" 

Link to comment
Share on other sites

Ok it seems like I am finally making some progress. The game was about to start, the screen showed black with KLEI's water mark on the lower right corner of the screen, the cursor changed to the blue, arrow and then, it suddenly closed.  :frown-new:

 

I know modding and programming is not an easy task. I didn't mean to open this topic to whine about how my mod is not working because I know that's the least you modders want to deal with. 

 

Writing this mod has felt like going on a crash course  :highly_amused: but I am learning what NOT to do to make the mod work. 

 

Now I am getting the following error:

 Loading mod AR, with id: my_mod_test_1----------------------------------------------------------------### ABORTING: FATAL SCRIPT ERROR ###game/client/mod-api.lua:293: attempt to index field 'traits' (a nil value)stack traceback:	[C] in function 'traceback'	game/client/state-manager.lua:31 in function <game/client/state-manager.lua:30>	game/client/mod-api.lua:293 in function 'addAgentDef'	my_mod_test_1/modinit.lua:59 in function 'load'	workshop-580661011/mod_manager.lua:50 in function 'loadModContent'	game/client/states/state-main-menu.lua:106 in function 'onLoad'	game/client/state-manager.lua:134 in function 'activateAtIndex'	game/client/state-manager.lua:148 in function 'activate'	game/client/states/state-splash.lua:66 in function 'onUpdate'	game/client/state-manager.lua:40 in function <game/client/state-manager.lua:35>	[C] in function 'xpcall'	game/client/state-manager.lua:69 in function <game/client/state-manager.lua:62>### Shutting down... 

The weird thing is that is pointing the error on the mod-api.lua instead that on a file of my mod. Where is my mistake then?

also the error is followed by yet another error message directly bellow the previous error message in the log:

---------------------------------------------------------------- -- ### ABORTING: FATAL SCRIPT ERROR ###game/client/mui/mui.lua:321: attempt to index local 'screen' (a nil value)stack traceback:	[C] in function 'traceback'	game/client/state-manager.lua:31 in function <game/client/state-manager.lua:30>	game/client/mui/mui.lua:321 in function 'deactivateScreen'	game/client/states/state-main-menu.lua:147 in function 'onUnload'	game/client/state-manager.lua:109 in function 'deactivate'	game/client/state-manager.lua:165 in function <game/client/state-manager.lua:163>	[C] in function 'xpcall'	game/client/state-manager.lua:163 in function 'shutdown'	game/client/state-manager.lua:79 in function <game/client/state-manager.lua:62> 

after this the log saves some final information for debugging and supposedly sends it to klei servers, although I have the "send metrics" option disabled. then the log ends and the game closes.

 

I think the problem is in that I don't know how to add traits to the items

I don't know if it should be:

	augment_name = util.extend( commondefs.augment_template )	{		name = STRINGS.NAME_PATH,		desc = STRINGS.DESC_PATH,		flavor = STRINGS_FLAVOR_PATH, 		traits = util.extend( commondefs.DEFAULT_AUGMENT_TRAITS ){			addTrait = {{"trait",true}},	            installed = true,		},		profile_icon = "icon_small_path.png",    	profile_icon_100 = "icon_path.png",	},	 

OR should it be:

	augment_name = util.extend( commondefs.augment_template )	{		name = STRINGS.NAME_PATH,		desc = STRINGS.DESC_PATH,		flavor = STRINGS_FLAVOR_PATH, 		traits = util.extend( commondefs.DEFAULT_AUGMENT_TRAITS ){			modTrait = {{"trait",true}},	            installed = true,		},		profile_icon = "icon_small_path.png",    	profile_icon_100 = "icon_path.png",	}, 	augment_name = util.extend( commondefs.augment_template )

Or even:

	augment_name = util.extend( commondefs.augment_template )	{		name = STRINGS.NAME_PATH,		desc = STRINGS.DESC_PATH,		flavor = STRINGS_FLAVOR_PATH, 		traits = util.extend( commondefs.DEFAULT_AUGMENT_TRAITS ){	            installed = true,		},        addAbility("ability_name")        profile_icon = "icon_small_path.png",    	profile_icon_100 = "icon_path.png",	}, 	augment_name = util.extend( commondefs.augment_template )

But I also have an augment which works similar to internationale's augment, and I saw that internationale's augment is declared a little bit differently from other agents' augments:

    augment_name = util.extend( commondefs.augment_template )    {                name = STRINGS.NAME_PATH,		desc = STRINGS.DESC_PATH,		flavor = STRINGS_FLAVOR_PATH, 		traits = util.extend( commondefs.DEFAULT_AUGMENT_TRAITS ){			addTrait = {{"wireless_range", 4}}, --or should it be "modTrait" here?			installed = true,			wireless_range = 4, 		},        --and addAbility here?        abilities = util.tconcat( commondefs.augment_template.abilities, { "my_custom_ability_name" }),	profile_icon = "icon_small_path.png",    	profile_icon_100 = "icon_path.png",	},	 

 

So I am confused  :indecisiveness: But anyway thanks to all of those like Shirsh or Cyberboy2000 that take their time to teach some of us baby modders

Link to comment
Share on other sites

Programming and modding is a lot about debugging. When you see an error in a file other than your own you can open that file and see what it tries to do (check scripts.zip in main directory). Most of the time anyways. Sometimes, the trace isn't too helpful and you might have to guess what happened based on what change you did.

 

game/client/mod-api.lua:293: attempt to index field 'traits' (a nil value)

For this error you can open mod-api.lua and look at line 293. It says:

 

agentdefs[ name ].traits.dlcFooter = self._dlc_footer

 

The problem is that your agent does not have a traits table. traits = {}, should be sufficient to avoid that particular error.

 

As for how traits should be added to items. It varies for different traits. The important part is that all items and agents have a traits table, so when any function tries to add something to item.traits or agent.traits, they don't get a traits is nil error.

Link to comment
Share on other sites

Yeah Lemonymous is right. If you read the traceback you can see that the problem probably occured in your modinit file at line 59.

Setting traits to an empty table is a bad idea though. If you see how the dlc did it you can see that all agentdefs have

traits = util.extend( commondefs.DEFAULT_AGENT_TRAITS ) { mp=8, mpMax =8, }

Why mp and mpMax are not defined in DEFAULT_AGENT_TRAITS I do not know.

 

The difference between modtrait and addtrait is that when you install an augment, addtrait will add something to your traits table (normally you don't have the wireless_range trait) while modtrait changes a a trait in the traits table (for example titanium rods increases your meleeDamage trait)

Link to comment
Share on other sites

Hey I have an idea for an augment that produces 2 PWR when using any PWR consuming item or augment that uses more that 3 PWR and that produces 1 PWR with any item or augment that consumes more than 0 PWR but less than 3 PWR.

 

My question is: Is there any universal function or place in the code where I can determine if a PWR transaction has been done? Or would I have to go item per item adding an "if unit:countAugments("augment_name") > 0 then" code block?

Link to comment
Share on other sites

A few days ago I decided it would be better if I tried doing a smaller mod to practice before finishing this mod I've been asking you guys to help me clear some doubts of.

 

I tried to do an agent mod. While checking the simdefs.lua file I think I finally found the long-sought for way to add agent load outs instead of separate agents for the agents that are modded, so I tried modding in a new agent (well not very "new" graphically speaking) with its own archieve version. But I run yet again into the MOD-INITSTRINGS FAILED error  :mad-new:

 

I've tried evrything already. The other mod I had did work (I am referring to the mod which I talked about initialy on this topic) I even compared both, but this one just doesn't load  :indecisiveness:

 

I'll keep searching for the problem, but if you can see my mistake please post it. 

 

this is the code for my "modinit.lua" file:

local util = include( "modules/util" )-- init will be called oncelocal function init( modApi )   	log:write("inside the LOCKE AGENT MOD")    	  local dataPath = modApi:getDataPath()	      local scriptPath = modApi:getScriptPath()	KLEIResourceMgr.MountPackage( dataPath .. "/gui.kwad", "data" )		local scriptPath = modApi:getScriptPath()	    modApi:addAbilityDef("knock_daemon" scriptPath .. "/knock_daemon" )        modApi:addAbilityDef("permacloak" scriptPath .. "/permacloak" )	    modApi:addGenerationOption("agentAndItems", STRINGS.AGELOC.OPTIONS.ENABLE_AGENTS , STRINGS.AGELOC.OPTIONS.ENABLE_AGENTS_TIP)    end-- load will be refreshed and run each time a new campaign is started.local function load( modApi, options )   local scriptPath = modApi:getScriptPath() -- Locke and his gear:     if options["agentAndItems"].enabled then      	local agentdefs = include( scriptPath .. "/agentdefs" )        for name, agentDef in pairs(agentdefs) do            modApi:addAgentDef( name, agentDef, { name } )        end                local itemdefs = include( scriptPath .. "/itemdefs" )        for name, itemDef in pairs(itemdefs) do            modApi:addItemDef( name, itemDef )        end   	--	 local animdefs = include( scriptPath .. "/animdefs" )--    for name, animDef in pairs(animdefs) do--        modApi:addAnimDef( name, animDef )--    end     	--add him to the detention centres:	       local serverdefs = include( scriptPath .. "/serverdefs" )       if serverdefs.TEMPLATE_AGENCY and serverdefs.TEMPLATE_AGENCY.unitDefsPotential then            for i,unitDef in ipairs(serverdefs.TEMPLATE_AGENCY.unitDefsPotential) do                modApi:addRescueAgent( unitDef )            end       end    --Check if the snippet bellow works.       if serverdefs.DEFAULT_LOADOUTS then            for unitDef in serverdefs.DEFAULT_LOADOUTS do            --especially this part                modApi:addLoadout( unitDef )            end       end    end	endendlocal function initStrings( modApi )    local dataPath = modApi:getDataPath()    local scriptPath = modApi:getScriptPath()	    local DLC_STRINGS = include( scriptPath .. "/strings" )    modApi:addStrings( dataPath, "AGELOC", DLC_STRINGS )  endreturn {    init = init,    load = load,    initStrings = initStrings,} 

 

and this is the code for my "strings.lua" file:

 

Oh and I know some of the stuff in the strings might sound interesting, but since the game doesn't even start I haven't tested any of these features. The one that might sound the most awesome and I must say is the one I doubt the most that will work is the "vault drill" I'm having troubles of thinking how to turn a lock decoder into a vault door lock decoder with a 6 turn CD. And I know once you read the strings will say this agent is OP, but trust me that privilege to use the "vault drill" will cost you and it isn't cheap at all (and I am not talking about credits nor PWR)

local DLC_STRINGS ={	           	OPTIONS =	{		ENABLE_AGENTS = "Enable new agent and items",		ENABLE_AGENTS_TIP = "Agent Locke is a Black Market courier, Black Hat Cryptographer and a white skinned young man.",  	},	AGENTS =	{		LOCKE = {			NAME = "Locke",			FILE = "FILE #RS42-C0D3F-UN105309",			YEARS_OF_SERVICE = "1",			AGE = "26",			HOMETOWN = "Brooklyn",			RESCUED = "They caught me in the washroom. It\'s not fair!",			BIO_SPOKEN = "",			FULLNAME = "Jonathan \"Locke\" F. Gordon",			FULLNAME_2 = "ARCHIVED -- AISLE\'S GHOST",			BIO = "Locke grew in a harsh environment of a rigid corporate dominion and gang rule. His hometown had always been rather violent, but when the FTM corp rose to power, the few gubernamental protection in his hometown became next to nothing. Crime and gangs soon thrived in the city, but Locke and his family found themselves trapped when FTM declared his city was too much of a liability to support. FTM locked down the city and left the city to rot, no one could go in or out of the city and the only resources available were junk and thrash that was dumped on the surroundings of the city. Locke's hometown was effectively wiped from existance. Locke never forgave FTM for this.",			BIO_A = "When Locke found himself on deep problems with gangs and realizing he was far to feeble to be accepted by any gang, he used his only strength: wits, to hack FTM\'s junk trucks, open a hole in the emancipation barrier, het him and his family out forged IDs pretty much keep the whole lie about him being part of a rich, corporate family for years. Locke maintained his family by siphoning low-security corporate credit accounts, and selling corporate intel in the black market. With the creation of the SecNet and higher infosec awareness on FTM\'s executives Locke\'s opportunities greatly diminished. Until one day a certain \"Info Broker\" found him. This \"Info Broker\" as he liked to identify, soon relized he had chosen a far too expensive aprentice, as Locke\'s frequent mistakes and screw ups due to his clumsiness usually costed him a lot. This Info Broker did train Locke into a full data courier nonetheless, but could never erradicate Jonathan\'s clumsiness. Locke always justified gis mistakes saying, \"Surely this boss of mine has plenty of accounts to drain back at Manchester, it\'s not big deal.\"",			TOOLTIP = "Data Courier",			TOOLTIP_A = "Aisle\'s Ghost",			LOADOUT_1 = "On-File",			LOADOUT_2 = "Apprentice",					BANTER = {				START =				{					"This place\'s creepy, let\'s hurry up and finish quickly.",					"We\'re gonna get out of here alive, right?",					"Why does it always have to be dark and chilly in here?",					"This is for my family!",					"Ok, ok, relax... Inhale, exhale.",					"I\'ve heard they can see your thoughts when you close your eyes.",					"The task. Stay on the task. Get the data to the customer.",				    "Aw snap! I forgot to charge my PWR reserve ... again.",				},				FINAL_WORDS =				{					"Aw dangit.",					"Yo ain\'t gettin\' me alive!",					"Everything is moving so slowly!",					"This is a misunderstanding I swear!",					"Tell mommy I love her!",					"Wait, it\'s you, the probes! They can see your dreams!",						"Well, at least I tried.",				},			},						},		},	ITEMS =	{		LOCKE_WARNING = "Only agent Locke can use this item!",				DART_GUN_NAME = "Crude D.A.R.T. gun",		DART_GUN_DESC = "It\'s just a safety measure. It will work ... probably",		DART_GUN_FLAVOR = "A hand crafted D.A.R.T. gun that has been modified, repaired, and had it\'s pieces replaced so many times it is arguable it is the same gun Locke once had.",				DECODER_NAME = "Vault Drill",		DECODER_DESC = "It is more comparable to a poly-cored cluster of CPUs than to a drill, but both things pierce through those vault doors in a sec.",		DECODER_FLAVOR = "What you have here is a myth of the Black Market. It is a total beast: overcloaked, ultrathreading quantum 3.0 technology, bi-trigesimal core processor. That\'s 32 cores in a CPU of raw power. It might be the only one in the world.",				LOCKE_AUGMENT_NAME = "Neural Virtual Machine",		LOCKE_AUGMENT_DESC = "Locke can create a virtual machine on his own cerebral environment and transfer any malicious code there and then kill that environment\'s execution to destroy any daemon. Unfortunatelly Locke\'s brain has to \"reboot\" as he calls it.",		LOCKE_AUGMENT_FLAVOR = "Locke is such a hardcore hacker that he had an actual fully operational CPU implancted on his brain, to be able to mentally do any thing he could do on a computer. While initialy it was just a whim of Locke\'s he soon found other uses for it.",				MOD_CHIP_NAME = "Mod Chip",		MOD_CHIP_DESC = "A multi-use chip, or as Locke prefers to call it: \"the Mark of a Real Black Market Hacker.\"",		MOD_CHIP_FLAVOR = "A Mod chip is any sort of chip that circumvents security software or manipulates the functioning of an electronic device.",				LOCKE_CLOAK_NAME = "Photon Bending Wrapping",		LOCKE_CLOAK_DESC = "This thin sheet of nano-engineered sythetic is able to bend light around the wearer making him invisible to any light or image sensor such as cameras.",		LOCKE_CLOAK_FLAVOR = "The slightiest cut or scrape on this delicate equipment could ruin the invisibility effect make it more of a \"transparency\" effect, not to mention its high PWR usage and the expensive replacements for it\'s nano layer\'s grids.",	},}return DLC_STRINGS 

Link to comment
Share on other sites

On 1/12/2016 at 7:26 PM, Strelock said:

It can be that your have a syntax error (an extra "end" statement on line 59) in your "modinit.lua".

 

And please format properly your code before asking somebody to read it.

Many thanks! that helped solve my problem! Did you happened to be reading my post on your phone? I used identation (it must have been python, force of habit) on my code's formating and I noticed that this identation does not look as good on mobile platforms maybe it was that. But thanks for anyway taking your time to search for the problem even with such a horrible formating 

Link to comment
Share on other sites

Hey guys remember that certain mod I showed the modinit.lua and strings.lua files? Well It is finally done, but unfortunately it is a hard mod, I will try to port it into a soft mod as soon as possible. 

This mod introduces agent Locke which is based on the early access' courier, the one that was held hostage in the INSOMNIAC mission (oh such good old days, I miss that mission type) it come with an On-file version which is rescuable in detention centers and an Archive version

I will put in here the features of the on-file and archive versions, but you may not want to spoil the surprise.

On-file:

load out - Crude D.A.R.T. gun uses charges has 1/2 charges (he does not keep it loaded you will soon realize he is very clumsy) reloads +1 charge every mission, 3 turn CD between shots (or it would be a straight upgrade to a normal neural phaser) 2 KO damage

Vault drill - (it currently serves just as a proof of concept that it should technically be possible to create a lock decoder for vault doors, but it currently does not unlock them although it does apply to the vault door) exclusive to Locke only he can operate it, 7 turn CD

augment Neural Virtual Machine - This agent can kill daemons on melee range (similar to decker's daemon scan) but is ko'd on the process for 2 turns

Archive

load out - Mod Chip - 4 turn cooldown (it is a mixture of an accelerator chip and a buster chip) breaks 2 firewalls or adds +2 PWR on terminal hack

Permacloak - 4 PWR on use, 3 PWR on every consecutive turn it stays in use (it is like prism's holomesh, but instead of disguising you it turns you invisible) you are not vulnerable to drone scans while invisible,   exclusive to Locke only he can use it, you can be right in front of a guard and it won't "drop disguise" since you are invisible (try doing that, it is supper fun seeing a guard investigating you and never finding anything) try stacking augments that trigger on invisibility!

no augment.

Both agents have only 1 augment slot available initially, but they can acquire the normal 4 slots by augment machines, Both agents have a movement points penalty of -1mp (so Locke is like a Dr. Xu with 7 mp instead of 8 mp each turn) you can upgrade this by buying speed skills. Both agents have an inventory penalty of -1 item slots (so Locke starts with only 2 item slots, so you used to think upgrading strength was pointless? think again!)

The idea behind this agent mod is to have great rewards in exchange for great risks, even greater risks than with normal agents (note for example that none of Locke's variants has a neural disrupter and his only real attack weapon is rather unreliable) but please let me know if you think he requires a buff or a nerf, also if you think you can complete the code for the vault drill please tell me, you can find the files to do that on units/vault_crack.lua, and unitdefs/itemdefs.lua.

Oh he does have an animated portrait, but he does not have custom art he uses Xu's archive art for some screens.

Have fun and please post your opinions bellow scripts.zip

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.