Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Underrail [PRE-RELEASE THREAD, GO TO NEW THREAD]

skyst

Augur
Joined
Jul 26, 2010
Messages
294
Location
Philadelphia, PA
I've bought it twice now. When it comes out I'll buy it a third time.
Love this game but haven't played it in a LOOOOONG time because I don't want to ruin it.

I feel the same way, though I have only purchased once. I played 20 hours back in 2013 and have (somehow) managed not to play it further since. Even back then, the game was fantastic. Release can't come soon enough!
 

Zdzisiu

Arcane
Joined
Dec 3, 2009
Messages
3,499
I've bought it twice now. When it comes out I'll buy it a third time.
Love this game but haven't played it in a LOOOOONG time because I don't want to ruin it.

I feel the same way, though I have only purchased once. I played 20 hours back in 2013 and have (somehow) managed not to play it further since. Even back then, the game was fantastic. Release can't come soon enough!
Boy oh boy since 2013 the game became infinitely better, more complex, more feature completed, more graphically pleasant. You are in for a treat if you manage to stay in your abstinence until the release.
 

polo

Magister
Joined
Jul 8, 2014
Messages
1,737
I've bought it twice now. When it comes out I'll buy it a third time.
Love this game but haven't played it in a LOOOOONG time because I don't want to ruin it.

I feel the same way, though I have only purchased once. I played 20 hours back in 2013 and have (somehow) managed not to play it further since. Even back then, the game was fantastic. Release can't come soon enough!
Same here, only it was 2014. There wasn't much content when i played it, so i kind of "finished" it. Then some months after that Core city was released, and i felt i wanted to wait until release, which im doing now.
Prob. will buy another copy when released.
 

TwinkieGorilla

does a good job.
Patron
Joined
Oct 19, 2007
Messages
5,480
Serpent in the Staglands Divinity: Original Sin Torment: Tides of Numenera Wasteland 2 Shadorwun: Hong Kong Divinity: Original Sin 2 BattleTech Pathfinder: Wrath
Possible Tchort-related bug report which may include spoilers:

Styg I've noticed something happening a few times in this Faceless invasion at Tchort Institute. First time I noticed it was when I preempted the fight by placing traps near the entrances (which admittedly was cheating so I'm fine with this not being viable) and at some point during the fight the Tchortists would become aggressive. But since then I've noticed that this tends to randomly happen anyway (and not from accidentally electrocuting an ally, or whatever). It always seems to be right around the time that the elevator pulls up, which also seems to coincide with my losing a turn...so not sure if that has anything to do with it either.

Also: I just had a dream about this goddamn battle that's how long I've been trying to get past it!

EDIT: *sigh* I'm finding this battle impossible due to the random allies turning against me. Please look into this, Styg.
 
Last edited:

epeli

Arcane
Joined
Aug 17, 2014
Messages
719
Possible Tchort-related bug report which may include spoilers:

Styg I've noticed something happening a few times in this Faceless invasion at Tchort Institute. First time I noticed it was when I preempted the fight by placing traps near the entrances (which admittedly was cheating so I'm fine with this not being viable) and at some point during the fight the Tchortists would become aggressive. But since then I've noticed that this tends to randomly happen anyway (and not from accidentally electrocuting an ally, or whatever). It always seems to be right around the time that the elevator pulls up, which also seems to coincide with my losing a turn...so not sure if that has anything to do with it either.

Also: I just had a dream about this goddamn battle that's how long I've been trying to get past it!

EDIT: *sigh* I'm finding this battle impossible due to the random allies turning against me. Please look into this, Styg.

The trap thing is not a bug, that's how controlled zones work. Read the zone control indicator's tooltip (at the upper right corner of your screen) for details. As for the battle itself:
You can't defeat the entire invasion no matter how 1337 you are. Just grab the elevator as soon as it arrives.
 

TwinkieGorilla

does a good job.
Patron
Joined
Oct 19, 2007
Messages
5,480
Serpent in the Staglands Divinity: Original Sin Torment: Tides of Numenera Wasteland 2 Shadorwun: Hong Kong Divinity: Original Sin 2 BattleTech Pathfinder: Wrath
The trap thing is not a bug, that's how controlled zones work. Read the zone control indicator's tooltip (at the upper right corner of your screen) for details.

