Jump to content

Recommended Posts

 

 

My plan is to have a variety of options, mostly tending toward becoming a prisoner. Even when choosing to be a guard, it'll be very easy to mess up.

 

I'm still not very good at modding, and I do not know how to interface with other mods, and as such, my mod will aim to be very self-contained.

 

So, no conflict. I don't plan to tie into "crime" statistics or the existing prison system, although I won't rule it out.

 

Keep it that way tho i remember this mod called "dark investigations" it doesn't use any other mods , and it's a unique piece , i'm confident this will also be one ! when its done

 

It will never be finished, author gave up on it.

 

 

true but what he finished is still alot off content and it's fun to go trough

Link to comment

still working away, albeit slowly.

 

Struggling with AI packages somewhat. Trying to figure out how to get NPCs to do certain actions for set lengths of time, stopping, even if their conditions are still met after, say, 10 seconds, and then repeat those actions if the conditions are met again...

 

Confusing stuff.

Link to comment

still working away, albeit slowly.

 

Struggling with AI packages somewhat. Trying to figure out how to get NPCs to do certain actions for set lengths of time, stopping, even if their conditions are still met after, say, 10 seconds, and then repeat those actions if the conditions are met again...

 

Confusing stuff.

 

When in doubt, or in a lack of experience/skills, just use your head and adapt BASIC easy to do routines to fit your needs.

 

You need them to do things for a set amount of times?

I see 2 ways

Make a SINGLE Routine where the NPCs move and do what you want them to, with pauses until destinations are reached to prevent script from going ahead of itself, and make the script not run itself multiple times, but make it so it contains mutliple runs in itself

 

Else BREAK the routine into MULTIPLE smaller routines that chain together, its much less efficient but super basic.

 

 

As for running even if the condition is met, make the priority and base action the IDLE routine be at the top and INCLUDE triggers IN the idle routine to allow other routines to run IN IT.

 

The point being to make the idle run CONSTANTLY but pausing while it runs another routine that ITSELF launches.

Link to comment

still working away, albeit slowly.

 

Struggling with AI packages somewhat. Trying to figure out how to get NPCs to do certain actions for set lengths of time, stopping, even if their conditions are still met after, say, 10 seconds, and then repeat those actions if the conditions are met again...

 

Confusing stuff.

 

 

Packages are always tricky because they're essentially a black box. Either they work or they don't, but you don't get any information as to why they may not work as you intended.

 

One of the things you should probably know is that changing packages actually takes some time. The engine does not instantly switch to the new packages when a condition changes. Instead, there seem to be updates at regular intervals. So if you have, like, a 10 second long action, it could be skipped completely if the timing is bad.

 

My advice: Whenever you change the conditions for a packages (e.g. via script) and want the change to take place immediately, also force the character's AI to immediately update their packages. You can use Actor.EvaluatePackage() or ReferenceAlias.TryToEvaluatePackage(), depending on what you're working with.

 

 

Let's say you want the warden to repeat the same three things for 10 seconds each over and over while the quest is in stage 50.

Scriptname MyCoolQuest extends Quest  Conditional
 
Int Property CurrentWardenAction Auto Conditional
 
[...]
 
Event OnUpdate()
    if GetStage() == 50
        CurrentWardenAction = (CurrentWardenAction + 1) % 3
        RegisterForSingleUpdate(10)
        WardenAlias.TryToEvaluatePackage()
    endif
EndEvent

Then you add three AI packages to the warden alias with the different actions and give each of those packages two conditions: First, the quest MyCoolQuest must be at stage 50. Second, the VMQuestVariable MyCoolQuest::CurrentWardenAction must be 0 for the first action, 1 for the second and 2 for the third.

 

You need to start the action by calling "RegisterForSingleUpdate(10)" in the script fragment for stage 50.

 

Should work. If that's not what you meant, just ask again and tell us what you actually want to do.

Link to comment

Well, the details of the action I'm looking for are this:

 

The guard is protecting a door. If the player approaches, the guard forcegreets and issues a warning. (I can do this.)

 

If the player continues to approach the door, (ideally, the guard draws her weapon and enters an aggressive stance,) eventually the player gets attacked.

 

However, I don't want this to be a fight to the death. I have deliberately created a whip for the guard which staggers the PC but causes no damage, so I want some sort of limiter to the combat. There are SEVERAL options I would accept to end combat, yet all I've tried (via packages) seem to not work. After a certain number of strikes, at a certain distance from a reference object, or after a certain number of seconds.

 

At this point, I would like the guard to return to her post if she has left it, and then repeat if the player returns.

 

I'm aware that packages take time to refresh, and I had even tried to leverage that as a "timer" of sorts, with no success as well. I've been testing in game via console with "evaluatepackage" to make sure I'm not just being impatient.

 

As for scripting, I'm still really bad at it. I have a mind for scripting--my job involves making parametric models, but the syntax is always a huge barrier, so, this line: "Int Property CurrentWardenAction Auto Conditional" would create a variable named CurrentWardenAction, which is an integer, which other scripts/fragments can modify and pull from.

 

But is it by default 0? And the first time it runs, it will become (0+1)/3? But that would create a non-integer value?

