MediumCreating a Framework in Roblox Studio | by Roblox Development | Medium
Sitemap

Creating a Framework in Roblox Studio

2 min readDec 27, 2025

--

Goals

  • Learn proper project organization
  • Understand client vs server boundaries
  • Create a scalable framework for future features

Understanding Client and Server

Press enter or click to view image in full size

In Roblox, where you place your scripts matters. The engine enforces strict client–server separation, and misunderstanding this is one of the most common causes of bugs, exploits, and performance issues.

Key Rules

  • Server scripts cannot be read by the client
  • Client scripts can read replicated content
  • Never place scripts directly in Workspace (this leads to confusion, security issues, and bad structure)

Server-Side Organization

Server-side code should live in locations that are secure and not directly accessible by the client.

Recommended Server Locations

  • ServerScriptService
  • ServerStorage

✅ Tip: If the server needs to share data or APIs with the client, expose them through RemoteEvents or RemoteFunctions, not by moving scripts.

Client-Side Organization

Client-side scripts handle UI, input, visuals, and effects. These must live in places that replicate to the player.

Recommended Client Locations

  • ReplicatedStorage
  • StarterPlayer > StarterPlayerScripts
  • StarterPlayer > StarterCharacterScripts
  • StarterGui

Shared Code (Client + Server)

Some code is safe and useful on both sides.

Best Place for Shared Modules

  • ReplicatedStorage.Modules

Common examples:

  • Math Modules
  • Data Lists (Shop, Gamepasses, Developer Products, or even weapon data)

⚠️ Never put sensitive logic here (currency validation, damage calculation, anti-cheat logic).

Creating A Framework

Essentially a framework in roblox is just a list of utility modules

The most useful modules that I have found are networking, loaders, formatters, timers, and many more. You can find lots of utility modules on github RbxUtil.

Get Roblox Development’s stories in your inbox

Join Medium for free to get updates from this writer.

I use my own networking module but, The one within RbxUtil works perfectly fine for every project.

--

--