[PLUGIN] qTools: Code assistant & autocompletion

UPDATE [1.1.0] - 2023/08/23

Get qTools here (50% Off until September 1st)

:warning: IMPORTANT: To use qTools, you must grant it permissions to read and modify your scripts. This is only to allow qTools to swap the commands you use for the actual code linked to said commands. :warning:

What is qTools? :open_mouth:

qTools is a new plugin designed to aid programmers to write their code much faster, with the help of quick snippets and other useful tools!

qTools has been thought to be easy to use, and its commands are easy to understand, easy to learn and easy to remember! :smiley:

Features :computer:

A total of 121 useful snippets to save time and make coding less tedious

qTools has 121 snippets that cover a wide variety of coding patterns that can be tedious or annoying to write, and makes them as easy to code as writting a command. qTools allows you to generate leaderboards in seconds, reference any instance in your game from anywhere, write any kind of iterative loop, and much more!

See Highlighted commands below for video showcase of the core snippets, or List of all snippets to see the 121 available commands! :smile:

Built-in UI with help and information about every command

qTools has an integrated UI filled with help and information about the commands and their use cases:

  • ‘Commands’ section with information about the command, its use cases and other important information depending on their kind.
  • Search bar to filter commands by type, name or functionality.
  • ‘Help’ section with information about how to use the plugin.

Highlighted commands :fire:

Instance references

qTools allows you to generate references to instances, either globally (game.[Service].[...].[Instance]) or locally (script.[...].[Instance]):

References to Instances

References to Modules (includes require automatically!)

Shortcuts for Services

qTools has quick and easy to remember snippets for the most commonly used Services (and lesser known ones!):

Code documentation

qTools gives you a Header template with your information, and an automatically generated date:

Leaderboard creator

qTools allows you to generate a fully working and customizable leaderboard with just one snippet.

Loops

qTools supports a wide variety of loops, including more specific ones like foreach (pairs), foreach (ipairs) or foreach (player):

Random numbers

qTools has snippets to generate random numbers, either from a given range, or just a random number:

There are just some of the most time-saving commands, be sure to check List of all snippets below to have a look of all the plugin’s capacities! :blush:

List of all commands :memo:

Unfold to see the 121 commands of qTools 👇

Command: help:q
Command type: Special. The code returned is generated on the go for each case.
Description: Prints all the commands to the console.

Command: info:q
Command type: Special. The code returned is generated on the go for each case.
Description: Prints all the plugin’s information to the console.

Command: credits:q
Command type: Special. The code returned is generated on the go for each case.
Description: Prints all the credits to the console.

Command: header:0arg0:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Author’s Name
> Argument 2: Group’s Name
> Argument 3: Description
Description: Generates a script header to include the file’s date, author, group and description.

Command: desc:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Description
Description: Generates a description for the following code.

Command: acon:q
Command type: Special. The code returned is generated on the go for each case.
Description: Turns on the Command autocompletion (Slower).

Command: acoff:q
Command type: Special. The code returned is generated on the go for each case.
Description: Turns off the Command autocompletion (Faster).

Command: date:q
Command type: Special. The code returned is generated on the go for each case.
Description: Generates a comment with the current date in YYYY/MM/DD format.

Command: #comms:q
Command type: Special. The code returned is generated on the go for each case.
Description: Prints the total number of commands.

Command: joke:q
Command type: Special. The code returned is generated on the go for each case.
Description: Prints a joke (85% chance of being bad).

Command: for:q
Command type: Normal. Always behaves the same.
Description: Generates a for loop (from 1 to X).

Command: fori:q
Command type: Normal. Always behaves the same.
Description: Generates an inverse for loop (from X to 1).

Command: fore:q
Command type: Normal. Always behaves the same.
Description: Generates a for loop to interate over a Dictionary (in pairs).

Command: fora:q
Command type: Normal. Always behaves the same.
Description: Generates a for loop to interate over an Array (in ipairs).

Command: forep:q
Command type: Normal. Always behaves the same.
Description: Generates a for loop to interate over all players.

Command: while:q
Command type: Normal. Always behaves the same.
Description: Generates a while loop with X condition.

Command: wtd:q
Command type: Normal. Always behaves the same.
Description: Generates an endless while loop.

Command: wwd:q
Command type: Normal. Always behaves the same.
Description: Generates an endless while loop that waits X seconds each iteration.

Command: rep:q
Command type: Normal. Always behaves the same.
Description: Generates a repeat until loop with X condition.

Command: hw:q
Command type: Normal. Always behaves the same.
Description: Generates a ‘Hello world!’ print.

Command: vlref:q
Command type: Special. The code returned is generated on the go for each case.
Description: Makes a value referencing the selected instance in the Explorer. The instance is referenced from the script where referece is made (Example: script.Parent.Parent).

Command: vref:q
Command type: Special. The code returned is generated on the go for each case.
Description: Makes a value referencing the selected instance in the Explorer. The instance is referenced from the root ‘game.X’ (Example: game.Workspace.Baseplate).

