We've already covered the design behind the all-new robot hacking system, and now for the main course: the hacks themselves! The entire initial set is complete and ready for Beta 7, all 65 of them :D
I'll be talking about most hacks in this post, and you'll notice their names follow a certain pattern throughout--all composed of two words, a verb followed by a noun, separated by an underscore in between. Essentially "verb_noun." This style was chosen to clearly distinguish them from machine hacks. By default Cogmind uses a small-caps typeface so this choice may not be apparent right away from the screenshots I use here, nor does it really matter in game, but it matters for discussion outside the game. Using a consistent format will make robot hacks immediately identifiable in conversation, even if someone has never heard of a given hack before.
There are several possible requirements for robot hacks, as described in the previous post. The vast majority of hacks require having both installed a Relay Interface Framework and attached the Relay Coupler applicable for the target class, in addition to of course carrying a Datajack to initiate the hack in the first place.
Robot hack distribution by requirements.
Wherever possible I tried to add some hacks with lower requirements, though again the main point of the system is to give it fairly significant powers, and the only way to justify that is by setting sufficient requirements.
In terms of combat vs. non-combat hacks, the latter are much more plentiful:
Hacks targeting combat bots vs. those targeting non-combat bots
(the total does not equal 65 because there is some overlap).
This makes sense simply because there are a larger number of unique non-combat robot classes, and even more so because there's only so much you can do with combat in particular, at least within the Cogmind framework. Let's start there...
"Combat hacks" refers to those targeting combat bots, even though not all of them are actually aimed at fighting. For design purposes I divided these hacks into groups, helping ensure each hack fit a role and was different enough from others. There are five categories in all:
Distribution of hacks targeting combat robots, by effect category.
I'll talk about the hacks by category.
The largest category revolves around simply modifying the target in some way, usually affecting behavior or hit chances (the text here is taken directly from the context help available in game):
- focus_fire: Force system to prioritize attacking Cogmind wherever possible.
- reboot_propulsion: Render propulsion unusable for 15 turns while the control subsystem reboots.
- tweak_propulsion: Rewrite sections of the propulsion control subsystem to permanently halve movement speed.
- scatter_targeting: Offset targeting algorithms to approximately halve their chance of achieving optimal aim.
- mark_system: Mark this bot to make it the most attractive target to all allies, as well as improve accuracy against it by 10%.
- link_complan: Tap into system's combat decision-making processes in real time, increasing your accuracy and damage against this bot by 25% while also impairing its accuracy against you by 25%.
- broadcast_data: Openly share the local combat network's defensive coordination values, giving yourself and all allies 25% better accuracy against this and all 0b10 combat bots within a range of 3.
- disrupt_area: Actively interfere with the local combat network's offensive coordination calculations, reducing the accuracy of this bot by 25%, and that of all 0b10 combat bots within a range of 3.
This category is almost too large, as some of the hacks overlap a bit, though they still have distinct enough roles that I felt it was worth adding them all anyway to see which ones might get more use. Most of these hacks won't make sense against weaker enemies, but that's a standard side effect of Cogmind's environment--most bots don't pose much of a threat individually, the threat lies in the composite danger presented by multiple hostiles, even more so if they have different complementary capabilities. Against a stronger enemy, however, it could be worth taking the time to weaken them first, or apply a modification with some other ulterior motive.
Groups of weaker enemies are also why some of these hacks come with area effects, to work at addressing the fact that combat hacks against an individual bot may not be worth it compared to simply pulverizing them with a cannon.
Information gathering accounts for nearly half of all hacks, combat bots or not. Although there are fewer intel options available from combat bots, they still make up a relatively large category and can be quite useful in the right situations:
- find_shortcuts: Reveal and label all hidden doors within a range of 50. (There are a lot of ways to detect emergency access doors, but none with reach like this. Could come in handy in the long run.)
- find_garrison: Locate the nearest Garrison Access.
- show_paths: Highlight all current patrol squad routes. Only effective when targeting a patrol squad leader. (It will take a observation to identify which squads are considered to be patrolling, much less find a leader, and the route data is only valid while they're still patrolling it, so I'm not sure how useful this will be in practice, but it looks cool and can also reveal lots of valid pathways in unknown areas of the map so it might catch on. parse_system will help find/teach about patrol squads and leaders.)
show_paths demo (paths glow intermittently, and are always visible while panning the map for easy reference; lines are color coded by squad type, and these records disappear after a while since they only matter for so long)
- link_fov: Tap into system's visual feed for 100 turns. Must remain within a range of 20 to maintain the link.
- parse_system: (more on this later)
"Methods to deal outright damage" is a tiny category because merely doing damage doesn't generally make much sense for a hacker--you either want to take down the target or achieve some other special effect. So even these hacks don't deal direct damage, but are instead alternatives with their own niche.
- spike_heat: Destabilize power systems to induce a massive surge of heat. (This is essentially a way to instantly get the target ready for meltown, which anyone who knows about thermal transfer from TH weaponry understands that it could start causing all manner of nasty side effects that can even start to compound. Overall it's a very cheap way to possibly take down a target, if not very reliable because you're at the mercy of random side effects with this one.)
- overload_power: Cause power source to explode. Process takes 4-6 turns to reach critical point. (The effect is equivalent to EM spectrum chain reactions, and being able to trigger it at will offers a lot of tactical possibilities... Plus it's just fun. And you've gotta time it right :). It's the readily available AOE time bomb you've all been waiting for!)
overload_power demo (also a demonstration of the effectiveness
of doing this next to an array of power conduits :P)
This category's hacks are akin to mods, but completely disabling systems is often an even stronger effect, though still without doing any actual damage.
- wipe_record: Remove any record of Cogmind from memory, and block new Cogmind records from being created for 10 turns. (This effectively makes you invisible to that robot for a little while, which is pretty cool and unique.)
- disable_weapons: Disable all weapon systems for 20 turns. (There you go, you finally have a way to do this, heh. This has been brought up a few times before by the community with regard to targeting specific systems, though until the new robot hacking there hasn't been a reasonable way to make it a potentially frequent tactic.)
- reboot_system: Force a complete reboot. The entire sequence requires anywhere from 15 to 25 turns to complete. (The previous system's good old REBOOT hack is back in its new form, which does... the exactly the same thing :P)
- go_dormant: Wipe memory and force immediate dormant state. (This is a relatively cheap way to permanently remove a target from action, as long a you can get out of view quickly and no one else is around to wake them up. In that way it can be even better than a reboot--it's a "reboot with a catch." If you recall, dormant combat bots only have a chance to wake when enemies are in view, or if they're alerted by another robot.)
Assimilation has always been the highest goal of robot hacking, and while it'll definitely still be useful, I'm sure it won't be as desirable as before, or as good as other cheaper hacks that might require more creativity :)
- overwrite_iff: Trick system into believing it is allied with Cogmind. After 10 turns the network will perform an automated quickboot to restore it to normal, a process which takes anywhere from 5 to 10 turns. (Temporary assimilation combined with a bit of a reboot is probably even better than outright assimilation in many cases--I can see this being popular.)
- streamctrl_high: Hijack the control node to force system to act as an ally. Must remain within a range of 5 to maintain the connection. This bot will follow while in this mode. (An alternative situational assimilation, cheaper than completely assimilating a target, but of course it comes with a bit of a caveat.)
- formatsys_high: Rewrite all system data, permanently converting it into a fully controllable ally. Requires 6 turns to complete the process. (As you can see, the old full-on ASSIMILATE hack is still here, although it's fairly expensive so you [probably] won't be raising large armies with it!)
The latter two hacks were originally named stream_control and format_system, and applied to both combat and non-combat bots, but I later decided it was important (and made sense) for the coupler cost to be cheaper when used against the latter group. It would've been possible to simply show and apply a different cost for these hacks depending on the target, but I wanted to remain consistent--one hack, one cost, so I gave them somewhat different names instead. As you'd expect, the other versions end with _low :). Technically there are 67 different robot hacks, but these pairs are equivalent in effect so I didn't count the duplicates.
Most hacks target non-combat bots, which is more in line with a hacker's non-confrontational style, using other bots to make exploration or combat easier, or helping avoid the latter altogether. However, the wide variety of hacks also means that just about any kind of player can benefit from at least some of the system, allowing for all sorts of hybrids.
Like the combat hacks, here I've broken down non-combat hacks into categories, though note that I only did it for fun/demonstration purposes--it wasn't part of the design process like it was above.
Distribution of hacks targeting non-combat robots, by effect category.
Understandably intel is by far the largest category, considering there are so many different classes with their own responsibilities and knowledge to "share," while most other hacks deal with controlling the target and/or their surroundings in some way.
Although normally non-combat bots see Datajack hits as a threat, in cases where a hack is some kind of order they'll override that reaction and instead do what they're told.
Even where bots do consider it an attack, or are affected by a hack, there are currently no effects on alert level. This is cool and logical in a hacker sense, though we'll have to see how abusable it is. That said, by extension hacks don't score points, either--they're just recorded in stats as usual. In any case, robot hacking is meant to be pretty good within its niche, since 1) sacrifices need to be made in terms of plot and build, and 2) it only applies to 0b10 bots.
One major area of differentiation between combat and non-combat hacks: the former requires numerous couplers, one for each target type, whereas all non-combat hacks are processed through a single Relay Coupler [NC]. That's going to be a popular one... (it's also the most common). If combat hacks were similarly accessible it would trivialize combat and robot hacking strategies, and the system would be less interesting overall.
Just look at all these [NC] robots that can be hacked...
Distribution of robot hacks by non-combat robot class.
Some basic hacks can be used on any non-combat robot, so this category is general purpose stuff which'll be available almost everywhere.
- no_distress: Prevent this system from generating distress signals.
- generate_anomaly: Induce an energy anomaly resembling a long-range distress signal that will attract nearby patrols and sentries to investigate. Anomaly detectable up to a range of 15.
Under easier difficulty modes this hack also indicates the positions
of robots that will respond to the anomaly.
- generate_echo: Destabilize power systems to generate a wave of energy which can be analyzed to temporarily pinpoint robots at a distance. Beyond a range of 20 the echo becomes too weak to be useful.
- start_evac: Instruct system to follow local evacuation protocols by heading to another 0b10-controlled level.
- link_fov, overload_power, streamctrl_low, and formatsys_low are equivalent to the combat hacks.
link_fov demo (blue circles indicate the range outside of which the connection is lost)
- parse_system: (more on this later)
As the most connected 0b10 class central to operations, Operators make juicy hacking targets. For similar reasons some players like to have one of these following them around as an ally, though the benefits are not identical (in a general sense, robot hacks have more potential because the bot still has greater access to 0b10 systems at the time, unlike once it's been assimilated).
- check_alert: Query system for current alert level.
- purge_threat: Lower the alert level. (A useful hack, but it's also the most expensive by far.)
- find_terminal: Locate the nearest Terminal.
- locate_traps: Reveal and mark all traps within a range of 30.
- disarm_traps: Disarm the nearest trap array within a range of 30.
- reprogram_traps: Reveal and reprogram the nearest trap array within a range of 30.
- block_reporting: Block ability to report hostiles at a Terminal.
- summon_haulers: Force system's call for reinforcements to instead redirect any Haulers within a range of 50.
- recall_investigation: Recall the most recently dispatched investigation squad.
- clear_repairs: Clear the sector-wide repair queue and any pending Builder orders.
- clear_recycling: Clear the sector-wide part collection queue and any pending Recycler orders.
Researchers have a lot of options because they know stuff. Stuff you might want to know, too.
- find_scanalyzer: Locate the nearest Scanalyzer.
- disable_scanner: Permanently disable an active stasis system to prevent scanning and analysis.
- locate_prototypes: Mark all prototypes and alien tech across the map, also providing their IDs.
- report_prototypes: Force system to reveal 10 new prototype IDs.
- report_schematics: Force system to reveal 10 new part schematics.
- report_analyses: Force system to reveal 3 new robot analyses.
K-01 Serfs are all over the place, so it's nice to have some things to do with these little guys. Hacking them can even be extremely useful...
- find_chute: Reveal and mark the chute this Worker might use if immediately tasked with disposal.
- deconstruct_machine: Dismantle the nearest non-interactive machine.
deconstruct_machine demo (you can also try what happens
when they start taking apart an explosive machine ;))
- hold_bot: Latch onto the nearest visible non-prototype 0b10 bot to hold it in place. This task is automatically cancelled after 25 turns.
- start_disposal: Dispose of currently held bot via a chute, if possible. Huge bots are too large to push.
For just being defenseless bots that ferry parts, Haulers have some decent hacking options!
- find_fabricator: Locate the nearest Fabricator.
- drop_inventory: Force a complete inventory dump, fully identifying contents in the process.
drop_inventory demo (sure you could just blow them up, but that's unreliable and won't give you the advantage of knowing whether any of the contents are faulty/dangerous!)
- recall_reinforcements: Recall reinforcement squad requested by this Hauler.
- locate_stockpiles: Mark all common part stockpiles.
Mechanics aren't all that common, but aside from those operating from a Repair Station, assault squads do sometimes have one in tow, which may be a bad idea for them if you're a hacker :P
- find_station: Locate the nearest Repair Station.
- release_backups: Force the system to release all backup parts from compressed internal storage.
- deconstruct_bot: Disassemble the nearest allied visible non-huge non-prototype 0b10 bot into its constituent parts.
Hacker's paradise when it comes to intel. I mean, that's their job, right?
- map_route: Show scan information from along this Watcher's patrol route. (While it's possible to get unlucky and find a Watcher with a really short route, this hack can also be a gold mine of info.)
map_route demo (finds an exit)
map_route demo (here hacking from the middle of its route, and labeling discovered items)
map_route demo (tiles)
- mark_security: Mark all active security positions within a range of 40.
- relay_feed: Permanently hook into the sensor feed system, receiving scan data transmissions from up to a range of 20 from Watcher's position. (Basically you get a remote Sensor Array, pretty good if you don't have one of your own, and even better if it's a high-level watcher.)
Protectors are generally only found supporting assaults, and all they really have to their name are shields, so...
- disable_shields: Permanently disable an active shield or force field system.
- redirect_shields: Permanently reprogram defensive system to protect yourself and allies from attacks, instead of Protector's allies. (This one's more expensive, but if you and/or allies are close enough to take advantage of it, it's a pretty nice buff for you plus debuff for enemies. Remote force fields are really annoying to fight through, so you want them on your side.)
No you're still not allowed to build new walls, sorry ;)
- ignore_repairs: Block system messages regarding the repair queue.
- map_walls: Reveal all walls and emergency access points within a range of 25.
T-07 Excavators generally hang out at lower depths where you won't be doing much robot hacking anyway, but just in case...
- randomize_corridors: Permanently add new paths to the local complex layout. (This is one of the few hacks I don't think will be very useful, but added it anyway just to give them something extra related to their regular tasks.)
- map_earth: Reveal all earth within a range of 25.
Cogmind's #1 annoying bot can now also be dealt with by hacking it directly, though there are already other pretty effective methods of handling them (like just shooting :P).
- find_recycling: Locate the nearest Recycling Unit.
- ignore_parts: Block system messages regarding the part collection queue.
Hackers ain't afraid of no Crushers! A single [NC] coupler is enough to pacify an entire Waste sector's worth of these menaces (and you normally don't need to confront nearly that many on your way out).
- ignore_targets: Block system messages regarding waste processing targets.
And with that we've covered all 65 hacks, except for that one...
The combat and non-combat lists above both refer to "parse_system," a special hack that works on any bot, even non-0b10 bots. All it takes is a Datajack to access it, and it'll always appear when hacking bots, just like the Manual command.
PARSE was available under the old system, although never really used. I had originally added it mainly for fun, thinking it might eventually become something, and now it has! For one it gives more details than it used to, including info about the AI, squads, and more.
parse_system demo (multiple)
But the most tangible advantage is the fact that it both lists all parts attached to the bot, identifies them all even if unknown or prototypes, and even adds them to your gallery if not already there! This will be a new non-evil method to get records for some of those cool parts your friends and/or NPCs are using without, you know, murdering them :P
By extension, using a Datajack on a friendly will no longer be considered a hostile action, allowing you to parse them, too.
In the past completing the full item gallery required either straight up killing your friends (preferably with weapons that increase salvage rates), or getting really lucky and not only meeting valuable allies but having them be killed and drop their special gear for you. Some people understandably disliked the former for roleplay reasons, and the latter isn't really a feasible long-term approach given how many rare allies and parts there are.
Last time I talked about one of the first important elements of balance: access to Relay Couplers. The other main one would be the cost of the hacks themselves.
I only made a few references to cost above, though obviously these values will factor highly in terms of each hack's relative strategic applications. Hacks can range anywhere from free to consuming an entire Coupler in one go, so for reference I'm posting my design spreadsheet used to set the costs in the first place.
Combat hacking Coupler costs. You can see how they're divided into the categories described earlier.
I start with the number of hacks I think is reasonable for a single coupler, and it calculates the rest automatically so that things are quick and easy to adjust. Costs have changed a bit as I worked through the implementation process, and will likely see some more adjustments in the future, but this is a good starting point.
Here's the cost info for all non-combat hacks:
For fun you can compare to the design spreadsheet for the old pre-Beta 7 robot hacking system, which was much more complex, and because it's based on a percentage system isn't very reliable--players would only bother with it if they could reach near or at 100% on their desired hack!
We went from 5 hacks straight to 65 :P. And this is just the first batch--more could be added, or some might be tweaked or even removed down the line depending on what hacks players use and how. We'll have to see how Beta 7 turns out first!