BytExecutor v1.4.0: A simple, free, and intuitive in-studio code executor

This plugin has been superseded by Exestack. It can be installed here.

byt_pos_0

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:

byt_pos_2

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.

byt_tut_2

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”.

byt_pos_5

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.

byt_pos_6

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

Roblox link

Plugin Build

To get the the plugin build, type game:GetService("InsertService"):LoadAsset(10239390162).Parent = workspace into the command bar/BytExecutor.

11 Likes

Isn’t one of the (main) selling points of InCommand that you are able to open a separate, isolated editor? Even the command bar at least has a dedicated location to type command bar code.

2 Likes

That is correct, but InCommand’s editor really isn’t too powerful. It doesn’t have any autocomplete and selecting text word by word sometimes just selects the whole line. But yeah, being able to write code isolated from the editor is neat.

1 Like

Interesting plugin. I really like how clean it looks and works, you dont need any premade function in the byts, its just normal code.

I assume the refresh and settings buttons dont work yet? I deleted some byts manually and the buttons in the list did not disappear, and clicking refresh didnt remove them either.

It would also be nice if the “Import byt” button was only visible if you have a script selected, since its a little bit confusing.

Its also really interesting that the byts save, is there any limit to how many we can have?

2 Likes

Weird, I never had problems with that. I’ll have to look deeper into it. Do you know how to replicate this bug?

In theory, yes. The method this plugin uses to save Byts is really wonky and imposes an (very large) artificial limit on how many you can have. It’s fixable, just annoying since I wrote that part of the plugin a long time ago and it’s basically leftover spaghetti.

Why should we use this over InCommand?

This might not be intended usage of the plugin though.

You’re suppose to delete it in the widget. There’s a “trash” icon when you hover over the Byts. Deleting it in explorer shouldn’t be done.

1 Like

I think it’s pretty self-explanatory; this is an option for people who can’t afford or don’t wish to spend robux on InCommand. Otherwise, it’s entirely up to you whether you’d want to use it.

1 Like

I mean besides being a free alternative.

Sure, its free, but one of major selling points of InCommand is having a command executor in a separate window. This one doesn’t have it.

So it comes down to whether I want to pay for the one has more features or a free alternative that doesn’t have all the features that InCommand does.

2 Likes

@SpaceDice999

I really like the simplistic design and approach you have going with the plugin. I would make a personal suggestion and recommend adding some sort of sorting mechanic to the plugin. Organization is key, even when it comes to testing! I feel like the addition of a Folder feature would make this even better, although it already does a good job for what it is.

@ValiantWind

I personally believe the title says it all, and it stays true to that. It’s efficient, it works, the UI is simple to understand. It’s overall less complex (more features can sometimes appear redundant, and may not be necessary for the majority), and it’s free (as you’re aware).

It essentially does what InCommand was supposed to do. Let you test scripts more intuitively, instead of a single line command bar.

For the issue with the “not appearing in a separate window”, you can drag the script box out from the Roblox Studio window and it will be open in a separate window with Studio in another. I’ve done this countless times to compare code side by side without having to switch tabs. For a cheap solution, this is certainly a great bargain.

All I can suggest is don’t use this plugin if you prefer a more power user suited environment such as InCommand, and leave this to the ones who don’t want to pay for something more.

4 Likes

What’s the point of these plugins? Doesn’t the command bar do the exact thing?

We do have command bar. So this useless. Anyways good job ig.

This has more features and is more efficient then the command line, maybe reading the topic would be useful, OP included use cases too. Maybe these don’t apply to you, but this plugin certainly isn’t useless for developers that want to be able to run long commands without having to deal with the annoying one-line command line and be able to deploy/edit/delete a command in one click.

3 Likes

How does it have more features and is more efficient :thinking:. If anything it is slower
image
For my game I have had to automate a lot of things in studio and the command bar has worked perfectly fine. Also you can just write the code you want to run in your code editor and run it on the command bar it is not that deep.

P.S consider not spamming your reply by quoting what’s already written above

Isn’t there a command bar in-studio?

Adage-proofing! (Small Update, v1.0.2)


Changes:

  • BytExecutor no longer allows users to delete Byt scripts in Explorer
  • Hid the settings button and refresh button. These aren’t implemented yet
  • Improved error messages

Update BytExecutor now!

2 Likes

From what I can see, the difference between the speed of the command bar and BytExecutor is insignificant. It’s only a difference of ~0.00008 seconds. Also, that’s not what they meant by “efficient”. They meant efficient in terms of workflow, not execution speed

Sure, the command bar works, but the purpose of this plugin is convenience. Having only one line is limiting when you want to test/automate something very complex. Doable, but not ideal.

Once again, convenience. You’d still have to create the script and copy-paste the code into the command bar. Every time you modified that script, you would have to copy-paste the whole thing again. With BytExecutor, that’s not necessary.

1 Like

That’s a 20% increase.

I find it much faster writing the code in the code editor and copy pasting it than opening the plugin, the scripts and then running them ¯_(ツ)_/¯

Once again you aren’t obligated to write the code there.

That’s more convenient for me because I can do it all thru my keyboard shortcuts.

Either way everyone has their own preferences, glad you provided a free alternative to InCommand.

More Convenience Update (v1.1.0)


Additions

  • Export Byt and Export All Byts buttons have been added. You can now export your Byts into the Explorer
    byt_upd_convenience_0

  • Tooltips! Hover over any button and it tells you what it does. Very helpful
    byt_upd_convenience_1

Changes

  • Import Byt button now has a red block icon blocking it when scripts aren’t selected
  • Import Byt button has a better icon (my opinion)

Install the latest BytExecutor update now!

1 Like