@tabooharmony/roblox-server-data

@tabooharmony/roblox-server-data — AI coding skill

View in AI SkillSafe app
0 downloads
0 stars
0 demos
SKILL.md
nameroblox-server-data
descriptionUse for Roblox server or cross-server data: OrderedDataStore leaderboards, MessagingService, world state, seasons, or guilds.
last_reviewed2026-08-21
sourceshttps://create.roblox.com/docs/reference/engine/classes/OrderedDataStore, https://create.roblox.com/docs/reference/engine/classes/MessagingService, https://create.roblox.com/docs/reference/engine/classes/GlobalDataStore, https://create.roblox.com/docs/reference/engine/classes/MemoryStoreService, https://create.roblox.com/docs/reference/engine/classes/MemoryStoreQueue, https://devforum.roblox.com/t/partyservice-plus-party-matchmaking-framework/4668883

Roblox Server & Shared Data

When to Load

Load for server-level or cross-server data: leaderboards (OrderedDataStore), cross-server messaging (MessagingService), temporary queues and sorted maps (MemoryStoreService), shared world state, persistent non-player data, season/guild data. For player data (DataStore, ProfileStore, session locking), use roblox-data; for Open Cloud and external APIs, use roblox-cloud.

Quick Reference

OrderedDataStore (Leaderboards)

  • Sortable DataStore. Keys are strings; use a stable key such as tostring(UserId).
  • Values are integers used for sorting; choose the sign and ordering intentionally.
  • GetSortedAsync(ascending, pageSize, minValue, maxValue) → sorted pages
  • For leaderboards only, not player data
local D = game:GetService("DataStoreService")
local store = D:GetOrderedDataStore("LeaderboardCoins")
store:SetAsync(tostring(player.UserId), playerCoins)
local top10 = store:GetSortedAsync(false, 10):GetCurrentPage()

MessagingService (Cross-Server)

  • Real-time server communication: SubscribeAsync / PublishAsync
  • No delivery or ordering guarantee; design for idempotency.

GlobalDataStore (Shared State)

  • Persistent non-player state such as guilds, seasons, and counters.
  • Use UpdateAsync; never use it for player session data.

MemoryStoreService (Temporary Coordination)

  • Queues and sorted maps for expiring matchmaking, leases, and coordination.
  • Remove a read batch only after successful, idempotent processing.
  • Use MessagingService or TeleportData for notification and handoff.

Cross-Server Patterns

  • Register servers with expiring heartbeats; use MessagingService for notifications.

Pitfalls

  • MessagingService is fire-and-forget: no delivery guarantee, no ordering
  • GlobalDataStore has same rate limits as player DataStores; don't spam
  • OrderedDataStore keys are strings; values are integers used for sorting
  • Never store Instances; serialize to primitives first
  • UpdateAsync for any shared counter to prevent lost updates

Need more detail? Load references/full.md for the complete reference with code examples, API tables, and edge cases.

Embed badges

Add these to your README to show the skill's verification status.

SkillSafe verified badge
Verified badge
[![SkillSafe verified badge](https://api.skillsafe.ai/v1/badge/@tabooharmony/roblox-server-data/verified)](https://skillsafe.ai/skill/@tabooharmony/roblox-server-data/)
Installs badge
Installs badge
[![Installs badge](https://api.skillsafe.ai/v1/badge/@tabooharmony/roblox-server-data/installs)](https://skillsafe.ai/skill/@tabooharmony/roblox-server-data/)
Scan badge
Scan badge
[![Scan badge](https://api.skillsafe.ai/v1/badge/@tabooharmony/roblox-server-data/scan)](https://skillsafe.ai/skill/@tabooharmony/roblox-server-data/)
Eval pass rate badge
Eval pass rate
[![Eval pass rate badge](https://api.skillsafe.ai/v1/badge/@tabooharmony/roblox-server-data/eval)](https://skillsafe.ai/skill/@tabooharmony/roblox-server-data/)