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
BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.
Preferred version: 3.2.3README
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
#RRGGBBor#RRGGBBAAcolors; 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
- Install BepInExPack_GTFO 3.2.3.
- Extract this package into the GTFO game directory, preserving the
BepInEx/folders. - Launch the game once so BepInEx can initialize the plugin config.
- Edit
BepInEx/config/HawChow.CyberpunkScoutTendrils.cfg. The package also includesBepInEx/config/HawChow.CyberpunkScoutTendrils.cfgas a default template; if you install it before first launch, BepInEx will read it directly. - 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.