Jump to content

The Sexoutng Api (How-To For Modders)


Recommended Posts

There's no way to do that at present, but it's on my (eventual) todo list. In the early days, I experimented with that, but there were some animations that were "corrupt" and setting bone rotations and scales that the reset animation could not fix. Doing the knockdown was the only way to fully reset the skeleton. I think the new reset animation doesn't suffer from that problem though, so I'll revisit it.

Link to comment
Guest tomm434

I'm not sure if you understood me right - with rape check there is a special knockdown for agressor and victim (some of them keep lying after the sex). Knockback which broke Motor runner scene in Tryout.

 

Can you make additional int for that?

Link to comment

There's no "special" knockdown, there is only one. It's in SexoutNGKnockdown (script) which is a spell effect that is always cast (SexoutNGCum), no matter the MCM settings. The MCM settings just adjust how long it lasts for rape aggressors and victims in MCM. It's always two seconds for consensual sex.

 

The enable/disable rape KO in MCM doesn't actually do anything useful IIRC.

 

Motorrunner's scene was fixed by changes to how the dialog callback works, not by disabling the knockdown.

Link to comment
  • 2 months later...

Quick question about the flags... is there a way to exclude a subsection?

 

For example, say you wanted a random animation flagged as vaginal but excluding those flagged as rape... can that be done and if so, how would you call that?

 

Thank you in advance...

Link to comment

No.

 

But it is something I've been thinking of adding, it would be useful in a few places.

 

I'll add a new sexout array param "AntiFlags" to go with "Flags", at some point. You can actually start using it now if you like, sexout will just ignore it until I update it.

Link to comment
  • 3 weeks later...

Is there a way to play a specific set of animations? I couldn't find anything in the git documentation about this (or I'm too stupid and didn't see it).

For example, if I want a specific act to play a random selection of animations a, b and c.

Link to comment

What comes to mind for me is to use an array of the ones you want + random number gen and set the vars from there.  But that's my maybe not the most sophisticated approach.  And I'm also 10 versions behind from the last time that I actively did any SO modding, so I'm uncertain just how much stuff has changed.  :blush:

Link to comment

Not looking for most sophisticated. Looking for the easiest solution. :lol:

 

I could of course roll the dice myself. But seeing that I can limit animation selection to certain plugins, like SOAmra and Zaz, makes me wonder if there is a way to pick and choose.

 

Link to comment

I think there are 3way flags that do that.  Check out the animation functions in sexout in the geck.  You'll see what's flagged what there.  I'm not sure how many flags only have one animation.  SO I'm guessing that if you set a flag and that flag corresponds to more than one anim, you'll get a random from the picker, but only the ones labeled with that flag.

 

At least, that's how I understood it.  ie. Oral flag picks a random from among oral.  Which can be refined down with additional flags.  So Oral Kneel will only pick from among those oral anims labled kneel, etc.

 

It's pretty nifty.

 

Link to comment
  • 4 weeks later...

Hi!

Wanted to ask if there's any type of convention between Sexout modders regarding managing NPCs sexual orientations. Because as of now I see a lot of contradicting options.

  • First, we have Sexout with two options: NX variable "Sexout:Orientation" set via MCM (I presume), plus 3 FormLists: SexoutNGListStraightSexoutNGListGaySexoutNGListBi.
  • Then, we have SexoutLust which implements its own 2 lists (LustSameSexOK, LustSameSexOnly) and completely disregards default Sexout ones.
  • Then, we have SexoutIntimacy which disregards both and uses its own system based on 4 NX vars ("SOIntimacy:Heterosexual", "SOIntimacy:Lesbian", "SOIntimacy:Bisexual", "SOIntimacy:Gay").
  • There may be many more I'm not aware of.
I was thinking of basing on Sexout's system, but it seems that those lists are empty by default, and I completely don't get what do orientation sliders in MCM do. I tried tweaking them, but NX_GetEVFl "Sexout:Orientation" always returns 0.0 for random NPCs.

 

So, checking and/or setting NPCs orientations looks like an unordinary task from where I stand. Just checking an NPC's orientation requires using a function like this:

 

 

scn alxActorFnGetOrientation
; Gets sexual orientation for an actor
; Returns int:
; -1 - for Gay
;  0 - for Bi (default)
;  1 - for Straight

