• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
(Old Version) My BJ-1 lost both arms and both side torsos. Only medium I had. Repair time ~91 days.

~this~ close to savescumming that file. Thats always a problem with the difficulty curve in this game. Anything that makes late game interesting serves to make early game brutal, and/or encourages a playstyle of 'Never take damage ever'.. which is not unrealistic, but indirect-fire LRM boats as the only survivable playstyle (because any meaningful damage makes a given mission a loss... Kill 8 mechs your weight or heavier, you might get paid a month's worth of maintenance, but you wont be able to see a mission for 2-3 months due to repair time and pilot hit time.)

Which raises an interesting point. There should be a 'no C-Bills, ALL THE SALVAGE' option in contract negotiation. Because lets face it, given the pittance we are paid by the various governments to do their work, coupled with the tiny fraction of what we kill we are allowed to keep, we would be better served to just go find people, blow them up, take their mechs, and maybe sell some of what we take... especially if we could sell at anything like cost.

(Protip - Buying at 100% and selling at 10% might make a challenging game, but is painfully 'gamist' and SOD breaking. Ideally, we should be fighting our 4 mediums against 4 mediums sufficiently well-captained by the AI that we win some, we lose some, and when we win, the salvage and paycheck pays for the losses. Unfortunately, the game we have has the usual case of "PCs as Heros who never/rarely lose", so payouts are minimal, as risk is reduced and we are chewing up 2-3x our weight each fight...
 
(Old Version) My BJ-1 lost both arms and both side torsos. Only medium I had. Repair time ~91 days.

...

I agree with you.

One main reason why to based repair cost to tonnage was to make it much cheaper to use medium mechs in the end game. Assault will have still long repair times.

Other points are also correct. Depending how much time I have to use for this. There will be a drop ton limit, based on planet size and climate. I asked Morphyum if he would be interested to do this. If not, there will be at some point a hack for this, maybe even soon. This is gamey idea but.. If it creates interesting scenarios I am all in and don't really care if it is semirealistic idea.

It looks a bit like this:
Planet size, creates extra gravity and your drop ship cannot do it that well:
Small = 400t
Medium = 350t
Large 300t

Climate:
Terran/Tropical = -60t
Water = -50t
Arid = -40t
Desert = -30t
Arctic = -20t
Ice/Rocky/Tundra = -10t
Lunar = -0t

Also there will be extra payment per ton you drop.
When tonnage creates limits and is limited the game should get in general more difficult.
Variating tonnage limits will create need for different kind of lances that should add some mech options to your Mech Bay.
As difficulty will rise, probably other costs will go down. As in this case all is not based on economy.

It can be that I make one more ugly hack to make this real. Then check and wait what other people are doing and see if I could just use their mods and put it all together. They have also nice configuration files etc. Clearly more professional mods, which for sure take more time to do as well.

Costs in my testing mod are like this btw.
Tonnage * Tonnage * 4
Atlas 100t * 100t * 4 = 40k
Locust 20t * 20t * 4 = 1600

I noticed that Morphyum has soon finished his Mech value based calculations. Which is nicely done mod once again. It can be that at some point then move to mods made by others. Are close enough and do the same stuff in the end.
 
Great mod, starting the Campaign with this mod (and upping the AI Crit Chance to equal player crit chance) has lead to my first pilot deaths and "mandatory" restart (main character "died"). Of course, the AI was also landing headshots like there was no tomorrow, but this mod provided a really fresh breath of difficulty into missions.
 
Can't wait to see the tonnage limitations - that was one of the things I have been clambering for to make lights more useful.
 
Look at tying drop tonnage limits to mission difficulty, maybe? Throwing 4 assaults at a half-skull '4 Scorpion Light Tanks' is a problem, but I do NOT want to run into the ever popular 5 skulls 'Hunh, an entire Company of Atlas and KGC. In the periphery.' mission with a mix of mediums and heavies.
 
0.3a Version:

Notice that this is 'a' version. I wrote this this Friday evening and tested "some" and here it is. That means that all things may not be like I planned. Can even crash indeed. I hope that not but as I did not test much it is hard to make any promises. I did not test that drop ton works for example in all story missions. Yes, this is my early testing version.

I did not do MOD Loader stuff yet. I know, I would like to use some other mods as well.


0.3a Design Decisions:

- Starting mechs Shadow Hawk and Vindicator changed to Jenner and Panther
I got this idea from Nexus. Someone was recommending 4x Locust and 4 Rookie pilots. It was indeed very easy to start the game with medium mechs. I don't see that why not to decrease this a bit. I don't like the idea of 4 Locusts, but Jenner and Panther sounded good. I have never used Jenner, so why not.

- Structure repairing 20% faster
Guilty tested 0.2 this week. He said that it is S loads of fun and in his opinion works ok.
This is to counter effects from other changing. Make it easier as other things make it harder.
Repair delay is also less important now as there are other reasons to have more mechs.

- Contract Operation Costs introduced. Simple “Mech tonnage * tonnage * 4” is used to calculate C-Bill costs. As a starting point to see how this would work.
There is a mod that does this by mech value. It is a good option as well. Starting value to start testing from somewhere.
The main reason is to decrease benefits if you start to farm low level contracts with 4 assaults.
Steiner Scout lance, 4xAtlas -> 160k

- Planet size and climate based Drop Ton Limit:
This is a starting point again. It would be nice to get ~semirealistic tonnage values here. To get this idea under testing I decided that I will simply set some values.
You as a Company Commander has to pay attention to starsystem information, it is much more interesting now. 5 skull contracts with 240t may or may not be something you want to accept.
You should be still able to find 400t 5 skull missions, from systems that have planets to support this.

This will increase amount of different setups you may want to build. More different kind of mechs you may want to keep in your mech bay. The same mechs you took for 370t contract may not be the best option for 270t contract.

Future plan: Add increased income from high level contracts that have reduced tonnage. For example from those 5 skull contracts with 240t.

...

Getting late and tired, I hope I did not do many mistakes.

---

From example picture.
First are the additional expensives. Then the tons you have in your lance "/" followed by the limit.
 

Attachments

  • example.png
    example.png
    36,5 KB · Views: 31
Last edited:
Hi there, great work and thanks for your mod! I just finished the campaign I will soon relauch one with your mod and some personal changes.

Regarding the tonnage limit experimentation, I would suggest to take into consideration the planets gravity tags. Also maybe randomize a little the mechanism to avoid to have systematically the same tonnage limit for a dedicated system (maybe it's not the case and I misunderstood). The rationale could be that in a given system there are many planets and moon, thus justifying different tonnage limitations.

Regarding starting condition, would it be possible to randomize the starting pilot and have them pure recruit (low skills and no unlocked ability)? I think it would be a very nice touch for diversity and replayability.

That's it for now for the suggestions, thanks again for your mod and keep up the good work!
 
Regarding the tonnage limit experimentation, I would suggest to take into consideration the planets gravity tags. Also maybe randomize a little the mechanism to avoid to have systematically the same tonnage limit for a dedicated system (maybe it's not the case and I misunderstood). The rationale could be that in a given system there are many planets and moon, thus justifying different tonnage limitations.

Regarding starting condition, would it be possible to randomize the starting pilot and have them pure recruit (low skills and no unlocked ability)? I think it would be a very nice touch for diversity and replayability.

I made the mod yesterday evening, told to my friend after. He said me immediately that there is a gravity value as well. Indeed, I simply did not know about it.
This is the first version. It is not perfect and in one way it is not meant to be. Have to test it and see how it works in the end. There are many options here.

Randomized pilots is a nice idea. Pure recruits is a small immersion breaker to me. It was a mercenary company before, so they should have some experience, no? But experience could be in a "pool" from which pilot are randomized.

Thank you from feedback.
Thank you for everyone else who has been giving feedback. It makes it easier when you get ideas/opinions how something works. Needs lot of time to test and experience it all yourself.
 
Checked some of the weapons there...
I decreased LRM and SRM stab damage for this 0.2a. The issue is that standard LRM is working fine in early game. Those +1 and +2 stab weapons are causing more issues. In late game there seems to be plenty of stab damage.
Another things I considered was to decrease accuracy or add heat for LRM +stab damage versions.

I am definitely open for suggestions.

In vanilla clearly missile goes out of control with ++ and +++ versions, regarding damage (up to +50% damage while others weapons have +20% only !?) and of course stability.

I have yet to relaunch a game with your modto test it, but at first glance what I would change is missile accuracy. I would reduce it and/or forbid called shot with them (maybe a little bit to radical). Something like that, you get the idea. If I remember well in TT there was additional dispersion roll for missile, it was a good counterpart to there very good dps efficiency.

... I noticed that pilots don't really die that often. It can be that pilot health has to be decreased? Opinions?

Guts:
If it is too much or not enough, let me know.

An idea to develop more the company management : why not borrow the 'tired' mechanism from XCOM Long War? For example after each mission, no matter injured or not, each pilot would not be available for 1 week to represent their tired state. This duration could be reductable through Gut skills (maybe -1 day every 2 Gut points). With such system the player would be encouraged to increase his roster size. What do you think?
 
In vanilla clearly missile goes out of control with ++ and +++ versions, regarding damage (up to +50% damage while others weapons have +20% only !?) and of course stability.

I have yet to relaunch a game with your modto test it, but at first glance what I would change is missile accuracy. I would reduce it and/or forbid called shot with them (maybe a little bit to radical). Something like that, you get the idea. If I remember well in TT there was additional dispersion roll for missile, it was a good counterpart to there very good dps efficiency.



An idea to develop more the company management : why not borrow the 'tired' mechanism from XCOM Long War? For example after each mission, no matter injured or not, each pilot would not be available for 1 week to represent their tired state. This duration could be reductable through Gut skills (maybe -1 day every 2 Gut points). With such system the player would be encouraged to increase his roster size. What do you think?

Idea works in theory (about tired) but not in the current game, if a pilot is tired for 7 days (or 6 with -1 day) it is effectively out for the system since at most you will do 3-4 contracts with the current mod which results in 3-4 downtime unless moving system which is minimum around 12 days I think. Tired should be 2 or 3 days which you can reduce by 1 day so you actually have a choice to make in which order you take the contracts. 7 days effectively means 12 days (minimum travel time). Tired only would matter with 4 or less days.
 
Idea works in theory (about tired) but not in the current game, if a pilot is tired for 7 days (or 6 with -1 day) it is effectively out for the system since at most you will do 3-4 contracts with the current mod which results in 3-4 downtime unless moving system which is minimum around 12 days I think. Tired should be 2 or 3 days which you can reduce by 1 day so you actually have a choice to make in which order you take the contracts. 7 days effectively means 12 days (minimum travel time). Tired only would matter with 4 or less days.

Not sure to well understand what you are saying : you would suggest to reduce it to 2-3 days that's it? Why not, the numbers I gave was rough number for the example. But on the other side if the 'down' time is too short I am not sure the player would see a real interest to recruit others guys. The idea behind this mechanism is to encourage roster management and pilot recruitment, if the tired state is too short it may failed to achieve that I fear.
 
Last edited:
I'm liking most of your work here so far. Especially the "Contract Operation Costs". I'm not feeling the "Planet size and climate based Drop Ton Limit" though. It seems like an artificial limitation. Why shouldn't I be able to drop as much tonnage as I want when I'm willing to pay the "Contract Operation Costs" for those Mechs?
 
I'm liking most of your work here so far. Especially the "Contract Operation Costs". I'm not feeling the "Planet size and climate based Drop Ton Limit" though. It seems like an artificial limitation. Why shouldn't I be able to drop as much tonnage as I want when I'm willing to pay the "Contract Operation Costs" for those Mechs?

It is a bit artificial.

If your immersion is breaking I try to invent you something...

Planet gravitation should have been used. Large, Medium, Small planet size was supporting the idea of gravity. I learned that there is gravity a bit later, the reason why planet size is doing it now. Have to check this at some point. You can think it this way that your drop ship engine is not powerful enough to handle full 400t if gravity is strong?

Climate... Atmosphere maybe creating more issues? Temperature could affect? Heavy winds ;)

If you or anyone else has good ideas how drop limit should be implemented, I am open for suggestions for sure. I don't think that mech games work really without drop limit. This is maybe the biggest issue this game has.

Limit creates balance between light, medium, heavy and assault mechs. It makes multiple different lance setups possible for end game, not just 4x100t. It opens again all Battletech tactics. Like why to have a LRM boat and a scout if you can have 2x100t instead? You may need more mechs as you have to make your company able to fight with different drop limits, creates purpose for additional mech bays.

There is now a mod to not make you lose your evade counters when you are shot at. Others are fighting to balance light mechs with combat changes like this. I don't like this really.

Lets say we invent a nice about realistic way to implement this. When you take a travel contract, maybe you want to check what kind of gravity/climate it has before that? 5 skull contract and you can drop 240t. Then in the future if we add income multiplier for this kind of contracts.

So yeah, it can taste a bit artificial but it creates balance and variety, more complex gameplay + maybe in the future difficult well paying end game contracts. It creates so much possibilities that I would not like to miss that.

The question is what is the best way to do this?

...
If you can reason me out from this.. Why not.
 
Last edited:
Do you mind telling me where the "per-ton" feature is for maintenance and repair costs are? I'm trying to just turn that on manually and tweak some other stuff to find a good balance for the early game.
 
Do you mind telling me where the "per-ton" feature is for maintenance and repair costs are? I'm trying to just turn that on manually and tweak some other stuff to find a good balance for the early game.

SimGameConstant.json

"MechLab" :{
"StructureRepairTechPoints" : 0.032,
"StructureRepairCost" : 12,

The rest is in the dll. I can look later where it was if you need it? So those were changed to per ton value.
It is too difficult or easy for early game?

One thing.. If there is no change that repairs take long, you don't have to ever scrap mechs. If you get repair time of ~200 days, the mod is trying to tell you that it is time to use that scrap button ;)
 
SimGameConstant.json

"MechLab" :{
"StructureRepairTechPoints" : 0.032,
"StructureRepairCost" : 12,

The rest is in the dll. I can look later where it was if you need it? So those were changed to per ton value.
It is too difficult or easy for early game?

One thing.. If there is no change that repairs take long, you don't have to ever scrap mechs. If you get repair time of ~200 days, the mod is trying to tell you that it is time to use that scrap button ;)

"The rest" is probably what I was looking for. The ability to tweak the per-ton stuff, as well as the other custom limitations you have changed. What are you using to edit the .dll?
 
"The rest" is probably what I was looking for. The ability to tweak the per-ton stuff, as well as the other custom limitations you have changed. What are you using to edit the .dll?

dnSpy is easy to use software. Turns dll into ~csharp. It is common stuff, can be found with google. Also then compiles all back when you save.
Harmony is the application they use to make mods.
Tutorial: https://gist.github.com/pardeike/c02e29f9e030e6a016422ca8a89eefc9
Example from Morphyums patches https://github.com/Morphyum

Basic knowledge of programming is all you need. Often people don't know the tools and think it is more difficult than it is. You don't have to be an expert CSharp programmer either. I am not CSharp programmer, never written a line. Well, except the bit I have done with this mod.

Once you open the dll with dnSpy, the time taking part is to know where is and what. The symbol names are there clearly but as you have no documentation it takes time to see what goes and where.

Download dnSpy and unpack, start it, open the dll.

Lets do a small mod here together:
- Left side you see class hierarchy. You can open classes and browse the code. Click those and you will see the code opening.
- Now you want to know where they use "StructureRepairTechPoints".
- Top row on right there is a search button, click and search StructureRepairTechPoints
- Bottom, you can see search results and can double click the line.

- Ok, this does not tell much right? There is simply a definition there.
- Right click the symbol, either in search or in code that should be right front of you. Select "Analyze".
- Analyzer results at the bottom, Assigned By and Read By. Assigned means where this variable is assigned and Read is where it is read.
- Open "Read By" and click the line.
- "Decompiling"

- You find lines like this:

int techCost = Mathf.CeilToInt(this.Constants.MechLab.StructureRepairTechPoints * (float)structureCount * num2);
int cbillCost = Mathf.CeilToInt((float)(this.Constants.MechLab.StructureRepairCost * structureCount) * num);

- The next question is how do you know where tons are defined?
- I can see if I have time to fill this in this tutorial, but you basically search it through like before
- When you do this yourself it may take some time. It can take plenty of time to find what goes and where, even days. Don't get depressed if it is not as easy when you do it yourself. This is tutorial so all looks easier than really is. BUT it is not so hard either as many try to make it sound like.

- WE SKIP TO PLACE WHERE WE HAVE FOUND AND UNDERSTOOD...
- There is MechDef and Chassis classes. MechDef you have seen in json and Chassis as well. Chassis has member called "Tonnage".
- Now we somehow have to know where to find this specific mechdef and chassis, etc.
- In this case all is easy, in the same method ~10-20 lines above:

foreach (MechDef mechDef in this.ActiveMechs.Values)
{
if (mechDef.GUID == mechSimGameUID)
{
if (mechDef.GetChassisLocationDef(location).InternalStructure == (float)structureCount)
{
flag = true;
}
break;
}
}

- Here we are scrolling through all activeMechs to find the right one. It places the value always in mechDef variable and then checks its ID, etc.
- We are only interested from the fact that here we find the right mechDef. As the information we are looking for is in the right mechDef.Chassis.Tonnage.
- So lets do our small hack to read it in local int variable called num3:

int num3 = 1;
foreach (MechDef mechDef in this.ActiveMechs.Values)
{
if (mechDef.GUID == mechSimGameUID)
{
if (mechDef.GetChassisLocationDef(location).InternalStructure == (float)structureCount)
{
flag = true;
}
num3 = (int)mechDef.Chassis.Tonnage;
break;
}
}

- Then lets multiply our techCost and cbillCost with it

int techCost = Mathf.CeilToInt(this.Constants.MechLab.StructureRepairTechPoints * (float)structureCount * num2) * num3;
int cbillCost = Mathf.CeilToInt((float)(this.Constants.MechLab.StructureRepairCost * structureCount * num3) * num);

- Select top left File and Save Module...
- Select top left File and Close All.
- Grats, your first ugly hack mod is completed ;)
- If you have time check after Mod Loader, you can then make a tutorial for me from it ;)

If I did not miss anything it should work.

"Difficult part", "Time taking part" is to find where specific things you need are done, read, initialized.

...

I want to underline. It is not as easy as it seems to be in this tutorial nor it is as hard as you first thought.
If you have always wanted to learn programming and do mods for Battletech Game, this could be your time to find that C-Sharp book.
If you know C-Sharp you might be better at this than I am.
 

Attachments

  • hack number uno.png
    hack number uno.png
    42,7 KB · Views: 17
Last edited:
Whoa, This is an introduction to modding! I just downloaded ILSpy, now it's time to learn, I have a bad feeling about my gaming time..

Just a quick feedback about your mod, I relaunched a campaign yesterday and did some missions (until the Argo salvage on Axylus) :
- I absolutely love the start with ligh mechs only, so much more fun!
- Also I like a lot the nerfed hit chances, it makes combats much more incertain and longer, in a way that if you want to play 'safe' and serious you have to really anticipate B-plan for bad rolls (because with 70% to hit it can really happen). And munitions matter more now I think, due to the combat duration increase.
- Regarding eco and salvage I cant tell you yet I didnt had any serious damage or salvage to feel it for now

Anyway, it looks very good!
 
I installed your Mod today.

I played now for several Weeks and i have now the Blackjack, two Panthers and a Jenner. I wanted to try the AXYLUS Story Mission now, because i think i can handle it.
But when i tried to Deploy, the "Sign" "Deploy" on the starting Screen, where i choose my Mechs, was dark Grey and i cant hit it. So i can`t start that Mission.

Why is this so?

I also installed this Mod here:
https://www.nexusmods.com/battletech/mods/34

But that isn`t the Problem i suppose.

Why can`t i start that Axylus Mission????