STIXSWORLD INJECTION CHAIN
v1.8.0 Get the Mod
04 Configure

Tune the Overhaul

The overhaul is already dramatic out of the box, but everything is yours to bend. There is exactly one file you ever edit — config.lua — and it holds 150 documented dials. This is link 04: config.lua taking hold the moment a toy spawns.

FIELD NOTE
The one file rule

scripts\main.lua is the engine — never edit it. scripts\config.lua is the cockpit — the only file you touch. Open it in any plain-text editor (Notepad, VS Code, Notepad++). Every single setting is commented inline with its range and which direction makes the AI stronger, so you never have to guess.

How a dial works

Almost every value is a multiplier on the game's own per-difficulty baseline, not a flat override. The developer's careful Easy/Normal/Hard/Nightmare tuning is preserved and simply amplified:

The core formula — applied once per toy at spawn
final_value  =  game_baseline_value  ×  your_multiplier
  • 1.0 means “leave it exactly as the game shipped it.” That's how you neutralise any dial you don't like.
  • Above 1.0 increases the value; below 1.0 decreases it.
  • It is applied once per toy, at spawn, and never compounds — a 1 Hz safety sweep only finishes toys the spawn hook missed, it never re-stacks a buff.
NOTE
Direction cheat-sheet

For speed / range / distance / angle / chance fields: bigger number = stronger AI. For interval / delay / cooldown fields (how long a toy waits or how often it thinks): smaller number = stronger AI — these intentionally default below 1.0.

The master switches

The top of the file is section 1. These four lines decide what the whole mod even touches — flip any to false to carve off an entire half of the overhaul:

config.lua · Section 1 — Master Switches
config.master_enable       = true   -- whole mod on/off
config.enable_friendly_bots = true   -- enhance your teammate bots
config.enable_enemy_npcs    = true   -- enhance the hostile toys
config.respect_team         = false  -- strict team-tag safety (PvP modes)

Want only smarter enemies and your teammates left stock? Set enable_friendly_bots = false. Want a co-op power-fantasy with godlike allies but vanilla foes? Set enable_enemy_npcs = false. The mod auto-detects every HYPERCHARGE game mode, so these apply everywhere unless you also narrow mode_filter in section 1b.

The map: 9 sections, two sides

The file is laid out top-to-bottom in numbered sections. The friendly side (cyan) and the enemy side (orange) mirror each other, with master controls and the difficulty director between them. You never need all of it — jump to the section for the behaviour you want to change.

1
Master Switches
Whole-mod on/off, friendly/enemy toggles, team-tag safety, sweep rate, the live hot-reload & status keys, verbose logging.
1b
Game-Mode Support
Restrict the overhaul to specific modes (waves, survival, plague…), globally or per side. Defaults to all.
2
Friendly · Behaviour
How smart, accurate and reactive teammate bots are — aim speed, aim accuracy, target tracking, reaction.
2b–2h
Friendly · Competency
Building & defense, objective priority, item/weapon handling, pickup & credit seeking, battery seeking, controller-level pathfinding.
2g
Difficulty Director
The real-time skill director — per-difficulty [min,max] bands that slide bot skill up when you struggle, down when you cruise.
3–4
Enemy · Perception
Enemy sight, awareness, behaviour & persistence — how relentlessly the hostile toys notice and chase you.
5
Enemy · Pathfinding
The centrepiece. Target interception, flanking and route-finding so enemies cut you off instead of trailing you.
6–6b
Enemy · Traversal
Possessed-body movement plus flying / floating types (drones, hovering enemies) handled on their own track.
7
Route Diversity · OFF
Experimental path variation. Off by default — opt in only if you want less predictable approach lines.
8
Simple Enemies
Lightweight UBNPCActor toys — bouncy-balls, particle swarms and the like — tuned separately from full AI.
9
Enemy Escalation · OFF
An optional dynamic difficulty director for the enemies. Off by default — flip it on for a rising tide of pressure.

The difficulty director, visualised

Section 2g is the smartest part of the overhaul. It reads which vanilla difficulty you're on, measures how the match is actually going (Core power left, active enemy pressure, your health, how many humans are still up), and slides your teammates' Skill in real time — but always inside the band you allow for that difficulty. Help scales with need; it never runs away.

Live skill, kept inside the band HARD · Skill 50–80 · assist mode
0 · cruising band min →← band max 100 · dire

Each difficulty ships with a sensible band, and you can widen or narrow any of them:

