Understanding the technical performance of your islands is key to ensuring a consistent and stable experience for your players. To access the technical reporting screen, sign in to the Creator Portal and select a project. All technical reporting for that project lives in the Technical screen, accessible from the left navigation bar.
Technical Screen Tabs
From the Technical screen, you can access reports on your Verse code, your in-island transaction offers, and how your island performs on players' devices and on Fortnite servers. These reports can reveal performance issues on your island and help you make improvements.
Client Tab
The Client tab displays charts that show how your island performs on players' devices.
Use the Client tab to:
Check that a new release is stable within days of publishing.
Find out which platforms your island has problems on.
Compare your crash rate to top Fortnite islands.
The Client tab has three charts that you'll learn about in the following sections:
Client Crashes
The Client crashes chart shows how often players crash while playing your island.
Crashes are split into two types:
Memory crash: The Fortnite client crashed, or the player was booted out of a game or back to the lobby because the player's device ran out of memory.
Non-memory crash: The Fortnite client crashed for any other reason.
Crash rate is the share of player sessions on your island that ended in a crash. For example, if your island had 1,000 player sessions in a day and 20 of them ended in a crash, your crash rate for that day is 2%.
For a breakdown of chart options, see the table below:
| Filter | Description |
|---|---|
| Segment by | |
All | Shows your island’s overall crash rate. |
Platforms | Splits your results by the platforms the session was played on. Non-memory crash data isn’t available for some platforms. Those platforms show 0% for non-memory crash rate, and their crash rate only counts memory crashes, so it may be lower than their actual rate. |
Crash type | Shows memory and non-memory crashes as separate lines. |
| Crash type | |
All | Shows memory and non-memory crashes together. |
Memory | Shows only memory crashes. |
Non-memory | Shows only non-memory crashes. |
| Interval | |
Daily | Shows one data point for each day. |
Hourly | Shows one data point for each hour. |
| Benchmark | |
None | Shows no benchmark line. |
Top islands | Adds a dashed line for each crash rate. See Technical Benchmarks. |
| Highlights | |
None | Shows no highlights. |
Release changes | Marks when you published a new release. |
The Crash Type option is hidden when you segment by crash type.
If your memory crash rate is high, see Memory Management.
Missed Frames
The Missed frames chart shows the share of frames that should have been drawn on players' screens but weren't. A higher number can mean choppier gameplay.
The Missed frames chart includes a Fortnite benchmark. A Fortnite benchmark is how Epic’s Fortnite islands typically perform on this metric over the same period. Use it as context for reading your island's trend.
Hitch Rate
The Hitch rate chart shows how often players experience a pause in rendering or game logic, called a hitch. This metric is measured in hitches per minute of gameplay. Hitches typically occur because too many items are spawned or updated at once.
A good hitch rate is typically below 2.5–3. To lower your hitch rate, you can reduce:
Particle effects
Mesh complexity
Texture sizes
The number of objects on screen
The number of unique assets and textures
The Hitch rate chart includes a Fortnite benchmark that you can use as context for reading your island's metrics.
Islands with streaming enabled can experience more hitches when players move around quickly.
Server Tab
The Server tab shows how much work the Fortnite server does to run your island.
When a server falls behind, every player in that match experiences it as lag or rubber-banding. Use the Server tab to:
Check whether a new release made your island harder to run.
Find busy moments (such as large organized events) that push the server too hard.
Lower your risk of memory crashes.
The Server tab has three charts that you'll learn about in the following sections:
Server metrics come from Fortnite servers running your island with at least one player connected. Time intervals with too few sessions may be omitted from the data.
Reading Server Charts
Every Server chart displays two lines:
p95: For each time interval on the chart, 95% of your island’s server samples were at or below this value. It shows how your island performs at its busiest moments.
Average: For each time interval on the chart, this value is the average of your island’s server samples. It increases when your island has busy moments, because spikes are included in the average.
If p95 is high but the average is low, your island performs well most of the time but poorly at peak load, such as a full match or a large event. If both are high, your island places a high load on the server at all times.
Changing the chart's Interval or marking Highlights can help you refine results.
Frame Time
The Frame time chart shows how long the server takes to process one frame of gameplay on your island, in milliseconds. Idle time between frames is not counted.
The chart includes a Recommended limit – 33.3 ms (30 FPS) line. Fortnite servers run at 30 frames per second, which gives each frame 33.3 milliseconds. For best results, your frame time should fall below the limit. When frame time is above the limit, the server falls behind and players can experience lag or rubber-banding.
If your frame time is above the limit, you can:
Reduce Verse code that runs every frame or loops over many devices.
Reduce the number of physics objects and devices that are always active.
Spread heavy work (such as spawning many items) across several frames instead of doing it all at once.
CPU Usage
The CPU usage chart shows how much of one CPU core the server uses to run your island. 100% usage means using one full core. Highly intensive islands can use more than one core.
The chart includes a Recommended limit – 75% of a core line. For best results, keep CPU usage below 75%. When above it, players can experience performance issues such as a dropping server frame rate. Staying under the recommended limit leaves room for busy moments on your island, such as a match or a large event.
The Average line shows your island’s typical CPU usage. Lowering your overall average can be more useful than focusing on individual usage spikes. To lower your CPU usage, use the methods outlined in Frame Time.
Memory Usage
The Memory usage chart shows how much memory the server uses to run your island, in gigabytes.
To see how your memory usage compares with top Fortnite islands, set Benchmark to Top islands. This adds two dashed lines: a p95 benchmark and an Average benchmark, each the median across top Fortnite islands for that line.
Below the benchmarks is a good result. However, memory usage has no recommended limit. Epic aims to give your island the memory it needs, but using less lowers the risk of memory crashes and makes your island more efficient for Epic to host. To lower memory usage, see Memory Management.
Verse Errors Tab
The Verse Errors tab can help you better understand your island’s performance before you publish your island with Verse Runtime Error Reports. Verse runtime error reporting provides a detailed report of runtime errors in your Verse scripts.
Runtime Error Reports
Runtime error reports are categorized based on the result of the Verse code executing and entering a state it cannot recover from (for example, an infinite loop or allocating too much memory). When your code becomes unrecoverable, it’s called a runtime error.
At the point of the runtime error, the faulty code execution is captured in the callstack, and is used to group the occurrences of runtime errors of an identical nature.
Runtime errors capture information such as:
Coding errors not caught by the compiler
Issues that would cause your island to crash
The Verse compiler currently cannot detect conditions in Verse code that would produce errors at runtime, such as integer overflows or infinite recursion. Such problematic code might appear to compile correctly at a glance, but not all problems can be caught by the compiler’s semantic analysis alone.
When your code executes at runtime, it may trigger runtime errors. When a runtime error occurs, all further Verse execution for the current device is halted. (This behavior is subject to change in the future). Other devices may continue to execute, but it is not recommended to leave your code running in this state; instead, it is recommended that you identify the issue triggering the runtime error(s) and fix them.
Refer to the Debug Your Game with Debug Draw document for more information on how to fix runtime errors.
Report Diagnostics and Details
Reports provide thorough error details so you can understand what’s going wrong in your gameplay code. For example:
Error Diagnostic: A designated code to identify the type of runtime error.
Error Description: A detailed description of what the diagnostic means.
Number of Occurrences: The total number of times an event is reported.
The report is a tool to help you identify problems with your code and fix them. From here you can search through runtime error reports and filter the Environment View to show:
All
Live
Reports include:
Timestamps to surface the most recent instance and earliest instance of a runtime error.
Playtest and Private Code view that includes a dropdown list of link codes.
Catching runtime errors before publishing gives you the chance to fix your code so players have the best experience possible on your island.
Offer Validation Errors Tab
The Offer validation errors tab shows you when in-island transaction offers fail validation at runtime. Every time a player encounters one of your offers, Fortnite validates its configuration before the player can buy it. If validation fails, the offer does not work for that player and no transaction takes place.
Validation Error Reports
Validation errors are grouped by error type, offer, and link mode, so repeated instances of the same issue appear as a single row with a count rather than thousands of separate entries.
Each row in the report includes:
Count: The total number of times the error occurred during the selected period.
Error: A designated code identifying the type of validation error, with a short description of what it means.
Offer name: The name of the affected offer, as defined in your Verse code.
Link mode: Whether the error occurred on a published island or during a playtest.
Private version code: The private version the error came from.
Island release: The release number the error came from. Playtest rows show a dash, as island releases apply only to published islands.
Latest error: The date and time the error most recently occurred.
Common validation errors include prices that fall outside the allowed range, missing or overlong translations, offers that exceed the maximum number of entitlements, and entitlements that cannot be found in the specified module.
Not every failure appears in this report. Offers rejected during moderation review are not included, and errors whose cause relates to an individual player's account are grouped into a general category rather than reported in detail.
Error Reasons
Select any row to open a detailed view of that error. The detail view lists the specific reasons behind the error, each with its own count and timestamp.
For example, a single OFFER_PRICE_INVALID row covering 100 occurrences may break down into five separate prices that each fell outside the allowed range, so you can see exactly which values to correct.
The detail view includes:
Count: The number of times this specific reason occurred.
Error reason: The full validation message, including the values that caused the failure.
Latest error: The date and time this reason most recently occurred.
Filtering and Sorting Reports
You can filter and sort reports to narrow down what you are looking at:
Sort: Newest (default) or Oldest.
Link mode: All (default), Live, or Private Code.
Error: Filter to a single error type. You can type in this field to narrow the list of options.
You can also set how many rows appear per page. The report displays up to 1,000 rows, though the counts shown are not capped.
Fixing Validation Errors
Offer configuration cannot be edited from the Creator Portal. To correct a validation error, make the change in Unreal Editor for Fortnite and publish a new release of your island.
Because a failed validation means a player could not complete a purchase, it’s worth checking this tab regularly after publishing changes to your offers.
Technical Benchmarks
The Client Crashes and Memory Usage charts can show the benchmark Top islands. This benchmark is the median across the top 1,000 Fortnite islands by engagement, in all genres.
When reading the Top islands benchmark on the Client crashes and Memory usage charts, remember the following:
Below the benchmark is better. For crashes, a lower rate means fewer player sessions ended in a crash. For memory, using less lowers the risk of memory crashes.
Genre doesn’t matter. Your island’s genre doesn’t change which islands you’re compared to. To compare your island with other islands in the same genre, see Benchmarks.
Expect movement. Benchmarks are calculated for each day or hour, so the line can move even when your own numbers have not changed.
Server Frame Time and CPU Usage do not have a benchmark. They have a fixed recommended limit because the server has budgets regardless of other islands.
Performance Best Practices
To get the most from the Client and Server tabs, follow these best practices:
Check both tabs after every release. Changes that work on one device can increase crashes on other platforms or put more load on the server.
To check whether an issue began with a release, use Highlights > Release changes to mark when you published it.
Assess data over several days. A single busy day or a Fortnite update can move your numbers.
If a chart shows poor performance but players have not reported issues, playtest your island on different platforms to see what they experience.
Download Reports
To download a report, click the Download icon in the top right corner above the chart.
For more detail on memory management and optimization, check out these Unreal Fest Sessions: