How MYSverse delivers news in-game & beyond

Discover how MYSverse uses its innovative CMS to keep players updated with news and announcements directly in-game on Roblox and on the web. Learn about the tech that makes it all possible!

How MYSverse delivers news in-game & beyond

Ever wondered how we keep you updated with the latest happenings, events, and important announcements across all our experiences and platforms?

We know how crucial it is for you to be in the loop, whether it's about an upcoming 2XP and free trial event in Lebuhraya, a new gameplay mechanic in Bandaraya, or just some important server news. Especially with many of our community members being under 13 and not on social media, getting the word out effectively and directly has always been a top priority for us.

In the past, this often meant manual in-game updates, a time-consuming process, especially for our larger, more complex titles.

Imagine the effort to build and republish a game like Lebuhraya just for a small text change!

We knew there had to be a better way...

Introducing MYSverse CMS: your news, streamlined!

MYSverse CMS login page

To tackle this challenge head-on, we developed MYSverse CMS (Content Management System). Think of it as our central news hub! Built on the robust foundation of Payload CMS, a headless CMS, it provides us with a powerful API to manage and distribute information seamlessly.

Payload: The Next.js Headless CMS and App Framework
Built with TypeScript and React, Payload is an open-source headless CMS and application framework. Build anything.

Our CMS has dedicated sections for different types of content:

  • Media: This is where all our cool images and visuals live.
Media collection in CMS
  • News: For all the exciting updates, feature reveals, and general happenings.
News collection in CMS
  • Announcements: For critical information like server maintenance or known issues.
Announcements collection in CMS

One of the handiest features? When we upload an image for a news piece, MYSverse CMS automatically uploads it to Roblox via Open Cloud asset APIs and fetches the asset ID.

Images automatically uploaded to Roblox via Open Cloud assets API

This means our team doesn't have to do the "Roblox upload dance" separately. We just upload to our CMS, link it to a news entry, and voilà, it's ready to go live everywhere!

Editing a media asset in CMS, showing Roblox Asset ID

See it in-game: news where you are

We’ve integrated MYSverse CMS updates directly into your gameplay experience in several ways:

MYSverse News GUI

In-game MYSverse News GUI

This is your primary source for news directly within our games. It’s a sleek, toggleable interface (usually found in the top bar) that automatically pops up the first time you hit "Play" in experiences like Bandaraya or Lebuhraya. You'll see a scrolling feed of images showcasing the latest updates.

We’re already planning to enhance this! Soon, you'll be able to click on news items to get more details; a full title, a description, and even action buttons that could teleport you to a specific game or event place. Perfect for jumping right into the fun!

Crucial announcements: Lebuhraya & beyond

For really important stuff, we use the Announcements feed.

Lebuhraya main menu with scrolling announcement bar
  • In Lebuhraya's main menu, you’ll notice a blue scrolling bar at the bottom; that’s our CMS in action, delivering timely info.
In-game chat announcement
  • These announcements also appear directly in the chat window.
    • This ensures vital messages, like upcoming server restarts for updates, are highly visible.
    • This way, you can plan your roleplay sessions accordingly with minimal disruption.
    • We also use this to let you know about known issues we're working on, so you're reassured that we're on the case!

Event countdowns & celebrations!

In-game event countdown billboard for Hari Raya Haji

Remember those awesome in-game billboards counting down to special events? That’s also powered by MYSverse CMS! We can set up a target date, a cool background image, and a specific event image.

Event Countdown setup in CMS

This is how we get everyone excited for festive events and public holidays in Malaysia. And as a special touch, for certain celebrations, we even automatically trigger fireworks in experiences like Lebuhraya where the billboard is present.

It’s all about bringing the community together to celebrate!

Beyond the game: news on the web

MYSverse News on the MYSverse website

The same information doesn't just stay in-game. Using the very same API, we render all this news on our main MYSverse website.

MYSverse
The original Malaysian metaverse project and roleplay community. Your gateway into our unique brand of fun, culture and education like no other.

You'll find it presented in an elegant, stacked card format, ensuring you get the exact same updates whether you're exploring our virtual worlds or browsing the web.

The tech behind the magic: how we made it scalable

Chart illustrating flow of data and services involved in MYSverse News/CMS

Building this system was a fantastic learning experience, and we encountered some interesting technical puzzles along the way!

Initially, exposing the CMS API endpoint directly from the serverless platforms where it's hosted (like Vercel or Netlify) could lead to significant costs, especially with many game servers potentially requesting data frequently.

To create a more cost-effective and scalable solution, we implemented a clever workaround:

  • Cloudflare Workers & KV storage
    • Whenever news or announcement data is updated in our CMS, we automatically push this data to Cloudflare Workers.
    • It's then stored and served from Cloudflare's KV (Key-Value) storage.
    • This is much more scalable and budget-friendly, especially when handling numerous concurrent requests from all our game servers.

But we didn't stop there! To further minimise HTTP requests and reduce load:

  • Roblox-side caching (MemoryStore & DataStores)
    • We've built a local caching system right within Roblox itself.
  • Locking with MemoryStore
    • When game servers need fresh data, one server uses MemoryStore to obtain a "lock."
    • This means only that one server is designated to fetch the data from our Cloudflare endpoint.
  • Fetching & storing
    • Once the lock is obtained, this server requests the latest CMS data.
    • If this data is newer than what's currently cached (we check timestamps!), it saves the fresh data to a DataStore.
  • Spreading the word with MessagingService
    • The server then uses MessagingService to notify all other game servers that new data is available.
    • These other servers can then pull the updated information directly from the DataStore, rather than all of them hitting our external API.
    • This dramatically reduces external HTTP calls and stays well within Roblox's HttpService limits.

We believe this multi-layered approach to content delivery is quite an innovative step, not just for our genre but for the Roblox platform as a whole. It allows us to efficiently manage and distribute content at scale, ensuring reliability and speed.

The best part? The source code (both web and Roblox client) is available publicly for everyone to refer, implement, and contribute! As avid users of open-source software, this is our way of giving back and helping Roblox communities keep their members updated.

GitHub - mysverse/cms: Content Management System for MYSverse - built with Payload CMS
Content Management System for MYSverse - built with Payload CMS - mysverse/cms
Creator Hub - Store
Discover millions of assets made by the Roblox community to accelerate any creation task.

RobustNewsService Roblox server script

Keeping you confidently connected

MYSverse New Year 2025 countdown in Bandaraya

Ultimately, MYSverse CMS and its delivery pipelines are all about you: our players and community.

Our goal is to ensure you always feel informed, confident, and never like you're missing out on what’s happening in MYSverse. It's a scalable, convenient, and, we hope you agree, elegant solution to keep everyone in the loop, whether you're deep in a roleplay session in Lebuhraya or just checking our website for the latest news.

Thanks for being part of our journey as we continue to build and innovate for the MYSverse community!