Volt - An efficient & powerful game framework

Volt | v1.0.2

:floppy_disk: Download

:new: What’s New

  • In-depth Volt debugging

  • Await() function to wait for an executable being executed after to complete. Helps break the strict linear control flow and allow for web-like branching out. This is the first in a series of methods to help accomplish this.

:file_folder: GitHub

Check everything out over at the GitHub release:

2 Likes

Volt | v1.0.3

:floppy_disk: Download

:new: What’s New

  • Documentation updates
  • Changed the library format and added categories
    • name attribute changed to Name
    • Some libraries have been removed and new ones have been created.
  • Await() is now available on the client
  • Await() will now return a Promise

:file_folder: GitHub

2 Likes

i can tell what’s inside

function import(location)
  local args = location:split('/')
  for index, object in next, game:GetDescendants() do
    if object:IsA('Folder') and object.Name == args[1] then
      if not args[2] then return object end
      if object:FindFirstChild(args[2]) then return object:WaitForChild(args[2]) end
    end
  end
  return nil
end
2 Likes

This is great! I really appreciate the amount of effort you have put in to create this and share it with the community.

Also, I admire your script editor theme. Is it possible for you to show what you’re using?
Thank you!

1 Like

Thanks glad to know you like it. I’m working hard to turn Volt into a popular game development tool.

Here’s my script editor theme I provided it up above for someone else who was also interested in it

1 Like

I would like to know how to get FiraCode in studio? I cant seem to find it :fearful:

1 Like

You have to manually install it onto your PC from here.

1 Like

This is actually super interesting and might move to this. I would recommend making a discord server to ask questions and other stuff. And also what ihovac said, add more modules. Keep up the good work! It has a ton of potential :slight_smile:

1 Like
local volt= require(game.ReplicatedStorage.Volt)
local toexecute = {volt.import('SetUp.Server')}
local children = game.ReplicatedStorage.executables:GetChildren()
for i = #children ,1,-1 do
toexecute[#toexecute+1] = volt.import(children[i].Name..'.Server')
end

volt.Server.Execute(toexecute)

local setup = volt.import('SetUp.Server')

for some reason import isnt returning i printed to execute and it was empty so was setup pls help

Your loop is overriding your original SetUp.Server.

local volt= require(game.ReplicatedStorage.Volt)
local toexecute = {volt.import('SetUp.Server')}
local children = game.ReplicatedStorage.executables:GetChildren()
for i = 1, #children, 1 do
  toexecute[i+1] = volt.import(children[i].Name.. '.Server')
end

volt.Server.Execute(toexecute)

Also you shouldn’t be importing SetUp.Server again not sure why you’re doing that.

1 Like

oh yeah but still even if i just print toexecute w/o the loop it is still empty like the import isnt returning anything at all

Is SetUp.Server directly in ReplicatedStorage?

no but i changed the path and also i added a prt src in the core import module and it was printing the module

How do I add more paths to the module? Cause .Server in Replicated Storage is a bad idea cause someone can steal all my server code.

Regardless of people having access to your source code, exploits are primarily client-side meaning your code is technically secure. It can’t be executed on the server.

They can still just search about the framework I am using and just Execute the scripts. Also they get access to my links for HTTP request and that is un-safe.

You can still interact with Volt outside of executables. When you require() Volt you get access to all executables as they get executed. So you could just have a server script in ServerScriptService to handle your HTTP requests. E.g.

local Volt = require(game.ReplicatedStorage.Volt)
Volt.Server.Await('SomeExecutable'):andThen(function()
  -- call SomeExecutable's DoStuff function
  Volt.Server.SomeExecutable.DoStuff()
  -- do some other HTTP stuff
end)

Volt doesn’t attempt to restrict you to just executables and provides you with tools to interact with normal scripts as seen in the above example.

EDIT: Regarding security, version 1.1.0 has a few new settings in the config that will limit some features but provide more security for bridges as well as executables in general.

3 Likes

Volt | v1.1.0

This version is NOT backwards compatible and has substantial changes to core functionality.

:floppy_disk: Download

:new: What’s New

  • Internal comments make contributing easier
  • Bridges have been entirely overhauled and are much easier to use
  • Bulk importing
  • Bulk loading executables
  • Minor bug fixes & internal changes

:file_folder: GitHub

1 Like

A big bump, but I’d look into semver versioning.
A version that isn’t backwards compatible automatically makes it a major jump to 2.0.0

Weird I actually thought semver said a minor version jump is when an update is not backwards compatible but looking back on it actually says its for deprecation so that’s my mistake. Fixing the versioning everywhere will be an absolute pain I’ll change the major version number for the next update but thanks for the heads up.