HawChow-CyberpunkScoutTendrils icon

CyberpunkScoutTendrils

Configurable neon color cycling, breathing gradients and emissive glow for GTFO Scout tendrils.

By HawChow
Last updated 3 days ago
Total downloads 26
Total rating 0 
Categories Client Mods
Dependency string HawChow-CyberpunkScoutTendrils-0.1.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_GTFO-3.2.3 icon
BepInEx-BepInExPack_GTFO

BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.

Preferred version: 3.2.3

README

CyberpunkScoutTendrils

Standalone GTFO/BepInEx plugin for configurable cyberpunk-style Scout tendril colors. It hooks only Enemies.ScoutAntennaDetection.UpdateTendrilState, reads that Scout's m_activeTendrils, and changes each active tendril's m_colorDefault. It does not alter AI, damage, health, spawning, player state, networking, or other entities.

Features

  • Any number of #RRGGBB or #RRGGBBAA colors; comma-, semicolon-, or newline-separated.
  • Fixed or random palette order, independently selectable from fixed or random timing.
  • Smooth color gradients and configurable brightness breathing.
  • Optional emissive tint through MaterialPropertyBlock; shared materials are never instantiated or modified.
  • Original tendril colors and renderer property blocks are restored when disabled, when a tendril leaves the active list, and on plugin unload.
  • Config file changes are debounced and applied on the Scout update/game thread.

The emissive override only works when a Scout tendril renderer uses a shader exposing _EmissiveColor or _EmissionColor. Visible screen-space bloom halos require the game's bloom/post-processing to be enabled; this plugin does not add global post-processing or lights.

Install

  1. Install BepInExPack_GTFO 3.2.3.
  2. Extract this package into the GTFO game directory, preserving the BepInEx/ folders.
  3. Launch the game once so BepInEx can initialize the plugin config.
  4. Edit BepInEx/config/HawChow.CyberpunkScoutTendrils.cfg. The package also includes BepInEx/config/HawChow.CyberpunkScoutTendrils.cfg as a default template; if you install it before first launch, BepInEx will read it directly.
  5. Edit the palette and other settings; save the file. Valid changes reload automatically after a short debounce on the next Scout tendril update.

Configuration reference

Section / key Default Meaning
[General] Enabled true Master switch; disabling restores tracked original visual state.
[Colors] Palette #00F5FF,#FF2BD6,#B8FF00,#8A5CFF Unlimited #RRGGBB / #RRGGBBAA entries, separated by commas, semicolons, or line breaks. Invalid entries are ignored with a log warning; an all-invalid/empty palette restores the built-in defaults.
[Colors] Order Fixed Fixed cycles in listed order; Random chooses another color without repeating the current one.
[Animation] IntervalMode Fixed Fixed or Random, independent from Order.
[Animation] FixedIntervalSeconds 2.5 Fixed-mode interval, clamped to 0.05–3600 seconds.
[Animation] RandomIntervalMinSeconds 1.0 Random-mode minimum, clamped to 0.05–3600 seconds.
[Animation] RandomIntervalMaxSeconds 4.0 Random-mode maximum, clamped to 0.05–3600 seconds. If minimum exceeds maximum, values are swapped and a warning is logged.
[Animation] GradientEnabled true Enables color interpolation.
[Animation] GradientDurationSeconds 1.25 Gradient duration, clamped to 0–3600 and capped at the selected interval.
[Animation] BreathEnabled true Enables periodic brightness breathing.
[Animation] BreathPeriodSeconds 2.4 Breath cycle length, clamped to 0.1–3600 seconds.
[Animation] BreathMinIntensity 0.45 Brightness multiplier at the dimmest point, clamped to 0–16.
[Animation] BreathMaxIntensity 1.1 Brightness multiplier at the brightest point, clamped to 0–16; reversed endpoints are swapped.
[Glow] Enabled true Enables compatible per-renderer emissive color override.
[Glow] Intensity 3.0 Emissive RGB multiplier, clamped to 0–32.

Invalid enum values fall back to Fixed; non-finite numbers fall back to their documented defaults. Numeric values outside their documented ranges are clamped and logged.

Build and verification

From the project directory, run powershell -ExecutionPolicy Bypass -File .\tools\build.ps1. The script uses the local .NET SDK, writes the Release plugin to build/plugin/CyberpunkScoutTendrils.dll, stages the Thunderstore layout under build/package-stage/, creates build/CyberpunkScoutTendrils.zip, and runs the local ZIP linter. Run unit and mock-runtime checks with:

E:\Tools\dotnet\dotnet.exe run --project .\tests\CyberpunkScoutTendrils.Tests.csproj --configuration Release

The automated renderer tests use Unity-shaped mocks; they do not substitute for a live GTFO level test. The actual tendril shader and post-processing response must be verified in-game.