Hey OP, this is a local script right?
The character switch is local if that’s what your asking
I just mentioned it was a local script in the script via comment.
By OP I meant @wrtrewewqwewqwqwqee. I was asking if he put the code in a local script, as the local player property (and UserInputService) don’t work server side.
What should I do to clean it up? it works when you don’t switch characters and I think it’s not that messy
Yes it switches characters using a script
Could you also post the character switch script?
local Jason1 = game.ReplicatedStorage.Jason
local Player = game.Players.LocalPlayer
local button = script.Parent
local StarterCharacterScripts = game.StarterPlayer.StarterCharacterScripts:GetChildren()
--local CharacterSelector = game.StarterGui["Old Character Slector"].Enabled
local LocalScripts = {}
local humanoid = Player.Character:WaitForChild("Humanoid")
local walkspeed = humanoid.WalkSpeed
walkspeed = 0
local rs = game:GetService("ReplicatedStorage")
local CanContinue = rs:WaitForChild("CanContinueRe")
local GUI = game.StarterGui["Old Character Slector"]
local function onButtonActivated() -- Checking if the player clicked on the block
local ChosenCharacter = Jason1:Clone()
local CurrentCharacter = Player.Character or Player.CharacterAdded:Wait()
local LocalScripts = {}
--CharacterSelector = false
for index2,item2 in pairs(game.StarterPlayer.StarterCharacterScripts:GetChildren()) do
if item2:IsA('LocalScript') then
table.insert(LocalScripts,item2:Clone())
else
item2:Clone().Parent = ChosenCharacter
end
end
CurrentCharacter.Health:Clone().Parent = ChosenCharacter
table.insert(LocalScripts,CurrentCharacter.Animate:Clone())
ChosenCharacter.Parent = workspace
ChosenCharacter.Name = Player.Name
Player.Character = ChosenCharacter
ChosenCharacter.PrimaryPart.CFrame = CurrentCharacter.PrimaryPart.CFrame
GUI.Parent = game.Players.LocalPlayer.PlayerGui
CurrentCharacter:Destroy()
--script.Parent:GetChildren():Isa("Frame").Visible = false
for index2,item2 in pairs(LocalScripts) do
item2.Parent = ChosenCharacter
end
end
button.Activated:Connect(onButtonActivated)
instead of deleting some code i just put - - incase i needed it later
I do local Character = Player.Character or Player.CharacterAdded:Wait()
everytime I want to get the character.
Thanks but I don’t know why when I tried that before because I like that method too but it wasn’t working because I switched to a different player character with the script here:
and I don’t know how to get the new player character
Use Character = Player.Character or Player.CharacterAdded:Wait()
to update the character variable.