Feature Specification: Rewards System

Scripted ALFA systems & related tech discussions (ACR)

Moderators: ALFA Administrators, Staff - Technical

User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Feature Specification: Rewards System

Post by ç i p h é r »

Rewards System
The rewards system will cover all scripted experience and treasure rewards built around diminishing returns.

For a short explanation of the feature specification format, visit:
http://www.alandfaraway.org/phpbbforum/ ... hp?t=27229

Functional Requirements
PCs will receive less and less experience every time they kill the creatures spawned from a specific spawn point. Eventually, no experience will be received from that spawn for that PC. The diminishing return algorithm defines a maximum XP reward of 25% of standard values per spawn point and scales downward as follows:

Visits/Week........XP rate
1.......................25% of standard XP awarded (no penalty)
2-3....................15%
4-6......................7%
7-10....................3%
11+.....................0%

Where week is determined in game terms.

If the attacking PC is in a party, the party member with the highest number of visits will serve as the basis for the computation and all PCs in the party will suffer the same penalty. The highest level PC in the party in the area will also serve as the basis for the XP lookup for each kill. XP distribution among party members will be based on the percentage of total levels they represent within the party that defeated the creature:

(base XP)/(total character levels) * (character level) = XP earned per character

Random rewards earned will be commensurate with the experience earned.

NWN Object Dependencies
All Creature Blueprints, Spawn Waypoint (NESS)

Local Variables and External Configs
sTribe

Logging and Debugging (global LOG & DEBUG (on/off) constants)
Logged XP and GP rewards (with time stamps & creature name, tag, CR, spawn ID)

Persistence Requirements
Number of Visits, Spawn Waypoint ID (NESS)

Event Dependencies
OnDeath
Last edited by ç i p h é r on Sun Feb 17, 2008 9:21 pm, edited 13 times in total.
User avatar
Fionn
Ancient Red Dragon
Posts: 2942
Joined: Sun Jan 04, 2004 7:07 am
Location: Seattle, WA

Post by Fionn »

Two questions here.

1. Before we port/write this, does ALFA want spawn specific, or XP rate dim ret (or both).

2. How does this tie in with wealth standards? If you patrol a road every day and get 0 XP and 100 GP, sooner or later you get rich beyond your levels.
PC: Bot (WD)

Code: Select all

     -----          -----          -----          -----
    /     \        /     \        /     \        /     \
   /  RIP  \      /  RIP  \      /  RIP  \      /  RIP  \      /
   |       |      |       |      |       |      |       |      |
  *| *  *  |*    *| *  *  |*    *| *  *  |*    *| *  *  |*    *|
