Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Test Subject
Original Poster
#1 Old 6th Jun 2023 at 10:44 PM Last edited by bass_dandy : 6th Jun 2023 at 11:49 PM.
Announcing new tool: SimPAI
About a year ago I started looking into what it would take to make a custom career for the Sims 2. I make my living as a software engineer and thus went down a huge rabbit hole that ended with me building a web app that re-implements parts of SimPE with a more modern UI and no downloads required: introducing SimPAI (Sims 2 Package Alteration Interface)!

some details:
  • the source can be seen at https://github.com/bass-dandy/simpai
  • it is implemented as a monorepo with 2 packages: simpai (the web app itself) and dbpf-transform (the serialization/deserialization library I wrote for package files)
  • dbpf-transform is also published as an npm package in case anyone wants to use it to build more tools (and it includes typescript type definitions)
  • the currently supported resource types are:
    • BCON
    • BHAV
    • GLOB
    • JFIF(JPEG)/PNG/TGA images
    • NREF
    • OBJD
    • OBJF
    • STR#/CTSS/TTAS
    • TPRP
    • TRCN
    • TTAB
    • TTAS

some known limitations that I hope to address (eventually):
  • numeric inputs only display as hex
  • creating an empty BHAV or OBJD resources crashes the app
  • cannot import semi-globals
  • does not implement any of SimPE's BHAV operand wizards
  • does not show visual links between BHAV instructions (is that even useful? looks messy imo)
  • TTAB animal motive tables are not implemented correctly (does anyone have an example of these being used at all?)
  • I have only thoroughly tested on chrome, so there may be bugs on other browsers

As a proof of concept, I used SimPAI to create a custom career. This is the only CC I've ever made, so I'm not super familiar with how people generally use SimPE. Thus I have some questions!
  • what other resources would you like to see implemented? I mostly intend to focus on text resources rather than binary ones, but I am open to any suggestions (and code contributions!)
  • are any of the currently implemented resources missing SimPE features that you find helpful?
  • I simplified some resources by removing fields that are (allegedly) unused. Should I not?
  • does anyone want to make a logo? :3

Making this has been a great learning experience - I had never used svelte (I use react in my day-to-day), I hadn't used bitwise operators since college, and I know a little bit more about how the Sims 2 works on the inside. I'm probably gonna take a short break from working on this but if you have any suggestions I will definitely see what I can do!
Advertisement
Instructor
#2 Old 10th Jun 2023 at 7:58 PM
One of the main use cases for SimPE is recoloring items. That means:
1. Incorporating the database of Maxis objects as package files
2. Importing and exporting the texture files from those package files
3. Creating a new package file
4. Modifying the characteristics of a texture, like reflectivity

To create new content, add also:
1. Exporting the GMDC/mesh from a package file
2. Importing a GMDC/mesh to a package file

And of course, all the BHAV files that are associated with, say, a sofa, must be properly linked/included.

I only use SimPE, and have never been interested in exactly how it works, so this is more vague than I think you would prefer. But it is my 2 cents.
Test Subject
#3 Old 10th Jul 2023 at 11:19 AM
The potential on this is awesome, I'm really excited to see the development!
Instructor
#4 Old 1st Dec 2023 at 4:43 PM
This is amazing and exactly what I needed. I've already used it a few times to edit mods quickly. I hope it continues development.
Test Subject
#5 Old 2nd Dec 2023 at 1:50 AM
This is sick!
Back to top