← ClaudeAtlas

roblox-client-server-architecturelisted

Structuring the client-server boundary in Roblox - RemoteEvents, RemoteFunctions, UnreliableRemoteEvents and BindableEvents, what replicates automatically and what does not, request-response patterns, ownership of state, and network ownership of parts. Use when designing any feature where the client and server must both participate, when replication behaves unexpectedly, or when deciding which side computes a result.
ibrohim1234567881717/game-dev-ai-skills · ★ 0 · AI & Automation · score 71
Install: claude install-skill ibrohim1234567881717/game-dev-ai-skills
# Roblox Client-Server Architecture ## Purpose `roblox-security` gives the procedure for auditing a boundary. This skill gives the design that passes that audit: how to structure client-server communication so that a client message is a **request the server validates**, never a result the server accepts. Roblox makes this harder than it looks, because a great deal replicates automatically. That convenience hides where the boundary actually is, and code written without noticing it is the usual source of both exploits and "works in Studio, breaks in a live game". ## When to use - Designing any feature where client and server both participate. - Deciding which side computes a result. - Replication behaves unexpectedly: a change on one side does not appear on the other, or appears and then reverts. - Physics behaves differently in a live game than in Studio. - Reviewing or refactoring existing remote usage. ## When NOT to use - Auditing existing code for exploitability. Use `roblox-security`, which is the audit procedure; this skill is the design. - Saving player data. Use `roblox-datastore-persistence`. - Purchases. Use `roblox-monetization`, where exactly-once semantics dominate. - Project layout and services generally. Use `roblox-project-conventions`. ## Required context | Fact | Why it matters | Where to find it | |---|---|---| | Rojo project or Studio-only | Decides whether file edits are usable at all | `default.project.json` | | Which remotes already exist |