ref rMyself
ref rListBi
ref rListGay
ref rListStraight
float fSexoutOrientation


begin Function {}
  SetFunctionValue 0
  let rMyself := GetSelf
  if rMyself == PlayerRef
    ;Some special handling or using Sexout setting
    return
  endif
  if rMyself.GetIsCreature
    ;Ignoring orientation for creatures
    SetFunctionValue 0
    DebugPrint "__UD: %n's orientation: assumed Bi (creature)." rMyself
    return
  endif

  ; Sexout.esm
  if alxSexout.bIsLoaded
    let rListBi := alxSexout.rSexoutNGListBi
    let rListGay := alxSexout.rSexoutNGListGay
    let rListStraight := alxSexout.rSexoutNGListStraight
    if NX_IsInList rListBi rMyself
      SetFunctionValue 0
      DebugPrint "__UD: %n's orientation is: Bi (in Sexout List)." rMyself
      return
    elseif NX_IsInList rListGay rMyself
      SetFunctionValue -1
      DebugPrint "__UD: %n's orientation is: Gay (in Sexout List)." rMyself
      return
    elseif NX_IsInList rListStraight rMyself
      SetFunctionValue 1
      DebugPrint "__UD: %n's orientation is: Straight (in Sexout List)." rMyself
      return

    ; SexoutLust.esp
    elseif alxSexoutLust.bIsLoaded
      let rListBi := alxSexoutLust.rLustSameSexOK
      let rListGay := alxSexoutLust.rLustSameSexOnly
      if NX_IsInList rListBi rMyself
        SetFunctionValue 0
        DebugPrint "__UD: %n's orientation is: Bi (in SexoutLust List)." rMyself
        return
      elseif NX_IsInList rListGay rMyself
        SetFunctionValue -1
        DebugPrint "__UD: %n's orientation is: Gay (in SexoutLust List)." rMyself
        return
      endif

    ; SexoutIntimacy.esm
    elseif alxSexoutIntimacy.bIsLoaded
      if eval (rMyself.NX_GetEVFl "SOIntimacy:Gay") == 1 || (rMyself.NX_GetEVFl "SOIntimacy:Lesbian") == 1
        SetFunctionValue -1
        DebugPrint "__UD: %n's orientation is: Gay (set by Sexout Intimacy)." rMyself
      elseif eval (rMyself.NX_GetEVFl "SOIntimacy:Bisexual") == 1
        SetFunctionValue 0
        DebugPrint "__UD: %n's orientation is: Bi (set by Sexout Intimacy)." rMyself
      else
        SetFunctionValue 1
        DebugPrint "__UD: %n's orientation is: Straight (set by Sexout Intimacy)." rMyself
      endif

    ; Sexout.esm NX vars
    else
      let fSexoutOrientation := rMyself.NX_GetEVFl "Sexout:Orientation"
      if fSexoutOrientation <= -0.95
        SetFunctionValue -1
        DebugPrint "__UD: %n's orientation is: Gay (set by Sexout:Orientation)." rMyself
        return
      elseif fSexoutOrientation >= 0.95
        SetFunctionValue 1
        DebugPrint "__UD: %n's orientation is: Straight (set by Sexout:Orientation)." rMyself
        return
      else
        SetFunctionValue 0
        DebugPrint "__UD: %n's orientation is: Bi (set by Sexout:Orientation)." rMyself
        return
      endif
    endif
  endif
  DebugPrint "__UD: %n's orientation is: Bi (default value)." rMyself
end

 

And the something similar but vice-versa — for setting orientation. That is apart from an idea of using floats and finding orientation match based on how far apart on the scale two actors are, plus some random multiplier thrown in )

 

Any tips maybe? :)

Link to comment

Hi!

Wanted to ask if there's any type of convention between Sexout modders regarding managing NPCs sexual orientations. Because as of now I see a lot of contradicting options.

  • First, we have Sexout with two options: NX variable "Sexout:Orientation" set via MCM (I presume), plus 3 FormLists: SexoutNGListStraightSexoutNGListGaySexoutNGListBi.
  • Then, we have SexoutLust which implements its own 2 lists (LustSameSexOK, LustSameSexOnly) and completely disregards default Sexout ones.
  • Then, we have SexoutIntimacy which disregards both and uses its own system based on 4 NX vars ("SOIntimacy:Heterosexual", "SOIntimacy:Lesbian", "SOIntimacy:Bisexual", "SOIntimacy:Gay").
  • There may be many more I'm not aware of.
