Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/DEVELOPER/certification-overview/cert-tests/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ The number of ads in the ad break are displayed during the ad break using the st

**Tests**: App is meeting the criteria specified in 1.3.

**Expected Result**: App is meeting the contactually-specified terms for ad requests and performance. You can review your contract with [publisheradservices@roku.com](mailto:publisheradservices@roku.com?Subject=New%20application%20Request%20for%20Admittance%20to%20Roku%20Ad%20Revenue%20Share) to ensure the app is meeting the specified terms.
**Expected Result**: App is meeting the contractually-specified terms for ad requests and performance. You can review your contract with [publisheradservices@roku.com](mailto:publisheradservices@roku.com?Subject=New%20application%20Request%20for%20Admittance%20to%20Roku%20Ad%20Revenue%20Share) to ensure the app is meeting the specified terms.

**ADS 1.3** Apps selling ads must comply with Roku's ad load, ad frequency, and acceptable ad requirements. See [Roku Advertising Guidelines](http://www.roku.com/adguidelines) for more information.

Expand Down Expand Up @@ -161,7 +161,7 @@ Apps outside the U.S. Roku Streaming Store that have streamed more than an avera

**Tests**: Verify ads in the app cannot be skipped by any mechanism, such as pressing the FF/REW buttons or sending a FF/REW voice command.

**Expected Result**: Ads may not be skipped by pressing the FF/REW buttons, sending a FF/REW voice command, or any other mechansim.
**Expected Result**: Ads may not be skipped by pressing the FF/REW buttons, sending a FF/REW voice command, or any other mechanism.

## **2. Accounts and purchases**

Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/core-concepts/downloading-server-content.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ configuration of the node.

For many nodes that require more complex data, a `content` field is
provided. This special field is designed to be assigned the value of a
Content node node that you configure to contain the data required for
Content node that you configure to contain the data required for
the node.

## Configuring a content node for static content
Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/core-concepts/event-loops.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ Notice that the first parameter of wait has been changed so that it returns afte

## Types of messages

Different Brightscript components generate different types of messages. For example, the component "roSpringboardScreen" sends event messages of type "roSpringboardScreenEvent". In general, a Brightscript function dealing with a specific component should only react to events generated by that component. For example, as in the example above, code that deals with events generated by an roSpringboardScreen should be inside an if statement like this:
Different BrightScript components generate different types of messages. For example, the component "roSpringboardScreen" sends event messages of type "roSpringboardScreenEvent". In general, a BrightScript function dealing with a specific component should only react to events generated by that component. For example, as in the example above, code that deals with events generated by an roSpringboardScreen should be inside an if statement like this:

```brightscript
if type(message) = "roSpringboardScreenEvent"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ c1(): v2
init(): v2
```

The `rsg_version` entry in your the manifest file defaults to 1.2. To check and test different SceneGraph versions without refactoring your app, see the guide on [Debugging](doc:debugging)
The `rsg_version` entry in the manifest file defaults to 1.2. To check and test different SceneGraph versions without refactoring your app, see the guide on [Debugging](doc:debugging)

