CTF Dynamic Scoring not working

Is Dynamic scoring functional? I set it to be 110pts initially, 100pts minimum, and decay limit of 1. There has been 1 solve for this question, but the value is still at 110. I’ve tried playing around with other values too but dyanmic scoring doesn’t seem to be working for me. Any ideas?

Copied from the DynamicValue plugin page.

The current implementation requires the challenge to keep track of three values:

  • Initial - The original point valuation
  • Decay - The amount of solves before the challenge will be at the minimum
  • Minimum - The lowest possible point valuation

The value decay logic is implemented with the following math:

or in pseudo code:

value = (((minimum - initial)/(decay**2)) * (solve_count**2)) + initial
value = math.ceil(value)

If the number generated is lower than the minimum, the minimum is chosen instead.

A parabolic function is chosen instead of an exponential or logarithmic decay function so that higher valued challenges have a slower drop from their initial value.

It could just be that you need more solves on the problem.

Right, I saw that from the documentation. My values are:

a = 110
b = 100
s = 1

So effectively it should be score = initial -10 * solve_count**2

If solve_count = 1, shouldn’t the score be 100 after 1 solve? It still displays as 110 even after 1 solve.

Ok. So I played around with this and figured out that what I thought that this type of flag did vs what it actually does. I thought that it was a plugin where the people who solved it first gets more points. Instead, everyone who solves it gets points, but those points are reduced every-time someone solves it.

For your issue, the value may still be at 110, but as more people solve the problem, the problems value will go down. The value shown on the challenge is how much the challenge is currently worth, not how much you will get after solving it. So as soon as two people solve the problem, the value should be 100.

I hope that makes some sense to you.

1 Like

I’m not sure exactly how the math works out but I believe you need to get to solve_count + 1 to hit the minimum so that the person who solved first gets full point valuation. I could be wrong and I do know this is an area of confusion but I’ll gladly accept documentation changes for this.

@ColdHeat I know that part of my confusion initially was that on the challenges page, it is showing how much the problem is currently worth and not how much it would be if the problem is solved.

I dont know the easiest way to make this less confusing right now but I can try to mull it over. I think that updating documentation would be the easiest fix for now. I will come up with some documentation changes soon for this.