This tutorial will be walk over just how to properly produce an R15 morph rig the is able come be supplied in conjunction through an R15 auto-morph script. This accuse is expected for individuals who wish to effectively use functioning auto-morphs in your genres or game.

You are watching: How to make a morph roblox

To begin setup up her rig, you’ll require to gain a default one first. The easiest means of gaining one is to click the “Plugins” tab, click on “Rig Builder”, make sure it’s collection to R15 and then click the “Block Rig” option.

You’ll then want to open the dummy model up in Workspace to watch this.
Delete all of that for each one. Do not delete the mesh within of the Head though! You’ll additionally want to open up up the yes, really mesh inside of the Head and also delete the OriginalSize value.
Now you’ll want to rename every of the MeshParts inside of the models come “Middle” (without the quotations).

Screenshot_9.png156×620 6.28 KB

You have actually successfully set up an R15 morph rig that is ready to be offered with one auto-morph script. Auto-morph scripts spawn you in as the morph of her choosing. There space a plethora of methods to architecture your auto-morph script, however I usage a compact and basic one the will job-related for you.

To begin setting up your auto-morph script, go to ServerStorage, do a new folder and also name the “Morphs”. Currently inside the morphs folder you’ll want to make an additional folder and also name it everything you’d like, yet I personally surname mine the surname of the video game I’m working on. Inside of that folder you’ll want to make an additional folder and also name that “PersonalMorphs” every one of the morphs you’ll desire to use through the auto-morph manuscript will go inside of the PersonalMorphs folder. If you acquired a morph you want to use, climate make an additional folder inside of the PersonalMorphs folder and name it every little thing you like. I personally surname mine the name of the character my morph is. It’s simpler to discover them if you have a many them in there.Select all of those (not the fake itself) then copy and also paste them right into your folder the you named.

Now let’s relocate onto the manuscript I have produced that friend can create yourself through these photos. Begin by going right into ServerScriptService and also making a script. Name that manuscript “Morph”. Now open the script up, delete “print(“Hello world!”)” and we shall start constructing it.

