Roblox FFlags [Beta]

Hello all, I’m releasing a service to create and edit Feature Flags for your roblox games via a web interface. The design is simple, but it should be responsive and work on all phones, devices and computers.
You may not know what Feature Flags are, and if you don’t I’ll go ahead and explain them.

What are feature flags?

Feature Flags are a powerful system that allow you to modify your game’s behavior whenever you want without shutting down your game’s servers, or modifying code. This can be used to compartmentalize code that shouldn’t be run yet, e.g unfinished code, untested code or simply features you don’t want published yet.
An alternative use is to use it to remotely turn on/off settings in all servers, for example: a timed/temporary event such as “2x Currency.”

Anything you want to enable/disable will have to be published first, but it can be turned off by default and turned on afterwards, when all old servers meet their fate.

Disclaimer

This service is still in beta, while I do seperate my development and production builds there may be unknown errors that could stop the service from working. I do not recommend heavily relying on this service during this period (core game mechanics). If my web service goes down, all FFlags will return the default value (false unless configured otherwise) or the already downloaded value.

The ratelimits for receiving flags may be decreased in the future depending on my server’s load.

All feedback is helpful and heavily appreciated. If you have any features, issues, etc with my service then please tell me.

Downsides

  • Not real-time. Updates can take up to your configured refresh rate to be changed in-game.
  • Ratelimits. There’s currently a ratelimit in place that may be a bit too strict for medium to larger games (100+ servers)
  • Http Service. HttpService has gone down before, and should it happen again your FFlags will not load. There’s not much you can do about this, however the API module won’t error if HTTPService does go down, it’ll just return a default value.

I wanna use it!

If the downsides didn’t turn you away from using it then I’ll teach you!
For starters, you’ll want to head down to the website and create an account on the Register page. After creating the account, you’ll be redirected to the login page and now all you have to do is login!

You’ll now be greeted with the games page, where all your currently registered ‘games’ are. Games store all your FFlags.

Creating a game

Click “Create Game” and it’ll open up a prompt asking for your game’s name, and a short description of it. Simply fill in the details, and press “Create.”
Once created, click the “Open” button to start managing your FFlags!

Creating a FFlag

You’ve created your first game, time to create your first FFlag too. You’ll want to hit the “Create FFlag” button in the center of your screen.
Just like creating the game, you’ll want to fill in the name of the FFlag and the description, but this time you also get another value called “Enabled.” This is the value you receive in your game, it is set to false by default and can be changed afterwards.
image

Turning on a FFlag

Editing a FFlag is as simple as creating it, simply find the FFlag you’d like to edit and press the edit icon to the right of it.

After clicking the edit button, you’ll be prompted with a similar window to creating one except you can now delete the FFlag and cannot change it’s name.
You can change the description, or just it’s value.
image

Implementing into my game

Implementing the FFlags is fairly simple, but depends on your game.
You should first download the API module by clicking “Download API”

image
This button will download a new file to your computer, simply insert the file into your roblox game and require it from any script you want to use it. The authorization is automatically inserted, no manual configuration needed.
The API is extremely simple, and as of right now there’s only one function.

FFlagAPI:GetFlag("FFlagYourFlagName");

GetFlag will return a boolean, based on the value configured on the website. This value should not be saved/cached as it will not receive updates in the future.
There is additional configuration at the top of the script, which allow you to configure how GetFlag will behave. You can tell it whether or not it should yield if flags have not loaded yet, and the refresh rate.

Finally…

You should definitely read the downsides and disclaimer before using this as they have important information that may or may not affect your choice on whether to use it.

I appreciate any and all feedback, complaints, etc about this.
If you have any feature requests or issues please feel free to tell me and I’ll check it out.

I also appreciate any feedback on this post, whether I don’t explain something well or you simply need clarification.

48 Likes

This is a pretty cool resource and I like the modern interface and ease of use. For the website, I would recommend not having usernames be caps sensitive. Also, do you plan on adding a publicly accessible API for this?

2 Likes

Hey, the usernames being case sensitive was an oversight on my part, didn’t think about checking that. I’ll definitely be working on a fix for that. As for the public API, could you clarify? Do you mean like an API to create/modify/delete flags?
EDIT: The usernames have been fixed.

1 Like

I always dig your work, add a endtime feature to it though if people want a limited-timed event sort of thing.

1 Like

Nice job!
My suggestion is to allow us to have string value’s as well as booleans.

2 use cases I can think of:

  1. Announcements
  2. For an event, you’d have one flag for enabled and 1 string flag for the event title.

I originally planned to have that functionality, but ultimately decided against it because i didn’t know if there’d be much appeal. I’ll give that some consideration, thank you for the suggestion.

1 Like

No problem.
For me, if you add the string stuff, I’ll use it.

Yeah, exactly this. Also, maybe description shouldn’t be a required field.

1 Like

Thank you for the suggestion. I’ve removed the character requirement for description.
Will look into an API.

1 Like

What is this being hosted on? How reliable is it?

2 Likes

This is being hosted on my OVH VPS, as for reliability I’ve never experienced real down-time with my VPS. The reliability for the website should be fairly high as the CPU usage rarely exceeds 8%. This is still in beta though, so if an upgrade is required I will do it before a full release.

3 Likes

Hold up. This service allows you to modify Fast Flags for live games? I thought that modifying flags only takes effect in Studio. I tried reading around and couldn’t quite place my finger on what this enables flags for, but if it does for games, I’d love to use it to prototype attributes as I really need (and want) them.

Relying on both the flag management and an unfinished feature could result in unpredictable behaviours so a development branch of a game best be created in hopes of testing any features. That being said, I’d still like to access my attributes since some major updates for games I’m working on are delayed due to attributes not being enabled yet.

No, sorry for the confusion however this only allows you to set custom FFlags that you can receive in-game (and use in your code.) It does not let you modify any of Roblox’s Fast Flags, which is not possible inside of a Roblox game.

Specifically,

2 Likes

Maybe you should allow multiple users to be able to control a game’s FFlags (dev teams)

1 Like

Sorry for the necrobump, but the service is down and I was using it for my game. Will it come back up, and if so can I get an estimated date as to when?

2 Likes

Look at using this resource for fast flags.

I also have made an alternative:

1 Like

Sorry about that, the service should be back up now.

1 Like