Jump to content

A Tiny Defeat


Lupine00

6,558 views

As a follow-up to the Lupine Manifesto post, I thought I'd repost a slightly edited version of a message I wrote talking about a design for a Defeat-style mod.

 

The idea is to create a very small, extremely minimal defeat handler, with outcomes as plugins that can be added by other mods.

 

 

Basically, to take ALL the consequence handling out of the core defeat mod and provide a way to register arbitrary defeat handlers.

 

The most basic defeat handler is thus, nothing. You die.

That's the final fallback outcome if all else fails.

 

 

The base mod would come with some simple handlers, and some library functionality to do common tasks.

Other mods can then register into it via an API.

 

When defeat occurs, the core mod detects it, and contrives for the handlers to deal with it.

 

Handlers are all given a chance to prioritize themselves, and then they are given a chance to handle - though not all handlers may get a chance to handle, all get a chance to establish their priority, situationally, based on the conditions of the defeat.

 

 

Each handler decides for itself if it will handle the situation.

The handle/don't-handle logic is not part of the defeat mod, it just tries them in priority order, and the priorities are also calculated.

 

If we imagine it at an abstract level...

 

We have a DefeatState, which is the known state of defeat, including all the actors in play, and what side we think they're on (ally, neutral, enemy).

 

We pass that DefeatState to all registered handlers in no particular order, and they return a priority - this is their "bid" to handle the defeat.

 

We then refresh the DefeatState and test each handler in priority order, and ask it if it will *actually* handle the defeat. 

The handlers check the DefeatState and make a final call on whether they will run.

If a handler runs, it can then terminate the defeat or let other handlers continue it, or it can re-open the bidding process and let handlers re-bid.

 

If the active handler allows continuation, lower bidding handlers may ALSO run, but they will not get a chance to do so until the current active handler is done.

Again, they will be handed a refreshed DefeatState at that point, and decide whether to skip, handle and terminate or handle and continue.

 

External mods can call a well defined API to register handlers, but the assumption is that you will quickly develop a reasonable set of handlers to do the basic stuff, like rapes, teleports, robberies etc.

 

For example, a handler might calm everything, giving you time to make a run for it. That handler would have a cooldown, so if you're defeated again, you fall back down the chain and get ... death.

 

And of course, there might be a rape handler, or several...

 

 

 

So, a given run might look something like this:

Spoiler

 

Defeat detected...

Enemies: draugr, draugr, draugr overlord, current healths 150, 250, 750 respectively.

Neutral: none

Allies: Lydia - current health 150

Cause: 0 player health

 

This then polls the handler list for priorities, passing in the defeat state...

 

The handler list, in this case is:

 

Death - PC is killed. Reload.

Bleedout - PC goes in bleedout. Enemies do not pacify if any combatants stand.

Robbery - PC's gear is taken.

PortToInn - PC is ported to a random nearby inn.

EnemyRape - PC is raped by enemies.

Imprisonment - PC is imprisoned at length and must escape or be released.

SecondWind - PC recovers full health and can restart the fight.

 

Given the conditions, each makes the following bids:

Death - always bids 0

Bleedout - bids 100

Robbery - bids 50

PortToInn - bids 40

EnemyRape - bids 90

Imprisonment - bids 50

SecondWind - bids 150

 

SecondWind wins and gets first chance to handle. It bid high because a follower was still standing.

Bleedout lost, though arguably it would be appropriate. Because the player explicitly enabled SecondWind, it does what it does.

 

SecondWind runs, restores the player health, and the event is over. Defeat is done...

 

 

Then 45 seconds later, defeat runs again, the player is down again, and this time so is Lydia.

 

Defeat detected...

Enemies: draugr, draugr, draugr overlord, current healths 150, 250, 750 respectively.

Neutral: none

Allies: Lydia - current health 0

Cause: 0 player health

 

Bids occur again:

 

Death - always bids 0

Bleedout - bids 100

Robbery - bids 50

PortToInn - bids 40

EnemyRape - bids 90

Imprisonment - bids 50

SecondWind - bids -1 (basically saying "will not handle")

 

Not only is SecondWind in cooldown, and cannot run, it sees Lydia is down. It returns -1 as its priority, it's not in the game, Death will always beat it.

 

Bleedout wins, and handles first.

 

When it's called again to see if it really will handle, it says yes.

Bleedout always bids high, and always says yes. Why? Because it is the initial pacify manager.

 

However, the core pacification functionality is in the defeat mod core. Any handler can (and should) use it.

 

 

Bleedout sees no active allies, it pacifies Lydia and the enemies and it spins.

If an enemy or ally wanders into range while it's spinning, it will pacify them.

After a few seconds delay, bleedout completes and CONTINUES. The next handler can run.

The next highest bid is EnemyRape.

 

EnemyRape checks to see if it can run, and it sees a bunch of pacified enemies with health, and a downed PC and follower.

It goes "great, set me up the rapes!"

It starts two sex scenes, one for the PC and one for Lydia.

 

While it's running, the PC's other follower wanders into range.

The main defeat handler catches this, and hands the event to the current active handler (EnemyRape).

 

EnemyRape has no enemies to rape the new follower, so it gives them a flee in panic package and forgets about them for now.

 

Once the rape is done, enemy rape terminates and continues.

 

Robbery and Imprisonment both bid 50 and are both candidates.

The defeat mod picks one at random to go first.

 

Robbery is picked. The player and follower's gear is taken.

Robbery CONTINUES almost instantly.

 

Imprisonment runs...

 

But let's imagine Imprisonment was picked first.

In this case, imprisonment may see the PC has not been robbed, and may start by calling Robbery itself, because it knows that handler is part of core and always exists.

It simply passes in the existing state and sees if robbery will run. It will, and so it can perform a robbery without having to duplicate any code.

Robbery - as we already know - finishes and continues almost immediately.

 

Imprisonment starts up the main imprisonment quest, nails dying Lydia to a cross near Valtheim Halls, and puts the PC in a cage.

Imprisonment terminates after starting up the quests and porting the player to their cell. 

 

 

At the Papyrus level, how do you register a handler? How are they called?

 

