<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 100days</title>
    <description>The latest articles on DEV Community by 100days (@atsea).</description>
    <link>https://dev.to/atsea</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4082337%2F4dcf919c-3f71-4c01-9672-eff17945dd11.png</url>
      <title>DEV Community: 100days</title>
      <link>https://dev.to/atsea</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/atsea"/>
    <language>en</language>
    <item>
      <title>How we built a Roblox wiki that refuses to publish fake codes</title>
      <dc:creator>100days</dc:creator>
      <pubDate>Tue, 18 Aug 2026 12:08:30 +0000</pubDate>
      <link>https://dev.to/atsea/how-we-built-a-roblox-wiki-that-refuses-to-publish-fake-codes-4mja</link>
      <guid>https://dev.to/atsea/how-we-built-a-roblox-wiki-that-refuses-to-publish-fake-codes-4mja</guid>
      <description>&lt;p&gt;Most Roblox “wikis” are the same page with a different domain: a copied code list, a fake tier list, and recipe numbers nobody checked in-game.&lt;/p&gt;

&lt;p&gt;That pattern ranks for a week. Then players waste time on dead codes, bounce, and teach Google that the site is another thin clone.&lt;/p&gt;

&lt;p&gt;I wanted the opposite for 100 Days At Sea — a Roblox survival game with 250M+ visits where you build a raft, pick a class, and try to reach Day 100. The wiki should read like a guidebook, not a keyword farm.&lt;/p&gt;

&lt;p&gt;The shipping rule was simple: if we cannot show the source, we do not publish the claim as fact.&lt;/p&gt;

&lt;p&gt;The product problem is a content problem&lt;br&gt;
People landing from search usually want one of five things:&lt;/p&gt;

&lt;p&gt;Working codes&lt;br&gt;
Which class to buy with Pearls&lt;br&gt;
How not to die on Day 1&lt;br&gt;
What a badge actually unlocks&lt;br&gt;
A Discord / Trello invite that is not a scam&lt;br&gt;
Those jobs collide. A codes page that invents values will get clicks. It will also train users to distrust every other page.&lt;/p&gt;

&lt;p&gt;So the information architecture is built around source strength, not page count.&lt;/p&gt;

&lt;p&gt;Claim type  Publish as fact?    What we show instead&lt;br&gt;
Official Roblox page / group&lt;br&gt;
Yes, high-level&lt;br&gt;
Game framing, creator context&lt;br&gt;
Public Roblox Badge API&lt;br&gt;
Yes, as public data&lt;br&gt;
Name, icon, description, award count&lt;br&gt;
Player-reported class row&lt;br&gt;
As reported&lt;br&gt;
Cost / starter / role, marked unverified&lt;br&gt;
Copied code list&lt;br&gt;
No&lt;br&gt;
Status table + why it was rejected&lt;br&gt;
Exact recipes, coordinates, DPS&lt;br&gt;
No&lt;br&gt;
“Needs an in-game screenshot”&lt;br&gt;
The last row is the hard one. Empty-feeling pages rank worse in the short term. Invented numbers get a click and then a bounce. We chose the bounce we can live with.&lt;/p&gt;

&lt;p&gt;Codes: a registry, not a list&lt;br&gt;
The &lt;a href="https://www.100daysatsea.com/codes" rel="noopener noreferrer"&gt;codes page&lt;/a&gt; is the clearest example.&lt;/p&gt;

&lt;p&gt;As of mid-August 2026, the working list is empty. Other sites still show CORRUPT, HERO, CHAOS, POTION, or invented strings like SEAADVENTURE. We keep those in a “not accepted yet” table with a reason:&lt;/p&gt;

&lt;p&gt;past reported window&lt;br&gt;
source conflict&lt;br&gt;
no official publication&lt;br&gt;
no recorded in-game reward&lt;br&gt;
A code only moves into “working” after one of two things happens:&lt;/p&gt;

&lt;p&gt;an official source publishes the exact value, or&lt;br&gt;
an in-game redeem produces a recorded reward&lt;br&gt;
That is slower than scraping five aggregator pages. It is also the only version of a codes page that stays true after the code expires.&lt;/p&gt;

&lt;p&gt;If you maintain any community docs site, this is the reusable pattern: publish the rejected claims. Hiding them makes users think you missed the “real” list. Showing them with a status is the product.&lt;/p&gt;

&lt;p&gt;working          = official value OR recorded reward&lt;br&gt;
not accepted yet = copied / expired / conflicting / unproven&lt;br&gt;
historical lead  = the official page once mentioned “codes”&lt;br&gt;
                   but never published a usable string&lt;br&gt;
POTION is a good example. A community post gave it a use-before date of August 7. That date passed, the official Roblox page never published the value, and we never recorded a successful reward. It stays in the past-claims table so a player does not mistake an old screenshot for a current code.&lt;/p&gt;

