PrismaticPhoton

Photon's Modding Adventures

80 posts in this topic

Posted (edited)

Hey all! Newcomer here!

I just found Invisible Inc. earlier this year and immediately fell for it. Maybe I'm getting ahead of myself, but I don't have a problem saying this is my favorite TBS game of all time. The gameplay is just so rich and intelligent. AAAAH.

Anyway, being the tactician that I am, I began to muse about different ways the game could be played and how even more depth could be added to it. However, despite being a programmer by trade, I tend to have an aversion towards trying to understand other people's code. For the hey of it, I decided to start digging into Invisible's scripts this past weekend and, hey, it wasn't nearly as bad as I thought it would be! Klei writes some really nice code. So I thought I'd pop on and share the prototype of my first mod.

--------------------------------------------------------------

Manta Mod 0.1.zip

Little is known about codename "Manta" except for the stories that claim she was once an undercover saboteur for the corps. Even if it were true, she is shackled to them no longer, now working for Invisible for reasons as mysterious as her past.

Besides starting with Lvl. 2 Anarchy and a personalized Buster Chip (read: Buster Chip I with no skill requirement, even though she'd meet it anyway,) her augment is "Atrial Capacitors," a sharp full-body boost that Manta must maintain a strong focus to control:

  • Door peeks always have full vision
  • At the start of each turn (except the first one,) gain +3 AP if no attacks were performed on the previous turn

Manta is focused on a more stealth/pacifist style of play. AP bonuses allow her to move quickly while closed door peeks can give her info without compromising her position. Once she's where she wants, she can sabotage mainframe objects with her buster chip. Finally, the starting boost to anarchy means she can steal key items (like security cards) while, again, not alerting her foes.

There's still a bit of work to do. Manta is still using the "Bryant" models from the example mod I built off of (if anyone knows where I could get artistic help, that would be appreciated,) but I wanted to put this out here in case anyone wanted to fool around with her and give input. My vision for her originally was simply something of an AP-centric agent (I figured an AP-boosting ability would be an easy place to start) and it sort of morphed into this. Though it isn't hard to get the AP on a consistent basis with her, AP isn't exactly a premium resource in this game like, say, PWR. After some thought, I decided to give her the "360peek" ability as a way for her to wage a stronger type of information warfare. I feel like she could be the kind of agent that, while her individual boosts aren't super impressive, the sum of her parts can reward consistent, intelligent play. Hopefully we shall see. :confused:

Thanks for reading everyone.

Edited by PrismaticPhoton
Change in direction towards general modding over solely agent modding

Share this post


Link to post
Share on other sites

Welcome to the modding section!  We have some amazing people here making great stuff.

I'm guessing that your favorite items are Cloaking Rigs, Stims, and Buster Chips?  Those are my favorite!

Some feedback from what I see:

I usually feel annoyed when people slap the "360* peek" ability onto an agent.  It feels overused, but I think it can fit well with this agent.

I thought of "information warfare" and how Internationale's Wireless Emitter makes her a superior scout over other agents.  I thought of Manta having a similar sense for where living guards are, and then, she can have an AP boost that refreshes every turn after she wasn't noticed or didn't attack, so that she will know where danger is and avoid the attention.

Then I realized something else.  I have already removed some of the code from Archive Decker's augment so that it will activate for all types of attention from guards.  This includes sprint noise and opening doors.  If an agent doesn't have to open a door to get full vision of a room, s/he will be noticed that much less, and so should play well for an agent who guards never know is there.

TL,DR: add a condition on her AP boost so that it won't activate if she's noticed.

That will heavily nerf its possible cheesy abuse cases, directing the player to play for maximum stealth.  Full vision from door peeks is such a powerful ability, that it needs a reason and purpose for being on an agent.

On another note, +3 AP is close to the bonus from sprinting, so maybe you could silence her sprint noise until she's noticed some other way.

Share this post


Link to post
Share on other sites

I'd say Buster Chips, Cloaking Rigs (Holocircuit Overloaders are boss) and EMP's, actually. In my current Endless run, I've got four EMP's between two of my agents (2 each of lvl. 1 and lvl. 3.) Those "magnetic reinforcements" though...

Back to the mod, I felt kind of torn about the "360peek" ability, actually. Like it is absolutely a useful ability, but I wasn't sure it felt game-changing (or more specifically, enjoyable) in the same way things like "Refraction Chamber" or "Wireless Emitter" do. But on the same token, I'm not entirely sure what you should add to it that doesn't wildly swing its impact. In fact, I felt the same dilemna with the AP boost (which actually precluded the "360peek" ability.) +3 AP boost each turn is nice, but again its impact and unique flavor is questionable especially when you consider how common AP boost abilities are. I feel its important she not only has her own flair but feels fun to play.

Another idea I had was to give her a straight AP boost that decreases each alarm level. Its a slight change in how you'd potentially play her, but you would just be coupling speed with stealth a bit more since you can't be too passive. One potential issue: Blowfish 2.0 could screw her over badly. But considering she could keep her 360peek ability regardless of the AP bonus, maybe not. In fact, maybe that's the secret counter-balance I'm looking for.

I also like the suggestion about being noticed though. I should take a look at Archive Decker's augment later. Thanks for the input!

Share this post


Link to post
Share on other sites

OK, I thought about it and I'm gonna throw it out there. What if her augment worked something like this:

Gain +6 AP per turn. AP bonus decreases by 2 each alarm level. Any attack action performed by this agent moves the alarm tracker by an additional 1 point.

Note that there is no more "peek360" but that has to do with the AP bonus increasing. Its definitely risky and Blowfish 2.0 still could really hurt this, but its risky potentially in the same way using any alarm-based ability is (Rapier, Dynamo, Archive Internationale's Augment, etc.) On top of that, it could make for some nice synergies and counter-balances with other characters, abilities and items (like circumventing the attack debuff through shock traps.)

Share this post


Link to post
Share on other sites

Well, my 2 cents.

 

First of all, I hadn't time to test her out, but from my experience with the game mechanics and how they make a player feel, AP is always in any kind of game the most boring ressorce you have since it is very static. Its the reason only 2 Agents have an AP bonus, Archieve Decker, which main point is his revolver and his augment is more of an interesting bonus, and Nika, were it is, again, an added bonus, not the main thing, to allow combos and make agressiv playstyles more interesting.

 

So, what would be a good solution to this problem? I'd say to go the Archieve Decker way and giving her an augment that gives her an +1AP boost if she wasnt noticed the turn before (I really like SteelCrow's idea of making it absolutly anything guards can notice) and make this stack up to 2 times (so if you havent been noticed for 2 turns, you get 2 ap extra each round, but as soon as you are spotted it resets to zero, maybe even a penalty). With this out of the way, we need a main gameplay item for her. Thats were your fantasy comes in. Here are some ideas and tips which might be helpful:

 

- Make it counter her augment. If you have the item create attention and therefore negating the boost you add a whole new level off excitement and strategic thinking

- Decide what kind of Gimic she should play by. Is she a person who interacts with guards, cameras, drones or mainframe devices? Build your item around that.

- Make her item unique to her. Many ditch Archieve Decker early on since he isnt quite as useful as other agents if you give his gun to a more killing focused agent.

- If you want to make a Saboteur, what do you imagine under the title saboteur. Is it someone who blows everything up? Is it someone who silently cuts a cable and laughts as she sees every computer jmalfunction? Or is it someone who gives new patrol orders by forcing a guard to investigate an area?

- Look at Shirsh's Agents, they tend to have a main focus and a little extra.

- Make your Agent capable of being played in any coporation level, Blowing up Drones by hacking them might be awesome, but its nearly completly worthless in KO, Plastech and FTM.

- Have a main core concept and work around that. Use the points mentioned above to build one, then just make a mod. Do not worry about balance at first, its far more important to see if he is any fun to play and stands out. If it isnt fun, then back to the drawing table, since a balanced agent who isnt fun is not something most persons are going to play. If it is fun but unbalanced, its not hard to change some Parameters and buff/nerf it this way.

Share this post


Link to post
Share on other sites

@HumanKirby

The stacking idea was something I had thought of, but I didn't explore it because I felt it would involve unnecessary memorization by the player (i.e. "What is my AP bonus at again?",) though there might be an accessible way to relay that to them through the UI.

I definitely agree about starting something out overpowered instead of underpowered, but as you alluded to making AP overpowered/interesting is a bit difficult. I was trying to keep things simple for my first mod, but maybe I'm trying a little too much not to go completely bonkers. At any rate, that's a lot of good advice to think about; hopefully I'll be able to implement a new idea or two and push out another prototype for those who are interested. Thanks for responding. :)

Share this post


Link to post
Share on other sites

Posted (edited)

3 hours ago, PrismaticPhoton said:

OK, I thought about it and I'm gonna throw it out there. What if her augment worked something like this:

Gain +6 AP per turn. AP bonus decreases by 2 each alarm level. Any attack action performed by this agent moves the alarm tracker by an additional 1 point.

Note that there is no more "peek360" but that has to do with the AP bonus increasing. Its definitely risky and Blowfish 2.0 still could really hurt this, but its risky potentially in the same way using any alarm-based ability is (Rapier, Dynamo, Archive Internationale's Augment, etc.) On top of that, it could make for some nice synergies and counter-balances with other characters, abilities and items (like circumventing the attack debuff through shock traps.)

There's an augment from the Contingency DLC that's a simpler version of this, Gel Injectors, but it wouldn't hurt to playtest it anyway.  I'm concerned with how changing the alarm level will affect the whole team, but that could be turned to an advantage.  Internationale (On-file or Archive), Tony, Prism, or Rush would be good partners.

I agree with Kirby that an agent should be fun to play.  Archive Internationale, OnFile Nika, OnFile Prism, and Olivia don't seem fun to me, so I don't play them.  OnFile Internationale, Archive Nika, Archive Prism, and Central, on the other hand, are ones I really enjoy.  The difference between these pairs, in my opinion, is that one side just changes numbers around, while the other side makes "qualitative" impacts, meaning that they change the goals of the game.

But make mock-ups quickly.  Don't get hung up on a single idea.  Let things evolve rapidly and you should end up with something very cool.

Edited by SteelCrow
no pressure

Share this post


Link to post
Share on other sites

Posted (edited)

Time of new agent mods comes, yay. And with cool name.
Bad side of AP boosting is that it's primary stat that reduce difficulty, I think.

But I'd say instead of thinking about something that theoretically easy to implement, better think about something very cool. Like I don't now, play on a nickname, on associations, on manta ray, imagine cool stuff that you'd like to have in game.

Techical limits won't allow to 100% fullfill superdream anyway but whatever adaptation will be possible it will be more awesome than stuff that very easy to do at start.

About art help: design something refreshing and more or less new/unique to play + appropriate suit and then graphics won't be a problem.

Edited by Shirsh

Share this post


Link to post
Share on other sites

Posted (edited)

To add, I'm against 360 peek for sure because theres a Ghuff mod that is simply just a skin for a Bryant, to make him not looks a Decker's clone while keeping that extra gameplay option.

On 20.04.2017 at 0:08 AM, SteelCrow said:

add a condition on her AP boost so that it won't activate if she's noticed.

that's not bad idea, I think, sounds not as OP as without

sense of living guards is something that I wanted but failed to achieve year ago, but it could be that I didn't thought about detecting heart monitors. Combined with early access version of wireless scanner (ie that works on button click instead of automatically) could be nice item, I guess

On 20.04.2017 at 0:08 AM, SteelCrow said:

Then I realized something else.  I have already removed some of the code from Archive Decker's augment so that it will activate for all types of attention from guards.

hmm, what about any type of attention to any agent on level not just to augment/ability owner?
that could push gameplay to some stealthy extremes, though it could use more benefits too

Edited by Shirsh

Share this post


Link to post
Share on other sites

One thing regarding "sensing" guards is, that unless it's extremly over pwered, it will be nearly useless as we already have the sound guards make while walking, so the usefulness is only in a few situation really there.

Share this post


Link to post
Share on other sites

Posted (edited)

13 hours ago, HumanKirby said:

One thing regarding "sensing" guards is, that unless it's extremly over pwered, it will be nearly useless as we already have the sound guards make while walking, so the usefulness is only in a few situation really there.

I think it could work nice, for hearing we need a guards turn with agents covered, while with hypothetical "motion detector" (as called item for which on floor art exist and some mentions in dlc files) we can run forth through rooms and use in new places to reckon and chose places for better cover, also stationary guards. Plus lack of vision cones on expert +, could be item to use in pair with peeking.

Edited by Shirsh

Share this post


Link to post
Share on other sites

Just wanted to post real quick and say thanks for all the feedback! Mod work will probably be a little slow this weekend because I'm participating in Ludum Dare, but I should be back at it sometime next week. I've been putting down all sorts of ideas and I may just turn this into a "throw things at the wall" kind of topic as I experiment on and play-test things. We shall see!

Share this post


Link to post
Share on other sites
10 hours ago, Shirsh said:

I think it could work nice, for hearing we need a guards turn with agents covered, while with hypothetical "motion detector" (as called item for which on floor art exist and some mentions in dlc files) we can run forth through rooms and use in new places to reckon and chose places for better cover, also stationary guards. Plus lack of vision cones on expert +, could be item to use in pair with peeking.

Well, it might just be me, but I am still not quite convinced of the usefulness if it does not have any side effect or  a long range. Making it to long it will destroy balance as it allows you to grasp way to much information (like the layout, or more extremly, seeing your mission objective by sensing a captain or a executive). If you make it to small and sound will always be a better source of intel. Also I don't an agent who is mainly useful in a certain difficulty is a good idea, but it might be just me hating the + difficulty for removing one of its core elements to make it artificialy more difficult and less fun.

15 minutes ago, PrismaticPhoton said:

Just wanted to post real quick and say thanks for all the feedback! Mod work will probably be a little slow this weekend because I'm participating in Ludum Dare, but I should be back at it sometime next week. I've been putting down all sorts of ideas and I may just turn this into a "throw things at the wall" kind of topic as I experiment on and play-test things. We shall see!

Thats cool. Yeah, the thread fastly became focused on gamedesign in general, huh. Actually, it might be a fun idea to create a simple mod on github were literaly everyone can make extra content by sending pull requests. Later down the road some members clean up the mess, balance a bit and make everything work together.

Share this post


Link to post
Share on other sites

Hey guys. Have a few questions:

  • What is the best way to go about testing new programs? Do you just have to hope you find them in shops? Is there a way to add them as starting programs?
  • Is it possible to toy with the laser panels? I was thinking about an augment that would let you pass through them, but that appears to require changes to the actual laser unit itself, which I'm not sure is possible...?

Share this post


Link to post
Share on other sites

Go to the Invisible Inc installation directory and open "main.lua". Find the line "DEV = false" and change it to "DEV = true". This will let you access developer console with Ctrl + ~. Use WSAD or arrow keys to select options, ENTER to use them and BACKSPACE to go back to previous category. You will find there basically everything needed for testing.

Share this post


Link to post
Share on other sites
49 minutes ago, wodzu_93 said:

Go to the Invisible Inc installation directory and open "main.lua". Find the line "DEV = false" and change it to "DEV = true". This will let you access developer console with Ctrl + ~. Use WSAD or arrow keys to select options, ENTER to use them and BACKSPACE to go back to previous category. You will find there basically everything needed for testing.

You can also operate the whole menu via mouse. Anyway, in dev mode there are also some other very useful things like shortcuts. For example, you can select an agent, hover over any tile and press Ctrl and T which will teleport him/her there. you can also press Ctrl Enter to change between 3 viewing modes. The first one is your normal mode, the second one shows you everything one the map and allows you to select guard and agents (you can also teleport guards with this) and the third mode shows you the rooms where guards are in. There are several other shortcuts like an alarm tracker increaser and a force mission end one (and some I forgot to add).

Share this post


Link to post
Share on other sites

Posted (edited)

On 4/24/2017 at 11:09 AM, HumanKirby said:

You can also operate the whole menu via mouse. Anyway, in dev mode there are also some other very useful things like shortcuts. For example, you can select an agent, hover over any tile and press Ctrl and T which will teleport him/her there. you can also press Ctrl Enter to change between 3 viewing modes. The first one is your normal mode, the second one shows you everything one the map and allows you to select guard and agents (you can also teleport guards with this) and the third mode shows you the rooms where guards are in. There are several other shortcuts like an alarm tracker increaser and a force mission end one (and some I forgot to add).

Is stuff like that in the Master Mod List wiki?  It'd be awesome to have them described there or in a ReadMe.  I learned about Ctrl + W "auto-win" a while ago from a Klei dev who was helping people get through missions without an exit (I guess that happens), but I only learned of the dev console about a month ago.

On 4/23/2017 at 7:37 PM, PrismaticPhoton said:

Is it possible to toy with the laser panels? I was thinking about an augment that would let you pass through them, but that appears to require changes to the actual laser unit itself, which I'm not sure is possible...?

I just look a glance through the laser.lua for it, and curiously, there's a giant mix of global and local functions.  I've learned that local functions can't be changed via the mod system (except through Cyberboy's code magic), but global ones can.  In other words, you can make changes to the lasers, but we can't be sure all the changes you want are possible.

But that is an Interesting idea.

Edited by SteelCrow

Share this post


Link to post
Share on other sites

Oooh, that debug menu looks handy. Thank you.

5 hours ago, SteelCrow said:

I just look a glance through the laser.lua for it, and curiously, there's a giant mix of global and local functions.  I've learned that local functions can't be changed via the mod system (except through Cyberboy's code magic), but global ones can.  In other words, you can make changes to the lasers, but we can't be sure all the changes you want are possible.

