Properties of a part within a model do not change, when this model is obtained from the ChildAdded event on the client side

On the server, all models are periodically removed (Destroy) in a folder (in workspace) and new ones are placed. On the client, these new models must be taken and some properties of certain parts within the models must be changed (only on the client’s side). When a player joins the loop is executed and the properties change correctly, but later, when a model is obtained through the ChildAdded event the properties do not change.

Here are the scripts, there is no other script in the game:

-- Script
local model1 = workspace.Models.Model
model1.Parent = nil
function cleanModels()
	for _, model in ipairs(workspace.Models:GetChildren()) do
local clone
while true do
	clone = model1:Clone()
	clone.Parent = workspace.Models
-- LocalScript
local models = workspace:WaitForChild("Models")
function onChildAdded(model)
	for _, part in ipairs(model:GetChildren()) do
		if part:IsA("BasePart") then
			part.RotVelocity =,3,0)
			part.BrickColor ="Brown")
for _, model in ipairs(models:GetChildren()) do

I don’t understand why this happens. Could someone help me?

Edit: Here’s the place
Baseplate.rbxl (19.1 KB)
Here’s a snapshot

Changes you make to properties on the client will not replicate to the server. If you want the client to be able to do that, you need to use a remote event in which the client tells the server to complete the action.

Thank you for answering so quickly. I don’t want any changes to be replicated, everything must happen on the client side.

Try adding print statements to see what runs. See if the child added event is even fired in the first place, as it may not be.

Also, calling both your global variable and the variable in the for loop model could cause confusion.

I used print and debuger, but I couldn’t find the problem. I just uploaded a roblox file for what it’s worth.