local players = game:GetService("Players")local form = game:GetService("ServerStorage"):WaitForChild("Morphs") -- Looks because that the "Morph" folder you"ve developed earlier.local visible = falselocal recol = ""function morph(plr, part, location, model, test)if plr ~= nil thenif check == "Morph" thenif plr:FindFirstChild("Morph") == nil thenlocal Folder ="Folder")Folder.Name = "Morph"Folder.Parent = plrendelseif test == "Coat" climate -- The "Coat" and "Pauld" statements have the right to be fully ignored or removed without harming the script.if plr:FindFirstChild("Coat") == nil thenlocal Folder ="Folder")Folder.Name = "Coat"Folder.Parent = plrendelseif check == "Add" thenif plr:FindFirstChild("Add") == nil thenlocal Folder ="Folder")Folder.Name = "Add"Folder.Parent = plrendelseif check == "Pauld" thenif plr:FindFirstChild("Pauld") == nil thenlocal Folder ="Folder")Folder.Name = "Pauld"Folder.Parent = plrendendlocal Folder = (test == "Morph" and plr:FindFirstChild("Morph") or check == "Coat" and also plr:FindFirstChild("Coat") or check == "Add" and plr:FindFirstChild("Add") or check == "Pauld" and also plr:FindFirstChild("Pauld"))if Folder:FindFirstChild(model) == nil thenlocal g = location:Clone()g.Parent = Folderfor i, v in ipairs(g:GetChildren()) doif v:IsA("BasePart") thenlocal W ="Weld")W.Part0 = g.MiddleW.Part1 = vlocal CJ = C0 = g.Middle.CFrame:inverse() * CJlocal C1 = v.CFrame:inverse() * CJW.C0 = C0W.C1 = C1W.Parent = g.Middleendlocal Y ="Weld")Y.Part0 = plr:FindFirstChild(part)Y.Part1 = g.MiddleY.C0 =, 0, 0)Y.Parent = Y.Part0endlocal h = g:GetChildren()for ns = 1, # h doif h.className == "Part" or h.className == "UnionOperation" or h.className == "MeshPart" or h.className == "WedgePart" then h.Anchored = falseh.CanCollide = falseendendendendendlocal role RunThings(char,Model, test)pcall(function()if Model:findFirstChild("Head") thenmorph(char, "Head", Model, "Head",test)endif Model:findFirstChild("UpperTorso") climate -- Looks because that the body part models put inside the the named folder friend made.morph(char, "UpperTorso", Model, "UpperTorso",test)endif Model:findFirstChild("LowerTorso") thenmorph(char, "LowerTorso", Model, "LowerTorso",test)endif Model:findFirstChild("LeftUpperArm") thenmorph(char, "LeftUpperArm", Model, "LeftUpperArm",test)endif Model:findFirstChild("RightUpperArm") thenmorph(char, "RightUpperArm", Model, "RightUpperArm",test)endif Model:findFirstChild("LeftLowerArm") thenmorph(char, "LeftLowerArm", Model, "LeftLowerArm",test)endif Model:findFirstChild("RightLowerArm") thenmorph(char, "RightLowerArm", Model, "RightLowerArm",test)endif Model:findFirstChild("LeftHand") thenmorph(char, "LeftHand", Model, "LeftHand",test)endif Model:findFirstChild("RightHand") thenmorph(char, "RightHand", Model, "RightHand",test)endif Model:findFirstChild("LeftUpperLeg") thenmorph(char, "LeftUpperLeg", Model, "LeftUpperLeg",test)endif Model:findFirstChild("RightUpperLeg") thenmorph(char, "RightUpperLeg", Model, "RightUpperLeg",test)endif Model:findFirstChild("LeftLowerLeg") thenmorph(char, "LeftLowerLeg", Model, "LeftLowerLeg",test)endif Model:findFirstChild("RightLowerLeg") thenmorph(char, "RightLowerLeg", Model, "RightLowerLeg",test)endif Model:findFirstChild("LeftFoot") thenmorph(char, "LeftFoot", Model, "LeftFoot",test)endif Model:findFirstChild("RightFoot") thenmorph(char, "RightFoot", Model, "RightFoot",test)endend)endlocal role MorphUser(User,Team,Class,Morph,name)local MorphRoot = Morphs:WaitForChild(Morph)local version = MorphRoot:Clone()local char = User.CharacterRunThings(char,Model,name)endlocal function Body(depth,height,width,Char)for _,v in pairs(Char.Humanoid:GetChildren()) doif v.ClassName == "NumberValue" thenif v.Name == "BodyDepthScale" then -- watch for any type of changes made to the depth, height and also width variables.v.Value = depthelseif v.Name == "BodyHeightScale" thenv.Value = heightelseif v.Name == "BodyWidthScale" thenv.Value = widthendendendendlocal function Finale(Char)for i,v in pairs(Char:GetChildren()) doif v:IsA("Accessory") or v:IsA("Hat") thenv:Destroy()endendendlocal function Finale0(Char)for i,v in pairs(Char:GetChildren()) doif v.ClassName == "MeshPart" or v.ClassName == "n/a" thenv.Transparency = 1if v:FindFirstChild("n/a") then v.face:remove()endendendendlocal function Finale1(Char)for i,v in pairs(Char:GetChildren()) doif v.ClassName == "MeshPart" or v.ClassName == "Part" thenv.Transparency = 1if v:FindFirstChild("face") climate v.face:remove()endendendendlocal duty Finale2(Char)for i,v in pairs(Char:GetChildren()) doif v.ClassName == "MeshPart" or v.ClassName == "Part" and v.Name ~= "Head" or v.Name ~= "LeftHand" or v.Name ~= "RightHand" thenv.Transparency = 1endendendlocal role Head(head,Char) because that _,v in pairs(Char.Humanoid:GetChildren()) execute if v.ClassName == "NumberValue" climate if v.Name == "HeadScale" climate v.Value = head finish end endendPlayers.PlayerAdded:connect(function(Player)Player.CharacterAdded:connect(function(Character)wait(2)visible = falseif Player.Name == "PLAYER NAME" climate -- changing these variables alter the morph features entirely.Body(1,1,1,Character)MorphUser(Player,"MAP NAME","PersonalMorphs","MORPH NAME","Morph")Finale(Character)Finale1(Character)endend)end)In the if Player.Name == ‘CalvinKadir’ statement, you’ll want to change CalvinKadir with your very own username or somebody else’s username. You can conveniently replace the line totally with a group or team rank statement for this reason that details groups or team ranks will obtain the morph instead.

