What common libraries or tools do you use?

There are far too many things to list in a single post, that I use or are very helpful. As a starting point, check out #learning-resources:tutorials and #learning-resources:community-tutorials-resources for some developer-written articles that may serve to your benefit.

If you’re looking specifically at libraries or packages, try looking at @Validark’s RoStrap Package Manager. You can also have a look at @Quenty’s NevermoreEngine (fairly popular, iirc).

3 Likes

Happens to me to make my own libraries for a specific game, for example to replace parts of code I would do very often:

Example:
If I had to create lots of instances during the game time, I’d add in my library a function called create, that would create and put properties quickly to an object.

local newObj = Instance.new(obj);
for i,v in pairs(props) do
if newObj[i] then
newObj[i]=v
end end 
return newObj 
end

I do lots of small functions like this to shorten the code at the end.

I also use a lot of wiki.roblox.com and youtube.com

10 Likes

I use Quenty’s NeverMoreEngine for most of my projects. It contains a lot of useful modules and easy remote handling.

1 Like

I use my own personal library of useful functions. I literally rely on my own module…

I use Git for version control. I use a tool called Rojo to write my code in Visual Studio Code and have it automatically synced in to my Roblox file. You can save files as .rbxlx for XML format, I recommend doing this for Git.

Roact is an interesting project I don’t personally use at the moment but am interested in. It’s React for Roblox UI development.

4 Likes

This is very cool. Any way to make an existing project use rojo instead of creating it from scratch?

Mostly my own framework, but it’s completely incompatible with other projects so I never bothered even considering making it open-source. As for the other modules, mostly Quaternion and Matrix modules, shortly just the basic mathematical stuff to make my life easier.

For most projects of small size, it should only take maybe half an hour to convert it, but I don’t think syncing your Roblox file to a Rojo project will be available until v0.5.0’s full release, which is in alpha right now.

I use roblox-ts, along with rbx-datastore2, rbx-net, rbx-t, rbx-roact, Rojo, TSLint, and I have plans of adding Rodux into my workflow.

2 Likes

I use Datastore 2 for all of my projects and I use the Moon Animation Suite for animating.
I also use YouTube and wiki alot.

3 Likes

If you are looking for Interpolation libraries (Tween / Easing / Bezier libraries), I recommend my own, although they are integrated with RoStrap.

I do not recommend using Time libraries that perform loops to figure out the date. Here is my implementation of an efficient algorithm for obtaining the Year/Month/Day for a given number of seconds after Jan 1 1970, as described by one of the main people writing the standard Date/Time libraries for C++ (credited in the source). However, for most use cases I prefer my re-implementation of the vanilla os.date function for Roblox (click the title to view the source). This is integrated with RoStrap, but only barely. If you like you can just remove lines 5 and 6 and switch out Debug.Error for error and it will work perfectly without any dependencies.

3 Likes

Do you have the source for your Date library anywhere? I am not using RoStrap because I am using Rojo and I want to keep all of my code in one place.

thanks!

I use a ton of my own libraries (private, but I’ll describe what they do):

  • Elttob Utils - provides a ton of useful functions, e.g. deep cloning, index of, “pwait” (only wait after a certain time interval, useful for long running tasks)
  • Metrics - makes measuring the execution time of various code snippets easy in production code
  • AABB - provides an OOP interface for working with axis aligned bounding boxes
  • Span - my own formatted text renderer that doesn’t annihilate text kerning at small sizes
  • Pick - CSS-like selectors for filtering descendants of instances (which I turned into a nifty plugin for selecting instances precisely)
  • Object - makes OOP code really easy to write:
local Thing = Object() -- make a new OOP class
function Thing:constructor(foo)
    -- ...
end

local SubClass = Object{Thing} --extending a class, supports multiple inheritance btw!
  • Lazy Require - variant of require() that only requires the module when you index it (convenient for solving require loops without having to move the declarations from the top of the file or passing arguments)
  • Set - More semantic way of defining sets, with support for all data types and some extra stuff like reduce()
  • UITags - My own system for applying behaviour to UI elements on mass, by marking up UI elements with value instances.
  • MakeWidget - Makes plugin widgets from ScreenGuis.
  • Observer - Lets you track changes to tables.
  • Event - Lets you define BindableEvent-like objects in Lua.
  • ColorUtils - Various utility functions for working with Color3s.
  • Pretty - Turns tables into nicely formatted strings.
  • Instances - Some utility functions for creating and manipulating Instances.
  • Lut - Turns arrays into two way look up tables.
  • Files - Utilities for working with file contents (normalise newlines, get row and column from string position)
4 Likes

Most libraries for RoStrap are found on the RoStrap GitHub repository.

Here is the link for the source of the Date library:
https://raw.githubusercontent.com/RoStrap/Time/master/Date.lua

Here is the documentation for the Date library on the RoStrap page:

1 Like

How exactly did you manage to use rbx-net? I keep getting
18:13:26.008 - Infinite yield possible on ‘ReplicatedStorage:WaitForChild(“rbx-remoteevent”)’

I haven’t used it recently. I would contact @Vorlias in the roblox-ts Discord.

I commonly use DevForum but there are other sources:

I understand what you mean

There aren’t alot of 3rd party libraries, like in any other programming language. Just like how python uses the import statement and how c# uses the using statement, you can import a roblox made library with game:GetService("servicenamehere")

I can see why alot of people got confused, only me and some other handful of people program in other languages than the roblox custom made lua. Also i think libraries are called modules here, and they are their own script, which you can insert into the game, not sure though.

none

if your trying to learn then using others code will not help you improve as much as you could improve if you write your own scripts

yes writing your own scripts will take you longer at first but in the long run the time you invest will make you a better scripter

but if you don’t care to learn and just want to finish your game as quick as possible then using libraries may help

1 Like