Handlers are quests that share a common extension script.

The specific handler overrides the methods in this script.

 

To register, you cast your quest to the common extension type, and hand your quest object to the defeat mod. It puts you in a list, and can call the defined methods on the quest any time. It can also check if your quest is running or not. If your quest isn't running, it's always skipped. This allows handlers to be enabled/disabled in their own MCMs easily.

 

 

How do you detect defeat? Isn't that a complex problem?


Yes. And defeat detection also needs to work with plugins to some extent.

 

There are two ways to go about this.

In one case, the detection is entirely in another mod, and it simply calls a mod event to inform the defeat mod of it.

The more interesting case is where the defeat mod collects information about the ongoing combat and passes it to the registered defeat handlers to see if they think a defeat is in progress.

This is nothing more than another Function defined on the base quest type, that returns one of a defined set of defeat types, the first of which is "no defeat in progress".

 

The data used to detect defeats looks uncannily like the data used to handle them. It's the exact same defeat state, but without a cause: we have actor lists organised by disposition, and a curious mod can traverse these lists and decide whether to trigger a defeat, or possibly modify the actors somehow.

 

A mod that doesn't care about detecting defeats can simply return, which of course is what the base class implementation does.

38 Comments


Recommended Comments



Won't pretend to understand all of the techie stuff here, but a couple of thoughts, if I may.

 

1 - Avoiding game disruption - PC

 

however you pass defeated characters to anything else, it really needs to have some option for the player to set a form of modifiable priority handling slider that in any post defeat event, the PC, at least, is able to continue from where they are geographically.  That's one of the things I really disliked about some of DCL's defeat outcomes, where you could be just about at the end of, say, Nchuand-Zel and then find yourself immediately being ported to the furthest corner of Skyrim, and then all over the map if your state was such that you lost the next two or three defeat events as well.  If you don't 'cheat'. ie use Fast Travel, that can be soul destroying if you then have to work your way all the way back, and the game quickly becomes no longer 'fun' to play

 

2 - Avoiding game disruption - Followers

 

- quite like the idea for some separate follower handling on transferring the PC to other mods.  At the moment you can get some real weirdness if followers, not actually handled by the accepting mod, appear alongside the PC in their next predicament.  As above, I'd like to see any defeat mod have a form of modifiable priority handling slide that in any post defeat event, followers can be left in situ with the PC , like Defeat does, with or without some added constraints,

 

3 - Adding game risk - Followers

 

- Defeat is fairly good with follower and NPC handling.  But there is no 'real' risk involved

 

I like the idea that there should be some risk (again, slider for player to set the risk they wish to play at) that any or all of the PC's followers should be sent off somewhere else, sold on etc.  (might involve a quick fade to black, to avoid their popping out of existence, but so what ...)  At the moment, although they can be constrained/restrained by the options in Goubo et al's Defeat, they can't be removed from the scene and if you play even reasonably clever, the associated risk can be brought right down.  

 

You suggested that, say, 'Imprisonment starts up the main imprisonment quest, nails dying Lydia to a cross near Valtheim Halls, and puts the PC in a cage.  Imprisonment terminates after starting up the quests and porting the player to their cell'   While probably not something you would want to build into your base mod, two or three minimalist 'Follower in jeopardy' mods to which defeated followers might be handed over to would be good.  egs

 

 -- Very simplistic prostitution.  Passed to a pimp in town or on the roads - well travelled places - selling them to passers by, until you can kill him or her.  And make the pimp's death a crime to be more than just 'hack and slash'

 -- placed in Pama's lethal furnitures, gallows, garotte, in random town locations, to which they could be sent, the device set with a very very timed slow death rate - one that would take a few in game days - so that the PC would need to rescue them before they expired.  Failure also loses everything that the follower had in inventory 

 -- Farmed off to a random selection from Inte's cages, where you'd have to kill the local bad guys to rescue them

 

EDIT if, after defeat, the PC is passed off to a mod that doesn't 'take' any or all followers, the same outcomes could be selected for the remainder of the current followers

 

Just some OTTOTH thoughts.  Hope they are of some interest

 

 

Link to comment
On 4/23/2020 at 9:27 PM, donkeywho said:

You suggested that, say, 'Imprisonment starts up the main imprisonment quest, nails dying Lydia to a cross near Valtheim Halls, and puts the PC in a cage. 

That was a joking reference to a post I made on follower handling elsewhere. Pama's Lethal Furnitures I suspect :) 

 

The take away here is that the Tiny Defeat mod doesn't need to have options for much in its MCM. It doesn't need them because the options go in the mod that adds the handlers.

 

Only for handlers built into the Tiny Defeat core, would have MCM options provided by the Tiny Defeat.

 

Options would naturally be organized per handler.

 

So for theft, there would be options for what and how much is taken - if anything.

And for rapes, something about whether it uses groups or singles, and how many scenes should play. Whether followers should get their own rape, or watch, or try and be grouped in with the PC, etc.

 

However, handlers from other mods would have their own config, but if there is a handler it should cope with followers.

 

I guess the point here is that when I get a chance, I will make the "empty" version of this mod, and it will be ... tiny.

Then, if time allows I can make some basic handlers.

Link to comment

Sounds promising as far as I can understand it. 

But in general I think the tiny core mod is (if anything) second priority. There are so many mods that handle this already, the issue we have is POST RAPE events. 
Daymol is a virus virtually ( I honestly dont know why ppl use it still) and defeat is also lacking. 
A tiny defeat core mod would be perfect only if it allows:

 

MCM options. If a mod is good is almost 50% how its MCM works and what it provides. 

A: Group Animations for both Humans and Creatures (and a configureable chance of Group to happen. some mods only use group when enough actors are there but that is garbage)

B: Allow Chain Rape (and configurable chance to happen) 
? Configureable MCM chances for which POST RAPE handler will be used 

 

If this is not happening, I think we dont need it, as hard as it sounds. I know there is special stuff like werewolves and creature on creature and necrophilia and all, but I dont think a defeat mod should pick up on that and its very specific. 

 

Also, there is a need for PRE-RAPE Mechanics. 

So in the ideal world we have:

 