> Support for the [“rsg_version=1.0"](doc:channel-manifest) manifest flag is deprecated as of [Roku OS 8](doc:release-notes#roku-os-8). This deprecation means that the 1.0 features continue to work in [Roku OS 8](doc:release-notes#roku-os-8), but will no longer be supported (and thus should not be expected to work) starting with the next major firmware release. All apps must adopt the [current observer callback](doc:handling-application-events) model in successive firmware updates.

Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/core-concepts/localization.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ follows:
`pkg:/locale/default/images/image_name_default`


In Brightscript in a \<script\> element, you can also use the getLocalizedAsset() method in [ifLocalization](doc:iflocalization) to get a localized
In BrightScript in a \<script\> element, you can also use the getLocalizedAsset() method in [ifLocalization](doc:iflocalization) to get a localized
graphical image.

For example:
Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/core-concepts/threads.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ SceneGraph applications support these basic thread types:

## Thread limits

RokuOS imposes a limit of 100 concurrent threads per running instance of an app. When the instance exceeds 100 threads, a “too many threads” error exception (&h29) is raised; if the app does not catch this exception, app operation is terminated, along with a corresponding stack trace
Roku OS imposes a limit of 100 concurrent threads per running instance of an app. When the instance exceeds 100 threads, a “too many threads” error exception (&h29) is raised; if the app does not catch this exception, app operation is terminated, along with a corresponding stack trace

In practice, developers should minimize the number of concurrent threads for better app performance.

Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/core-concepts/xml-components/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ next:
An XML-based markup language has been added to the SceneGraph API that
allows new SceneGraph components to be defined consisting of a set of
SceneGraph nodes loaded from a declarative description, with interactive
or animated behaviors added using Brightscript, similar to how HTML and
or animated behaviors added using BrightScript, similar to how HTML and
Javascript are used in web development.

Once a XML component has been defined, it can be used just like any of
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,12 @@ Another easy way to capture SSL packets using Mac OS is through the wireless dia

All you need is:

- The wireless channel of your Wifi connection, and
- The wireless channel of your Wi-Fi connection, and
- The app width (20MHz, 40MHz, 80MHz).

These settings can be set in the Web GUI of your router. If this is not possible through the Web GUI of your router, find the default channel setting of your Wifi or install a different firmware on your router that can change this.
These settings can be set in the Web GUI of your router. If this is not possible through the Web GUI of your router, find the default channel setting of your Wi-Fi or install a different firmware on your router that can change this.

1. Setup your Wifi connection and open the Wireless Diagnostics tool (Pre-installed on later versions of Mac OS).
1. Setup your Wi-Fi connection and open the Wireless Diagnostics tool (Pre-installed on later versions of Mac OS).
2. In the top bar, find the field labeled **window** and choose the **Sniffer tool**.
3. In the window for the sniffer tool:
- Set the **Channel** to the corresponding Roku’s wireless channel (Same channel as one displayed on router Web GUI) and,
Expand Down
4 changes: 2 additions & 2 deletions docs/DEVELOPER/debugging/socket-based-debugger.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,13 @@ struct HandshakeFromDVP {
<tr>
<td class="short-line">magic_number</td>
<td class="short-line">uint64</td>
<td class="long-line">The Roku Brightscript debug protocol identifier, which is the following 64-bit value :<code>0x0067756265647362LU</code>. <br /><br />This is equal to <code>29120988069524322LU</code> or the following little-endian value: <code>b'bsdebug\0</code>.</td>
<td class="long-line">The Roku BrightScript debug protocol identifier, which is the following 64-bit value :<code>0x0067756265647362LU</code>. <br /><br />This is equal to <code>29120988069524322LU</code> or the following little-endian value: <code>b'bsdebug\0</code>.</td>
</tr>
<tr>
<td class="long-line">protocol_major_version<br />protocol_minor_version<br />protocol_patch_version</td>
<td class="short-line">uint32</td>
<td class="long-line">
Each Roku OS release supports only a single version of the Roku Brightscript debug protocol:
Each Roku OS release supports only a single version of the Roku BrightScript debug protocol:
<br />
<div class="hscroll">
<table>
Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/dev-tools/external-control-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ The external control services provided by ECP are included in a simple RESTful A
</tbody>
</table>
</div></td><td class="long-line">Developer mode enabled<br /><br /><strong>Control by mobile apps</strong> setting "Enabled"</td></tr>
<tr><td class="long-line">query/app-object-counts/&lt;<em>channelId</em>&gt;<br /><br /><em>Available since <a href="https://developer.roku.com/dev/docs/release-notes#roku-os-130">Roku OS 13.0</a></em></td><td class="long-line">Returns the counts for the different BrightScript node objects in the app. This helps developers determine the counts of each type of object held by their Brightscript app.<br /><br />The app may either be a sideloaded app or an app from the Streaming Store. To output the results for an app in the app store, the device must be keyed with the same developer ID/key that was used to generate the package file.</td><td class="long-line">Developer mode enabled<br /><br /><strong>Control by mobile apps</strong> setting "Enabled"</td></tr>
<tr><td class="long-line">query/app-object-counts/&lt;<em>channelId</em>&gt;<br /><br /><em>Available since <a href="https://developer.roku.com/dev/docs/release-notes#roku-os-130">Roku OS 13.0</a></em></td><td class="long-line">Returns the counts for the different BrightScript node objects in the app. This helps developers determine the counts of each type of object held by their BrightScript app.<br /><br />The app may either be a sideloaded app or an app from the Streaming Store. To output the results for an app in the app store, the device must be keyed with the same developer ID/key that was used to generate the package file.</td><td class="long-line">Developer mode enabled<br /><br /><strong>Control by mobile apps</strong> setting "Enabled"</td></tr>
<tr><td class="long-line">query/app-state/&lt;<em>appId</em>&gt;<br /><br /><em>Available since <a href="https://developer.roku.com/dev/docs/release-notes#roku-os-130">Roku OS 13.0</a></em></td><td class="long-line">Returns the current app state: "active", "background" (suspended; running in the background), or "inactive". <br /><br />The app may either be a sideloaded app or an app from the Streaming Store. To output the results for an app in the app store, the device must be keyed with the same developer ID/key that was used to generate the package file.<br /><br />If the app is not installed, this command returns an error.</td><td class="long-line">Developer mode enabled<br /><br /><strong>Control by mobile apps</strong> setting "Enabled"</td></tr>
<tr><td class="long-line">exit-app/&lt;<em>channelId</em>&gt;[true]<br /><br />(POST request)<br /><br /><em>Available since <a href="https://developer.roku.com/dev/docs/release-notes#roku-os-130">Roku OS 13.0</a></em></td><td class="long-line">Suspends or terminates an app that is running: <br /><ul><li>If the app does not support Instant Resume and is running, sending this command terminates the app.</li><li>If the app supports Instant Resume and is running, sending this command suspends the app (the app runs in the background).</li><li>If the app supports Instant Resume and is running, sending this command with the optional <code>true</code> parameter terminates the app (the app does not run in the background).</li></ul></td><td class="long-line">Developer mode enabled<br /><br /><strong>Control by mobile apps</strong> setting "Enabled"</td></tr>
<tr><td class="short-line">input</td><td class="long-line">Sends custom events to the current application. It takes a user defined list of name-value pairs sent as query string URI parameters. The external control server places these name-value pairs into an associative array, and passes them directly through to the currently executing app script using a Message Port attached to a created roInput object.<br /><br />Input Command Conventions includes detailed recommendations on how to pass your data.<br /><br />Messages of type <a href="https://developer.roku.com/dev/docs/roinputevent">roInputEvent</a> have a GetInfo() method that will obtain the associative array. The arguments must be URL-encoded. <br /><br />This command is sent using an HTTP POST with no body. Example: <code>POST /input?acceleration.x=0.0&acceleration.y=0.0&acceleration.z=9.8</code></td><td class="short-line" /></tr>
Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/dev-tools/ide-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ next:

## Key features

Building apps require several items to work together in unison:
Building apps requires several items to work together in unison:

* A Roku device
* Your app code
Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/dev-tools/rale-tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Dragging and resizing the node in the GUI will correspond with your Roku app on

## Release notes

**2.1.7**: RALE version 2.1.7 includes the following new features that that help developers work with designers to implement app layouts:
**2.1.7**: RALE version 2.1.7 includes the following new features that help developers work with designers to implement app layouts:

- **Overlays**: Upload a wireframe and then place components on top of a transparent overlay to quickly and accurately match the layout design.
- **Guides**: Drag vertical and horizontal guides onto your app to organize components into columns and rows and ensure text, images, and other nodes are aligned on the page per the wireframe.
Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/dev-tools/resource-monitor/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ Each of the values listed in the graph is described as follows:
</tr>
<tr>
<td>Swap</td>
<td>The total amount of app process memory swapped out to 'disk' (RokuOS uses ZRAM 'disk'). This value varies for different Roku device models.</td>
<td>The total amount of app process memory swapped out to 'disk' (Roku OS uses ZRAM 'disk'). This value varies for different Roku device models.</td>
</tr>
<tr>
<td>Anonymous</td>
Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/dev-tools/sgdex.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ metadata:
next:
description: ''
---
Scene Graph Developer Extensions (SGDEX) is a collection of developer sample code that demonstrates how a developer can use pre-built, reusable Roku Scene Graph (RSG) components to enable rapid development of apps that follow a consistent UX paradigm.
SceneGraph Developer Extensions (SGDEX) is a collection of developer sample code that demonstrates how a developer can use pre-built, reusable Roku SceneGraph (RSG) components to enable rapid development of apps that follow a consistent UX paradigm.

For more information on using SGDEX, click [here](https://github.com/rokudev/SceneGraphDeveloperExtensions#overview)
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ This utility supports Windows, Mac and Linux and requires Java to be installed i

## Structure of the utility

The static analysis utility is distributed as a ZIP file. The contents of the ZIP as as follows:
The static analysis utility is distributed as a ZIP file. The contents of the ZIP are as follows:

```brightscript
.
Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/discovery/continue-watching-cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ As of Apr 1, 2026, the Continue Watching integration supports 24/7 live linear s

* **Events**: A live linear stream requires a single playback event that is sent via a POST request after 60 seconds of playback. Do not make any other API calls to send events.
* **ContentId**: The contentId is the ID of the live linear stream itself, not the currently playing program.
* **Deep links**: When your app receives a deep link from Continue Watching, the contentId is is the ID of the live linear stream (not the currently running program), and the mediaType is “liveFeed”. The required playback behavior is to resume with the currently running program in the stream.
* **Deep links**: When your app receives a deep link from Continue Watching, the contentId is the ID of the live linear stream (not the currently running program), and the mediaType is “liveFeed”. The required playback behavior is to resume with the currently running program in the stream.

## Managing user consent

Expand Down
4 changes: 2 additions & 2 deletions docs/DEVELOPER/discovery/implementing-deep-linking.md
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ sub Main(args)
'...
if (args.mediaType <> invalid) and (args.contentId <> invalid)
'...
'print deep linking paramaters in args
'print deep linking parameters in args
print "args= "; formatjson(args) 'pretty print AA'
'output
' args= {action: "display", contentid: "myAwesomeShow|Season=1|Episode=1", instant_on_run_mode: "foreground", isexternal: true, lastExitOrTerminationReason: "EXIT_UNKNOWN", mediatype: "series", source: "hs-search", splashTime: "0"}
Expand Down Expand Up @@ -401,7 +401,7 @@ The one-time TV program identified by the contentId is launched directly into pl

You can learn how to implement deep linking in your app by watching the [Deep linking](doc:deep-linking) video lesson in Roku's [SceneGraph: Build a App online video course](doc:rsg).

This lesson details how to program your app to accept and process deep links upon being launched and while it is already running. It lists the different playback experiences requried for the various types of content in the app's feed.
This lesson details how to program your app to accept and process deep links upon being launched and while it is already running. It lists the different playback experiences required for the various types of content in the app's feed.

## Sample app

Expand Down
2 changes: 1 addition & 1 deletion docs/DEVELOPER/discovery/search/implementing-search.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ Before submitting your search feed for review, you need to test your app's [deep
> * The auto-created Search beta apps do count towards the limit of 10 beta apps per developer account.
> * A developer account may have a maximum of four auto-created beta apps.
> * The auto-created beta apps cannot be deleted (they are automatically removed 120 days after being created).
> * If a user on your team cannot access to the auto-created beta app, manually grant them access via the [User Management page in the Developer Dashboard](https://developer.roku.com/user/access).
> * If a user on your team cannot access the auto-created beta app, manually grant them access via the [User Management page in the Developer Dashboard](https://developer.roku.com/user/access).
>
> **Keeping the Search beta app synced with the production app**
>
Expand Down
Loading
Loading