I was thinking of basing on Sexout's system, but it seems that those lists are empty by default, and I completely don't get what do orientation sliders in MCM do. I tried tweaking them, but NX_GetEVFl "Sexout:Orientation" always returns 0.0 for random NPCs.

 

So, checking and/or setting NPCs orientations looks like an unordinary task from where I stand. Just checking an NPC's orientation requires using a function like this:

 

 

scn alxActorFnGetOrientation
; Gets sexual orientation for an actor
; Returns int:
; -1 - for Gay
;  0 - for Bi (default)
;  1 - for Straight

ref rMyself
ref rListBi
ref rListGay
ref rListStraight
float fSexoutOrientation


begin Function {}
  SetFunctionValue 0
  let rMyself := GetSelf
  if rMyself == PlayerRef
    ;Some special handling or using Sexout setting
    return
  endif
  if rMyself.GetIsCreature
    ;Ignoring orientation for creatures
    SetFunctionValue 0
    DebugPrint "__UD: %n's orientation: assumed Bi (creature)." rMyself
    return
  endif

  ; Sexout.esm
  if alxSexout.bIsLoaded
    let rListBi := alxSexout.rSexoutNGListBi
    let rListGay := alxSexout.rSexoutNGListGay
    let rListStraight := alxSexout.rSexoutNGListStraight
    if NX_IsInList rListBi rMyself
      SetFunctionValue 0
      DebugPrint "__UD: %n's orientation is: Bi (in Sexout List)." rMyself
      return
    elseif NX_IsInList rListGay rMyself
      SetFunctionValue -1
      DebugPrint "__UD: %n's orientation is: Gay (in Sexout List)." rMyself
      return
    elseif NX_IsInList rListStraight rMyself
      SetFunctionValue 1
      DebugPrint "__UD: %n's orientation is: Straight (in Sexout List)." rMyself
      return

    ; SexoutLust.esp
    elseif alxSexoutLust.bIsLoaded
      let rListBi := alxSexoutLust.rLustSameSexOK
      let rListGay := alxSexoutLust.rLustSameSexOnly
      if NX_IsInList rListBi rMyself
        SetFunctionValue 0
        DebugPrint "__UD: %n's orientation is: Bi (in SexoutLust List)." rMyself
        return
      elseif NX_IsInList rListGay rMyself
        SetFunctionValue -1
        DebugPrint "__UD: %n's orientation is: Gay (in SexoutLust List)." rMyself
        return
      endif

    ; SexoutIntimacy.esm
    elseif alxSexoutIntimacy.bIsLoaded
      if eval (rMyself.NX_GetEVFl "SOIntimacy:Gay") == 1 || (rMyself.NX_GetEVFl "SOIntimacy:Lesbian") == 1
        SetFunctionValue -1
        DebugPrint "__UD: %n's orientation is: Gay (set by Sexout Intimacy)." rMyself
      elseif eval (rMyself.NX_GetEVFl "SOIntimacy:Bisexual") == 1
        SetFunctionValue 0
        DebugPrint "__UD: %n's orientation is: Bi (set by Sexout Intimacy)." rMyself
      else
        SetFunctionValue 1
        DebugPrint "__UD: %n's orientation is: Straight (set by Sexout Intimacy)." rMyself
      endif

    ; Sexout.esm NX vars
    else
      let fSexoutOrientation := rMyself.NX_GetEVFl "Sexout:Orientation"
      if fSexoutOrientation <= -0.95
        SetFunctionValue -1
        DebugPrint "__UD: %n's orientation is: Gay (set by Sexout:Orientation)." rMyself
        return
      elseif fSexoutOrientation >= 0.95
        SetFunctionValue 1
        DebugPrint "__UD: %n's orientation is: Straight (set by Sexout:Orientation)." rMyself
        return
      else
        SetFunctionValue 0
        DebugPrint "__UD: %n's orientation is: Bi (set by Sexout:Orientation)." rMyself
        return
      endif
    endif
  endif
  DebugPrint "__UD: %n's orientation is: Bi (default value)." rMyself
end

 

