+
+# Changing Your Character
+
+You can change the character model and even import your own into The Mirror.
+
+- Press `Escape` to open the main menu.
+
+
+
+- On the top right, click the "Avatar" tab.
+
+
+
+- Currently, The Mirror has two default avatars as seen above. However, you are able to import your own avatar by clicking on the "Import Avatar" button and following the step by step instructions on screen. Alternatively, you can follow the guide [here](/docs/users/ready-player-me)
+
+- Once you've chosen your avatar or imported your own, you'll need to reconnect to your Space for the change to take effect.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/_category_.json b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/_category_.json
new file mode 100644
index 00000000..8a497c06
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Build",
+ "position": 2,
+ "link": {
+ "type": "generated-index",
+ "description": "There are 2 main modes in The Mirror: Build and Play. Build Mode has the power of a full-blown game engine for whatever you can imagine, developed in real-time with your fellow builders."
+ }
+}
\ No newline at end of file
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/applandingpage.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/applandingpage.png
new file mode 100644
index 00000000..ab636f36
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/applandingpage.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/assetdrawerimport.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/assetdrawerimport.png
new file mode 100644
index 00000000..5b196a9c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/assetdrawerimport.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/assetsdrawer.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/assetsdrawer.png
new file mode 100644
index 00000000..9d95ae2d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/assetsdrawer.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/audio.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/audio.mdx
new file mode 100644
index 00000000..56227d27
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/audio.mdx
@@ -0,0 +1,14 @@
+---
+sidebar_position: 1.82
+---
+
+import Tabs from '@theme/Tabs';
+import Table from '/src/components/Table';
+
+import TabItem from '@theme/TabItem';
+import YouTube from 'react-youtube';
+
+# Audio
+
+- **Format**: We currently support .WAV and .MP3 file extension. Support for .OGG is coming soon.
+- **File Size**: The maximum allowed file size for audio files is 15MB per file. This limitation will increase in the future.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/avatartab.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/avatartab.png
new file mode 100644
index 00000000..e0294b80
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/avatartab.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/build-ui.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/build-ui.mdx
new file mode 100644
index 00000000..9825873a
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/build-ui.mdx
@@ -0,0 +1,195 @@
+---
+sidebar_position: 1
+---
+
+import Tabs from '@theme/Tabs';
+import Table from '/src/components/Table';
+
+import TabItem from '@theme/TabItem';
+
+# Build UI
+
+## What Is the Build UI?
+
+Building is at the heart of The Mirror. It is a collection of tools that allows you to manipulate your Space and aid you in brining your imaginations to the virtual world.
+
+You can activate the _Build UI_ by pressing `B` on your keyboard.
+
+
+
+## Controls In Build UI
+
+When you're in the _Build UI_ you no longer control your character and it remains stationary. The controls for moving around are slightly different:
+
+
+{[
+{label: "Windows", value: "windows", cmdCtrlKey: "CTRL"},
+{label: "Mac", value: "mac", cmdCtrlKey: "CMD"},
+{label: "Linux", value: "linux", cmdCtrlKey: "CTRL"}
+]
+.map((os) => {
+ {/* React MDX isn't working here for some reason. Should be able to use the below */}
+ const cmdCtrlKey = os.cmdCtrlKey
+ const headers = [`Input`, `Action`];
+ const data = [
+ [`Hold Right Mouse Button`, `Look around`],
+ [`W + Hold Right Mouse Button`, `Move forwards`],
+ [`S + Hold Right Mouse Button`, `Move backwards`],
+ [`A + Hold Right Mouse Button`, `Move left`],
+ [`D + Hold Right Mouse Button`, `Move right`],
+ [`Mouse Wheel Scroll + Hold Right Mouse Button`, `Increase/decrease movement speed`],
+ [`Mouse Wheel Scroll`, `Zoom in/out`],
+ [`Right Mouse Button`, `Open context menu`],
+ [`${cmdCtrlKey} + D`, `Duplicate object`],
+ [`Move object + Hold Shift`, `Duplicate object`],
+ ];
+ return
+
+
+})}
+
+
+
+:::note Coming Soon
+VR is next on our list! Let us know if it's something you're interested in.
+
+[Feature Board!](https://in.themirror.space/feedback)
+
+:::
+
+
+
+
+:::note Future
+Mobile apps aren't ready yet, but let us know if you'd like this!
+
+[Feature Board!](https://in.themirror.space/feedback)
+
+:::
+
+
+
+
+--
+
+The _Build UI_ is divided into three different panes:
+
+1. The "Main Toolbar" is at the top of the screen.
+2. The "Assets Window" is on the left side of the screen.
+3. The "Entities & Inspector Window" is on the right side of the screen.
+
+## The Main Toolbar
+
+On the left side of the main toolbar, there are three buttons that allows you to switch between _Terrain_ manipulation, _Map_ and _Primitive Builder_.
+
+
+
+By default you're in _Terrain_ manipulation mode when you are in the _Build UI_. At the moment, terrains can't be manipulated directly in The Mirror -- we're currently working on this feature and will be available soon. That said, you can import terrains from 3rd party programs like [Gaea](https://quadspinner.com/).
+
+The second button in the main toolbar is the "Map" button. Clicking it will activate _Map Mode_. A map in The Mirror refers to the ground objects in a Space (terrain is an example). Activating _Map Mode_ allows you to create a new map and duplicate the current active one.
+
+
+
+The third button is the Primitive Builder button. Clicking it will activate the _Primitive Builder_. In this mode you can create objects using simple primitive shapes similar to 3D graphics manipulation softwares such as Blender.
+
+
+
+On the right of the aforementioned three buttons, the transformation tools will allow you to manipulate any object in your Space.
+
+
+
+- The first icon is the selection tool that allows you to select different objects. Shortuct `Q`.
+- The second icon is the translate tool that allows you to move objects in 3D. Shortuct `W`.
+- The third icon is the rotate tool that allows you to rotate objects in 3D. Shortuct `E`.
+- The fourth icon is the scale tool that allows you to change the size of objects in 3D. Shortuct `R`.
+
+Next to the above buttons there are helper options you can choose to enable to help you transform objects easier.
+
+
+
+- The "Relative" checkbox will toggle between world and local Space. When unchecked, whenever you move, rotate or scale an object, you do so independent of the orientation of the object and do it based on the absolute world axes. However, when you enable relative, you will be moving, rotating or scaling the object based on its own orientation and axes.
+- The "Snap" checkbox will enable snaping while the drop down menu next to it will allow you to choose the snap iteration amount.
+- The "Show Colliders" is currently a work in progress; we're working on making it available soon.
+- The "Visible Tris" will display how many tris are currently drawn in your current view as well as your maximum tris budget.
+
+On the right side of the main toolbar you'll find the below buttons:
+
+
+
+- The `Variables` button will display all the available variables and you can add, edit and remove them. By default The Mirror has a few already made variables you can leverage such as player health, location and more.
+
+
+
+- The `Teams` button will display the list of teams available. This is useful in many multiplayer game types. By default there are two teams; red and blue. This view allows you to add or delete teams.
+
+
+
+- The `Users` button will display a list of users that are currently located in your Space.
+
+
+
+- The `Teleport` button will help unstuck and teleport your character.
+- The `Preview` button will allow you to test your game by running it as if it is fully published without having to compile or publish your Space.
+
+:::note
+
+To exit _preview mode_, press `Escape` and then click on the `End Preview` button at the bottom left of the screen
+
+:::
+
+Next to the `Preview` button there are three helper buttons:
+
+
+
+- The `?` button will open the on-screen quick tutorial.
+- Next to the help button there is the `Share` button. This will allow you to share your Space with others via a link to make it easier to collaborate and work with others in the same Space.
+- The `Options` button denoted by a cog will bring up Basic Space Settings as well as access to the main menu.
+
+
+
+## The Assets Drawer
+
+The Assets Drawer is located on the left pane in the _Build UI_ this has a list of all the assets (3D models, textures, etc...) available in your library. These assets could be custom created, imported or provided by The Mirror. This is similar to the project view in other engines.
+
+The Assets Drawer is divided into two sections; the "Libarry" and the "My Assets" section. The library is basically any assets that The Mirror provided or shared by users publicly. The my assets section (found at the bottom) will only display the assets you've created or imported into The Mirror yourself.
+
+
+
+## Entities View
+
+The Entities View is located on the right side in the _Build UI_ and it lists all the available entities in your Space. From maps to global scripts.
+
+
+
+The Entities View is divide into four main categories:
+
+- World Entities; these are entities you've placed in your world such as a health kit, a weapon or even a staircase. You are able to toggle these entities visible or not (eye icon on the right side of the entity) or lock it to prevent accidental selection or transformation of said object (checkbox next to the visibilty toggle).
+
+
+
+- Global Scripts; these are scripts that apply to your entire game, they are not attached to an object and are always active. An example of this is a script that checks the score in a game to see if it reached a certain threshold as a win condition. All global scripts have the option to be toggled active or inactive (checkbox next to script's name). You can delete a global script by clicking the trashcan icon next to it.
+
+
+
+:::note
+Instanced scripts -- unlike global scripts, require that they are attached to an object and their scope is local to said object. You can learn more about scripting [here](../script/getting_started.mdx)
+:::
+
+- Maps; this lists the current map used in your Space. A map in The Mirror is the terrain or ground used as the base for your level. You are able to toggle these entities visible or not (eye icon on the right side of the entity) or lock it to prevent accidental selection or transformation of said object (checkbox next to the visibilty toggle).
+
+
+
+- Environment; these are global environment objects that affect the entire Space. The sun is an example of this. You are able to toggle these entities visible or not (eye icon on the right side of the entity).
+
+
+
+## Inspector View
+
+The Inspector View is where all the properties and options of a selected object will be displayed. Through the inspector you will be able to modify the different properties of the objects, from position and scale to collision and any scripts that may affect it.
+When selecting an object three main tabs will appear; properties, scripts and nodes. The properties tab will offer basic information and allow you to modify them. The nodes tab will allow you to add or remove any nodes available for the object. Finally the scripts tab will allow you to attach, edit or delete any scripts available for the object.
+
+ 
+
+:::note
+Nodes is a concept inherited from Godot. For more information about what they are, please check out [Godot's documentation article about them](https://docs.godotengine.org/en/stable/getting_started/step_by_step/nodes_and_scenes.html)
+:::
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/buildmode.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/buildmode.png
new file mode 100644
index 00000000..8509a10b
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/buildmode.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/buildwindows.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/buildwindows.png
new file mode 100644
index 00000000..441e2b9d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/buildwindows.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/chat.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/chat.png
new file mode 100644
index 00000000..2072d1e5
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/chat.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/cinemamode.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/cinemamode.png
new file mode 100644
index 00000000..fb463e5e
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/cinemamode.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/createnewspace.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/createnewspace.png
new file mode 100644
index 00000000..1ddcf681
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/createnewspace.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/droporbrowse.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/droporbrowse.png
new file mode 100644
index 00000000..4abddebb
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/droporbrowse.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/entitiesview.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/entitiesview.png
new file mode 100644
index 00000000..3f01facd
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/entitiesview.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/environment.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/environment.png
new file mode 100644
index 00000000..5481118e
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/environment.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/filebrowser.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/filebrowser.png
new file mode 100644
index 00000000..2c7d9f13
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/filebrowser.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/globalscripts.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/globalscripts.png
new file mode 100644
index 00000000..a331db7a
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/globalscripts.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/godot-plugin.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/godot-plugin.mdx
new file mode 100644
index 00000000..4f8d09c5
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/godot-plugin.mdx
@@ -0,0 +1,15 @@
+---
+sidebar_position: 1.84
+---
+
+import Tabs from '@theme/Tabs';
+import Table from '/src/components/Table';
+
+import TabItem from '@theme/TabItem';
+import YouTube from 'react-youtube';
+
+# Godot Plugin (Coming Soon)
+
+We understand that many developers prefer using the Godot engine for their game development needs. To accommodate this, we are actively working on adding a dedicated plugin to work Godot side-by-side with The Mirror in real-time. This will allow you to seamlessly integrate your Godot assets and projects into our game environment. Stay tuned for updates on how to import and use Godot assets in our API.
+
+We are continuously expanding and improving our API to provide you with a comprehensive set of features and tools for game development. Your feedback is invaluable to us, so if you have any specific requests or suggestions regarding heightmaps, audio, particles, Godot import, or any other features, please don't hesitate to submit them on our [Feature Board.](https://in.themirror.space/feedback).
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/import-heightmaps.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/import-heightmaps.mdx
new file mode 100644
index 00000000..7170f440
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/import-heightmaps.mdx
@@ -0,0 +1,22 @@
+---
+sidebar_position: 1.81
+---
+
+import Tabs from '@theme/Tabs';
+import Table from '/src/components/Table';
+import TabItem from '@theme/TabItem';
+import YouTube from 'react-youtube';
+
+# Heightmaps
+
+- **Format**: We recommend EXR for highest quality.
+
+- **File Size**: The maximum allowed file size for heightmaps is 15MB per file. This limitation is due to automatic compression isn't available at the moment. This limitation will increase in the future.
+
+- **Texture Size**: Maximum size of 4K (4096x4096).
+
+:::note
+Similar to other texture files, we recommend adhering to the power of two rule when creating heightmaps. You can learn more [here](https://www.katsbits.com/tutorials/textures/make-better-textures-correct-size-and-power-of-two.php#:~:text=What%20is%20the%20power%20of,%2Ddown%20by%20%222%22.)
+:::
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importing-assets.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importing-assets.mdx
new file mode 100644
index 00000000..9419ad16
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importing-assets.mdx
@@ -0,0 +1,62 @@
+---
+sidebar_position: 1.80
+---
+
+import Tabs from '@theme/Tabs';
+import Table from '/src/components/Table';
+
+import TabItem from '@theme/TabItem';
+import YouTube from 'react-youtube';
+
+# How to Import
+
+The Mirror allows you to import custom assets to create your games, such as 3D models, audio files, textures, height maps, and more.
+
+It's important to understand the requirements to ensure a smooth importing experience. The Mirror is built on top of Godot, which means it inherits many of the requirements that Godot would expect when importing the asset.
+
+NOTE: We strongly suggest importing .GLB files as they include all materials and other dependencies in a single file, similar to a .ZIP file.
+
+
+
+## How To Import an Asset
+
+- Enter Build Mode: In a Space, press `B` on your keyboard to open _Build Mode_.
+
+
+
+- On the left side, you'll find the Assets Drawer. Click on the switch next to "Upload Asset".
+
+
+
+- Drag your file from your system's folder into the drop area or click "Browse".
+
+
+
+- If you clicked "Browse", navigate to its location, select it, and click "Open" button.
+
+
+
+- A message will popup to notify you with the import process status.
+
+
+
+You'll find your imported asset under "My Assets" in the Assets Drawer.
+
+
+
+## Import on the Web App: [in.themirror.space](https://in.themirror.space)
+
+1. Click "My Assets" on the sidebar
+ 
+
+2. Click "+ New Asset" on the top-right of the screen.
+
+
+
+3. Enter the information about your asset.
+
+
+
+4. Upload the asset's file
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importmyassets.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importmyassets.png
new file mode 100644
index 00000000..c3a96390
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importmyassets.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importsuccess.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importsuccess.png
new file mode 100644
index 00000000..f4f3dbe4
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/importsuccess.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectornodes.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectornodes.png
new file mode 100644
index 00000000..056522be
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectornodes.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectorproperties.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectorproperties.png
new file mode 100644
index 00000000..1439c38c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectorproperties.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectorscripting.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectorscripting.png
new file mode 100644
index 00000000..f684ea8c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/inspectorscripting.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mainmenu.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mainmenu.png
new file mode 100644
index 00000000..15b1ba13
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mainmenu.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mapmode.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mapmode.png
new file mode 100644
index 00000000..cab17caa
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mapmode.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/maps.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/maps.png
new file mode 100644
index 00000000..8bf31b4a
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/maps.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mirror_white_logo.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mirror_white_logo.png
new file mode 100644
index 00000000..9c8c710d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/mirror_white_logo.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/miscbuttons.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/miscbuttons.png
new file mode 100644
index 00000000..233960bb
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/miscbuttons.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/namespace.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/namespace.png
new file mode 100644
index 00000000..06484cd2
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/namespace.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/objects.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/objects.mdx
new file mode 100644
index 00000000..14cd3724
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/objects.mdx
@@ -0,0 +1,44 @@
+---
+sidebar_position: 1.82
+---
+
+import Tabs from '@theme/Tabs';
+import Table from '/src/components/Table';
+
+import TabItem from '@theme/TabItem';
+import YouTube from 'react-youtube';
+
+# Objects
+
+# Create an Object
+
+An object is simply an Asset that's in a Space. You can place as many Objects as you wish in-world, and they can all reference the same Asset.
+
+## In-World
+
+Assets can be uploaded by clicking "Click Here to Upload Asset" from the Asset Drawer.
+
+Any Object created in-world will automatically show up on https://in.themirror.space.
+
+
+
+## Shift+Drag Duplicate Objects
+
+You can duplicate an object by Shift + Dragging on a gizmo.
+
+
+
+
+
+## Copy/Paste Objects
+
+When an object or group of objects is selected, press CTRL/CMD+C and CTRL/CMD+V to copy and paste an object. The pasted object will appear where your mouse is.
+
+## Right Click Menu
+
+Right-click on an Object to open the context menu.
+
+
+## Web: [in.themirror.space](https://in.themirror.space)
+
+Placing an Object is currently only possible in-world.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/optionsbutton.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/optionsbutton.png
new file mode 100644
index 00000000..3921f494
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/optionsbutton.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/particles.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/particles.mdx
new file mode 100644
index 00000000..521523b4
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/particles.mdx
@@ -0,0 +1,13 @@
+---
+sidebar_position: 1.83
+---
+
+import Tabs from '@theme/Tabs';
+import Table from '/src/components/Table';
+
+import TabItem from '@theme/TabItem';
+import YouTube from 'react-youtube';
+
+# Particles (Coming Soon)
+
+We're excited for particles and are actively working on them! Join our Discord to stay posted; we will provide documentation on how to import and utilize particle effects in The Mirror in the not-too-distant future.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/preview-mode.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/preview-mode.mdx
new file mode 100644
index 00000000..d1435528
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/preview-mode.mdx
@@ -0,0 +1,29 @@
+---
+sidebar_position: 1.1
+---
+
+import Tabs from '@theme/Tabs';
+
+import TabItem from '@theme/TabItem';
+
+# Preview Mode
+
+Preview mode is _preview_ of Play Mode: exactly what a player experiences when they play your game.
+
+We've designed Preview Mode to allow you to quickly swap between building and playing while co-building with your team without having to fully publish a game and start from the beginning.
+
+Why?
+
+- No need to enter "cheat codes" to jump to a certain part of your game when testing.
+- No need to worry about long compile steps: Just hit "Preview" and experience your Space instantaneously.
+- Save time from building your game to testing it and back.
+
+Preview can be activated by clicking the "Preview" button in the top-right of the Build UI.
+
+
+
+## Exit Preview
+
+To exit the preview, press `ESC` and click "End Preview" in the bottom-left corner of the screen.
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/primiteivebuildermode.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/primiteivebuildermode.png
new file mode 100644
index 00000000..3f0bab43
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/primiteivebuildermode.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/projectstart.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/projectstart.png
new file mode 100644
index 00000000..a2fe22da
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/projectstart.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/quick-start.md b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/quick-start.md
new file mode 100644
index 00000000..37bac9be
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/quick-start.md
@@ -0,0 +1,9 @@
+---
+sidebar_position: 0.05
+---
+
+# Quick Start
+
+In-game, press `B` to open the Build UI. Everything is no-code drag-and-drop.
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/rightsidemaintoolbar.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/rightsidemaintoolbar.png
new file mode 100644
index 00000000..24e6544c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/rightsidemaintoolbar.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/scoreboard.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/scoreboard.png
new file mode 100644
index 00000000..65fecb3f
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/scoreboard.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/scripteditorparts.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/scripteditorparts.png
new file mode 100644
index 00000000..8c7be35b
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/scripteditorparts.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/spacecreated.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/spacecreated.png
new file mode 100644
index 00000000..0467423f
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/spacecreated.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/spaces.md b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/spaces.md
new file mode 100644
index 00000000..d7b57881
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/spaces.md
@@ -0,0 +1,78 @@
+---
+sidebar_position: 0.06
+---
+
+# Spaces
+
+Spaces in The Mirror means two things; a fully functional game published and ready for players to enjoy or a project that a user is currently developing. In other words, it is a game that can be modified or published.
+
+When you launch the app and log in you're greeted with the landing page.
+
+
+
+There are four main tabs at the top of the page as shown above; **Home**, **My Spaces**, **Build**, **Play**, **Avatar** and the cogwheel icon representing the settings menu.
+
+- **Home** page is where you land by default after logging in, it displays the recent Spaces you've visited as well as the ability to create new ones.
+
+:::note
+In The Mirror, projects, games, worlds are called Spaces. You'll find a list of all the Spaces you've worked on under **My Spaces** tab.
+:::
+
+- **Build** will list all the Spaces you or other people created and made public for anyone to check out. Spaces have various default permissions: Observer, Contributor, or Manager.
+- **Play** will showcase all the current published games available for anyone to play and enjoy.
+- **Avatar** will allow you to customize your in-game avatar that will be used across the different Spaces. For more information check the [Changing your character](/docs/build/Character) section.
+- In **Settings** you can change and customize the way The Mirror works, from graphics settings to controls.
+
+# Creating A Space
+
+- Navigate back to **Home** page and then click on "Create New Space".
+- **My Spaces** page will load the "Create New Space" page which lists all the available templates as shown below.
+
+
+
+:::note
+Templates save you time during game development. Each of the templates offered has a basic terrain and suitable lighting to help you create your game faster. Instead of you hunting down for hours and looking for assets to create a test desert level or an oasis to help set up your lighting, it is there ready and set up for you.
+
+Right now, The Mirror has 6 different environments to get you started; Badlands, Canyon, Desert, Mars, Mountains and Winter.
+:::
+
+- For this example, we'll choose the "Empty Template".
+
+- A dialogue box will show up asking you to give your Space a name. We'll call it "My First Space" but you're free to call yours whatever you want. Click on "Create"
+
+
+
+- In a few seconds you should see your Space created and is available for editing and is fully playable.
+
+
+
+- Click on the round orange button at the bottom left of the Space card titled "Build" as shown above to start editing the Space.
+
+:::note
+Clicking on the card itself instead of the "Build" button will open the project settings.
+:::
+
+- After loading in, this is what you should see:
+
+
+
+When creating any new Space, The Mirror will automatically provide you with a few tools to get you started on your creative adventure:
+
+1. A fully functional player object that allows you to explore the Space and acts as your main character during the building and testing processes. You can read more about characters [here](/docs/build/Character)
+2. A scoreboard in case your Space needs one.
+
+
+
+3. Given The Mirror is built with multiplayer in mind, your Space is created with the ability to have different teams and your character will belong to one of them by default.
+
+
+
+4. A chat system so you can chat with other players and your co-creators.
+
+
+
+5. Cinema mode to allow you to capture beautiful screenshots to showcase your creation.
+
+
+
+Now that you have a created Space, the sky is the limit: build the world and games you've been dreaming of.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/teams.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/teams.png
new file mode 100644
index 00000000..ded7d068
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/teams.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/teamsview.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/teamsview.png
new file mode 100644
index 00000000..200259f2
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/teamsview.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/terrainmapprimitivebuttons.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/terrainmapprimitivebuttons.png
new file mode 100644
index 00000000..8217ecb7
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/terrainmapprimitivebuttons.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/transformationhelpers.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/transformationhelpers.png
new file mode 100644
index 00000000..c025b0e7
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/transformationhelpers.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/upload_asset.jpeg b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/upload_asset.jpeg
new file mode 100644
index 00000000..c931568e
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/upload_asset.jpeg differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/upload_asset.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/upload_asset.png
new file mode 100644
index 00000000..1585a582
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/upload_asset.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/usersview.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/usersview.png
new file mode 100644
index 00000000..16176cc8
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/usersview.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/variablesview.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/variablesview.png
new file mode 100644
index 00000000..80c0ac82
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/variablesview.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/worldentities.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/worldentities.png
new file mode 100644
index 00000000..02dc674d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/build/worldentities.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/get-started.md b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/get-started.md
new file mode 100644
index 00000000..a5c6b904
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/get-started.md
@@ -0,0 +1,62 @@
+---
+sidebar_position: 0
+---
+
+# Быстрый старт
+
+:::info
+Обратите, пожалуйста, внимание, что основная документация The Mirror написана на английском языке. Документация The Mirror на русском языке может быть не полностью переведена с английского языка, а также учитывайте, что документация по The Mirror регулярно обновляется, и актуализация документации на русском языке занимает время. Если вы хотите получить всегда самую актуальную документацию, используйте, пожалуйста, документацию на английском языке.
+:::
+
+[_Looking for the open-source docs?_](/docs/open-source-code/get-started)
+
+## Mirror Official App
+
+**Welcome!** The Mirror is an open-source Roblox & UEFN alternative: an all-in-one app to build and play, giving you the freedom to own what you create.
+
+### Itch Desktop
+
+We recommend using the [Itch.io desktop app](https://itch.io/app). We push updates regularly and the Itch app will automatically update The Mirror for you.
+
+
+
+Once you've downloaded Itch Desktop and logged in, paste this direct link into the Itch desktop app URL bar: https://themirrorgdp.itch.io/the-mirror
+
+
+
+### Direct Download
+
+Alternatively, you can download the client directly from our [Itch.io page](https://themirrorgdp.itch.io/the-mirror).
+
+
+
+
+Need help? Chat with us on our [Discord #help channel](https://themirror.space/discord).
+
+## Create an Account
+
+You'll need an account since everyting is multiplayer. Go to [In The Mirror](https://in.themirror.space) and click **Sign In**.
+
+
+
+Click **Sign Up Here** on the dialogue box.
+
+
+
+Complete the sign up form to create an account.
+
+When you run the app, login using these credentials.
+
+
+
+Congratulations, you're in The Mirror. Head to the [Tutorial](/docs/tutorial) next.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/_category_.json b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/_category_.json
new file mode 100644
index 00000000..53a6f9a6
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Monetize",
+ "position": 7,
+ "link": {
+ "type": "generated-index",
+ "description": "Easily monetize your game with in-Space transactions, buy/sell assets, perks, power-ups, levels, quests, items, skins, and much more"
+ }
+}
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/godot-donations.md b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/godot-donations.md
new file mode 100644
index 00000000..9a36a518
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/godot-donations.md
@@ -0,0 +1,11 @@
+---
+sidebar_position: 2
+---
+
+import YouTube from 'react-youtube';
+
+# Godot Sponsorship
+
+We regularly partner with the non-profit Godot Foundation via sponsorships, such as the Nov 2023 GodotCon in Munich and GDC 2024. Watch our 2023 GodotCon video here:
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/in-space-purchases.md b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/in-space-purchases.md
new file mode 100644
index 00000000..d01cd8f0
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/in-space-purchases.md
@@ -0,0 +1,9 @@
+---
+sidebar_position: 1
+---
+
+# In-Space Purchases
+
+:::note Coming Soon
+In-Space purchases are coming soon to offer to users who play your game. Let us know if you'd like them sooner! [Tweet at us @themirrorgdp](https://twitter.com/themirrorgdp).
+:::
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/marketplace.md b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/marketplace.md
new file mode 100644
index 00000000..ce130bc4
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/monetize/marketplace.md
@@ -0,0 +1,15 @@
+---
+sidebar_position: 0
+---
+
+import YouTube from 'react-youtube';
+
+# Marketplace
+
+:::note Coming Soon
+The Marketplace is coming soon. Let us know if you'd like it sooner! [Tweet at us @themirrorgdp](https://twitter.com/themirrorgdp).
+:::
+
+Here's a sneak peek:
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/2024-03-16-15-47-58.jpg b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/2024-03-16-15-47-58.jpg
new file mode 100644
index 00000000..13b08ad2
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/2024-03-16-15-47-58.jpg differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/_category_.json b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/_category_.json
new file mode 100644
index 00000000..07344417
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Open-Source Code",
+ "position": 10,
+ "link": {
+ "type": "generated-index",
+ "description": "Documentation for The Mirror's open-source monorepo: https://github.com/the-mirror-gdp/the-mirror"
+ }
+}
\ No newline at end of file
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/architecture.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/architecture.mdx
new file mode 100644
index 00000000..18a70cf5
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/architecture.mdx
@@ -0,0 +1,42 @@
+---
+sidebar_position: 2
+---
+
+# Architecture
+
+## [`mirror-web-server`](https://github.com/the-mirror-gdp/the-mirror/tree/dev/mirror-web-server)
+
+As mentioned in our [open-source announcement blog post](https://www.themirror.space/blog/freedom-to-own-open-sourcing-the-mirror), one of the key things missing from typical game development is an out-of-the-box web server that handles everything, which `mirror-web-server` provides in a stable, highly-efficient, and scalable manner:
+
+- Authentication via Firebase
+- MongoDB: NoSQL Database
+- Mongoose: Flexible ODM (Object Document Mapper, the document DB version of an ORM from SQL)
+- HTTP requests
+- Websockets
+- Modular and extendable architecture
+- Pub/sub functionality via Redis
+- Type safety with Typescript
+- Dockerized
+- All neatly bundled with OpenAPI Swagger documentation
+
+The Mirror's web server is built on [NestJS](https://nestjs.com/), arguably the best thing to happen to NodeJS since [Express](https://expressjs.com/). It uses TypeScript, which is a superset of JavaScript that compiles to plain JavaScript.
+
+### Database: MongoDB
+
+The Mirror uses MongoDB: a NoSQL database that stores data in flexible, JSON-like documents. It is a popular choice for many modern web applications because it can store data of any structure, which is particularly useful when the data is not known in advance.
+
+### Why MongoDB and Mongoose?
+
+We get this question a lot and especially "Why not SQL?"". Here are the reasons:
+
+- **Flexibility**: The schemaless of MongoDB nature allow for maximum flexibility. For example, if the text you need to store is 1000 characters instead of 64, you don't need to run a migration. In fact, you could have just set the field (a SQL column) to "text" and that's it; no need to specify character limits ahead of time. It saves you tons of time with architecture so you can get up and running quickly
+- **Application-level schema**: Mongoose keeps the schema at the application level instead of DB level, allowing for faster development iterations with minimal (or zero) migration
+- **JSON Data Format**: The data format is quite close to JSON (BSON), which is the primary data transfer format of the web. The saves you from needing extra serialization
+- **JSON & TS/JS**: JSON and Typescript/Javascript go hand-in-hand, so this allows for rapid development on the web dev side
+- **Open-Source**: MongoDB is open-source and has a huge community behind it
+- **Scalable**: MongoDB is horizontally scalable, which means you can add more servers to your MongoDB database to handle more traffic. You can also use sharding to distribute data across multiple servers
+- **Minimal migration headaches**: Migrations technically aren't required _**at all**_ with MongoDB. You can just add a new field to your schema and start using it immediately, a massive time saver
+
+---
+
+_More architecture details coming soon!_
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/contribute.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/contribute.mdx
new file mode 100644
index 00000000..ecdb3a6c
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/contribute.mdx
@@ -0,0 +1,27 @@
+---
+sidebar_position: 10
+---
+
+# Contribute
+
+The Mirror is a **community-driven** project, literally created by open-source contributors. We'd love for you to consider contributing to The Mirror! We _**greatly appreciate**_ feedback, suggestions, and additions to the code.
+
+## How to Contribute
+
+### Discussion, Idea, or Proposal
+
+Open an issue on Github and use the `discussion/idea/proposal` label.
+
+### Code
+
+Open a PR on Github and we'd be happy to review.
+
+# Mission & Vision
+
+Read our open-source announcement here: https://www.themirror.space/blog/freedom-to-own-open-sourcing-the-mirror
+
+[](https://www.themirror.space/blog/freedom-to-own-open-sourcing-the-mirror)
+
+The Mirror is an open-source all-in-one game development platform, providing everything you need out-of-the-box to make a game/3D experiences, even if you've never written code in your life. The impetus behind labeling it an "open-source Roblox & UEFN alternatve" is because these are the two closest examples. Frankly, we're surprised there aren't more examples, especially with good graphics instead defaulting to cartoony styles.
+
+We hope to change that! :)
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/freedom-to-own-the-mirror.jpg b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/freedom-to-own-the-mirror.jpg
new file mode 100644
index 00000000..1bdb712d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/freedom-to-own-the-mirror.jpg differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/get-started.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/get-started.mdx
new file mode 100644
index 00000000..c36737db
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/open-source-code/get-started.mdx
@@ -0,0 +1,124 @@
+---
+sidebar_position: 1
+---
+
+# Быстрый старт
+
+:::info
+Обратите, пожалуйста, внимание, что основная документация The Mirror написана на английском языке. Документация The Mirror на русском языке может быть не полностью переведена с английского языка, а также учитывайте, что документация по The Mirror регулярно обновляется, и актуализация документации на русском языке занимает время. Если вы хотите получить всегда самую актуальную документацию, используйте, пожалуйста, документацию на английском языке.
+:::
+
+**Простейший подход:**: We'll walk you through how to get started developing **with the Godot app** and plug into the Mirror Official server (our deployed `mirror-web-server`). This gives you access to your full accounts, assets, Spaces, etc. [In The Mirror](https://in.themirror.space) (our web app). With it, you can start developing without needing to run the full stack locally.
+
+1. Git clone the repository: `git clone https://github.com/the-mirror-gdp/the-mirror.git` (you do **not** need to clone with submodules; they are optional)
+2. Download the precompiled Mirror fork of Godot engine (required to use)
+
+- **Windows: [Download](https://storage.googleapis.com/mirror_native_client_builds/Engine/41ba769a/MirrorGodotEditorWindows.exe)**
+- **Mac: [Download](https://storage.googleapis.com/mirror_native_client_builds/Engine/41ba769a/MirrorGodotEditorMac.app.zip)** **Note: very buggy**; taking contributions for fixes :) On Mac you will see a zip file; extract it and open the editor binary with CMD + Right-Click then select the Open option.
+- **Linux: [Download](https://storage.googleapis.com/mirror_native_client_builds/Engine/41ba769a/MirrorGodotEditorLinux.x86_64)**
+
+3. Open the Godot editor (The Mirror fork you downloaded in step 2), click import, and choose the `project.godot` from the `/mirror-godot-app` folder.
+4. Hit play once it loads!
+
+# Docker Approach
+
+:::info
+**You don't need Docker if you're only running `mirror-godot-app` locally**. You can still hit our deployed Mirror Official server instance via the top-right environment dropdown (select `official`; see pic below) and login with your Mirror account to manage assets, saved data, etc. **The Docker approach is for running the full stack yourself (including `mirror-web-server` locally, not just the `mirror-godot-app`).**
+:::
+
+
+
+Docker isn't required, but is recommended for ease to run the web server and other dependencies in a consistent environment across different hardware.
+
+## How to Run the Full Stack with Docker (Windows)
+
+1. Install Docker for Windows
+
+Download and proceed with instructions from: https://docs.docker.com/desktop/install/windows-install/
+Setup was tested with WSL2 (defualt for not Professional versions of Windows)
+
+2. Clone mthe main repo: `git clone git@github.com:the-mirror-gdp/the-mirror.git`.
+
+3. Configure your `./mirror-web-server/.env`
+
+Use these settings. For the rest, I used defaults but these docs need to be updated.
+
+```
+MONGODB_URL=mongodb://root:example@mongo:27017/themirror?retryWrites=true&w=majority&authSource=admin
+# Do not change paths here since they are relative to docker container
+GOOGLE_APPLICATION_CREDENTIALS=/app/the-mirror-backend-dev-firebase-admin.json # <- You'll supply this in the next step
+```
+
+4. Configure your `the-mirror-backend-dev-firebase-admin.json` to plug in your own Firebase instance. This is required if you're running `mirror-web-server` locally since `mirror-web-server` requires admin permissions.
+
+5. Launch WSL2 terminal and go to your project directory `cd /YOUR_PROJECT_DIR`
+
+6. Run `docker compose up`
+
+:::tip
+If you run into an error like this:
+`ERROR: for the_mirror_server Cannot start service mirror-server: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "./auto-migrate.sh": permission denied: unknown`
+
+Try running `chmod +x auto-migrate.sh` from the `mirror-web-server` directory.
+:::
+
+7. Use your godot-app with `local` preset in top right corner of Godot editor.
+
+8. Localhost Space should load with terrain and environment
+
+## Troubleshooting
+
+1. I messed up & I can't login
+
+Probably issue with mirror-server configuration files
+Rember to run `docker compose build` after every change to configs!
+
+2. My localhost space is empty (not even a terrrain and environment)
+
+Something went wrong with your migration of DB. After fixes to your dump file make sure to rm container running mongodb (otherwise init script restoring dump will not launch)
+
+3. My database is not empty even though it should be.
+
+Your mongo container maybe stopped but it is not removed. Try `docker rm mongo_container_id`. If this does not help try `docker system prune`
+
+## Other
+
+### Connection String for MongoDB Compass (the GUI for MongoDB):
+
+`mongodb://root:example@localhost:27017/themirror?retryWrites=true&w=majority&authSource=admin`
+
+Download MongoDB Compass [here](https://www.mongodb.com/try/download/compass).
+
+### Creating a New Dump of the Database
+
+1. Find container ID for Mongo:
+
+`docker ps`
+
+2. Enter the container bash:
+
+`docker exec -it CONATAINER_ID /bin/bash`
+
+3. Inside container:
+
+`cd / && mongordump --uri="mongodb://root:example@localhost:27017/themirror?retryWrites=true&w=majority&authSource=admin" -d themirror --archive=/database_dump/dump.archive
+`
+
+4. Now we have a dump but it's inside a container. Run in other WSL shell:
+
+`docker cp CONTAINER_ID:dump.archive .`
+
+Your dump should be in current dir called `dump.archive`
+
+5. Connecting to different localhost space in godot-app
+
+In the main folder of godot-app find `project.godot` and edit:
+
+```
+[editor]
+
+run/main_run_args="%command% --server --space NEW_SPACE_ID --mode edit --uuid localhost"
+```
+
+You can also edit it using godot editor. Go to `Project` -> `Project Settings` . Enable `Advanced Settings` Checkbox.
+Go to `Editor` -> `Run` Category and change Space ID in `Main Run Args` field.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObjcet-Networking.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObjcet-Networking.gif
new file mode 100644
index 00000000..4974eb84
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObjcet-Networking.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-BodyType.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-BodyType.png
new file mode 100644
index 00000000..9b04b663
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-BodyType.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-ConvexConcave.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-ConvexConcave.png
new file mode 100644
index 00000000..9163ff35
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-ConvexConcave.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Dynamic.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Dynamic.gif
new file mode 100644
index 00000000..de0cd116
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Dynamic.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Mass.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Mass.gif
new file mode 100644
index 00000000..646dc75c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Mass.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-MassAndGravityScale.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-MassAndGravityScale.png
new file mode 100644
index 00000000..148a0cfc
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-MassAndGravityScale.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-MovingOnTop.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-MovingOnTop.gif
new file mode 100644
index 00000000..2bc665f3
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-MovingOnTop.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-ShapeType.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-ShapeType.png
new file mode 100644
index 00000000..d31a2b7a
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-ShapeType.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Spawning-DetailPanelNavigation.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Spawning-DetailPanelNavigation.gif
new file mode 100644
index 00000000..63886298
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Spawning-DetailPanelNavigation.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Static.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Static.gif
new file mode 100644
index 00000000..59568e76
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/SpaceObject-Static.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/_category_.json b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/_category_.json
new file mode 100644
index 00000000..85b31e8c
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Physics",
+ "position": 4,
+ "link": {
+ "type": "generated-index",
+ "description": "The Mirror includes Jolt physics, an advanced physics engine. Everything is exposed with a high-level API and is networked out of the box."
+ }
+}
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/getting_started.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/getting_started.mdx
new file mode 100644
index 00000000..20e3233d
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/physics/getting_started.mdx
@@ -0,0 +1,101 @@
+---
+sidebar_position: 0
+---
+
+import Tabs from "@theme/Tabs";
+import Table from "/src/components/Table";
+
+import TabItem from "@theme/TabItem";
+import YouTube from "react-youtube";
+
+# Getting Started
+
+Working with physics in The Mirror is easy. Everything is exposed using high-level APIs. Even beginners can quickly create complex scenes with physics simulations and physics-enabled gameplay.
+
+The Mirror includes a custom implementation of [Jolt Physics](https://github.com/jrouwe/JoltPhysics), an advanced physics engine. All physics features are networked out of the box, such that all of the physics is synced between the server and all clients.
+
+This article explains the most essential features of The Mirror's physics, including `SpaceObject`s, body types, shape types, importing shapes from models, and how to apply forces and impulses.
+
+## The SpaceObject
+
+The `SpaceObject` is any object that can be placed into the space, like an imported asset. They are usually instances of 3D models from glTF files, but can also be instances of other asset types. `SpaceObject` has a transform and properties to define its physical behavior. Objects can be spawned by dragging and dropping an asset from the asset library. Objects can be deleted by selecting them and pressing the Delete key.
+
+
+
+## SpaceObject's Physical Properties
+
+You can manipulate the position and rotation of a `SpaceObject` by dragging it using one of the colored arrows with their tails at the object's origin. The arrows are part of a tool called the Gizmo. You can change the object's physical behavior by modifying the physics properties in the inspector panel. Only objects with collision enabled will interact with the physics engine.
+
+### Shape Type
+
+All SpaceObjects with collision enabled have a shape type. The shape type defines the shape of the object's collision bounds. The available options depend on the model you imported.
+
+- **Concave** is the most accurate collision shape, but it is the slowest, and can only be used with static objects. In a concave shape, each triangle from the model's meshes are used for collision. Concave is useful for meshes representing objects you can go inside of, like houses.
+- **Convex** is much faster than Concave. Convex simplifies the shape to be a convex hull with no holes or dips. Convex shapes are "filled in", they are not hollow. Non-concave shapes like Convex can be used for moving objects and triggers. Convex is suitable for most dynamic props, like barrels.
+- **Model Shapes** allows glTF 3D model files to provide their own collision shapes using the [`OMI_physics_shape`](https://github.com/omigroup/gltf-extensions/tree/main/extensions/2.0/OMI_physics_shape) extension. When this data is present in the file, this is usually the best option. Having a glTF 3D model file provide its own physics shapes is the only way to have boxes, spheres, capsules, and cylinders, which are simple primitives that are faster than both Concave and Convex. You can make a glTF file that uses `OMI_physics_shape` by exporting a .glb file from [Godot Engine](https://godotengine.org/) version 4.3 or later.
+- **Multi Bodies** is an advanced option available for glTF 3D model files that provide multiple bodies using the [`OMI_physics_body`](https://github.com/omigroup/gltf-extensions/tree/main/extensions/2.0/OMI_physics_body) extension. This option is useful for including many independently moving parts in one model, like a rube goldberg machine, a ball pit, a hanging rope, etc.
+- **Auto** is the default shape type. It will automatically select the best option for the model. It will try to use Model Shapes if available and suitable, otherwise it will use Concave for static objects and Convex for non-static objects.
+
+
+
+If your asset does not provide its own physics shapes, you will not see Model Shapes or Multi Bodies as available options in the dropdown. For most objects, the dropdown will look like this:
+
+
+
+### Body Type
+
+All SpaceObjects with collision enabled have a body type. The body type defines how the object moves and interacts with other objects. There are four body types: Static, Dynamic, Kinematic, and Trigger.
+
+
+
+#### Static
+
+The **Static** body type is for objects that don't move. This type is used for things like terrain, buildings, and props that are intended to be fixed in place. Static bodies can be teleported with scripts, but do not support smooth motion.
+
+
+
+#### Dynamic
+
+The **Dynamic** body type is for objects that move via forces. This is often referred to as rigid body dynamics. This type is used for moving objects, like barrels. Dynamic bodies are affected by gravity. Dynamic bodies can be pushed or stopped by all other solid objects, including other dynamic bodies, static bodies, kinematic bodies, and characters.
+
+The ideal way to move a dynamic body in user script is to apply forces to it with the [Apply Force Over Time](/docs/script/vs_api_reference#apply-force-over-time) or [Apply Force Impulse](/docs/script/vs_api_reference#apply-force-impulse) script blocks. This can be used to push around objects realistically, simulate impacts or explosions, etc.
+
+
+
+#### Kinematic
+
+The **Kinematic** body type is for objects that move via scripts. This type is used for finely controlled movement such as a moving platform. Kinematic bodies are not affected by gravity. The ideal way to move a kinematic body in user script is to [set its velocity](/docs/script/vs_api_reference#properties), either Linear Velocity or Angular Velocity, or use the [Move And Collide](/docs/script/vs_api_reference#move-and-collide) script block.
+
+#### Trigger
+
+The **Trigger** body type is for non-solid objects that can be used to detect when other objects enter or exit them. This type is used for things like checkpoints or traps. Triggers are not affected by gravity. Triggers may have a velocity specified like with Kinematic. Triggers are not solid and will pass through all other bodies.
+
+You can detect when a body enters a trigger using the [On Body Entered Trigger](/docs/script/vs_api_reference#on-body-entered-trigger) signal in visual scripting. Note that this signal is only available if the Body Type is Trigger, or if there is a Trigger subnode. Similarly, you can detect when a body exits a trigger using the [On Body Exited Trigger](/docs/script/vs_api_reference#on-body-exited-trigger) signal in visual scripting.
+
+### Mass and Gravity scale
+
+Mass and gravity scale are additional physics properties available for dynamic objects (objects that move with forces).
+
+
+
+#### Mass
+
+The mass property controls the mass of the object in Kilograms. This is useful to change the weight of a dynamic object, which includes how the body responds to forces and how easily it can be pushed around. A heavier object will take more effort to be pushed.
+
+
+
+#### Gravity scale
+
+The gravity scale changes the falling acceleration, and allows to create floating objects. A positive gravity scale will have objects fall in the direction of gravity (usually down). A negative gravity scale will have objects fall in the opposite direction of gravity (usually up). A zero gravity scale will cause the object to be not affected by gravity.
+
+## Move on top of objects
+
+The charcter can walk on top of moving objects. You can use this property to your advantage.
+
+
+
+## Networked physics
+
+The physics is networked out of the box, you can enjoy using it with your friends in real time!
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-19-02-20.jpg b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-19-02-20.jpg
new file mode 100644
index 00000000..e04a624d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-19-02-20.jpg differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-27-01.jpg b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-27-01.jpg
new file mode 100644
index 00000000..c4c7a968
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-27-01.jpg differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-27-10.jpg b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-27-10.jpg
new file mode 100644
index 00000000..b3ba4d82
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-27-10.jpg differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-28-19.jpg b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-28-19.jpg
new file mode 100644
index 00000000..b2084867
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-28-19.jpg differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-41-03.jpg b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-41-03.jpg
new file mode 100644
index 00000000..6ae12e68
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/2023-02-23-22-41-03.jpg differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/_category_.json b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/_category_.json
new file mode 100644
index 00000000..e43bed3b
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Play",
+ "position": 5,
+ "link": {
+ "type": "generated-index",
+ "description": "There are 2 main modes in The Mirror: Build and Play. Play Mode is where your published games take flight and can be played by anyone in the world."
+ }
+}
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/buildmode.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/buildmode.png
new file mode 100644
index 00000000..8509a10b
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/buildmode.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/homepage.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/homepage.png
new file mode 100644
index 00000000..a66b9ef9
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/homepage.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/myspaces.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/myspaces.png
new file mode 100644
index 00000000..537bdaea
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/myspaces.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/myspacespublishing.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/myspacespublishing.png
new file mode 100644
index 00000000..8315a230
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/myspacespublishing.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/play-mode.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/play-mode.mdx
new file mode 100644
index 00000000..1a3876f0
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/play-mode.mdx
@@ -0,0 +1,43 @@
+---
+sidebar_position: 3
+---
+
+import Tabs from '@theme/Tabs';
+
+import TabItem from '@theme/TabItem';
+
+# Play Mode
+
+When a Space is published, it becomes available for everyone to experience as a fully functional game -- this is called Play Mode. In other engines, this is equivalent to exporting your project and uploading it to any platform. However, everything in The Mirror is in real-time, so no need to worry about long builds and exports.
+
+## How To Publish Your Space
+
+- Launch The Mirror and login using your account. You should see the landing page:
+
+
+
+- Switch to the **My Spaces** tab
+
+
+
+- Click on the Space card you would like to publish.
+
+
+
+- Click the "Publish" button.
+
+- The "Publish" button will change into "Play" instead and you'll get a message notifying you that the Space is published.
+
+
+
+If you're connected to a Space and you want to publish it press `B` on your keyboard to open _Build Mode_
+
+
+
+- Click on the cog wheel icon at the top right of the Main Toolbar. This will open the settings menu
+
+
+
+- Scroll to the bottom and click on the "Publish Game" button.
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/published.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/published.png
new file mode 100644
index 00000000..5cc592ab
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/published.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/publishgame.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/publishgame.png
new file mode 100644
index 00000000..955d8d5d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/publishgame.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/settingsmenu.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/settingsmenu.png
new file mode 100644
index 00000000..3150d552
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/play/settingsmenu.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/rest-api/_category_.json b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/rest-api/_category_.json
new file mode 100644
index 00000000..70b79eea
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/rest-api/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "REST API",
+ "position": 8,
+ "link": {
+ "type": "generated-index",
+ "description": "The Mirror exposes a REST API to query Spaces, Objects, Assets, and more."
+ }
+}
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/rest-api/getting-started.md b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/rest-api/getting-started.md
new file mode 100644
index 00000000..94225749
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/rest-api/getting-started.md
@@ -0,0 +1,5 @@
+# Coming Soon
+
+:::note Coming Soon
+The REST API is coming soon. Let us know if you're a developer and would like to integrate with The Mirror! [Tweet at us @themirrorspace](https://twitter.com/themirrorspace).
+:::
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/_category_.json b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/_category_.json
new file mode 100644
index 00000000..798fb215
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Scripting",
+ "position": 3,
+ "link": {
+ "type": "generated-index",
+ "description": "Bring your games to life with The Mirror's high-level visual scripting. Coding can be daunting, which is why The Mirror provides no-code visual scripting out-of-the-box to make it easy for people of any skill level to build in The Mirror. Visual scripting is still programming, but high-level, and without needing to write code as text. Full support for GDScript is also available if you prefer writing text-based code."
+ }
+}
\ No newline at end of file
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/gdscript.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/gdscript.mdx
new file mode 100644
index 00000000..665ce450
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/gdscript.mdx
@@ -0,0 +1,73 @@
+---
+sidebar_position: 3.6
+title: 'Mirror-Flavored GDScript'
+sidebar_label: GDScript
+---
+
+# GDScript
+
+The Mirror provides access to the power of Godot's GDScript. This is like normal GDScript, but supports multiple scripts per object, and includes access to The Mirror's API.
+
+The Mirror provides GDScript primarily for existing Godot users, and as such, The Mirror's documentation will not cover every aspect of the GDScript language. For more information on GDScript, please refer to [the Godot documentation](https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html).
+
+## Mirror-Flavored GDScript
+
+You may use functions and variables just like you would in normal GDScript. As a part of The Mirror's support for multiple scripts per object, you can use members of SpaceObject the same way you use inherited members in Godot. For example, `print(position)` will print a SpaceObject's position. In this way, your GDScript code behaves as if it were directly in a script attached to the SpaceObject, without actually being attached to it.
+
+If you need to refer to the object the script is attached to, use the `target_object` variable. The `self` variable refers to the script itself. The `target_object` variable can either be a SpaceObject or the global scripts singleton.
+
+You must not write `class_name` or `extends` in your script. The Mirror's support for multiple scripts per object means that scripts act more like "components", so they do not extend the object they are attached to.
+
+## Entries
+
+Entry points can be added to a script by clicking the "Add Entry" button in the script editor. This is the same as the "Entry" section of the "Add Script Block" menu in visual scripting. These use Godot signals under the hood, but The Mirror handles the connection for you.
+
+import AddEntry from './img/gdscript/add_entry.webp';
+
+
+
+When an entry is connected, it will show a green arrow icon to the left of the function signature. If you do not see a green arrow, then the entry is not connected, and you may need to add it from the Add Entry menu again. To delete an entry, erase the function text, and then the signal will automatically be disconnected.
+
+The callback functions `_ready`, `_process`, and `_physics_process` are available, however others such as the input callbacks are not available. When detected, they will show a blue arrow. These are provided for convenience and compatibility with regular GDScript. Generally, the entry points added through "Add Entry" are the preferred way to receive signals from The Mirror.
+
+import EntryIcons from './img/gdscript/entry_icons.webp';
+
+
+
+## API
+
+You can print to the notification area using `Notify.info(title, message)`. You can also use `Notify.success`, `Notify.warning`, and `Notify.error`.
+
+Many helper functions for functionality present in visual scripting are available via the `Mirror` singleton. For example, functions for accessing and modifying variables are here.
+
+## Example: Counter
+
+Here is a simple script that counts every frame and prints to the notification area with `Notify.info`.
+
+import CounterMember from './img/gdscript/counter_member.webp';
+
+
+
+However, the above uses a member variable. This is useful for its own reasons, but it is not accessible by other scripts, it is not persistent and so will reset if the server restarts, and will reset any time you change the script. If you want a variable that is persistent, or something that can share data between scripts, you can use an object variable. You can use the `get_object_variable` and `set_object_variable` functions to access these.
+
+import CounterObjVar from './img/gdscript/counter_obj_var.webp';
+
+
+
+The Mirror's object and global variables behave the same way in GDScript as they do in visual scripting.
+
+## Example: Has Red Key
+
+Aside from setting variables on yourself, you can also use the `Mirror.get_object_variable` and `Mirror.set_object_variable` functions to access variables on other objects. These functions work on any node, including SpaceObjects, model subnodes, and even players. By itself, `get_object_variable(...)` is a shorthand for `Mirror.get_object_variable(target_object, ...)`. You can also use `Mirror.get_global_variable` and `Mirror.set_global_variable` to access global variables.
+
+import HasRedKey from './img/gdscript/has_red_key.webp';
+
+
+
+By default, the above script will show an "Access Denied" message if the `"has_red_key"` variable is null or false, indicating that the player does not have the red key. If another script granted the player the red key by setting `"has_red_key"` to true, then it will show an "Access Granted" message instead.
+
+Note that variable names are `String`, not `StringName`. This is because The Mirror's variables support JSON paths separated by either dots or forward slashes, and so are not limited to simple names. For example, `"a/b"` and `"a.b"` both refer to the same variable `"b"` inside of a `Dictionary` variable `"a"`. If desired, you could instead use the variable path `"door_keys/has_red"` to store the variable `"has_red"` inside of a `Dictionary` variable `"door_keys"`.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/getting_started.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/getting_started.mdx
new file mode 100644
index 00000000..88518fc9
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/getting_started.mdx
@@ -0,0 +1,275 @@
+---
+sidebar_position: 3.1
+title: Visual Scripting Getting Started
+sidebar_label: Getting Started
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import Table from '/src/components/Table';
+import YouTube from 'react-youtube';
+
+# Visual Scripting
+
+Coding can be daunting, which is why The Mirror provides no-code visual scripting out-of-the-box to make it easy for people of any skill level to build in The Mirror. Visual scripting is still programming, but high-level, and without needing to write code as text. Full support for GDScript is also available if you prefer writing text-based code, but we recommend learning the Mirror through visual scripting first so that you can learn the API.
+
+The original idea was inspired by Godot's own visual scripting that was present in the engine prior to version 4.0 before it was discontinued. Visual Scripting in Godot was a key reason we chose Godot; we were sad to see it removed from Godot 4 and are excited to bring it back to you in The Mirror.
+
+You can check out the announcement video and a quick note about visual scripting on our Youtube channel:
+
+
+
+
+## Global vs Object Scripts
+
+Scripts in The Mirror can be attached globally to the whole Space, or attached to a specific object in your Space.
+
+Global scripts are used to affect the game on a global level. For example, you can use them to make a score tracker that gives points when a player kills an enemy.
+
+Object scripts can be attached to any Object. Their execution Space is local to the object they are attached to. For example, you can make a medkit that heals the player when they interact with it.
+
+## Your First Global Script
+
+import GlobalScripts from './img/getting_started/global_scripts.webp';
+
+
+
+Creating a global script is simple:
+
+- Open _Build Mode_ by pressing B on your keyboard.
+
+- On the right side, under Entities, next to the "GLOBAL SCRIPTS" category, click on the "+" sign. The "Create Script" popup will appear.
+
+- Click on "New Visual Script" to make a new visual script. The visual scripting editor will appear, filling the bottom half of the 3D viewport.
+
+- The "Create Script Entry" dialog will appear, prompting you to pick an entry point for your script. Entry blocks determine when the script runs, such as when an event happens. You can add more entry blocks later.
+
+import NewGlobalScript from './img/getting_started/new_global_script.webp';
+
+
+
+For experimenting with scripts, a simple entry to use is the "Timeout" signal under "New Timer". Select it, and either double-click on it, or click "Create" to add this entry to your script.
+
+### Canvas Controls
+
+Now that you have a script created, you will need to be able to navigate the script editor. Take note of these controls, practice panning around.
+
+
+{[
+{label: "Windows", value: "windows", cmdCtrlKey: "CTRL", deleteKeys: "Delete or Backspace"},
+{label: "Mac", value: "mac", cmdCtrlKey: "CMD", deleteKeys: "Delete or ⌦"},
+{label: "Linux", value: "linux", cmdCtrlKey: "CTRL", deleteKeys: "Delete or Backspace"}
+]
+.map((os) => {
+ {/* React MDX isn't working here for some reason. Should be able to use the below */}
+ const cmdCtrlKey = os.cmdCtrlKey
+ const deleteKeys = os.deleteKeys
+ const headers = [`Input`, `Action`];
+ const data = [
+ [`Left Mouse Button`, `Click on a block to select it`],
+ [`Hold Left Mouse On Empty`, `Drag a box to select blocks`],
+ [`Hold Left Mouse On Block`, `Drag to move selection`],
+ [`Hold Left Mouse On Port`, `Drag to connect port`],
+ [`Mouse Wheel Scroll`, `Zoom in/out`],
+ [`Hold Middle Mouse Button`, `Pan view`],
+ [`Hold Right Mouse Button`, `Pan view`],
+ [`Quick Press Right Mouse`, `Create script block`],
+ [`N key`, `Create comment`],
+ [`${deleteKeys}`, `Delete selection`],
+ [`${cmdCtrlKey} + C`, `Copy selection`],
+ [`${cmdCtrlKey} + V`, `Paste selection`],
+ [`${cmdCtrlKey} + D`, `Duplicate selection`],
+ ];
+ return
+
+
+})}
+
+
+
+:::important
+Visual scripting is not available in VR. This is because Build mode is not available in VR.
+:::
+
+
+
+
+You can also left-click on the script canvas minimap at the bottom right of the script canvas to pan.
+
+:::note
+Entry blocks cannot be copy-pasted (like the "On Timer Timeout" block we just created). For safety reasons, only regular script blocks can be copy-pasted. For more information on copy-pasting, see the [Saving Scripts](./saving_scripts.mdx) page.
+:::
+
+### Creating Script Blocks
+
+Now that you have familiarized yourself with the script editor, let's add some blocks to your first global script. As a minimal test, let's print "Hello World" to the notification area (or whatever text you'd like).
+
+We can create blocks in one of three ways:
+
+1. Click "Add Script Block" in the top of the script editor to open the Create Script Block dialog. This will show all blocks.
+
+2. Right-click in an empty spot in the script editor to open the Create Script Block dialog. This will show all blocks.
+
+3. Drag from one of the colored circles on the sides of the blocks. This will show only blocks that can be connected to the block you are dragging from, by setting the "Show" filter to match where you dragged from.
+
+import CreateScriptBlockDrag from './img/getting_started/create_script_block_drag.webp';
+
+
+
+Using any method, create a "Print Notify" block. In the screenshot above, we dragged from the "On Timer Timeout" block's run port, so the "Show" filter is set to "Run Blocks". You can also get to "Print Notify" with "Show" set to "All blocks", which is the default filtering when clicking "Add Script Block", or when right-clicking an empty spot.
+
+:::note
+The script editor automatically saves your progress in real time. You don't have to manually save when making changes.
+:::
+
+Each block has a set of ports. The white arrow ports determine the direction of flow and how the script is run. All other colors are for data. Ensure the "On Player Interact" block is connected to the new "Print Notify" block. If not, drag from one white port to the other white port. Clicking on the ports can sometimes be finicky, just keep trying if you mis-click the first time. Once the white line is connected, this tells The Mirror that after the "On Player Interact" block is executed, the "Print Notify" block should be executed.
+
+Next, click on the value button for the "Message" field to edit the message. Type "Hello World", or any text you'd like. You can either press Enter to save, or click the "Save" button.
+
+import PrintEditMessage from './img/getting_started/print_edit_message.webp';
+
+
+
+After you do this, you will see this message printed in the notification area at the top-right of the screen. Note that the most recent notification is shown at the top.
+
+import HelloWorldNotification from './img/getting_started/hello_world_notification.webp';
+
+
+
+If you want to change the frequency in which the message is printed, we can change the timer's duration.
+
+import GlobalScriptTimerDuration from './img/getting_started/global_script_timer_duration.webp';
+
+
+
+Next, on your own, take a few moments to try out other blocks. See if you can figure out how to Add two numbers and print the result. Hint: You will need to make a new block and connect it to the Message port by dragging a line.
+
+## Your First Object Script
+
+After you are familiar with global scripts, let's learn how to make object scripts. First, if you have not already, create a Object. You can search for models in the asset library by typing in the search bar, or clicking "view all".
+
+import SearchForAssets from './img/getting_started/search_for_assets.webp';
+
+
+
+### Candles
+
+For this first example we will create candles that damage players when they interact with it. You can do this by searching for the desired asset and dragging-and-dropping from the asset library.
+
+import CreateCandles from './img/getting_started/create_candles.webp';
+
+
+
+Next, with the object selected (either in the 3D view or in the hierarchy), click on the "Scripting" tab in the inspector. Then click "Add Script" and create a new visual script.
+
+import ObjectScriptCreate from './img/getting_started/object_script_create.webp';
+
+
+
+Using the same skills you learned making global scripts, create a "Player Interact" entry, create a "Damage" block, and connect them together. You need to drag from one block's port to another port of a compatible type (usually the same color). You need to connect the white sequence ports, and connect the "Player" `obj` port to the "On Object" `obj` port. You should also give the script a meaningful name so you can easily identify it later. The end result should look like this. Pay attention to the lines boxed in red, and the amount of damage.
+
+import ObjectScriptHurtPlayer from './img/getting_started/object_script_hurt_player.webp';
+
+
+
+Exit _Build Mode_ by pressing B on your keyboard. With your character, walk up to the candles and look at them. You should see a text that says "Interact (E)".
+
+import ObjectScriptCandlesInteract from './img/getting_started/object_script_candles_interact.webp';
+
+
+
+Now you can press E on your keyboard to use the candles. Note how your character's health is `100` to start. Interact with the object by pressing E on your keyboard and your health will be reduced by `20`, the amount specified in the Damage script block. If you press E many times, you will die.
+
+### Medkit
+
+Next, let's make a medkit that can heal players. Open _Build Mode_ by pressing B on your keyboard. Similarly to before, let's drag-and-drop a medkit model from the asset library.
+
+import CreateMedkit from './img/getting_started/create_medkit.webp';
+
+
+
+Using the same procedure as with the candles, create a "Player Interact" entry, create a "Heal" block, and connect them together. Don't forget to give your script a meaningful name, it's a good habit to get into, otherwise your Space will be full of "New Script 7" scripts. The end result should look like this.
+
+import ObjectScriptHealPlayer from './img/getting_started/object_script_heal_player.webp';
+
+
+
+Exit _Build Mode_ by pressing B on your keyboard. With your character, walk up to the medkit and look at it. You should see a text that says "Interact (E)".
+
+import ObjectScriptMedkitInteract from './img/getting_started/object_script_medkit_interact.webp';
+
+
+
+Now you can press E on your keyboard to use the medkit. Note that if you have full health, the Heal block will not do anything. To test it, you will need to damage yourself, such as by interacting with the candles, or getting a friend to shoot you with a gun.
+
+### Cactus
+
+Next, let's make something more advanced, a cactus with a timer that hurts a Player if they get very close to the cactus. We want to keep hurting them until they get away from the cactus, so we will use an "On Timer Timeout" entry to run the script frequently. We will set the duration to 0.2 to make it run every 0.2 seconds (5 times per second). We need to get a player within a short distance, but only run the hurt block if we found a player.
+
+Take a look at the script below and replicate it in your Space, then try standing next to the cactus. If you did it right, it will hurt you. You may need to tweak the "Range" depending on the size of your objects. Note that "Range" is in meters, as are all distances in The Mirror.
+
+import ObjectScriptPricklyCactus from './img/getting_started/object_script_prickly_cactus.webp';
+
+
+
+You can control when the script is allowed to run using the "Enabled" and "Run In Build Mode" checkboxes in the script inspector. This allows you to temporarily disable a script for testing, or to ensure a script only runs when playing the game. By default, scripts will run in Build mode, while you are building your Space. Perhaps you don't want a cactus to hurt you while you are building your Space, so you can uncheck "Run In Build Mode" to disable it while building.
+
+import ScriptRunCheckboxes from './img/getting_started/script_run_checkboxes.webp';
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/create_script.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/create_script.webp
new file mode 100644
index 00000000..11032213
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/create_script.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/add_entry.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/add_entry.webp
new file mode 100644
index 00000000..d340554f
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/add_entry.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/counter_member.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/counter_member.webp
new file mode 100644
index 00000000..283a6b8c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/counter_member.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/counter_obj_var.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/counter_obj_var.webp
new file mode 100644
index 00000000..486834ff
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/counter_obj_var.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/entry_icons.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/entry_icons.webp
new file mode 100644
index 00000000..3d51c817
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/entry_icons.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/has_red_key.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/has_red_key.webp
new file mode 100644
index 00000000..9cb30581
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/gdscript/has_red_key.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_candles.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_candles.webp
new file mode 100644
index 00000000..e196ff7b
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_candles.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_medkit.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_medkit.webp
new file mode 100644
index 00000000..673b4f82
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_medkit.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_script_block_drag.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_script_block_drag.webp
new file mode 100644
index 00000000..134750f5
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/create_script_block_drag.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/global_script_timer_duration.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/global_script_timer_duration.webp
new file mode 100644
index 00000000..424f3f9c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/global_script_timer_duration.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/global_scripts.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/global_scripts.webp
new file mode 100644
index 00000000..6b7a809c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/global_scripts.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/hello_world_notification.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/hello_world_notification.webp
new file mode 100644
index 00000000..a4d9de27
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/hello_world_notification.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/new_global_script.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/new_global_script.webp
new file mode 100644
index 00000000..c89e5262
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/new_global_script.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_candles_interact.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_candles_interact.webp
new file mode 100644
index 00000000..55375660
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_candles_interact.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_create.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_create.webp
new file mode 100644
index 00000000..72a08bcc
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_create.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_heal_player.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_heal_player.webp
new file mode 100644
index 00000000..957f2c2f
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_heal_player.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_hurt_player.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_hurt_player.webp
new file mode 100644
index 00000000..aff533e6
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_hurt_player.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_medkit_interact.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_medkit_interact.webp
new file mode 100644
index 00000000..19cfdbf1
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_medkit_interact.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_prickly_cactus.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_prickly_cactus.webp
new file mode 100644
index 00000000..03729df9
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/object_script_prickly_cactus.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/print_edit_message.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/print_edit_message.webp
new file mode 100644
index 00000000..d65c9a8d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/print_edit_message.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/script_run_checkboxes.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/script_run_checkboxes.webp
new file mode 100644
index 00000000..8b83a2d0
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/script_run_checkboxes.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/search_for_assets.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/search_for_assets.webp
new file mode 100644
index 00000000..289860e3
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/getting_started/search_for_assets.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill.webp
new file mode 100644
index 00000000..30b3c1b5
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill_handle_ff.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill_handle_ff.webp
new file mode 100644
index 00000000..bb830ea5
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill_handle_ff.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill_if_value.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill_if_value.webp
new file mode 100644
index 00000000..83c2e1da
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_score_kill_if_value.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_setup_and_weapon.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_setup_and_weapon.webp
new file mode 100644
index 00000000..9c3fcff6
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/match/match_setup_and_weapon.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_add_equipable.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_add_equipable.png
new file mode 100644
index 00000000..d3548245
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_add_equipable.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_add_script.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_add_script.png
new file mode 100644
index 00000000..37acda7f
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_add_script.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_audio_clip_node.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_audio_clip_node.png
new file mode 100644
index 00000000..9505b9ca
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_audio_clip_node.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_copy_asset_id.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_copy_asset_id.png
new file mode 100644
index 00000000..41d90e41
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_copy_asset_id.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_drag_and_drop.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_drag_and_drop.png
new file mode 100644
index 00000000..154891b9
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_drag_and_drop.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_interaction.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_interaction.gif
new file mode 100644
index 00000000..75b5dcb6
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_interaction.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_paste_asset_id.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_paste_asset_id.png
new file mode 100644
index 00000000..a1a748ed
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_paste_asset_id.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_play_animation.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_play_animation.png
new file mode 100644
index 00000000..e8a2a4b3
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_play_animation.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_player_interact_script.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_player_interact_script.png
new file mode 100644
index 00000000..e7af5334
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_basic/npc_basic_player_interact_script.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/move_to_node.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/move_to_node.png
new file mode 100644
index 00000000..77facc42
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/move_to_node.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/npc_capsule.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/npc_capsule.gif
new file mode 100644
index 00000000..146d8441
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/npc_capsule.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/npc_physical_properties.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/npc_physical_properties.png
new file mode 100644
index 00000000..4795bf6c
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/npc_physical_properties.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/process_every_frame.png b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/process_every_frame.png
new file mode 100644
index 00000000..5e806bec
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/process_every_frame.png differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/zombie.gif b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/zombie.gif
new file mode 100644
index 00000000..103251c4
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/npc_walking/zombie.gif differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_edit.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_edit.webp
new file mode 100644
index 00000000..13dc2ada
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_edit.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_instance.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_instance.webp
new file mode 100644
index 00000000..2ce3916d
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_instance.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_save.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_save.webp
new file mode 100644
index 00000000..4a80aa19
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_save.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_sidebar.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_sidebar.webp
new file mode 100644
index 00000000..41c70a40
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_asset_sidebar.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_set_name_editor.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_set_name_editor.webp
new file mode 100644
index 00000000..19baa310
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_set_name_editor.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_set_name_inspector.webp b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_set_name_inspector.webp
new file mode 100644
index 00000000..2c854929
Binary files /dev/null and b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/img/saving/script_set_name_inspector.webp differ
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/match_round_system.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/match_round_system.mdx
new file mode 100644
index 00000000..c1d855d3
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/match_round_system.mdx
@@ -0,0 +1,115 @@
+---
+sidebar_position: 3.3
+---
+
+# Match/Round System
+
+The Mirror includes a high-level system for match-based games, with optional rounds.
+
+## Matches
+
+Matches represent the overall game loop for match-based games. If your Space is just a place for people to hang out, or your Space is a game with no way to achieve victory, you don't need to use matches.
+
+You can set the match settings using the Set Match Settings script block. You can run this when the game starts, or just run it once in Build mode. This block does not necessarily need to be present in the final game, you can run it once in Build mode, and then the match settings will be saved in the Space Variables. You can start a match by using the Start Match block.
+
+When a new match starts, all Space Variables are reset to the values they had when the Space was published, and all players will respawn. Matches can be ended manually or by achieving victory (see the "Victory" section below).
+
+## Rounds
+
+Rounds are optional. A match may have many rounds, or no rounds at all.
+
+A game using rounds is like Counter-Strike. The team's score is the number of rounds the team has won. You can end a round in script using the End Round block, which will add 1 to the winning team's score. By default, the End Round block will also start the next round after a short delay; this can be configured by adjusting the block's inputs. When the next round starts, all players will respawn. Variables will not be reset between rounds, so the game state is preserved. For example, in a game like Counter-Strike, money can be preserved between rounds.
+
+A game not using rounds is like Team Fortress. In script, you can add to the team's score when the team completes an objective. The objective could be something simple like "capture a flag" or "kill an enemy player", or it can be as elaborate as you'd like, regardless it is all determined by your script.
+
+## Victory
+
+The match can end in one of three ways:
+
+- For round-based games, you can end a round using an End Round script block. This will add 1 to the winning team's score. When the team's score reaches the win score, that team is declared the winner and the match ends.
+- For non-round-based games, you can add points using an Add Score To Team script block. When the team's score reaches the win score, that team is declared the winner and the match ends.
+- You can end the match at any time in script using either an End Match block or a Terminate Match block.
+
+When a match ends, the scoreboard will be force-shown on the screen. The scoreboard will have the winning team's name displayed and will have a button at the bottom to start a new match.
+
+You can also terminate the match, which will end the match without declaring a winner or showing the scoreboard. You can use this to implement your own system for showing the winner and restarting the match. For example, you may want to teleport the players to an open field and set off red fireworks if the red team wins, or blue fireworks if the blue team wins. Then to restart the match, you could have it do so after a few seconds, or provide a button on a pedestal that users can press to restart.
+
+## Example: Team Deathmatch
+
+Here is an example of a simple team deathmatch game. This example uses matches but not rounds, so we want to add to the score directly when a player killed another.
+
+First, we will make a script that runs when a player kills a player. This script will add 1 to the killer's team's score. Then to make sure it's working, we will print a message with the team's score.
+
+import MatchScoreKill from './img/match/match_score_kill.webp';
+
+
+
+Next, we will make a script that handles the rest of the game. When the game starts, we want to start a match and set the match settings. Remember that starting a match will reset all Space Variables, so if you want to set custom settings it needs to be done after the Start Match block. And of course, we need to give players guns when they spawn so they can kill each other.
+
+import MatchSetupAndWeapon from './img/match/match_setup_and_weapon.webp';
+
+
+
+Note: In the above example we disabled friendly fire in the match settings because the first script does not handle friendly fire. Here is a similar script that handles friendly fire. It subtracts 1 (add -1) from the team score and print "Friendly Fire!" when a player kills a player on the same team.
+
+import MatchScoreKillHandleFF from './img/match/match_score_kill_handle_ff.webp';
+
+
+
+Furthermore, the logic in this script seems quite big due to all of the printing. If we did not print anything, we could simplify this a lot by using an If Value script block. The below script can be read as "When a player is killed, add points to the killer's team, -1 if friendly fire or 1 if not friendly fire".
+
+import MatchScoreKillIfValue from './img/match/match_score_kill_if_value.webp';
+
+
+
+## GDScript
+
+The match/round system API can also be accessed from GDScript via the `Zone.match_system` singleton. You can access them like this:
+
+```gdscript
+Zone.match_system.add_score_to_team(team_name, score_to_add)
+Zone.match_system.end_match(winning_team_name)
+Zone.match_system.end_round(winning_team_name, auto_start_next, auto_start_wait_time, auto_start_freeze_time)
+Zone.match_system.get_score_for_team(team_name)
+Zone.match_system.get_team_names()
+Zone.match_system.is_match_running()
+Zone.match_system.is_round_running()
+Zone.match_system.set_score_for_team(team_name, new_score)
+Zone.match_system.start_match(freeze_time)
+Zone.match_system.start_round(freeze_time)
+Zone.match_system.terminate_match()
+Zone.match_system.terminate_round()
+```
+
+Here are the function signatures:
+
+```gdscript
+func add_score_to_team(team_name: String, score_to_add: int) -> bool:
+func end_match(winning_team_name: String) -> void:
+func end_round(winning_team_name: String, auto_start_next: bool, auto_start_wait_time: float, auto_start_freeze_time: float) -> void:
+func get_score_for_team(team_name: String) -> int:
+func get_team_names() -> Array[String]:
+func is_match_running() -> bool:
+func is_round_running() -> bool:
+func set_score_for_team(team_name: String, new_score: int) -> bool:
+func start_match(freeze_time: float = -1.0) -> void:
+func start_round(freeze_time: float = -1.0) -> void:
+func terminate_match() -> void:
+func terminate_round() -> void:
+```
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/npc_basic.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/npc_basic.mdx
new file mode 100644
index 00000000..c7d962c2
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/npc_basic.mdx
@@ -0,0 +1,60 @@
+---
+sidebar_position: 3.4
+---
+
+# NPC Basic
+
+The Mirror provides a method for creating NPCs using Visual Scripting. In this tutorial, we will create a humanoid NPC that gives a weapon to the player each time they interact with it.
+
+## The NPC Model
+
+The initial requirement is to create the NPC model, rig it, animate it, and finally export it as a GLB file. Once the GLB file is ready, you can easily import it into The Mirror by drag and drop.
+At this stage, the NPC is prepared, and all that is necessary is to drag and drop it into the scene.
+
+
+
+## Interact
+
+At this stage, we can proceed with the script creation. Select the NPC model, open the script tab, and click the 'Add Script' button.
+
+
+
+Select 'New Script' and create a Player Interact script.
+
+
+
+## Animate the NPC
+
+The concept is to animate the NPC every time the player interacts. To achieve this, you'll utilize the PlayAnimation node, illustrated below.
+
+
+
+Interacting with the NPC will cause the NPC model to animate.
+
+## Let's make the NPC talk.
+
+We want our NPC to talk or emit a sound when the player interacts, to make it alive. To accomplish this, we can use the PlayAudioClip node.
+
+
+
+This node plays the audio clip we specify using the AssetID. The first step is to import our audio clip; you can simply drag and drop a WAV file. Then, select the audio file to open the detail menu and use the button to copy the asset ID.
+
+
+
+Then, paste the asset ID into the asset ID parameter, on the PlayAudioClip node.
+
+
+
+## Add Equipable
+
+The final part of our script involves instructing the NPC to equip the weapon to the player. This can be accomplished using the AddEquipable node.
+
+
+
+Please ensure that you specify the Weapon asset ID, which you can copy as we did for the Audio Clip above. Additionally, you can utilize the ClearEquipable node to remove any equipable item from the player before assigning a new one.
+
+# Conclusion
+
+
+
+Interacting with an NPC grants the player a weapon. This script serves as a simple template that can be expanded to create more intricate NPCs, such as companions who assist the player throughout their journey.
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/npc_walking.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/npc_walking.mdx
new file mode 100644
index 00000000..9166613e
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/npc_walking.mdx
@@ -0,0 +1,49 @@
+---
+sidebar_position: 3.5
+---
+
+# NPC Walking
+
+We have already covered the creation of a basic NPC in the previous article, where it gives a weapon to the player upon interaction. In this article, we will expand on that by creating a script to make the NPC move to a specific location.
+
+## The SpaceObject properties
+
+The prerequisite for enabling NPC movement is to set the Body Type to Kinematic and the Shape Type to Capsule.
+
+
+
+
+
+## Script
+
+Now that the NPC is prepared for movement, add a Player Interact Script (as done in the previous article), and then add a MoveTo node.
+The MoveTo node instructs the SpaceObject to move to the specified location while avoiding obstacles.
+
+
+
+Following is the list of properties it accepts:
+- OnObject: The SpaceObject to move.
+- Location: The destination location.
+- Acceleration: The change in velocity the capsule takes when moving.
+- Deceleration: The change in velocity the capsule takes when stopping.
+- MaxSpeed: The speed the SpaceObject tries to maintain.
+- StepHeight: The height the SpaceObject can step up. It's useful for walking up stairs.
+- MaxPushForce: The maximum amount of pushing force this SpaceObject can generate when touching another SpaceObject.
+- SupportingHeight: Starting from the ground, indicates the part of the capsule that supports the SpaceObject even on steep slopes.
+- Gravity: The constant downward acceleration.
+- MinDistanceFromTarget: Specifies the distance that the SpaceObject tries to maintain from the target.
+- MaxDistanceFromTarget: When it's more than 0 and the distance from the target is greater, the SpaceObject moves toward the BaseLocation instead of toward the TargetLocation.
+- BaseLocation: The location the SpaceObject moves toward if the target is too far.
+- SteeringRayOffset: The ray casted by the steering algorithm is offset.
+- SteeringRayLength: The ray length used for steering. The longer it is, the sooner the SpaceObject will react to obstacles.
+- SteeringRayRadius: The ray thickness.
+- SteeringIgnore: The array containing all the SpaceObjects/Players the steering has to ignore.
+- RotationOffset: The model rotation offset, used to re-orient the model.
+
+# Conclusion
+
+In combination with the MoveTo node, it is possible to use the PlayAnimation node (as explained in the previous article) to make the NPC walk around.
+You can use the MoveTo node in conjunction with the ProcessEveryFrame node to create complex NPCs, such as zombies.
+
+
+
diff --git a/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/saving_scripts.mdx b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/saving_scripts.mdx
new file mode 100644
index 00000000..c69f9219
--- /dev/null
+++ b/mirror-docs/i18n/ru/docusaurus-plugin-content-docs/current/script/saving_scripts.mdx
@@ -0,0 +1,133 @@
+---
+sidebar_position: 3.2
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import Table from '/src/components/Table';
+import YouTube from 'react-youtube';
+
+# Saving Scripts
+
+Once you have made a script, a common desire is to save it for later use. The Mirror provides 2 ways to do this: Saving as a script asset, and copying the script contents as JSON.
+
+Before saving a script for later, you should first give the script a meaningful name. This can either be done from in the script editor or in the inspector.
+
+import ScriptSetNameEditor from './img/saving/script_set_name_editor.webp';
+import ScriptSetNameInspector from './img/saving/script_set_name_inspector.webp';
+
+
+
+
+## Script Assets
+
+When you have a script that you want to save for later, you can click the "Save As New Script" button to save the script as a new script asset.
+
+import ScriptAssetSave from './img/saving/script_asset_save.webp';
+
+
+
+This will create a new script asset and place it in "MY ASSETS", which you can find in the sidebar.
+
+import ScriptAssetSidebar from './img/saving/script_asset_sidebar.webp';
+
+
+
+You can click on a script asset to edit the name, edit the description, delete the asset, and view its contents. When viewing the script asset, entry blocks will be surrounded with a yellow outline, indicating that it is not active. If you hover over it, there will be an explanation of why it is not active.
+
+import ScriptAssetEdit from './img/saving/script_asset_edit.webp';
+
+
+
+When you want to instance a script asset, drag-and-drop the script into the hierarchy. Scripts can be either attached globally to the Space (drag onto "GLOBAL SCRIPTS") or to a specific object (drag onto that object).
+
+import ScriptAssetInstance from './img/saving/script_asset_instance.webp';
+
+
+
+In the future, we will add the ability for users to publish assets for other people to use, including script assets.
+
+## Copying Scripts
+
+You can select script blocks and copy them using the shortcut below. This will copy the selected script blocks into your OS clipboard. You can paste back into the script editor, or paste anywhere else you'd like.
+
+
+ {[
+ { label: 'Windows', value: 'windows', cmdCtrlKey: 'CTRL' },
+ { label: 'Mac', value: 'mac', cmdCtrlKey: 'CMD' },
+ { label: 'Linux', value: 'linux', cmdCtrlKey: 'CTRL' },
+ ].map((os) => {
+ {
+ /* React MDX isn't working here for some reason. Should be able to use the below */
+ }
+ const cmdCtrlKey = os.cmdCtrlKey;
+ const headers = [`Input`, `Action`];
+ const data = [
+ [`${cmdCtrlKey} + C`, `Copy selection`],
+ [`${cmdCtrlKey} + V`, `Paste selection`],
+ [`${cmdCtrlKey} + D`, `Duplicate selection`],
+ ];
+ return (
+
+