Pick - quick instance selection

Part of the Elttob Classic Suite

Reclass-Convert Reclass classicImiji-x32 ImijiAtmos-Pro AtmosPick-Pro-x32 PickInCommand-Dark-x32 InCommand


Next generation: Celebrating the launch of the Creator Store with four incredible product releases.


Pick is a plugin that allows you to quickly and precisely select instances using a powerful text-based syntax.

image1

To select items, you type in specially formatted commands, known as rules.

Click the Pick button to open a textbox, where you can type in a rule.
Once you finish typing, press Enter ↵ to select any matching instances.
Unless the Pin UI option is selected, the textbox will close.


By using various syntax, you can select and filter instances differently; these are the different methods you can use to select instances:

Name matching


Typing the name of an instance, without spaces, will match all instances with that name (case sensitive)


Names with spaces can be escaped with quotes.

Class matching


Putting a full stop ‘.’ before a name turns it into a class name, and will match instances which inherit from the given class name. Class matching can be combined with name matching by putting the class directly after the name, e.g. Baseplate.BasePart

Tag matching


You can match usign CollectionService tags in a similar way to classes, using hashes ‘#’ instead of full stops ‘.’

Combining names, classes and tags


To match by multiple things at the same time, start with the name, then add the class name and tag name after, in either order. The standard way of doing this is Name#Tag.Class, but Name.Class#Tag also works!

Children matching


You can select direct children using the arrow operator ‘>’. In the above example, Pick first matches all instances using the rule .BasePart, then matches the children of those instances with the rule .Decal. This has the effect of selecting all decals inside of baseparts.

Wildcards


Using the wildcard ‘*’ in place of an instance name matches all instances. The above example selects all instances which are children of Workspace.

Captures


If you want to capture a certain instance in a rule, you can surround the name/class/tag with braces ‘{ }’. This will perform the usual matching, but returns a different instance. The default behaviour is to capture the last child, so captures are useful if you only want to select instances which contain certain children, for example.

In the above example, Pick will match all BaseParts, then match any Decals inside them. Pick will then select all of the BaseParts which had Decals inside of them.

Combining rules


If one rule can’t describe your selection, combine multiple rules by separating them with commas. The results from the two matches will be combined.


Try out Pick for yourself: https://www.roblox.com/library/2724083983/Pick-quick-instance-selection

Hopefully you find this plugin useful :slightly_smiling_face:

92 Likes

That looks awesome! Thanks for sharing, this seems pretty useful :slight_smile:

If you're looking for some extra features, I might have some questionable ideas...

First idea: Give it a hotkey so we don’t need to use the mouse AT ALL! Similar to Discord’s Ctrl+K or Vivaldi’s F2 for the quick command bars.

Second idea: In line with quick command bars, maybe show some results in a drop-down that can be navigated with the arrow keys? This is for situations with multiple matches, especially when you’re writing incomplete names. Pressing tab could also autocomplete the first item in the drop-down, too.

The second seems pretty big and it’s not super important so whatever. Probably a waste of time lmao

6 Likes

Thanks! Those ideas look pretty neat too :stuck_out_tongue:

Sounds good to me! I’m not exactly sure how plugin actions work, but I thought you had to go to Customise Shortcuts to add keyboard shortcuts. If there’s a programmatic way of doing it let me know, I’ll add it!

This could be quite interesting, I might look at doing this sometime. I could also add in a history feature where you can use the arrow keys to go through past searches, too!

1 Like

Unfortunately the only way of making default keybinds is by using UserInputService. Plugin actions don’t have that functionality. But, you could prompt the user to manually set a hotkey when the plugin starts with a ok/dont-show-this-again popup. It wouldn’t actually set the hotkey but at least it’ll let the users know what to do to enable it – of course this would be using the plugin action system.

1 Like

This seems really useful! I’ll try it out tomorrow.

1 Like

Seems like a cool alternative to the alt+moving the mouse til it starts selecting individual parts in a model. Only disadvantage I can see is that it’ll still take some time for people who don’t change their part/models/unions names.

2 Likes

I mainly designed it with scripters and UI designers in mind, but this could definitely be used for builders as a quicker alt select :slight_smile:

2 Likes

Yes!! I’ll be using this! Thank you! :smile:

2 Likes

It’s been over a year since I’ve properly updated this plugin. I think it’s about time!

I’ve been working on redesigning Pick from the ground up to be easier to use and more flexible. I’m looking at moving away from the old Pick engine to a new purpose-built engine. I also want to move away from using just text, instead looking at a richer input method using tokens:

This is only a UI mockup in Figma at the moment, and this might not be what the final product looks like, but this is the direction I’m looking to head in. What do you think?

17 Likes

Very useful and amazing plugin. Thanks!

1 Like

Very useful. There was a lot of viruses in the game I was making and all I had to do was type the name of the virus and it selected them all so easily! I got to remove them in like a couple of seconds. I used to be selecting each item and it took a very long time. This really solves my issues and I really appreciate this plugin. I was thinking about making something like this myself but didn’t know how. Really love it. Wish I had this before though would have really have saved time.

1 Like

This UI looks pretty good so far, and it would be definitely a lot easier to use. Good work Elttob!

YES
PLEASE
Please let us know the progress.

1 Like

Sorry for not getting back sooner! I’m still chipping away at getting Pick rewritten :slightly_smiling_face:

I’ve rewritten the code responsible for constructing rules and matching instances to be more modular internally:

From here, I need to rewrite the lexer and parser used to process text input, then rebuild the plugin around the new codebase.

3 Likes

I keep getting this error while using this: image

1 Like

This should be fixed now - Roblox introduced a bug into Studio recently which added extra characters onto the end of textbox inputs. Restart your Studio if it’s open already and try again; if it persists, I’ll look into it for you :slightly_smiling_face:

1 Like

Do you have plans for the new version to be able to search by properties? For instance, I could pick specifically red parts.

3 Likes

I agree with AstroCode’s suggestion and I’m wondering when the next update will be released.

1 Like

When are you going to finish this new redesign? I am VERY excited as the current Pick is really good but the UI is lacking and when starting the plugin it can be difficult to understand. :grimacing:

2 Likes

Feature Request: Be able load the last used commands using the up and down arrows just like a terminal

3 Likes