PDA

View Full Version : Math and nWoD



Fouredged Sword
2012-01-12, 06:16 PM
Ok, I like nWoD, but I don't have lots of dice. Instead I have math, see cus I am an engineer.

So I have been working on a system to simulate massive die pools from nWoD in a way that rolls only two dice.

I have discovered some interesting math, and I decided to share it with the playground so you to can simplify your mass die rolls as STs.

Ok, now the idea of this excercise started from a minmax perspective to determine the usefulness of adding an extra die to one skill over another. Now it has turned into a means of calculating the odds of mass die rolls using excel.

Theory of a single die - here be math

The chance of getting a success on a single die roll is somewhat more complicated than it would seem. A "hit" is gained on a 8,9 or 0 of a 10 sided die. This has odds of 3/10, or .3.

Now there is a complication. The ten again rule mucks things up a little, see because there is a chance of getting an extra success. Here is when I had to estimate a little. You have a 1/10 or .1 chance of getting a 0, if you also have rolled a 1 nothing happens. As the chances of getting a 1 are the same as the chances you get a 0 I have estimated the following.

"1/2 the time you roll a 0, you will also have rolled a 1, canceling it out."

Now this means that the chances of actually getting to roll again are 1/20 or .05 per die. The chance of that die making a second success is .3 just like the first die, so the chance of getting an extra success is .015 per roll, giving each roll, on average, an extra .015 chance of getting a success, but there is also the chance for rolling two or more 0's in a row, each time adding less and less of an additional chance for success, .0015, .00015 ext.

So the aggregate chance for each die to produce a success is .31666....

9 again alters the rate you roll again. The math is close to the same though, but you have an extra 1/10 * 3/10 chance of getting another roll per extra roll, (.03333) granting an aggregate chance of...

.34999... or simply .35

8 again once more make the chance more likely by .03333 leaving...

.38333

And so we have reduced our complex multiple roll potential into a binary approximation

These numbers will be needed later for calculating rows of our odds table

This does not truly map the possibilities of a single die, but as you get more and more die, it becomes more and more accurate because the odds or rolling more successes than die becomes more and more infrequent (very rapidly).


That odd triangle looking thing an what it has to do with us.

Who remembers Pascal's triangle?

Nobody? Well then google it, as it is needed.

You see when you add together binary acts (and any thing with only two outcomes is binary), they get a set of "hits" and "misses" biased on a pattern.

That pattern is Pascal's triangle.

Look at the second row.

1,1

This can represent the outcome of a single binary action. There is one way to get the first outcome (a "miss") and one way to get the second outcome (a "hit")

Now lets look at the second row

1,2,1

An extra digit! It is simple, the first outcome is always a total miss, the second is always a single hit, the next is one more hit.

So there is one way to miss completely (roll two misses), two ways to roll a single hit (roll ether die a hit, and the other a miss) and one way to roll a double hit.

This works all the way down the triangle, with the number of die being represented = (row used -1)


Bringing it together

Now you got a Pascal's row and odds per die, how to turn that into useful information.

Lets look at the one die for now.

Row = (R1, R2) = (1,1)
Odds = Od = .31666

The chance of a miss = (1-.31666) we know this from the first bit
The odds of a hit are = .31666.

So the chance of a single success is Od, the chance of a single failure is (1-Od)

Lets look at the second row now.

Row (R1,R2,R3) = (1,2,1)
Odds = Od = .31666

The odds of getting all misses is simple (1-Od)^2.
The odds of double hits is also simple (Od)^2

Simple probability math shows that. It's the chance of getting 1 success that becomes harder.

We can calculate the odds of getting that particular result in order. (1-Od)*(Od) - the odds of the first event happening the way we want it to * the odds of the second event happening the way we want it to.

Now the problem is we can also reverse that and have the same desired result, so (1-Od)*(Od) is only half the rate we actualy see that result.

remember what R2=? That's right 2! There are 2 ways to get 1 hit, so the equation is Chance = R2*(1-Od)*(Od)

Now for following rows the equation becomes more complicated as you add more die, bit it remains predictable.

It is

