Sandbox Logo
Page Header

Tools

I couldn't find any built in splines, so I made one quickly.


Sadly I had to abandon them for gameplay as there was a bug where the player would walk offset from the spline and I didn't want to fix it, but they're still used for the cameras on the main menu.
When I made the first level, it was the same dude copy and pasted over and over. That got very boring very quick. So I decided to make something that pulls all the clothing in the game into a list that I can control with settings such as "Chance of Clothing Category" "Chance for good/bad guy" "Tints" etc.

When the game switched to a Western theme it was as simple as removing clothing items out of the list and adjusting the sliders based on what I thought was appropriate.

I find manually picking clothing very tedious, so my plan is to expand this and release it as a library or something!
This is split into two parts:

Room Generation
This part is for generating room and target layouts via a list of data. This made making initial layouts and iterating them extremely quick!

Room Visual Generator
This part was to change the rooms themselves. Being able to pick what type of wall in what direction and have it pick randomly from a list, made making/change rooms easy and quick.
This tool itself isn't complex but I just wanted to shout out how easy it was to make my own section on the toolbar! Granted I did have to look at source code but when I did it was simple, clean and intuitive. Which in my experience editor UI in engines never is, so good job Facepunch Team!

Also, this made testing in general a lot easier, letting the fastest bot run and then simulating the average click time per target gave us a ballpark of how players might do time wise.

Comments

Oct, 10 2023
0
Really interesting stuff
Jul, 7 2022
175
A question, are you using ResourceLibrary.GetAll<>() to get all of the clothing ever and then use LINQ to filter by category? That could sanitize your clothing code in general
Mar, 3 2023
2220
I'm using ResourceLibrary.GetAll<Clothing>() to get the clothing and then looping through them and adding them to a list of that type. If I was to do it again, I'd probably switch that to a dictionary, not really sure why I didn't use one at the time.