Link to comment

As for scripting, I'm still really bad at it. I have a mind for scripting--my job involves making parametric models, but the syntax is always a huge barrier, so, this line: "Int Property CurrentWardenAction Auto Conditional" would create a variable named CurrentWardenAction, which is an integer, which other scripts/fragments can modify and pull from.

Since it contains the keyword "property" means that the starting value can be set in the creation kit, though I'm not sure why that would be needed here. Then again, I'm not that experienced in skyrim scripting...

 

But is it by default 0? And the first time it runs, it will become (0+1)/3? But that would create a non-integer value?

This is not quite correct, the % operator is not the same as /, it indicates a modulo operation. So in this case the result will only ever be 0, 1 or 2.
Link to comment

Since it contains the keyword "property" means that the starting value can be set in the creation kit, though I'm not sure why that would be needed here. Then again, I'm not that experienced in skyrim scripting...

 

Exactly. Because it's a property, it can "interface" with the CK. In this particular instance, we want the "Conditional" part of that. It allows us to use the variable as a condition for packages, dialogues and other stuff in the CK (the condition function is called VMQuestVariable).

 

 

This is not quite correct, the % operator is not the same as /, it indicates a modulo operation. So in this case the result will only ever be 0, 1 or 2.

 

Yep. Papyrus variables default to 0, but it doesn't actually matter. Even if it were 43356712, the modulo operation would put it in a valid range.

 

The operator can often be used as shorthand for something like:

x = x + 1
if x > a
    x = 0
endif

 

 

 

Well, the details of the action I'm looking for are this:

 

The guard is protecting a door. If the player approaches, the guard forcegreets and issues a warning. (I can do this.)

 

If the player continues to approach the door, (ideally, the guard draws her weapon and enters an aggressive stance,) eventually the player gets attacked.

 

However, I don't want this to be a fight to the death. I have deliberately created a whip for the guard which staggers the PC but causes no damage, so I want some sort of limiter to the combat. There are SEVERAL options I would accept to end combat, yet all I've tried (via packages) seem to not work. After a certain number of strikes, at a certain distance from a reference object, or after a certain number of seconds.

 

At this point, I would like the guard to return to her post if she has left it, and then repeat if the player returns.

 

I'm aware that packages take time to refresh, and I had even tried to leverage that as a "timer" of sorts, with no success as well. I've been testing in game via console with "evaluatepackage" to make sure I'm not just being impatient.

 

As for scripting, I'm still really bad at it. I have a mind for scripting--my job involves making parametric models, but the syntax is always a huge barrier, so, this line: "Int Property CurrentWardenAction Auto Conditional" would create a variable named CurrentWardenAction, which is an integer, which other scripts/fragments can modify and pull from.

 

But is it by default 0? And the first time it runs, it will become (0+1)/3? But that would create a non-integer value?

 

 

That is somewhat advanced stuff. I think the first step would be to get the logic of the action right. Because there are some potential pitfalls. If the guard keeps attacking you while you're in the "forbidden" area, and the whip staggers your character (which makes you lose control over it), you might never be able to leave and will keep getting attacked. It would be a dead-lock scenario. If, on the other hand, the guard pauses to let you move away, a tricky player could use that time to try and slip past her. And what if the player fights back and starts a real combat?

 

There are several ways to deal with this. But I think my approach would be a scene. That allows you to take control over both the guard and the player character and choreograph whatever you want to happen with impunity. So the scene's scripts would first disable player controls. Then the guard performs a few strikes on the player, who staggers. She could also make a comment while attacking (easy to do with scenes and adds atmosphere). Then you fade to black (you could show a message saying that the player lost conciousness). And when you come to (fade from black), you're back outside the forbidden area (move to marker). The guard could say something like "Don't make me drag you out again!" and go back to her post. Then you enable the player controls and one can either walk away or step forward and start the scene again.

 

The scene itself would be started by a trigger that marks the forbidden area:

Scene Property GuardAttackScene Auto

Event OnTriggerEnter(ObjectReference akActionRef)
    if akActionRef == Game.GetPlayer()
        GuardAttackScene.Start()
    endif
EndEvent

 

 