My man, I don't think you read my post very clearly (or maybe I wasn't clear enough). I stated that I knew the trap part was cheating, and likely not a bug. That says NOTHING about allies turning against me when this isn't the case, however. As for the elevator, I figured as much...but AS I SAID....this is usually when I find allies turning against me.
 

Alfons

Prophet
Joined
Jul 25, 2014
Messages
1,031
Styg is it possible to add an option to load during the enemies turn or to speed up combat animations? I'm sure everyone encountered a situation where they know they are going to die by a thousand cuts so I don't feel like I need to sit there for another 20 seconds just to confirm that I lost.
 

Styg

Stygian Software
Developer
Joined
Aug 18, 2010
Messages
742
Location
Serbia
The trap thing is not a bug, that's how controlled zones work. Read the zone control indicator's tooltip (at the upper right corner of your screen) for details.

My man, I don't think you read my post very clearly (or maybe I wasn't clear enough). I stated that I knew the trap part was cheating, and likely not a bug. That says NOTHING about allies turning against me when this isn't the case, however. As for the elevator, I figured as much...but AS I SAID....this is usually when I find allies turning against me.

I'll look into it. Just in case I need help, does this actually happen on all/most of your attempts and can be reproduced easily?

Styg is it possible to add an option to load during the enemies turn or to speed up combat animations? I'm sure everyone encountered a situation where they know they are going to die by a thousand cuts so I don't feel like I need to sit there for another 20 seconds just to confirm that I lost.

Make the combat more fluid with an option to speed the animations up is one of my top priority tasks for the final polish phase. And, yes, allowing the player to load during opponents turn makes sense. I have no idea why I haven't fixed that yet.
 

TwinkieGorilla

does a good job.
Patron
Joined
Oct 19, 2007
Messages
5,480
Serpent in the Staglands Divinity: Original Sin Torment: Tides of Numenera Wasteland 2 Shadorwun: Hong Kong Divinity: Original Sin 2 BattleTech Pathfinder: Wrath
I'll look into it. Just in case I need help, does this actually happen on all/most of your attempts and can be reproduced easily?

Most times, yes. Certainly enough that I've been paying extra attention and noticed it happening when it shouldn't.
 

jagged-jimmy

Prophet
Joined
Jan 25, 2008
Messages
1,551
Location
Freeside
Codex 2012
For all the tinkering with character builds i computed a simple calculator:
http://underrail.com/forums/index.php?topic=1305.0
Can't see the attached file there. Might be because I'm not registered on Underrail forum.

