Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do I modify this script that prevents the player teleporting and other fixing I need (?)

Asked by 2 years ago

Hello!

So, I made a system where If you use a tool It will morph you Into a troll, however the morph will not go away If the user resets or rejoin

But the problem with the system Is:

  1. If you reset or rejoin, you will be teleported to the morphs location
  2. I want the system to be modify so that the system can tell what morph to give you (What I mean Is that If the player uses a tool, It was a 1/2 chance of giving you either a:

Rare or Common troll

If the system decides to give you a Common or Rare troll, It will need to select the said morph and give It to you)

Notes: The default player uses a custom default player, basically If you join, your a troll Instead of your usual avatar

The game.ReplicatedStorage.ExclusiveTrolls on both tool and ServerScriptService scripts are simply just a folder containing all the exclusive trolls, the main morph folder Is simply called:

"Morphs"

Script (ServerScriptService, Server-Side):

local CharacterFolder = game.ReplicatedStorage.ExclusiveTrolls
local store = game:GetService("DataStoreService")
local store2 = store:GetDataStore("Morph")

function save(p,val)
    store2:SetAsync(p.UserId,val)
end

game.Players.PlayerAdded:Connect(function(p)
    local val = store2:GetAsync(p.UserId) or ""

    local stringv = Instance.new("StringValue",p)
    stringv.Name = "CurrentMorph"
    stringv.Value = val
    p.CharacterAdded:Connect(function(c)
        if stringv.Value ~= "" then
            local oldchar = c
            local oldv = stringv.Value
            stringv.Value = ""
            local plrRoot = p.Character:WaitForChild("HumanoidRootPart") or p.Character.Parent:WaitForChild("Torso")

            local AveragePlayer = CharacterFolder["Sand:FB"]:Clone()
            AveragePlayer.Name = p.Name

            local rootPart = AveragePlayer:FindFirstChild("HumanoidRootPart") or AveragePlayer:FindFirstChild("Torso")

            if rootPart and plrRoot then
                rootPart.CFrame = plrRoot.CFrame
            end

            p.Character = AveragePlayer

            AveragePlayer.Parent = workspace
            AveragePlayer.Humanoid.DisplayName = "Sand:FB"
            oldchar:Destroy()
            stringv.Value = oldv
        end
    end)
end)

game.Players.PlayerRemoving:Connect(function(p)
    local stringv = p:WaitForChild("CurrentMorph")
    save(p,stringv.Value)
end)
0
i dont have time to read of script and idk the hierarchy of the files but instead of a new Character why not modify the current character Puppynniko 1059 — 2y

Answer this question