Forum Discussion

KrisLW35's avatar
9 years ago

Adding seating positions - "Adjacent" and "Overlapping" tuning values?

@SimGuruModSquad - or anyone who has any ideas - I'm playing with making a "L" shaped couch. I've duplicated the appropriate subroot bone chain and all of it's children, duplicated the "part_sit_all" bit of tuning script and updated it to match my new subroot index so that the seating position is working fine:

http://i.imgur.com/daF278v.png

I have seating position 0, 1, 2, and 3, from left to right. All four positions can only be occupied if my sims sit in them in order, 0, 1, 2, and then 3. That's all well and good until the sims in position 0 and/or 1 decide to get up, at which point they become unusable if there is still a sim in position 2. The problem then complicates itself that if a sim is still seated in position 3, position 2 becomes the default, no matter which spot I manually tell my sim to sit in, thus turning it into a 2-seat couch.

Once a sim leaves position 0 or 1, all four sims on the couch must get up before anyone can sit back down in the first two spots.

I'm guessing this has to do with the "adjacent_parts" and "overlapping_parts" - I tried adjusting them and royally messed up the seating positions. I originally assumed they were referring to the subroot index for the spots they were next to ("adjacent," which I thought would have been to used to indicate if a sim could scoot over into that spot, wrong) and the spots that would be overlapping if a sim was laying down napping in two spots. Apparently wrong again.

The couch I used as a base has position 0 "adjacent" to 1 and 3. "3" what? There wasn't a position 3 until I added it. "Overlapping" is 3 and 4. Again, there was no position 3, nor is there a position 4. Skip over to position 2, and the values are going all of the way up to 6.

For the position I added, position 3, it's "adjacent" to 1 and 6, and overlapping 5 and 6. - the same as position 0 that I copied the code from.

I've made all kinds of lists and diagrams and I can't figure out what these values represent, or find any kind of correlation between them that tells me they are determined. Does it represent grid tiles? Other bones? Other scripts? What would be the correct values to use for a 4th seating position - and more importantly, how are they determined? What do they represent? (Is there something elsewhere that specifies couches can only have a max of 3 positions?)
  • OH! That was so close to what I was thinking, but it just wasn't clicking. I see now the extra "7th" entry I wasn't understanding is because the center position of a 3-person couch can nap to overlap either to the left or the right, so there is an entry for each?

    I've printed out the script and I've got my couch diagram and some highlighters, and it's starting to make sense as I visualize the links between the overlapping and adjacent parts now that I know what blocks I'm looking for!

    Thank you SO much! Hopefully now I'll get this project up and running :smiley:

    Edit: Success! Adding in the 4th position in the middle of the script offset several of the values by one, but correcting those now has all four positions working properly, and sims can approach/sit/nap in any combination. Thanks again!
  • It's not a routing issue about getting *to* the seating slots is it? That's what springs to mind about it being different if sims are already seated in particular places. Though I would expect that problem to manifest more in difficulty getting to the corner, not the free end. Still it's something to bear in mind.
  • "IngeJones;15226037" wrote:
    It's not a routing issue about getting *to* the seating slots is it? That's what springs to mind about it being different if sims are already seated in particular places. Though I would expect that problem to manifest more in difficulty getting to the corner, not the free end. Still it's something to bear in mind.


    It would seem that it is a routing issue about getting to the couch in general - each individual seating position works fine, in and of themselves. The corner position 2 and the sideways position 3 give no problems in any of my testing. Once position 2 and 3 are taken, though, sims within the vicinity of the couch - upon being told to sit - will stand where they are and complain, otherwise sims will walk over to the general area around the couch (not necessarily the spot where I told them to sit) and then begin to complain as if the entire thing is blocked. :s
  • A few notes:
    Overlapping parts and adjacent parts don't refer to subroot indices. They refer to list indices (since more than one part could reference the same subroot). So double check that.
    Overlapping parts and adjacent parts are not automatically reciprocal. So if A is adjacent to B, you also need to tune B to be adjacent to A, if that's the behavior you want.
    Sims place footprints when sitting down, and that might be blocking slots when using the corner seat. You might have to "stretch" the L connector so that's not the case. From the screenshot, it doesn't look like it should matter, but it's hard to tell since you don't have access to debug visualization.
  • "SimGuruEugi;15231718" wrote:
    A few notes:
    Overlapping parts and adjacent parts don't refer to subroot indices. They refer to list indices (since more than one part could reference the same subroot).


    List indices for what, exactly? What do the values correlate to? Are they referencing the number of the list itself within the script that belongs to the subroot in question? I.E the "adjacent" list gets numbered as 0 for the first subroot, then "overlapping" is list "2", etc? That doesn't seem to make sense, though, as I see values from 0 - 6; if each of the 3 original seating positions have two lists, what is the 7th list? That can't be right. I get that it's a list, but a list *of what*? I'm at a complete loss, I can't find (or at least recognize) any appropriate documentation, nor can I logically deduce what is happening.

    Any values I change to the lists at this point simply make my sims completely ignore the couch, all interactions just drop out of the queue.

    I've also tried moving all of the seating positions several game tiles apart, and it still behaves the same, so I don't think it's a "physical" overlapping problem.
  • The indices are the part's zero-based position in the _part_data tunable list.

    So if you tune parts a,b,c and you want b and c to be adjacent, b would be adjacent to 2 and c would be adjacent to 1.

    The only place where subroot matters is the subroot tuning field.

About The Sims 4 Mods & Custom Content

Find expert tips, troubleshooting help, tutorials for mods and custom content, and The Sims 4 patch files in our forum.

4,876 PostsLatest Activity: 7 days ago