Let's talk about Boron Railgun

Hello everyone!
I wanted to have a go at weapon balancing and I hope you’re gonna like my propositions.
@InterAction_studios I also hope you’re gonna take a peek at this post, as well.


To start, I think Boron Railgun is much better than its past counterpart right now, but there are definitely a lot of edges to polish and things to chisel if we want this weapon to become more easily usable and prettier in terms of aesthetics.

Currently, Boron Railgun has these so-called stages. When it reaches a new stage, its color changes and its sound effect is pitched up a little bit. As it enters a new stage, it also becomes more powerful. That idea in particular (damage as you overheat) is pretty damn great and I love it, however I feel like it could be implemented better.

Let’s start with STAGES

Stages are not the best thing to have in this weapon. They make it harder to use and way too reliable on your heat level. We can also have this weird case where we alter between the most powerful stage and the one before that and it’s definitely not pretty to look at.

That’s why I suggest completely scrapping stages.

What can be done about the weapon’s damage progression as it heats up?

Smooth damage progression until a certain heat level would resolve our problem with stages and make it possible to use the strongest variant consistently, without constantly altering between literal thousandths of the decimal.

Smooth progression means this - make the damage gradually increase as the weapon heats up and halt the progression after the 25th rectangle/bar has been filled. I’ll let this convenient demonstrative image speak for itself:


I borrowed it from @1galbatorix1’s Weapon Balance Program post, so I’d like to thank him :).

So, as you can see, that way the problem with stages is gone, and we can use Boron’s max damage without having to worry about literally being on the last bar.


There’s no need for a sound indicator if there’s a clear visual indicator that something’s going on with your weapon. A lot of weapons have this pitch alteration gimmick now (Plasmer, Lightning, Absolver, Positron) so it’ll be nice if the others are left the way they are.


I’d like to propose a different and very easy color progression for this weapon. Gameplay is a core element in every game, but aesthetics are very closely behind it. Visuals are what make this gameplay truly shine, so it’s important to have some eye candy.

In order to achieve this, I thought of gradual color progression - similar to what Vulcan Chaingun has at present.

If you noticed these hanging rectangles in the image with the heat bar, that’s their purpose and I’ll explain how it’ll work in code and visually.

Part 1 - The way it’d look

It’s pretty simple. We just get Boron Railgun to slowly turn from red to yellow(see the heat bar) and then to very bright yellow (close to white) until it reaches x2.5 damage.

Here’s a representation of this:

To explain why what’s supposedly pure white looks like this - it’s the sprite. I wanted to keep the last sprite relatively the same to make it easier for IA. Although it is slightly tweaked, so I’d love it if he changes it as it is on the image above.

Part 2 - The code

Just like what I wrote above, programming this would be more than simple. If you want, you can skip this part. If you’re IA, please read it.

Let’s assume the heat bar has a variable that holds its progress (and I assume so because there’s a warning beep sound when you reach a certain bar). That way IA can make the color progress relative to how filled the overheat bar is - which is exactly how Vulcan Chaingun works, except it has a constant color in the beginning instead of in the end.

Now, if you’re IA and if you decide to do it differently - go ahead, but from my experience, this would be the easiest method.

Introduce two new integers - name them however you’d like, but for this post I’d like to call them boronGreen and boronBlue.

public int boronGreen = 0;
public int boronBlue = 45;

I made them public assuming it’d be more convenient for you.

Next, let’s go to Boron Railgun’s draw method. For the sake of argument, let’s say IA has it figured out and he uses RGB.
Do as follows:

(255, boronGreen, boronBlue);

For obvious reasons, I skipped whatever code IA could’ve written before that. I am not fluent in C++ - only C# and web languages.

In your update function (I’m sure you use one, otherwise no idea how you’ve made it), make boronGreen gradually increase until it reaches 255 relative to the heat bar I showed above. I’m unfamiliar with the way you check how much it’s filled, so I’m gonna have to leave this part for you to figure out. Looking at Vulcan, I’m sure it’s easy.

Once boronGreen >= 255, start boronBlue’s progression until it reaches 255 relative to the heat bar I showed earlier. Keep the colors at 255, 255, 255 until the weapon overheats completely.

Part 3 - The code (damage)

Pretty much the same way color progression would work.

Assuming you already have a boronMultiplier conveniently sitting on your work desk, take it and make it gradually increase until it reaches x2.5.


To improve Boron Railgun, it should have:

  1. Its stages removed entirely
  2. Smooth damage progression introduced
  3. Its pitch alteration removed
  4. A smooth color progression for beauty

Thanks for reading! :smiley:


Waiting for Moron Railgun to be remade

1 Like

It’s reworked, guess you didn’t read the changelog


Read my post again. It literally starts with the current rework’s flaws.
EDIT: Sorry HaiAn, I thought you were talking to me. Unless you really were? @HaiAn2007

I think he was replying to @xBendy (I say this if you thought he was replying you. If not, well, nothing).


Uh I was talking to @xBendy


Is that a programming language? If it is, what programming language is it? It looks like Pascal, but it isn’t.

1 Like

It’s C# code. But I believe it’s the same in C++.

1 Like

In Python 3.0 it would be:

boronGreen = 0
boronBlue = 45

And in Turbo Pascal 7.0 it would be:

    [other variables]
    [other variables]

And later in code (after begin):

boronGreen:= 0;
boronBlue:= 45;
1 Like

This is going to be way harder to implement solely because heat sinks exist, I think. If it’s feasible, though, I’m entirely ambivalent toward the change at this stage.

To your surprise - not at all actually. It’d be more than easy. Don’t forget Vulcan is similar and it works with different heatsinks! :wink:


I don’t think heatsinks do lot of difference, and using better heatsink doesn’t make it worse so I have no problem with that.

1 Like

Changed in v.50 :medal_sports: Idea

I prefer distinct power levels over a continuous spectrum for this weapon. It makes transitions between heat levels clearer. It also better encourages the player to reach the next heat level.


As a player, I have to disagree. Currently, the only viable option for dealing damage is only the last phase (or also 2nd last phase if <100%), while the prior phase are just not having enough damage to compete. Not mentioning it takes relatively long time to heat it up to maximum phase, and also taking firepower / gift resets it back to zero % of heat which makes really HUGE DISADVANTAGE when you need high dps immediately. (Maybe I’m a bit exaggerating, but it is the fact.)

But if you insist with “heat level” mechanic and picking gift reset heat to zero, that’s fine, but tweaking should be done. I propose to increase all base damage by 1.6x. Thus cause proposed base damage and maximum damage to be 1.6x - 4x from what it does right now. Yes, it looks very huge, but the next move is to reduce time to overheat to make its damage before overheating relatively same as right now. By the way, it would be an advantage for the player as they could access maximum damage faster, and the heat management is the key.

Anyway, it should have its level 11 fp removed for consistency.


No, you’re not. I was playing a boss rush not too long ago with it. Kept getting my heat meter reset the moment I reached 75% most of the time. Well, not exactly the moment I reached it, but a few seconds afterwards. Doubt it’s any different on regular missions, since you’ll get powerups all the time. If you want consistency, look at it this way: For other weapons, obtaining powerups is mostly fine(aside from corn, if you decide to use popcorn. It’s annoying in that case, too). For this, it’s not. So why not make it consistent by making it an upgrade for everything?


May I juſt point out that the very fact that this is a valid argument implies that 100% is too eaſy? I mean, after that point the game is ſuppoſed to be hard, no holds barred, ſo the very fact that <100% is in parentheſes is ridiculous.

Everything you say makes sense, but none of really applies to “should the damage/heat step up in increments or ramp up continuously”, which is the question I was addressing.

The problem you’re describing is “on average, heat levels are significantly lower than max, so damage should be buffed to cancel that out”. Which I agree with, on principle (I’ll wait for more experienced players to weigh in).

This is a fundamental mechanic. I know it causes problems with certain weapons (Absolver, Corn, and now maybe Boron), but making it work differently on a case-by-case basis is… not strictly an improvement.

The Boron naturally maps to 11 power levels. I’m not inclined to change this.


“Naturally”? Vulcan Chaingun has exactly the same design as Boron, but it has 12 power levels instead of 13, so as a result it is consistent with rest of the weapon roster, and doesn’t cause further problems with Bombers.

So why can Vulcan Chaingun have standard power progression, but Boron can’t? What’s the actual reason behind that? They literally have exactly the same design, so “naturally mapping to 11 power levels” looks just like a cherry-pick excuse for not fixing the problem.


You’re right – thanks for bringing this to my attention. Vulcan Chaingun now also has 11 (12, if you count 0) power levels.


That being said, why not giving every weapon fp 11? I see that things like Lightning Fryer, Plasma Rifle, Positron Stream, Ion Blaster, Photon Swarm could easily implement it. Not sure with the others.