if Player:GetRankInGroup(5025607) == 255

^ that line of password is an example of what you have the right to replace the surname statement with.

You can additionally entirely eliminate the Body(1,1,1,Character) declare if you nothing ever setup on an altering the height, width and depth of your morph. Perform keep in mind the by transforming those values, you’ll have actually to likewise properly scale the morph model itself, or you’ll end up spawning in v your eight or foot floating away from your torso. Ns will define how to do that in a future advanced tutorial.

On line 190 is wherein the folders you’ve developed previously in ServerStorage come in.MorphUser(Player,“The Void”,“PersonalMorphs”,“CalvinKadir”,“Morph”) must be adjusted to the surname of the folders you have created. “The Void” would be readjusted and “CalvinKadir” would be changed. The rest should stay the same.

Basically the Finale statements are there to determine which part of the morph is visible and which part isn’t. This is beneficial at times. Say you desire to do a morph, yet you don’t desire to do a custom head, you can readjust the Finale statement to make the head ~ above the morph invisible so that you have the right to spawn in through the custom body, however still have your very own face, accessories and also head. Or you have the right to just make it whereby you have your head and face, yet not any kind of accessories.

Finale, Finale1, Finale2 and also Finale3 are all the types of Finale explanation you deserve to switch between. This won’t chaos up the manuscript any, so simply experiment and also choose i m sorry one you’d like. An alert that I have two Finales in the password below. One Finale add to onto or negates the result of the other Finale. It’s always a great idea to save the Finale(Character) top top there, however it have the right to be switched for various effects choose I described above.

if Player.Name == ‘CalvinKadir’ then – whole section is changeable.Body(1,1,1,Character)MorphUser(Player,“The Void”,“PersonalMorphs”,“CalvinKadir”,“Morph”)Finale(Character)Finale1(Character)

if Player.Name == ‘’ thenBody(1,1,1,Character)MorphUser(Player,“Map Name”,“PersonalMorphs”,“Morph Name”,“Morph”)Finale(Character)Finale1(Character)

Be certain to change if come elseif on the second one and beyond.

Once you have thoroughly completed every of the procedures above, the facility part is the end of the way. When you sign up with the video game via test or server, you will spawn in as the morph you inserted within the called folder friend created. You’ll proceed to spawn in as this morph till you readjust it within Studio.

This setup is particularly useful for roleplaying genres, such together a Star battles or game of Thrones genre. With the rig functioning, girlfriend can start building and also shaping it into everything character or person you’d like. Because that example, me and my girlfriend have developed some Dishonored morphs, and also many others. Her morph will go as much as her creativity.


When you’re building your morph, be sure to placed the parts you’re including into the exactly body component model. So if you’re building something on the upper left arm, you’d ar those components within the LeftUpperArm model.

I’d recommend not allowing one part to expand to another body part. If you’re building something top top the top arm, the shouldn’t prolong down come the lower arm. It’ll watch a little odd in-game. You deserve to still execute it, and also I usually build from the torso top top the shoulders of each arm all the time. But areas such as the arms might look a bit off.

See more: Driving Distance From Atlanta To Tampa, How Far Is The Drive From Atlanta To Tampa

If girlfriend have any kind of other questions, you re welcome toss me a PM. I’ll get ago with friend as soon as ns can.