Swap | Effortless class migration

AppIcon

Swap


RobloxMarketplace | LinkIcon · LinkIcon · LinkIcon · LinkIcon


Swap lets you change the class name of an instance and copy, cut. and paste attributes, properties, and tags.

Swap’s class converter leverages superclass, property, and pre-defined conversion data in tandem with your conversion history to dynamically predict what classes you are searching for with extreme accuracy. To increase your typing speed, Swap lets you tap the SPACE or TAB key on your keyboard to fill entire words within class names; See it in action below.

1

You can even control whether deprecated classes show up in suggestions by changing the “Deprecated Objects Shown” setting in Studio settings, making Swap feel it’s part of Studio.

When you’re ready to convert a class, you can do it any way you’d like. The helpful guide below shows you what each option does.

  • Insert and Include Descendants: Clones selected objects and their descendants and converts the clones of the selected objects to their target class.

  • Insert and Exclude Descendants: Clones selected objects and converts them to the target class.

  • Replace and Include Descendants: Converts selected objects to the target class and keeps their descendants.

  • Replace and Exclude Descendants: Converts selected objects to the target class and removes their descendants.

Once you’re done converting a class, you’ll notice that attributes and tags all carry over to the new class. You’ll even see property values that you set as the class you’re converting change to the new class; This is especially helpful when dealing with welds and other constraints.

When you just need to move some attributes or tags around, there’s a way to do that too. Every action (copy, cut, and paste) has a shortcut so you can do even faster with just the press of a few keys.


API Permissions
  • Script Injection: Is required if the class you are converting to is a script or has a descendant that is a script. This is also required if you want to change a script’s source when pasting properties.

  • HTTP Requests: are required for initial setup. After, you do not need to keep them enabled but doing so may result in more errors over time.

What’s new

This text will be hidden


RobloxMarketplace | LinkIcon · LinkIcon · LinkIcon · LinkIcon


Version 1.9.6

Thank you.

41 Likes

What makes this different from Reclass?

4 Likes

Here’s some of the key ones:

  • Attributes carry over to converted classes

  • Descendants of converted classes don’t disappear when undoing the action

  • There is more than one way of converting classes

  • You can find classes faster

  • Suggestions (based off of conversion history, analysis of properties, superclass heritage, and a handpicked list of most compatible classes) appear when selecting multiple classes of different types

23 Likes

1.8.1


This update improves search, helps make the transition over to a new class easier, greatly expands on the copy/paste attributes feature, and includes a few changes and bug fixes.


Bug fixes:

  • The mouse icon would not change while hovering over the swap button until it left and reentered it

  • The icon for the class filled in the search bar would not automatically adjust when the Studio theme changed

  • Roblox Studio’s undo/redo system did not work when copying and pasting attributes

Changes:

  • New way of indicating whether a class has been found while searching for one

SwapDemo

Features:

  • Copy and pasting attributes has been expanded to properties and tags as well

  • Searching for new classes is even faster now with results prioritized by similarity of property names

  • When a class is replaced now, any instance-type properties in your entire game holding the old instance value will be replaced with the new one

2 Likes

1.8.2


A few changes have been made to improve class suggestions in Swap.

More recommendations have been added for WedgeParts, Humanoids, Sounds, and Configurations when nothing is being searched for.

Same-class results have been deprioritized in searches to allow more relevant classes to appear. If you convert to the same class, the class will be re-prioritized since conversion history has a large influence on results.

2 Likes

Just want to comment since there are basically none but your own, this plugin is fantastic; it is significantly better than Reclass and better looking as well.

The fact that it is free is absolutely astounding and is well appreciated. I was a Reclass user prior - and, as soon as I saw this - I switched. Haven’t regretted doing so, thanks for making this!

5 Likes

Not gonna lie, I really love this plugin too.

2 Likes

1.8.3


This update contains a few bug fixes to address problems created by some classes, includes changes to class data sourcing, and greatly improves class recommendations once again.


Changes:

  • Swap acquires the latest class data from a different source (s3.amazonaws.comraw.githubusercontent.com). If you’ve been using Swap for a few months now, you may not see an HTTP request permission prompt from Roblox Studio.

Bug Fixes:

  • DynamicMesh now appears as EditableMesh in search and when converted to

  • Some classes like “Player” and “PluginAction” are no longer convertible because they have special Parent property or creation restrictions. These classes will not appear in searches and dont’t count as a selectable class anymore.

Full Excluded Classes List
  • AdvancedDragger
  • Breakpoint
  • DebuggerWatch
  • Dragger
  • GetTextBoundsParams
  • Noise
  • ParabolaAdornment
  • Player
  • PluginAction
  • RobloxEditableImage
  • StudioAttachment
  • StudioCallout
  • TrackerStreamAnimation

