To better explain, I know how to change the player's character, but when one does, the original character is removed from the game. I want the player to either shrink (I would prefer this method if possible) or control something else without the removal of the original character.

Current code:

local player = game.Players.LocalPlayer
local playergui = player.PlayerGui
local mouse = player:GetMouse()
local char = player.Character
local emerald = script.Parent
local emeraldEquipped = false
local cam = game.Workspace.CurrentCamera
debounce = false

emerald.Equipped:connect(function()
	emeraldEquipped = true
end)

emerald.Unequipped:connect(function()
	emeraldEquipped = false
end)

mouse.KeyDown:connect(function(key)
	if emeraldEquipped == true then
		key = key:lower()
		if key == "r" then
			if debounce == false then
				debounce = true
				char.Animate:clone().Parent = game.Workspace.Superhero
				player.Character = game.Workspace.Superhero
				cam.CameraSubject = game.Workspace.Superhero.Head
				cam.CameraType = "Follow"
			elseif debounce == true then
				if game.Workspace:FindFirstChild(player.Name) then
					player.Character = game.Workspace:FindFirstChild(player.Name)
				else
					player:LoadCharacter()
				end
				debounce = false
			end
		end
	end
end)

1 comment

0

This is a very difficult to do seamlessly. The idea is you need to clone the original character, and replace it back where it was. But before you clone it, you need to set it's Archivable property to true.