Perclean (v2.5) - For easy implementation of low-quality mode!

Introduction:

Have you ever made a detailed game, but worried about low-end users not being able to play the game because of the lag? Well, worry not, because this module was made for you!

Perclean is an simple, easy-to-use module focused on a seamless implementation of low-quality mode and other game-performant functions!

You can disable numerous effects with a few lines of code!


Functionality:

This module contains two main functions:

  • EnableLowQuality
  • DisableLowQuality

You can select over 4 total effects, each one changing and optimizing a specific thing. Here are all of them:

  • CastShadow
  • Lighting
  • PartRendering
  • RenderDistance

Links:

GITHUB DOCUMENTATION
ROBLOX MODEL

35 Likes

This can be done very easy, so idea: make a DisableLowQualityLighting() and a DisableLowQualityRendering(). other then that, Keep up the good work, good job! :slight_smile:

2 Likes

Those functions already exist inside of the module.

3 Likes

I don’t get it how does it work, maybe try putting it to ServerScriptService, ReplicatedStorage, ReplicatedFirst, or any Service that you think is a good idea to put on?

2 Likes

Try it out yourself, see what it does.

Put the module inside ReplicatedStorage, then require the module from a script and try:

while true do
	percleanModule.EnableLowQualityLighting()
	percleanModule.EnableLowQualityRendering()
	task.wait(2.5)
	percleanModule.DisableLowQualityLighting()
	percleanModule.DisableLowQualityRendering()
	task.wait(2.5)
end

1 Like

Ah okay, I have made this script and I don’t see any difference at all, my game is using Voxel Lighting Technology and I use Graphics Quality 1, Please help, thanks

Script:

local percleanModule = game:GetService("ReplicatedStorage").PercleanModule

while true do
	percleanModule.EnableLowQualityLighting()
	percleanModule.EnableLowQualityRendering()
	task.wait(2.5)
	percleanModule.DisableLowQualityLighting()
	percleanModule.DisableLowQualityRendering()
	task.wait(2.5)
end
2 Likes

Isn’t that supposed to be local percleanModule = require(game:GetService("ReplicatedStorage").PercleanModule)?

And I tested it, with voxel lighting and the lowest graphics quality. Here’s the differences.

WITHOUT PERCLEAN:

WITH PERCLEAN:

If you noticed, when you use Perclean’s functions, it disables CastShadow and GlobalShadow. Plus, all the effects inside lighting have been removed (You can undo this by the way).

You could also try Future lighting, the difference is more visible. Especially with large games.

Sorry, and I tried the script, and worked very well! It even works on my TopbarPlus Settings and I am happy that this worked very nicely, I’ll give a rating of 8/10! Thank you for creating and solving my problems and have a great day sir!

1 Like

This module seems interesting. I wish to view the source code, but I’m on mobile. Maybe start a GitHub about it? :eyes:

1 Like

So this is just disabling lighting effects?

2 Likes

Pretty much, that’s how you make it “low-quality”. I don’t think there’s anything else you could do to make it a game less performance-intensive than just disabling shadows and light effects (and some other tweaks).

And if you ask, “why do I need this module, I could just script this on my own”. Well I mean, sure you can. But the module just saves you time because you would only have to practically type 2 lines of code to add a "low-quality’ functionality to your game.

But hey, if you have any suggestions or things I should add. I would appreciate it!

1 Like

Why would someone want a toggle for all effects instead of a settings menu where you can enable or disable specific effects to fit your liking?

1 Like

Well, that’s no easy task and that would take forever for me to do so

1 Like

I’ve done it, it wasn’t that hard.

2 Likes

Oh sorry, I’m just a game designer who doesn’t know a lot of coding, because I’m kinda new here, I’m a solo dev btw.

1 Like

Take for example, games that on-join let you pick PC or Mobile performance.

If you were using a phone (which can’t handle the heavy game), you would probably wanna get the best optimization for your phone to handle a heavy game. So it’s easier to just toggle all effects rather than toggle lots of options.

And plus, you’re missing the point. It’s fine if you want to make a settings GUI with multiple options, go ahead! But I made this for people who want to make a single low-quality button.

3 Likes

PERCLEAN - V2.0 (NEW UPDATE)


  • Added the feature of being able to toggle specific effects instead of all effects
  • Added new function perclean.SetLowQualityType(...) for new feature above (more information on documentation inside Module)
  • Fixed some small bugs
  • Added more documentation to functions
2 Likes

Woah, a new update and a new logo, I’ll try it out, thanks for updating us.

1 Like

PERCLEAN - V2.5 (NEW UPDATE)


  • NEW FUNCTION! You can now implement a RenderDistance system to your game
    (with optional part whitelists)
  • Completely rewrote the entire module
  • Put everything in two functions ( EnableLowQuality() & DisableLowQuality())
  • Optimized the module (removed useless functions and made the code cleaner)
  • Better enable/disable system for easier implementation of new toggleable effects
  • Made a GitHub documentation for the module

For this update, I completely went from scratch, rewriting the entire module. I wrote Perclean a pretty long time ago, and back then I wasn’t as good of a programmer as I am now. And plus, the code was pretty messy so yeah.

I’ll probably add more documentation for each and every single toggleable effect included in the module.

Anyways yeah, this may or may not be the last update (unless I think of something else to add in this module, feel free to suggest!)

3 Likes