This plugin has been superseded by Exestack. It can be installed here.
BytExecutor is a in-studio code executor plugin suited as a free alternative to the more expensive InCommand. It can create, run, and save your multi-lined code from within studio without having to rely on the command bar, sporting an incredibly easy-to-use interface that even a complete noob could understand.
Guide
Upon downloading the plugin, you will need to open the BytExecutor. You will be greeted with this:
The topbar has four buttons, 3 on the left and 1 on the right. Clicking the button with the large plus sign creates our âByt scriptâ, which is what the plugin uses to run code.
The one with a down arrow imports an external script the user has selected in the Explorer into the plugin. When the user is not selecting any scripts, it is disabled.
The two paper icon exports all Byts the user has and parents them to the Instance they selected.
The settings button opens BytExecutorâs settings. Itâs pretty obvious.
The Byt script has a little clip board icon next to it. That is the execution status of the Byt script. Currently, it is ânot runningâ, but it can be in a variety of other states, such as ârunningâ, âfailedâ, âterminatedâ, and âfinishedâ.
The plugin automatically opens the script using Studioâs native code editor. If you donât want Byts to automatically open, you can change this in the settings. To change the name of the Byt script, click its name. Note that BytExecutor only allows alphanumeric (as well as the space and underscore) characters to be used.
To interact with the Byt script, hover the cursor over it. The play button executes the script, the pencil icon opens the script editor, the two paper icon exports that script, and the trash button deletes the script. Byts may also have additional icons during execution if pausing/terminating scripts is enabled in the settings.
Byts have an API that you can use to enhance their usefulness, such as executing Byts in parallel, defining external behavior, and exporting data.
Documentation
--[ Fields ]--
--List of byts
API.Byts: {[string]: BytObject}
--The amount of actors BytExecutor has. This is currently fixed at 100
API.ActorAmount: number
--[ Methods ]--
--Executes the specified byt
API.execute(bytName: string)
--Pauses the specified byt
API.pause(bytName: string)
--Resumes the specified paused byt
API.resume(bytName: string)
--Terminates the specified byt
API.terminate(bytName: string)
--Checkpoint for Byt pausing. Use just after a thread yields
API.yieldCheck()
--Converts a table into a module. Useful for saving information generated by Byts
API.tableToModule(t: table, parent: Instance?): ModuleScript
--Gets the BytObject associated with the Byt name
API.getBytFromName(bytName: string): BytObject
--Gets the Byt address associated with the Byt name
API.getAddressFromName(bytName: string): string
--[ BytObject Methods ]-- (these are pretty much the same as the API methods)
BytObject:Execute()
BytObject:Pause()
BytObject:Resume()
BytObject:Terminate()
--[[ Events ]]
-- Fired just before termination (forced or not)
API.BeforeTermination(reason: string): GoodSignal
Use Cases
Testing the functionality of a piece of code before implementation can be done easily without the command bar using BytExecutor. Debugging can include long periods of testing and revising before a bug can be fixed that is often bottlenecked by the time it takes for Studio to start a test instance. BytExecutor allows the user to skip this time waste.
Automating large tasks is made easy with this plugin. Examples include training neural networks, adding lighting to all neon parts, tagging all interactable parts, reformatting large portions of data, etc. which are very tedious to do by hand.
The command bar could do all this too, but it becomes cumbersome and unreadable the more complex the code becomes. Alternate methods such as copy-pasting waste time that this one saves.
Installation
Plugin Build
To get the the plugin build, type game:GetService("InsertService"):LoadAsset(10239390162).Parent = workspace
into the command bar/BytExecutor.