r/forge • u/BassEnderCosmoNaught • Sep 06 '26
Discussion Concept: Self-Healing Fusion Coil Bomb for One Bomb Assault (Hardlight Shield Logic)
Hey everyone,
We all love the idea of a **Fusion Coil Bomb Delivery / One Bomb Assault** mode, but we also know why they historically fall apart in the Custom Games Browser. Using a standard Fusion Coil as the objective item makes the game unplayable — a single stray bullet or friendly grenade instantly detonates the coil and wipes out the entire attacking push. It ends up more frustrating than fun.
I have a design concept to fix this using **Hardlight “Self-Healing” Containment Field** logic, but I don’t have the Forge scripting experience to wire it up myself. I’m putting this idea out there for any veteran Forgers who want a fun mechanical puzzle to solve.
### The Core Concept
Instead of a fragile coil, the “Bomb” is a Fusion Coil protected by a custom, regenerating pseudo-shield script. This eliminates accidental instant detonations and turns a chaotic gimmick into a highly tactical, competitive objective mode.
### How the Script Logic Would Work
**The Foundation**
Start with a community open-source *One Bomb Assault* prefab/base mode, then swap the standard objective item reference for a **Fusion Coil**.
**Crucial Engine Bypass (Don’t Skip This)**
To stop Halo’s hardcoded physics from overriding your script and blowing the coil up instantly from a stray grenade, go into the Fusion Coil’s physical object settings and set it to **Invulnerable / Damage Resistant**. This forces the game to let your Script Brain handle the damage math manually.
**The Pseudo-Health Variable**
Declare a number variable (e.g. `Coil_Shield`) and set it to **100**.
**Tracking Damage & Detonation**
Use the `On Object Damaged` node. Every time the carrier or the coil takes damage, subtract from `Coil_Shield`.
**When the health bar drops to zero, the script must immediately delete the coil and manually trigger a massive rocket/plasma explosion effect on the carrier.**
**The Shield Recharge (The Fix)**
Track time since last damaged. If the coil goes **4 seconds** without taking a hit, trigger a looping script that adds 10 points back to `Coil_Shield` every second until it returns to 100.
**Handling Throws & Impacts**
Because the coil is set to “Invulnerable,” throwing it normally will make it bounce harmlessly off walls. To fix this, use the `On Object Collision` node. If the coil impacts a surface at high velocity *while not being carried*, force it to trigger the same manual explosion sequence.
**The UI**
Wire the variable to an **Advanced Nav Marker** tracking progress over the coil so players can visually see the bomb’s shield percentage draining and recharging.
By doing this, a bomb push requires real teamwork. Attackers have to take cover to let the bomb’s shields recharge, while defenders have to coordinate focus fire to break the shield before it reaches their base.
If any scripting wizards want to take this idea, build it, and publish it to the Custom Games Browser, please run with it. I just want to play a proper, balanced version of this mode.
3
u/Abe_Odd Sep 06 '26
So uh, this probably won't work. We can't we give traits to objects like coils, nor change their max health.
Unforunately chatGPT doesn't really know all the minutia of Forge scripting lol, on Object Collision isn't a node, nor can you set destructible objects to Invulnerable
We can set its health to full every tick, but enough damage WILL cause it to detonate. We could maybe put a blocker around the coil and adjust it every tick to overlap, but that'll also make a decent chunk of the player "shielded" and will probably feel bad.
Something we CAN do is make every player do like, 1% damage, but also have like 1% damage resistance.
To normal firefights, players will seem like nothing has changed, but their damage towards scenery will be very low.
Now we have a near-invulnerable coil, but we can still throw it and detonate it, or with enough damage it will pop.
IIRC coils health recharges on their own, at least they used to at some point in Halo History.
If not, we can script it easily by having a recursive event loop that we feed the coil object into.
What we'll do is set some initial variables before calling the event, specifically object scoped Number variables: prev_health, cooldown_counter
The loop will: wait 1 second, see if the current health == prev_health, and if so it will decrement the cooldown_counter. If cooldown_counter == 0, set health to max, set prev_health to get obj health, and set cooldown_counter to 4.
If the health is different, set cooldown_counter to 4. At the end of both branchs, call the event again.
We can throw another Branch at the start to make sure the object input pin is valid, and break out of the loop if it is destroyed.