&lt;p&gt;Badges as a public API, not a walkthrough&lt;br&gt;
Roblox exposes public badge data. For this game that is currently 61 badges — names, icons, descriptions, award counts.&lt;/p&gt;

&lt;p&gt;That data is useful, and dangerous if you over-read it.&lt;/p&gt;

&lt;p&gt;Just Getting Started tells you Day 1 is a real checkpoint.&lt;br&gt;
Cooking With Golems tells you the Volcano unlock involves tossing in three golems.&lt;br&gt;
There Can Be Only One tells you three rival rigs can be beaten in one session.&lt;br&gt;
Rescued! tells you Day 100 is a real end state.&lt;br&gt;
None of those badges give coordinates, attack patterns, or drop tables. So we treat badges as milestone clues, then write the route as a lead until someone captures the UI.&lt;/p&gt;

&lt;p&gt;The same rule applies to Ice Biome, UFO / Mothership, and the Corruption Dungeon. The badge proves the objective exists. It does not prove the YouTube comment that claims the exact path.&lt;/p&gt;

&lt;p&gt;A docs site can do the same thing with any public platform API: use it as the spine, then hang unverified rows off that spine. Do not let the API write strategy it cannot support.&lt;/p&gt;

&lt;p&gt;Classes without a fake S-tier&lt;br&gt;
Players want a tier list. We track 23 reported class rows — Sailor, Survivor, Medic, Crewmate, and the rest — with Pearl costs and starter tools.&lt;/p&gt;

&lt;p&gt;We still do not rank them.&lt;/p&gt;

&lt;p&gt;A “best class” article is easy to write and almost always wrong after the next patch. What we publish instead:&lt;/p&gt;

&lt;p&gt;reported cost&lt;br&gt;
reported starter item&lt;br&gt;
a role label (starter / support / combat / utility)&lt;br&gt;
a one-line “what to check in the class menu”&lt;br&gt;
Survivor is enough to show the difference. Players report 50 Pearls, Chowder as a starter, and a sustain kit (regen, oxygen, hunger). That is enough to tell a new player: check this if you keep dying to hunger. It is not enough to say “pick Survivor.”&lt;/p&gt;

&lt;p&gt;If you maintain game docs, delay the ranking page until you have a repeatable test. Rankings are content. Tests are documentation.&lt;/p&gt;

&lt;p&gt;The first-session route is the real homepage&lt;br&gt;
Search traffic wants codes. New players need a raft that does not fall apart.&lt;/p&gt;

&lt;p&gt;The useful first session is boring on purpose: gather floating resources, learn the harpoon loop, stabilize the raft, add defenses, then explore. Class shopping and code hunting come after the survival loop makes sense.&lt;/p&gt;

&lt;p&gt;We also refuse exact material counts until the build UI is captured. “Stabilize the base before long trips” is useful tomorrow. “You need 17 planks” is a guess wearing a number.&lt;/p&gt;

&lt;p&gt;This is the same discipline as writing API docs: describe the call you can see, not the payload you wish existed.&lt;/p&gt;

&lt;p&gt;Safety is part of the docs, not a footer&lt;br&gt;
Roblox code pages attract a second traffic type: people looking for executors, “free Robux,” and fake Discord invites.&lt;/p&gt;

&lt;p&gt;Official links on the wiki only come from the Roblox experience page or the developer-owned group. Discord and Trello stay “not confirmed” until they appear on an official public surface.&lt;/p&gt;

&lt;p&gt;The codes page is equally blunt:&lt;/p&gt;

&lt;p&gt;no scripts&lt;br&gt;
no browser extensions&lt;br&gt;
no third-party login forms&lt;br&gt;
YouTube comments are leads, not sources&lt;br&gt;
If your docs site touches accounts, this is not optional legal text. It is the difference between a guide and a phishing funnel.&lt;/p&gt;

&lt;p&gt;What I would reuse on any docs site&lt;br&gt;
Separate source types in the data model. Official, API, player report, video lead, copied claim. Do not flatten them into “content.”&lt;br&gt;
Publish negative results. “No working codes” is an answer. An empty heading is not.&lt;br&gt;
Use public platform data as the spine. Badges, game stats, official descriptions. Hang unverified rows off that spine.&lt;br&gt;
Delay rankings. Role notes beat S/A/B lists until you can re-run the test.&lt;br&gt;
Keep the first-session path honest. Users forgive missing numbers. They do not forgive invented ones.&lt;br&gt;
The live wiki is here: &lt;a href="https://www.100daysatsea.com/" rel="noopener noreferrer"&gt;100daysatsea.com&lt;/a&gt;. It is fan-made and not affiliated with Roblox or Stranded Devs. If a claim on the site is still a lead, that is intentional — we would rather show the gap than fill it with a number that looks finished.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>roblox</category>
      <category>documentation</category>
    </item>
  </channel>
</rss>
