Playerless Character

Hello everyone!
I am currently making a game, and I have been browsing the Dev Forum for help and nothing has actually given me an answer, if I get this done my game would be very nice! And it would have great potential in the future, and I believe that if we get an answer this could help people coming through too.

So! Basically, what I want to do is make a Playerless Character.
Basically, when you look at the “Player list” (I am not talking about the one of the side of the screen, I mean the escape menu.) the player will not be there, but the Character (Shell) will be there, and the Character will still be able to move.

I understand that if this gets done, the “player” will not be able to see any Gui’s but the core ones. And that any scripts relying on a player will not function properly.
I know it is a lot to ask for! But I know it is possible, as I have seen a game do this in the past.


This is not possible. Roblox’s CoreGui (which the escape menu is considered as) cannot be directly modified.

@Shortgamer75 You should look for NPCs (non-player character).

This can be done, as shown in
And Hiding players from player list - #11 by B_Iu .

I have made this topic due to the lack of detail and no help is actually given.
@FilteredDev @Streeteenk

1 Like

What do you mean? How to achieve this is posted in the thread you just linked, code and all…

Edit: I can even verify their method works except I used heartbeat instead of a renderstep.


Wait so you want to get rid of the players? Maybe try this:

local Players=game.Players

Why are you parenting the character to workspace?

What I am trying to achieve:
Character movement.
When you delete/remove the Player, it stops all movement!
What I am trying to do is get the Character to move, using custom scripts/whatever.

Are you trying to kick/leave a player out of a game, then “hyjack” their character to move after they are kicked/leave. Maybe before the player is gone, clone their character to replicated storage, then swap the character in replicatedstorage and in workspace around.

So if I’m understanding correctly;

  • you would like there to be a regular player
  • you would like another player to play without having a player model, but move around as something else?

If im not mistaken the player module scripts use the player:Move() method.

These scripts are run on the client so as long as you don’t delete your clients own local player you should be good.

That was a modification i made in my code and its why player1’s can see themselves in the player list on their screen, but player2 cannot.

How did you do that?

No. What I am trying to do, is get the player in “Players” and remove it, while also having to ability to move their Character in “Workspace”.

I tried your script, and yes! It does remove the player, but the Character also gets removed.

Maybe by parenting the character to the workspace might help? The character can stand alone without a player as shown in this video:robloxapp-20200331-0811439.wmv (1.1 MB)

Isn’t that what your script does though?

I don’t think it works though. My script doesn’t seem to work in studio. I am going to check right now.

Nvm I just realised that there is a character property for the player. All we have to do is set it to something else. One more thing I realised is that for a player to be able to animate or move, it needs a player. Can I ask why you don’t want a player?

I do not want a player to make my game more mysterious and cooler in a way.
It’s also a nice touch!

Alright, I found a solution, thank you all for helping me! I appreciate it so much!
For those reading this, you can find the answer above!

Basically, in “ReplicatedFirst” you put a Local Script. So that it affects the Client and no the server! Meaning that the server recognises the player Not affecting the roblox servers, thus giving a player count. and it also doesn’t destroy the Character!

Put this in that Local script:

wait(10) --So that it does not startup before the Core Gui’s.
local players = game.Players:GetChildren() --get every player in the game
for i = 1,#players do–do something for all players
if players[i].Name == “Shortgamer75” then --Make “Shortgamer75” your name. KEEP THE " "
players[i]:Destroy() --Delete the player.