Command: lref:q
Command type: Special. The code returned is generated on the go for each case.
Description: Generates a reference of the selected instance in the Explorer. The instance is referenced from the script where referece is made (Example: script.Parent.Parent).

Command: ref:q
Command type: Special. The code returned is generated on the go for each case.
Description: Generates a reference of the selected instance in the Explorer. The instance is referenced from the root ‘game.X’ (Example: game.Workspace.Baseplate).

Command: lclone:q
Command type: Special. The code returned is generated on the go for each case.
Description: Makes a value referencing a clone of the selected instance in the Explorer. The instance is referenced from the root ‘game.X’ (Example: game.Workspace.Baseplate).

Command: clone:q
Command type: Special. The code returned is generated on the go for each case.
Description: Makes a value referencing a clone of the selected instance in the Explorer. The instance is referenced from the script where referece is made (Example: script.Parent.Parent).

Command: locfnr:q
Command type: Normal. Always behaves the same.
Description: Generates a local function that returns X.

Command: locfn:q
Command type: Normal. Always behaves the same.
Description: Generates a local function.

Command: fnr:q
Command type: Normal. Always behaves the same.
Description: Generates a function that returns X.

Command: fn:q
Command type: Normal. Always behaves the same.
Description: Generates a function.

Command: mkmod:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Name
Description: Creates a new ModuleScript inside the script that’s being edited, and generates a reference to the new ModuleScript.

Command: mkscript:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Name
Description: Creates a new Script inside the script that’s being edited.

Command: mkls:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Name
Description: Creates a new LocalScript inside the script that’s being edited.

Command: tolocal:q
Command type: Special. The code returned is generated on the go for each case.
Description: Changes the Script from Script to LocalScript.

Command: toserver:q
Command type: Special. The code returned is generated on the go for each case.
Description: Changes the LocalScript from LocalScript to Script.

Command: randi:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Range start
> Argument 2: Range end
Description: Creates a new random integer between the given range.

Command: randf:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Range start
> Argument 2: Range end
Description: Creates a new random float between the given range.

Command: rand:q
Command type: Normal. Always behaves the same.
Description: Creates a new random number with no range.

Command: pcall:q
Command type: Normal. Always behaves the same.
Description: Generates a Protected Call (pcall) function.

Command: tween:q
Command type: Normal. Always behaves the same.
Description: Generates a Tween.

Command: lreq:q
Command type: Special. The code returned is generated on the go for each case.
Description: Generates a reference of the selected ModuleScript in the Explorer. The reference is made from the script where referece is made (Example: script.Parent.Parent).

Command: req:q
Command type: Special. The code returned is generated on the go for each case.
Description: Generates a reference of the selected ModuleScript in the Explorer. The reference is made from the root ‘game.X’ (Example: game.Workspace.Baseplate).

Command: fhashum:q
Command type: Normal. Always behaves the same.
Description: Generates a function to check if the instance has a Humanoid.

Command: fpchar:q
Command type: Normal. Always behaves the same.
Description: Generates a function to get the Player from the given character.

Command: debounce:q
Command type: Normal. Always behaves the same.
Description: Generates a Debounce.

Command: dtcount:q
Command type: Normal. Always behaves the same.
Description: Generates a counter that works with DeltaTime.

Command: padd:q
Command type: Normal. Always behaves the same.
Description: Generates a function connection when a player is added to the server.

Command: pleave:q
Command type: Normal. Always behaves the same.
Description: Generates a function connection when a player is removed from the server.

Command: raycast:q
Command type: Normal. Always behaves the same.
Description: Generates a Raycast in the Workspace, from Origin to Direction.

Command: tpplace:q
Command type: Normal. Always behaves the same.
Description: Generates a teleport to the place with the given Id.

Command: lerp:q
Command type: Normal. Always behaves the same.
Description: Generates a Linear Interpolation (Bezier Curve) function (two points).

Command: qbez:q
Command type: Normal. Always behaves the same.
Description: Generates a Linear Interpolation (Bezier Curve) function (three points).

Command: cbez:q
Command type: Normal. Always behaves the same.
Description: Generates a Linear Interpolation (Bezier Curve) function (four points).

Command: leaderboard:q
Command type: Normal. Always behaves the same.
Description: Generates a leaderboard for the players that join the server.

Command: nstat:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Name
Description: Generates number stat for the leaderboard.

Command: sstat:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Name
Description: Generates string stat for the leaderboard.

Command: v2:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: X
> Argument 2: Y
Description: Generates a new Vector2 with the given coordinates.

Command: v3:0arg0:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: X
> Argument 2: Y
> Argument 3: Z
Description: Generates a new Vector3 with the given coordinates.

Command: cfpl:0arg0:0arg0:0arg00arg0:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: posX
> Argument 2: posY
> Argument 3: posZ
> Argument 4: lookAtX
> Argument 5: lookAtY
> Argument 6: lookAtZ
Description: Generates a new CFrame with the given Position Vector3, looking at the LookAt Vector3.

Command: cfp:0arg0:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: X
> Argument 2: Y
> Argument 3: Z
Description: Generates a new CFrame with the given Position Vector3.

