the Sim Settlements forums!

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Limits

rickcarufel

Member
Banned
Messages
34
Is there a limit to how many plots can be placed in a settlement or for the game? Builders may need to know that.
 
Last edited:
As far as I'm aware there is no arbitrary limit on the number of Plots themselves. Just a matter of how many you can fit into the space available and how far above the vanilla Built Limit your PC is capable of handling before it dies.
I've seen someone push Sanctuary to 100+ Plots in SS1 - thanks to code improvements, in SS2 it could likely go higher. But the person in question has a total beast of a system.
 
As far as I'm aware there is no arbitrary limit on the number of Plots themselves. Just a matter of how many you can fit into the space available and how far above the vanilla Built Limit your PC is capable of handling before it dies.
I've seen someone push Sanctuary to 100+ Plots in SS1 - thanks to code improvements, in SS2 it could likely go higher. But the person in question has a total beast of a system.
I'm thinking there's a magic number of 256, same as the max number of mods when the game becomes inoperative. But that may not be the case. I have 64 gigs of ram with 8 gigs on the graphics card and SSHD system I Frankensteined together.. I may have 100 plots in sanctuary. I may have 100 plots in Starlight too.
 
I'm thinking there's a magic number of 256, same as the max number of mods when the game becomes inoperative. But that may not be the case. I have 64 gigs of ram with 8 gigs on the graphics card and SSHD system I Frankensteined together.. I may have 100 plots in sanctuary. I may have 100 plots in Starlight too.
Yeah, if kinggath works the way I think he does, any limit will only be there because things totally break otherwise. I doubt many people have systems beefy enough to get THAT much built before their PC just cant handle it, though.
I am pretty sure a Conqueror Prebuild Setup in SS1 would go FAR beyond 256 plots total existing in the world at once without breaking outright... would have to check.
 
Yeah, if kinggath works the way I think he does, any limit will only be there because things totally break otherwise. I doubt many people have systems beefy enough to get THAT much built before their PC just cant handle it, though.
I am pretty sure a Conqueror Prebuild Setup in SS1 would go FAR beyond 256 plots total existing in the world at once without breaking outright... would have to check.
I don't think it has anything to do with Kinggarth, I believe it's about the limitations of the game engine. Kinggarth has done some awesome work. :)
 
I don't have any specific examples or areas to point out within SS2, but one of those "magic number" limits is 128. This is an engine issue rather than an SS2 issue, and is because 128 is the maximum size for papyrus arrays. Integral workshop functions such as GetWorkshopResourceObjects will potentially have issues without workarounds because of this limit.
 
I actually got a direct answer from kinggath on this; he said:
  • There are some mechanics, like the base game's autoassignment, where there would be brief soft limits due to arrays, but nothing to worry about. Definitely a matter of "whatever your rig can handle".
 
Integral workshop functions such as GetWorkshopResourceObjects will potentially have issues without workarounds because of this limit.
I'm pretty sure the 128 element limit does not apply when assigning an array a value with the return value of a native Function.
i.e. `ObjectReference[] theseObjects = PlayerRef.FindAllReferencesOfType(akObjectOrList, afRadius) can return an array of more than 128 elements.
I've had ~1800 Refs returned using this myself...
 
I'm pretty sure the 128 element limit does not apply when assigning an array a value with the return value of a native Function.
i.e. `ObjectReference[] theseObjects = PlayerRef.FindAllReferencesOfType(akObjectOrList, afRadius) can return an array of more than 128 elements.
I've had ~1800 Refs returned using this myself...
Was not aware of this. Could that be used then to "cheat" larger arrays by keeping the reference alive somewhere and repurposing it? Or are the arrays read-only or something?
 
There is no such thing as unlimited building in a game engine. There is always a limit and games get unstable as you near that limit. There is also no game limited only by a computer's performance. It's usually a hexadecimal number like, 128, 256, 1024, etc. An example of this in Fallout 4 is the 256 limit for mods. Get to 250 mods and the game just starts crashing all the time. With 256 it won't even load.
 
An example of this in Fallout 4 is the 256 limit for mods. Get to 250 mods and the game just starts crashing all the time. With 256 it won't even load.
How can people have 260+ mods running successfully? I'm guessing it has to do with ESP vs ESL files, and then those people that have combined multiple mods into a single custom mod?

EDIT: That sounded like I came off snarky after I re-read it. Which I did not at all mean it to sound that way. I just don't really know, based on your posting, how people are running over that 256 mod limitation.
 
