What rules should a modder follow to mod responsibly? What do you think they should do, what they shouldn't, and why? I'm asking because I've seen here a discussion about things that Pescado and BO do wrong in their mods and documentations. I would love it if quite a short and accessible guide was eventually created.

It really bothers me when modders change the order of nodes (or delete them) in BHAV overrides. Imagine the following situation: a player saves a game while a BHAV function is executing. Then installs a mod that overrides that BHAV with a BHAV changing the order of the nodes. The player loads the game save and the function is going to execute… but now it isn't in the point it has stopped. It may not work as intended at the moment. You can't predict what the function will do now.
Almost all mods by Pescado, Cyjon or BO do contain sorted overrides of BHAVs. Many other modders do it as well. Is BHAV sorting as dangerous and irresponsible as I think?

I experienced buggy results of sorting myself, and I try to avoid doing that ever since. Well, except for test bhavs (guardians), because they are immediate and don't have any animations or idling to stop at. I guess, maybe people did not know about it in the past, and some still might not know about it now. I didn't know when I started modding. I actually thought that sorted BHAVs are a good practice - readable and tidy and all that. Now I know better.

You've raised a good question. I'll have to think about it. Some things that come to mind right now:

1. Custom objects are better have their own custom GUID as fallback GUID. This way when one deletes an object from downloads, it disappears from the lot instead of being replaced by whatever it was cloned from. In my experience, replacement may be inappropriate and may even cause errors on lot loading. Although, it depends on how different the objects are. If they are practically the same - same slots, same functions - then it might be ok to have maxis object as fallback.
2. As a modder, you should proceed from the fact that people will not read descriptions (hope for the best, but prepare for the worst). As much as possible, make sure users' game won't explode and the mod will work with some default settings, even if users didn't do anything but putting your file in downloads.
2.b. It's not the best practice to make users fiddle in SimPE before they can use you mod at all (unless you absolutely have to do it this way).
3. You shouldn't override more than you have to. For example, don't override the whole interaction BHAV, if you can override a small function inside it with the same result. Also, if you can achieve your goal without any overrides at all - by making custom object/controller - do that. This way you minimize possible mod conflicts and potential negative consequences of overriding global/semi-global stuff.

Some things may have more then one side to them. Like mega-mod vs. modular files that was mentioned in the thread you linked. It's more of a preference thing, imho. Some downloaders find it easier when there is one bundle-file, others value flexibility and options.

As for documentation. I can see why people complain about not very detailed descriptions. But I also understand modders. Describing a mod may be such a pain! It is sometimes faster and easier to make the thing than to explain it in great detail. A lot of what I personally do doesn't get published because I hate descriptions so much =) But still, yeah, documentation is good, we all should strive to making it full and clear.

Describing a mod may be such a pain! It is sometimes faster and easier to make the thing than to explain it in great detail. A lot of what I personally do doesn't get published because I hate descriptions so much

It's about me as well. I also have problems with creating thumbnails and taking screenshots.

I think descriptions should be brief. I find it annoying if a description contains many unneeded information, slang words or it's trying to be funny. E.g.:

Quote:

Originally Posted by Pescado

Has it always bothered you that you have to greet people, thus giving them free run to traipse through your house at will, even if the only thing you plan to do is pummel the living crapola out of them for kicking your trashcan? Want to just unceremoniously pummel the living crap out of them, or say a word or two to passers-by, and then let them go on their way, without having wave, hug, or do whatever it is that sims insist on doing? Want to beat the snot out of that cow? Go for it!

It's quite difficult to understand what a mod with such a description exactly does. Just many empty words.

I personally think that a little humor doesn't hurt, but the description should be easy to understand, I agree.

There's a thread on somewhat related topic - Things you appreciate in CC - not exactly about responsible modding, but still worth checking out.

(By the way, your screenshots are great )

UPD. To continue on topic:
4. An important part of responsible modding is thorough testing in game. We can't test every possible combination of circumstances, especially with complex mods, but there are ways to cover the most ground in the least time. Look up "software testing techniques" for the tips. (If I come across a good guide that fits the Sims, I'll link to it.)

It's about me as well. I also have problems with creating thumbnails and taking screenshots.

I love your screenshots! They are so simple but perfectly illustrate your mods. Also, I so the way you format your posts! Soooo tidy!

Quote:

Originally Posted by Nopke

I think descriptions should be brief. I find it annoying if a description contains many unneeded information, slang words or it's trying to be funny. E.g.:It's pretty difficult to understand what a mod with such a description exactly does. Just many empty words.

This! I get really annoyed with CR's that ask for a description when the upload already has one that accurately describes the upload, it's just not lengthy or a flipping story.

A little humor. A wink to the downloaders. They read descriptions because they primarily want to know what the mods do, I think.

