2015 Method (outdated, advise using the method above)
I know I’m not the only one who wants to replace the default ROBLOX character with a custom one, so today I’ll be a nice little guest and put away my destructive exploding hammer and teach you how to replace the default character with a custom one, for this tutorial I will use my cute and adorable lizard, Albet Lizinstien.
Step 1.) Create the custom character you wish to replace the default character with. Keep in mind the character will need to have a two parts named “Torso” and “Head” the Head part must be jointed to the Torso part and the joint must be called “Neck”, insert a humanoid into the model and parent the model to the ServerStorage.
Step 2.) Disable game.Players.CharacterAutoLoads
Step 3.) Insert a script into ServerScriptService, inside that script you will need to create a function that will basically do what CharacterAutoLoads will do, except slightly modified.
local function CharacterLoop(Player)
Player:LoadCharacter()
local Character = Player.Character
local NewCharacter = game:GetService("ServerStorage"):WaitForChild("Lizard"):Clone()
NewCharacter.Parent = game.Workspace
NewCharacter.Name = Player.Name
Player.Character = NewCharacter
Character = Player.Character
Character.ChildAdded:connect(function(v)
if v:IsA("BasePart") or v:IsA("UnionOperation") or v:IsA("Script") or v:IsA("LocalScript") or v:IsA("Humanoid") then
return
elseif v:IsA("BodyColor") then
wait()
for i,v in pairs({"Head", "Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg"}) do
if Character:FindFirstChild(v) ~= nil then
Character[v].BrickColor = BrickColor.new("Camo")
end
end
v:Destroy()
else
wait()
v:Destroy()
end
for i,v in pairs({"Head", "Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg"}) do
if Character:FindFirstChild(v) ~= nil then
Character[v].BrickColor = BrickColor.new("Camo")
end
end
end)
local CameraFixer = script.CameraFixer:Clone()
CameraFixer.Disabled = false
CameraFixer.Parent = Player:WaitForChild("PlayerGui")
local Humanoid = Character:WaitForChild("Humanoid")
Character.Animation.Disabled = false
Humanoid.Died:connect(function()
wait(2)
CharacterLoop(Player)
end)
end
local function OnPlayerAdded(Player)
CharacterLoop(Player)
end
game.Players.PlayerAdded:connect(OnPlayerAdded)
for _,Player in pairs(game.Players:GetPlayers()) do OnPlayerAdded(Player) end
Step 4.) Next you will want to create a LocalScript inside that script and name it “CameraFixer”, and inside this script you will want to put in:
local Player = game:GetService("Players").LocalPlayer
local Character = Player.Character or Player.CharacterAdded:wait() Character = Player.Character
local Humanoid = Character:WaitForChild("Humanoid")
local Camera = game.Workspace.CurrentCamera
Camera.CameraSubject = Humanoid
Camera.CameraType = Enum.CameraType.Custom
This script will ensure that your camera is properly attached to your new character.
Step 5.) ???
Step 6.) Profit.
See? Not that hard to do, have fun and remember. Guests are friends, not enemies.
And for those who want to replace the default character with a custom cute lizard or are just too lazy to read all of this:
http://www.roblox.com/Custom-Character-item?id=314434305