And the something similar but vice-versa — for setting orientation. That is apart from an idea of using floats and finding orientation match based on how far apart on the scale two actors are, plus some random multiplier thrown in )

 

Any tips maybe? :)

 

 

I think the main reason Lust and Intimacy use separate settings is because they both keep track of orientation on an individual level.  Further (and Lust may do this too), NPC orientation in Intimacy can be altered via game play.  Whereas, setting SexoutNG orientation on NPCs sets every valid NPC to that orientation.

 

If you want coordination between mods, the most obvious way is to use the orientation form lists.  ie. Regardless of what settings you use, you can always place the NPC into the 'Gay' list to let other mods know that the NPC is gay.  Intimacy will do this eventually, I just haven't put it back in yet.

Link to comment

I think the main reason Lust and Intimacy use separate settings is because they both keep track of orientation on an individual level.  Further (and Lust may do this too), NPC orientation in Intimacy can be altered via game play.

Yeah, I got that part about Intimacy, so I get why it uses its own system :) But from a quick look into Lust with FNVEdit I can tell that it only uses its two lists to check if NPCs match and doesn't add to them. There are only a few vanilla NPCs in there by default. It also disregards any Sexout lists and settings from what I can tell from a quick peek into its scripts.

So for Lust it seems that some background function to periodically check Sexout lists and synchronize is required.

 

 

Whereas, setting SexoutNG orientation on NPCs sets every valid NPC to that orientation.

But how does it do it exactly from a modder's point of view? I.e. sets a variable, adds to list, or does it just work internally for Sexout itself? How do I pick an NPC's orientation from an external mod? Aren't those supposed to be randomly distributed around the setting in MCM, or am I just putting too much math into it? :)

 

 

If you want coordination between mods, the most obvious way is to use the orientation form lists.  ie. Regardless of what settings you use, you can always place the NPC into the 'Gay' list to let other mods know that the NPC is gay.  Intimacy will do this eventually, I just haven't put it back in yet.

Is it supposed to be the default way? What about the "Sexout:Orientation" NX variable? I just don't want to add an N+1 method to the whole mess :)

 

 

Speaking about Intimacy, if I alter "SOIntimacy:Heterosexual", "SOIntimacy:Lesbian", "SOIntimacy:Bisexual", "SOIntimacy:Gay" variables (and nothing else) from an external mod for already "in-system" NPCs will it break something or is it OK?

Link to comment

 

I think the main reason Lust and Intimacy use separate settings is because they both keep track of orientation on an individual level.  Further (and Lust may do this too), NPC orientation in Intimacy can be altered via game play.

Yeah, I got that part about Intimacy, so I get why it uses its own system :) But from a quick look into Lust with FNVEdit I can tell that it only uses its two lists to check if NPCs match and doesn't add to them. There are only a few vanilla NPCs in there by default. It also disregards any Sexout lists and settings from what I can tell from a quick peek into its scripts.

So for Lust it seems that some background function to periodically check Sexout lists and synchronize is required.

 

 

Whereas, setting SexoutNG orientation on NPCs sets every valid NPC to that orientation.

But how does it do it exactly from a modder's point of view? I.e. sets a variable, adds to list, or does it just work internally for Sexout itself? How do I pick an NPC's orientation from an external mod? Aren't those supposed to be randomly distributed around the setting in MCM, or am I just putting too much math into it? :)

 

 

If you want coordination between mods, the most obvious way is to use the orientation form lists.  ie. Regardless of what settings you use, you can always place the NPC into the 'Gay' list to let other mods know that the NPC is gay.  Intimacy will do this eventually, I just haven't put it back in yet.

Is it supposed to be the default way? What about the "Sexout:Orientation" NX variable? I just don't want to add an N+1 method to the whole mess :)

 

 

Speaking about Intimacy, if I alter "SOIntimacy:Heterosexual", "SOIntimacy:Lesbian", "SOIntimacy:Bisexual", "SOIntimacy:Gay" variables (and nothing else) from an external mod for already "in-system" NPCs will it break something or is it OK?

 

 

I'm not sure if Lust is where you want to look though.  You might want to look at Spunk because it is now at the heart of Lust.

 

I thought that SexoutNG added them to a list, or maybe SCR did?  Frankly I haven't used the SexoutNG NPC orientation settings for many many iterations (over 2 years).  We had a long discussion about coordinating things in a thread somewhere.  In that thread we came to several conclusions, some of which was implemented, other things I think we forgot about.

 