But that is an Interesting idea.

The simplest way to accomplish it would just be to add an extra check to its "canControl" function that checks for the augment in some form or fashion. I'm not far enough along though to know how I "override" a function like that.

Share this post


Link to post
Share on other sites

Those are two abilities each of which would individually be a very strong agent (particularly on expert plus, where opening doors is particularly risky and there's more reason to avoid combat anyway).  You might want to change the second one to -3 AP on turns when an attack was made (and even then, I'd consider her a fairly strong agent).

Share this post


Link to post
Share on other sites
1 hour ago, PrismaticPhoton said:

Oooh, that debug menu looks handy. Thank you.

The simplest way to accomplish it would just be to add an extra check to its "canControl" function that checks for the augment in some form or fashion. I'm not far enough along though to know how I "override" a function like that.

I was thinking to add conditions to "function laserbeam:tripLaser", so that Manta will run through an active beam without activating it, but I may be wrong.  Anyway, the way I've learned to change these functions:

Spoiler

 

Create a new .lua in the scripts folder.

Copy in the complete function from start to end, for example:


function laserbeam:canControl( unit )
    local emitterUnit = self:getSim():getUnit( self:getTraits().emitterID )
    if emitterUnit then
        return emitterUnit:canControl( unit )
    end
    return false
end