IMPORTANT QUESTION:
where are the MCM options for the handlers?
If possibly the all should be in the same MCM structured as follows:

 

TINY DEFEAT

MCM General

MCM Pre Rape CORE

MCM Pre Rape Module 1

MCM Pre Rape Module 2

MCM Pre Rape Module X...

MCM Rape CORE

MCM Post Rape Module 1

MCM Post Rape Module 2

MCM PostRape Module X...

 

1. Pre Rape CORE

The Mod handles the actors, pacifies enemies, sets everything up for the defeat scenario.

It sets the player to essential. 

IMPORTANT: 
If the player is at 0 health it enters a bleedout idle. But the PC should still be able to move (allow the Player to go to a more suitable rape position).

MCM Option: bleedout duriation 0-X Seconds

MCM Option: set Pre Rape Moduls chances in %

 

1. Pre Rape Modules

Module Example 1 Furniture Rape:

- Set up in Sexlab compatible Furniture (X Cross, Pillory, everythiing that has sexlab anims). 

- PC enter furniture (disbale player controls)

-> send to Defeat CORE 

 

Module Example 2 Necromancy:

- Starts player execution/dismemberment scene

-> send to Defeat CORE

 

Module Example 3 Animal Play:

- spawns ZAZ cage and configureable animals inside. Player forced into doggy. Animals defined as rapists for Defeat Core

-> send to Defeat CORE

 

Module Example 4 Forces Stripping:

- PC is bound to a furniture/or forced into a defeat idle (pole for example, configureable in MCM or via ESP)

- NPC walk to the player and start stripping.

MCM has configureable chances for EVERY SLOT and if it is stripped or not

for example:

Body Slot: 100%

Feet Slot: 25%

Head Slot: 50%

Slot XX; 25%

Slot YY: 10% 

and so on.

 

The stripping continues. 

Optional: all items are stripped with only 1 scene playing.

 

For Creatures: Player has laying idle instead of furniture. Animals rip clothes away. 

 

Module Example 5 Creature Defeat:

- see Module 1 but with an Idle instead of Furniture (more immersive). 

 

Module Example 6 Talk my way out:

- Opens dialoge.

- Dialoge can:
-> Indimidate -> success be free, if not -> rape CORE
-> Haggle -> you can pay gold to be free -> not successful -> rape CORE
-> voluntary slavery -> you get to crawl -> Defeat CORE

This is interesting since it might provide tie ins for other mods (SD+, DiD or even DayMol) 
It could also Tie the Moduls POST rape together. See below. 

 

2. Defeat CORE 

This is simple.

The Defeat CORE is setting up the Rape, based on the situation provided from the Pre Rape. 

For example in the animal scenario the dogs in the cage are the rapers, not the actual defeatends :D

 

MCM Optiona A: Group Animations for both Humans and Creatures (and a configureable chance of Group to happen. some mods only use group when enough actors are there but that is garbage)

MCM Option B:  Allow Chain Rape (and configurable chance to happen) 


? Configureable MCM chances for which POST RAPE handler will be used 

 

3. Post Rape Moduls

As above.
including maybe my idea:

 

Spoiler

What bothers me is, that I dont even think it would be hard to make a perfect mod. Here is what it needs to do:

 

