Roblox GuidebookKnowledge base
English ⌄

Development / ROBLOX

A Roblox achievement badge: define the goal and review server fulfillment

Plan one badge for a practice course: a precise condition, the correct game, server awarding and ownership review. Separate an interface message, API execution and a confirmed result.

Updated:

Describe the achievement first #

Choose a small goal explained in one sentence: complete the practice course and reach its finish. Record required stages and the server state that confirms completion. The badge should represent that achievement, not contact with any similar-looking part.

Our example plans a separate practice project. No badge was created, ID obtained or award granted, and your games' code was not changed. This article prepares implementation work; it is not an already tested BadgeService script.

Align the name, description and condition #

The name states what happened; the description explains how to earn the award. Compare both with the course rule. If the whole route is required, do not say that joining is enough. Clarify an undefined mechanic before writing its achievement card.

Record additional effects separately. Coins, an item or a new area do not appear because of a badge name; each needs its own implementation. Our practice plan covers only the completion badge, not Robux, avatar items or an additional player privilege.

Prepare the object without accidental costs #

Creator Dashboard badge tools belong to the selected game. Documentation describes creation through the game's menu and subsequent management under Engagement → Badges. Before creating anything, confirm the game and current quota: additional badges can cost Robux.

Article preparation requires no actual object. Fill in a specification with an empty badgeId field and the goal. Do not use another creator's ID or an invented working number. When an object is later created as a separate task, match its page, ID and game with the specification.

Review the icon and availability #

Documentation recommends a 512×512 source image and accounts for circular cropping. In our plan, the meaningful symbol stays inside the circle and the long name stays outside the artwork. Review recognition at a small size, not only on the full image.

A badge has an enabled state. Disabled badges do not appear in the game page's badge section and cannot be earned. Making artwork and creating a badge are separate tasks; an attractive icon does not confirm availability or the server-side condition.

Connect the goal to server logic #

Documentation describes awarding through AwardBadgeAsync from a server Script. Before calling it, our future logic must determine whether this player completed this course. A client message saying “I finished” or a visual animation does not replace a gameplay-state check.

Record where progress is stored and how the valid finish is determined. List rejected cases: required starting stages incomplete, a finish belonging to another route or an achievement already confirmed. These are proposed implementation requirements, not results of tests we performed.

Achievement and confirmationOpen full-size image ↗
Original achievement-review diagram, not working awarding logic.

Separate information, awarding and ownership #

GetBadgeInfoAsync retrieves badge information including IsEnabled. AwardBadgeAsync awards a badge, while UserHasBadgeAsync checks ownership of a specific badge. These calls answer different questions and should not collapse into one observation that everything works.

Use separate review results: correct badge selected, availability checked, condition met, award call finished and ownership checked. Keep the test account and badgeId in a private test record. The public article needs no real player data.

Review more than protected-call success #

The API lists a boolean result for AwardBadgeAsync and UserHasBadgeAsync. A protected call separately reports whether an exception occurred and the value returned by the called function. No exception therefore must not automatically be labeled successful awarding.

Likewise, an ownership-check error leaves the result unknown rather than establishing absence. Our proposed log keeps both result layers and the next decision. Do not confidently display “earned” when you observed only a function invocation or button press.

Include repeat and unavailable states #

The plan includes repeated finish contact, an already owned badge, a disabled object, an incorrect ID and failed information retrieval. Define what is known and what the interface may honestly report in each case. Do not convert every error into a new award.

Consider a later join separately. Badge ownership and your course's progress are different states; confirming one does not establish the entire profile. If another gameplay benefit is needed, review its application and persistence with a separate scenario.

Run a bounded test and record observations #

Use a separate practice project and a predefined goal. Review behavior before the finish, correct completion and replay. The table below gives expected questions, not a report of real awarding. Do not test other people's games or accounts.

Record the step, initial state, API result and ownership result. After changing a condition, repeat the scenario that revealed the problem. A mocked call, a conceptual diagram and an actual Studio review provide different evidence; label the level explicitly.

ScenarioCheck
Before finishIs the condition still unconfirmed?
Valid finishWhat confirms completion?
ReplayAre ownership and repeated signal separate?
API errorIs unknown not labeled success?

Hand off the specification #

The specification contains the goal, description, selected game, future badgeId, availability, server condition and review matrix. Separately list unfinished implementation and observations needed before launch. This makes the task understandable to the next chat.

One practice achievement's readiness does not establish correctness of every game reward. We performed no creation, payment or grant here. The useful result is a reviewable rule and evidence plan for a developer to implement and test in an agreed environment.

Achievement specificationOpen full-size image ↗
Original specification. Fill the real ID and observations during a separate implementation.
FieldRecord
GoalExact action in the description
ObjectCorrect game, ID and availability
LogicServer condition and replay
EvidenceTest type and observed result

Original sources

Roblox Creator Hub — Badges
Roblox Creator Hub — BadgeService API