Cut GrassDocumentation← Portfolio

Regions, Grass & Streaming

Grass assets

The authored source is Workspace.ImportantElements.GrassNew. Client generation uses the copy ReplicatedStorage.GrassClientAssets.GrassNew so that streaming cannot temporarily hide the template.

If you change the authored grass mesh or its appearance, update this client copy as well.

Region configuration

  • Config.Regions.FolderName points to Workspace.Regions.
  • Region entries are matched to region objects by their numeric ID converted to a name.
  • GrassLayout produces the blade layout.
  • GrassStateService holds per-player blade health on the server.
  • GrassWorld builds the local visual field.

Rendering and collision

Grass settings include Spacing, Density, scale and height ranges, CanCollide and render distance. GrassWorld creates collision proxies and adjusts their width based on whether the current Strength can cut the blade in one hit.

Grass culling controls visible distance — avoid disabling it just to hide an initialization problem.

Regrowth

The inspected configuration uses RespawnSeconds = 0 and enables region regrowth through Config.Grass.Regrow. GrassRegrowService handles the region-exit reset behavior. Read those settings before expecting a fixed per-blade respawn timer.

Streaming support

GrassWorld listens for region and spawn-part arrivals after initial loading. Shop prompts also retry binding when streamed NPCs become available.

Keep StreamingEnabled compatible with these delayed arrivals instead of assuming every Workspace object exists during controller startup.