config.lua · Section 2g — per-difficulty skill bands (Skill is 0–100 working range)
config.dda_easy_skill_min      = 20    config.dda_easy_skill_max      = 50
config.dda_normal_skill_min    = 35    config.dda_normal_skill_max    = 65
config.dda_hard_skill_min      = 50    config.dda_hard_skill_max      = 80
config.dda_nightmare_skill_min = 65    config.dda_nightmare_skill_max = 100
  • dda_smoothing — how fast skill slides toward its target. 0.05 is cinematic and gradual; 1.0 snaps instantly. Default 0.25.
  • dda_scale_competence — when true, the bots' aim and perception visibly track their live skill, so the director's effect is obvious in a firefight.
  • The metric weights (dda_metric_core_weight, ..._enemy_weight, ..._player_health_weight, ..._players_weight) let you choose what “danger” means — set any to 0 to ignore that signal.
PRO MOVE
Make a solo run feel hand-held

Playing alone? The player-count signal already maxes assist for a solo player and tapers to nothing for a full team. Bump dda_metric_players_weight and you get noticeably stronger backup the fewer humans are alive — no other change needed.

Two sides, mirrored

Friendly and enemy tuning live in parallel sections so you can dial each independently. A few of the headline dials on each side:

FRIENDLY · the good toys

Your teammates

  • bot_aim_speed_mult — how fast they swing onto a target 1.0 .. 4.0 · default 1.75
  • bot_aim_accuracy_mult — how tight their groupings are 0.5 .. 3.0 · default 1.50
  • Building & defense competency section 2b
  • Battery & credit seeking sections 2e–2f
  • Controller-level pathfinding section 2h
ENEMY · the hostile toys

The opposition

  • Perception & awareness range section 3
  • Behaviour & persistence (how relentless) section 4
  • Interception & flanking pathfinding section 5 · the centrepiece
  • Body traversal + flying types sections 6–6b
  • Optional escalation director section 9 · off by default
CAUTION
Two fields you can safely walk back

The two friendly aim-accuracy fields are scaled by inference because the game hides them behind a private curve. If a tweak ever makes bots feel worse, just set that one multiplier back to 1.0 — every field is independent and safe to neutralise on its own.

Apply changes without restarting

You don't have to relaunch the game every time you tweak a number. Section 1 exposes optional hot-reload keys — assign them and editing becomes a live, in-match loop. They're nil (off) by default; set each to a Key.* value:

config.lua · Section 1 — optional live keys
config.reload_key         = Key.F9    -- re-read this file live after you save
config.status_key         = Key.F10   -- print a one-shot status line to the console
config.toggle_key         = Key.F8    -- pause applying NEW buffs (live toys keep theirs)
config.auto_reload_seconds = 0        -- or auto re-read every N seconds (0 = off)

After binding reload_key: edit config.lua, save, alt-tab back into the game, press the key. The director and every newly-spawned toy immediately use the new values; toys already on the field keep what they had. A syntax error on reload is caught and ignored, so you fall back to the last good values instead of crashing.

NOTE
No keys bound? No problem.

The classic loop always works too: edit config.lua, save, and either restart the game or hot-reload all UE4SS Lua mods with Ctrl + R (covered back in Chapter 02).

Three quick recipes

To get a feel for it, here are three small, sane edits. Each is just a line or two in config.lua:

1 · “Make enemies actually scary”

Lean into the interception pathfinding and perception without touching your teammates:

Pure enemy sharpening
config.enable_friendly_bots = false   -- leave allies stock
-- then raise the section 3–5 perception & pathfinding multipliers a notch

2 · “Co-op power fantasy”

Godlike allies, vanilla foes, director cranked toward the top of the band:

Maxed-out teammates
config.enable_enemy_npcs   = false
config.dda_hard_skill_min   = 70
config.dda_hard_skill_max   = 100
config.dda_competence_max   = 1.40

3 · “Endless Survival ramp”

Turn on the time-survived signal so teammates grow more capable the longer you last:

Built for Survival mode
config.dda_metric_time_weight = 1.0    -- off by default
config.dda_time_ramp_seconds  = 600    -- full ramp after 10 minutes
FIELD NOTE
When in doubt, read the line above the value

You never have to memorise any of this. Every dial in config.lua has its purpose, its safe range, and its “which way is stronger” note written directly above it. Change one thing, save, reload, feel the difference, repeat.

Dialled in.

Your overhaul now plays exactly the way you want it to. The last step is making sure it's actually live — reading the console, spotting the startup banner, and unsticking the handful of things that trip people up.