_)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_(
User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Post by ç i p h é r »

Fionn wrote:1. Before we port/write this, does ALFA want spawn specific, or XP rate dim ret (or both).
I think we want them to be spawn specific, but what's vague to me is the rate of diminishing returns. That's an important detail that isn't explained.
Fionn wrote:2. How does this tie in with wealth standards? If you patrol a road every day and get 0 XP and 100 GP, sooner or later you get rich beyond your levels.
I believe the loot drops should be based on the earned XP (or the effective CR which is perhaps what drives all this). That's why I added the last line in the requirements above. If you're earning 0XP for that encounter, you should get 0GP as well (for random treasure). I view it as Dim Ret for XP AND GP, else it only addresses half the farming problem. This should tie into and be handled by our custom loot table/scripts so there's no possibility of circumventing the limits.
User avatar
hypervx
Shambling Zombie
Posts: 94
Joined: Wed Apr 21, 2004 12:56 pm
Location: Roma, Italy
Contact:

Post by hypervx »

More than spawn specific, I would like to see it as creature (faction) specific.
That could include variation on tribes/groups (Red Tribe Goblins could use different tactics from the Blue Tribe Goblin), and should not drop down to 0, but to 1 (you can always learn a bit).
PC: Nylen (TSM)

Alterius non sit qui suus esse potest.
User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Post by ç i p h é r »

How would you define creature, hypervx, for the purposes of scripting? The unique blueprint? The general racial type? A combination of attributes? A creature variable we include on all blueprints? Other?

Having played around a bit with this, it's not as straightforward as one would hope it would be so it's important to define it here.
User avatar
hypervx
Shambling Zombie
Posts: 94
Joined: Wed Apr 21, 2004 12:56 pm
Location: Roma, Italy
Contact:

Post by hypervx »

ç i p h é r wrote:How would you define creature, hypervx, for the purposes of scripting? The unique blueprint? The general racial type? A combination of attributes? A creature variable we include on all blueprints? Other?
A creature variable seems the best way. Give us more freedom and is lesser coupled with the blueprints, Races are too wide to be useful, even if.... I'm tempted. :wink:
PC: Nylen (TSM)

Alterius non sit qui suus esse potest.
User avatar
AlmightyTDawg
Githyanki
Posts: 1349
Joined: Sun Sep 26, 2004 12:56 am

Post by AlmightyTDawg »

ç i p h é r wrote:
Fionn wrote:2. How does this tie in with wealth standards? If you patrol a road every day and get 0 XP and 100 GP, sooner or later you get rich beyond your levels.
I believe the loot drops should be based on the earned XP (or the effective CR which is perhaps what drives all this). That's why I added the last line in the requirements above. If you're earning 0XP for that encounter, you should get 0GP as well (for random treasure). I view it as Dim Ret for XP AND GP, else it only addresses half the farming problem. This should tie into and be handled by our custom loot table/scripts so there's no possibility of circumventing the limits.
This could easily become too difficult on the technical end - I can see the combinatorics of creature type, plus loot merchant or variance in loot drops causing some real headaches.

A decent go-between kind of solution is that substantive monetary gains of 0 - 1 XP kills, in large enough measure at the PA's discretion, is a clear example of farming/powergaming. Basically if you're getting no XP from it, try not to loot, except maybe recouping costs like potion expenditures or healing yourself (if they drop herbs/CLWs) or the like.
Turquoise bicycle shoe fins actualize radishes greenly!
Save the Charisma - Alter your reactions, even just a little, to at least one CHA-based check a day!

Quasi-retired due to law school
Past PC: Myrilis Te'fer
User avatar
Fionn
Ancient Red Dragon
Posts: 2942
Joined: Sun Jan 04, 2004 7:07 am
Location: Seattle, WA

Post by Fionn »

Put a tribe variable on each creature. This can be set via onSpawn or NESS, but the blueprint will have the race, tag, name and this variable. Between the 4, we can certainly tie the Death, XP and Loot scripts to do what we want.

Yes, it is meta that the Red Claw Orcs only drop loot for Bob, never Jon because Jon has taken everything they have to give. It is also meta that the Red Claw Orcs are still there after Jon has killed 500 of them.

We may wish to have a 'default' loot table that gives d3-1 GP worth of loot to go along with that 1 XP minimum. This presumes the PC is close enough to the CR that it is a challenge - anything beyond 4-6 CR lower than highest level should probably not drop GP nor XP. We may need to tweak the exact number, but at some point in any Adventurer's career, Goblin Shoes just aren't worth selling.
PC: Bot (WD)

Code: Select all

     -----          -----          -----          -----
    /     \        /     \        /     \        /     \
   /  RIP  \      /  RIP  \      /  RIP  \      /  RIP  \      /
   |       |      |       |      |       |      |       |      |
  *| *  *  |*    *| *  *  |*    *| *  *  |*    *| *  *  |*    *|
_)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_(
User avatar
indio
Ancient Red Dragon
Posts: 2810
Joined: Sat Jan 03, 2004 10:40 am

Post by indio »

Wouldn't it be far simpler to apply a global/universal kill variable that is tracked based on how much you kill, then reducing XP and GP drops (equipment should always fall) when you have crossed the "All you seem to do is kill stuff" threashold?

Applying tribal variables seems like over-compicating it.
Image
User avatar
Fionn
Ancient Red Dragon
Posts: 2942
Joined: Sun Jan 04, 2004 7:07 am
Location: Seattle, WA

Post by Fionn »

I personally think we should have both. A Warrior should be expected to kill a lot of crap, but after 500 Red Claw Orc, he needs to find another mob. At the same time, killing 10 different tribes in a single day should trigger some sort of anti-farming system.

One think I'd *really* like to see is encounter based CR that disables mob based CR. 3 CR1 backed by a CR3 caster pops up the risk to ~ CR5. Our current system rewards 3X1 + 1X3, which is far below what it aught.
PC: Bot (WD)

Code: Select all

     -----          -----          -----          -----
    /     \        /     \        /     \        /     \
   /  RIP  \      /  RIP  \      /  RIP  \      /  RIP  \      /
   |       |      |       |      |       |      |       |      |
  *| *  *  |*    *| *  *  |*    *| *  *  |*    *| *  *  |*    *|
_)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_(
User avatar
ç i p h é r
Retired
Posts: 2904
Joined: Fri Oct 21, 2005 4:12 pm
Location: US Central (GMT - 6)

Post by ç i p h é r »

Fionn wrote:I personally think we should have both. A Warrior should be expected to kill a lot of crap, but after 500 Red Claw Orc, he needs to find another mob. At the same time, killing 10 different tribes in a single day should trigger some sort of anti-farming system.
Ahem.

http://www.alandfaraway.org/phpbbforum/ ... 176#318176

Mad props to Boom for a very cool idea. 8)
Thangorn
Haste Bear
Posts: 2081
Joined: Fri Oct 01, 2004 1:00 pm
Location: Queenstown, New Zealand

Post by Thangorn »

Another idea, that is aligned with that idea.. (although this probably shouldnt be in the dimrets thread, but it relates as much as making creatures flee)

Once a spawn camp (for arguments sake, the red claws) is gone, its leader destroyed, its gone, period.. what could happen once a monster camp gets pwned, A persistent variable gets stored and a new site is chosen for new monster camp, new tribe, different area even.. I can conceptualise that in a scripting concept with NESS in NWN1, I'd need to test it though.
Later down the track once a few more humanoids have shamelessly had genocide committed upon them, the red claws might come back.