Maybe add the file here too?
Really? Crap, i uploaded there, because Codex does not have attachments (or i can't find teh button...).
Edit: source code in spoiler - paste into any text file, rename to any.HTML - open with browser.
<!DOCTYPE html>
<html>
<body>
<div id="currentLevel">
<label id="lvllabel">Current Level:</label>
<input id="lvl" type="number" min="1" max="25" step="1" value=1 oninput="lvlChanged()">
<button onclick="reset()" type="reset">Reset</button>
</div>

<div id="stats">
<label for="STR" class="statLabels">STR:</label>
<input id="STR" type="number" min="3" max="20" step="1" value=5 oninput="statChanged('STR')">
<br>
<label for="DEX" class="statLabels">DEX:</label>
<input id="DEX" type="number" min="3" max="20" step="1" value=5 oninput="statChanged('DEX')">
<br>
<label for="AGI" class="statLabels">AGI:</label>
<input id="AGI" type="number" min="3" max="20" step="1" value=5 oninput="statChanged('AGI')">
<br>
<label for="CON" class="statLabels">CON:</label>
<input id="CON" type="number" min="3" max="20" step="1" value=5 oninput="statChanged('CON')">
<br>
<label for="PER" class="statLabels">PER:</label>
<input id="PER" type="number" min="3" max="20" step="1" value=5 oninput="statChanged('PER')">
<br>
<label for="WIL" class="statLabels">WIL:</label>
<input id="WIL" type="number" min="3" max="20" step="1" value=5 oninput="statChanged('WIL')">
<br>
<label for="INT" class="statLabels">INT:</label>
<input id="INT" type="number" min="3" max="20" step="1" value=5 oninput="statChanged('INT')">

<br><br>
<label id="splabel">Stat Points balance: </label>
<label id="statpoints">5</label>
</div>

<div id="skills">
<label for="GUNS" class="skillLabels">Guns: </label>
<input id="GUNS" type="number" min="0" step="1" value=0 oninput="skillChanged('GUNS')">
<label id="effGUNS"></label>
<label id="balanceGUNS"></label>
<br>
<label for="THROWING" class="skillLabels">Throwing: </label>
<input id="THROWING" type="number" min="0" step="1" value=0 oninput="skillChanged('THROWING')">
<label id="effTHROWING"></label>
<label id="balanceTHROWING"></label>
<br>
<label for="CROSSBOWS" class="skillLabels">Crossbows: </label>
<input id="CROSSBOWS" type="number" min="0" step="1" value=0 oninput="skillChanged('CROSSBOWS')">
<label id="effCROSSBOWS"></label>
<label id="balanceCROSSBOWS"></label>
<br>
<label for="MELEE" class="skillLabels">Melee: </label>
<input id="MELEE" type="number" min="0" step="1" value=0 oninput="skillChanged('MELEE')">
<label id="effMELEE"></label>
<label id="balanceMELEE"></label>
<br>

<label for="DODGE" class="skillLabels">Dodge: </label>
<input id="DODGE" type="number" min="0" step="1" value=0 oninput="skillChanged('DODGE')">
<label id="effDODGE"></label>
<label id="balanceDODGE"></label>
<br>
<label for="EVASION" class="skillLabels">Evasion: </label>
<input id="EVASION" type="number" min="0" step="1" value=0 oninput="skillChanged('EVASION')">
<label id="effEVASION"></label>
<label id="balanceEVASION"></label>
<br>

<label for="STEALTH" class="skillLabels">Stealth: </label>
<input id="STEALTH" type="number" min="0" step="1" value=0 oninput="skillChanged('STEALTH')">
<label id="effSTEALTH"></label>
<label id="balanceSTEALTH"></label>
<br>
<label for="HACKING" class="skillLabels">Hacking: </label>
<input id="HACKING" type="number" min="0" step="1" value=0 oninput="skillChanged('HACKING')">
<label id="effHACKING"></label>
<label id="balanceHACKING"></label>
<br>
<label for="LOCKPICKING" class="skillLabels">Lockpicking: </label>
<input id="LOCKPICKING" type="number" min="0" step="1" value=0 oninput="skillChanged('LOCKPICKING')">
<label id="effLOCKPICKING"></label>
<label id="balanceLOCKPICKING"></label>
<br>
<label for="PICKPOCKETING" class="skillLabels">Pickpocketing: </label>
<input id="PICKPOCKETING" type="number" min="0" step="1" value=0 oninput="skillChanged('PICKPOCKETING')">
<label id="effPICKPOCKETING"></label>
<label id="balancePICKPOCKETING"></label>
<br>
<label for="TRAPS" class="skillLabels">Traps: </label>
<input id="TRAPS" type="number" min="0" step="1" value=0 oninput="skillChanged('TRAPS')">
<label id="effTRAPS"></label>
<label id="balanceTRAPS"></label>
<br>

<label for="MECHANICS" class="skillLabels">Mechanics: </label>
<input id="MECHANICS" type="number" min="0" step="1" value=0 oninput="skillChanged('MECHANICS')">
<label id="effMECHANICS"></label>
<label id="balanceMECHANICS"></label>
<br>
<label for="ELECTRONICS" class="skillLabels">Electronics: </label>
<input id="ELECTRONICS" type="number" min="0" step="1" value=0 oninput="skillChanged('ELECTRONICS')">
<label id="effELECTRONICS"></label>
<label id="balanceELECTRONICS"></label>
<br>
<label for="CHEMISTRY" class="skillLabels">Chemistry: </label>
<input id="CHEMISTRY" type="number" min="0" step="1" value=0 oninput="skillChanged('CHEMISTRY')">
<label id="effCHEMISTRY"></label>
<label id="balanceCHEMISTRY"></label>
<br>
<label for="BIOLOGY" class="skillLabels">Biology: </label>
<input id="BIOLOGY" type="number" min="0" step="1" value=0 oninput="skillChanged('BIOLOGY')">
<label id="effBIOLOGY"></label>
<label id="balanceBIOLOGY"></label>
<br>
<label for="TAILORING" class="skillLabels">Tailoring: </label>
<input id="TAILORING" type="number" min="0" step="1" value=0 oninput="skillChanged('TAILORING')">
<label id="effTAILORING"></label>
<label id="balanceTAILORING"></label>
<br>

<label for="TCONTROL" class="skillLabels">ThoughtControl: </label>
<input id="TCONTROL" type="number" min="0" step="1" value=0 oninput="skillChanged('TCONTROL')">
<label id="effTCONTROL"></label>
<label id="balanceTCONTROL"></label>
<br>
<label for="PSY" class="skillLabels">Psychokinesis: </label>
<input id="PSY" type="number" min="0" step="1" value=0 oninput="skillChanged('PSY')">
<label id="effPSY"></label>
<label id="balancePSY"></label>
<br>
<label for="META" class="skillLabels">Methathermics: </label>
<input id="META" type="number" min="0" step="1" value=0 oninput="skillChanged('META')">
<label id="effMETA"></label>
<label id="balanceMETA"></label>
<br>

<label for="PERSUASION" class="skillLabels">Persuasion: </label>
<input id="PERSUASION" type="number" min="0" step="1" value=0 oninput="skillChanged('PERSUASION')">
<label id="effPERSUASION"></label>
<label id="balancePERSUASION"></label>
<br>
<label for="INTIMIDATION" class="skillLabels">Intimidation: </label>
<input id="INTIMIDATION" type="number" min="0" step="1" value=0 oninput="skillChanged('INTIMIDATION')">
<label id="effINTIMIDATION"></label>
<label id="balanceINTIMIDATION"></label>
<br>
<label for="MERCANTILE" class="skillLabels">Mercantile: </label>
<input id="MERCANTILE" type="number" min="0" step="1" value=0 oninput="skillChanged('MERCANTILE')">
<label id="effMERCANTILE"></label>
<label id="balanceMERCANTILE"></label>
<br>

<br><br>
<label id="skplabel">Skill Points balance: </label>
<label id="skillpoints">120</label>
</div>

<div id="emptyspace"></div>

<script>
function lvlChanged() {
calcStatPoolBalance();
calcSkillPoolBalance();

checkSkills();
}

function checkSkills() {
statChanged("STR");
statChanged("DEX");
statChanged("AGI");
statChanged("PER");
statChanged("CON");
statChanged("WIL");
statChanged("INT");
}

function statChanged(s) {

var ability = getVal(s);

if (s == "STR") {
calcSkillChange(ability, "MELEE");
}

if (s == "DEX") {
calcSkillChange(ability, "THROWING");
calcSkillChange(ability, "MELEE");
calcSkillChange(ability, "LOCKPICKING", synergy("MECHANICS", 10),
synergy("TRAPS", 10));
calcSkillChange(ability, "PICKPOCKETING");
calcSkillChange(ability, "TRAPS", synergy("MECHANICS", 10), synergy(
"LOCKPICKING", 10));

}

if (s == "AGI") {
calcSkillChange(ability, "DODGE", synergy("EVASION", 10));
calcSkillChange(ability, "EVASION", synergy("DODGE", 10));
calcSkillChange(ability, "STEALTH");
}

if (s == "PER") {
calcSkillChange(ability, "GUNS");
calcSkillChange(ability, "CROSSBOWS");
}

if (s == "INT") {
calcSkillChange(ability, "HACKING", synergy("ELECTRONICS", 10));
calcSkillChange(ability, "MECHANICS");
calcSkillChange(ability, "ELECTRONICS");
calcSkillChange(ability, "CHEMISTRY", synergy("BIOLOGY", 10));
calcSkillChange(ability, "BIOLOGY", synergy("CHEMISTRY", 15));
calcSkillChange(ability, "TAILORING");
calcSkillChange(ability, "MERCANTILE", synergy("PERSUASION", 20));
}

if (s == "WIL") {
calcSkillChange(ability, "TCONTROL", synergy("PSY", 10), synergy(
"META", 10));
calcSkillChange(ability, "PSY", synergy("TCONTROL", 10), synergy(
"META", 10));
calcSkillChange(ability, "META", synergy("TCONTROL", 10), synergy(
"PSY", 10));

calcSkillChange(ability, "PERSUASION", synergy("MERCANTILE", 20));
calcSkillChange(ability, "INTIMIDATION", synergy("PERSUASION", 10));
}

calcStatPoolBalance();
}

function skillChanged(s) {
checkSkills();
calcSkillPoolBalance();
}

function synergy(skill, bonus) {
var val = parseInt(getVal(skill));
return Math.floor(val * (parseInt(bonus) / 100));
}

function calcSkillChange(ability, skill, bonus1, bonus2) {
if (skill == "MELEE") {
var str = parseInt(getVal("STR"));
var dex = parseInt(getVal("DEX"));
ability = Math.max(str, dex);
}

var val = calcSkillBonus(parseInt(ability), parseInt(getVal(skill)));

var maxSkillVal = 15 + ((parseInt(getCurrentLevel()) - 1) * 5);
if (val < maxSkillVal) {
var synBonus = 0;
if (bonus1 > 0) {
synBonus = synBonus +bonus1;
}
if (bonus2 > 0) {
synBonus = synBonus +bonus2;
}

var withSyn = val + synBonus;
if (withSyn >= maxSkillVal) {
val = maxSkillVal;
} else {
val = withSyn;
}
}

if (val > 0) {
setCnt("eff" + skill, "(" + val + ")");
var balance = calculateSkillBalance(getCurrentLevel(), getVal(skill));
setSkillBalance("balance" + skill, balance);
} else {
setCnt("eff" + skill, "");
}
}

function calcStatPoolBalance() {
var level = getVal("lvl");

var lvl_stats = 35 + 5 + Math.floor(parseInt(level) / 4);

var balance = lvl_stats - parseInt(getTotalAssignedStats());

setBalance("statpoints", balance);
}

function calcSkillPoolBalance() {
var level = getCurrentLevel();
var total_pool = ((parseInt(level) - 1) * 40) + 120;

var balance = total_pool - parseInt(getTotalAssignedSkills());

setBalance("skillpoints", balance);
}

function calculateSkillBalance(lvl, val) {
return ((parseInt(lvl) - 1) * 5 + 15) - parseInt(val);
}

function setSkillBalance(id, val) {
if (val < 0) {
document.getElementById(id).style.color = "red";
if (val != 0) {
setCnt(id, "[" + val + "]");
} else {
setCnt(id, "");
}
} else {
document.getElementById(id).style.color = "black";
setCnt(id, "");
}
}

function setBalance(id, val) {
if (val >= 0) {
document.getElementById(id).style.color = "black";
} else {
document.getElementById(id).style.color = "red";
}
setCnt(id, val);
}

function calcSkillBonus(ability, skill) {
ability = parseInt(ability);
skill = parseInt(skill);

if (ability > 4) {
return Math.floor((1 + ((ability - 4) * 0.085)) * skill);
}
if (ability < 4) {
return Math.floor((1 - ((4 - ability) * 0.1)) * skill);
}
return skill;
}

function reset() {
setVal("lvl", 1);

document.getElementById("STR").value = 5;
document.getElementById("DEX").value = 5;
document.getElementById("AGI").value = 5;
document.getElementById("CON").value = 5;
document.getElementById("PER").value = 5;
document.getElementById("WIL").value = 5;
document.getElementById("INT").value = 5;

setBalance("statpoints", 5);

resetSkill("GUNS");
resetSkill("THROWING");
resetSkill("CROSSBOWS");
resetSkill("MELEE");
resetSkill("DODGE");
resetSkill("EVASION");
resetSkill("STEALTH");
resetSkill("HACKING");
resetSkill("LOCKPICKING");
resetSkill("PICKPOCKETING");
resetSkill("TRAPS");
resetSkill("MECHANICS");
resetSkill("ELECTRONICS");
resetSkill("CHEMISTRY");
resetSkill("BIOLOGY");
resetSkill("TAILORING");

resetSkill("TCONTROL");
resetSkill("PSY");
resetSkill("META");

resetSkill("PERSUASION");
resetSkill("INTIMIDATION");
resetSkill("MERCANTILE");

document.getElementById("skillpoints").style.color = "black";
setCnt("skillpoints", 120);

}

function resetSkill(s) {
document.getElementById(s).value = 0;
setCnt("eff" + s, "");
setCnt("balance" + s, "");
}

function getTotalAssignedSkills() {
return parseInt(getVal("GUNS")) + parseInt(getVal("THROWING"))
+ parseInt(getVal("CROSSBOWS")) + parseInt(getVal("MELEE"))
+ parseInt(getVal("DODGE")) + parseInt(getVal("EVASION"))
+ parseInt(getVal("STEALTH")) + parseInt(getVal("HACKING"))
+ parseInt(getVal("LOCKPICKING"))
+ parseInt(getVal("PICKPOCKETING")) + parseInt(getVal("TRAPS"))
+ parseInt(getVal("MECHANICS")) + parseInt(getVal("ELECTRONICS"))
+ parseInt(getVal("CHEMISTRY")) + parseInt(getVal("BIOLOGY"))
+ parseInt(getVal("TAILORING")) + parseInt(getVal("TCONTROL"))
+ parseInt(getVal("PSY")) + parseInt(getVal("META"))
+ parseInt(getVal("PERSUASION")) + parseInt(getVal("INTIMIDATION"))
+ parseInt(getVal("MERCANTILE"));
}

function getTotalAssignedStats() {
return parseInt(getVal("STR")) + parseInt(getVal("DEX"))
+ parseInt(getVal("AGI")) + parseInt(getVal("CON"))
+ parseInt(getVal("PER")) + parseInt(getVal("WIL"))
+ parseInt(getVal("INT"));
}

function getCurrentLevel() {
return getVal("lvl");
}

function getVal(id) {
return document.getElementById(id).value;
}

function setVal(id, val) {
return document.getElementById(id).value = val;
}

function setCnt(id, val) {
return document.getElementById(id).innerHTML = val;
}
</script>

<style>
.statLabels{
display: block;
float: left;
width: 50px;
}
.skillLabels{
display: block;
float: left;
width: 110px;
}
input {
width: 50px;
}

#currentLevel{
background-color:black;
color:white;
text-align:center;
padding:5px;
}
#stats {
height: 700px;
float:left;
margin-right:200px;
padding:10px;
}
#skills {
float:center;
padding:10px;
}
#emptyspace {
float:left;
padding:10px;
}
</style>