Was not aware of this. Could that be used then to "cheat" larger arrays by keeping the reference alive somewhere and repurposing it? Or are the arrays read-only or something?
You can keep the array alive by storing it as a script Property or local variable. It is generally a bad idea to keep ObjectReferences alive after the script has been exited. IIRC, ObjectReferences will remain persistent and can not be deleted until the reference is released.

I know you can access elements over 128 if they exist, but I have not tried modifying a value. For example, this works fine:
Code:
Function HandleObjects()
    ObjectReference[] theseObjects = PlayerRef.FindAllReferencesOfType(akObjectOrList, afRadius)
    int i = 0
    while i < theseObjects.Length
        ; do stuff
        i += 1
    EndWhile
    ; do other stuff
EndFunction

Function FindMyObject(ObjectReference akFindMe)
    ObjectReference[] akSearchMe= PlayerRef.FindAllReferencesOfType(akObjectOrList, afRadius)
    int i = akSearchMe.Find(akFindMe)
    if ( i > -1 )
        ; do stuff
    Endif
EndFunction
If we assume that in both functions the returned array length is > 128, i can also be > 128.

I do not know if there is an element limit a native Function can return, but as I said, it can go to at least ~1800. (I would assume this depends on how much memory the array has available to store data) I do not know if you can call Clear on the array and then Add new elements while being able to exceed 128. I would assume not as Clear resets the array's length to 0. You may be able to change an element by accessing it directly. i.e. thisArray[i] = SomeValue
 
How can people have 260+ mods running successfully? I'm guessing it has to do with ESP vs ESL files, and then those people that have combined multiple mods into a single custom mod?

EDIT: That sounded like I came off snarky after I re-read it. Which I did not at all mean it to sound that way. I just don't really know, based on your posting, how people are running over that 256 mod limitation.
I believe the limit is based on the actual files that are mods, not files that are also called mobs but are really just setting changes or short scripts and not full mods.
 
You can keep the array alive by storing it as a script Property or local variable. It is generally a bad idea to keep ObjectReferences alive after the script has been exited. IIRC, ObjectReferences will remain persistent and can not be deleted until the reference is released.

I know you can access elements over 128 if they exist, but I have not tried modifying a value. For example, this works fine:
Code:
Function HandleObjects()
    ObjectReference[] theseObjects = PlayerRef.FindAllReferencesOfType(akObjectOrList, afRadius)
    int i = 0
    while i < theseObjects.Length
        ; do stuff
        i += 1
    EndWhile
    ; do other stuff
EndFunction

Function FindMyObject(ObjectReference akFindMe)
    ObjectReference[] akSearchMe= PlayerRef.FindAllReferencesOfType(akObjectOrList, afRadius)
    int i = akSearchMe.Find(akFindMe)
    if ( i > -1 )
        ; do stuff
    Endif
EndFunction
If we assume that in both functions the returned array length is > 128, i can also be > 128.

I do not know if there is an element limit a native Function can return, but as I said, it can go to at least ~1800. (I would assume this depends on how much memory the array has available to store data) I do not know if you can call Clear on the array and then Add new elements while being able to exceed 128. I would assume not as Clear resets the array's length to 0. You may be able to change an element by accessing it directly. i.e. thisArray[i] = SomeValue
Was that a yes or no answer to my question? :)
 
The answer is simple NO. I have a build right now going in Sanctuary the easily has over 150 plots and could keep going no problem. I don't even have lag yet and I am on a 970 card.
 
The answer is simple NO. I have a build right now going in Sanctuary the easily has over 150 plots and could keep going no problem. I don't even have lag yet and I am on a 970 card.
Let me rephrase the question, what is he build limit number? Anyone one using Platonic logic, deductive reasoning and rationale thought know there can't be a limitless number on a limited system.
Hard to tell but every house is packed with plots and I still have plenty of space to add more and I am still going strong.
View attachment 12953

View attachment 12954
 
Let me rephrase the question, what is he build limit number? Anyone one using Platonic logic, deductive reasoning and rationale thought know there can't be a limitless number on a limited system.
You'd be surprised what's possible with the power of Todd. How about you test it? Keep building until it pukes and see how many plots it was that puked it? And I guess even with all those reasoning skills most of us don't care. We play until the game pukes and start again to do it again.
 
Nice build
You'd be surprised what's possible with the power of Todd. How about you test it? Keep building until it pukes and see how many plots it was that puked it? And I guess even with all those reasoning skills most of us don't care. We play until the game pukes and start again to do it again.
The Power of Todd. I love it. Made me laugh. :)
 
Top