Another point: naming. Names of mods should be clear and shouldn't mislead. It would be pretty decent to follow those rules while naming a post or a thread about a mod. It's also important to name files correctly. Some characters in filenames make the game load slower. Filenames must only contain letters (basic latin), numbers, underscores (_), and hyphens (-). No spaces, brackets, exclamation marks, etc.
E.g.:Misleading name: nocrybabies by Pescado – it isn't about babies at all. The description says: Greatly reduces the crying and moaning when sims insult, slap, and otherwise harass each other. The name should say something about the mod. Metaphors don't do it.Lack of decency: a thread named Pee During Class. It's pretty misleading considering the filename is HL_staticBladderDuringClass. And it explains what the mod really does. HL, forgive me.Wrong filename: simNopke-simShadowFix0.X by me. There is a special character in that name. A dot. Now you all know I'm not as pure as you think.

Quote:

Originally Posted by Lamare

By the way, your screenshots are great

Quote:

Originally Posted by HugeLunatic

I love your screenshots! They are so simple but perfectly illustrate your mods.

Thank you. It's because it usually takes me a lot of time to take, choose, and then process screenshots… I'm not always completely satisfied but I am not going to spend a whole day adjusting images.

Is there an article or a thread about who determined what characters are considered special and what evidence they based the info on? Is it a Windows/Mac thing or something that the Sims 2 developers did? I usually follow the naming rules just to be safe, but I don't think I saw anything really concrete on the topic.
By the way, every package has a dot in its name - before the package extension. It doesn't contradict the theory, just saying.

Is there an article or a thread about who determined what characters are considered special and what evidence they based the info on?

I guess it's based on players' experiences and convictions. I've seen it here for the first time.
Note that the original game files only contain letters, numbers, underscores, dots in special case (.bundle and .sgfiles), and exclamation marks only in the CaS lots' filenames. I haven't found any hyphen though.

But… I've made a short test using over 650 files. I was changing masivelly their names to check what characters slow down loading. It turned out the game was always loading equally long… Perhaps I've used too few files to observe a difference. Perhaps it's hardware or software based. Or maybe spaces, brackets, and even diacritical characters are just not so special for the game. We should carry out more tests to figure it out.

The "sort " function only changes the way the nodes are displayed, it doesn't change the connections between the nodes, and therefore, it doesn't change the real order of the nodes (the path that the engine uses to read the BHAV).
It's as if you're combing your hair : it's better to see after, but all your strings of hair still come from your head ! lol
In this metaphor, none of the hair's strings were linked from the start, they were just entertwined...

Last word, I don't mind descriptions, most of the times, it's the hard testing work that makes me give up on a mod ...

The "sort " function only changes the way the nodes are displayed, it doesn't change the connections between the nodes, and therefore, it doesn't change the real order of the nodes (the path that the engine uses to read the BHAV).

Unfortunately, that's not true at all. "The real order" is the nodes order. The node number is probably the only thing the game knows with regard to the current position in function.
An example:
This is a function that is supposed to show a notification "0" (Local:0 = 0), then wait a second, then show a notification "1" (Local:0 = 0+1 = 1), then wait another second and finally show a notification "3" (Local:0 = 1+2 = 3).
A player pauses the game right after the first notification appears. The function stops on the node 6. Then the player saves and exits the game. They install a mod that overrides the function with its sorted version:
Now it's clearer what the function does.
The player loads the save and unpauses the game. After less than a second a notification "0" shows. And nothing more.
Explanation: The game remembers that it's idling. But it also knows it's on the node 6. So when the idleness ends and returns true, the game goes to the node 7, according to the true target in the node 6. Local:0 hasn't changed so a notification "0" appears.
I've checked the game behavior myself.

Nopke pretty much explained it. I'd just like to emphasize that it's not so much the sorting itself that is the problem. It's just that unnecessary sorting of BHAVs that are already in people's games has more chances to do harm than good.

My view is, when making an override, we have to keep in mind that the BHAV may have been in the middle of running when a player saved the game before installing our mod. The more common the BHAV is and the more important things it does the higher the risk.

We should look at any node with animation/idling/sub-function that the BHAV is most likely to stop at, and we should follow what would happen next considering our changes to the BHAV and keeping in mind that the BHAV could have started before the mod was installed and therefore it may have not gone the path we arranged in our override from the beginning.

Resetting the object/sim might be an easy way out of complicated situations, although, many users would think that reset IS a bug or at least an annoyance, so I don't know.

We should look at any node with animation/idling/sub-function that the BHAV is most likely to stop at, and we should follow what would happen next considering our changes to the BHAV and keeping in mind that the BHAV could have started before the mod was installed and therefore it may have not gone the path we arranged in our override from the beginning.

Resetting the object/sim might be an easy way out of complicated situations, although, many users would think that reset IS a bug or at least an annoyance, so I don't know.

So the bug should only occur the first time a lot is loaded after puting the default BHAV in the download folder ?
It's something I could manage, but it's right not any players can...

It's a pity as I often need to sort at least to understand the big confused Maxis BHAV....

Yes, it's the first time. And yes, it's not the end of the world most of the times, but again, the risk depends on likelihood and impact.

I too find it easier to understand BHAVs that are sorted (sometimes I do it by hand, when automatic sorting is not enough), but it doesn't mean I have to publish them this way. What I usually do is I have the BHAV opened in view mode and I sort and tear it apart any way I want, but in edit mode or when making a final version - I don't move things around too much, only make needed changes. I can always open a copy of the initial BHAV to mess with it and compare to my override. SimPE has a button for it.