1. The mod would start after rape (Defeat mods might be required to be restricted to 1 scene only (possible with most of them) -> no chain rape
2. the mod would place a random, configureable ZAZ Furniture (ideally configureable via MCM, but ESP (like NDUN does it) is also ok since it can be changed via Tes5edit 

OR (if detected) use an already existing nearby ZAZ Furniture.
3. the mod would tie the PC into the furniture 
4. the mod would lock player controls (cant leave furniture)
5. define hotkey "struggle"
6. Struggle costs stamina and has a cooldown (reallife seconds, can be configured in MCM) and a success chance (can be configured in MCM 1%-100%) 

Press struggle to come free

 

Punishments: 
When Struggle fails two punishment methods can start
A. whipping: nearby NPC starts whipping the PC (hotkey not working in that period). Whipping time configureable in MCM
B. fucking: start rape scene -> afterwards put NPC in furniture (this would be a tie in for Osmels new furniture system, making it possible to place an a X Cross and then be raped in the X Cross -> god bless this awesomness!!!

My only contribution to this mod could be providing selections of furnitures in the ESP and upload different versions with different furniture sets and styles (only X Crosses, or a random seleciton of animated pose furnitures, or only X Cross/Pilllory for only fuckable stuff etc. etc.

CREATURE CONTENT
Sadly with creatures furnitures would not be immersive. 
So I still think the mod could work with creatures. 
They wont place a furniture but only start an idle (still lock player controls) 


- Standard Collar would have the escape mechanics of the mod above.

- Standard Collar as long as its worn immobilizes the player and forces an idle on him (laying on ground/weeping whatever -> configureable in ESP) 

- When escape failes: the creatures will attack the player or rape him. attacking will remove the collar -> start the circle again (rape, then reequip collar) 

 

In stead of the furniture, Creatures and Animals equip the Player with an animal curse collar. 
The collar can be replaced with DCL collars, with Beeing a Doggy Pendant or remain with the standard collar

- can optionally apply pheromones from SLP 

 

IMPORTANT:
After escaping the furniture/idle there should be a configureable time period (MCM) before the NPC get aggressive again. 


This would be a perfect ZAZ Mod and compliment the new furniture system of Sexlab and the upcoming ZAP 9 
It would work with Naked Dungeoons (just disable captivity there) and Defeat and also I think with other Defeat systems out there. 

It could also have mod event to be used from other mods (DiD, slavery mods) to easily restrain a player at "waypoint". 
 

 

suffice to say I would play 100 dollars and more to support such a project, that is how desperate I am :D


EDIT:

Local Slavery Module Idea.

 

This would require a pre-Rape Module (Agree to Slavery or be forced into slavery)
-> Initial Rape handled by RAPE Core
-> Post RAPE is important. 
The PC is free to move but only a certain area (very small) 
The PC is supplied with tasks on regular basis (configureable in MCM)
this could provide small games to play. Like spawning garbage piles like in DCL prison. 
giving blow jobs to nearby NPCs or prosituting urself for the main NPC
 

IMPORTANT Would be that there is a chance to get free or a "task value" that can be filled to be free.

For example Task 100 required to be free (configureable in MCM). 

Tidy up task: clean up 20 piles (each worth 5 Taskpoints) -> set free. 

Set free means, the NPC will not be agressive for 5 reallife minutes (configurable in MCM). 

 

Link to comment

ah, btw:
@coffeeink I remember ur simple defeat project, maybe you interested with this.

Would it no be possible to get a tiny team together to achieve this stuff? :D

Link to comment

Hello,

 

yes i have some Code flying around regarding this. I already know more about how the Engine behind works etc. i did i misstake back than not working with ghood coded Scenes and tried all to do in Papyrus. Resulted in a lot of problems.

 

In general detecting a defeat is very easy. The complex Part is to detect the cause of defeat. For example falling from a mountain should not trigger a defeat. A mudcrab has also no interest into owing a human. it's happy with laying around and stuff in the mud. But what a boput a trained dog from bandits. Draugrs etc. I had a solution for this.

 

Maybe a short introduction what my mod was to be planned:

 

Spoiler

 

Defeat Trigger -> If the Player dies certain Scenarios can happen

 

If the Palyer was defeated a normal Rape Scenario happened, Unequip everything steal the stuff and Rape

 

Bandits or other Humans:

 

Put the Player in Soft or Hard Bondage (just Bindings or ZAZ Device) and the Player has to struggle out of the Device. This could be done either with Pickpocket, Strength or Magick.

Every dewvice had HP and by stuggeling the Player did DMG to the Device. If the HP was <= 0 Device was broken and the player had a short periode of time to run away

Everytime the player struggled a nerby Bandit got the chance to register the Struggeling and if it was detected the Player got punished (at the state it was jsut Rape) and rebind everything. (HP back to Max)

 

For Entertainment after defined time we entered Playtime. And Bandits took the Player and did something with the Player (at the time just Rape) but it was planned to add here a Eventhook for any Slavetask you can think of. For example Cook for the Bandits, Cleaning the Cave,  Maybe some other PRivate Needs lor whoring out the Player.

 

After Playtime the Player was sent back to the Capture Time and we repeat the cycle (only a very low chance that athe fmg on the Device was noticed, if noticed back to 100)

 

After a certain ammount of Time X the Bandits releases the Player. Because they are bored of the Player (Eventtirgger, maybe handover to Simple Slavery etc.)

 

Creatures

 

Here i was differenting between Human creatures and normal Creatures. Wolfs etc. only Rape and let the Palyer run. How the hell would a wolf bind a Player.

Human Creatures like Falmer, Draugr Werewolfs are performing the Same Actions as above with different types of playtime.

 

 

 

I have no idea how you can collobarate together on mods. But if we get a small team with a certain set of Features i would be interested in supporting. But i would could on SSE and backport to LE. SSE looks more Stable from the Creation Kit Point of View. The LE CK at least for me is destroying oin a regular basis all References by a bad timed crash.

 

My Coding Guideline would be more like: Release small working Features with a a good Architecture which is more Bug free and stable as a mess and buggy full Feature Set mod with 1000 Features.

 

So For me if we create such kind of mod i would do the following RC Cycle:

 

RC1: Defeat Detection with Faction Detection (Banid, Human Creatures, Creature)

Rape and Release.

This with as less Script lag as possible. I'm sick of this bad Coded Papyrus Stuff which takes 10 seconds to Equip an Item.

 

In General i would use either the Story Manager or Events to trigger the Next State. With this we can easily hook up the Next Features. According to zaira the Story Manager is more Robust than SendModEvent

 

With This a Player can highly Activate and deactivate Moduls as they like

 

I would spent more time with Good Scenes, Some nice Texts with Voice (Like Maria has) maybe additional Sounds. This is way more intense and immersion.

 

So if we can allign on Features, Roadmap and how to work together i would support the Coding Activities here. I have anyway currently short term work So way to much time.

 

Link to comment
Quote

To register, you cast your quest to the common extension type, and hand your quest object to the defeat mod. It puts you in a list, and can call the defined methods on the quest any time. It can also check if your quest is running or not. If your quest isn't running, it's always skipped. This allows handlers to be enabled/disabled in their own MCMs easily.

One Remark for "other mods can hook in". This will most likly not happen. So many mod ideas are dead because ppl expected others to add content or even share settings. you will get one or 1 small things but nothing worth replacing an existing Toolchain if not not one of the rela major mods is taking it over.

 

the maion competitors for this Defeat is DCL and Defeat. Both mods are offing a wide Range of features the majority wants.

 

Regarding how to register. You can do it in certain ways, ether you make it fully flexible without anyone to need to adapt a lot of code but results into more "unstable" things or you make it more stable.

 

I would not pass it down to a QuestObject i would rather create an DefeatQuest Object and provide an itnerface which needs to be implemented. With this you can ask the Quest Certain Things like what are your precodnitions, post conditions etc.

 

For Example you have a Mod which only works if the Capture is a Guard but it was a Draugr. You can Ask the mod for the precodnitions, check them and if it fits call it or ignore it.

maybe the mod wants to call back to you. Maybe with a failed or passed result etc. This is all possible with a good interface.

As expected... i already have Code for this and tried it out :)

 

For probality and RNG i treid a lot of things but the most efficent thing i had is the following:

 

  • Quest registers and gives a probality Number from 1-X (100 doesn't mean 100% trigger )
  • Start with 1 and add the probality as MaxPointer
  • Save the MinValue for this mod
  • Make RNG(1, Maxpointer) as rng number
  • lookup in which range the number was landed

Example:

2 Mods register A with Value 50, and B with 65

Ranges are:

A(1-50)

B(50-115)

 

random=RNG(1,115+1) [return 75] // i think it never hits the highest number, i'm to lazy to check the documentation right now

Defeatquest = lookupQuest(random) [returns Quest B]

 

With this your Random Selection is very fast and it's way better than a lot of mods do (go over every RNG Value and check if you hit it or not)

 

 

Link to comment

Ok, you make your tech stuff, I only understand half of that, hehehe.

Just to add to one point: 

 

Quote

 

In general detecting a defeat is very easy. The complex Part is to detect the cause of defeat. For example falling from a mountain should not trigger a defeat. A mudcrab has also no interest into owing a human. it's happy with laying around and stuff in the mud. But what a boput a trained dog from bandits. Draugrs etc. I had a solution for this.


I think the only reliable way for this is letting the player make the decision. 
That is why I use SM Essential Player mod. It prevents Defeat/NDUN/DCL from triggering when I "die" (get in essential state). 

Then I can decide if I want to continue the fight (with a wound from SM Essential mod) or surrender via a Defeat Mod. 

This way I can control the environment perfectly and at least get to a place that is better for defeat (i.E. not on a cliff, in an active trap/fire etc.)

So when for example I fall down a cliff and there is no nearby enemy, I just continue the game after "Essential" wears of. 
If there are enemies nearby I usually surrender.

Yes, these are roleplay decisions and not alot of people like them. Hence my idea for "Pre Rape CORE" which would handle that kind of stuff before Defeat would even trigger. 
So this mod could have a function of detecting the cause of death (the major triggers for me I think: 

- Falling to death
- Drowning
- Dieing from Trap

- Beeing killed by enemy attack
- maybe need to add "execution" in the future because of awesome mods showing up. 

Problem is the oh so different playstyles everybody has. So I think a new Defeat should offer alot of functionality with good modular architecture. 
If not it will not be played.


Naked Dungeons offers a very smooth and reliable Defeat but is not widely used for some reason for example. 
 

Link to comment

No you can figure this out by Papyrus.

 

On the onHit Event you can see the Attacker. For example if the Attacker is "world" you died due Tra, Falling dmg, Drowning whatever, else you get the Reference from the object.

If it'S a Creature you can look up what kind of creature and if it's a human you can check the Faction.

 

In General i would keep Track of the last 2 seconds and if the last hit wasn't world to see what kind of factions you got attacked (for example if a a Dawnguard Troll hits and defeats you the faction defeating you should be dawnguard and the dawnguard ppl should handle it)

 

If you have a Faction Reference List this is very very easy to implement. It's getting more complex if you want to keep Track of Followers and esp. if there are Follower Frameworks involved wit 2 or more Followers.

Link to comment

The ability to extent the framework piecemeal is rather the point of the idea.

 

DiD already does a lot of what we're talking about now, but it has some quirks.

For example, for some unknown reason, it will keep the "Avoid Capture" quest open for an almost indefinite period, and only another fight with close results will end it.

That's probably a bug.

 

I'm well aware that people rarely ever contribute to "framework" mods.

 

The point is to provide:

  a) a way a team can actually cooperate together without having to compete for access to an ESP or even script files.

  b) a way to get a mod done and working without doing it all at once, and having no fear about scope creep.

  c) if a player really does want something, they really do have the option to add it.

  d) a way to come back to the mod, whenever, and add new features incrementally that are easy for a player to take on board or not take without full releases, and with facilities like feature switching built-into-the-design.

 

The core functionality is not "cause identification" at the high-level; it splits that task into two parts and performs only the low-level.

Handler mods can make additional determination and add data to the collection to enrich it if they wish.

 

Low level cause is (often) "who has been taking the PC's hit points - or their follower's (inspect individually).

This is, as stated, easy to determine, yet often meaningless in context.

 

High level cause is "what actors might interact with the PC after defeat".

 

Let's say you're defeated by a mudcrab, while running from a bandit?

The player knows the bandit is the real enemy here.

Do we have any evidence to involve the bandit?

 

We do if the bandit was in-range and in-combat and a PC enemy, even if they dealt zero HP damage to the player.

So, causes are not just coming from on-hit. On-hit-centric thinking is what got us where we are now.

 

A bandit "defeats" you. She isn't the conqueror, her boss is. It already implies a more interesting scenario than DiD's "you get a yoke and I follow you around stopping you doing stuff".

Not all groups have leaders. Do mudcrabs? Maybe. Probably not.

 

Spoiler

 

99% of Skyrim mods have almost no capability to handle "data" of any meaningful sort.

They cannot store it, and cannot process it. Their data models are built around tiny FormList sets, individual scalar variables, and on rare occasions, short arrays.

Some leverage a little of the power of StorageUtil, but most that use it get only a fraction of its potential.

 

 

Simplistically, there is a hierarchy of desirability in terms of "conquerors".

You just pick the most desirable. Or rather, they pick themselves, by "bidding" to handle.

 

e.g.

PC gets in a fight with necromancers, necro-pet-spiders, vampires, and Falmer.

All do some damage to the PC, then the PC falls off a cliff and goes to zero HP. The fall did most of the damage.

 

Who is best to handle the aftermath?

 

In a naive way we can say:

  • Necro+spider gives you necro rapes then horrible spider rapes.
  • Vampires give you vampire rapes plus being kept as blood slave.
  • Falmer give you brood mare and enslavement to "creatures".

 

Maybe the player has a preference configured? Maybe they don't. This is a high-level decision after all.

 

Maybe the player has a handler specially for vampires, which makes them the more attractive solution, and that handler is going to "bid high"?

Maybe we count Falmers as a low priority because creature enslavements are ... not great ... due to lack of dialog options?

Or maybe the player has some Chaurus Hive mod and attendant handler?

 

Or maybe a better question is "who is the winner?" Should the NPC squabble be allowed to play out while the player limps off?

 

 

Just setting out to write a monolithic defeat mod achieves nothing new. You're just right there with XKCD and "now we have one more standard".

It leads, naturally, to a wired-in, single-place heuristic chain to determine the handler.

You can almost guarantee that after a while, that heuristic chain will start hooking its tendrils deep back into the cause determination logic, and back into every single handler, binding them all together in a horrible monolithic knot full of unexpected cross-dependencies.

DiD is the latest iteration of that approach, and it's already bogged down in architectural limits, and that's on the V2 rewrite.

 

I have zero interest in replicating that, though if others want to do it, and believe they will avoid the pitfalls, I'm happy to use the results :) 

 

Link to comment

Very interesting, but now I still dont know what to expect and where to start.

 

I will just add my thoughts:

 

1. Enemy Detection

I honestly dont care for last hits or even in combat. Its just too much uncesseary detail. Who cares if Bandit A or Bandit Boss is your raper, they mostly look the same anyways.

I think the best would be:

 

If Player reaches 0 HP -> Detect NPC in Cell -> Determine the Raper via Numbers (most NPC found will rape) -> Exclude NPCs that are exluded in the mods MCM (for example Hares) -> start Rape Session. 

Ofc the "Most numerious" could just be replaced with "random", but I think the biggest group is usually the most dangerous.
Also there could be a built in simple routine for the obvious cases. 
I dont know if proximity can be scanned (in an easy way), so the scan area is smaller. 

In dungeons there will mostly be 1 or 2 types of enemies, which are mostly allied with each other.

In a falmer Dungeon I would like to see Falmer and Chaurus Rapes both for example. 

Outside is just a mess when it comes to defeat mods. Too much shit is usually interrupting. 

But if for example a cell scan is the best and fastest way to do it, you could just arrange the NPCs internally. Dragons -> Giants -> Trolls -> Bears -> Sabrecats -> Spiders -> Humans -> Wolfs -> non-predator wildlife

Naked Dungeons is making a cell scan afaik. That is why outside you get all kinds of shit... like beeing defeated by Bandit Chief and then raped one time by him and two time by his Rabbit friends lol!
If the mod had "Exclude Actor X, Y, Z from Rape" and Creature Group animations it would be the perfect Defeat mod, maybe even making a new mod irrelevant. 
Even today it is more reliable than Defeat and I honestly dont know why not like 90% of users swapped already.

Link to comment

@Lupine00Hm your point is good.

 

To move away from on hit makes sense on this kind.

 

I would split it in general in 2 Parts: Handle and Defeat.

Defeat Core should not determine what happens, only handling the fight and forwarding the results of this

Handle should determine the Situation and Triggers other Mods and get back to it.

 

Defeat Approach:

Player enters fight, Player is Essential.

I'm still the opinion, if the last hit is "world" Player should die. Else you will run into the stupid reason of jumping from a mountain and get defeated. Maybe we can differ between Traps and Other world dmg

 

During the fight still register individual attackers to have information who is invloved. is it a mudcrab fight and a Bandit is near a cell but never saw the PC.  Should they be included?

 

If Player Health enter 0 following could happen:

IF Player dies from world -> go to Handler

If Player has Follower -> Check for settings. Maybe they surrender to Human fighters but for Creatures the fight until Death.

PC is in Bleedout until all Followers are defeated or all enemies are done. No Recover Mechanic as it has in Defeat mod.

 

If Defeat State is completed scan around the Player for NPCs (which includes everything)

Wait until every NPC is out of Combat state (For example Wolf attacks Bandits and you got defeted in between)

Filter out all Dead NPCs

Determine who is the Leader (for Bandits or Forsworn you can get it by Level or Name)

 

Forward to Handler -> Master, List of NPCs, Own faction Types (Like Bandits, Human, Creature Human, Creature Wild) etc.

 

This i think would solve the Who would indicate.

 

 

The Handler is splitet into 2 Handlers -> Event and Quest

 

First the Handler selects some Events according to the available Infos. This can be Rape, Bindings, Slavetats events whatever. It can only be 1 Event or N Events. According to the Settings.

The Events will be filtered. A Wolf maybe rapes the player but will not be able to put them in Rope bindings. this would be silly.

 

 

After The events we could select 1 Quest. A Quest finishes the Events. This is a handover to another Quest. Maybe Simple Slavery, any other new mod, Reborn mod (like Transfer the Player to Solstheim and let them respawn) or in the Worst case let the player die (not fine for gameplay i think to get back the last save, but some are playing hardcore Skyrim)

 

 

For Registering the Quests i was thinking of a JSON Register. Just have a JSON File where any Mod can register itselft in a Form Array (This works fine). With this we do not have to fight with Events fired around and the quests don't have to be in the state started, we can just start them if needed.

 

We provide 1 Script Quest template which the Defeat Quest has to derrive and to implement 2,3 Functions. Like Determine if valid for the options. Than the quest is able to make easy checks like: i cna only run if the Player doesn't wear an Armbinder from a Quest, because i want to use it myself, The Player is not allowed to have followers (you can't simply dismiss a devious follower) etc. This helps to avoid this annoying breaking of everything. a wolf will not bring the player to a slave Auction etc.

 

