@pearlbh It's kind of hard to explain, as there's a lot of detail that can go into it and different things that can be done for different interactions. Your best bet, I think, is to make sure you can get access to certain files, first of all. XML game files in a way that you can search through relatively easily, if you haven't already (see: http://modthesims.info/t/560317).
DATA files, in my experience, are a bit more difficult to get straightforward access to. But if you use the method outlined here to get them into a folder: http://modthesims.info/t/540033 (see the section "Setting Up") You'll at least have them somewhere, albeit maybe not in the easiest format to search. If there's an easier way to access them, it's not something I'm personally familiar with.
The point of this is so that you can use the game files as examples to learn from (and also to copy from). It really is the best teacher, imo, for showing you how an interaction is put together and it's easiest when you can just copy/paste an existing interaction's XML file and do tweaks to make it your own.
For example, if you want an interaction like Discuss Favorite Band, you can use Discuss Favorite Band's XML file as a base and then make a few tweaks where necessary. The main tweaks that are essential are changing the "n" and "s" values at the top of the file. Example:
n="Pearlbh_CustomInteractionName" s="13793">
Except the "s" value will be a much longer series of numbers and more random-looking. This is to ensure there aren't conflicts.
And then the other essential tweak is changing the STBL value under (example):
0x8ACBEBD
This is the interaction name that will appear in the pie-menu. The "Discuss Favorite Band" part.
There are ways to manually create unique values/name IDs to use, so that you won't have conflicts. What I've been doing for efficiency since I'm usually not needing a huge number of values at once, is I'll create a trait in Zerbu's Mod Constructor, then delete the description and make the value what I want for an STBL value (so if I wanted my interaction to be called "Discuss Favorite Band Manager", I'd change my trait name to that in the interface and then export and save the package file. I can then open up that package file, extract the STBL files, and use them for my new interaction. I can also use the ID generated for the trait itself for the interaction's "s" value. And extract the main trait XML file and use the last part of its name as the unique ID for my interaction XML file.
Note, however, that the first part of the XML file name is specific to traits if you generated it from Mod Constructor as a trait:
S4_CB5FDDC7_00000000_
in
S4_CB5FDDC7_00000000_000000000000860C
is for Traits.
Then:
S4_E882D22F_00000000_
in
S4_E882D22F_00000000_0000000000006557
is for Interactions.
etc.
If that's at all confusing, it's because it is. Well, ok... not confusing exactly, but there's just a lot of things you can learn as you go and it's sort of impossible to sum it all up succinctly.
If you have any questions, feel free to ask. I can honestly say though, for me, most of my questions were resolved through sheer testing and reading different files as examples. It slowly becomes more clear the more you see how the different pieces are put together. I actually find it's mostly intuitive how it all works; you just have to look at a lot of examples and fumble about in the dark a lot. Reading the TDESC's can help, too. There's a TDESC specific for interactions that has some insight in there about certain identifiers being used.
Also, just a general note, some types of files just need a unique "n" and "s" value and they'll be recognized by the game fine, as long as they're referenced properly (traits and buffs are one of these). For Interactions, injections are needed for compatibility, while making sure your interaction shows up in the right spot. Apart from that, you really just need a unique "n" and "s" value. The reason you want injections is because there are master lists of interactions that keep them all together and make sure they show up properly (ex: Romance interactions under the Romance tab) so if your new interaction is not part of the list, it won't show up in-game. An injection allows you to add it to the list without overriding the base game XML file for that list (if you used the base game XML file as an override, you'd conflict with other people doing the same).
Edit: Slight revision on something I said. I'm not sure the "n" value even needs to be unique. I think it may be an identifier for keeping your files named in an organized manner, more than anything (so name it in a way that will make the file easy to identify). The "s" value is the part that gets referenced when you're calling on one file from another file and it's vital that that part is unique and won't conflict with any other values.