Module Loader in Quenty's Nevermore questions

Hello, I am currently using Quenty’s Nevermore Library @Quenty and it has a super nifty module loader that loads modules into ReplicatedStorage that are inside the Nevermore folder. It ignores folders and loads them all in side-by-side. From what I understand, it does not replicate modules that have the word “server” in their name.

This has been very convenient for me because I have changed the organization of my modules and folders several times and there is never any need to edit the requires in various modules and scripts when I move a module into a new folder. It also has a error helper that you can turn of to help solve circular dependencies, though i rarely have that problem it’s nice to know it is there.

I have taken to placing all of my game files inside the Nevermore folder for easy requiring from any script without having to keep track of what folder things are currently in. However, I have come across some limitations and I am wondering if there is another alternative or better practice I should be aware of.

I wonder if it is a problem to be including all of my game code in Replicated. I am aware exploiters would be able to see this code, but it wont allow them to edit their data so is that really even a problem? I can add the word SERVER into the names of modules that I might be concerned about, but then I have to go through and edit all the requires too, might as well not have used this method of module loading in the first place. It would be nice if I could just rename the folder to have the word SERVER and then anything under it wont be replicated.

Is there a better way to deal with this? Are there other module loaders that do similar things I should look at? Does anyone else use Nevermore in this way?

Thanks!

1 Like

I think the main terror about putting your entire codebase in ReplicatedStorage is really only exploiters. If you take exploiters out of the equation for literally anything that has to do with programming, it doesn’t entirely matter so long as you’re applying best practices and keeping maintainability with your code, among various other factors behind-the-scenes.

If you don’t want things to be replicated, you’re going to explicitly have to create repositories under both ServerStorage and ReplicatedStorage - server and shared, respectively (client-only would mean having to set up an entire codebase in PlayerScripts).

There are two other module loaders that are a close second to Nevermore that I have taken a look at (but haven’t really used or gotten acquainted with); those two are RoStrap by @Validark and Aero by @Crazyman32.

1 Like

By putting your entire game under ReplicatedStorage, an exploiter would be able to seize all code in your game - increasing the likelyhood of it getting leaked

2 Likes

I just recently changed the behavior so it doesn’t replicate scripts where the parent folder in it have the word “Server”. This should fix most limitations, including the requirement of having to name server-side code with the name server, as well as allowing modules with the name server on the client.

Nevermore’s architecture is now generally setup like this:

  • Client
  • Server
  • Shared

I’m planning on changing Nevermore’s loader to allow better-inclusion without manually changing parents.

I’d also like to auto-detect circular dependencies, which should be quite easy. Just haven’t got around to it yet.

I haven’t tried RoStrap, or Aero, but I know RoStrap is a fork of Nevermore, and Aero does additional service loading, which Nevermore doesn’t do.

Let me know if you have any other questions.

5 Likes

This is VERY helpful! I was really hoping for this change, where I could simply rename the folder and all descendants would not be replicated, awesome!

Is this available on the GitHub yet?

Thanks!

Yes! Download the latest Nevermore. I changed the structure to be more friendly to rojo.

I’m hoping to add more improvements and start getting more stability here.

2 Likes

this is really great news! I am recently starting to use Rojo as well.

EDIT: How does this new organization play nicer with Rojo and what issues might i expect?

You indicate that there will be more improvements to come, what might they be? I have always been concerned when updating libraries like this because that might break some things as I go.

FOR EXAMPLE: It would be nice if the loader could work with folders outside of Nevermore folder so that updates woudl be a simple matter and not interfere with our own game code.

Also I see some new libraries are included such as a datastore and some other things. Is there any place to discuss these libraries and how best to use them other than these forums?

Thanks for all of your contributions!

1 Like

Yes. Providing other replication folders is important to me.

I didn’t realize people were actively using the whole system so I haven’t done a ton to ensure backwards compatibility. This is a separate concern, which I will consider.

There are no forums right now, but there is a discord.