Command: cf:0arg0:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: X
> Argument 2: Y
> Argument 3: Z
Description: Generates a new CFrame with the given coordinates.

Command: udim2:0arg0:0arg0:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: X Scale
> Argument 2: X Offset
> Argument 3: Y Scale
> Argument 4: Y Offset
Description: Generates a new UDim2 with the given Arguments.

Command: udim:0arg0:0arg0:q
Command type: Argument. The code returned depends on the given Arguments.
> Argument 1: Scale
> Argument 2: Offset
Description: Generates a new UDim with the given Arguments.

Command: vUIS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the UserInputService (Service)

Command: vCAS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the ContextActionService (Service)

Command: vW:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the Workspace (Service)

Command: vP:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the Players (Service)

Command: vL:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the Lighting (Service)

Command: vMS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the MaterialService (Service)

Command: vRF:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the ReplicatedFirst (Service)

Command: vRS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the ReplicatedStorage (Service)

Command: vSSS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the ServerScriptService (Service)

Command: vSS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the ServerStorage (Service)

Command: vSG:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the StarterGui (Service)

Command: vSPack:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the StarterPack (Service)

Command: vSP:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the StarterPlayer (Service)

Command: vT:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the Teams (Service)

Command: vSDS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the SoundService (Service)

Command: vC:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the Chat (Service)

Command: vTCS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the TextChatService (Service)

Command: vVCS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the VoiceChatService (Service)

Command: vLS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the LocalizationService (Service)

Command: vTTS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the TestService (Service)

Command: vBS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the BadgeService (Service)

Command: vMPS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the MarketplaceService (Service)

Command: vrun:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the RunService (Service)

Command: vTS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the TweenService (Service)

Command: vTPS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the TeleportService (Service)

Command: vDSS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the DataStoreService (Service)

Command: vSLS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the SocialService (Service)

Command: vIS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the InsertService (Service)

Command: vS:q
Command type: Normal. Always behaves the same.
Description: Makes a value referencing the Selection (Service)

Command: UIS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the UserInputService (Service)

Command: CAS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the ContextActionService (Service)

Command: W:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the Workspace (Service)

Command: P:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the Players (Service)

Command: L:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the Lighting (Service)

Command: MS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the MaterialService (Service)

Command: RF:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the ReplicatedFirst (Service)

Command: RS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the ReplicatedStorage (Service)

Command: SSS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the ServerScriptService (Service)

Command: SS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the ServerStorage (Service)

Command: SG:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the StarterGui (Service)

Command: SPack:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the StarterPack (Service)

Command: SP:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the StarterPlayer (Service)

Command: T:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the Teams (Service)

Command: SDS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the SoundService (Service)

Command: C:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the Chat (Service)

Command: TCS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the TextChatService (Service)

Command: VCS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the VoiceChatService (Service)

Command: LS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the LocalizationService (Service)

Command: TTS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the TestService (Service)

Command: BS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the BadgeService (Service)

Command: MPS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the MarketplaceService (Service)

Command: run:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the RunService (Service)

Command: TS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the TweenService (Service)

Command: TPS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the TeleportService (Service)

Command: DSS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the DataStoreService (Service)

Command: SLS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the SocialService (Service)

Command: IS:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the InsertService (Service)

Command: S:q
Command type: Normal. Always behaves the same.
Description: Generates a reference to the Selection (Service)

This is the first version of qTools, I already have planned more commands to implement soon! Be sure to write down any questions you have or feedback you’d like to share, I will be reading and responding to everyone! Thank you! :grin:

Get qTools here (50% Off until September 1st)

Change log

Unfold to see all previous versions

:warning: IMPORTANT: To use qTools, you must grant it permissions to read and modify your scripts. This is only to allow qTools to swap the commands you use for the actual code linked to said commands. :warning:

12 Likes

thanks man, this is so much easier and faster than doing it manually. good job!

2 Likes

game.Workspace.Folder.Folder.Folder.Folder.Folder.Folder.Noob

Wouldn’t it be better to store types in a module that the plugin manages automatically?

4 Likes

I’m glad you found it useful!! :smile:

Stay tuned because I’m planning to add more features besides snippets! :wink:

1 Like

The idea behind references to instances in qTools is to save you from writting the entire route to the instance you need each time you have to use a new one.

The video example is quite convoluted as I wanted to point out how much faster it is to simply select your instance and write one of the following commands: ref:q, lref:q, vref:q or vlref:q.

Here you have some examples more similar to a real use case:

Making a 'global' reference from game.(...).Instance

Making a 'local' reference from script.(...).Instance

1 Like

UPDATE [1.1.0] - 2023/08/23

  • Added a new Widget to show the new features when qTools updates.

  • Now you can make references to multiple selections at the same time.

  • Added new commands for interactions with Badges (3 new commands, 123 commands in total):
    • badge: Generates a function to get the information of a badge by its Id.
    • badgeaw: Generates a function to award a badge by its Id.
    • badgeplr: Generates a function to get if a player has the given badge by Id.