Jump to content

Early design thoughts about an MCS/MCSex fork


Recommended Posts

I for the most part like how MCS and MCSex work internally (the stuff a user doesn't see, except of when it just works. For example, afaik MCS has the most robust handling of companions in follow mode, following oneself across loads. This seems to be, because it does it really simple and "dumb" (in a good way): It doesn't even check if a companion i.e. was close enough to a door, when you went through it. Instead, whenever you enter a zone, is just checks its internal list of companions in follow mode, and teleports them near you. This works even when you quickly zone two times, with the companion not keeping up. It also works if a companion gets stuck inside something!).

What i do not like so much, is the interface. As it's name implies, it does everything with spells (and then there is this weird handling of having to open a book, then going out of inventory, to get at the settings. Huh?). If it were about me, the only spells that would exist would be:

- "MCS Follow Me"
- "MCS Wait Here"
- "MCS NPC Inventory" (trade)
- "MCS Settings"

Look, no book, no "call companions", no "mark and teleport", no "peacemake".... where did it all go?

Let's ask you a question: What is a spell good at? What advantage does it have? Answer: It is compatible with vanilla and non-vanilla hotkeys. You can easily integrate those commands into your current hotkey sys. Spells aren't really good at much else (well, at least for actions that aren't really spells): They're slow to activate, they clutter the spell-list, and they aren't very immersive for "orders".

So, what other options are there to activate some action/command?
- Inventory items. Advantage: They clutter the inventory instead of spells. Disadvantage: They clutter the inventory.
- Dialog options. Advantage: Very immersive, good for roleplaying. Disadvantage: Even slower than spells.
- Hardcoded hotkeys that spawn a menu-window: Very fast. Downside: May interfere with user controls and other mods. Annoying to remap.
- Console commands. Ugh... seriously?

Considering the above, were would i put all the remaining things (assuming i knew "how to", for all of those options (i don't. Would need to learn some things))?

In CM Partners, or CSR... not sure which one, an interesting "quick menu" was introduced. One activated it by going into sneak mode, and then "activating" a companion. Instead of triggering pickpocket (which makes no sense for a companion, plus you may get a disposition penalty even if you don't steal anything), instead of that, a quick menu would open with popular orders, so that one wouldn't have to talk to the companion, just to tell him to follow, or guard.

I quickly got addicted to it, and even now 5 playhours after dumping CMP and CSR, still from muscle memory try to do it (and get a hostile response for it, since it now goes into pickpocket mode).

Now, doing it via sneak and activate may perhaps not be the best way to do this, because it's kinda hacky. Might easily cause all kinds of conflicts.

However, it is incredibly fast if you want to select from multiple options, doesn't clutter anything, and if it were just one (configurable?) key, it is intuitive and doesn't conflict too much with user controls.

So, do we need more than one key for "everything else"? I don't think so: If one presses it while targeting someone, the NPC specific menu window would open (what "MCS Orders" does now, plus more things like peacemake). If instead one presses the hotkey without targeting anyone, a generic menu window opens, with all kinds of generic things, including mark & teleport. So kinda: One key to rule them all, heh.

So, only the most popular actions (Follow, Wait, Inventory) would be spells, to allow the user to map them to individual hotkeys. Furthermore, a (once everything is set up) rarely needed and complex action would be a spell (MCS Settings), to remove clutter from elsewhere, and so that one can rebind the MCS-hotkey in case it is locked out.

To access all the "medium priority" commands, you just need to remember one key. Press it while targeting someone, to do something with that person. Press it while not targeting anyone, to do generic companion related things (incl the companion list) and teleport.

As for dialog options.... again have two levels of priority. In the root topic, only have "MCS Follow me", "MCS Wait Here", "MCS Inventory", "MCS Do as you like" (do free). Then have a submenu "MCS Other orders...", into which all the less frequently used things go (Relax should probably be at the top though).

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

Maintenance nightmares:

I'm a bit unsure in which form to code such a fork to begin with. The above things touch MCS as well as MCSex. But is it a good idea to maintain two plugins, and having to catch up with updates from others, and merge.... ugh. Especially given that i know of no tools for oblivion that make manual merging of different versions comfortable. This currently actually is where i feel the most uncertain. For features and stuff, i "just" have to learn a lot. But things like merging with updates from other authors... seems like a nightmare to me.

Link to comment

Glad to see this.  I have been bangin’ my head for a few years now over the different companion systems and how to “merge” or in other words, take the best from each and toss the rest while maintaining the MCS system as base.

 

Here are the things I would love to see in an AIO MCS system;

 

  1. “Wait here” The best version of that I have found is actually from some lovers mods.  Slave Trade I believe.  When I tell a companion to wait here…I MEAN wait here.  The NPC will not even turn their body…only use idles and head-tracking until you are out of their POV.
  2. “Relax” MCS already handles that perfectly.
  3. “Do Free” Again, MCS is perfect.
  4. “Trade” MCS again.  Note that this is the only guaranteed way to interact with an NPC when using Lovers plugins.  The others, namely CMP had/have a tendancy to break inventory items/tokens such as wombs, etc.  Thus making MCS the preferred system for inventory interaction.
  5. “Set/Choose Class” Not sure but believe from Valeria companion mods.
  6. “Set Combat Behavior” Valeria again.
  7. “Responsibility settings” Valeria again.
  8. “Make/Unmake Essential” MCS already.
  9. “Follow Me” MCS method of course.
  10. “Wear???” Maybe a rework of MCS’s method of dictating what an NPC wears and when as default.
  11. This last one is a bit of a lazy wish list desire, but a way to rename one of our NPCs remotely from possibly the follower list.  I just use ‘setactorfullname’ when they are selected, so not a big deal.

 

I am agreeing and very much liking where you seem to be going with this so far.  I too lack some of the scripting knowledge else I would have released something long ago.  But I end up fading in an out of Oblivion for long enough periods to forget what I taught myself the time before LOL

Link to comment

“Wait here” The best version of that I have found is actually from some lovers mods.  Slave Trade I believe.  When I tell a companion to wait here…I MEAN wait here.  The NPC will not even turn their body…only use idles and head-tracking until you are out of their POV.

You can fix this yourself without any scripting knowledge needed (i did so as well over here, because it annoyed me):

 

1. Load MCS (not MCSex) into CS. Ignore the errors on load, they're just about some items being invisible.

2. Menu -> Character -> Packages

3. Press the key M, then scroll down to MCSAIWait and doubleclick it.

4. Go to the "location"-tab

5. Notice that the value for "radius", is 512, or perhaps even higher. Thats the radius the NPC is allowed to travel while waiting. Reduce it to 128.

6. Save your changes, recheck your loadorder (it probably changed). Done.

 

Result should be, the NPC still making two steps in one direction, then turning around and making two steps back, but not further.

 

 

“Relax” MCS already handles that perfectly.

Sadly, not. Or rather, oblivion doesn't (its a problem with how "unequip armor" in AI packages works). How that flag works is as follows: An NPC that has an AI schedule with that flag set, will unequip its armor. If it has cloth, it will put cloth on.

 

Now, folks from MCS thought "Oh great, now we can give our companions comfortable clothes in addition to armor. Then if we tell them to relax, we set this flag, and they will walk around in comfortable clothes. Isn't this cute and nice for roleplaying?"

 

Well, it is, except of one problem: If the companion has no clothes, but armor, he/she will then walk around naked. So, if your heavily armored warrior has no clothes, and you tell it to relax in a tavern full of people, it'll opt to walk around naked "because its so comfortable". Ugh.

 

Someone more experienced with scripting than me commented, that one can in theory hackfix this by forcing stuff via scripts, but it in turn comes with its own set of problems.

 

Bottom line: There is no reliable and safe way, for handling clothing when relaxing, unless you simply accept that the companion won't change its clothes. That's what i did in my personal MCS version: i just removed the flag from the relax ai package, et voila: no more naked relaxing.

 

And that also is how i'd prefer it to work in a fork. Just don't mess with such stuff, and get the basics to work reliable. Want to change companion clothing? Use "Companion Wardrobe Manager". It'll do that for you - you then have to order clothing changes manually, but it'll work without bugs.

 

“Do Free” Again, MCS is perfect.

Might however want to rename it to: "Do as you like (no MCS orders)" or something like that. Else it's a bit hard to understand for newcomers.

 

“Trade” MCS again.  Note that this is the only guaranteed way to interact with an NPC when using Lovers plugins.  The others, namely CMP had/have a tendancy to break inventory items/tokens such as wombs, etc.  Thus making MCS the preferred system for inventory interaction.

That again is, because MCS does it in a simple and "dumb" (in a good way) style: It really is just arbitrary inventory access to arbitrary NPCs. There are no checks, no magic, no nothing, just blind inventory access.

 

(This also is, why it IMO should be called "Inventory" or "NPC Inventory", instead of "trade")

 

“Set/Choose Class” Not sure but believe from Valeria companion mods.

Hmm, if a such a thing were there, i think one should be able to disable it in the settings, because it breaks roleplay significantly, if one constantly gets it offered.

 

“Set Combat Behavior” Valeria again.

Here is the problem. I doubt that it is hard, to add options to choose "combat style". The problem is, that in oblivion, the combatstyle really only tells an NPC how he should move, how he should fight in melee, and which range he prefers (high for archers). There are no options for spellcasting and the like. I suspect NPCs either use spells automatically, or it is all done via scripts. If they use them automatically, then i suspect how valeria and CMP do it, is to remove/add spells to NPCs as needed, depending on the choosen combat behavior.

 

So, it probably isn't hard to do this for conventional fighting styles, but once magic should change depending on selected tactics, it gets a bit more complex.

 

 

 

  1. “Wear???” Maybe a rework of MCS’s method of dictating what an NPC wears and when as default.

 

 

 >.> I really only had all kinds of bugs and issues with MCS automatically handling clothing. I wish there were an option to disable it alltogether. With a plugin like companion wardrobe manager, the companion wears (or "doesn't wear") whatever i tell it to. With MCS, i'm fighting with it equipping the only things that are in it's inventory (try giving an MCS companion the shrouded armor. It works in CSR and CMP... but not in MCS. Why? No idea... there is a way to fix it in the settings in MCSex, but again, the "fix" makes no sense. MCS wear handling is like a black magic box to me).

 

This last one is a bit of a lazy wish list desire, but a way to rename one of our NPCs remotely from possibly the follower list.  I just use ‘setactorfullname’ when they are selected, so not a big deal.

Hmm, would fit into the submenu when you select a companion from the list. I'm quite sure that something like setactorfullname also exists for scripting. At the point where we select it in the list, we already have a pointer to it..... so, the actual execution of renaming should be trivial...... now, how to display a text input field to the player, and retrieve the input..... no idea.

 

Link to comment
  • 4 weeks later...

So this is the new follower mod project. I wonder if rynak777 is still working on it and how about the progress?

 

If yes, I have a recommendation. Check this out:

 

FollowerLivePackage

http://skyrim.nexusmods.com/mods/33002/

 

This is a mod to make followers more alive by interacting with surrounding area. Like Elizabeth in Bioshock Infinity. Followers will sit, walking around, using nearby object, etc.

Link to comment
  • 2 weeks later...

Sorry for the late reply.

 

I am no longer working on this. The reason is that i do not have the neccessary skills/experience to pull this off. I can design the interface and workflow (including code workflow) of such a thing, can write the dialogs, can write basic scripts, and so on - i'm familiar with programming. However, TESCS has a lot of very.... unusual mechanics and features.... and looking through the code of plugins like MCS or companion master, it seems they're pulling all the tricks. What they do looks like magick to me.

 

That's why i was able to fix/tweak small individual issues, like AI packages, conditions in scripts, dialogs and menu texts..... this stuff i understand, but i do not know enough about TESCS to write such a plugin or rewrite it.

 

My current mod project is a tweaked "Battlehorn Castle Upgraded", which IMO is among the top oblivion castle plugins, if not perhaps the best one. It does however have serious performance issues, gamebalance issues, and a buggy/lacking system of upgrades (things like getting an upgrade, without even buying it). I'm currently fixing all those things, then am planning to post a patch-plugin on nexus.

Link to comment

Update: Seems like i'll have to abandon the battlehorn project as well. This time not because of lack of my skills, but lack of oblivion debug output. Everything went by plan for a while, then i spent 4 hours editing a single cell, and now multiple cells CTD instantly on load. I get no info, no debug output, no nothing, nada. I like for the tenth time searched google, if there is any way at all to let oblivion write debug info into a logfile.... nothing......... i'm sorry, but this isn't a developer tool - it's a joke. There is no way i will develop with a framework, which on errors just crashes with zero info - not even info what it was doing when the error occured.

 

So, unless i'm missing some secret info, how to make oblivion output debug info when it encounters a fatal error, this is it: I won't develop on this gameengine.

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • 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