+ It's very easy to make a new Event and Register it. it will only be a very small Quest.

Link to comment
3 hours ago, coffeeink said:

I'm still the opinion, if the last hit is "world" Player should die. Else you will run into the stupid reason of jumping from a mountain and get defeated. Maybe we can differ between Traps and Other world dmg

 

I understand this, but its not entirely true.

Often when I fall to death, enmies are close by. So they could still "defeat" the player.
When dieing to traps, it is easy to asume that the traps alarmed the nearby NPC to the players presence. 

What I would love to see is a way to prevent the Defeat mod from starting, for example when enmies are in combat with other enmies, the PC should have a short period of time where he is in bleedout (like for example 10 seconds). If the enmies are still in combat, Defeat will not fire. 

Dunno if this is doable, but I find situations odd where I am defeated by bandits on the road and while the bandit still fight other NPCs (travelers, wolves or even giants) they start raping the PC, then dieing during sex, messing up everything. 

Link to comment

Like everyone hear I also think non of the existing Defeat & Slavery Mod is good enough even when many of them have few or many points on favor. SexLab Defeat is from my point of view the best in that but the amount of bug's make really hard use it without CTD.

 

Other Mods like SexLab Adventure seems promising but stop development apparently.

 

Few are the things that seems to be needed to make true a mod like this.

 