So the bottom line I think is it's really up to you.  You can't ultimately be responsible for every other mods settings if they don't build cooperation into their mods.  I think the agreed upon methods are generally a few NX settings and some lists in SCR.

 

Someone feel free to expand or correct me where I'm wrong.

 

Speaking for Intimacy, it will always be a secondary mod, preferring to take a back seat to the settings in other mods (especially directed scenes).  So yes, you could set things on the fly and it will do what you tell it to do.  ie. It takes the 'shouldn't break' position on your question, even though the actual functionality isn't completely there yet.

Link to comment

I'm not sure if Lust is where you want to look though.  You might want to look at Spunk because it is now at the heart of Lust.

As far as I could figure out, Spunk doesn't use any predefined orientation lists since it doesn't push any NPCs into action directly. Lust, on the other hand, does.

 

 

I thought that SexoutNG added them to a list, or maybe SCR did?  Frankly I haven't used the SexoutNG NPC orientation settings for many many iterations (over 2 years).  We had a long discussion about coordinating things in a thread somewhere.  In that thread we came to several conclusions, some of which was implemented, other things I think we forgot about.

 

So the bottom line I think is it's really up to you.  You can't ultimately be responsible for every other mods settings if they don't build cooperation into their mods.  I think the agreed upon methods are generally a few NX settings and some lists in SCR.

 

Someone feel free to expand or correct me where I'm wrong.

Well, that's kinda the whole point. I was hoping that someone from Sexout developers team could give a specific answer since it's not documented anywhere, and there is a ton of scripts in Sexout.esm, some of which are supposedly legacy anyway, to figure it out in reasonable time :)

There's a fnSexoutGetOrientation function, but it only checks the "Sexout:Orientation" NX variable, which appears to be 0.0 all the time anyway.

 

 

Speaking for Intimacy, it will always be a secondary mod, preferring to take a back seat to the settings in other mods (especially directed scenes).  So yes, you could set things on the fly and it will do what you tell it to do.  ie. It takes the 'shouldn't break' position on your question, even though the actual functionality isn't completely there yet.

Oh, that's good :)

That's more of a question of which mod should take precedence over which than anything else. Most mods usually either assume default orientations or disregard them completely.

I think I'm going to implement a sort of an "NPC orientations manager" anyway. Shouldn't be too hard, writing an MCM menu for it seems like the most tricky and boring part :)

Link to comment

 

I thought that SexoutNG added them to a list, or maybe SCR did?  Frankly I haven't used the SexoutNG NPC orientation settings for many many iterations (over 2 years).  We had a long discussion about coordinating things in a thread somewhere.  In that thread we came to several conclusions, some of which was implemented, other things I think we forgot about.

 

So the bottom line I think is it's really up to you.  You can't ultimately be responsible for every other mods settings if they don't build cooperation into their mods.  I think the agreed upon methods are generally a few NX settings and some lists in SCR.

 

Someone feel free to expand or correct me where I'm wrong.

Well, that's kinda the whole point. I was hoping that someone from Sexout developers team could give a specific answer since it's not documented anywhere, and there is a ton of scripts in Sexout.esm, some of which are supposedly legacy anyway, to figure it out in reasonable time :)

There's a fnSexoutGetOrientation function, but it only checks the "Sexout:Orientation" NX variable, which appears to be 0.0 all the time anyway.

 

 

Speaking for Intimacy, it will always be a secondary mod, preferring to take a back seat to the settings in other mods (especially directed scenes).  So yes, you could set things on the fly and it will do what you tell it to do.  ie. It takes the 'shouldn't break' position on your question, even though the actual functionality isn't completely there yet.

Oh, that's good :)

That's more of a question of which mod should take precedence over which than anything else. Most mods usually either assume default orientations or disregard them completely.

I think I'm going to implement a sort of an "NPC orientations manager" anyway. Shouldn't be too hard, writing an MCM menu for it seems like the most tricky and boring part :)

 

 

I think it appears to be 0.0 always because that's what you have it set to in MCM?

 

An orientation manager would be tits!

 

Link to comment

I think it appears to be 0.0 always because that's what you have it set to in MCM?

Nah, I moved the slider here and there... A bug maybe?

 

 

