Should I disable cast shadows on the server and enable them via a local script?

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    I want to optimize my game

  2. What is the issue? Include screenshots / videos if possible!
    There is no issue, game runs smooth sometimes but I could make it run smoother.

  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    I’ve added debounces and optimized my scripts etc.

I could disable all cast shadows off from every part in my game and enable them via a workspace.DescendantAdded code i can add to the local scripts.

Why would you want to do this? Is this for optimization purposes, because if it is, don’t do this.

I guess if I set the cast shadows all the parts on the client then only the client will have to focus on doing the cast shadowing and the server can focus its memory on replication and physics handling more efficiently

The client handles rendering shadows anyways. As far as I’m aware, it won’t help whatsoever other than just giving you more things to do yourself that there are already implementations for.

The server does not do any rendering. The clients will do all the shadow mapping individually so you won’t have to worry about this. Even if this would work, don’t forget the golden rule: pre-optimization is the root of all evil!

If you’re trying to optimize, try disabling collide for models that are not necessarily required to collide with the user and then anchoring them.