1. Good framework system. I might a framework well structured easy to read and easy to modify without breaking it just including new functions. In this case the system of thread and hook of SexLab seem the best choice to emulate.

 

2. A main team of programers with same right of keep the project running if the team leader disappear or stop for some reason. Many of the existing Mod have that problem and I think can be easy solved defining that in the file description and maybe talking with Ashal to make that possible in the download page with some close vote system.

 

3. The possibility of everyone can include his own ideas at least if have the knowledge to make it by his own. Of course making it optional. 

 

4. The Mod should include all the best points of those already existing because the main objective should be replaced those. 

 

5. All the Quest related should be extra files to prevent issues with the updates in middle of a Quest at least until the Quest be completely develop.

 

 

--------------------------------------------------

 

I already started something with that in mind following the suggestions of @Nymra for the Furniture system. Still is just a framework skeleton without life (do nothing) but if anyone wants try it and develop I should have something to show in few days.

 

 

I already see some of the works of @Lupine00 and his coding method is very similar to my so I really like the idea of work together

 

 

Link to comment

I don't believe the answer is a framework that needs a team to maintain it.

 

The heart of the TinyDefeat concept is that the core defeat "framework" is small enough to be done and essentially "finished" in a realistic time frame.

 

Then the handlers can be developed by a team, with continuity and ongoing development, but they shouldn't need to keep going back to fix the core to do that.

 

