Local script can assign a variable to a certain serverside part, but cant for a different one?

I am trying to cut my way through the thicket of serverside and local manipulation and communication. My brain has been hurting trying to figure out how I should do this.

So I have a ball, that is the players character. It is created and assigned to the player’s network ownership on the server.

I also have a checkpoint, which should move to the ball’s position when the ball’s velocity is 0,0,0. It is also created on the server by the same script.

I have a local script, which covers everything related to the ball. Movement, trails, out of bounds detection, etc.

It is able to manipulate the ball, and replicate the balls movements on the server no problem.

The local script can assign a variable for the ball without an issue, but trying to create a variable for the checkpoint results in ‘nil’.

I am having trouble wrapping my brain around all this, and I should probably go to bed lol.

Does anyone know why this is happening?

I don’t. I’ve got some context-related questions though.

  • Placement of checkpoint?
  • What’s the difference in creation between the pseudo-character and the checkpoint?
  • Any console errors?

When you say “create a variable for”, you mean getting the checkpoint instance via something like FindFirstChild and storing a reference to it in a variable, correct?

To verify, the checkpoint is created and manipulated correctly by the server?

Can you compare the parent, properties, etc of the checkpoint on the client vs the server to ensure they’re the same and correct?

Can you post the code you’re using to both create and to get a reference to the checkpoint?

Do you create and destroy this checkpoint multiple times and forget to re-fetch the reference?