Ideas to make this character system

Hello, I hope you are well, so I want to make a character system which, when the player enters my game, will see a cinematic which, as the main character, will be a character that I already made. but I want that when the player finishes watching the cinematic, he sees the other players as if they didn’t have that character that only the player had. I am not asking for scripts, I am only asking for a possible solution to do it. If you have questions, please write to me but in a positive way. Thank you and have a good day, sorry for your time. please

2 Likes

Sorry your paragraph doesn’t make much sense, can you try rephrasing it for me so I can help?

2 Likes

I really thank you for answering: good.
My game is going to be about shooting but besides that it’s going to have a story mode which is going to be a specific character that I create (the main character) then. When the player enters the game for the first time, a cinematic will be played which will have the character that I made as a character. but not only that when the player finishes watching the cinematic. On the server side he will see all the players with Roblox clothes but on the client side he will see the main character’s clothes, the same would be with all the clients. if you still have doubts please answer me

You can rename the model, R6 or R15 at “StarterCharacter” and put it in StarterPlayer !

I already did it and it works fine but what I want is that on the server side it looks like it doesn’t have it
in short that the players look like they were the only ones with the main character

I think you can put the StarterCharacter in replicated storage and clone it in a local script and put it as main character so it would be client sided !

I’m going to try but if you have a friend who knows about it please help me if you can

hello yes it works well but how did I have a datastore of what character it has equipped (my game has more characters apart from that of course they have nothing to do with this topic) my question is how do I refer to the roblox character? that is, the one that the player has in his avatar

You don’t know how to refer to the body avatar of the player avatar?

Sorry for the late reply I was sleeping, so you can create an humanoid description for all the character, after that you can morph your character with Humanoid:ApplyDescription(HumanoidDescription) and to save them you can, at the moment the player buy it, remote to the server and add a value in a table who stock all the value saying if he has or not the character and after that you can set the async of your datastore and get it when a player start the game and remote it to the client who will interpret the data !
If you want help for the script ask me !
I hope that was helpful and have a nice day !

3 Likes

Thanks… I’m new so I’m asking you to confirm: so when the player enters I save the player’s Roblox avatar and then I make it start remotely with the client, I mean remote.onclientevent() something like that? and so the only one that the main character will see will be the client and the others will see him with his roblox skin

1 Like

No for the saving system I recommend you to remote event by your gui the skin the player has bought and in the server sided script save the data :

Local Script (on your buy button)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage.Buy
local RemoteEvent2 = ReplicatedStorage.Load
local Button = script.Parent
local Buy = false
local SkinName = "Test"

Button.Text = "Buy "..SkinName

RemoteEvent2.OnClientEvent:Connect(function(CurrentSkins)
	for v, Skin in pairs(CurrentSkins) do
		if Skin == SkinName then
			Buy = true
			Button.Text = "You have already bought "..SkinName
		end
	end
end)

Button.MouseButton1Down:Connect(function()
	if not Buy then
		RemoteEvent:FireServer(SkinName)
	end
end)

Server Script (on ServerScriptService)
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local DataStoreService = game:GetService("DataStoreService")
local DataStore = DataStoreService:GetDataStore("Skin")
local RemoteEvent = ReplicatedStorage.Buy
local RemoteEvent2 = ReplicatedStorage.Load

Players.PlayerAdded:Connect(function(Player)
	local Success, CurrentSkins = pcall(function()
		return DataStore:GetAsync(Player.UserId)
	end)
	if CurrentSkins ~= nil then
		RemoteEvent2:FireClient(Player, CurrentSkins)
	end
end)

RemoteEvent.OnServerEvent:Connect(function(Player, Skin)
	local Success, CurrentSkins = pcall(function()
		return DataStore:GetAsync(Player.UserId)
	end)
	print(CurrentSkins)
	if CurrentSkins == nil then
		CurrentSkins = {}
		table.insert(CurrentSkins, Skin)
	else
		table.insert(CurrentSkins, Skin)
	end
	local Success = pcall(function()
		DataStore:SetAsync(Player.UserId, CurrentSkins)
	end)
end)

And in the explorer it will look like this :

Help

Have a nice day and ask me if you want more help !

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.