Because the absolute rule of the design is that handlers should work with all other handlers, the design scales to more complex scenarios, and allows the player to decide what handlers they will use or not use.

 

 

Because the design allows handlers to come from any ESP, they can be developed as a mod of their own, by team members, or in a shared ESP, or a modder making a content mod (like SLS) can add their own special defeat handlers relatively easily.

 

 

While there are no frameworks this has happened for apart from DD, it does happen for DD. It's not impossible.

 

Devious Framework failed to gather support, not because frameworks are destined to fail, but because it was a solution in search of a problem, and a collection of highly questionable features that mostly did not work.

 

Kimy's bondage framework in DCL has little support because it's in DCL. It's not a general framework, it's a part of DCL and lives in the Kimy walled-garden. Also, it contains a design flaw I pointed out the instant she released it, which was easily fixable, however, she declined to fix it. Even so, despite those obstacles, it still has some support.

 

Another failed "framework" (in my opinion) is the Devious Attributes thing (I forget the exact name) that has a kind of over-complicated willpower system you can hook into. It fails because it wants to take over creative control while offering no useful facilities or features. I cannot see any reason a modder would ever want to integrate with it. At least with DF willpower you get actual outcomes, and it is far, far easier to use. All you need is to replicate the injected Global, or fire a mod event. You don't need a single dependency to use DF willpower.

 

Any other failed frameworks? I believe for any one that you bring up, I can easily identify reasons it failed beyond it trying to be a framework.

 

 

If a framework gives modders value, they will use it. Otherwise they probably won't.

If a framework tries to take creative control by determining only a narrow set of outcomes, again it probably won't succeed.

Modders want to do their own thing and they want the framework to help them do that. They don't want to fight against it to get their outcomes.

 

With the TinyDefeat design, as detailed right at the start of this thread, behavior is ALL in the handlers. If a modder adds a handler for a situation they care about and can detect, they can bid high for it and be fairly sure to handle it. Failing that, they can ask users to disable handlers that might conflict. In the end the resolution of incompatible handlers can be done by the user. Handlers must be registered, and one thing the framework does is let the user turn them on or off (or re-order them). If it works for Skyrim plugins, it can work for defeat too.

Link to comment

Frameworks that I see:

