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

Complexity Update (v1.1.5)

This is a smaller update, but there will be bigger changes coming soon. :slight_smile:


Additions

  • Settings! You can change your BytExecutor experience to suit your style. More options will be available in future, so check your settings menu every update
    byt_upd_complexity_0

Changes

  • Reintroduced the Settings icon. How else are you suppose to access the settings menu?

Update your BytExecutor now!

Preference Update (v1.2.0)


Additions

  • Added a new plugin action for executing Byts you’ve last interacted with, which can be assigned to a key bind. To assign it a key bind, go to File > Advanced > Customize Shortcuts... and search Execute Byt Last Interacted. Its behavior can be modified in the BytExecutor settings
  • Smart Exporting! BytExecutor can now change the class of the script based on where it was being exported. This needs to be enabled in the settings in order to work
  • A custom screen when no Byts are found
  • Added more settings options
  • It is now possible to reset settings to their default state
  • A category left sidebar has been added

Changes

  • Sections can now be collapsed by clicking on them
  • Renamed some sections
  • Significantly improved settings UI. It is more compact and easier on the eyes
  • When renaming a Byt, the text box displays rounded corners

Fixes

  • Removed the parentheses from imported scripts which caused a few bugs when attempting to rename it

Update BytExecutor now!

My main was terminated, and I happen to have InCommand on that account, since I found this plugin, I’ve decided it was a worthy replacement for InCommand in my workflow. Thanks for making this plugin and keep it up!

1 Like

This looks nice :slight_smile:

Not a like-for-like replacement for InCommand but a neat thing on its own nonetheless!

1 Like

Termination Update (v1.3.0)

I was somewhat hesitant towards releasing this update because of the shear amount of hacks this required. However, I was already using quite a few before this, so here we go!


Additions

  • Live thread modification. You can pause/terminate a Byt (though not completely accurately) during execution at the cost of speed. Luau has plenty of optimizations that speed up execution speed, but these are disabled when setfenv is used. Therefore, BytExecutor disables this feature by default and must be enabled in the settings. Speed comparison:

image

--Performance test used
local START = os.clock()

local t = {}

for i = 1, 1e6 do
	t[i] = math.random(1, 10)
end

local END = os.clock()

print(END - START)
  • Added an API for Byts with full auto-complete. Byts can access it with require(script.API)
-- [[ 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()

--Parallelizes and executes the specified byt (supports British spelling too)
API.actorize(bytName: string, actorId: number)
--Very hacky and has a ton of caveats that will be listed further into this post

--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()
BytObject:Actorize(actorId: number) --supports British spelling too

--[[ Events ]]

-- Fired just before termination
API.BeforeTermination(reason: string): GoodSignal
  • BytExecutor can now check for new available updates and will remind the user to update to the latest version. Can be disabled in the settings
  • Byts can now be parallelized using the new API. Parallelization relies on Instances called an Actor, and due to plugin-related behavior, it can only support a finite number of them. As such, there are currently only 100 actors Byts can use, with Ids ranging from 1-100. Byts can only use one at a time (though this restriction may be loosened in future updates) and restricts access until execution is finished. It is recommended to have some sort of emergency exit condition since BytExecutor does not have a way to interfere with parallel Byts being executed.

Changes

  • Disabled the Allow Parallel Byt Proxied Execution option (this has nothing to do with the true parallelization added in this update)
  • Removed the “Byt Scripts” text
  • Topbar icons are properly colored
  • Improved renaming UI
  • Made settings UI more responsive
  • Improved colors when the user is hovering over a Byt
  • Slightly improved light mode icon colors
  • The button for displaying settings categories is now larger
  • Checkboxes are now slightly less irritating for look at. This needs some feedback

Fixes

  • Fixed bug where the scrolling frame would be improperly sized and clipped some options

This will probably be the last time I’ll tell you to update BytExecutor here, since there is an automatic reminder now. So… update BytExecutor now!

1 Like

Steady Update (v1.3.5)


Additions

  • Gave functionality to the Power User Mode and Debug Mode options. Their exact purpose will be described in this post
  • Reload All Byts icon. There are a few bugs that somewhat break execution, but I haven’t been able to reliably diagnose the problem. This serves as a temporary solution, and also as a Power User feature.
  • Use ScriptEditorService option, which fixes various issues with using BytExecutor in Team Create
  • BytExecutor about page
  • Added various other options in the settings menu

Changes

  • Removed parallelization :frowning:. The last update introduced a lot of bugs that I didn’t catch earlier that completely broke parallelization. Fixing them would take too long, so I disabled it for now
  • Tooltips now have padding, making them slighty easier to read
  • Hovering over the Byt name now displays its BytAddress when Debug Mode is enabled
  • Slightly improved settings menu UX

Fixes

  • Fixed confirmation color scheme for light mode
  • Updated the Sandbox Byts During Execution description
  • Cleaned up some internal code

1 Like

Fragmentation Update (v1.4.0)

Sorry for not updating in a while. Real life messed me up for several months now and I still don’t have the time to work on BytExecutor. I’m still busy but I am programming when I can.

WARNING: Future versions of BytExecutor beyond v1.4.0 might corrupt your save data as I’m working on something which requires an overhaul as to how data is stored. I recommend you to backup any files regularly!


Additions

  • Added .BeforePause and .BeforeResume signals to Byt API
  • Added .exportToModule function which replaces the function of .tableIntoModule (deprecated)
  • Added additional information to about page
  • Added icon (to indicate type) to the left of a Byt element.
  • Update Bar now gives future version numbers

Changes

  • Updated Icons
  • Improved error messages

Fixes

  • Fixed a small issue with string selection in Settings
  • Fixed a small bug with error reporting
  • Fixed (hopefully) an issue with losing data
  • Fixed a visual bug while using light mode
  • Added internal code in Settings for future releases
  • Organized plugin files

1 Like