Hello, so basically I wanted to make a starter character gamepass but I don’t know how to. I tried finding other posts and tutorials but can’t seem to find what I’m looking for. I’ve tried multiple things but can’t seem to get the result I’m trying to get.
Hi! Please let me know if this doesn’t work.
- First of you have to turn off so characters doesn’t automatically load in. (Do that under “Players”)
- Now, add a playerAdded event in a serverScript in ServerScriptService.
- Make a custom character and place it inside ReplicatedStorage (this will be our Gamepass character)
- In that event check if they own the gamepass, if they do, clone the character we just made through scripting, assign the player’s Character to be that new clone, and put the clone in workspace
- Make sure to add so if Humanoid.Died, connect a function that will spawn them again.
Thanks for the help. I’ll try doing this. I’ll reply if I’m facing issues.
Sorry I’m not very familiar with startercharacter but i tried this script and it wouldn’t work
local MarketPlaceService = game:GetService("MarketplaceService")
local PassID = 40131216
game.Players.PlayerAdded:Connect(function(player)
if MarketPlaceService:UserOwnsGamePassAsync(player.UserId, PassID) == false then
game.ServerStorage.StarterCharacter:Clone().Parent = player:WaitForChild("StarterCharacter")
end
end)
Take a look at this thread! How to make a certain roblox player will spawn as custom character when joined? - #14 by Jackscarlett
Edit: Just adapt it to your gamepass approach.
Sorry, but I think you misunderstood what I’m trying to achieve. I’m trying to make a starter character for a person who owns a gamepass. I appreciate your efforts.
I edited your script a bit and this should work.
(You have to place the character into ReplicatedStorage and make sure its called StarterCharacter)
local MarketPlaceService = game:GetService("MarketplaceService")
local PassID = 40131216
local StartChar = game:FindFirstChild("StarterCharacter")
game.Players.PlayerAdded:Connect(function(player)
if MarketPlaceService:UserOwnsGamePassAsync(player.UserId, PassID) == true then
local StartCharClone = StartChat:Clone()
StartCharClone.Parent = game.StarterPlayer
end
end)
Please let me know if you have problems
It seems like you have a typo at
local StartCharClone = StartChat:Clone()
also it still doesn’t work btw the game has two models named startercharacter one in replicated storage and one in starterplayer but even though i tried removing the one in starterplayer it still doesn’t seem to work
Misusing StarterCharacter to change a single character’s appearance is both bootleg and bad practice. Please see other threads asking about the same topic:
Change the character model or appearance itself instead of relying on StarterCharacter. StarterCharacter should only be used if you need to change the way everyone’s character rig is constructed and initialised.
Sorry for the typos. I also didn’t define StartChar properly. I tried writing it in the actual DevForum which was the reason.
Are you getting any errors related to the script in Output? If so could you please put them inside here,
Also, make sure that this is a ServerScript preferably in ServerScriptService, and that the only StarterCharacter is in ReplicatedStorage.
This should be working but the player does have to reset for it to work:
local MarketPlaceService = game:GetService("MarketplaceService")
local PassID = 40131216 -- The Gamepass ID
local StartChar = game.ReplicatedStorage:WaitForChild("StarterCharacter") -- Defines the Morph/StarterCharacter
game.Players.PlayerAdded:Connect(function(Player)
if MarketPlaceService:UserOwnsGamePassAsync(Player.UserId, PassID) == true then -- If the user has the Gamepass then
local StartCharClone = StartChar:Clone() -- Clones the StarterCharacter
StartCharClone.Parent = game.StarterPlayer -- Moves it into StarterPlayer
end
end)
I have also included some notes to help you better understand what is happening
So this does work and i appreciate your efforts and yes i do understand the script without the note so this doesn’t work for 2 Startercharacter so i did a minor edit to fix this here’s the full fixed script
local MarketPlaceService = game:GetService("MarketplaceService")
local PassID = 40131216 -- The Gamepass ID
local StartChar = game.ReplicatedStorage:WaitForChild("StarterCharacter") -- Defines the Morph/StarterCharacter
local StarterCharacter = game.StarterPlayer.StarterCharacter
game.Players.PlayerAdded:Connect(function(Player)
if MarketPlaceService:UserOwnsGamePassAsync(Player.UserId, PassID) == true then -- If the user has the Gamepass then
local StartCharacterDestroy = StarterCharacter:Destroy()--If the player Owns the gamepass then it deletes the startercharacter and replaces it with the gamepass startercharacter
local StartCharClone = StartChar:Clone() -- Clones the StarterCharacter
StartCharClone.Parent = game.StarterPlayer -- Moves it into StarterPlayer
end
end)