</body>
</html>
 
Last edited:

epeli

Arcane
Joined
Aug 17, 2014
Messages
719
Here's an alternative build tool I made a while ago: http://underrail.info.tm/

I was planning to finish it before posting it, but might as well drop it out here now. This one calculates skill values correctly. ;)
 

jagged-jimmy

Prophet
Joined
Jan 25, 2008
Messages
1,551
Location
Freeside
Codex 2012
Here's an alternative build tool I made a while ago: http://underrail.info.tm/

I was planning to finish it before posting it, but might as well drop it out here now. This one calculates skill values correctly. ;)
Fixed code in the spoiler. Synergy was indeed applied not correctly to the effective skills. Nice tool btw, epeli. But i wanted to assign skills faster ;).
 

epeli

Arcane
Joined
Aug 17, 2014
Messages
719
In my calc you can ctrl+click to (un)assign all points at once, or shift-click to assign 5 points (one level's worth) at once. I find that faster than typing numbers in, while visually resembling in-game char creation. ;)
 

Alfons

Prophet
Joined
Jul 25, 2014
Messages
1,031
I appreciate the calculator, but this really isn't a calc kind off game. The feats take into account the natural value of a skill and attribute so you can make do with a piece of paper a pen and the wiki.
 

Atchodas

Augur
Joined
Apr 23, 2015
Messages
1,047
Anyone could share a beginner attribute build for a character using Assault Rifles or maybe SMG ? Havent played yet so no idea what attributes to go for
 

Zdzisiu

Arcane
Joined
Dec 3, 2009
Messages
3,499
Anyone could share a beginner attribute build for a character using Assault Rifles or maybe SMG ? Havent played yet so no idea what attributes to go for

I will copy a post from two pages ago, ST'Ranger did a decent job showing some possible assault rifle builds:

Assault Rifle Specialist

I couldn't resist starting another new character since the recent patch. I decided this time to go with an Assault Rifle specialist, a role which I had found slightly lackluster in the past compared to e.g. the dexterous SMG wielder. The AR in Underrail is certainly the most versatile of the firearm options when it comes to character creation. Unlike SMGs/Pistols which are arguably strongest with 10/10 DEX/PER or Sniper Rifles which are strongest with 10/10 PER/AGI, the AR gets the full benefit of its strengths with only 10/7 PER/STR.

A typical SMG/Pistol user looks like the following:
10 Dexterity (max every opportunity)
10 Perception
8 or 6/5 or 7/4 other stats

And a Sniper Rifle user doesn't look much different. But an AR specialist can have all sorts of attribute distributions.

Commando
10 Perception (max)
7 Strength
9 Agility
5 Dexterity

The Commando infiltrates with strong Stealth, laying mines and traps at strategic points. He exfiltrates by walking smugly out the front door after tossing a flashbang and bringing freedom to his enemies half a clip at a time.

Army of One
10 Perception (max)
8 Strength
10 Will

There is no technique of war unknown to the Army of One. He takes full control of every engagement, using the most efficient means to dispose of his foes. Their weapons cannot penetrate his armor. Their lines cannot withstand his onslaught.

The Punisher
10 Perception
9 Strength
5 Constitution
7 Intelligence

The finest selection of weapons, tweaked to perfection. An array of versatile armors, chosen for the situation. And all the Molotovs and flashbangs he can carry. Si vis pacem, para bellum.


These are just some examples - experiment!

Assault Rifles as a weapon are about three things in Underrail - burst fire, high per-bullet damage, and ranged accuracy. The combination of these three is what makes the AR excel in comparison to the other firearms. There are some feats we can use to enhance these greatly, so that our strengths in combat will shine brightly.

Expertise: It won't seem like much early on, but when you're level ~10 the enemies will be feeling the pain. High-caliber ammunition + burst fire + Expertise. Kevlar be damned.

Suppressive Fire (req 10 Guns, 6 Per): This feat seems rather middling at first glance, but it can be extremely powerful if used properly. The cone is massive and hits enemies at extreme distances from the character. The most dangerous foes an AR specialist will face (long-range weapons like crossbows/snipers) are hurt the most by this, as they will spend their precious MP and AP moving closer to counteract the accuracy penalty - closer so you can burst fire them down next round. An AR specialist is going to burst fire almost every round, so this feat certainly will not be put to waste.

Gun Nut (req 7 Int, 15 Mechanics): Get your 9mm barrels out, gentlemen. This feat on an AR with a large caliber is simply fantastic.

Full Auto (req 7 Str, 40 Guns): You burst fire almost every round. The immense onslaught of damage will cripple and shred your enemies.

Concentrated Fire (req 8 Per, 60 Guns): As if your 9mm bursts weren't doing enough damage, here's more to pile on. At close ranges, this feat makes an AR burst every bit as lethal as Cut Throat.

Commando (req 80 Guns): Trust me, you will almost always meet the condition to trigger this feat. Disgusting.

The combination of these feats makes for an extremely powerful burst fire. Expertise (dmg) + Gun Nut (dmg) + Full Auto (more bullets) + Concentrated Fire (dmg). Then Commando lets you do it all over again in the same turn - for free.

In addition, there is one piece of equipment that deserves special mention (though I haven't happened upon one yet in my current playthrough [Styg's punishment for my powergaming sins]). The Muzzle Brake addon adds 2 additional bullets to your burst. Burst fire is 5 bullets by default. Full Auto adds 2, up to 7. Muzzle brake adds 2 more, up to 9. Nine bullets doing compoundingly more damage (Concentrated Fire), with each bullet being buffed up by Expertise (+lvl in damage per bullet) and Gun Nut( ~10 damage per bullet). Meanwhile, everyone behind the meat you just shredded is debuffed by Suppressive Fire.

