Recent Entries
- Big New Scripting Update for Beacon Sentinel
- Introducing Slash Commands and Other New Features
- The Beacon Sentinel Discord Bot Is Now Available
- Sentinel Launch and Summer 2025 Roadmap
- An Update to Beacon’s Free Cloud Storage Policy
- Beacon 2.0 Has Been Released! Here’s What’s Coming Next.
- Happy Summer! That Means It’s Time for Beacon’s 2023 Roadmap
- Let’s Talk About Beacon and Ark: Survival Ascended [Updated]
- Beacon 1.6.3: The Security Update
- Beacon Summer 2022 Development Update
Feeds
Big New Scripting Update for Beacon Sentinel
Published
Today's Sentinel update is huge. It's so big that it really deserves a video walkthrough. However, that would delay the launch by at least a week, and I know users are eager to try out some of these new features.
So, let's dive in!
Multiple Context Scripts
Even before Sentinel launched, I wanted to add the concept of a script collection, which is a group of related scripts that can be added to a server or group as a single unit. As I began developing this feature, questions arose such as, "Can a script belong to multiple collections?" and "Can collections have their own parameters so they don't need to be duplicated?" The idea of collections turned out to be a nightmare from both a development and a usability standpoint.
Now, scripts can include multiple contexts. For example, one script can now be added to the "Run Script" menu, react to game events, and handle slash commands.
While implementing this, however, I noticed that most items were in the past tense, and some weren't events at all. This brings me to the next change. I ditched the term "context" and split these things into "events" and "features." Events are your reactions to in-game actions, such as player death, dino taming, tribe creation, and chat messages. Features are additions to Sentinel and/or the game. Examples include slash commands, script commands, cheats, webhooks, and menu items. A script can contain any number of events and features.
Additionally, if a script uses JavaScript for any of its events or features, a new "Common JavaScript" section will appear where you can add code to be injected before the JavaScript code for the event or feature. This is most useful for reusable code chunks to avoid duplication.
Sentinel Workshop
This was really the catalyst for today's update. I wanted to create a place where users could share ready-to-use scripts that others could quickly add to their servers. However, certain tasks would require multiple scripts, and I didn't want users to have to hunt down all the related scripts they would need.
The Sentinel Workshop is now available as a tab in the Scripts section of the Sentinel web interface. This section allows you to browse scripts by searching or rating. Scripts now have rich descriptions that showcase their capabilities. The workshop allows you to view the full script code before adding it to a server or group. Users can add a script to a server or group right from the workshop and make their own copies should they want to make tweaks.
Oh, and since this feature is brand new, the ratings will seem a bit strange at first. The algorithm will improve as more votes are collected.
Documentation
Detailed documentation for Sentinel scripting is now available on the Beacon Help site. I've included descriptions of every function, event, feature, class, and anything else that might be useful.
In addition, JavaScript code editors are now more familiar with the Beacon function library. Admittedly, I'm still not great at writing my own code assistant class for Monaco, but it's a start.
Ideally, this will help users write better scripts. At the very least, it should help AI models produce more accurate code.
Breaking Changes
Two things had to change in this update, and I couldn't find a logical way to migrate them.
Run Menu Items
In the past, creating a manual script would add it to your Run Script menu. This was a real hack job, and with the new organizational changes, it wasn't something I could maintain.
Now, you need to attach these scripts to a server or group, just like any other script, for them to appear in your Run Script menu. I added a note about this to the Run Script button.
Webhooks
Fortunately, nobody was using incoming webhooks yet because I couldn't maintain them. Instead of each script having its own dedicated webhook URL with its own authentication, webhooks are now a feature. Servers have a URL for receiving webhooks that uses their access key for authentication. Don't worry; this has been documented, too.