Chance of getting a particular outcome = Rx*(1-Od)^((total # of die)-(needed hits)) * (od)^(needed hits)


Pulling all together into something useful

Ok, we have an interesting data point, but it in of itself isn't very useful. We can calculate the chance of getting exactly x number of successes on y number of die.

How to make that useful to STs.

The sum of all successes greater than your target success up to the total number of die = your total chance of success for that roll.

So, create a chart. In fact open up excel and create three charts! First make a chart of Pascal's triangle, then use that and the odds for your rolling dynamic to create a chart for the odds of a particular roll by die # and target number. Then create a chart that sums the needed rows of the second chart to create the aggregate rate of relative success.

Now you can throw two d10 (or three if you want to be accurate to .0) as a percentile die to get a good equivalent to rolling 20, 30, or even more die. Have fun.

Selrahc
2012-01-12, 07:12 PM
You have a 1/10 or .1 chance of getting a 0, if you also have rolled a 1 nothing happens.

Not a rule.
So, base odds are .33 recurring.

Fouredged Sword
2012-01-12, 08:36 PM
Ok, that changes the base odds to be simpler. What are your thoughts on the rest of the math?

erikun
2012-01-12, 09:22 PM
You have a 0.3 chance of scoring a success on any die. (3:10)

You have a 0.1 chance of rolling a 10, allowing an additional die roll with a 0.3 chance of scoring another success. That would be a 0.03 chance of happening.

Your additional die has a 0.1 chance of rolling a 10, allowing for another die roll. The chances of this happening (rolling one 10, then another 10) would be 0.01, with a 0.003 chance of success for the next die being a success. This is where the 0.333... or 1/3 chance of success per die roll comes from.

You have a 0.1 chance of rolling a 1 and negating a success on another die. This is a bit trickier to work out, at least to me, because it depends on another die being rolling a success produces a botch if not.

I don't recall how 1's and 10's interact with each other, such as if the 1's prevent exploding or not. If they do, then that would muddy up the chances even more.


Sticking it all into a single percentile would be tricky. For example, the chances of rolling a single success on five dice is around 87%. The chance of rolling five successes is 0.4%. The chances of rolling a botch is around 1.4%. And, what's more, you would need to calculate the percentages (or create a table) for each dice pool total.

Nerd-o-rama
2012-01-12, 09:26 PM
1s don't cancel successes in NWoD. The only way to botch is to have a dice pool of zero and roll a 1 on your chance die.

Incidentally, the odds of success on a chance die are .11 repeating.

Also, if you're an engineer, you can afford to buy a dozen more d10s. Trust me.

Fouredged Sword
2012-01-12, 09:47 PM
Not putting a wife through grad school I can't. Also math is fun.

The lack of ones canceling out 0's does make the math much easier.

The Glyphstone
2012-01-12, 09:51 PM
Not putting a wife through grad school I can't. Also math is fun.

The lack of ones canceling out 0's does make the math much easier.

While math may be fun, what grad school is she going to that you can't spare five dollars for a dozen d10's?:smallconfused:

erikun
2012-01-12, 11:53 PM
A lot of places don't have a local game store, or at least not a well-known one. You can't exactly buy d10 dice from Barnes & Noble, although some can still sell WoD books.

I am curious how you got your hands on 2d10 but don't have access to another 10 or so. :smallconfused: They're something like 40¢ locally. And if we're talking about an online dice roller/randomizer program, I cannot think that locating one with a multi-d10 would be that difficult.

bigstipidfighte
2012-01-13, 03:35 AM
I feel bad looking at how much extra work you did calculating a much more difficult number when it's a simple 1/3 chance.

As an aside, this means 8- and 9-again are more powerful than you thought, since the odds go from

0.333 at 10 again to
0.366 at 9 again to
0.399 (0.4 for simplicity's sake) at 8 again.

You've got me thinking now (more of an accomplishment than it sounds, up until today I wasn't even aware that the odds of success on a die were 1/3) so I'm going to look at the virtues of grabbing the 9/8 again traits vs. getting more dice. Obviously, with a high enough dice pool, getting these traits is going to be better than adding 1 or 2 more dice, but at what point does that line actually get crossed? Let's see.

9-again nets you an extra .033 chance of success on each die, which means you actually need 10 dice in your pool to make it as good as the .333 form adding another die.

8-again is worth it after 5 dice, or, if you're stacking on top of 9-again, is also worth it after 10 dice, conveniently.

I'm fairly sure the odds of a crazy string of successes actually doesn't go up as much as one would expect, even though it looks like it should.:smallconfused:
Maybe I missed something.

Short version- it's not worth getting 9 again unless you are already very good at something. For combat focused characters though, a weapon with 9-again is going to be better than a weapon with 1 extra die instead, and 8-again is better than 2 or maybe 3 if you're twinked enough.

The Glyphstone
2012-01-13, 06:22 AM
A lot of places don't have a local game store, or at least not a well-known one. You can't exactly buy d10 dice from Barnes & Noble, although some can still sell WoD books.

I am curious how you got your hands on 2d10 but don't have access to another 10 or so. :smallconfused: They're something like 40¢ locally. And if we're talking about an online dice roller/randomizer program, I cannot think that locating one with a multi-d10 would be that difficult.

I can't really either, but I checked out www.dicegamers.com before I posted. 0.45/apiece, roughly 10 bucks after shipping (flat rates, so it'd be cheaper to get a bulk load).

LemuneSD
2012-01-13, 04:48 PM
While I understand your interest in creating a custom system and using mathematical probabilities to calculate the outcome of a simulated dice pool, you should consider that this greatly increases the time taken to total each roll and thereby dragging out the length of any contest, especially if there are more than 2 players and 1 GM involved. (long sentence!)

You might also consider virtual dice. I prefer the feel of rolling the dice (I'm a kinetic personality), but my friend uses his phone with a dice app. He can either press the button to roll, or he can even shake his phone with the motion capabilities to simulate tossing the dice. xD They are of course easily available for any laptop, PC, Psp, Nintendo DS, etc etc.

These apps are free and widely varied for personal preference, too. I won't link any since I don't use em, but just google it and you'll find em easily enough.

And I saw one player who was into wood working actually carve his own out. While they were pretty awesome to look at, they were not accepted as they can easily be fixed.

Fouredged Sword
2012-01-13, 05:24 PM
I am thinking mostly using this system as a cheat for quickly handling large die pools of NPC's like some of the more powerful spirits in werewolf. Some of them have consistent die pools of 10-20 or more per roll. A nice cheat so I don't have to have 20 die behind the DM screen would be nice. The charts (one for normal, 9 again, and 8 again) would be easy enough to keep behind the screen.

Also the chart shows a nice reference for the capabilities of characters. You can accurately predict the number of successes for a task based on the die totals.

I am sure that one could just buy and roll more die, but really I just wanted to share my thoughts more than anything else.

Andreaz
2012-01-14, 06:11 AM
If you have access to a browser while you play, I have sketched a dice roller for Exalted, all javascript. Here's the source.

<html>
<style type="text/css">
table{
margin: 2px;
}
td{
padding: 5px;
border: 1px solid;
}

table td {
}
</style>
<body>
<table>
<tbody>
<tr>
<td>d10: </td>
<td><input type="text" value="" id="dados" size="4"/></td>
</tr>
<tr>
<td>Difficulty:</td>
<td><input type="text" value="1" id="dificuldade" size="4"/></td>
</tr>
<tr>
<td>Target Number:</td>
<td><input type="text" value="7" id="limiar" size="4"/></td>
</tr>
<tr>
<td>External Penalties:</td>
<td><input type="text" value="0" id="exPenalidades" size="4"/></td>
</tr>
<tr>
<td>Internal Penalties:</td>
<td><input type="text" value="0" id="inPenalidades" size="4"/></td>
</tr>
</tbody>
</table>
<br/>
<table>
<tbody>
<tr>
<td colspan="2" align="center">Rolling 10s</td>
</tr>
<tr>
<td><label for="reroll">Roll Again</label></td>
<td><input type="radio" name="nat0" id="reroll" value="reroll"/></td>
</tr>
<tr>
<td><label for="double">2 successes</label></td>
<td><input type="radio" name="nat0" id="double" value="double" checked="checked"/></td>
</tr>
<tr>
<td><label for="nothing">No change</label></td>
<td><input type="radio" name="nat0" id="nothing" value="nothing"/></td>
</tr>
</tbody>
</table>
<br/>
<table>
<tbody>
<tr>
<td colspan="2" align="center">Rolling 1s</td>
</tr>
<tr>
<td><label for="lose">-1 success</label></td>
<td><input type="radio" name="nat1" id="lose" value="lose"/></td>
</tr>
<tr>
<td><label for="none">No change</label></td>
<td><input type="radio" name="nat1" id="none" value="nothing" checked="checked"/></td>
</tr>
</tbody>
</table>

<br/>
<input type="button" value="Roll" onclick="rolar()"/>
<br/>
<span id="avisos"></span>


</body>
</html>
<script type="text/javascript">
function rolar() {
var dados = parseInt(document.getElementById('dados').value),
dificuldade = parseInt(document.getElementById('dificuldade').va lue),
limiar = parseInt(document.getElementById('limiar').value),
exPenalidades = parseInt(document.getElementById('exPenalidades'). value),
inPenalidades = parseInt(document.getElementById('inPenalidades'). value),
avisos = document.getElementById('avisos'),
txt = '',
sucessos = nDez = nUm = 0,
rollList = new Array();
;


//REVISE THE INTEGRITY CHECKS!!!!!!
//Thresholds go from 2 to 10

if (isNaN(limiar) || (limiar < 1 || limiar > 10)) {
avisos.innerHTML = 'Invalid target number';
return false;
//Difficulty must be above 0
} else if (isNaN(dificuldade) || (dificuldade < 1)) {
avisos.innerHTML = 'Invalid difficulty number';
return false;
} else {
avisos.innerHTML = '';
}

//Guarantees penalties are a positive number
if (isNaN(inPenalidades) || isNaN(exPenalidades)) {
avisos.innerHTML = 'Invalid penalty number';
return false;
} else {
if (inPenalidades < 0) {
inPenalidades = -inPenalidades;
}
if (exPenalidades < 0) {
exPenalidades = -exPenalidades;
}
}

//Internal penalties apply here
if (Boolean(inPenalidades)) {
dados -= inPenalidades
}

//Roll all dice. 10s are always successes at least once. 1s are always fails.
for (var i = 0; i < dados; i++) {
var resultado = randomFromTo(1,10);
rollList.push(resultado);
if (resultado == 10) {
nDez++;
sucessos++;
} else if (resultado == 1) {
nUm++;
} else if (resultado >= limiar) {
sucessos++;
}
}
//console.log(sucessos, nDez, nUm, rollList, rollList.length);
//If 10s are rerolled or doubled successes, they are tested here.
if (Boolean(nDez) && !document.getElementById('nothing').checked) {
if (document.getElementById('reroll').checked) {
for (var i = 0; i <= nDez; i++) {
if (randomFromTo(1,10) >= limiar) {
sucessos++;
}
}
} else if (document.getElementById('double').checked) {
sucessos += nDez;
}
}

conclusao = sucessos;
//Penalty-1s apply here.
if (Boolean(nUm) && document.getElementById('lose').checked) {
sucessos -= nUm
}

//External penalties apply here
if (Boolean(exPenalidades)) {
sucessos -= exPenalidades
}

if (sucessos >= dificuldade) {
txt += ' Beat by <font color="red">' + (sucessos - dificuldade) + "</font> with " +sucessos+ " successes.<br/>Success!";
} else{
txt += ' <br/>Failure.';
if (sucessos < 1 && Boolean(nUm)) {
txt += '<br/>Botch with ' + nUm + ' 1s';
}
}

rollList.sort(sortFunction); //Guarantees numbers are sorted properly in decrescent order.
txt += '<br/><a href="#" onClick="showRolls()">Rolls</a>';
txt += '<br/><span id="rollSpan" style="display:none;">' + rollList.join() + '</span>';
avisos.innerHTML = txt;
}


function sortFunction(a,b)
{
return b - a;
}


function randomFromTo(from, to) {
return Math.floor(Math.random() * (to - from + 1) + from);
}

function showRolls() {
document.getElementById("rollSpan").style.display = ""
}
</script>

Jay R
2012-01-14, 12:02 PM
People are confusing two different concepts. 0.3333... is not the probability of a single hit; it's the Expected Value of the number of hits. In fact, with a single die, you have a 0.7 chance of no hits, a 0.27 chance of exactly one hit, a 0.027 chance of exactly 2 hits, etc.

If you were only calculating the expected value of total hits on a large number of dice, this would make no difference. But for calculating the probability of getting a specific value, it can.

It appears that you are trying to model a trinomial distribution as a binomial one. Now, I didn't see your formulas, so you may have corrected for this. There's an easy way to check. Use your charts to calculate the probability of getting 2 hits on a single die. We already know that the answer is 0.027. If you get that answer, your table is probably OK.

But if, as I suspect, you really modeled it as a binomial distribution with p = 0.33333 (originally 0.31666), then it will give you a probability of 0, since you can't roll two successes on one die.

By the way, the way to generate the k-th number on the n-th row of Pascal's triangle in Excel is =COMBIN(n,k). But you can even skip that. The way to generate the probability of k successes in n tries with a probability of p is = BINOMDIST(k,n,p,false).

But you need a recursive trinomial function, because each die can have a value of 1-7, 8-9, or 0, and the zero can produce different numbers of successes.

The best way I've found to model what you want is to set up a single large recursive table, for number of total successes by the number of original dice. Call the variables s and d. Then P(0,d) is always 0.7^d, since each initial die roll has to be a 1-7.
P(1,1) is (0.2+0.1*0.7) [Roll an 8 or 9, or roll a 0 followed by a 1-7.]
From then on, P(s,1) = 0.1*P(s-1,1) [To get s successes on a single die, the first roll has to be a 0, then you need to get exactly s-1 successes on a single die.]
The entire rest of the table is filled out by looking at the possible values for the first die, and for each value, considering what it reduced the problem to.

If you fail on the first roll, you must get s successes on the remaining d-1 dice. If you roll an 8 or 9, that's a success, but that die is used up, so you need s-1 successes on the remaining d-1 dice. If you roll a 0 on the first die, you have a success and that die is still available, so you need s-1 successes on d dice. The formula becomes:
P(s,d) = 0.7*P(s,d-1) + .2*P(s-1,d-1) + .1*P(s-1,d)


Here's the start of my table
Number of dice
Succ. 1 2 3 4 5
0 0.7 0.49 0.343 0.240 0.168
1 0.27 0.378 0.397 0.370 0.324
2 0.027 0.111 0.193 0.251 0.282
3 0.003 0.018 0.054 0.102 0.150
4 0.000 0.003 0.011 0.029 0.055
5 0.000 0.000 0.002 0.006 0.016
6 0.000 0.000 0.000 0.001 0.004

I will also point out one flaw in the rounding process. It eliminates any chance of getting high levels of re-rolls. Note that my table, to three places, shows zero chance of five (or more) successes with 2 dice. In fact, the probability is 0.000329, and the probability of 5 or more is 0.00375. Your players won't be happy missing their chance to roll several tens in a row. (If you round to only two places, you're eliminating the probability of rolling a ten three times in a row.)

Fouredged Sword
2012-01-14, 12:41 PM
The converting of a three outcome set to a two outcome set does create a error in the calculation, but that error becomes vanishingly small very quickly, as the odds of rolling successes the same as your die total Starts as three in a thousand and gets worse the more die you roll. Rolling two die can only have a resolution of 1%, so anything smaller than 1% of a chance can be discounted.

Also, I would not have players use this rolling method, just NPC's with large die pools.

Thank you for the information on excel formulas. I will now try to adapt the math for a 3 outcome distribution. This will allow for greater accuracy at low die pools and slightly more accurate results for high die pools.

It will take deviating from pascals triangle. Oh well, math is fun!:smalltongue:

Jay R
2012-01-14, 02:08 PM
The converting of a three outcome set to a two outcome set does create a error in the calculation, but that error becomes vanishingly small very quickly, ...

That depends on your definition of "vanishly small" and "quickly". The difference in calculating the probability of getting ten successes with 30 dice is wrong by 2%.
Binomial method (incorrect): 15.3015%
Trinomial method: 13.2957%


Rolling two die can only have a resolution of 1%, so anything smaller than 1% of a chance can be discounted.

Almost anything less than 0.5% can be discounted

Comparing rounded numbers,
Up to 7 dice you can have differences of 4%.
Up to 22 dice, you can have errors up to 3%.
Up to 97 dice, you will have errors up to 2%

Note that for 200 dice, the maximum difference is only 0.008, but still that makes a difference in your rounding.
P(67 successes out of 200) Binomial: 0.059605743, rounds to 6%
P(67 successes out of 200)Trinomial: 0.051605702, rounds to 5%

There's still a difference, after your rounding, for 300 dice.


Thank you for the information on excel formulas. I will now try to adapt the math for a 3 outcome distribution. This will allow for greater accuracy at low die pools and slightly more accurate results for high die pools.

It will take deviating from pascals triangle. Oh well, math is fun!:smalltongue:

Yes, it is. Have fun with it.

Tokuhara
2012-01-14, 02:18 PM
My tip: If you have access to a Smartphone, get a dice roller app. You can literally have near-infinite d10's

Analytica
2012-01-18, 05:09 PM
This reminds me when I played a game (this was actually in engineering school, too...) where we used OWoD rules with ten-again, one subtracts and variable success thresholds. I ended up writing a short recursive function in Matlab to just simulate dice rolls as roll (pool, difficulty). :smallredface:

Blackfang108
2012-01-19, 03:42 PM
A lot of places don't have a local game store, or at least not a well-known one. You can't exactly buy d10 dice from Barnes & Noble, although some can still sell WoD books.

I am curious how you got your hands on 2d10 but don't have access to another 10 or so. :smallconfused: They're something like 40¢ locally. And if we're talking about an online dice roller/randomizer program, I cannot think that locating one with a multi-d10 would be that difficult.

I use http://sheetgen.dalines.net/wiki/WikiDiceRoller. niftily enough, they default to nWoD rules.

There we go, fixed the link.

Nerd-o-rama
2012-01-19, 07:17 PM
Honestly, here's the way I would do it, because I learned to program in C++ and later in things related to it.

Make a function that takes the dice pool and the X-again on the roll (8, 9, or 10) as arguments. Have it generate <dice pool> random integers from 1 to 10 (the crappy default randomizers in most programming languages are generally at least as fair as a plastic die, and other better ones are available) and count up the number of successes (8+) and the number of exploding dice. Have the function recursively call itself with the latter value, add the return value of that to the total number of successes, and return that. 100% accurate, easily doable in C, C++, Java, Python, Matlab, a graphing calculator, hell I could do it in Scheme if I could remember how to do recursion in it. Even Excel if you're that hard up for a compiler.

But that's still actual programming and randomness rather than relying on math twinks.

erikun
2012-01-19, 08:02 PM
I use www.dailenes.com. niftily enough, they default to nWoD rules.
Funny, I get nothing with that link. :smallconfused:

spaceLem
2012-01-20, 05:50 AM
Ignoring exploding dice, you have a 0.3 chance of success on any die. Therefore, the number of successes, X, that you're likely with n dice is binomially distributed, i.e. X~bin(n,0.3). With this in mind, it is easy to create a table of values, with which you can roll a d% to obtain the correct number of successes.

Now, since you have exploding d10s, this 3/10 chance becomes 3/9, giving you an expected value of 0.333 successes per die. Again, this is something you can use to make a d% table with.

My own preference for replacing a dice pool with 2 dice would be to emulate Unisystem's success table, translating n dice into 2d10+n. Note that the expected number of successes increases by 1 for every 3 dice, so the table is going to follow a pattern of triplets, i.e. {...1 1 1 2 2 2 3 3 3 4 4 4 ...} The problem is therefore knowing where to assign those numbers.

If 3 dice have an expected value of 1 success, then you want 2d10+3 to also have an expected value of 1 success. The expected result for 2d10+3 is 14, so assign the middle 1 to 14 (and therefore the other two to 13 and 15. Similarly, you'd expect 2 successes with 6 dice, and 2d10+6 is on average 17, so 16-18 should be 2 successes.

We've started a table that looks like
<13: 0 successes
13-15: 1 successes
16-18: 2 successes
19-21: 3 successes
etc.

This method doesn't exactly emulate a dice pool, since the variance is constant (in a dice pool it increases with the number of dice), but it still gives you a rough bell curve, and it's probably good enough (the game isn't going to break just because the variance stays fixed).

Now, I could adjust the table further by having possible negative successes (e.g. 4-6=-2, 7-9=-1, 10-12=0 etc.), but it's not the end of the world if you leave that out (it would slightly increases the expected outcome for low dice pools, which isn't a terrible thing). You've not got a quicker system that relies on fewer dice, and is a little more predictable with large dice pools.

If you think the variance is too high, then perhaps switch to 3d6 (which has a better bell curve than 2d10), or maybe even replace 2d10 with 2d6, and shift the table down by 4.

Blackfang108
2012-01-20, 11:08 AM
Funny, I get nothing with that link. :smallconfused:
I'm at work right now. I'll double-check the link when I get home tonight.

That took longer than it should have...