Above the function, you'll need to include the dependencies it has.  You'll at least need "local laserbeam = include( "sim/units/laser" )", the base .lua

Then you'll need to include the file you created into your modinit.lua.  I'm calling mine "alteredcode" and putting it under "load":


local function load( modApi, options )
	local scriptPath = modApi:getScriptPath()
	include( scriptPath .. "/alteredcode" )

You're finally ready to add/remove lines and other changes to the function, and they should reflect in-game!

 

I only learned this from inspecting other people's work.  I don't know about classes or how to interpret the web of dependencies and references and stuff.

Share this post


Link to post
Share on other sites

Posted (edited)

Just changed the topic name since I'm going to use this as a general-purpose modding dump. I'm just sort of exploring stuff right now so maybe I'll create new topics as particular "mods" become more concrete and focused.

Anyway, I have a daemon question now: I just created an instant-effect daemon but for some reason it doesn't want to despawn. It shows with the turn-duration daemons with either a "-" or "0" turn duration. I am using the "removeAbility" at the end of the "onSpawn" function:

eclipse = util.extend( createDaemon( STRINGS.TEST_MOD.ECLIPSE ) )
	{
		icon = "gui/icons/daemon_icons/Daemons00010.png",
		duration = 0,

		onSpawnAbility = function( self, sim, player )
			sim:dispatchEvent( simdefs.EV_SHOW_DAEMON, { name = self.name, icon = self.icon, txt = self.activedesc} )
			
			local player = sim:getCurrentPlayer()
			local availableCameras = {}

			for _, unit in pairs( sim:getAllUnits() ) do 
				if unit:getTraits().mainframe_camera then 
					if unit:getPlayerOwner() == player then 
						unit:processEMP(2)
					end
				end
			end
			
			player:removeAbility(sim, self )						
		end,

		onDespawnAbility = function( self, sim, unit )			
		end,
	}  