Improvements:

  • Contextual suggestions now consider superclass relatability and built-in recommendations when suggesting classes as you type

  • The library of built-in suggestions, that recommend classes when you haven’t typed anything, has been expanded from 38 to over 200.

1 Like

1.8.4 │ LinkIcon · LinkIcon · LinkIcon


This update and updates to all linked items fixes a major bug with TextBoxes. When TextBoxes were automatically made traversable in a recent update, it, combined with the existing system, caused text to be improperly positioned.

An update that reimplements the original text traversing system is coming soon to all affected items.

1.8.5


Changes:

Bug Fixes:

  • An error appeared in the output if anything was pasted without something being copied first

Improvements:

  • Update On Text Traversing

    The system used to automatically move text so the cursor always stays in view (scrollable text) has been added back to Swap, CS Studio, and Performance. It will be added to CFS later.

  • Some changes made to contextual suggestions
1 Like

1.8.7


  • Fixed an error that would occur when Properties were “pasted” without first being copied

1.9.0


Highlights

Cut Attributes and Tags

The cut tool works like you’d normally expect: data from a chosen type is copied and removed from the object it was copied from. Using the cut tool on properties is functionally the same as using copy tool.

Tab To Type

For classes that start with the same letters like “ImageLabel” and “ImageButton” or “TextLabel”, “TextButton”, and “TextBox” and often require a lot of typing to select, pressing the tab key or the space bar instantly fills words within class names.

Here’s what selecting one of these classes looked like before:

2a|1636 × 336

Now this is what it looks like:

2b|1636 × 336


Full release notes:

Bug fixes:

  • Class converter dropdown menu appeared after pressing enter to exit the search field while no class is selected

  • Class converter animation broke when instantly selecting no or invalid classes and then selecting valid classes

  • Some copied properties did not paste to objects

Changes:

  • Copying no attributes or tags will no longer empty the clipboard

  • When no class has been selected, instead of clearing the text field when focusing, text now clears when leaving

Improvements:

  • Better error reporting in the output

  • Resolved unnecessary checks while replacing classes and during Studio theme changes

  • Changed default recommendation Shirt --> Accessory to Shirt --> ShirtGraphic

  • Excluded the following classes from appearing in search and qualifying as a valid class in Swap’s class converter:
    (If you are affected by this, please reply below)

    • UserNotificationPayload
    • UserNotificationPayloadAnalyticsData
    • UserNotificationPayloadJoinExperience
    • UserNotificationPayloadParameterValue

    • ReflectionMetadataClass
    • ReflectionMetadataEnum
    • ReflectionMetadataEnums
    • ReflectionMetadataEvents
    • ReflectionMetadataClasses
    • ReflectionMetadataMember
    • ReflectionMetadataCallbacks
    • ReflectionMetadataFunctions
    • ReflectionMetadataEnumItem
    • ReflectionMetadataProperties
    • ReflectionMetadataYieldFunctions

    • HiddenSurfaceRemovalAsset
  • UI changes for a smaller overall horizontal size

Features:

  • Cut tool for attributes and tags (properties is available but is functionally the same as the copy tool)

  • Tab and space to fill words within class names like “t” → “text” in the class: “TextButton”

2 Likes

Seems WAY better than elttobs $2899.99 plugin, thank you so much for this fantastic resource.

5 Likes

How is this different from reclass?

1 Like

I asked that same question somewhere around November of 2023, but the OP gave some key differences

And in addition to that, Swap also automatically changes instance-type property values. This means that welded parts converted to MeshParts, SpawnPoints, etc, do not need to be re-welded.

1 Like

1.9.2


In the latest update of Swap, warnings in the output have been replaced without pop-up widgets to more clearly display problems and how to resolve them.

There’s also now a distinction between when you haven’t selected a valid class and when there is nothing recommended.

And objects that can only be parented to a limited number of other objects will no longer causes errors to appear in the output. Instead, they will silently be deleted.


RobloxMarketplace

In Eltobb’s reclass, reclassifying an instance to an ImageButton or other instances can result in issues where events connections from the parent instance, such as an ImageButton MouseHover event inside a local script, fail to function correctly, does your plugin by chance not have this problem?

(It’s quite possible that any sort of scripts fail to properly connect to events of any kind of instance when reclassed, but i’ve only personally encountered this with textbuttons and image buttons since i dont really reclass anything else)

Are you trying to change the class of an object during runtime: while events are connected to that instance? Could you also elaborate on how your LocalScript is getting the instance value of that ImageButton/Object?

Not during runtime no, what I did was i took a frame, and then reclassed it to an imagebutton, then whenever i put a local script inside of the image button and connect to the imagebutton via any connections like MouseEnter, it simply doesn’t work, i could try to even do a simple print and it wouldn’t work.

local button = script.Parent

button.MouseEnter:Connect(function()
This is how i connect to the events.
end)

there isnt any problems with my code considering i copy and paste from other already working local scripts and it just doesn’t seem to actually work