# Overview

The client-side portion of **Utility Objectify** is responsible for managing the behavior, lifecycle, and communication of object instances rendered on the player's machine.

It handles:

* Creating and destroying local script instances tied to entities
* Managing plugins and lifecycle hooks
* Handling remote procedure calls ([rpc](../shared/rpc "mention")) from server to client

This section provides a high-level overview of what happens on the client and how to work with it.

***

### 🧠 Core Responsibilities

#### ✅ 1. Object Instantiation

When an entity is rendered ([#onspawn](../../shared/hooks#onspawn "mention")), the library:

* Looks up all scripts registered to the entity’s model (via the [#model-modelname-abstract](../../shared/decorators#model-modelname-abstract "mention") or [#plugin-pluginname](../../shared/decorators#plugin-pluginname "mention") decorators)
* Creates a new class instance and binds it to the entity
* Initializes the lifecycle: [#onawake](../../shared/hooks#onawake "mention"), [#onspawn](../../shared/hooks#onspawn "mention"), [#afterspawn](../../shared/hooks#afterspawn "mention")

#### ❌ When an entity is unrendered ([#ondestroy](../../shared/hooks#ondestroy "mention")):

* All bound script instances are destroyed
* The lifecycle method [#ondestroy](../../shared/hooks#ondestroy "mention") is called
* Memory and state tracking is cleared

***

### 🔧 Script Registration

[#main-script](../../shared/type-of-scripts#main-script "mention")

### 🧩 Plugin System

[#plugin-script](../../shared/type-of-scripts#plugin-script "mention")

***

### 📡 RPC Client → Server

[#entity-based-rpc-via-self.server-or-self.client](../../shared/rpc#entity-based-rpc-via-self.server-or-self.client "mention")

[#global-rpc-via-server.less-than-method-greater-than-or-client.less-than-method-greater-than](../../shared/rpc#global-rpc-via-server.less-than-method-greater-than-or-client.less-than-method-greater-than "mention")

***

### 🔄 State Change Handling

[#state-key-value](../../shared/decorators#state-key-value "mention")

### 📣 Event Handling

[#event-eventname-ignorerendering](../../shared/decorators#event-eventname-ignorerendering "mention")

***

### 📦 Object Registry: `Entities`

[entities-singleton](../shared/entities-singleton "mention")

***

### 🛠 Utility Functions

[#functions](../framework#functions "mention")

[#functions](../object-management#functions "mention")
