// My ToU & (partial) Download List // Roxane, 28 yrs/o, she/they. I create custom content for TS2; and mostly post about the Sims and Animal Crossing.I do not take requests, but feel free to contact me if you have any questions.
Just an edit I did of @crispsandkerosene's SimStandardMaterial shader because I liked a setting somewhere in between the vanilla maxis setting for the scale lighting and the one in the Brighter SIms version.
I used 0.275 instead of 0.55 in the Brighter Sims shader, but if you want a flatter look you can tune the “stdMatScaleLightBetween” value slightly higher but the sims will also be much brighter at night.
It doesn't look too bad at night, I don't think.
Best used with lighting mods that tend to be more on the realistic-ish end like Radiance Lighting System, Cinema Secrets, or Cozy Home (this was taken with Cozy Home), but it works with any other lighting mod as well.
Soooo... I didn't intend for two highly requested fixes for The Sims 2 to drop within the space of a week and a half, buuuut...
Here's where you can download an experimental patch to fix the so-called 'object limit'!
https://github.com/spockthewok/TS2ObjectLimitFix
(Ultimate Collection only at the moment, I'm afraid).
The good news is:
Both @lordcrumps and @teaaddictyt have tested it with stupidly large CC folders and report that it works.
There isn't a dissertation the length of Tolstoy's 'War and Peace' you need to read through to understand wtf is going on.
The crashing wasn't caused by some hardcoded object limit at all! (That I know of).
An explanation of the issue for programmers:
And for everyone else:
The code for the Build/Buy menu was missing basic checks to confirm that the data it was trying to do things with was actually valid. No, I'm not joking.
Basically, it appears that all of the objects you can buy in the game are stored in something you can think of as being like a big, long list, which grows in size with the more custom objects you have.
The only purpose of the code that this plugin patches is to sort the items in the list into some kind of order. This is done by assessing if the value of the previous item in the list is larger than that of the item currently being looked at, and swapping their position if this is true (also known as an insertion sort).
In short, the game wasn't asserting that the data it was about to compare for sorting was valid before accessing it, and then promptly blowing up when it tried to do so and discovered it wasn't.
I imagine that the odds of the game making an oopsie and dumping some funky data into the list increases with the number of objects it is having to process - this might be why this issue only presents itself to those using multiple GB of Build/Buy CC. It was much easier to patch the code encountering the bad data within the list than to try and hunt down the mysterious culprit putting the data in there to begin with, so this is all the information I have at the moment unfortunately.
Either way, one of the first things you're taught when learning to code is to ALWAYS check that the data you're operating on has been initialised (i.e. it holds some kind of value). I guess someone at Maxis must have skipped that lecture :D
Is the 255 objects per subcategory limit theory true?
The Downloads folder I was using for testing had ~672 objects in the Deco/Misc subcategory (Maxis objects included). With the patch, I can freely navigate throughout the entire subcategory with zero crashes, so I guess not?
What about the whole OBJD limit thing?
People have varying beliefs of what the limit on OBJDs might be, but HCDU reports my Downloads folder had an OBJD count of 20,787. Again, without the patch the game would crash when switching categories in the Build/Buy catalogue, with the patch, no crashing.
If you want to hear my opinion on whether such a limit exists, watch this video.
Do I even need this patch if I don't use much CC?
As it adds some fairly important crash-prevention checks to part of the Build/Buy menu's functionality, I'd probably recommend using it anyway, just to be safe - we all know how much this game loves to crash!
Aaaah! I'm still getting crashes with the patch!
I'm aware that a few of you CC addicts out there have Downloads folders larger than the total size of everything ever uploaded to the internet, so if you still experience crashing in Build/Buy mode with this patch, please take a look at the mod's GitHub page and send me over the information requested there. Fingers crossed that shouldn't happen, but if it does, I'll try my best to investigate :)
Anyway...
Will
(I wish I had looked at this for my dissertation, as it was literally only a day's work).
please please please fix the link to ur freezer bunny alien guitars pls <3
Hey!
Since I had accidentally deleted the original post, I can't edit it. The new, working links can be found on this reblog instead: https://crispsandkerosene.tumblr.com/post/786077225074163712/thepathofnevermore-crispsandkerosene-more
Calling all shader creators: proposal to make a public Git repo for solving shader conflicts
As more shader edits get released, a problem that plagues creators and downloaders alike is the issue of conflicts between shaders that modify the same resource. Obviously, since they're scripts written a certain way and implementing a certain behaviour, there can only be one per each original .matshad. This leads to the need to make your shader mod compatible with other mods that change unrelated stuff within the same .matshad, and the combinatorics for that can get very tiresome very quickly. Additionally, since everyone names their file however they want and there's no standardisation, and downloaders need to look into the package with SimPE and see if they have any other shader mods with the same TGI or contents (not an easy or automated thing to do, since SimPE doesn't display .matshad names), it's very easy to have conflicting shader mods.
Enter Git. For those who don't know, Git is a free and open-source version control software that makes it very easy for multiple people to collaborate on shared code, compute differences between two versions of the same file and apply just the differences, switch between different versions of a file, restore stuff back to an initial clean slate, view and revert your changes piece-by-piece as you work, and way way more. I'm willing to shill for Git for a very wide variety of use cases, it's a really cool tool. It has a bit of a learning curve, especially for people who are not very technical or comfortable in command line, but there are GUI tools for those who prefer them (e.g. Sourcetree), and in addition maybe I can write some batch or shell scripts for making things easy for newbies.
Note: I will not go very much into detail explaining basic Git terminology here, but I'll try to make this comprehensible to those with no experience. I've added a brief guide to Git under the cut.
How it works
First things first, everyone who uses this system, whether as a shader programmer or as a downloader, needs to download and install Git on their PCs.
I will make a public repo on my Github account containing all Maxis shaders, each in their individual folder named after the included .matshad. A given folder will have two files: .package (added to gitignore), and .matshad. Creators are kindly asked not to rename them; this way we know immediately when the same resource has been modified. Git will only track the changes to the .matshad, because even though .package files containing a .matshad have huge chunks of plaintext, they're still ultimately binary files and Git is bad at processing those. The initial commit of the Git repo on the master branch will contain the Maxis shaders in their unmodified state as of M&G. The master branch will stay clean; no pull requests into it will be approved. This is so that people can easily switch back to vanilla shaders.
Creators will push their commits to their own branches on the remote repo. They're asked to please base their work off the initial Maxis commit to the greatest extent possible, and not on other creators' work, unless they work on the same piece of code as someone else whose work they want to include. This is to make it easy for people to pick and choose whatever they like.
Downloaders will clone the repo into their Downloads folder.
When they want to search for new shaders to download, they'll do a git fetch or git pull.
They'll make a local branch into which they'll cherry pick commits for each shader mod they want in their game. (Cherry pick, not merge, unless you have the exact same taste in shaders as a given creator.)
Then they'll open the .gitignored package with SimPE and replace the contents of the .matshad included in the package with the ones of the separate .matshad. This process can be manual or I could make a script for it.
Note on the binary conundrum
It is technically perfectly possible to add .package files or any binaries to a Git repo, either just them or alongside a separate .matshad. The advantage of this method is that users no longer have to manually replace the .matshad in the .package, which can be nifty for inexperienced or inattentive users. The drawback is that Git saves changes to binary files as the whole damn file, which can make the repo balloon up to large sizes with successive changes. Assuming you don't download new shaders all day every day, the trade-off can be worth it. Idk. Discuss.
Misc comments & possible problems
Git is useful, but it's not very smart. In particular it doesn't speak Matshad (or C++, or Python, or even English). You can have situations where a merge is completed successfully, but this leaves the shader in an inconsistent state, and the game either fails to load any hood/lot or flashes pink everywhere. In situations like these, know you have just downloaded a shader that's incompatible with what you already had on your local branch, and you need to revert the commit (or the nuclear option, go back to vanilla shaders).
Please don't push your local branch with everything you use in your own game. Do a git log to ensure your branch history is clean. The original repo won't come with a local branch for personal use; you need to make that yourself. Tutorials and sometimes scripts will be provided for everything a downloader needs to do.
Backup branches can be created to save the state of your shaders when you're happy with how your game looks and are worried about future shaders breaking it.
Make sure your downloads manager doesn't delete the files that make a Git repo because it sees them as non-packages and therefore junk. (Haven't tested this and normally Git files stay in a hidden folder, but just in case.)
Poll
I gotta admit I'm not very experienced with Github yet, as opposed to Bitbucket or Azure, so I don't know how easy it is for creators to push to secondary branches of a repo they don't own, if someone needs to approve that, or if it's easier for them to fork the repo and start their own changes and downloaders who cloned the original repo can pull commits from the fork, etc. If you know more about that, please discuss in the comments, esp. as applied to TS2 shaders.
ANYWAY. I'd like shader creators (and shader creators only), especially those who have already uploaded shaders, to please vote on whether they'd prefer to make a Github account themselves and push their own commits, or if they'd rather not bother with all this Git stuff and prefer me to make a commit with their modifications on their behalf (with the right credits and all that).
Please note that no action will be taken imminently towards yours or anyone's work; the Git repo doesn't exist yet and I won't upload things without people's permission, unless they've been inactive for 10 years or whatever. I just want to gather opinions to see which implementation will be the most popular.
Poll for creators: How would you prefer your work to be published to the Github repo? (Please don't vote if you're not a creator of TS2 shaders.)
I'd rather make a Github account myself and push my own commits
I'd rather ask you to publish the commit on my behalf and credit me
I don't want my shaders included in this Git repo at all
Voting ended onOct 16, 2025
Conclusion
And that's it! Please let me know in the comments if any part of this is harebrained or if this all sounds too complicated for a bunch of Sims 2 downloads. I will nevertheless continue to sing the praises of Git (and I would also like to add that Git proficiency looks pretty good on your resume, for those thinking of going into tech).
Bonus: Newbie guide to Git
A repo(sitory) is a collection of files that has an associated history of commits and branches.
A commit is a registered change to the state of the Git repo; it can be as tiny or as extensive as the creator decides, and (ideally) it has an associated commit message explaining what has been changed. Commits can be added, dropped, edited, cherry-picked, whatever. This allows for highly modular changes to the state of the repo.
Branches are a stack/list of commits; the older ones are on the bottom, the newer ones on the top, and essentially in a branch each commit is applied to the previous one. You can switch between branches extremely easily and it changes the contents of your files on the disk without losing what you had on the other branch.
Cloning a repo means downloading it (the files themselves and all associated Git stuff) to your PC.
Repos can be local (on your PC only) or remote (online); local repos can be linked to the remote ones, and automatically will be if you clone an online repo rather than initialise one from some of your local files.
That doesn't mean you receive live updates from the remote repo, nor (Christ in heaven) that everything you do is automatically uploaded to the remote for everyone to have. Repo updates are downloaded and respectively uploaded manually. Downloading is called pulling, and uploading is called pushing.
Not everyone has the rights to push commits to every branch of a remote repo. If you're not the owner of the repo or otherwise you don't have the rights to push freely to a certain branch (usually the main, or master branch), you need to make a remote branch of your own and then ask other users to approve your changes for merging them into the main branch. This is called a merge request (or, a bit counterintuitively, a pull request).
Merges don't automagically succeed every time. If the history of two branches diverges (you have some commits that they don't have, and they have some commits that you don't have), and the differing commits on those branches involve the same lines in the same files, Git will mark the merge conflict with some ugly marks in the affected files and you need to work out on your own how the file is supposed to look like. In the specific case of TS2 shaders, it means that you, dear user, have to either understand what the code is doing and solve it yourself, or notify the creator to fix their shit.
Git is not a programming language. You don't need to learn anything super complicated to use it. You just need to run commands in the command line, click on a .bat script running these commands on your behalf if you don't know your way around a terminal, or click buttons in Sourcetree. (A bit d'oh, but just adding this here for people who have this misconception.) If you can do a cd and ls, you're golden.
Git is not a huge program. It's a few tens of MB on the disk at most, on the order of a Pookleted hair. The extra files needed for a repo add extremely little overhead to your Downloads folder.
You don't need a Github account to download the shader repo; this is only for uploading. It is assumed that if you can do assembly math, you can run a git commit.
Great idea! We could always keep copies of the shaders as text files so they can be previewed/compared easily, though it could get a bit messy. I wonder if a script or application to automatically change file formats and create a package would be doable 🤔
I missed the time window for the poll, but I already use Git (& Github) so I'll be handling my own branch and commits.
MDP's TS4 dress concerto with Crisps&Kerosene’s Extended SimStandardMaterial Shader
I'm back on my custom shaders agenda and this time I added reflectivity to @mdpthatsme's TS4 dress concerto.
Dress material is slightly reflective, while sequins are reflective quite a lot.
To work properly these “shaders” versions need @crispsandkerosene’s shaders edit.
As these are edits of the original files, delete original MDP's recolors if you want to use my edit. Mesh is included, but it wasn't altered in any way.
Credits: @mdpthatsme, @crispsandkerosene
Download at SFS | alt
Tvickie's TS4 Enchanted By Nature items with shaders
I also added glow to the following @tvickiesims' TS4 Enchanted By Nature conversions (to make them more enchanted):
fairy tombstone
forest soirée bar back
glaswood tree
starseed teleporter
Just as the dress, these are edits of original files - you have to delete the originals if you want to use my edits.
These edits require @crispsandkerosene’s Extended StandardMaterial Shader - otherwise they won't glow.
Credits: @tvickiesims, @crispsandkerosene
Download at SFS | alt
Please consider joining me on my crusade for custom shaders. ;P
First, Items from Atticwindowatdawn's wistful spaces set. These are all in Deco -> Misc except for the stool, there is both a seating version and a table version.
Last but not least, miscellanous items. Baking stuff by Harrie is in Appliances -> Misc, Kids stuff by Syboulette, SixamCC and TUDS is in Misc -> Kids, Drying rack by KKB is in Deco -> Misc.
Recolors pull textures from the game files and will be affected by Basegame / Free Time magazine texture replacements, if you have any.
*These can be used along TS2 magazine extracted by Keoni - it's a different mesh. I've made new models to keep the polys as low as possible / initially I wanted to make add-ons for Keoni's mesh but it wouldn't work properly so I had to make my own master file :/
Oof, sorry for being extremely inactive. I'm going through a long phase of making TF2-style stuff for Source Filmmaker, and I still need to transfer files between disks for my main Sims game to be playable.
Finally made some progress with my specular lighting mod. A while ago I discussed with Crisps&Kerosene whether it's possible to enable specular highlights indoors and/or lamp lights. Both of us noticed that objects received no specular light from windows, and in addition I was having trouble seeing any specularity at all from lamps.
After a lot of experimentation, it turns out the game supports more realistic lighting both indoors and outdoors, without heavy shader programming. Here are my findings:
Initially I went into the shader files and saw a few instances of an adjustedSpecular parameter being set as the stdMatSpecPower times a smallish coefficient (0.2 - 0.75). Guessed a higher percentage of the original spec power means more spec power, right? Guessed wrong! C&K was seeing lamp specularity in her game while I could notice not a speck of it (pardon the pun) in my own because I had unwittingly modded it out of mine myself. I noticed the error when it seemed I was getting better specularity without my shader mod than with it. So, in a hail Mary pass, I tried to set all adjustedSpecular coefficients to 0.1 and, lo and behold, finally we have specular lights indoors too.
Another parameter of interest is the roomLightingType from Lighting.txt. The default value is, I think, 3, and no mod that I know of has tried changing it. I've tried out a value of 4, in conjunction to a higher value for roomOverallStrength, and it made objects in general and indoor objects in particular way, way more responsive to shadows, specularity, and bump/normal maps, and overall just quite high-contrast. I don't dislike it, but it's unforgiving with all those custom objects that were cloned from a shiny vase or something and the creator didn't bother to adjust its reflectivity. (P.S. this param is set as a float for some reason, although it doesn't make much logical sense — there's no spectrum of types, and I only tested with integer values.)
Delving into the executable with Ghidra I could find an additional lightAttribOverride that isn't documented and may (emphasis on "may", I can't confirm it) affect object:window specularity, or in any case prove useful to someone. It's called relSpecIntensity and takes a float (decimal point) value.
ANYWAY.
What you're seeing here are two test objects: C&K's "half-hearted" specular mask test object, shown here in an unlit room at daytime, that shows specular highlights on the mapped side from where it used not to; and a 3D floor mesh I've made as part of a huge medieval build set, in various stages of testing.
There is still a lot more work to be done before releasing this. I'm still experimenting with the right TXMT parameters to set, dealing with an issue where sometimes the specular effect gets inverted (you see more of the shadowy part of the effect in a diametrically opposite color), and trying to tame those crazy shadows and highlights a bit. For now it looks pretty weird.
Eventually I hope to release it as a more general lighting overhaul that includes newly defined times of day (I'm halfway through reverse engineering the code for them and man, let me just say that if any guy at work coded like Ghidra, I'd fire him), to demonstrate what can be done with specular maps using the aforementioned build set, and to promote the use of specular maps on things as a general practice. It's a shame that the graphics engine is capable of this (welcome to 2005) and no objects ever use it.
For now, I just wanted to publish some pointers / documentation for whomever is interested in lighting and shader mods for TS2.
So I absolutely adore these stair meshes by Raynuss. They look awesome, have amazing recolours, and are super versatile. The only problem I had with them, was that these were made before the Sims 2 even had spiral stairs in the game, which meant they used custom scripting from the talented Marvine, who uploaded their first set of spiral stairs in 2007.
This meant they had some quirks, one of the most annoying for me personally being that multiple sims could not use the stairs at the same time, leading to many route failures (even with stair fix mods). When Apartment Life introduced official spiral stairs to the game, they made it so multiple sims could use them at the same time, and I wanted the same for Raynuss's stairs.
So, TLDR, I have re-created these stairs so that multiple sims will be able to walk up and down them. They are all fully & correctly animated, using the talented AnoeskaB's mirrored stairs as a template. Most importantly, all existing recolours for these stairs still work 🥳
To use these, just replace Raynuss's original mesh files with mine.
This is an upload of the Medicine career. It overwrites the vanilla (unmodded) career.
Fixes:
Chance cards all actually take (or give) the proper amount of Simoleons based on what the chance card actually freakin' says
"General Practitioner", one of the mid-tier career levels for this career, is misspelled as "General practioner" and I fixed it. If you have the mod from MTS that fixes this typo, delete it because I incorporated it.
"Nurse" level 3 is changed to "Patient Care Assistant" since I have a custom Nursing career that is separate (It's on MTS)
Motives and skills required slightly adjusted (Getting promoted to Paramedic requires Logic now)
INQUIRY FOR MODDERS: Someone tell me: is there a reason why chance cards sometimes call for 50,000 bonuses but Bidou's Career Editor only goes up to roughly 32,000 ? And why. when monetary bonuses are pretty large such as 50k, WHY, are they coded as just the first two digits? For example, in most careers, large numbers such as 50,000$ are coded as just "50". Was this an error by EA or by Bidou??? I have no idea anymore.
The music stand is an all new mesh functioning as an AL microphone (and therefore requires said EP). Its ‘paper’ channel uses the same recolours as my medieval music stand, which are included.
The cello is a conversion of a TS3 object by The Path of Nevermore. It functions as a bass, and uses the same recolours as the bass conversion I shared a few months ago. These are included, so no need to redownload. It require Uni, Freetime and Argon’s custom instruments hack.
As requested, I made Argon-compatible versions of ToLaD’s 4to2 Freezer Bunny Guitar and Hamartia 3to2 Grim Reaper Guitar. Also included are a few recolours of both - but I’m not sure these are ‘backward compatible’ with the original versions.
Swatches:
- Music Stand
- Cello
- Guitar Recolours
Download at SimFileShare:
- Music Stand and Cello
- ‘Argonized’ Guitars + Recolours
Update: I finally fixed some issues with the guitar accessories. Thank you to @heathensimmer for pointing out the problem.
I can't edit the original post, but the download has been updated on SimFileShare here and on Dropbox here. Re-rebloging because I didn't notice the original link was broken yesterday.
Here is a download containing only the updated/fixed packages for my converted TSM lutes, TS3 and TS4 guitars. The guitar accessories will now have all the proper play, practice and watch functions. Their main download posts/links have also been updated.
They require Argon's custom instruments and pieguitaracc mods.