Scripts more or less?

It is better to have multiple scripts or stick them all in one (less)?
Mainly for performance.

It is better to make sure that your scripts dont waste system resources. Having 1000 scripts that run smoothly, can be cleaner and more efficient than having 1 script that runs poorly. Having 1 script that runs smoothly is better than 10 that run smoothly, but can be less versatile.

It is up to you, and how you need to program things. OOP programmers tend to have a few more scripts to handle objects rather than an old school programmer that tends to make larger scripts.

Your best bet is to think like objects. “I am a sound, I do these things” “I am a car, I do these things”

A vehicle is a moving object, a car is a vehicle. a truck is a vehicle. They all have the same basic elements, so you can extend vehicle to car and truck, or plane or boat to get some of the same basic functions. Vehicle should contain all the basic elements that you will need to run either cars or trucks.

Thank you.

Not really about game performance, more likeyourperformance as a coder.

In terms of vehicles, you can keep making more and more scripts to control each and every bit of the vehicle. VehicleController, WheelController, etc. Sometimes it’s better to just split up scripts but sometimes it can be a pain to make them work together. The more smaller scripts you have, the more dynamic they can be.

Another example, you can make a class for an rpg called Character. Let’s say you want the character to have health, armor, attackDamage, speed. You could instead separate the health from the Character class and into its very own Health class. That Health class can be applied to any object in your Unity game. But now you have a problem, do you keep the armor variable on the character class, move it to the Health class or make a whole new Armor class? If you move it to the Health class then that means each object will have armor no matter if you want them to or not. If you don’t add it then how will you apply damage to your Health but filter in the armor that you have? If you want to add other armor types like fire armor, poison armor, etc… you will have a hard time with it. You can keep separating out each individual feature of the Character till there is no need to have a Character class anymore. At some point you will have to hardcode something genre/game-specific into your game… unless you can think of another way to code your script(s).

That’s usually something I struggle with sometimes. Do I keep everything dynamic or do I stop trying to over-think the game and just hardcode a script?

Character scripts are pretty easy to split up if you understand types. I mostly break my RPG Character scripts into :
Vitals = Health, Mana, Endurance, Power

public class Vital
{
   public string vitalName;
   public float currentValue;
   public float maxValue;
   public const float vitalLimit = 20000;
}

Statistics = Strength, Stamina, Dex. Often can effect Vitals possibly skills
Skills = Wood cutting, Dodge, Archery.

Often enough I make custom editors to more easily work with my custom classes. After I made these generic classes I’d probably just make a Character class and have lists of each public List<Vital> vitalsList = new List<Vital>();

Usually I try to keep things componentalized (using classes that inherit from MonoBehaviour) but sometimes it gets way too complicated.

Well it means that you are still learning.
Its good practice to follow the OOP methods. but it is also easy to not use them in unity and then get a very messy code.
It takes time but you will get it aventually.