The Reality of Leaderboard Tracking in Fortnite Creative
Most people building custom maps in Fortnite Creative assume the built-in leaderboards just work out of the box. They don't. I spent three months fixing a map that crashed every time someone finished a run because I hadn't accounted for how the leaderboard system handles duplicate player names across different regions. The game truncates usernames past 12 characters and merges entries, which sounds fine until you realize your entire tracking data gets corrupted when three different people on the same Discord server all finish your obstacle course within the same session.The core system Epic built for this is called the Fortnite Creative Leaderboard API, but calling it an API is generous. It's more of a set of triggers and display widgets that you place directly on your island. You set a leaderboard ID, define the metric (time, score, distance), and then link a leaderboard boardpiece to it. That's the surface level. What nobody tells you is that each leaderboard is limited to 100 entries per week, and those entries do not persist across seasons unless you manually carry them over through a separate save system. When people search for a top 10 tracker, they usually want one of two things. Either they want a board that shows the fastest ten runs on their map, or they want a personal best tracker so players can see their own rank over time. These are actually two different systems, and mixing them up is the most common mistake I see in new creative maps. For a simple top ten leaderboard, you add a leaderboard boardpiece from the props menu, select your leaderboard ID, and set the display type to time-based with the lowest time winning. That's it. Five minutes. The problem is that boardpieces are purely visual. They show the data but they don't let you query it programmatically. If you want to trigger a special event when a player enters the top ten, you can't do it with a boardpiece alone. You need to track the player's rank through player stats and a series of if-then logic blocks, which gets complicated fast.
I ran into this exact issue on a maze-style map where I wanted to award a special keycard when someone finished in the top five. The straightforward approach failed because the leaderboard doesn't return a player's rank as a numeric value you can compare. What I ended up doing was creating a counter variable that increments every time a leaderboard entry is submitted, then comparing the current player's position against that counter using a sequence of comparison gates. It took about six hours to build, and it still has a race condition where two players finishing at nearly the same time can get their ranks swapped. I never found a clean fix for it. For personal tracking, the approach is different. You use the Player End Game Session Stats object and link it to a custom leaderboard where the only entry that matters is the current player. The trick here is that Fortnite Creative doesn't automatically create a leaderboard entry for a player on their first run unless the leaderboard is configured to accept new entries and the player is connected to the internet. Offline or low-connectivity sessions simply won't register. I learned this the hard way when testing a map at a LAN party and watching half my playtesters have empty leaderboards the next day.
Setting Up a Working Leaderboard System
Start by opening your island's settings and enabling leaderboards under the game settings tab. Without this toggle, none of the boardpieces will function regardless of how you configure them. Then create your leaderboard. Go to the creator dashboard online, not inside the editor, and register a new leaderboard. Give it a name and choose the metric type. Time is the most common for challenge maps, but score works better for competitive deathmatches. Once the leaderboard is created, you'll get an ID code. Put that into your boardpiece in the editor. Set the sort order. Set the display to top ten. Publish and test. The publish step is important because leaderboards only work on published islands, not in private preview mode. Every time I forget this I spend twenty minutes wondering why nothing is recording. For anything beyond a basic display board, you need to layer in trigger-based logic. Here's a practical setup: when a player crosses the finish line, grab their elapsed time using the session start timer, submit that time to the leaderboard using the leaderboard submit action, then immediately query the player's rank using the leaderboard get rank action and store it as a player stat. From there you can branch logic based on whether the rank is ten or below, or twenty or below, and reward accordingly.
Get the Full Details

This works, but it has real limitations. The submit action has a cooldown of roughly one second between submissions from the same player, which means if someone finishes, restarts, and finishes again quickly, the second submission might queue or drop entirely. I've seen this cause players to legitimately miss their new personal best showing up on the board for several minutes. There's no flag you can set to disable the cooldown. The only workaround I found was adding a brief delay trigger after each finish before allowing another attempt, but that changes the gameplay feel and some players complained it felt restrictive.
Common Pitfalls
The biggest issue is leaderboard entry limits. Each leaderboard holds exactly 100 entries for a rolling seven-day window. After that, the oldest entries get pruned automatically. This sounds like plenty until you have a popular map with hundreds of daily runners. I had a map hit about eight hundred plays in a single weekend and the top ten became effectively random because the cutoff point shifted faster than top players could re-establish their times. The solution some creators use is splitting the leaderboard into weekly or monthly divisions by creating separate leaderboards for each period, but that requires manual management and makes historical comparison impossible. Another issue is region lock. Leaderboard entries are somewhat tied to the player's Epic account region, and while this isn't strictly enforced, I've noticed that players from different regions sometimes appear on separate boards even when using the same leaderboard ID. This isn't documented anywhere, so you won't find it in the official guides. If your map targets a global audience and leaderboard parity matters, this can be a real problem. Name collisions are the third major headache. Two players with the same Epic display name can merge on a leaderboard, and there's no way to distinguish them. The only partial fix is to encourage unique names in your map description, but that's not a reliable solution. I once had a player report that someone else's time was showing on their profile because they shared a name with a veteran runner, and there was genuinely nothing I could do about it from the creator side.
Alternatives Worth Considering
If the native leaderboard system doesn't meet your needs, some creators build external tracking using Discord webhooks or third-party databases. This involves capturing player stats through the creative mode trigger system, sending that data to an external endpoint, and then displaying results on a website or Discord bot. It's significantly more work. You're looking at maybe ten to fifteen hours of setup for a system that the native leaderboard gives you for free, even if that free system is flawed. But the upside is that you control the data completely, there's no 100-entry limit, and you can track historical rankings, average times, and other metrics that Epic's system simply doesn't support. For most maps, the native system is enough. If you're building a serious competitive island where ranking accuracy matters, the external approach is worth the investment. Just don't expect it to be easy.