An orientation manager would be tits!

Ok, I already have some specific ideas on its features and methods of realization anyway :D

Although I'm currently stuck inside UnethicalDeeds.esm. Wanted to fix a couple of bugs and ended up completely reworking some of its insides %) Wanted to add this manager there  :)

Link to comment

Prideslayer added the new UDF / NX var based orientation system in sexout '91 (commit: http://git.loverslab.com/Odessa/sexout/commit/e86f393eea4fcdca97218fc6acd8c07d223318b3).

 

I am not 100% on details, but from what I infer: the intention was to replace the old sexout form lists, if you upgrade from < '91, then all actors in the lists are updated to have NX variables, and removed from the lists.

 

So:

 

- The sexout orientation form lists should not be used.

- To check an actors orientation, use:

 

float orientation ; should be -1 -> 1
 
let orientation := call fnSexoutGetOrientation actorREF
 
if orientation == 1
   ; # heterosexual
elseif orientation == -1
   ; # homosexual
else
   ; # bisexual, with the fractional part being preference one way or the other
   ; # except 0 is also undefined, so you can't tell if it was actually set or not. This is something I will fix in '95.
endif

 

To set an actors orientation you can use

 

call fnSexoutSetOrientationSt ActorREF, "homo"
call fnSexoutSetOrientationSt ActorREF, "bi"
call fnSexoutSetOrientationSt ActorREF, "hetro"
 
; or
call fnSexoutSetOrientationFl ActorREF, FloatValue (-1 -> 1)

 

I don't know why there is no string version of GetOrientation, I will add one to '95.

Link to comment

Odessa, thanks for the explanation! :)

 

So, from what I see, Sexout doesn't actually change any NPC's orientations, it just adds default values to PlayerRef and processes NPCs from the lists if there were any. And actual setting is supposed to be done externally by mods, am I right?

 

 

except 0 is also undefined, so you can't tell if it was actually set or not. This is something I will fix in '95.

I was thinking about implementing a sort of a low priority scanner which will scan player's surroundings in background and if it finds an NPC with unset orientation it will pick some value randomly with a bias based on SO MCM setting. So, maybe add some NX var like "Sexout:Orientation:Set" = 1/0 alongside "Sexout:Orientation"?
Link to comment

I've added new a UDF, 'fnSexoutGetOrientationSt' to '95 beta 1, a counterpart to 'SetOrientationSt'.

 

Also, when you use SetOrientation on an actor, it also sets an 'orientation:init' NX var, so '0' no longer counts undefined as well as 'bisexual'.

 

If you call GetOrientationSt on an NPC with nothing defined, it returns the MCM default option for their gender.

 

---

 

Scanner sounds cool, consider using the new 'fnSexoutGetLocalActors' UDF in '95, which caches the scanner result for performance and saves you having to validate actors.

Link to comment

I've added new a UDF, 'fnSexoutGetOrientationSt' to '95 beta 1, a counterpart to 'SetOrientationSt'.

 

Also, when you use SetOrientation on an actor, it also sets an 'orientation:init' NX var, so '0' no longer counts undefined as well as 'bisexual'.

 

If you call GetOrientationSt on an NPC with nothing defined, it returns the MCM default option for their gender.

Great! And I can still use "Sexout:Orientation" and "Sexout:Orientation:Init" directly, right? Just for the reasons of not being hardlinked to Sexout functions on that matter but retaining compability.

 

Scanner sounds cool, consider using the new 'fnSexoutGetLocalActors' UDF in '95, which caches the scanner result for performance and saves you having to validate actors.

Sounds cool, I think I'll get to it... unless I have to do my actual job or something :D
Link to comment

I've added new a UDF, 'fnSexoutGetOrientationSt' to '95 beta 1, a counterpart to 'SetOrientationSt'.

 

Also, when you use SetOrientation on an actor, it also sets an 'orientation:init' NX var, so '0' no longer counts undefined as well as 'bisexual'.

 

If you call GetOrientationSt on an NPC with nothing defined, it returns the MCM default option for their gender.

 

---

 

Scanner sounds cool, consider using the new 'fnSexoutGetLocalActors' UDF in '95, which caches the scanner result for performance and saves you having to validate actors.

 

This doesn't affect the player settings right?  ie. 0 is still Bi for the player?

 

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