(Its a daemon that knocks out player-controlled cameras, in case you're wondering.)

Any idea what I'm doing wrong?

Also, thanks SteelCrow. That's a whole lot simpler than I imagined it being. :)

Edited by PrismaticPhoton

Share this post


Link to post
Share on other sites

Looking at the normal daemons, the instantaneous ones seem to not declare duration at all, so you might want to start with removing the duration=0 line.

Share this post


Link to post
Share on other sites
9 minutes ago, Yitzi said:

Looking at the normal daemons, the instantaneous ones seem to not declare duration at all, so you might want to start with removing the duration=0 line.

It wasn't originally there, actually. It used to say "-" turns so I added it to see what happens. Now it says "0" turns, so it didn't work either way.

Share this post


Link to post
Share on other sites

Strange...what I would do to debug is make it identical to an existing instantaneous daemon, and then change one thing at a time until it starts persisting.

Share this post


Link to post
Share on other sites

Posted (edited)

Nice, she sounds good to rob security dispatch.

I think I have some picture, she can wear special polarized long coat, maybe with a hat or hood. There could be a place to try reduced KO (from grenades and augment grafter), maybe not. I feel quite like a ready to try it myself.

Buuuut, still, extra movement ability, hmmmmmmmm

You need to put Banks or Prism or Internationale or Decker near her and feel her not stronger, not weaker, but relatively equal agent to use (okay, maybe Decker's strongest point is spy-esque charisma).

It's also a problem with art, it's quite limited by requirement to make her not too flashy near them.

 

(also, with another girl agent in a work, it sounds like it require to make couple of mens for balance of universe)

Edited by Shirsh

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now