Lighting and Terrain Module

Hello! This question is primarily aimed at programmers, although builders may have a better understanding of the Terrain property. Let’s dive into it!

I have two things I want to achieve:

  1. Implement a lightingController module.
  2. Implement a terrainController module.
  3. Implement a customAtmosphere module.

I would like to create a customTerrain module that includes an array of Terrain Materials and Colours.

Here is an image to give you an idea:

I also want to achieve a similar effect with my lighting module. However, I’m writing this to inquire whether the current module structure is optimal or if they should technically be merged into one module, considering that customAtmosphere would trigger all the code from terrainController and lightingController.

What would this script achieve?

Let’s say we have Basalt and Grass set to a darker colour scheme with reds and blacks, and water set to red.

This creates a horror element.

We would also have matching lighting effects.

The terrainController would contain an array of functions like “customAtmosphere.HorrorScene()”, which would trigger the corresponding functions in the lightingController and terrainController modules.

Moreover, I’m interested in adding my own array of Materials, potentially including a number value and an attribute.

I’m particularly curious about how to create completely custom Materials.

I would like to replicate this functionality locally to the client, perhaps by using a part with a touch function around specific zones or triggers at the entrances and such.

In the future, I plan to expand on this project and add GUI elements to complement the overall experience.

However, I feel that I’m out of my depth with some aspects of this project, especially the GUI elements.

I apologise if my explanation is confusing.

If you don’t understand something, please don’t hesitate to ask questions or provide suggestions.

I’m looking for any input that can bring more clarity to the planning of this code, how I can flesh out the tables or arrays and use them correctly.