- Interactive BDSM (I dont really understand how to add anything there or how to make it look good without pairing
- Devious Framework (a shame)
- Daymol/Defeat (is it not a kind of framework?)
- Simple Slavery (it links many mods together, but only a tiny portion of the linked mods work or are still supported
- SUM (Skyrim Utility Mod) from Inte. At least for me it looks like it can do alot, but only POP uses it
- DDe (same as above)

- SD Cages (the cages could be so nice to use, yet not even SD+ gets it done reliably) 

- ZAZ Framework  (so much potential wasted because its core features are slowly rotting away
- DD, DCL and Co. have their own fanbase, and also many ppl who dont want it but have to anyway :P

Especially DDe could be interesting? Wouldnt it be possible to customize DDs equiped by a Tiny Defeat?

SD Cages could be used by captors 
SUM offers posing fuctionality for example 
Simple Slavery could connect it both ends (beeing sold from one captor to the other, like a mini SD+/Old Maria Eden) 
Devious Framework can drag people from A to B, would be cool if it worked better 
Interactive BDSM - locks into Zaz furnitures. Would be cool if it had an escape game or any meaningful functions. 

Ok end... 

Ah, an important detail:

If a CORE Mod is developed by 1 Person with the expectation that others will pick up later, I dont know if that works. 
I think more ppl might have to work together at least concept wise to agree on the most important basics, no? (not me ofc. I cant code) 

 

Link to comment
26 minutes ago, Lupine00 said:

I don't believe the answer is a framework that needs a team to maintain it.

Of course a Mod like that doesn't need a team to be developed or maintaining but think the TinyDefeat will be Tiny for all his life is like buying a puppy and expect don't group. 

 

The team have two main reason:

 

1. Get the attention of those who have idea to contribute and the Experience making Mods to get a working Mod fast enough. I think with the experience and help of some of the Mod author's in this thread is possible obtain a good framework in less than a month.

 

2. Keep the mod update even if the author get tired of do it is easier if someone know every aspect is the Mod and that can be obtained if they are part of the project since the beginning.

 

 

-----------------------------------------------

 

By other side like me you probably have more than 200 active Mods already so make few new esp files is not recommended. Of course one Mod with many modular scripts is another thing and in that case can be easy develop be few people at the same time.

 

"Not sure if I described that in the right way"

 

Anyway at the end the main problem right now is start the framework

Link to comment
50 minutes ago, Nymra said:

- Daymol/Defeat (is it not a kind of framework?)
- Simple Slavery (it links many mods together, but only a tiny portion of the linked mods work or are still supported
- SUM (Skyrim Utility Mod) from Inte. At least for me it looks like it can do alot, but only POP uses it
- DDe (same as above)

- SD Cages (the cages could be so nice to use, yet not even SD+ gets it done reliably) 

- ZAZ Framework  (so much potential wasted because its core features are slowly rotting away

I don't think Defeat was really ever a framework. DA maybe had ambitions to be, but ultimately has a couple of mods. From a code or functions perspective it's not a framework.

 

Simple Slavery IS a framework, that succeeded. It's still used, and when new mods that can use it appear, they usually do.

 

SUM isn't a framework, it's just a utility and library. It's no more a framework than SLD's _fw_utils.psc is.

DDe definitely isn't a framework, it's a mod for messing with devious outfits. PoP uses it as an outfit manager, but it's not even a general purpose outfit manager.

SD Cages isn't a framework, it's a resource. SD+ does work with it if you use Inte's patch.

 

Zaz ... definitely a framework ...

 

Zaz is interesting as it's both success and failure together.

The sex animation playing part WAS used a lot. The bondage items are still used.

The greater part of its libraries was an overly ambitious and (IMHO poorly designed) framework that did not succeed in getting any meaningful adoption.

That effort failed because those libraries were poorly designed, took over creative control, didn't work well, and weren't ever finished. Not a recipe for success.

The sex anims and bondage devices worked, did jobs people wanted, and were used.

 

Frameworks that fail share a common thread of serving no essential purpose - reaching into areas where no framework is needed - and being badly made.

Large parts of Zaz are a coding-thought-bubble, API calls that don't work, docs for features that aren't really designed, and features that do work but in narrow and mostly useless ways.

 

Other parts are solid and quite useful, but only in a non-DD world. If you have DD, Zaz can't filter DD items properly.

Link to comment
Quote

The more interesting case is where the defeat mod collects information about the ongoing combat and passes it to the registered defeat handlers to see if they think a defeat is in progress.

The ability to define what "defeat" even is would indeed be a killer feature. Because the vanilla kill on sight attitude really ruins a city-centric game where 99% of combat should be barroom/backalley brawls that might result in somebody's death but it clearly isn't the initial goal.

 

There is one question though: how do you plan to arbitrate between defeat scenarios that narratively clash? It is easy to provide that should port to town scenario win the bid it terminates the bidding chain, so that PC not subsequently be robbed or raped (not by the present NPCs, anyway). But different scenarios may collide in ways unforseen by their own authors.

Link to comment
26 minutes ago, cat013 said:

The ability to define what "defeat" even is would indeed be a killer feature. Because the vanilla kill on sight attitude really ruins a city-centric game where 99% of combat should be barroom/backalley brawls that might result in somebody's death but it clearly isn't the initial goal.

 

There is one question though: how do you plan to arbitrate between defeat scenarios that narratively clash? It is easy to provide that should port to town scenario win the bid it terminates the bidding chain, so that PC not subsequently be robbed or raped (not by the present NPCs, anyway). But different scenarios may collide in ways unforseen by their own authors.

interesting idea, do I hear something like non violent defeat scenarios?
well, if the tiny defeat holds what is described things like that should be possible. 

Link to comment

Not so much non violent in strict sense - as far as I understand it combat needs to technically begin for this thing to work -  but definitely non lethal. Lose a willpower game and be defeated by zero damage whip.

Link to comment
On 5/12/2020 at 2:09 PM, Lupine00 said:

Zaz ... definitely a framework ...

Actually @ZaZ is most definitely not a framework but a member here on LL. Perhaps you meant ZAP? :classic_wink: 

 

Probably. Or maybe I abbreviated "Zaz's Animation Pack"?

Or is the Zaz on the front infinitely recursive?

Link to comment
On 5/13/2020 at 4:49 AM, Inte said:

Or maybe I abbreviated "Zaz's Animation Pack"?

Acronyms would be better, less confusing and not to mention are what everyone is using for mods, no? 

Link to comment

 

I think Zaz and ZAP is used quite as a synonym in this board. At least everybody knows what is meant :D

 

Link to comment

I believe this idea is quite important in Skyrim modding, as there is a lack of tiny limited framework core mods that wrap the vanilla things in the game and expose a way to plugin for those mods focused on content. Many mods directly replace vanilla game scene with that in his mod, then there comes conflict. Modders consider conflicts that break the game (CTD, questline broken, etc) more important than content conflict, or many of modders do not consider about content conflict at all. Some of framework mods go trapped in more and more content so that the mod got unlimited and buggy. Modders doing such things well in LL are Kimy and Inte, DDi and SUM are nice core mod and both of them keep limited feature and got splited from original bigger mod and that is why I believe DDC will become better than ZAP if keeping developing and if spilt core and resource will be better. (However, DCL is a mod that more like a combination, which I does not like. It will be better if it could be splited into some submods by feature.)

 

There are many things in Skyrim need a tiny core, including defeat as you mentioned, the whole law system ( a very common scene is that a guard force greet and the player submit then other guards do not calm, and if get DCL,POP and DA installed at the same time, things will go more messy. DCL will force greet when you trigger blackout scene even with combat surrender off in DCL while DA will try to use POP to handle the thing and sometimes the player might not get caught after blackout while bounty cleared), the trade system, the armor distribution system and so on.

 

What a core mod needs to do is to wrap the vanilla game scene, provide a way to let other mods to register scene and choose scene by the priority in the pool. Once I have planned a core mod for the law system which overhaul the vanilla game scene. The mod provides three scene, arrest, court and punishment and all of them need content registered by other mods. For arrest scene, mods can register what will happen when guard force greet the player at any time, such as fight, submit (these 2 are provided by the mod itself) and offer sex, bribe and even relationship dialog or many other things (could be provided by other mods). Court scene is similar, where mods can register what will happen when the player got contronted by the Jarl, such as escape, admit, pass the buck to the follower (these 3 are provided by the mod itself) and  also scenes provided by other mods (for example, some mods like Relation Dialog System can plugin these scene). Mods can register punishment scene with name, function, args and a event used to callback when the scene end, then the mod can provide a highly configurable law system as we can create a json file for example to describe which punishment should be used in a case just as law in real life. However, I abandoned this plan as my CK is keeping crashing for a long time and I am now considerring using SE as a main rather than Oldrim. Why I write my idea here is to share this things with others in LL and hope to inspire someone.

 

(Hoping people read this reply are not affected by my poor English.)

Link to comment

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use