alternatively or in addition.. once a spawn camp is done over, a message gets sent to any DMs on the server and the message gets stored and the next DM that logs in, gets a message that such and such spawn camp has been worked over by x PC or y Party..

This would have rp benefits.. in that if someone took out an orcish scouting parties camp.. the DM may make a ruling on it that they have prevented an orc raiding force from attacking a village or, they could bring that attack on sooner by their actions.

I think everyone needs to know that if you wipe out a monster camp, there is likely to be repercussions. Perhaps the orcs were zhent sponsored, perhaps they are servants of a dragon.. it would add to the richness if there wasnt orcs camps you could go and hit every week or two, not to mention bad rp. Occasionally it would be kind of funky if the orcs had a beholder controller lurking at the camp, then people might think twice about wiping out orc camps.

There is a way that you could have say a dungeon, that is populated by duergar, but when the leader is killed, there is no longer duergar there. In fact the place could be empty for a week or two and then a script could roll a new persistent group to populate the dungeon. PC Dwarf: "we cleaned this cave out of duergar two tendays ago, I say we start mining down here.. what's that!!" *gets head torn off by an owlbear"

That is really doesnt seem that hard conceptually for me to put together, with a few tweaks to Sareena's mob scripts in spawn_cfg_group in NWN1, therefore, there is surely a way to do it in NWN2, especially if they improve persistency and database support.

In short, if a camp gets raided, and the leader killed, they just shouldnt be there anymore its just not IC or good rp BY US BUILDERS..
strikes me as a lot more fun than just supporting the hitting of spawn points, however infrequent, I'd like to see more innovative ways implemented to remove that practice.

PS. I am cross-posting this to the encounter thread.. feel free to axe it mods, I just wanted it added to the thread of discussion here.
On indefinite real life hiatus

[22:52] <Veilan> obviously something sinister must be afoot if a DM does not have his social security number in his avatar name!
User avatar
Joos
Frost Giant
Posts: 769
Joined: Wed Jan 14, 2004 8:05 am
Location: Melbourne, Oz

Post by Joos »

ç i p h é r wrote:How would you define creature, hypervx, for the purposes of scripting? The unique blueprint? The general racial type? A combination of attributes? A creature variable we include on all blueprints? Other?

Having played around a bit with this, it's not as straightforward as one would hope it would be so it's important to define it here.
Dim ret can be set to a specific identity of creatures. You do it in the ness spawn string, where you give the spawn a 3 digit identity. For example, red goblins would be 100, blue goblins would be 110 etc. That of course means that we have to control what spawns and factions are which when it comes to identity control of dim ret. This is something a few builders in alfa has been so-so with. For example, if you dont give a spawn an identity and dim ret is set to default, that means that killing that particular spawn will affect every other spawn that hasnt got an identity as well. So I say thats one of the most important things you have to fix for NWN2.
Khazar Stoneblood
Dire Badger
Posts: 191
Joined: Fri May 14, 2004 10:21 pm

Post by Khazar Stoneblood »

I've always assumed that the purpose of dimret is to prevent farming. I see a lot of posts in this thread that seem to be using it from a "common sense" type angle... that is, it just makes sense that you get less from killing your 30th goblin than the first.


While that's okay, I'm not sure there's much of a benefit for doing it. If it's easy to do it by spawn point, that would solve the farming issue... who cares that the person wipes out another spawn of similar creatures? Who cares if a farmer is hitting 5-6 goblin spawn points, as opposed to 5-6 spawn points of different creatures? The point is to prevent farming, so I'd think FAST decreases in XP based solely on spawn point.

For example... you hit spawn point A the first time, full XP, 2nd time... half xp... third time quarter XP... etc. Maybe reset the counter every few RL months.

If the point is to prevent people from hitting the same spawns over and over, why complicate it with races or tribes?
Current PC: I'm not tellin'. They die when I put their names here.
User avatar
Fionn
Ancient Red Dragon
Posts: 2942
Joined: Sun Jan 04, 2004 7:07 am
Location: Seattle, WA

Post by Fionn »

I still vote we set a global dim ret script that tracks XP / hr or XP / wk and gradually lowers all awards as you ramp up.

As it stands, we've got peeps hitting ECL8 in under 2 months and this is *with* DimRet on spawn points. We have a LOT of spawn points in ALFA, and some don't make sense to set DimRet on. We also have a lot of DMs that award capricious XP rates. No system that addresses things at an atomic level will get us fairness or balance.
PC: Bot (WD)

Code: Select all

     -----          -----          -----          -----
    /     \        /     \        /     \        /     \
   /  RIP  \      /  RIP  \      /  RIP  \      /  RIP  \      /
   |       |      |       |      |       |      |       |      |
  *| *  *  |*    *| *  *  |*    *| *  *  |*    *| *  *  |*    *|
_)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_//(/|_)(__)/\\_(
Locked