local Volt = require(game.ReplicatedStorage.Volt)
local InstanceBuilder = Volt.import('Libraries/InstanceBuilder')
why use forward slashes?
local Volt = require(game.ReplicatedStorage.Volt)
local InstanceBuilder = Volt.import('Libraries/InstanceBuilder')
why use forward slashes?
Why not? They are used to require and import folders almost everywhere
For readability and functionality purposes. Using a forward slash based directory system looks clean and inherits the style of Unix & Mac file systems. Is there a different way you believe is more user-friendly?
name
propertyVolt.Libraries
I guess it’s a stylistic choice, but seems against the Lua standard of using dots. Personally, even if the resources taken up for string manipulation are negligible, I’d go with dots. I know Roblox’s intellisense is garbage, but they might fix it in the future.
Quickly create executables with this plugin. Executables can be tedious to create and the plugin simplifies the process. Type your executable name in the UI and hit Create. You’ll get yourself a new folder with two generated client & server executables containing base code to work off of. They also will automatically append .Client
and .Server
to follow Volt naming conventions.
Framework? What’s this used for? Like an FPS Framework or- Something highly unrelated?
It’s a bad idea in the extremely rare case of someone with the name LocalPlayer
joining the game. I’ve seen games being broken because players, who had their names coincidentally be the properties or events of the Players service, broke the whole server handler.
It’s bad practice not to use IsClient.
I never stated to really explicitly just use LocalPlayer
, RunService:IsClient
is of course the main way and good practice anyways.
what even is a game framework?
Game frameworks act as ways to simplify game development and provide tools to make game development easier. Volt is a general-purpose framework. Let’s say you were making a money system for your game. You want the server to handle and store player money. You want the client to be able to get how much money a player has for let’s say a Shop GUI. Normally you would have to write a lot of code to get this done. You would have to write a module for storing the player money data, a server script for handling the remote function for getting player money, then also write a way for the server script to interact with the module storing the data. Don’t forget about actually having to create and organize all these scripts and the remote function.
With Volt you can do all this in two scripts. And organizing? Volt provides a nice path system that will simplify game:GetService('ReplicatedStorage'):FindFirstChild('Something'):FindFirstChild('SomethingElse')
down to 'Something/SomethingElse'
. Using the Volt framework you have one script for your money that handles storing it as well as registering bridges, a Volt feature for communicating between the client and server, and another script for your client that will just handle your GUI.
There’s a nice in-depth example over here you can check out if you want to see something similar in code.
@Trickstaarz Since you asked the same question feel free to read this
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.
Check everything out over at the GitHub release:
name
attribute changed to Name
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
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!
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
I would like to know how to get FiraCode in studio? I cant seem to find it
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
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