You probably also want to take care of ranged attacks. Otherwise, the player could shoot the guard with a bow or spell from outside the forbidden zone and kill her or trigger combat and lure her away from her post. One way to do that would be to make the guard essential (so she can't be killed), then catch the OnHit event in the guard's alias and start a different scene that deals with the player. A simple scene could be to cast a lightning spell on the player that causes a blackout or damage. In-game explanation could be some form of magical protection (any attack gets reflected back on the attacker).

 

 

Scene Property RangedAttackScene Auto
Actor Property Guard Auto

Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
    if akAggressor == Game.GetPlayer()
        Guard.StopCombat()
        RangedAttackScene.Start()
    endif
EndEvent
Link to comment

Thank you two for these explanations. I hope to have some time this weekend to try putting some of this into practice.

 

Still--

 

At one point, there was an AI package that was doing 90% of what I wanted--which is the guard's behavior in the current release. The only problem is her inability to disengage and reset. Perhaps I can still figure out a way to adapt that package, but these principles of setting up trackable quest properties will definitely come in handy either way.

 

Anyway, I just want to let you know that I really appreciate this, and I just haven't had time the last few days to apply it yet.

 

Edit: Got the guard AI package working in a satisfactory way.  

 

I believe I will still attach quest variables to the attack to track how many times it triggers as a way to simulate her growing impatience... leading perhaps to a different outcome than simply being repulsed from the door.

Link to comment

What is the prupose of this mod ? Putting people in walls ?

 

Overarchingly, the purpose of the mod is to entertain me.

 

Its original purpose was as a modder's resource, adding new statics to the game. But then I figured the quickest way to see anything I created put to use would be to learn to mod, myself. Because of that, the process of building my mod has been fluid rather than having a clear vision and a goal. So, you could say my style of modding has not been particularly "purposeful" but I am not lacking in random ideas.

 

The content of the mod revolves around fetishes for latex, bondage, clinical/medical, imprisonment, etc. And the style of mod--should I succeed--will be story-driven, but the story will be a sort of flavoring for the sandbox-like nature of the dungeon and its devices. In other words, it's not on rails. There will be times when the player has no options, and loses control to further a story, but it should loop back around to the player being able to largely do what they want.

Link to comment

The content of the mod revolves around fetishes for latex, bondage, clinical/medical, imprisonment, etc. And the style of mod--should I succeed--will be story-driven, but the story will be a sort of flavoring for the sandbox-like nature of the dungeon and its devices.

 

For which I personally wish you all the success in the world. One of the biggest regrets I have regarding my mod is that I will never be able to enjoy it myself in the way that a normal first-time user does. I know how the sausage is made. I have played every quest a gazillion times during testing, know every nook and cranny and am not surprised by anything that the story throws at me.

 

So another rubber fetish story mod that isn't from me really needs to happen. Uhm... no pressure. ;)

Link to comment

 

The content of the mod revolves around fetishes for latex, bondage, clinical/medical, imprisonment, etc. And the style of mod--should I succeed--will be story-driven, but the story will be a sort of flavoring for the sandbox-like nature of the dungeon and its devices. In other words, it's not on rails. There will be times when the player has no options, and loses control to further a story, but it should loop back around to the player being able to largely do what they want.

 

 

 

You sir, are the chosen one.

 

I look forward to seeing the final product of all this. :P

Link to comment

Y'know... The name "rubber facility" got me thinking of a building made entirely of rubber. Just think if someone made pitch black latex rubber room assets! Just rubber everywhere! Rubber floors! Rubber walls! Rubber ceilings! Rubber stairs! The squeaking would be incredible!

 

It's actually easy to replace textures--pretty much any object in Skyrim could be made to look smooth, black, and shiny.  The challenge is only if it then looks believable or not. However, something similar to what you're describing is implemented in the next release, if you look back a page or two--padded rubber wall panels. While, rather than black, but eh--similar enough. I will likely add more room-sized tiles like what you describe. Despite how it sounds, they'd actually be extremely easy to make. Still, the problem would be making the material looks believably stretched, or have wrinkles and ripples in the right places. 

 

Room assets might not even require modeling. possibly entirely a Photoshop experiment.

 

This facility (and it's poorly implemented so far) is supposed to get progressively more bizarre the deeper you go. At the entrance, it's supposed to be pretty ordinary-looking. typical skyrim stuff, rock walls, etc--a believable prison. Even a believable warden, a couple believable guards, some ordinary-looking prisoners... but under the surface it has ulterior motives and very unconventional methods.

 

So yeah--I would like the depths of the prison to be something like what you describe.

Link to comment

 

Y'know... The name "rubber facility" got me thinking of a building made entirely of rubber. Just think if someone made pitch black latex rubber room assets! Just rubber everywhere! Rubber floors! Rubber walls! Rubber ceilings! Rubber stairs! The squeaking would be incredible!

It's actually easy to replace textures--pretty much any object in Skyrim could be made to look smooth, black, and shiny. The challenge is only if it then looks believable or not. However, something similar to what you're describing is implemented in the next release, if you look back a page or two--padded rubber wall panels. While, rather than black, but eh--similar enough. I will likely add more room-sized tiles like what you describe. Despite how it sounds, they'd actually be extremely easy to make. Still, the problem would be making the material looks believably stretched, or have wrinkles and ripples in the right places.

 

Room assets might not even require modeling. possibly entirely a Photoshop experiment.

 

This facility (and it's poorly implemented so far) is supposed to get progressively more bizarre the deeper you go. At the entrance, it's supposed to be pretty ordinary-looking. typical skyrim stuff, rock walls, etc--a believable prison. Even a believable warden, a couple believable guards, some ordinary-looking prisoners... but under the surface it has ulterior motives and very unconventional methods.

 

So yeah--I would like the depths of the prison to be something like what you describe.

The problem here would be that it might not be a photoshop job. I know Bethesda uses bumpmaps to make the walls 3D, but some walls actually have 3D models (like a stone brick wall) that wouldn't look good if just the texture was changed. I feel like bouncy castles would be the best place to look designs from.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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