Destruction is its own kind of beauty.
 

Atchodas

Augur
Joined
Apr 23, 2015
Messages
1,047
ah , out of 100 that i never read it was only 2 pages ago , lol should checked myself , thank you anyway
 

Alfons

Prophet
Joined
Jul 25, 2014
Messages
1,031
What are the 9 AGI and 5 DEX for? You have 7 STR already why not increase it to 8 or 9 and get metal armor with the option of melee?
I never tried it so it might be shit but If I was to take a pure guns build my spread would be.

10 PER 8-9 STR 9-10 INT dump the rest.

If you want to use grenades more often then 10 PER 8 STR 6 DEX 7 INT dump the rest.

If you don't want to fuck with crafting Just replace INT with CON in the previous examples.

If you want crafting but want more HP move some points from INT and PER to CON, I believe the highest req for an assault rifle feat is 8 PER so don't go below that, or plan to have 8 PER when the feat is available.

If I was to take craftingI want at least 6 or 7 INT. 7 Gives a gun crafting feat but I'm not sold on it yet. I would say about 5 INT is the minimum. Never go below 4 for obvious reasons.
 

Blaine

Cis-Het Oppressor
Patron
Joined
Oct 6, 2012
Messages
1,874,666
Location
Roanoke, VA
Grab the Codex by the pussy
What are the 9 AGI and 5 DEX for? You have 7 STR already why not increase it to 8 or 9 and get metal armor with the option of melee?

Read the build description, imbecile.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom