Say Goodbye to Ugly Input Code =( β†’ Meet CoolerInput :-D

CoolerInputButCooler.rbxm (4.6 KB)
improvements::

  • Explicit types for all variables, function arguments, and return values
  • Slightly improved readability, warnings are formatted better
  • fixed a bug with combinations

btw, this module literally reduces the UIS code by 1 line, lol. I would use it if the __newindex in the metatable helped strict typing understand that new indexes can be created, because in strict typing mode, Begin[KeyCode] causes an error that an index cannot be added.

3 Likes

is it just me or do i literally not care how userinputservice code looks

1 Like

I am not able to replicate your results. :frowning_face: , It may just be my end but I am rewriting most of the code now around static functions and your improvements.

For the module reducing the UIS code by 1 line, its not that huge of a deal, I never enjoyed how it looked and probably so did a few others. If you enjoy UIS you can continue using it, this module is just a better looking way in my opinion.

Thank you for your recommendations,

1 Like

Full honesty, this just looks like AI slop. It serves no real purpose besides slowing down input code. Every input runs on one thread, meaning that when UIS fires the input signal, your module loops through ALL registered inputs GLOBALLY. This is horrible for experiences with many input listeners.

1 Like

Take your time on the redesign. :smiley:

Tips

Go through iterations, it may seem fine at first, but you should get someone else to test it out and point out pain points (or focus on something else for a day to clear your mind and come back to it). The design phase never actually ends so long as you update it, just slows down once you have settled.

A few more ideas:

  • The ability to remove sequences, combinations, or singles<?> of a Enum.KeyCode (or whatever) based on their respective callbacks (or/and timeouts).

  • The ability to clear the sequences, combinations, or singles<?> of a Enum.KeyCode, meaning it’ll remove all references to the callbacks.

  • The ability to clear ALL sequences, combinations, or singles<?>.

  • The option to use a separate, singular, UserInputService connection instead of looping through all. For TaBigMemesGuy.

  • Modulate the codebase, your moduleScript is getting cluttered

2 Likes