diff --git a/.github/workflows/calibreapp-image-actions.yml b/.github/workflows/calibreapp-image-actions.yml
index 361b68d4c54..50641ac5fbd 100644
--- a/.github/workflows/calibreapp-image-actions.yml
+++ b/.github/workflows/calibreapp-image-actions.yml
@@ -44,6 +44,9 @@ jobs:
# For non-Pull Requests, run in compressOnly mode and we'll PR after.
compressOnly: ${{ github.event_name != 'pull_request' }}
ignorePaths: 'docs/es/**,docs/de/**,docs/fr/**,docs/ru/**,docs/sl/**'
+ # Avoid progressive degradation of quality
+ pngQuality: '100'
+ minPctChange: '30'
- name: Create Pull Request
# If it's not a Pull Request then commit any changes as a new PR.
if: |
diff --git a/.github/workflows/improve-docs.yml b/.github/workflows/improve-docs.yml
new file mode 100644
index 00000000000..9deee8413ed
--- /dev/null
+++ b/.github/workflows/improve-docs.yml
@@ -0,0 +1,115 @@
+# ============================================================================
+# Improve Documentation (AI-driven)
+# ============================================================================
+# Runs daily (or on demand). Pulls the GDevelop repo, reads what has already
+# been improved in automated_updates_data.json, and uses an AI agent to
+# improve a DIFFERENT aspect of the documentation each run.
+#
+# To switch from Claude Code to Codex:
+# 1. Change AI_PROVIDER to "codex"
+# 2. Comment out the "Install Claude Code" step and uncomment "Install Codex"
+# 3. Swap the API key secrets (comment ANTHROPIC_API_KEY, uncomment OPENAI_API_KEY)
+# ============================================================================
+
+name: "Auto: Improve documentation"
+
+on:
+ schedule:
+ - cron: "0 10 * * *" # Every day at 10:00 UTC (offset from the other workflow)
+ workflow_dispatch: # Manual trigger
+ # pull_request: # For testing in PRs
+
+permissions:
+ contents: write
+ pull-requests: write
+
+jobs:
+ improve-docs:
+ runs-on: ubuntu-latest
+ if: github.repository == 'GDevelopApp/GDevelop-documentation'
+ timeout-minutes: 20
+
+ steps:
+ # ── Checkout this documentation repo ──────────────────────────────
+ - name: Checkout documentation repo
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ # ── Node.js ───────────────────────────────────────────────────────
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: "20"
+
+ # ── Install AI CLI ────────────────────────────────────────────────
+ - name: Install Claude Code
+ run: npm install -g @anthropic-ai/claude-code
+
+ # Uncomment below (and comment above) to use Codex instead:
+ # - name: Install Codex
+ # run: npm install -g @openai/codex
+
+ # ── Generate a random suffix for the branch name ─────────────────
+ - name: Generate branch suffix
+ id: suffix
+ run: echo "value=$(openssl rand -hex 2)" >> "$GITHUB_OUTPUT"
+
+ # ── Run the improvement script ────────────────────────────────────
+ - name: Improve documentation
+ id: improve
+ env:
+ AI_PROVIDER: "claude" # Change to "codex" to use Codex
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ # OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+ run: |
+ node scripts/improve-docs.js
+
+ # Pass the AI summary to subsequent steps
+ if [ -f /tmp/ai_summary.txt ]; then
+ delimiter="EOF_$(openssl rand -hex 8)"
+ {
+ echo "summary<<${delimiter}"
+ cat /tmp/ai_summary.txt
+ echo ""
+ echo "${delimiter}"
+ } >> "$GITHUB_OUTPUT"
+ fi
+
+ # Pass the AI-generated PR title to subsequent steps
+ if [ -f /tmp/ai_pr_title.txt ]; then
+ delimiter="EOF_$(openssl rand -hex 8)"
+ {
+ echo "pr_title<<${delimiter}"
+ cat /tmp/ai_pr_title.txt
+ echo ""
+ echo "${delimiter}"
+ } >> "$GITHUB_OUTPUT"
+ else
+ echo "pr_title=[Auto] [Improve] Documentation improvement" >> "$GITHUB_OUTPUT"
+ fi
+
+ # ── Create Pull Request ───────────────────────────────────────────
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v7
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ commit-message: ${{ steps.improve.outputs.pr_title }}
+ title: ${{ steps.improve.outputs.pr_title }}
+ body: |
+ This PR was automatically generated by the **Improve documentation** workflow.
+
+ An AI coding agent inspected the [GDevelop](https://github.com/4ian/GDevelop) codebase
+ and the existing documentation, then chose an aspect to improve.
+
+ The AI agent summary is:
+ > ${{ steps.improve.outputs.summary }}
+
+ The updated `automated_updates_data.json` tracks what was improved so future
+ runs will pick a different area.
+
+ **Please review the changes carefully before merging.**
+ base: main
+ branch: auto/improve-docs-${{ steps.suffix.outputs.value }}
+ delete-branch: true
+ labels: automated,improvement
diff --git a/.github/workflows/update-docs-from-commits.yml b/.github/workflows/update-docs-from-commits.yml
new file mode 100644
index 00000000000..10cac77106d
--- /dev/null
+++ b/.github/workflows/update-docs-from-commits.yml
@@ -0,0 +1,126 @@
+# ============================================================================
+# Update Documentation from GDevelop Commits
+# ============================================================================
+# Runs daily (or on demand). Pulls the GDevelop repo, inspects recent commits
+# since the last tracked commit, and uses an AI agent (Claude Code by default,
+# Codex as an alternative) to update the docs accordingly.
+#
+# To switch from Claude Code to Codex:
+# 1. Change AI_PROVIDER to "codex"
+# 2. Comment out the "Install Claude Code" step and uncomment "Install Codex"
+# 3. Swap the API key secrets (comment ANTHROPIC_API_KEY, uncomment OPENAI_API_KEY)
+# ============================================================================
+
+name: "Auto: Update docs from GDevelop commits"
+
+on:
+ schedule:
+ - cron: "0 8 * * *" # Every day at 08:00 UTC
+ workflow_dispatch: # Manual trigger
+ # pull_request: # For testing in PRs
+
+permissions:
+ contents: write
+ pull-requests: write
+
+jobs:
+ update-docs:
+ runs-on: ubuntu-latest
+ if: github.repository == 'GDevelopApp/GDevelop-documentation'
+ timeout-minutes: 20
+
+ steps:
+ # ── Checkout this documentation repo ──────────────────────────────
+ - name: Checkout documentation repo
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ # ── Node.js ───────────────────────────────────────────────────────
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: "20"
+
+ # ── Install AI CLI ────────────────────────────────────────────────
+ - name: Install Claude Code
+ run: npm install -g @anthropic-ai/claude-code
+
+ # Uncomment below (and comment above) to use Codex instead:
+ # - name: Install Codex
+ # run: npm install -g @openai/codex
+
+ # ── Generate a random suffix for the branch name ─────────────────
+ - name: Generate branch suffix
+ id: suffix
+ run: echo "value=$(openssl rand -hex 2)" >> "$GITHUB_OUTPUT"
+
+ # ── Run the update script ─────────────────────────────────────────
+ - name: Update documentation from recent commits
+ id: update
+ env:
+ AI_PROVIDER: "claude" # Change to "codex" to use Codex
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ # OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+ run: |
+ node scripts/update-docs-from-commits.js
+
+ # Pass the AI summary and commit log to subsequent steps
+ if [ -f /tmp/ai_summary.txt ]; then
+ delimiter="EOF_$(openssl rand -hex 8)"
+ {
+ echo "summary<<${delimiter}"
+ cat /tmp/ai_summary.txt
+ echo ""
+ echo "${delimiter}"
+ } >> "$GITHUB_OUTPUT"
+ fi
+ if [ -f /tmp/commit_log.txt ]; then
+ delimiter="EOF_$(openssl rand -hex 8)"
+ {
+ echo "commits<<${delimiter}"
+ cat /tmp/commit_log.txt
+ echo ""
+ echo "${delimiter}"
+ } >> "$GITHUB_OUTPUT"
+ fi
+
+ # Pass the AI-generated PR title to subsequent steps
+ if [ -f /tmp/ai_pr_title.txt ]; then
+ delimiter="EOF_$(openssl rand -hex 8)"
+ {
+ echo "pr_title<<${delimiter}"
+ cat /tmp/ai_pr_title.txt
+ echo ""
+ echo "${delimiter}"
+ } >> "$GITHUB_OUTPUT"
+ else
+ echo "pr_title=[Auto] [Update] Documentation update from commits" >> "$GITHUB_OUTPUT"
+ fi
+
+ # ── Create Pull Request ───────────────────────────────────────────
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v7
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ commit-message: ${{ steps.update.outputs.pr_title }}
+ title: ${{ steps.update.outputs.pr_title }}
+ body: |
+ This PR was automatically generated by the **Update docs from GDevelop commits** workflow.
+
+ An AI coding agent analysed recent commits in [4ian/GDevelop](https://github.com/4ian/GDevelop)
+ and updated the documentation to reflect user-facing changes.
+
+ ### GDevelop commits covered
+ ```
+ ${{ steps.update.outputs.commits }}
+ ```
+
+ ### The AI agent summary is:
+ ${{ steps.update.outputs.summary }}
+
+ **Please review the changes carefully before merging.**
+ base: main
+ branch: auto/update-docs-from-commits-${{ steps.suffix.outputs.value }}
+ delete-branch: true
+ labels: automated,update
diff --git a/.gitignore b/.gitignore
index 6962a76bc7e..61473a0642e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
dokuwiki2wikijs/__pycache__
.DS_Store
-site
\ No newline at end of file
+site
+scripts/node_modules/
\ No newline at end of file
diff --git a/AGENTS.md b/AGENTS.md
new file mode 120000
index 00000000000..681311eb9cf
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1 @@
+CLAUDE.md
\ No newline at end of file
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 00000000000..986b900995e
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,10 @@
+# Important Writing Style And Architecture Constraints
+
+- Do NOT document non-user-facing implementation details. Focus only on information
+ that is relevant to users creating games with GDevelop, not internal engine behavior.
+- Do NOT list all actions/conditions in a list or table: the reference documentations are already
+ automatically generated for this.
+- Do not specify the default values. Don't feel forced to list all the properties of a
+ behavior/object/condition/action: prefer to explain use cases, examples and how it's useful
+ for the end user which will create a game with it.
+- Do not explain standard default/shortcuts (the UI is supposed to make this clear already).
\ No newline at end of file
diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md
index 8174f3f83e4..5b1c9d83707 100644
--- a/CONTRIBUTE.md
+++ b/CONTRIBUTE.md
@@ -2,17 +2,17 @@
Thank you for investing your time in contributing to GDevelop's documentation! Any contribution you make will be reflected on wiki.gdevelop.io ✨.
-In this guide you will get an overview of the contribution workflow.
+In this guide, you will get an overview of the contribution workflow.
## Make a contribution
-To make a contribution, you shall follow those steps:
+To make a contribution, follow those steps:
1. [Fork this repository](https://docs.github.com/fr/get-started/quickstart/fork-a-repo)
2. [Install the project](#installation)
3. [Find an issue that you can resolve](https://github.com/GDevelopApp/GDevelop-documentation/issues)
4. [Open a Pull Request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)
-5. Once your Pull Request is merged, the documentation will be automatically be updated with your changes (a few minutes for changes to take effect)
+5. Once your Pull Request is merged, the documentation will automatically be updated with your changes (a few minutes for changes to take effect)
## Installation
@@ -27,15 +27,15 @@ First install:
Run:
```sh
-poetry install
+poetry install --no-root
```
### Run the project
```sh
-mkdocs serve
+poetry run mkdocs serve
# Or, for faster reload after changes:
-mkdocs serve --dirtyreload
+poetry run mkdocs serve --dirtyreload
```
This will run the documentation on http://localhost:8000.
diff --git a/README.md b/README.md
index 46ad1e6207b..0f1d1906bde 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,17 @@ This repository holds [the official documentation](https://wiki.gdevelop.io) for
## Getting Started
-| ❔ I want to... | 🚀 What to do |
-| -------------------------------------------- | --------------------------------------------------------------------------------- |
-| Improve or add articles to the documentation | Head over to [this README](./SYNTAX.md) to understand the syntax of the documentation.|
-| Bring improvements to the documentation interface | Head over to [this README](./CONTRIBUTE.md) to understand how this repository works. |
\ No newline at end of file
+| ❔ I want to... | 🚀 What to do |
+| ------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| Improve or add articles to the documentation | Head over to [this README](./SYNTAX.md) to understand the syntax of the documentation. |
+| Bring improvements to the documentation interface | Head over to [this README](./CONTRIBUTE.md) to understand how this repository works. |
+
+## Contribute to this repository
+
+Install [uv](https://github.com/astral-sh/uv) for Python. Then:
+
+```bash
+uv sync
+uv run mkdocs serve # To run the documentation locally and see changes.
+uv run mkdocs build # To build for deployment on a static hosting.
+```
diff --git a/automated_updates_data.json b/automated_updates_data.json
new file mode 100644
index 00000000000..3837b23c98c
--- /dev/null
+++ b/automated_updates_data.json
@@ -0,0 +1,89 @@
+{
+ "last_automated_updates_commit": "9cd06e4e71f45c80c1b566bd918b410e28a7dce1",
+ "last_improved_things": [
+ {
+ "date": "2026-02-16",
+ "summary": "Enhanced 3D model documentation with animation controls, material types, origin/center points, and shadow configuration"
+ },
+ {
+ "date": "2026-02-16",
+ "summary": "Improved core behavior documentation: added Window Center anchor option, draggable collision mask and Z-order details, destroy outside parameters"
+ },
+ {
+ "date": "2026-02-16",
+ "summary": "Enhanced pathfinding documentation with grid offset properties, path smoothing, obstacle cost clarification, and activation behavior"
+ },
+ {
+ "date": "2026-02-16",
+ "summary": "Improved UI and visual object documentation: enhanced light, button, slider, text, panel sprite, and particle emitter pages with detailed properties and usage tips"
+ },
+ {
+ "date": "2026-02-16",
+ "summary": "Enhanced tween behavior documentation with scale center options, color modes, exponential interpolation, and effect properties"
+ },
+ {
+ "date": "2026-02-16",
+ "summary": "Enhanced Spine object documentation with animation control details, point attachments, skins, mixing duration, and coordinate systems"
+ },
+ {
+ "date": "2026-02-16",
+ "summary": "Improved bitmap text and shape painter documentation: added alignment properties, wrapping width, and comprehensive list of all shape types"
+ },
+ {
+ "date": "2026-02-18",
+ "summary": "Improved variables documentation: added array/structure manipulation operations, object variable use-case guidance, and fixed physics2 typos"
+ },
+ {
+ "date": "2026-02-18",
+ "summary": "Improved platformer and top-down movement docs: added ladder climbing, jumpthru drop-through, ledge grab clarifications, and isometric viewpoint options"
+ },
+ {
+ "date": "2026-02-18",
+ "summary": "Improved sprite and video object docs: added blend modes, color/tint, flip operations, animation speed scale, and fixed video typos and playback speed range"
+ },
+ {
+ "date": "2026-02-18",
+ "summary": "Improved audio docs with fade, pitch/rate, seeking, unload, and spatial sound; improved linked objects docs with bidirectional links, auto-cleanup, and use cases"
+ },
+ {
+ "date": "2026-02-20",
+ "summary": "Improved events docs: fixed truncated sentence and added execution-flow diagram in async.md, fixed backtick typo in while/index.md, removed stray word in gamejolt publishing doc"
+ },
+ {
+ "date": "2026-02-23",
+ "summary": "Improved scene editor docs: fixed broken URL in scene-editor/index.md, added enable/disable effect and parameter type info to layer-effects.md, and added lighting layer and follow-base-layer-camera docs to layers-and-cameras.md"
+ },
+ {
+ "date": "2026-02-22",
+ "summary": "Fixed publishing docs: removed outdated 'iOS coming soon' claim, fixed broken mobile links, updated Android sideloading instructions for Android 8+, and clarified macOS/Windows security bypass steps"
+ },
+ {
+ "date": "2026-02-23",
+ "summary": "Improved mouse-touch docs with mouse buttons, wheel scrolling, and cursor coordinate notes; improved storage docs with value types, existence check, deletion, and macOS save path"
+ },
+ {
+ "date": "2026-02-24",
+ "summary": "Fixed custom behavior lifecycle method names (onStepPreEvents/onStepPostEvents → doStepPreEvents/doStepPostEvents) and updated collisions doc to reference Physics 2 instead of deprecated Physics behavior"
+ },
+ {
+ "date": "2026-03-05",
+ "summary": "Improved network docs: updated to async single-URL API, added HTTP methods, error variable, CORS warning, content type info, and Open URL action"
+ },
+ {
+ "date": "2026-03-10",
+ "summary": "Filled in the 'Concepts used in Physics' section of the 3D Physics Engine docs: world/gravity/scale, body types, collision shapes (Box/Capsule/Sphere/Cylinder/Mesh), body settings, collision layers & masks, and movement (forces/impulses/velocities)"
+ },
+ {
+ "date": "2026-03-13",
+ "summary": "Improved player-authentication docs (fixed typo, added UserID() expression, HideAuthenticationBanner action, removed outdated experimental note) and inventory docs (cleaned up expression syntax, added SetUnlimited action, added Maximum expression)"
+ },
+ {
+ "date": "2026-03-15",
+ "summary": "Improved string-instructions (added StrReplaceOne/StrReplaceAll), common-conversions (added LargeNumberToString, ToJSON/ObjectVarToJSON), timers (added TimeScale and Time() format selectors), and gamepad docs (added analog triggers, deadzone, StickForceX/Y, controller type detection)"
+ },
+ {
+ "date": "2026-03-24",
+ "summary": "Fixed device-sensors docs (typo in gamma rotation description, wrong units deg/s vs m/s² for rotation values, clarified Is Absolute expression, added gravity note to acceleration) and fixed broken wiki URL in advanced-conditions OR condition"
+ }
+ ]
+}
diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico
index 0b22c9e993d..55facded3a6 100644
Binary files a/docs/assets/favicon.ico and b/docs/assets/favicon.ico differ
diff --git a/docs/assets/logo.svg b/docs/assets/logo.svg
index 9bf16613148..c04e23d234d 100644
--- a/docs/assets/logo.svg
+++ b/docs/assets/logo.svg
@@ -1,14 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/de.png b/docs/de.png
deleted file mode 100644
index ac4a9773627..00000000000
Binary files a/docs/de.png and /dev/null differ
diff --git a/docs/de/gdevelop5/documentation.md b/docs/de/gdevelop5/documentation.md
deleted file mode 100644
index aa1c14950a5..00000000000
--- a/docs/de/gdevelop5/documentation.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: documentation
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-
-
-# GDevelop 5 GDevelop ist ein quelloffener, plattformübergreifende **Spieleentwicklungssoftware**,. Die Verwendung ist für jedermann entwickelt worden – es sind keine Programmierkenntnisse erforderlich, um die Software zu verwenden. Wenn Sie GDevelop noch nie verwendet haben, [versuchen Sie es online](https://editor.gdevelop.io) oder [laden Sie die Desktop-Version herunter](http://gdevelop.io/download)!
-
-Dieses **Wiki** ist da, um Sie über die Software zu unterrichten und Tutorials zu ihrer Verwendung bereitzustellen: Sie sind herzlich eingeladen, dazu beizutragen! \# Einstieg
-
-➡️Um mit GDevelop 5 zu beginnen, lesen Sie die [Erste-Schritte-Seite](/gdevelop5/getting_started), die **[grundlegende Konzepte zur Spieleerstellung](/gdevelop5/tutorials/basic-game-making-concepts)** und durchsuchen Sie die [Tutorials](/gdevelop5/Tutorials).
-
-!!! note
-
- "Nicht vergessen. Kreativität und Durchhaltevermögen ist sehr wichtig bei der Spieleentwicklung.
diff --git a/docs/de/gdevelop5/getting_started.md b/docs/de/gdevelop5/getting_started.md
deleted file mode 100644
index b2a3e74f927..00000000000
--- a/docs/de/gdevelop5/getting_started.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: Der Start mit GDevelop
----
-# Der Start mit GDevelop
-
-## Probieren Sie GDevelop online aus oder laden Sie die Desktop-Version herunter
-
-* Zu Beginn können Sie [GDevelop online testen](https://editor.gdevelop.io).
-* Um Ihr eigenes Spiel zu erstellen, speichern und veröffentlichen Sie es unter [Download der Desktop-Version auf der GDevelop-Website](https://gdevelop.io).
-
-Wenn Sie GDevelop heruntergeladen haben, öffnen Sie das Installationsprogramm und installieren Sie die Software:
-
-* Verwenden Sie auf Windows-Computern nach dem *Starten des Installationsprogramms* das *GDevelop-Symbol* auf Ihrem Desktop, um es zu starten. Sie können die Installationsdatei (z. B. eine Zip-Datei) auch *dekomprimieren* und die Software in einem beliebigen Ordner ablegen.
-* Starten Sie unter MacOS die *DMG-Datei*, ziehen Sie GDevelop in *Applications* und öffnen Sie GDevelop aus dem Ordner Applications.
-* *Dekomprimieren* Sie unter Linux das Archiv und starten Sie die ausführbare Datei.
-
-Nach dem Start der Anwendung wird die Startseite angezeigt. Auf der Startseite können Sie ein vorhandenes Projekt öffnen oder ein neues Projekt erstellen.
-
-
-## Erstelle ein neues Projekt
-
-Um ein neues Projekt zu erstellen, wählen Sie auf der Startseite "Neues Projekt erstellen".
-
-Ein neues Fenster wird geöffnet. Es enthält eine Liste von Optionen, mit denen Sie aus Vorlagen/Beispielen auswählen oder ein leeres Projekt erstellen können. Die *Beispiele* zeigen, wie eine bestimmte Funktion verwendet wird, während *Starter* fortgeschrittenere Spiele sind, die Sie ausprobieren, studieren und modifizieren können.
-
-Wenn Sie ein leeres Projekt auswählen, werden keine Elemente, Ereignisse oder Szenen angezeigt - es ist ein völlig leeres Spiel.
-
-
-
-Unten im Fenster können Sie den Ort auswählen, an dem Sie Ihr neues Projekt speichern möchten.
-
-
-Nachdem Sie den Standardspeicherort für Ihr Projekt ausgewählt haben, klicken Sie auf den Namen einer Startvorlage oder eines Beispiels, um das Spiel zu öffnen.
-
-!!! note
-
- Neue Spiele, die Sie erstellen, werden standardmäßig in einem Ordner namens "GDevelop Projects" gespeichert, der sich in Ihrem Ordner "Documents" befindet. note>
-
- ## Öffnen Sie ein bestehendes Projekt
-
- Um ein bestehendes Projekt erneut zu öffnen, wählen Sie auf der Startseite "Projekt öffnen".
-
- Durchsuchen Sie als Nächstes Ihr lokales Dateisystem, um die Projektdatei auszuwählen. GDevelop 5-Projektdateien werden standardmäßig als ".json" -Dateien gespeichert.
-
- 
-
- Das Symbol für diese Datei hängt davon ab, ob auf Ihrem Computer eine Standardanwendung zum Bearbeiten von „.json“ -Dateien installiert ist.
-
-
- *Hinweis:* Benutzer von GDevelop 4 können [hier erfahren, wie Sie Ihr Projekt speichern, um es mit GDevelop 5 zu öffnen](/gdevelop5/getting_started/open-gdevelop-4-project).
-
- ## Nächster Schritt: Beginnen Sie mit Tutorials
-
- Lesen Sie **[die grundlegenden Konzepte, um zu verstehen, wie man Gdevelop verwendet](/gdevelop5/tutorials/basic-game-making-concepts)**.
-
- Die Tutorials und die Dokumentation sind die besten Lernmethoden. Es wird dringend empfohlen, dass Sie ein Tutorial [tutorial](/gdevelop5/tutorials) durcharbeiten!
-
- ## Erfahren Sie mehr über GDevelop
-
- Weitere Informationen zur Verwendung von GDevelop finden Sie auf den folgenden Seiten, auf denen alles ausführlicher erklärt wird:
-
- * [interface](/gdevelop5/interface)
- * [objects](/gdevelop5/objects)
- * [behaviors](/gdevelop5/behaviors)
- * [events](/gdevelop5/events)
- * [all features](/gdevelop5/all-features)
- * [publishing](/gdevelop5/publishing)
-
- Beachten Sie auch die mit GDevelop mitgelieferten Beispiele! Sie sind eine gute Möglichkeit, die verschiedenen Funktionen der Software kennenzulernen.
\ No newline at end of file
diff --git a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-11-24.png b/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-11-24.png
deleted file mode 100644
index f4150fa7a1c..00000000000
Binary files a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-11-24.png and /dev/null differ
diff --git a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-24-44.png b/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-24-44.png
deleted file mode 100644
index 5a6e7e77346..00000000000
Binary files a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-24-44.png and /dev/null differ
diff --git a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-28-28.png b/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-28-28.png
deleted file mode 100644
index f4b9c649052..00000000000
Binary files a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-28-28.png and /dev/null differ
diff --git a/docs/de/gdevelop5/index.md b/docs/de/gdevelop5/index.md
deleted file mode 100644
index 1826fac5510..00000000000
--- a/docs/de/gdevelop5/index.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: start
----
-
-
-# GDevelop 5 Dokumentation
-
-GDevelop ist ein kostenloses Open-Source, Plattform-übergreifendes **Spiele-Erstellungstool**, dass jeder verwenden kann um Spiele zu erstellen *ohne* jegliche Programmier-Kenntnisse zu haben! Dieses Wiki enthält alles was du wissen musst um mit Gdevelop 5 Spiele zu erstellen — auch wenn du noch nie zuvor Spiele erstellt hast.
-
-
-
-## Nächste Schritte
-
-* Falls du GDevelop noch nicht installiert hast, dann lese dir die Anleitung [Anfangen](/gdevelop5/getting_started) durch.
-* Wenn du noch nie ein Spiel erstellt hast, lese dir die Anleitung zu den [Grundlegenden Konzepten zur Spielherstellung](/gdevelop5/tutorials/basic-game-making-concepts) durch.
-* Wenn du bereit bist ein Spiel zu erstellen, dann [lese dir die Tutorials durch](/gdevelop5/tutorials).
diff --git a/docs/de/gdevelop5/publishing/web.md b/docs/de/gdevelop5/publishing/web.md
deleted file mode 100644
index 5d8efaf513d..00000000000
--- a/docs/de/gdevelop5/publishing/web.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: web
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-# Publishing your game on the web (upload online)
-
-Using GDevelop hosting servers, you can export your game for publication on the web. The hosting servers are free. Your game will be available for a few days!
-
-To upload to the servers, in the File menu, choose Export. Then choose **Web (upload online)**, and then simply click on **Export and upload my game**.
-
-
-
-The game will be hosted on GDevelop hosting servers. These servers are backed by Amazon's robust services. The games that you upload are available to use to share your game for a few days. There is no charge for this service.
-
-Note that the link, by default, is **private**. It not shared anywhere. You can share the link to your game according to your needs. Share with a few people or a broader audience.
-
-## Export to other platforms (iOS, Android, Windows, macOS, Linux)
-
-See the [other export options](/gdevelop5/publishing) to learn how to publish your game on other platforms!
diff --git a/docs/de/gdevelop5/tutorials.md b/docs/de/gdevelop5/tutorials.md
deleted file mode 100644
index 338c1c84458..00000000000
--- a/docs/de/gdevelop5/tutorials.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: GDevelop 5 tutorials
----
-# GDevelop 5 tutorials
-
-Diese Tutorials sind Schritt-für-Schritt-Anleitungen, die erklären, wie Sie ein Spiel von Grund auf neu erstellen:
-
-!!! note
-
- Wenn Sie GDevelop zum ersten Mal verwenden, wird empfohlen, mit diesen Tutorials zu beginnen
-
-- **[Grundlegende Konzepte zum Erstellen von Spielen: Was Sie wissen müssen, um mit GDevelop zu beginnen](/gdevelop5/tutorials/basic-game-making-concepts)**
-- **[Erstellen Sie ein Plattformspiel](/gdevelop5/tutorials/platformer/start)**
-- **[Geometry Monster: ein komplettes, einfaches Handyspiel](/gdevelop5/tutorials/geometry-monster)**
-
-Community-Tutorials:
-
-- [Erstelle ein einfaches Tank Shooter-Spiel](/gdevelop5/tutorials/tank-shooter)
-- [Erstelle ein einfaches Endless Runner-Spiel](/gdevelop5/tutorials/endless-runner)
-- [Erstelle ein einfaches Breakout-Spiel](/gdevelop5/tutorials/roadrider)
-
-------------------------------------------------------------------------
-
-# GDevelop Kurzanleitungen ("wie") Die folgenden Anleitungen enthalten Erläuterungen zu bestimmten Teilen von GDevelop. Sie zeigen Ihnen auch einige fortgeschrittene Mechanismen zum Entwerfen Ihrer Spiele:
-
-- [So bewegen Sie Objekte in Ihrem Spiel (all die verschiedenen Lösungen)](/gdevelop5/tutorials/how-to-move-objects)
-- [Wie man den Sprung und den Fall eines Charakters in einem Plattformspiel animiert](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer)
-- [So zeigen Sie einen großen Hintergrund in Ihrem Spiel an](/gdevelop5/tutorials/how-to-display-big-background)
-- [So debuggen Sie schlechte Spieleleistungen](/gdevelop5/tutorials/how-to-debug-poor-performance)
-- [Speicheraktion erklärt](/gdevelop5/tutorials/storage-action-explained)
-- [So reduzieren Sie die Größe Ihres Spiels](/gdevelop5/tutorials/reduce-size-game)
-- [Umgang mit komplexer Logik - Die Finite-State-Maschine (FSM)](/gdevelop5/tutorials/finite_state_machine)
-- [Verwendung von GDevelop als Team (mehrere Entwickler und Teamkollegen)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team)
-
-------------------------------------------------------------------------
-
-# Andere Anleitung Die folgenden Anleitungen enthalten Erklärungen zur Spieleentwicklung. Sie sind nicht spezifisch für GDevelop.
-
-* [Veröffentlichen Sie Ihr Spiel auf itch.io.](/gdevelop5/publishing/publishing-to-itch-io)
-* [Veröffentlichen Sie Ihr Spiel im Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store)
-* [Veröffentlichen Sie Ihr Spiel in Game Jolt](/gdevelop5/publishing/publishing-to-gamejolt-store)
-* [Veröffentlichen Sie Ihr Spiel in Kongregate](/gdevelop5/publishing/publishing-to-kongregate-store)
-
-------------------------------------------------------------------------
-
-# GDevelop Video-Tutorials
-
-- Siehe die [Liste der von der Community erstellten Video-Tutorials](/gdevelop5/tutorials/videos)
-
-------------------------------------------------------------------------
-
-#Ressourcen
-
-Links zu Websites von Drittanbietern, auf denen Sie Sprites, Musik und Soundeffekte für Ihre Spiele und Spielbeispiele, Vorlagen und Software finden, die Sie bei der Spieleentwicklung unterstützen.
-
-- [Liste der Ressourcen](/gdevelop5/tutorials/resources)
diff --git a/docs/de/index.md b/docs/de/index.md
deleted file mode 100644
index 0026bc3df15..00000000000
--- a/docs/de/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: start
----
-
-
-
-# GDevelop Wiki
-
-GDevelop ist eine Open Source, Cross-Platform Game Engine für Jedermann - Es sind keinerlei Programmierkenntnisse von nöten. Falls ihr GDevelop noch nicht heruntergeladen habt, [tut es jetzt](https://gdevelop.io/download)!
-
-Dieses Wiki bietet euch Hilfe und Tutorials zum Umgang mit der Software: Ihr seid herzlich Eingeladen mitzumachen!
-
-## Tutorials und videos
-
-Lernt GDevelop anhand der **[Tutorials](/de/gdevelop/tutorials)**.
-
-## Komplette Dokumentation
-
-Lest die **[GDevelop Dokumentation](/gdevelop/documentation)** für die komplette Referenz.
\ No newline at end of file
diff --git a/docs/el/gdevelop5/index.md b/docs/el/gdevelop5/index.md
deleted file mode 100644
index a21697b58e7..00000000000
--- a/docs/el/gdevelop5/index.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: start
----
-
-
-# GDevelop 5
-
-Το GDevelop είναι ένας δημιουργός παιχνιδιών ανοιχτής πηγής και πολλαπλών πλατφορμών που έχει σχεδιαστεί για χρήση από όλους - δεν απαιτούνται δεξιότητες προγραμματισμού για τη χρήση του λογισμικού. Εάν δεν έχετε χρησιμοποιήσει ποτέ το GDevelop, δοκιμάστε το online ή κατεβάστε την έκδοση για υπολογιστές, [try it online](https://editor.gdevelop.io) or [download the desktop version](https://gdevelop.io/download)!
-
-This **Wiki** is here to teach you about the software and provide tutorials on how to use it: you are welcome to contribute!
-
-# Getting Started
-
-➡️To get started with GDevelop 5, read the [Getting Started page](/gdevelop5/getting_started), the **[basic Game Making concepts](/gdevelop5/tutorials/basic-game-making-concepts)** and browse the [tutorials](/gdevelop5/tutorials).
diff --git a/docs/es.png b/docs/es.png
deleted file mode 100644
index c2de2d7111e..00000000000
Binary files a/docs/es.png and /dev/null differ
diff --git a/docs/es/gdevelop5/2.png b/docs/es/gdevelop5/2.png
deleted file mode 100644
index acc7b44382f..00000000000
Binary files a/docs/es/gdevelop5/2.png and /dev/null differ
diff --git a/docs/es/gdevelop5/all-features/admob.md b/docs/es/gdevelop5/all-features/admob.md
deleted file mode 100644
index 0d23d21b24b..00000000000
--- a/docs/es/gdevelop5/all-features/admob.md
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: Integrar anuncios usando Google AdMob
----
-# Integrar anuncios usando Google AdMob
-
-GDevelop soporta la integración de anuncios en su juego usando **Google AdMob**, on *Android* and *iOS*.
-
-Los anuncios pueden ser mostrados y cargados en cualquier momento. Pueden mostrarse como **banners** arriba o abajo de la pantalla o como **anuncios intersticiales**. Los _anuncios intersticiales_ son aquellos que ocupan toda la pantalla. **Vídeos de recompensa** también pueden ser mostrados.
-
-Los anuncios tipo banner suelen ser mostrados durante la partida o en el menú. Los anuncios intesticiales suelen mostrarse al iniciar/finalizar una escena o al lograr un objetivo dentro del juego. Los anuncios de recompensa suelen mostrarse a modo opcional si el usuario desea obtener algo a cambio de ver un anuncio (por ejemplo: monedas adicionales o saltar un nivel muy complicado para él)
-
-## Configurando tu cuenta de Google AdMob
-
-Para empezar, vaya al [sitio web de AdMob](https://www.google.com/admob/) y cree una cuenta. Una vez hecho esto, deberá crear una app y un nuevo bloque de anuncio.
-
-Ente en `Apps" y luego haga click en "Añadir App" en el menú de la izquierda".
-
-
-
-Añada sus apps estableciendo el nombre y la plataforma correspondiente. Si su juego es tanto como para Android e IOS, deberá de registrar 2 bloques de anuncio diferentes.
-
-Una vez creado, su **app id (id de la aplicación)** se mostrará.
-
-
-
-Posteriormente, elija si el anuncio va a ser un banner, anuncio interstitial o video recompensado.
-
-
-
-Establezca un nombre y haga click en "Añadir un nuevo bloque de anuncio" (create ad unit).
-
-
-
-Ahora podrá ver el app id (id de la aplicación) y el ad unit identifier (id del bloque de anuncio).
-
-
-
-!!! note
-
- El primer identificador es el **app id (id de la aplicación)**. El segundo es el **ad unit identifier (identificador del bloque de anuncio)**. Necesitas saber esto para luego insertarlo en los parámetro del juego y los parámetros de la acción para mostrar los anuncios. Cópielos o deje la ventana abierta.
-
-## Añadir un método de pago en AdMob
-
-Antes de que tus anuncios puedan ser mostrados, necestas tener establecido un método de pago en tu cuenta. Vaya a la página de pagos y rellene la información necesaria:
-
-
-
-Cuando tu cuenta esté lista, Admob mostrará que tu cuenta ha sido *aprobada*:
-
-
-
-Ahora se podrán mostrar anuncios.
-
-!!! note
-
- Puede tomar un día (~h24) o días en mostrarse anuncios por primera vez. Si los anuncios no se muestra, compruebe que ha introducido toda la información necesaria en esta página y que su juego se encuentra configurado correctamente (ver la siguiente sección).
-
-!!! note
-
- Una vez tu cuenta está aprobada use el modo prueba para probar los anuncios. Si no usa el modo de prueba, su cuenta podría bloquearse debido a que AdMob prohibe el uso de anuncios en apps locales. Tu teléfono y ordenador no deben estar en la misma red y la cuenta de Google usada para Play sotre no debe ser la misma que la usada para el desarrollo. Generalmente es mejor pedirle a un amigo que pruebe el juego.
-
-## Configurando tu juego
-
-Una vez configurada tu cuenta de AdMob y teniendo tu app id y el ad unit identifier (identificador de anuncio), abre las propiedades de tu juego. Abre el **Administrador de proyectos**, y haga click en ajustes del juego y **Propiedades**.
-
-En la sección AdMob, introduzca su **app id**, uno para Android y otro para iOS (aunque puede que sea el mismo).
-
-!!! note
-
- El app id debe de ser introducido *SIN* comillas o espacios al principio/final.
-
-
-
-!!! note
-
- No confundir el *app id (identificador de la app)* y el *ad unit identifier (identificador de la unidad de anuncio)*. El app id es un único id para tu app, mientras que el ad unit identifier es diferente para cada anuncio que creas.
-
-## Cargando y mostrando anuncios Una vez tu juega está configurado con el *app id*, puedes añadir un evento con una acción para mostrar el bloque de anuncio que has creado (ad unit). Todas las acciones pueden encontrarse dentro de la categoría AdMob:
-
-
-
-Elija las opciones adaptadas a su bloque de anuncio:
-
- *Si has creado un **banner**, usa las acciones 1) *Configurar el banner* y 2) *Mostrar el banner*.
-
- * Para **intersticiales** y **vídeos recompenssados**, use la acción para primero cargarlo (durante la partida) y luego la acción para mostrarlo (el jugador ha terminado el nivel, por ejemplo).
-
-En la acción, pegue el **ad unit id (id del bloque de anuncio)** en los parámetros (uno para android y otro para IOS). Debido a que los parámetros son expresiones de cadena, debe poner los *ad unit identifier (id del bloque de anuncio) entre comillas*.
-
-
-
-Para mostrar los anuncios tan pronto como estén listos, marque la opción correspondiente. Esto es solo para los anuncios intersticiales y vídeos recompensados. Los banners son cargados y mostrados automáticamente usando la acción *Mostrar banner*.
-
-Finalmente, si su cuenta no se encuentra totalmente aprobada, es posible consultar el espacio que i¡eocupará su juego con el "**Modo prueba**". Esto creará un banner, intersticial o vídeo de recompensas falsos para ver el espacio que usan. - Esta es una gran forma de comprobar lo realizado.
-
-Para esto, inserte la acción para habilitar el modo prueba al principio del juego:
-
-
-
-## Probando y publicando su jueego en Android (o iOS)
-
-Primero necesita exportar el juego para Android (o iOS) para tener anuncios en su dispositivo. ver **[la página dobre como publicar para Android e iOS](/gdevelop5/publishing/android_and_ios)**.
-
-
-
-El servicio de exportación en un click para Android incluido con GDevelop es compatible con Admob, por lo tanto no se requieren herramientas o kits de desarrollos adicionales.
-
-En resumen, antes de lanzar su aplicación con anuncios, debe de:
-
-- Tener su cuenta de Admob aprobada.
-- Comprobar que ha desabilitado el modo prueba (no hay una acción que lo active).
-- Comprobar que ha establecido correctamente el **app id (id de la aplicación)** (para Android e iOS), y los **ad unit identifier (identificadores del bloque de anuncio)** (para Android e iOS).
-
-Espere unas cuantas horas para poder ver los primeros anuncios.
-
-!!! note
-
- Recuerde que los anuncios no están visibles en las previsualizaciones de GDevelop, solo en las exportaciones para Android (or iOS) apps. Puede que el servicio de AdMob tome varios días en empezar a mostrar anuncios en su aplicación, especialmente para los vídeos.
-
-## Ejemplo
-
-Mire como los anuncios funcionan en un juego abriendo el ejemplo **AdMob**. Remplace los app id (id de la aplicación) e ad unit identifiers (identificadores del bloque de anuncio), en las acciones para probar con su propia cuenta.
-
-!!! note
-
- ¡Pruébelo online! **[Click aquí para abrir el ejemplo de Admob](https://editor.gdevelop.io/?project=example://admob)**. Debe exportalo a Android usando el editor de Gdevelop descargado en su pc para probar el ejemplo en un teléfono real.
diff --git a/docs/es/gdevelop5/all-features/audio/index.md b/docs/es/gdevelop5/all-features/audio/index.md
deleted file mode 100644
index 33e23f8ac5d..00000000000
--- a/docs/es/gdevelop5/all-features/audio/index.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Audio
----
-# Audio
-
-Reproducir música y o sonidos es una parte escencial de un juego. GDevelop le proporciona varias condiciones y acciones para reproducir archivos de audio.
-
-##Reproducción de un archivo de sonido o de música
-
-!!! warning
-
- Antes de que se pueda reproducir un sonido/música, primero debes asegurarte de que el jugador interactuó con tu juego (un simple clic/toque en la pantalla está bien para desbloquear el audio). Esta es una limitación de los navegadores y no se puede solucionar. En tu juego final, se recomienda tener en tu primera escena un mensaje "Presiona cualquier tecla o toca la pantalla para continuar".
-
-La forma más sencilla de reproducir un archivo de audio es usar la acción "**Reproducir un sonido**" o "**Reproducir un archivo de música**".
-Elija el archivo que se reproducirá para el primer parámetro de ambas acciones.
-
-La diferencia entre sonido y música es que los archivos de música suelen ser archivos de audio cada vez más grandes. Los formatos de archivo de audio compatibles con GDevelop son Waveform Audio Format (wav), MPEG Layer 3 (mp3), Ogg Vorbis (ogg) y Advance Audio Coding (AAC)
-
-!!! note
-
- Los archivos Ogg pueden ser contenedores para múltiples tipos de audio, más comúnmente Vorbis y Opus. Los archivos Ogg Vorbis son mucho más compatibles con diferentes navegadores y sistemas operativos, por lo que se recomienda utilizar la codificación Ogg Vorbis si se utilizan archivos ogg.
-
-Todos estos formatos se pueden utilizar para música o efectos de sonido, aunque se recomienda encarecidamente utilizar mp3 u ogg para música debido al tamaño del archivo wav. Un archivo mp3, ogg o AAC de 320 kbps tendrá una calidad de audio casi idéntica a un archivo wav de máxima calidad, pero ocupará 1/4 del tamaño del archivo.
-
-Si distribuye su juego vía web, algunos navegadores también admiten otros formatos de archivo. Por ejemplo, `ogg`; `ogg` es una alternativa superior a `mp3` para la música. Desafortunadamente, no todos los navegadores lo admiten [Para más información puede consltar Wikipedia](https://en.wikipedia.org/wiki/HTML5_audio#Supported_audio_coding_formats).
-
-!!! tip
-
- Puede utilizar la herramienta de creación de efectos de sonido incorporada llamada jfxr para crear efectos de sonido (esta herramienta solo está disponible para la versión de escritorio)
- [Aprenda a usar jfxr aquí](/gdevelop5/ all-features/ audio/ using-jfxr)
-
-!!! note
-
- Cuando eliges un archivo de audio, se agrega a los recursos del juego para que se cargue durante el inicio del juego.
- Para minimizar el tamaño de su juego, asegúrese de eliminar los archivos de audio que ya no están en uso por las acciones de su juego.
-
-
-
-
-## Mantén la música y los sonidos reproduciéndose entre escenas
-
-Cuando comienza una nueva escena, de forma predeterminada, los sonidos y la música se detienen. Si desea que sigan reproduciéndose, abra las propiedades de la escena (haga clic con el botón derecho en la escena, en el editor de escenas) y desmarque la casilla de verificación:
-
-
-
-
-## Usando canales
-
-Cuando se utiliza la acción "Reproducir un sonido" o "Reproducir un archivo de música", los archivos de audio se reproducen inmediatamente. Al finalizar, se eliminan de la memoria. El bucle es una excepción. Cuando configura la acción para repetir el archivo de audio, se reproducirá para siempre (Endless Loop). Debe utilizar una acción para detener todos los sonidos o la música.
-
-Si desea tener más control sobre los sonidos, utilice la acción "** Reproducir un sonido en un canal **" o "** Reproducir un archivo de música en un canal. **" La acción se usa de la misma manera, excepto que usted tiene que ingresar un número de canal. Este número de canal se puede reutilizar en otras acciones o condiciones. Se puede usar un "número de canal" para verificar si se está reproduciendo un sonido en un canal, o se puede usar para modificar algunas propiedades de la música que se está reproduciendo. Por ejemplo, puede utilizar un "número de canal" para actualizar el volumen de la música de forma dinámica de acuerdo con la presencia de enemigos alrededor del reproductor.
-
-## Volumen
-
-Los sonidos y la música se reproducen por defecto con un volumen del 100%, que es el máximo. Al iniciar un nuevo sonido / música, puede ingresar un valor diferente (entre 0 y 100).
-
-También puedes usar la acción "Volumen global del juego" para cambiar el volumen de audio de todo el juego. Un valor de 0 significa que no se puede escuchar ningún sonido o música. Esta acción es conveniente cuando se permite al jugador silenciar o cambiar el volumen del juego. Por ejemplo, es posible que tenga una pantalla de configuración en su juego que acceda al control de volumen del juego. Los juegos móviles también suelen tener un botón para silenciar los sonidos del juego.
-
-## Consideraciones de rendimiento
-
-La primera vez que se reproduce música o sonido, puede haber un retraso mientras se prepara el archivo de audio. Si es esencial evitar cualquier retraso, puede reproducir el archivo de audio o música al comienzo de la escena donde se usa. Establecer el volumen inicial 0; esto obligará al juego a cargar el sonido o la música. El audio se almacenará en la memoria caché. Se cargará rápidamente cuando se llame usando su acción.
-
-## Más sobre el estado de un sonido / música
-
-Cuando usas la acción para ** reproducir un sonido o música en un canal **, se pone en el estado ** "reproduciendo" **, incluso si todavía **se carga** en la memoria.
-
-La condición "Se está reproduciendo un sonido" (en este canal) es entonces verdadera, mientras que "Un sonido está detenido" (en este canal) será falsa, así como "Un sonido está en pausa" (en este canal nuevamente).
-Cuando el sonido esté completamente cargado, comenzará a ser realmente played en su dispositivo (para que escuche el audio).
-
-El sonido se detendrá cuando:
-
-* Llega a su **final** y no está configurado para bucle.
-* Hay **un error durante la carga** (en cuyo caso se considerará que se está reproduciendo durante unos milisegundos, luego se considerará que está detenido porque no se pudo cargar).
-* O usó **la acción** para detener un sonido o música en el canal.
\ No newline at end of file
diff --git a/docs/es/gdevelop5/all-features/audio/using-jfxr.md b/docs/es/gdevelop5/all-features/audio/using-jfxr.md
deleted file mode 100644
index 663b60411cd..00000000000
--- a/docs/es/gdevelop5/all-features/audio/using-jfxr.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: Haciendo efectos de sonido usando jfxr
----
-# Haciendo efectos de sonido usando jfxr
-
-GDevelop viene equipado con una herramienta llamada [jfxr](https://jfxr.frozenfractal.com/). La cual puede sser usada para crear efectos de sonidos en GDevelop.
-
-!!! note
-
- jfxr sólo viene equipado en la versión de escritorio de GDevelop. No podrás usarlo en el editor online.
-
-# Abriendo jfxr
-
-Puedes usar jfxr en lugar de introducir un archivo (.wav, etc..) haciendo click en **Crear** al lado del parámetro
-
-
-
-También se puede emplear para archivos ya existentes.
-
-
-
-# Interfaz
-
-Cuando haces click en el botón, una interfaz similar a la de abajo aparecerá:
-
-
-
-## Generando efectos de sonidos
-
-Puedes generar efectos de sonido haciendo click en estas opcines:.
-
-Jfxr te da opciones para el tipo de efecto de sonido a elegir. como por ejemplo, **golpe/dañoo (hit/damage)**, **moneda adquirida (coin collected)**/**potenciador (powerup)**, etc..
-
-
-
-Jfxr Puede algunas veces repetir dos veces un sonido, si quieres que cree un sonido nuevo cada vez, puedes modificar **Create new sound (crear nuevo sonido)**.
-
-
-
-## Personalizando el sonido generado
-
-Puedes cambiar el sonido generado a tu gusto con las múltiples opciones dadas.
-
-
-
-Puedes silenciar sonidos usando **mutate** abajo de las opciones de efectos de sonidos.
-
-Tu también puedes deshacer las acciones usando **undo** dado al lado.
-
-
-
-## Reproduciendo los efectos de sonidos
-
-Puedes reproducir los sonidos haciendo click en **Play**.
-
-
-
-Si quieres que el sonido se reproduzca automáticamente después de cada cambio dado, puedes activar **Auto** al lado del botón de play.
-
-Puedes volver de nuevo a los sonidos creados con anterioridad a través de la lista dad arraba a la izquierda.
-
-
-
-## Guardando y exportando
-
-Cuando todo esté listo, puedes exportar el sonido a .wav y darle un nombre.
-
-Haz click en **save** y tu obra será añadida a la carpeta del proyecto.
-
-
-
-Una vez hecho click en guardar y salir, El sondio deberá ser añadido al parámetro de la opción. Puedes usar el sonido creado como cualquier otro en eventos.
-
-!!! note
-
- Puede darse algún error diciendo que el archivo no existe. Simplemente abra de nuevo el editor de acciones y deberá de solucionarse
-
-### Otras opciones
-
-También puedes guardar los sonidos como archivos ".jfxr" file usando **Save**. El cual puedes abrir luego y continuar trabajando abriéndolo con **Open**. También puedes exportar el sonido de forma externa usando **Export**. También puedes incluso generar un link al sonido
-
-
diff --git a/docs/es/gdevelop5/all-features/collisions.md b/docs/es/gdevelop5/all-features/collisions.md
deleted file mode 100644
index 1899dad104f..00000000000
--- a/docs/es/gdevelop5/all-features/collisions.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: Manejando colisiones en tu juego
----
-# Manejando colisiones en tu juego
-
-La mayoría de los juegos necesitan detectar y manejar colisiones entre objetos. La detección y el manejo de colisiones se pueden hacer para que los objetos se adhieran a las plataformas, así como para detectar colisiones entre balas y jugadores o balas y otros objetos.
-
-GDevelop proporciona varias formas diferentes de manejar las colisiones. Puede detectar colisiones usando las acciones y condiciones del editor de eventos o puede usar comportamientos de objetos.
-
-## Haga objetos sólidos: use la acción "Separar objetos" (bueno para juegos de arriba hacia abajo, RPG ...)
-
-Puede utilizar la acción "**Objetos separados**" para mover objetos manualmente. La acción "Objetos separados también puede mover objetos con" fuerzas "o estableciendo la posición del objeto.
-
-"**Objetos separados**". Esta acción toma 2 nombres de objeto como argumento.
-
-- El primer nombre del objeto es el _objeto en movimiento_ (el jugador, el enemigo, etc ...).
-- El segundo nombre de objeto es un _objeto (o un grupo de objetos) que es sólido_. Por ejemplo, estos objetos pueden ser las paredes.
-
-La acción entonces iterará sobre todos los objetos dados. Se asegurará de que si cualquier objeto del primer tipo choca con el objeto del segundo tipo, el objeto se alejará. Esto se hace usando un algoritmo llamado _SAT algorithm_.
-
-
-
-Esta acción será lanzada en cada fotograma. En un evento sin condiciones, la acción ya está haciendo las comprobaciones de colisiones. Evita lanzar esta acción varias veces. Hacerlo podría reducir el rendimiento del juego.
-
-### Detección de Colisiones (Detect collisions).
-
-El uso de "Objetos separados" es una buena manera de asegurarse de que sus objetos no puedan moverse a otros objetos sólidos. Esta acción comprueba las colisiones entre objetos. Por ejemplo, si el objeto del juego "jugador" toca una pared, esta acción, cuando se usa con la condición llamada "**Colisión**", provocará daños al jugador.
-
-**La secuencia es importante. ** - Ejecutar la condición llamada "** Colisión**"
-
-1. Añadir acciones apropiadas.
-2. Añadir la acción "Separar objetos"
-
-Después de ejecutar la acción "Separar objetos", los objetos se mueven. _Las colisiones entre objetos ya no podrán ser verificadas._
-
-Puede encontrar el uso de estas condiciones y acciones en los ejemplos:
-
-!!! note
-
- **Véalo en acción!** 🎮 Abre el ejemplo Online:
-
-[](https://editor.gdevelop.io?project=example://bomb-the-crate)
-
-## Juegos de Plataformas: usa el personaje de Plataformas y los comportamientos de Plataforma.
-
-Si está creando un juego de plataformas, es una buena idea usar el comportamiento ["Platformer" character](/gdevelop5/ behaviors/ platformer). Es un motor de juego de plataformas ya hecho que es altamente personalizable. El comportamiento del "personaje de Plataformas" maneja las colisiones con las plataformas y la gravedad para usted.
-
-### ¿Detectar colisiones en un juego de plataformas?
-
-En un juego de plataformas con el comportamiento del "personaje de Platformer", las colisiones se manejan por ti con plataformas.
-
-* Aún puedes usar la **Condición de colisión **para verificar las colisiones entre un objeto y otros objetos (por ejemplo, entre el jugador y los enemigos) y reaccionar en consecuencia. * Puede usar la condición "Está en el piso" para verificar si un objeto está en una plataforma.
-
-
-
-!!! note
-
- **Véalo en acción!** 🎮
-
- Abre los ejemplos Online:
-
-## ¿Juego con la física? Usa el comportamiento de la física.
-
-Usa [Physics behavior](/gdevelop5/ behaviors/ physics) para lograr un comportamiento físico realista en tu juego. Adjunta el comportamiento "Física" a tus objetos. Los objetos se comportarán como si estuvieran basados vivos en el mundo del juego. Algunos ejemplos de comportamiento del mundo real son rebotar bolas, caer, saltar, etc.
-
-Configure las paredes del juego u objetos sólidos que no deberían moverse con un comportamiento "estático".
-
-### Detectar colisiones con el comportamiento de Física.
-
-Cuando está utilizando el comportamiento "Física", **no use **la condición "Colisión" que está en la categoría **Características para todos los objetos**. _El motor de física manejará todas las colisiones por sí mismo ._ La condición de colisión no detectará correctamente cuando los objetos se toquen.
-
-En su lugar, use la Condición de colisión **dentro de la categoría de comportamiento de Física**, que utiliza correctamente el motor de física para escuchar colisiones.
-
-
-
-!!! note
-
- **Véalo en acción!** 🎮 Abra el ejemplo Online:
-
-
diff --git a/docs/es/gdevelop5/all-features/device-sensors.md b/docs/es/gdevelop5/all-features/device-sensors.md
deleted file mode 100644
index 77673891196..00000000000
--- a/docs/es/gdevelop5/all-features/device-sensors.md
+++ /dev/null
@@ -1,200 +0,0 @@
----
-title: Extensión de sensores del dispositivo
----
-# Extensión de sensores del dispositivo
-
-Esta poderosa extensión le brinda acceso a los sensores que se pueden encontrar en la mayoría de los dispositivos móviles.
-
-## Sensor de orientación
-
-El sensor de orientación combina el giroscopio, el acelerómetro y la brújula en un sensor. Esto le permite controlar los objetos del juego girando ligeramente el dispositivo móvil en sus manos. Puede acceder a los datos de ubicación a través de los valores "alfa", "beta" y "gamma" que se explican en la siguiente sección.
-
-### Ejes explicados
-
-#### Alfa
-
-
-
-El valor "alfa" corresponde al eje que apunta al cielo cuando su teléfono está sobre una mesa con su pantalla apuntando hacia arriba. Puede crear fácilmente una brújula utilizando el valor de rotación "alfa".
-
-**Rango: **0 a 360 grados
-
-#### Beta
-
-
-
-El eje "beta" corre a través del borde estrecho del teléfono.
-
-**Rango: **-180 a 180 grados
-
-#### Gamma
-
-
-
-El eje "gamma" recorre el borde más largo del teléfono.
-
-**Rango: **-90 a 90 grados
-
-### Condiciones
-
-**Sensor activo**
-
-Esta condición verifica si el sensor se ha activado todavía y está entregando datos de ubicación.
-
-**Orientación alfa**
-
-Esta condición le permite comparar el valor de alfa con un número o variable.
-
-**Orientación Beta**
-
-Esta condición le permite comparar el valor de beta con un número o variable.
-
-**Orientación Gamma**
-
-Esta condición le permite comparar el valor de gamma con un número o variable.
-
-### Acciones
-
-**Activar el sensor de orientación**
-
-Esta acción activa el sensor de orientación para que comience a entregar valores alfa, beta y gamma. Vuelva a apagarlo cuando ya no necesite el sensor para ahorrar tiempo de procesamiento y la batería del teléfono.
-
-**Desactivar el sensor de orientación**
-
-Esta acción desactiva el sensor de orientación para que deje de entregar valores alfa, beta y gamma.
-
-### Expresiones
-
-**Es Absoluto**
-
-Este valor indica que los datos de orientación están en valores absolutos. En referencia a las coordenadas de la Tierra (valor 1) o el uso de un marco arbitrario está determinado por el dispositivo (valor 0).
-
-**Valor alfa**
-
-La rotación "alfa".
-
-**Valor Beta**
-
-La rotación "beta".
-
-**Valor gamma**
-
-La rotación "gamma".
-
-## Sensor de movimiento
-
-En contraste con el sensor de orientación que devuelve valores absolutos, el sensor de movimiento entrega valores relativos. Este sensor solo devuelve valores mientras el dispositivo se está moviendo. Si lo mantiene quieto, sin importar su orientación, el sensor devolverá 0. Puede acceder a los datos de movimiento a lo largo de un eje a través de los valores "x", "y", "z" y los datos de rotación alrededor de un eje a través de "alfa", "beta" y "gamma", que se explican en la siguiente sección.
-
-!!! note
-
- Los valores de rotación del sensor de movimiento (alfa, beta, gamma) actualmente no son compatibles con los dispositivos móviles. Actualmente sería mejor calcular el valor a partir de los datos de orientación
-
-### Ejes explicados
-
-#### Aceleración X
-
-
-
-Este valor muestra la aceleración a lo largo del eje x. Si mueve su dispositivo a lo largo del borde más largo, el valor de x aumentará.
-
-#### Aceleración Y
-
-
-
-Este valor muestra la aceleración a lo largo del eje y. Si mueve su dispositivo a lo largo del borde más pequeño, el valor y aumentará.
-
-#### Aceleración Z
-
-
-
-Este valor muestra la aceleración a lo largo del eje z. Si mueve su dispositivo hacia arriba o hacia abajo, el valor z aumentará.
-
-#### Rotación alfa
-
-
-
-Este valor muestra la aceleración alrededor del eje z. Si enciende su dispositivo con la pantalla hacia arriba, el valor alfa aumentará.
-
-#### Rotación beta
-
-
-
-Este valor muestra la aceleración alrededor del eje x. Si sostiene su dispositivo en modo horizontal con una mano en cada lado, puede girar su dispositivo alrededor del eje x y el valor beta aumentará.
-
-#### Rotación gamma
-
-
-
-Este valor muestra la aceleración alrededor del eje y. Si sostiene su dispositivo en modo retrato con una mano en cada lado, puede girar su dispositivo alrededor del eje y y el valor beta aumentará.
-
-### Condiciones
-
-**Sensor activo**
-
-Esta condición verifica si el sensor se ha activado todavía y está entregando datos de ubicación.
-
-**Aceleración X**
-
-Esta condición le permite comparar el valor de la aceleración x con un número o variable. (m / s²)
-
-**Aceleración Y**
-
-Esta condición le permite comparar el valor de la aceleración y con un número o variable. (m / s²)
-
-**Aceleración Z**
-
-Esta condición le permite comparar el valor de la aceleración z con un número o variable. (m / s²)
-
-**Motion Alpha**
-
-Esta condición le permite comparar el valor de alfa con un número o variable. (m / s²)
-
-**Motion Beta**
-
-Esta condición le permite comparar el valor de beta con un número o variable. (m / s²)
-
-**Motion Gamma**
-
-Esta condición le permite comparar el valor de gamma con un número o variable. (m / s²)
-
-### Acciones
-
-**Activar el sensor de movimiento**
-
-Esta acción activa el sensor de movimiento para que comience a entregar valores de x, a, z, alfa, beta y gamma. Vuelva a apagarlo cuando ya no necesite el sensor para ahorrar tiempo de procesamiento y la batería del teléfono.
-
-**Desactivar el sensor de movimiento**
-
-Esta acción desactiva el sensor de movimiento para que deje de entregar valores de x, a, z, alfa, beta y gamma.
-
-### Expresiones
-
-**Aceleración X Valor**
-
-La aceleración "x". (m / s²)
-
-**Aceleración Y Valor**
-
-La "y" aceleración. (m / s²)
-
-**Aceleración Z Valor**
-
-La aceleración "z". (m / s²)
-
-**Valor alfa**
-
-La rotación "alfa". (m / s²)
-
-**Valor Beta**
-
-La rotación "beta". (m / s²)
-
-**Valor gamma**
-
-La rotación "gamma". (m / s²)
-
-
-
-## Reference
-
-All actions, conditions and expressions are listed in [the device sensors reference page](/gdevelop5/all-features/device-sensors/reference/).
diff --git a/docs/es/gdevelop5/all-features/device-vibration.md b/docs/es/gdevelop5/all-features/device-vibration.md
deleted file mode 100644
index 05b3550a5d5..00000000000
--- a/docs/es/gdevelop5/all-features/device-vibration.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: Extensión de vibración del dispositivo
----
-# Extensión de vibración del dispositivo
-
-Esta extensión le da acceso a la funcionalidad de vibración en dispositivos móviles.
-
-### Acciones
-
-#### Vibrar
-
-Esta acción hace vibrar el dispositivo una vez por el valor dado en milisegundos. (valor numérico).
-
-#### Vibrar por patrón
-
-Esta acción hace vibrar el dispositivo en un patrón. Cada primer valor representa el tiempo de vibración, cada segundo el tiempo de silencio. Cada valor debe darse en milisegundos como una lista de valores numéricos separados por comas. // ¡No olvides las comillas! //
-
-!!! note
-
- **Ejemplo: **"1000,500,1000"
-
- Un segundo de vibración, seguido de medio segundo de silencio y luego un segundo más de vibración.
-
-#### Detener la vibración
-
-Esta acción detiene la vibración después del intervalo de patrón actual.
-
-
diff --git a/docs/es/gdevelop5/all-features/expressions-reference.md b/docs/es/gdevelop5/all-features/expressions-reference.md
deleted file mode 100644
index 35be9520fa3..00000000000
--- a/docs/es/gdevelop5/all-features/expressions-reference.md
+++ /dev/null
@@ -1,1066 +0,0 @@
----
-title: expressions-reference
----
-FIXME**Esta página no está totalmente traducida, por ahora. Please help completing the translation.**
-*(remove this paragraph once the translation is finished)*
-
-# Referencia de expresiones
-
-Las expresiones se pueden añadir cuando ves este botón al lado de algún campo de texto:
-
-
-
-- El botón de la izquierda indica una "expresión de cadena" (un texto)
-- El botón derecho indica una "expresión numérica" (número)
-
-Esta página es una referencia de todas las expresiones que se pueden usar en GDevelop, agrupadas por la extensión, objeto o comportamiento al que pertenecen también. Cuando se escribe "Objeto", debe ingresar un nobre para el objeto.**[Aprenda más aquí sobre cómo escribir expresiones.](/gdevelop5/all-features/expressions)**
-
-!!! note
-
- Las expresiones también son llamadas a veces funciones, como en matemáticas.
-
-## Funciones para todos los objetos
-
-Funciones comunes que pueden usarse para todos los objetos [Lea más sobre ello.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/base_object/events)
-
-| Expresión | Descripción | |
-|-------------------|------------------------------------------------------------------|:------:|
-| `Count(object)` | Cuenta el número de objetos especificados obtenidos en el evento | |
-| ::: | _object_ | Objeto |
-
-| Expresión | Descripción | |
-|--------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------:|
-| `Object.Angle()` | Ángulo actual, en grados, del objeto | |
-| `Object.AngleToObject(object)` | Compute the angle between two objects. If you need the angle to an arbitrary position, use AngleToPosition. | |
-| ::: | _object_ | Object |
-| `Object.AngleToPosition(number, number)` | Compute the angle between the object center and a "target" position. If you need the angle between two objects, use AngleToObject. | |
-| ::: | _number_ | Target X position |
-| ::: | _number_ | Target Y position |
-| `Object.CenterX()` | Return the X position of the center. | |
-| `Object.CenterY()` | Return the Y position of the center. | |
-| `Object.Distance(object)` | Distance between two objects | |
-| ::: | _object_ | Object |
-| `Object.DistanceToPosition(number, number)` | Distance between an object and a position | |
-| ::: | _number_ | Target X position |
-| ::: | _number_ | Target Y position |
-| `Object.ForceAngle()` | Angle of the sum of forces | |
-| `Object.ForceLength()` | Length of the sum of forces | |
-| `Object.ForceX()` | X coordinate of the sum of forces | |
-| `Object.ForceY()` | Y coordinate of the sum of forces | |
-| `Object.Height()` | Height of the object | |
-| `Object.Layer()` | Return the name of the layer the object is on | |
-| `Object.ObjectName()` | Return the name of the object | |
-| `Object.ObjectTimerElapsedTime(string)` | Value of a timer | |
-| ::: | _string_ | Timer's name |
-| `Object.SqDistance(object)` | Square distance between two objects | |
-| ::: | _object_ | Object |
-| `Object.SqDistanceToPosition(number, number)` | Square distance between an object and a position | |
-| ::: | _number_ | Target X position |
-| ::: | _number_ | Target Y position |
-| `Object.Variable(objectvar)` | Value of an object variable | |
-| ::: | _objectvar_ | Variable |
-| `Object.VariableChildCount(objectvar)` | Number of children of an object variable | |
-| ::: | _objectvar_ | Variable |
-| `Object.VariableString(objectvar)` | Text of an object variable | |
-| ::: | _objectvar_ | Variable |
-| `Object.Width()` | Width of the object | |
-| `Object.X()` | X position of the object | |
-| `Object.XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. | |
-| ::: | _number_ | Angle, in degrees |
-| ::: | _number_ | Distance |
-| `Object.Y()` | Y position of the object | |
-| `Object.YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. | |
-| ::: | _number_ | Angle, in degrees |
-| ::: | _number_ | Distance |
-| `Object.ZOrder()` | Z-order of an object | |
-
----
-
-## Sprite
-
-Animated object which can be used for most elements of a game [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/sprite)
-
-| Expresión | Descripción | |
-|------------------------------------|-------------------------------------|:-----------------:|
-| `Object.Animation()` | Animation of the object | |
-| `Object.AnimationName()` | Name of the animation of the object | |
-| `Object.AnimationSpeedScale()` | Animation speed scale | |
-| `Object.Direction()` | Direction of the object | |
-| `Object.Opacity()` | Opacity | |
-| `Object.PointX(objectPointName)` | X position of a point | |
-| ::: | _objectPointName_ | Name of the point |
-| `Object.PointY(objectPointName)` | Y position of a point | |
-| ::: | _objectPointName_ | Name of the point |
-| `Object.ScaleX()` | Scale of the width of an object | |
-| `Object.ScaleY()` | Scale of the height of an object | |
-| `Object.Sprite()` | Animation frame of the object | |
-
----
-
-## Standard Conversions
-
-Expressions to convert number, texts and quantities. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/common-conversions)
-
-| Expresión | Descripción | |
-|---------------------------------|-------------------------------------------------------------------------------------|:----------------------------------:|
-| `LargeNumberToString(number)` | Convert the result of the expression to text, without using the scientific notation | |
-| ::: | _number_ | Expression to be converted to text |
-| `ToDeg(number)` | Converts the angle, expressed in radians, into degrees | |
-| ::: | _number_ | Angle, in radians |
-| `ToNumber(string)` | Convert the text to a number | |
-| ::: | _string_ | Text to convert to a number |
-| `ToRad(number)` | Converts the angle, expressed in degrees, into radians | |
-| ::: | _number_ | Angle, in degrees |
-| `ToString(number)` | Convert the result of the expression to text | |
-| ::: | _number_ | Expression to be converted to text |
-
----
-
-## Variable features
-
-Actions, conditions and expressions to handle variables, from simple variables like the player score, the number of remaining lives to complex variables containing arbitrary data like an inventory or the result of a web request. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/variables)
-
-| Expresión | Descripción | |
-|-----------------------------------------|-----------------------------------------|:---------------------------:|
-| `GlobalVariable(globalvar)` | Value of a global variable | |
-| ::: | _globalvar_ | Name of the global variable |
-| `GlobalVariableChildCount(globalvar)` | Number of children of a global variable | |
-| ::: | _globalvar_ | Variable |
-| `GlobalVariableString(globalvar)` | Text of a global variable | |
-| ::: | _globalvar_ | Variable |
-| `Variable(scenevar)` | Value of a scene variable | |
-| ::: | _scenevar_ | Variable |
-| `VariableChildCount(scenevar)` | Number of children of a scene variable | |
-| ::: | _scenevar_ | Variable |
-| `VariableString(scenevar)` | Text of a scene variable | |
-| ::: | _scenevar_ | Variable |
-
----
-
-## Mouse and touch
-
-Conditions and actions to handle either the mouse or touches on touchscreen. By default, conditions related to the mouse will also handle the touches - so that it's easier to handle both in your game. You can disable this behavior if you want to handle them separately in different events. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/mouse-touch)
-
-| Expresión | Descripción | |
-|-----------------------------------|----------------------------------------------------|:-----------------------------------------:|
-| `LastEndedTouchId()` | Identifier of the last ended touch | |
-| `LastTouchId()` | Identifier of the last touch | |
-| `MouseWheelDelta()` | Mouse wheel displacement | |
-| `MouseX(layer, number)` | Return the X position of the cursor or of a touch. | |
-| ::: | _layer_ | Layer (base layer if empty) _Optional_. |
-| ::: | _number_ | Camera number (default : 0) _Optional_. |
-| `MouseY(layer, number)` | Return the Y position of the cursor or of a touch. | |
-| ::: | _layer_ | Layer (base layer if empty) _Optional_. |
-| ::: | _number_ | Camera number (default : 0) _Optional_. |
-| `TouchX(number, layer, number)` | Return the X position of a specific touch. | |
-| ::: | _number_ | Touch identifier |
-| ::: | _layer_ | Layer (base layer if empty) _Optional_. |
-| ::: | _number_ | Camera number (default : 0) _Optional_. |
-| `TouchY(number, layer, number)` | Return the Y position of a specific touch. | |
-| ::: | _number_ | Touch identifier |
-| ::: | _layer_ | Layer (base layer if empty) _Optional_. |
-| ::: | _number_ | Camera number (default : 0) _Optional_. |
-
----
-
-## Keyboard features
-
-Allows your game to respond to keyboard input. Note that this does not work with on-screen keyboard on touch devices: use instead conditions related to touch when making a game for mobile/touchscreen devices. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/keyboard)
-
-| Expresión | Descripción | |
-|----------------------|--------------------------------------------------------|:---:|
-| `LastPressedKey()` | Get the name of the latest key pressed on the keyboard | |
-
----
-
-## Scene management features
-
-Actions and conditions to manipulate the scenes during the game.
-
-| Expresión | Descripción | |
-|--------------------------------------------|---------------------------|:-------------:|
-| `CurrentSceneName()` | Name of the current scene | |
-| `Random(number)` | Random integer | |
-| ::: | _number_ | Maximum value |
-| `RandomFloat(number)` | Random float | |
-| ::: | _number_ | Maximum value |
-| `RandomFloatInRange(number, number)` | Random float in range | |
-| ::: | _number_ | Minimum value |
-| ::: | _number_ | Maximum value |
-| `RandomInRange(number, number)` | Random integer in range | |
-| ::: | _number_ | Minimum value |
-| ::: | _number_ | Maximum value |
-| `RandomWithStep(number, number, number)` | Random value in steps | |
-| ::: | _number_ | Minimum value |
-| ::: | _number_ | Maximum value |
-| ::: | _number_ | Step |
-
----
-
-## Time
-
-Actions and conditions to run timers, get the current time or modify the time scale (speed at which the game is running - useful for slow motion effects). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/timers)
-
-| Expresión | Descripción | |
-|------------------------------|------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
-| `Time(string)` | Current time | |
-| ::: | _string_ | Hour: hour - Minutes: min - Seconds: sec - Day of month: mday - Months since January: mon - Year since 1900: year - Days since Sunday: wday - Days since Jan 1st: yday - Timestamp (ms): timestamp" |
-| `TimeDelta()` | Time elapsed since the last frame rendered on screen | |
-| `TimeFromStart()` | Time elapsed since the beginning of the scene | |
-| `TimerElapsedTime(string)` | Value of a scene timer | |
-| ::: | _string_ | Timer's name |
-
----
-
-## Mathematical tools
-
-A set of mathematical functions that can be used in expressions.
-
-| Expresión | Descripción | |
-|--------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------:|
-| `AngleBetweenPositions(number, number, number, number)` | Compute the angle between two positions. | |
-| ::: | _number_ | First point X position |
-| ::: | _number_ | First point Y position |
-| ::: | _number_ | Second point X position |
-| ::: | _number_ | Second point Y position |
-| `AngleDifference(number, number)` | Difference between two angles | |
-| ::: | _number_ | First angle |
-| ::: | _number_ | Second angle |
-| `DistanceBetweenPositions(number, number, number, number)` | Compute the distance between two positions. | |
-| ::: | _number_ | First point X position |
-| ::: | _number_ | First point Y position |
-| ::: | _number_ | Second point X position |
-| ::: | _number_ | Second point Y position |
-| `XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. | |
-| ::: | _number_ | Angle, in degrees |
-| ::: | _number_ | Distance |
-| `YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. | |
-| ::: | _number_ | Angle, in degrees |
-| ::: | _number_ | Distance |
-| `abs(number)` | Absolute value | |
-| ::: | _number_ | Expression |
-| `acos(number)` | Arccosine | |
-| ::: | _number_ | Expression |
-| `acosh(number)` | Hyperbolic arccosine | |
-| ::: | _number_ | Expression |
-| `asin(number)` | Arcsine | |
-| ::: | _number_ | Expression |
-| `asinh(number)` | Arcsine | |
-| ::: | _number_ | Expression |
-| `atan(number)` | Arctangent | |
-| ::: | _number_ | Expression |
-| `atan2(number, number)` | 2 argument arctangent (atan2) | |
-| ::: | _number_ | Y |
-| ::: | _number_ | X |
-| `atanh(number)` | Hyperbolic arctangent | |
-| ::: | _number_ | Expression |
-| `cbrt(number)` | Cube root | |
-| ::: | _number_ | Expression |
-| `ceil(number)` | Round number up to an integer | |
-| ::: | _number_ | Expression |
-| `clamp(number, number, number)` | Restrict a value to a given range | |
-| ::: | _number_ | Value |
-| ::: | _number_ | Min |
-| ::: | _number_ | Max |
-| `cos(number)` | Cosine of a number | |
-| ::: | _number_ | Expression |
-| `cosh(number)` | Hyperbolic cosine | |
-| ::: | _number_ | Expression |
-| `cot(number)` | Cotangent of a number | |
-| ::: | _number_ | Expression |
-| `csc(number)` | Cosecant of a number | |
-| ::: | _number_ | Expression |
-| `exp(number)` | Exponential of a number | |
-| ::: | _number_ | Expression |
-| `floor(number)` | Round number down to an integer | |
-| ::: | _number_ | Expression |
-| `lerp(number, number, number)` | Linearly interpolate a to b by x | |
-| ::: | _number_ | a (in a+(b-a) * x) |
-| ::: | _number_ | b (in a+(b-a) * x) |
-| ::: | _number_ | x (in a+(b-a) * x) |
-| `log(number)` | Logarithm | |
-| ::: | _number_ | Expression |
-| `log10(number)` | Base-10 logarithm | |
-| ::: | _number_ | Expression |
-| `log2(number)` | Base 2 Logarithm | |
-| ::: | _number_ | Expression |
-| `max(number, number)` | Maximum of two numbers | |
-| ::: | _number_ | First expression |
-| ::: | _number_ | Second expression |
-| `min(number, number)` | Minimum of two numbers | |
-| ::: | _number_ | First expression |
-| ::: | _number_ | Second expression |
-| `mod(number, number)` | x mod y | |
-| ::: | _number_ | x (as in x mod y) |
-| ::: | _number_ | y (as in x mod y) |
-| `normalize(number, number, number)` | Remap a value between 0 and 1. | |
-| ::: | _number_ | Value |
-| ::: | _number_ | Min |
-| ::: | _number_ | Max |
-| `nthroot(number, number)` | Nth root of a number | |
-| ::: | _number_ | Number |
-| ::: | _number_ | N |
-| `pow(number, number)` | Raise a number to power n | |
-| ::: | _number_ | Number |
-| ::: | _number_ | The exponent (n in "x to the power n") |
-| `round(number)` | Round a number | |
-| ::: | _number_ | Expression |
-| `sec(number)` | Secant | |
-| ::: | _number_ | Expression |
-| `sign(number)` | Return the sign of a number (1,-1 or 0) | |
-| ::: | _number_ | Expression |
-| `sin(number)` | Sine of a number | |
-| ::: | _number_ | Expression |
-| `sinh(number)` | Hyperbolic sine | |
-| ::: | _number_ | Expression |
-| `sqrt(number)` | Square root of a number | |
-| ::: | _number_ | Expression |
-| `tan(number)` | Tangent of a number | |
-| ::: | _number_ | Expression |
-| `tanh(number)` | Hyperbolic tangent | |
-| ::: | _number_ | Expression |
-| `trunc(number)` | Truncate a number | |
-| ::: | _number_ | Expression |
-
----
-
-## Cameras and layers features
-
-Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/interface/scene-editor/layers-and-cameras)
-
-| Expresión | Descripción | |
-|---------------------------------|--------------------------------------------------|:-----------------------------------------:|
-| `CameraAngle(layer, number)` | Return the angle of rotation of a camera. | |
-| ::: | _layer_ | Layer (base layer if empty) _Optional_. |
-| ::: | _number_ | Camera number (default : 0) _Optional_. |
-| `CameraHeight(layer, number)` | Return the height of a camera of a layer. | |
-| ::: | _layer_ | Layer (base layer if empty) |
-| ::: | _number_ | Camera number |
-| `CameraWidth(layer, number)` | Return the width of a camera of a layer. | |
-| ::: | _layer_ | Layer (base layer if empty) |
-| ::: | _number_ | Camera number |
-| `CameraX(layer, number)` | Return the X position of the center of a camera. | |
-| ::: | _layer_ | Layer (base layer if empty) _Optional_. |
-| ::: | _number_ | Camera number (default : 0) _Optional_. |
-| `CameraY(layer, number)` | Return the Y position of the center of a camera. | |
-| ::: | _layer_ | Layer (base layer if empty) _Optional_. |
-| ::: | _number_ | Camera number (default : 0) _Optional_. |
-| `CameraZoom(layer, number)` | Zoom of a camera of a layer | |
-| ::: | _layer_ | Layer _Optional_. |
-| ::: | _number_ | Camera number (default : 0) _Optional_. |
-| `LayerDefaultZOrder(layer)` | Default Z Order for a layer | |
-| ::: | _layer_ | Layer |
-| `LayerTimeScale(layer)` | Time scale | |
-| ::: | _layer_ | Layer |
-
----
-
-## Audio
-
-GDevelop provides several conditions and actions to play audio files. They can be either long musics or short sound effects. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/audio)
-
-| Expresión | Descripción | |
-|---------------------------------------|----------------------|:-------:|
-| `GlobalVolume()` | Global volume value | |
-| `MusicChannelPitch(number)` | Music's pitch | |
-| ::: | _number_ | Channel |
-| `MusicChannelPlayingOffset(number)` | Music playing offset | |
-| ::: | _number_ | Channel |
-| `MusicChannelVolume(number)` | Music volume | |
-| ::: | _number_ | Channel |
-| `SoundChannelPitch(number)` | Sound's pitch | |
-| ::: | _number_ | Channel |
-| `SoundChannelPlayingOffset(number)` | Sound playing offset | |
-| ::: | _number_ | Channel |
-| `SoundChannelVolume(number)` | Sound volume | |
-| ::: | _number_ | Channel |
-
----
-
-## Basic internet features
-
-Features to send web requests, communicate with external "APIs" and other network related tasks. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/network)
-
-| Expresión | Descripción | |
-|----------------------------------------|------------------------------------|:-------------------------------------:|
-| `GlobalVarToJSON(globalvar)` | Convert a global variable to JSON | |
-| ::: | _globalvar_ | The global variable to be stringified |
-| `ObjectVarToJSON(object, objectvar)` | Convert an object variable to JSON | |
-| ::: | _object_ | The object with the variable |
-| ::: | _objectvar_ | The object variable to be stringified |
-| `ToJSON(scenevar)` | Convert a scene variable to JSON | |
-| ::: | _scenevar_ | Scene variable to be stringified |
-
----
-
-## Window features
-
-Provides actions and conditions to manipulate the game window. Depending on the platform on which the game is running, not all of these features can be applied. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/window)
-
-| Expresión | Descripción | |
-|-------------------------|---------------------------------------------------------------|:---:|
-| `SceneWindowHeight()` | Height of the scene window (or scene canvas for HTML5 games) | |
-| `SceneWindowWidth()` | Width of the scene window (or scene canvas for HTML5 games) | |
-| `ScreenHeight()` | Height of the screen (or the page for HTML5 games in browser) | |
-| `ScreenWidth()` | Width of the screen (or the page for HTML5 games in browser) | |
-| `WindowTitle()` | Window's title | |
-
----
-
-## Text manipulation
-
-Provides expressions to manipulate strings (also called texts).
-
-| Expresión | Descripción | |
-|---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------:|
-| `FromCodePoint(number)` | Get character from code point | |
-| ::: | _number_ | Code point |
-| `NewLine()` | Insert a new line | |
-| `StrAt(string, number)` | Get a character from a text | |
-| ::: | _string_ | Text |
-| ::: | _number_ | Position of the character (the first letter is at position 0) |
-| `StrFind(string, string)` | Search in a text (return the position of the result or -1 if not found) | |
-| ::: | _string_ | Text |
-| ::: | _string_ | Text to search for |
-| `StrFindFrom(string, string, number)` | Search in a text, starting from a position (return the position of the result or -1 if not found) | |
-| ::: | _string_ | Text |
-| ::: | _string_ | Text to search for |
-| ::: | _number_ | Position of the first character in the string to be considered in the search |
-| `StrFindLast(string, string)` | Search the last occurence in a string (return the position of the result, from the beginning of the string, or -1 if not found) | |
-| ::: | _string_ | Text |
-| ::: | _string_ | Text to search for |
-| `StrFindLastFrom(string, string, number)` | Search in a text the last occurence, starting from a position (return the position of the result, from the beginning of the string, or -1 if not found) | |
-| ::: | _string_ | Text |
-| ::: | _string_ | Text to search for |
-| ::: | _number_ | Position of the last character in the string to be considered in the search |
-| `StrLength(string)` | Length of a text | |
-| ::: | _string_ | Text |
-| `StrRepeat(string, number)` | Repeat a text | |
-| ::: | _string_ | Text to repeat |
-| ::: | _number_ | Repetition count |
-| `SubStr(string, number, number)` | Get a portion of a text | |
-| ::: | _string_ | Text |
-| ::: | _number_ | Start position of the portion (the first letter is at position 0) |
-| ::: | _number_ | Length of the portion |
-| `ToLowerCase(string)` | Lowercase a text | |
-| ::: | _string_ | Text |
-| `ToUpperCase(string)` | Uppercase a text | |
-| ::: | _string_ | Text |
-
----
-
-## Advanced control features
-
-Advanced control features to be used in events.
-
-| Expresión | Descripción | |
-|---------------------------------|-------------------------------------------------------|:--------------:|
-| `GetArgumentAsNumber(string)` | Get function parameter (also called "argument") value | |
-| ::: | _string_ | Parameter name |
-| `GetArgumentAsString(string)` | Get function parameter (also called "argument") text | |
-| ::: | _string_ | Parameter name |
-
----
-
-## Platform (from extension Platform Behavior)
-
-Platform that Platformer characters can run on. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/platformer)
-
-_No expressions for this behavior._
-
-## Platformer character (from extension Platform Behavior)
-
-Controllable character that can jump and run on platforms. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/platformer)
-
-| Expresión | Descripción | |
-|----------------------------------------------------|---------------------------------------------------------------------------------------------------|:---:|
-| `Object.PlatformerObject::Acceleration()` | Acceleration | |
-| `Object.PlatformerObject::CurrentFallSpeed()` | Current fall speed | |
-| `Object.PlatformerObject::CurrentJumpSpeed()` | Current jump speed | |
-| `Object.PlatformerObject::CurrentSpeed()` | Current speed | |
-| `Object.PlatformerObject::Deceleration()` | Deceleration | |
-| `Object.PlatformerObject::Gravity()` | Get the gravity applied on the object | |
-| `Object.PlatformerObject::JumpSpeed()` | Jump speed | |
-| `Object.PlatformerObject::JumpSustainTime()` | The time during which keeping the jump button held allow the initial jump speed to be maintained. | |
-| `Object.PlatformerObject::LadderClimbingSpeed()` | Get the ladder climbing speed | |
-| `Object.PlatformerObject::MaxFallingSpeed()` | Get the maximum falling speed | |
-| `Object.PlatformerObject::MaxSpeed()` | Maximum speed | |
-
----
-
-## Destroy when outside of the screen (from extension Destroy Outside Screen Behavior)
-
-Automatically destroy the object when it goes outside of the screen's borders. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/destroyoutside)
-
-_No expressions for this behavior._
-
----
-
-## Tiled Sprite (from extension Tiled Sprite Object)
-
-Displays an image repeated over an area. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/tiled_sprite)
-
-| Expresión | Descripción | |
-|----------------------|-------------|:---:|
-| `Object.Opacity()` | Opacity | |
-
----
-
-## Draggable object (from extension Draggable Behavior)
-
-Allows objects to be moved using the mouse (or touch). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/draggable)
-
-_No expressions for this behavior._
-
----
-
-## Top-down movement (4 or 8 directions) (from extension Top-down movement)
-
-Objects with this behavior can be moved left, up, right, and down (and, optionally, diagonally). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/topdown)
-
-| Expresión | Descripción | |
-|---------------------------------------------------|---------------------------------------|:---:|
-| `Object.TopDownMovement::Acceleration()` | Acceleration of the object | |
-| `Object.TopDownMovement::Angle()` | Angle, in degrees, of the movement | |
-| `Object.TopDownMovement::AngleOffset()` | Rotation offset applied to the object | |
-| `Object.TopDownMovement::AngularMaxSpeed()` | Angular maximum speed of the object | |
-| `Object.TopDownMovement::Deceleration()` | Deceleration of the object | |
-| `Object.TopDownMovement::MaxSpeed()` | Maximum speed of the object | |
-| `Object.TopDownMovement::MovementAngleOffset()` | Return the movement angle offset. | |
-| `Object.TopDownMovement::Speed()` | Speed of the object | |
-| `Object.TopDownMovement::XVelocity()` | Speed on the X axis of the movement | |
-| `Object.TopDownMovement::YVelocity()` | Speed on the Y axis of the movement | |
-
----
-
-## Text (from extension Text object)
-
-Displays a text on the screen. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/text)
-
-| Expresión | Descripción | |
-|----------------------|--------------------------|:---:|
-| `Object.Angle()` | Angle | |
-| `Object.Opacity()` | Opacity of a Text object | |
-| `Object.Padding()` | Padding | |
-| `Object.ScaleX()` | X Scale of a Text object | |
-| `Object.ScaleY()` | Y Scale of a Text object | |
-| `Object.String()` | Text | |
-
----
-
-## Particles emitter (from extension Particle system)
-
-Displays a large number of small particles to create visual effects. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/particles_emitter)
-
-| Expresión | Descripción | |
-|------------------------------------|------------------------------------------|:---:|
-| `Object.EmitterAngle()` | Emission angle | |
-| `Object.EmitterAngleA()` | Emission angle A | |
-| `Object.EmitterAngleB()` | Emission angle B | |
-| `Object.EmitterForceMax()` | Emission maximal force | |
-| `Object.EmitterForceMin()` | Emission minimal force | |
-| `Object.Flow()` | Flow | |
-| `Object.NbParticles()` | Particles number | |
-| `Object.ParticleAlpha1()` | Parameter 1 of transparency | |
-| `Object.ParticleAlpha2()` | Parameter 2 of transparency | |
-| `Object.ParticleBlue1()` | Parameter 1 of blue color | |
-| `Object.ParticleBlue2()` | Parameter 2 of blue color | |
-| `Object.ParticleGravityAngle()` | Gravity angle | |
-| `Object.ParticleGravityLength()` | Gravity value | |
-| `Object.ParticleGravityX()` | X Gravity of particles | |
-| `Object.ParticleGravityY()` | Y Gravity of particles | |
-| `Object.ParticleGreen1()` | Parameter 1 of green color | |
-| `Object.ParticleGreen2()` | Parameter 2 of green color | |
-| `Object.ParticleLifeTimeMax()` | Maximum lifetime of particles | |
-| `Object.ParticleLifeTimeMin()` | Minimum lifetime of particles | |
-| `Object.ParticleRed1()` | Parameter 1 of red color | |
-| `Object.ParticleRed2()` | Parameter 2 of red color | |
-| `Object.ParticleSize1()` | Parameter 1 of size | |
-| `Object.ParticleSize2()` | Parameter 2 of size | |
-| `Object.RendererParam1()` | Rendering first parameter | |
-| `Object.RendererParam2()` | Rendering second parameter | |
-| `Object.Tank()` | Capacity | |
-| `Object.Texture()` | Name of the image displayed by particles | |
-| `Object.ZoneRadius()` | Radius of the emission zone | |
-
----
-
-## Panel Sprite ("9-patch") (from extension Panel Sprite (9-patch) Object)
-
-An image with edges and corners that are stretched separately from the full image. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/panel_sprite)
-
-| Expresión | Descripción | |
-|----------------------|-------------|:---:|
-| `Object.Opacity()` | Opacity | |
-
----
-
-## Anchor
-
-Behavior that anchors objects to the window's bounds. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/anchor)
-
-_No expressions for this behavior._
-
----
-
-## Shape painter
-
-Allows you to draw simple shapes on the screen [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/shape_painter)
-
-| Expresión | Descripción | |
-|--------------------------------|-------------------------------|:---:|
-| `Object.FillColorBlue()` | Filing color blue component | |
-| `Object.FillColorGreen()` | Filing color green component | |
-| `Object.FillColorRed()` | Filing color red component | |
-| `Object.FillOpacity()` | Filling opacity | |
-| `Object.OutlineColorBlue()` | Outline color blue component | |
-| `Object.OutlineColorGreen()` | Outline color green component | |
-| `Object.OutlineColorRed()` | Outline color red component | |
-| `Object.OutlineOpacity()` | Outline opacity | |
-| `Object.OutlineSize()` | Outline size | |
-
----
-
-## Text entry (from extension Text entry object)
-
-Invisible object used to get the text entered with the keyboard. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/text_entry)
-
-| Expresión | Descripción | |
-|---------------------|----------------------------|:---:|
-| `Object.String()` | Text entered with keyboard | |
-
----
-
-## Inventory
-
-Provides actions and conditions to add an inventory to your game, with items in memory. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/inventory)
-
-| Expresión | Descripción | |
-|--------------------------------------|--------------------------------------------|:--------------:|
-| `Inventory::Count(string, string)` | Get the number of an item in the inventory | |
-| ::: | _string_ | Inventory name |
-| ::: | _string_ | Item name |
-
----
-
-## Pathfinding (from extension Pathfinding behavior)
-
-With this behavior, the object will move while avoiding all objects that are flagged as obstacles. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/pathfinding)
-
-| Expresión | Descripción | |
-|-------------------------------------------|-------------------------------------------------|:------------------------:|
-| `Object.Pathfinding::Acceleration()` | Acceleration of the object on the path | |
-| `Object.Pathfinding::AngleOffset()` | Rotation offset applied the object on the path | |
-| `Object.Pathfinding::AngularMaxSpeed()` | Angular maximum speed of the object on the path | |
-| `Object.Pathfinding::CellHeight()` | Height of the virtual grid | |
-| `Object.Pathfinding::CellWidth()` | Width of the virtual grid | |
-| `Object.Pathfinding::DestinationX()` | Destination X position | |
-| `Object.Pathfinding::DestinationY()` | Destination Y position | |
-| `Object.Pathfinding::ExtraBorder()` | Extra border applied the object on the path | |
-| `Object.Pathfinding::GetNodeX(number)` | Get next waypoint X position | |
-| ::: | _number_ | Node index (start at 0!) |
-| `Object.Pathfinding::GetNodeY(number)` | Get next waypoint Y position | |
-| ::: | _number_ | Node index (start at 0!) |
-| `Object.Pathfinding::GridOffsetX()` | Return X offset of the virtual grid. | |
-| `Object.Pathfinding::GridOffsetY()` | Return Y offset of the virtual grid. | |
-| `Object.Pathfinding::LastNodeX()` | Last waypoint X position | |
-| `Object.Pathfinding::LastNodeY()` | Last waypoint Y position | |
-| `Object.Pathfinding::MaxSpeed()` | Maximum speed of the object on the path | |
-| `Object.Pathfinding::MovementAngle()` | Angle of movement on its path | |
-| `Object.Pathfinding::NextNodeIndex()` | Get the index of the next waypoint to reach | |
-| `Object.Pathfinding::NextNodeX()` | Get next waypoint X position | |
-| `Object.Pathfinding::NextNodeY()` | Get next waypoint Y position | |
-| `Object.Pathfinding::NodeCount()` | Get the number of waypoints on the path | |
-| `Object.Pathfinding::Speed()` | Speed of the object on the path | |
-
-## Obstacle for pathfinding (from extension Pathfinding behavior)
-
-Flag the object as being an obstacle for pathfinding. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/pathfinding)
-
-| Expresión | Descripción | |
-|----------------------------------------|---------------|:---:|
-| `Object.PathfindingObstacle::Cost()` | Obstacle cost | |
-
----
-
-## Physics Engine (from extension Physics Engine (deprecated))
-
-Make objects move as if they are subject to the laws of physics. If you're creating a new game, prefer Physics Engine 2.0 [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/physics)
-
-| Expresión | Descripción | |
-|---------------------------------------|---------------------------|:---:|
-| `Object.Physics::AngularDamping()` | Angular damping | |
-| `Object.Physics::AngularVelocity()` | Angular speed | |
-| `Object.Physics::LinearDamping()` | Linear damping | |
-| `Object.Physics::LinearVelocity()` | Linear speed | |
-| `Object.Physics::LinearVelocityX()` | X component | |
-| `Object.Physics::LinearVelocityY()` | Y component | |
-| `Object.Physics::PolygonScaleX()` | Collision polygon X scale | |
-| `Object.Physics::PolygonScaleY()` | Collision polygon Y scale | |
-
----
-
-## Advanced window management
-
-Provides advanced features related to the game window positioning and interaction with the operating system.
-
-| Expresión | Descripción | |
-|-------------------------------------|----------------------------------------------------------------------------------|:---:|
-| `AdvancedWindow::WindowOpacity()` | Returns the current window opacity (a number from 0 to 1, 1 being fully opaque). | |
-| `AdvancedWindow::WindowX()` | Returns the current window X position. | |
-| `AdvancedWindow::WindowY()` | Returns the current window Y position. | |
-
----
-
-## BBText (from extension BBCode Text Object)
-
-Displays a rich text label using BBCode markup (allowing to set parts of the text as bold, italic, use different colors and shadows). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/bbtext)
-
-| Expresión | Descripción | |
-|-------------------------------|--------------------------|:---:|
-| `Object.GetBBText()` | Get BBCode text | |
-| `Object.GetFontFamily()` | Get the base font family | |
-| `Object.GetFontSize()` | Get the base font size | |
-| `Object.GetOpacity()` | Get the base opacity | |
-| `Object.GetWrappingWidth()` | Get the wrapping width | |
-
----
-
-## Bitmap Text
-
-Displays a text using a "Bitmap Font" (an image representing characters). This is more performant than a traditional Text object and it allows for complete control on the characters aesthetic. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/bitmap_text)
-
-| Expresión | Descripción | |
-|----------------------------|----------------------------------------------------------------------------|:---:|
-| `Object.Alignment()` | Return the text alignment. | |
-| `Object.FontName()` | Return the font name (defined in the Bitmap font). | |
-| `Object.FontSize()` | Return the font size, defined in the Bitmap Font. | |
-| `Object.Opacity()` | Return the opacity, between 0 (fully transparent) and 255 (opaque). | |
-| `Object.Scale()` | Return the scale (1 by default). | |
-| `Object.Text()` | Return the text. | |
-| `Object.WrappingWidth()` | Return the width, in pixels, after which the text is wrapped on next line. | |
-
----
-
-## Device sensors
-
-Allow the game to access the sensors of a mobile device. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/device-sensors)
-
-| Expresión | Descripción | |
-|------------------------------------------|-------------------------------------------------------------|:---:|
-| `DeviceSensors::AccelerationX()` | Get the devices acceleration on the X-axis (m/s²) | |
-| `DeviceSensors::AccelerationY()` | Get the devices acceleration on the Y-axis (m/s²) | |
-| `DeviceSensors::AccelerationZ()` | Get the devices acceleration on the Z-axis (m/s²) | |
-| `DeviceSensors::OrientationAbsolute()` | Get if the devices orientation is absolute and not relative | |
-| `DeviceSensors::OrientationAlpha()` | Get the devices orientation Alpha (compass) | |
-| `DeviceSensors::OrientationBeta()` | Get the devices orientation Beta | |
-| `DeviceSensors::OrientationGamma()` | Get the devices orientation Gamma value | |
-| `DeviceSensors::RotationAlpha()` | Get the devices rotation Alpha | |
-| `DeviceSensors::RotationBeta()` | Get the devices rotation Beta | |
-| `DeviceSensors::RotationGamma()` | Get the devices rotation Gamma | |
-
----
-
-## Dialogue Tree (Experimental)
-
-Handle dialogue trees, made using Yarn Spinner. Useful to make complex dialogues with multiple choices. The Yarn Spinner editor is embedded in GDevelop so you can edit your dialogues without leaving GDevelop. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/dialogue-tree)
-
-| Expresión | Descripción | |
-|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------:|
-| `DialogueTree::BranchTag(number)` | Get a tag of the current branch of the running dialogue via its index | |
-| ::: | _number_ | Tag Index Number |
-| `DialogueTree::BranchTags()` | Get the tags of the current branch of the running dialogue | |
-| `DialogueTree::BranchText()` | Get the full raw text of the current branch | |
-| `DialogueTree::BranchTitle()` | Get the title of the current branch of the running dialogue | |
-| `DialogueTree::ClippedLineText()` | Get dialogue line text clipped by the typewriter effect. Use the "Scroll clipped text" action to control the typewriter effect. | |
-| `DialogueTree::CommandParameter(number)` | Get the parameters of a command call - \<\\> | |
-| ::: | _number_ | parameter Index Number _Optional_. |
-| `DialogueTree::CommandParametersCount()` | Get the number of parameters in the currently passed command | |
-| `DialogueTree::HorizontalOptionsList(string)` | Get the text of all available options from an Options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -\> | |
-| ::: | _string_ | Options Selection Cursor |
-| `DialogueTree::LineText()` | Returns the current dialogue line text | |
-| `DialogueTree::Option(number)` | Get the text of an option from an Options line type, using the option's Number. The numbers start from 0. | |
-| ::: | _number_ | Option Index Number |
-| `DialogueTree::OptionsCount()` | Get the number of options in an options line type | |
-| `DialogueTree::SelectedOptionIndex()` | Get the number of the currently selected option. Use this to help you render the option selection marker at the right place. | |
-| `DialogueTree::TagParameter(number)` | Get parameter from a Tag found by the branch contains tag condition | |
-| ::: | _number_ | parameter Index Number _Optional_. |
-| `DialogueTree::Variable(string)` | Get dialogue state value | |
-| ::: | _string_ | Variable Name |
-| `DialogueTree::VerticalOptionsList(string)` | Get the text of all available options from an Options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -\> | |
-| ::: | _string_ | Options Selection Cursor |
-| `DialogueTree::VisitedBranchTitles()` | Get a list of all visited branches | |
-
----
-
-## Facebook Instant Games
-
-Allow your game to send scores and interact with the Facebook Instant Games platform. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/publishing/publishing-to-facebook-instant-games)
-
-| Expresión | Descripción | |
-|----------------------------------------|----------------------------------|:---:|
-| `FacebookInstantGames::PlayerId()` | Get the player unique identifier | |
-| `FacebookInstantGames::PlayerName()` | Get the player name | |
-
----
-
-## Filesystem
-
-Access the filesystem of the operating system. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/filesystem)
-
-| Expresión | Descripción | |
-|------------------------------------------|----------------------------------------------------------------------------------------------------------------------|:-------------------:|
-| `()` | Get the path to the desktop folder. | |
-| `FileSystem::DirectoryName(string)` | Returns the portion of the path that represents the directories, without the ending file name. | |
-| ::: | _string_ | File or folder path |
-| `()` | Get the path to the documents folder. | |
-| `()` | Get the path to this game executable folder. | |
-| `()` | Get the path to this game executable file. | |
-| `FileSystem::ExtensionName(string)` | Returns the extension of the file designated by the given path, including the extension period. For example: ".txt". | |
-| ::: | _string_ | File path |
-| `FileSystem::FileName(string)` | Returns the name of the file with its extension, if any. | |
-| ::: | _string_ | File path |
-| `()` | Get the operating system path delimiter. | |
-| `()` | Get the path to the pictures folder. | |
-| `()` | Get the path to temp folder. | |
-| `()` | Get the path to the user home folder. | |
-| `()` | Get the path to userdata folder (for application settings). | |
-
----
-
-## Firebase
-
-Use Google Firebase services (database, functions, storage...) in your game. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/firebase)
-
-| Expresión | Descripción | |
-|---------------------------------------------|-------------------------------------------------------------------------------------------------|:------------:|
-| `Firebase::GetAccountCreationTime()` | Gets the accounts creation time. | |
-| `Firebase::GetAuthToken(string)` | Get the user authentififcation token. The token is the proof of authentication. | |
-| ::: | _string_ | Setting Name |
-| `Firebase::GetLastLoginTime()` | Gets the user last login time. | |
-| `Firebase::GetPhoneNumber()` | Gets the user phone number. | |
-| `Firebase::GetPhotoURL()` | Gets an URL to the user profile picture. | |
-| `Firebase::GetRefreshToken()` | Gets the user refresh token. For advanced usage only. | |
-| `Firebase::GetRemoteConfigNumber(string)` | Get a setting from Firebase Remote Config as Number. | |
-| ::: | _string_ | Setting Name |
-| `Firebase::GetRemoteConfigString(string)` | Get a setting from Firebase Remote Config as a string. | |
-| ::: | _string_ | Setting Name |
-| `Firebase::GetTenantID()` | Gets the user tenant ID. For advanced usage only. | |
-| `Firebase::GetUserDisplayName()` | Gets the user display name. | |
-| `Firebase::GetUserEmail()` | Gets the user email address. | |
-| `Firebase::GetUserUID()` | Gets the user Unique IDentifier. Use that to link data to an user instead of the name or email. | |
-| `Firebase::ServerTimestamp()` | Set a field to the timstamp on the server when the request arrives there | |
-
----
-
-## Light (from extension Lights)
-
-Displays a light on the scene, with a customizable radius and color. Add then the Light Obstacle behavior to the objects that must act as obstacle to the lights.
-
-_No expressions for this object._
-
-## Light Obstacle Behavior (from extension Lights)
-
-This behavior makes the object an obstacle to the light. The light emitted by light objects will be stopped by the object.
-
-_No expressions for this behavior._
-
----
-
-## Peer-to-Peer communication (experimental)
-
-Allow game instances to communicate remotely using messages sent via WebRTC (P2P). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/p2p)
-
-| Expresión | Descripción | |
-|------------------------------------|-----------------------------------------------------------------------|:----------:|
-| `P2P::GetEventData(string)` | Returns the data received when the specified event was last triggered | |
-| ::: | _string_ | Event name |
-| `P2P::GetEventSender(string)` | Returns the id of the peer that triggered the event | |
-| ::: | _string_ | Event name |
-| `P2P::GetID()` | Gets the client ID of the current game instance | |
-| `P2P::GetLastConnectedPeer()` | Gets the ID of the newly connected peer. | |
-| `P2P::GetLastDisconnectedPeer()` | Gets the ID of the latest peer that has disconnected. | |
-| `P2P::GetLastError()` | Gets the description of the last P2P error | |
-
----
-
-## Physics Engine 2.0
-
-Simulate realistic object physics, with gravity, forces, joints, etc. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/physics2)
-
-| Expresión | Descripción | |
-|-------------------------------------------------------------|-------------------------------------------------|:--------:|
-| `Object.Physics2::AngularDamping()` | Get the angular damping of an object. | |
-| `Object.Physics2::AngularVelocity()` | Get the angular velocity of an object. | |
-| `Object.Physics2::Density()` | Get the density of an object. | |
-| `Object.Physics2::DistanceJointDampingRatio(number)` | Distance joint damping ratio | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::DistanceJointFrequency(number)` | Distance joint frequency | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::DistanceJointLength(number)` | Distance joint length | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::Friction()` | Get the friction of an object. | |
-| `Object.Physics2::FrictionJointMaxForce(number)` | Friction joint maximum force | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::FrictionJointMaxTorque(number)` | Friction joint maximum torque | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::GearJointFirstJoint(number)` | Gear joint first joint | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::GearJointRatio(number)` | Gear joint ratio | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::GearJointSecondJoint(number)` | Gear joint second joint | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::GravityScale()` | Get the gravity scale of an object. | |
-| `Object.Physics2::GravityX()` | World gravity on X axis | |
-| `Object.Physics2::GravityY()` | World gravity on Y axis | |
-| `Object.Physics2::JointFirstAnchorX(number)` | Joint first anchor X | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::JointFirstAnchorY(number)` | Joint first anchor Y | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::JointReactionForce(number)` | Joint reaction force | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::JointReactionTorque(number)` | Joint reaction torque | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::JointSecondAnchorX(number)` | Joint second anchor X | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::JointSecondAnchorY(number)` | Joint second anchor Y | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::LinearDamping()` | Get the linear damping of an object. | |
-| `Object.Physics2::LinearVelocity()` | Get the linear velocity of an object. | |
-| `Object.Physics2::LinearVelocityX()` | Get the linear velocity of an object on X axis. | |
-| `Object.Physics2::LinearVelocityY()` | Get the linear velocity of an object on Y axis. | |
-| `Object.Physics2::MassCenterX()` | Mass center X | |
-| `Object.Physics2::MassCenterY()` | Mass center Y | |
-| `Object.Physics2::MotorJointAngularOffset(number)` | Motor joint angular offset | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MotorJointCorrectionFactor(number)` | Motor joint correction factor | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MotorJointMaxForce(number)` | Motor joint maximum force | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MotorJointMaxTorque(number)` | Motor joint maximum torque | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MotorJointOffsetX(number)` | Motor joint offset X | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MotorJointOffsetY(number)` | Motor joint offset Y | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MouseJointDampingRatio(number)` | Mouse joint damping ratio | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MouseJointFrequency(number)` | Mouse joint frequency | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MouseJointMaxForce(number)` | Mouse joint maximum force | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MouseJointTargetX(number)` | Mouse joint target X | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::MouseJointTargetY(number)` | Mouse joint target Y | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointAxisAngle(number)` | Prismatic joint axis angle | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointMaxMotorForce(number)` | Prismatic joint maximum motor force | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointMaxTranslation(number)` | Prismatic joint maximum translation | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointMinTranslation(number)` | Prismatic joint minimum translation | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointMotorForce(number)` | Prismatic joint motor force | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointMotorSpeed(number)` | Prismatic joint motor speed | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointReferenceAngle(number)` | Prismatic joint reference angle | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointSpeed(number)` | Prismatic joint speed | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PrismaticJointTranslation(number)` | Prismatic joint current translation | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PulleyJointFirstGroundAnchorX(number)` | Pulley joint first ground anchor X | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PulleyJointFirstGroundAnchorY(number)` | Pulley joint first ground anchor Y | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PulleyJointFirstLength(number)` | Pulley joint first length | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PulleyJointRatio(number)` | Pulley joint ratio | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PulleyJointSecondGroundAnchorX(number)` | Pulley joint second ground anchor X | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PulleyJointSecondGroundAnchorY(number)` | Pulley joint second ground anchor Y | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::PulleyJointSecondLength(number)` | Pulley joint second length | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::Restitution()` | Get the restitution of an object. | |
-| `Object.Physics2::RevoluteJointAngle(number)` | Revolute joint current angle | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::RevoluteJointMaxAngle(number)` | Revolute joint maximum angle | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::RevoluteJointMaxMotorTorque(number)` | Revolute joint maximum motor torque | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::RevoluteJointMinAngle(number)` | Revolute joint minimum angle | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::RevoluteJointMotorSpeed(number)` | Revolute joint motor speed | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::RevoluteJointMotorTorque(number)` | Revolute joint motor torque | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::RevoluteJointReferenceAngle(number)` | Revolute joint reference angle | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::RevoluteJointSpeed(number)` | Revolute joint angular speed | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::RopeJointMaxLength(number)` | Rope joint maximum length | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::TimeScale()` | World time scale | |
-| `Object.Physics2::WeldJointDampingRatio(number)` | Weld joint damping ratio | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WeldJointFrequency(number)` | Weld joint frequency | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WeldJointReferenceAngle(number)` | Weld joint reference angle | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WheelJointAxisAngle(number)` | Wheel joint axis angle | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WheelJointDampingRatio(number)` | Wheel joint damping ratio | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WheelJointFrequency(number)` | Wheel joint frequency | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WheelJointMaxMotorTorque(number)` | Wheel joint maximum motor torque | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WheelJointMotorSpeed(number)` | Wheel joint motor speed | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WheelJointMotorTorque(number)` | Wheel joint motor torque | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WheelJointSpeed(number)` | Wheel joint speed | |
-| ::: | _number_ | Joint ID |
-| `Object.Physics2::WheelJointTranslation(number)` | Wheel joint current translation | |
-| ::: | _number_ | Joint ID |
-
----
-
-## Tilemap
-
-Displays a tiled-based map, made with the Tiled editor (download it separately on ). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/tilemap)
-
-| Expresión | Descripción | |
-|----------------------------------|------------------------------------------------|:---:|
-| `Object.AnimationFps()` | Get the animation speed (in frames per second) | |
-| `Object.AnimationSpeedScale()` | Get the Animation speed scale | |
-| `Object.LayerIndex()` | Get the layer index being displayed | |
-
----
-
-## Tween (from extension Tweening)
-
-Smoothly animate position, angle, scale and other properties of the object. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/tween)
-
-| Expresión | Descripción | |
-|------------------------------------|-------------------------------------------|:----------------:|
-| `Object.Tween::Progress(string)` | Progress of a tween (between 0.0 and 1.0) | |
-| ::: | _string_ | Tween Identifier |
-
----
-
-## Vídeo
-
-Muestra un vídeo. [Lea más sobre ello.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/video)
-
-| Expresión | Descripción | |
-|----------------------------|---------------------------------------------------------------------------------|:---:|
-| `Object.CurrentTime()` | Devuelve el tiempo del objeto o cuadro de vídeo actual (en segundos). | |
-| `Object.Duration()` | Devuelve la duración de un objeto de vídeo (en segundos). | |
-| `Object.Opacity()` | Devuelve la opacidad de un objeto de vídeo | |
-| `Object.PlaybackSpeed()` | Devuelve la velocidad de reproducción de un objeto de vídeo | |
-| `Object.Volume()` | Devuelve el volumen de un objeto de vídeo, entre 0 (silenciado) y 100 (máximo). | |
diff --git a/docs/es/gdevelop5/all-features/expressions.md b/docs/es/gdevelop5/all-features/expressions.md
deleted file mode 100644
index 10bd3e0041a..00000000000
--- a/docs/es/gdevelop5/all-features/expressions.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: Expresiones
----
-# Expresiones
-
-GDevelop soporta expresiones! Las expresiones son valores dinámicos que pueden usarse en parámetros de evento. Por ejemplo, para establecer una posición del objeto, puede usar un número fijo como `` 75`` o puede usar una expresión como `` AnotherObject.X () - Variable (position_offset) ``.
-
-Hay dos tipos de expresiones:
-
-1. // **Numerics **//
-
-Los números pueden usarse en parámetros de eventos. Reciben un valor numérico como la posición del objeto, orden z, número de variable, etc.
-
-1. // **Cuerdas **//
-
-Las cadenas se pueden utilizar en parámetros que reciben un valor de texto / cadena. Puede usar esta expresión para leer el contenido de una cadena de objeto de texto, su color, el texto de otra variable, etc.
-
-## expresiones numéricas Como se indicó anteriormente, las expresiones numéricas se pueden usar en parámetros numéricos.
-
-### valores aleatorios
-
-`` Random (max) `` - Devuelve un número entero entre `0` y el valor` max` que está definido. El "rango" es \[0, max\].
-
-// Ejemplos usando la expresión aleatoria (): // \ Aleatorio (3) // Los 3 valores enteros posibles son 0, 1, 2 y 3 Aleatorio (-1, 2) // Los 4 valores posibles son -1, 0, 1 y 2 // RandomInRange (min, max) se puede reemplazar por min + Random (max - min) Aleatorio (2 - -1) \
-
-`` RandomFloat (max) `` - Devuelve un flotante entre `0` y` max`. El rango es `` \[0, max) ``. Tenga en cuenta que `` max`` no está incluido en el rango. Es importante tener en cuenta que los posibles resultados son infinitos. Esto se debe a que hay infinitos números reales entre dos valores diferentes.
-
-// Ejemplos usando la expresión RandomFloat (max): // \ RandomFloat (2.5) // ALGUNOS de los muchos valores posibles son 0, 1.467798, 2.000587 y 2.499999 \
-
-`` RandomFloatInRange (min, max) `` - Devuelve un flotante entre `min` y` max`. El rango es `` \[min, max) ``. Tenga en cuenta que `` max`` no está incluido en el rango. También es importante tener en cuenta que los posibles resultados son infinitos, ya que hay números reales infinitos entre dos valores diferentes.
-
-// Ejemplos usando la expresión RandomFloatInRange (): // \ RandomFloatInRange (-1.5, 2) // ALGUNOS de los muchos valores posibles son -1.5, -0.598156, 1.000874 y 1.99999 \
-
-`` RandomWithStep (min, max, step) `` - Devuelve un número entre `min` y` max` en pasos. El rango es `` \[min, min + N * step\] `` con `` min + N * step ≤ max \ RandomWithStep (1, 3, 0.6) // Los números generados son `` 1``, `` 1.6``, `` 2.2`` y `` 2.8`` \
diff --git a/docs/es/gdevelop5/all-features/index.md b/docs/es/gdevelop5/all-features/index.md
deleted file mode 100644
index 666e0878926..00000000000
--- a/docs/es/gdevelop5/all-features/index.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Todas las demás características (All other features)
----
-# Todas las demás características (All other features)
-
-Algunas características de GDevelop no están proporcionadas por objetos y comportamientos, pero pueden usarse directamente desde acciones, condiciones o expresiones, o están integradas en el motor del juego (o en [an extension](/gdevelop5/ extended-gdevelop)) sin necesidad de un objeto Para existir en la escena.
-
-Este es, por ejemplo, el caso del motor de audio, los temporizadores o el soporte para almacenamiento. Examine la lista completa para obtener ayuda sobre todas estas características de GDevelop:
-
-* [Variables (variables)](/gdevelop5/all-features/variables)
-* [Colisiones (Collisions)](/gdevelop5/all-features/collisions)
-* [Mouse and touch](/gdevelop5/all-features/mouse-touch)
-* [Temporizadores (Timers)](/gdevelop5/all-features/timers)
-* [Audio](/gdevelop5/all-features/audio)
-* [Almacenamiento (Storage)](/gdevelop5/all-features/storage)
-* [Red (Network)](/gdevelop5/all-features/network)
-* [Inventario (Inventory)](/gdevelop5/all-features/inventory)
-* [Objetos Linkeados (Linked objects)](/gdevelop5/all-features/linked-objects)
-* [Tienda (Shopify)](/gdevelop5/all-features/shopify)
-* [Sensores del dispositivo (Device Sensors)](/gdevelop5/all-features/device-sensors)
-* [Vibración del dispositivo (Device Vibration)](/gdevelop5/all-features/device-vibration)
-* [Otras expresiones (Other expressions)](/gdevelop5/all-features/expressions)
diff --git a/docs/es/gdevelop5/all-features/inventory.md b/docs/es/gdevelop5/all-features/inventory.md
deleted file mode 100644
index 2ffd9da32ad..00000000000
--- a/docs/es/gdevelop5/all-features/inventory.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: Inventario (Inventory)
----
-# Inventario (Inventory)
-
-Los "Inventarios" se encuentran en estructuras de memoria que le permiten realizar un seguimiento de los objetos / elementos recolectados por el jugador o cualquier otro inventario en un juego. Los artículos de inventario son ilimitados e identificados por los nombres que usted elija.
-
-Al igual que las variables, los "Inventarios" se identifican con un nombre. Los nombres de "inventario" pueden ser lo que quieras. El estado de inventario inicial por defecto está vacío. No contiene elementos.
-
-Los inventarios y su contenido pueden ser manipulados usando condiciones y acciones.
-
-## Adición, eliminación y manipulación de elementos.
-
-Los inventarios se componen de artículos. Como se mencionó anteriormente, el "Inventario" predeterminado está vacío de cualquier artículo.
-
-Use la acción "Agregar un artículo" para agregar un artículo al inventario. El nombre del artículo se puede elegir libremente. Por ejemplo, un "elemento podría ser" Espada "," Oro "," Balas ", etc. También puede usar la acción "Eliminar un elemento" para eliminar un elemento de un inventario.
-
-Puede establecer límites en los artículos de un inventario mediante la acción "Establecer un recuento máximo para un artículo". Introduzca el nombre del artículo y el recuento. Cuando un artículo ha alcanzado su conteo máximo, agregar nuevos artículos no aumentará el conteo del artículo en el inventario.
-
-Puede usar las condiciones "Artículo completo" para verificar si un artículo alcanzó la capacidad máxima. La condición "Tiene un elemento" permite que se realice una verificación del inventario para ver _si_ el jugador tiene al menos uno de los elementos especificados.
-
-## Configuración de un elemento como equipado
-
-Los artículos pueden ser marcados como "equipados". Usa la acción "Equipar un objeto". Esta acción no cambia nada en el juego. Sin embargo, puede usar la condición "Artículo equipado" para verificar _si_ está equipado un artículo. A continuación, puede establecer su acción en consecuencia.
-
-Por ejemplo, puedes usar la condición "Objeto equipado" para verificar si hay una "Espada mágica" en tu juego. Si está equipado, podrías agregar más daños a los enemigos.
-
-Si un artículo alcanza el conteo de 0 (es decir, el inventario está vacío de artículos), no se marca como equipado.
-
-## Cómo mostrar los elementos de un inventario en el juego.
-
-Diferentes juegos pueden mostrar inventarios de diferentes maneras. Los inventarios no se pueden representar directamente en la pantalla, pero puede usar [Sprites](/gdevelop5/ objects/ sprite) [Text objetos](/gdevelop5/ objects/ text) para crear su propia visualización.
-
-Para usar objetos de Sprites y Texto para crear una pantalla:
-
-1. use la condición "Tiene un artículo" para verificar si un artículo es "de su propiedad"
-2. Mostrar u ocultar el objeto asociado en la pantalla.
-3. use la expresión "Recuento de artículos" (por ejemplo, `InventoryTools :: Count (" PlayerInventory "," Gold ")`) para acceder al recuento de un artículo determinado
-4. utilice el "recuento de elementos" para establecer el texto de un objeto "Texto" que se muestra en la pantalla
-
-## Guardar / cargar inventarios
-
-Utilice [storage actions](/gdevelop5/ all-features/ storage) para guardar el progreso del reproductor. También puede guardar el contenido del inventario (o cualquier otro inventario que use en el juego).
-
-Las acciones "Guardar un inventario en una variable" y "Cargar un inventario desde una variable", le permiten volcar el contenido de un inventario en una variable. Estas acciones se establecerán como una variable estructurada. La información será contenida como niños. Las acciones también se pueden utilizar para restaurar un inventario a partir de una variable.
-
-Cuando su inventario se guarda en una variable, puede guardar esta variable utilizando las acciones de almacenamiento y las acciones relacionadas con JSON: 
diff --git a/docs/es/gdevelop5/all-features/mouse-touch.md b/docs/es/gdevelop5/all-features/mouse-touch.md
deleted file mode 100644
index 0e21cf7d397..00000000000
--- a/docs/es/gdevelop5/all-features/mouse-touch.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: Ratón y manejo de eventos táctiles. (Mouse and handling touch events)
----
-# Ratón y manejo de eventos táctiles. (Mouse and handling touch events)
-
-GDevelop tiene soporte incorporado para el manejo de toques y entradas de mouse.
-
-## Forma más fácil: use la condición "El cursor / toque está en un objeto"
-
-La condición llamada "**El cursor / toque está en un objeto**" verificará si el cursor del mouse o un toque de pantalla se realiza en un objeto (s) determinado (s).
-
-Si el cursor / táctil se reconoce con "el cursor / táctil está en una condición de objeto", los objetos tocados / desplazados se seleccionarán para las siguientes condiciones y acciones.
-
-Puede usar "**El cursor / toque está en un objeto **" junto con "** Botón del mouse presionado**" o **"Botón del mouse liberado**". Por defecto, el toque emulará un clic izquierdo. Esta configuración predeterminada le permite detectar si el usuario tocó un botón o un objeto con un clic izquierdo del mouse. 
-
-Tenga en cuenta que puede usar expresiones como `MouseX` y` MouseY` para obtener la posición del cursor en la escena:
-
-
-
-## Manera más compleja: usa las condiciones para verificar la posición del mouse o toque
-
-Si desea manejar los eventos de toque y cursor por separado, puede usar la acción "De / activar moviendo el cursor del mouse con toques". En este momento, los toques no simularán el mouse y los clics a la izquierda.
-
-Al manejar los eventos táctiles y de cursor por separado, puede usar expresiones para obtener la posición del mouse (`MouseX` y` MouseY`), así como la posición de un toque.
-
-Se pueden hacer múltiples toques al mismo tiempo. Debe almacenar el identificador táctil y pasarlo a expresiones o condiciones que le den la posición del toque. Vea el ejemplo a continuación:
-
-
-
-!!! note
-
- **Vélo en acción!** 🎮
-
- Abra este ejemplo Online:
diff --git a/docs/es/gdevelop5/all-features/storage.md b/docs/es/gdevelop5/all-features/storage.md
deleted file mode 100644
index 228e722f461..00000000000
--- a/docs/es/gdevelop5/all-features/storage.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Almacenamiento
----
-# Almacenamiento
-
-Los juegos pueden almacenar datos, como el progreso del jugador. Vea [esta guía](/gdevelop5/tutorials/storage-action-explained) para explicaciones detalladas y ejemplos.
diff --git a/docs/es/gdevelop5/all-features/timers.md b/docs/es/gdevelop5/all-features/timers.md
deleted file mode 100644
index 5f535ef6963..00000000000
--- a/docs/es/gdevelop5/all-features/timers.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: Temporizadores (Timers)
----
-# Temporizadores (Timers)
-
-## Temporizadores de Escena (Scene Timers)
-
-Puede utilizar condiciones y acciones para iniciar los temporizadores de **escena**. Entonces puedes ejecutar acciones cuando un temporizador alcanza un cierto valor. Los temporizadores más útiles se ven cuando se usan en una condición para comparar el tiempo transcurrido en un temporizador y la acción para restablecer un temporizador a 0. Es importante recordar reiniciar siempre un temporizador antes de usarlo. Si el temporizador no existe, se creará automáticamente en la memoria.
-
-Puedes darle cualquier nombre a tus temporizadores. Los nombres de temporizadores son expresiones de texto / cadena, por lo que deben ingresarse entre comillas.
-
-Aquí hay un ejemplo de Timer más avanzado. El temporizador se utiliza para proteger brevemente al jugador de daños. La cantidad de tiempo otorgada para proteger al jugador depende del valor de la variable "` player_undestroyable_time` "
-
-
-
-!!! note
-
- **Véalo en acción!** 🎮
-
- Abra este ejemplo Online:
-
-## Temporizadores de objetos (Object timers)
-
-Además de los temporizadores de escena, puede usar los temporizadores en su objeto de juego y sus instancias. Esto significa que cada instancia del objeto tendrá su propio temporizador en la memoria. Será independiente de otras instancias de objeto. Esta función le permite iniciar acciones de instancias de objetos después de cada X número de segundos.
-
-Los temporizadores de objetos se configuran de la misma manera que los temporizadores de escenas. Tiene que inicializar un temporizador de instancia de objeto con la acción para Iniciar / restablecer un temporizador: 
-
-Tenga en cuenta que al igual que con los temporizadores de escenas, los nombres de los temporizadores de objetos son expresiones de cadena / texto. // ¡Deben ser escritos entre comillas! .// La acción anterior creará un temporizador llamado "` color` "en cada instancia del objeto Sprite e iniciará estos temporizadores.
-
-Ahora puedes comprobar los valores del temporizador: 
-
-La condición anterior verifica si el tiempo transcurrido en el temporizador "` color` "es mayor que una variable de objeto (puede usar una variable de objeto en una expresión para obtener su valor). La condición seleccionará cada instancia de Sprite con un valor de temporizador mayor que el tiempo "solicitado" con la variable de objeto "` color_time` ". Luego, el color del Sprite se cambia a uno aleatorio y el temporizador del objeto se restablece.
-
-Usar variables de objeto para verificar los temporizadores de objetos es útil. Por ejemplo, puedes tener varias instancias de enemigos disparando balas con diferentes velocidades de disparo. Se puede ver otro uso de los temporizadores de objetos cuando se usa con un enemigo que colisiona con un "aumento de velocidad de disparo". Puede configurar la variable "` fire_rate_time` "para que sea menor que el valor normal, lo que significa que el tiempo entre cada viñeta disminuirá.
-
-!!! note
-
- **Véalo en acción!** 🎮
-
- Abra este ejemplo Online:
-
-
-
-## Avanzado: simula temporizadores con variables
-
-Los temporizadores de escenas y objetos son convenientes. Sin embargo, a veces puede ser necesario simular temporizadores con variables. Las tareas complejas lo requieren. Esto le permite tener más control sobre los temporizadores. Usando variables, puede aumentar o disminuir el valor sumando o restando el tiempo de la variable. // Si quiere que todas las instancias de su objeto en una escena tengan su propio temporizador personalizado, use una variable junto con la expresión `TimeDelta` //.
-
-
-
-Este caso de uso aumentará la variable a una velocidad de 1000 unidades por segundo. Cuando se utilizan 1000 unidades por segundo, el "temporizador" se ejecuta en milisegundos.
-
-Por ejemplo, como se ve a continuación, puede comparar una variable (temporizador de daño) para configurar una acción después de 0,5 segundos. Entonces el "temporizador se puede reiniciar.
-
-
diff --git a/docs/es/gdevelop5/all-features/variables.md b/docs/es/gdevelop5/all-features/variables.md
deleted file mode 100644
index cbb4b17223c..00000000000
--- a/docs/es/gdevelop5/all-features/variables.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Variables (Variables)
----
-# Variables (Variables)
-
-Las variables le permiten almacenar datos, por ejemplo, un número o un texto (Cadena). Podríamos compararlos con cajones o cajas donde podemos archivar notas. Todos los datos se pueden almacenar, siempre que estén en formato de texto o número. Una variable puede contener el número de vidas restantes, un puntaje alto, el número de balas que quedan, el número de enemigos muertos, etc. Probablemente vayas a usar variables para almacenar números en tu juego.
-
-## ¿Dónde se almacenan las variables?
-
-El alcance de una variable determina dónde se puede acceder a una variable. En GDevelop, tres ámbitos variables están disponibles:
-
-* **Global** Las variables son accesibles desde todas las escenas del juego. Por ejemplo, se pueden usar para almacenar la puntuación del jugador en diferentes niveles. * **Scene** Las variables solo son accesibles desde una escena. Se pueden usar para datos que solo conciernen a una escena y no a todo el juego. Como ejemplo, el tiempo restante antes de una explosión. * **Object** Las variables solo conciernen a un objeto. En este caso, un héroe puede tener una variable "Salud" o "Munición" que almacena un número que controla la salud de un héroe o el número de balas disponibles para ese personaje.
-
-## Cómo declarar y usar variables
-
-Las variables globales, de escena y de objeto se pueden definir utilizando los editores de variables. Para las variables globales, [Project Manager](/fr/ gdevelop5/ interface/ project-manager) tiene un enlace a las variables globales. Para las variables de escena, [clic derecho en una escena](/gdevelop5/ interface/ scene-editor). Luego, haga clic en "propiedades". Para objetos, haga clic derecho en un objeto en la lista y elija "editar variables de objeto".
-
-Los editores de variables declaran variables junto con sus valores iniciales.
-
-Nota: que estos editores son totalmente opcionales. También puede comenzar directamente a utilizar acciones y condiciones para modificar y comparar variables. // Si ingresa el nombre de una variable que no existe en una acción o condición, se creará automáticamente en la memoria durante el juego.//
-
-Cualquier nombre puede ser usado para una variable. De forma predeterminada, las variables contienen el número inicial 0. Si utiliza una acción para cambiar el texto almacenado por la variable, la variable cambiará para contener el texto que ha definido.
-
-## Usar variables en expresiones.
-
-Se puede acceder a las variables desde condiciones, modificarse desde acciones y también se pueden leer en expresiones.
-
-En una expresión que calcula un número, usa:
-
-* `GlobalVariable (name)` para leer el valor de una variable global
-* `Variable (nombre)` para leer el valor de una variable de escena
-* `ObjectName.Variable (name)` para leer la variable del objeto llamado "ObjectName".
-
-En una expresión que devuelve un texto, use en su lugar:
-
-* `GlobalVariableString (name)` para leer el texto de una variable global
-* `VariableString (name)` para leer el texto de una variable de escena
-* `ObjectName.VariableString (name)` para leer la variable del objeto llamado "ObjectName".
-
-## Ver variables en el depurador.
-
-Al desarrollar un juego, pueden ocurrir errores porque el valor de una variable no es el esperado. Si algo en su juego no funciona y cree que el problema podría estar relacionado con una variable, use el depurador de GDevelop para averiguar qué está mal.
-
-Para obtener más información, consulte: [Game Debugger and Profiler](/gdevelop5/interface/debugger).
-
-## Variables de estructura
-
-FIXME Esta sección está en construcción. ¡Puedes escribirlo tú mismo creando una cuenta en el wiki!
diff --git a/docs/es/gdevelop5/behaviors/anchor.md b/docs/es/gdevelop5/behaviors/anchor.md
deleted file mode 100644
index cfe048c9afa..00000000000
--- a/docs/es/gdevelop5/behaviors/anchor.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Comportamiento del ancla (Anchor Behavior)
----
-# Comportamiento del ancla (Anchor Behavior)
-
-El comportamiento de anclaje permite que un objeto retenga su posición sin importar el tamaño de pantalla / relación de aspecto del juego, recortando sus bordes (Abajo, Izquierda, Derecha, Arriba). Esto es más útil para los objetos UI / HUD que son estáticos.
-
-Para agregar Ancla a un objeto, primero abra las propiedades del objeto creando un nuevo objeto o accediendo al objeto en la lista Objeto de escena. Seleccione "Editar objeto" de la lista emergente. Luego seleccione "Comportamientos" y haga clic en el botón Agregar comportamiento.
-
-
diff --git a/docs/es/gdevelop5/behaviors/destroyoutside.md b/docs/es/gdevelop5/behaviors/destroyoutside.md
deleted file mode 100644
index 01f465f70ac..00000000000
--- a/docs/es/gdevelop5/behaviors/destroyoutside.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: PLATAFORMA Y COMPORTAMIENTOS DE LOS PERSONAJES DE LA PLATAFORMA (Destroy outside screen behavior)
----
-# PLATAFORMA Y COMPORTAMIENTOS DE LOS PERSONAJES DE LA PLATAFORMA (Destroy outside screen behavior)
-
-**[¡Preferiría ver los ejemplos de comportamiento de la pantalla externa de Destroy! Por favor, llévame allí ahora.](#Examples)**
-
-Este es uno de los comportamientos más simples, pero útiles. Agréguelo a un objeto y luego, cada vez que una instancia de este objeto salga de los límites de la escena / pantalla del juego, esta instancia será destruida.
-
-Es una forma sencilla de garantizar que su juego no esté lleno de objetos de basura que podrían ralentizarlo.
-
-### Comportamiento de la plataforma (Add behavior to object)
-
-Para agregar un comportamiento a un objeto, primero abra las propiedades del objeto haciendo clic derecho en el objeto que se encuentra en la lista Objetos. Seleccione "Editar objeto" de la lista emergente. A continuación, seleccione la pestaña Comportamientos. Haga clic en el botón "agregar comportamiento".
-
-
-
-### Destruye cuando está fuera de la pantalla. (Destroy when outside of screen)
-
-
-
-Una vez que haya seleccionado el comportamiento de destrucción de la lista, eliminará el objeto cuando esté fuera de la pantalla. Este comportamiento no tiene opciones para cambiar y se aplica automáticamente a todas las instancias del objeto.
-
-# Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
-
- Abre los ejemplos Online.
-
-**Comportamiento fuera de la pantalla (Outside the Screen Behavior)**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://space-shooter)
-
-
-**Destruye balas fuera de pantalla / escena**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shoot-bullets){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://shoot-bullets)
-
-
-**Disparando balas Explicación**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation)
diff --git a/docs/es/gdevelop5/behaviors/draggable.md b/docs/es/gdevelop5/behaviors/draggable.md
deleted file mode 100644
index f09ff6da3ce..00000000000
--- a/docs/es/gdevelop5/behaviors/draggable.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: Comportamiento de objetos arrastrables (Draggable Object Behavior)
----
-# Comportamiento de objetos arrastrables (Draggable Object Behavior)
-
-!!! note
-
- **Vélo en acción!** 🎮
- [¡Prefiero ver los ejemplos de comportamiento de objetos arrastrables! Por favor, llévame allí ahora.](#Examples)
-
-El comportamiento del objeto que se puede arrastrar hará que el objeto se pueda arrastrar con el mouse o al tocar la pantalla táctil de un dispositivo.
-
-### Añadir comportamiento arrastrable a un objeto (Add draggable behavior to an object)
-
-Para agregar un comportamiento que se pueda arrastrar a un objeto, primero cree un objeto o abra las propiedades del objeto accediendo al objeto en la lista de Objetos de escena. Seleccione "Editar objeto" de la lista emergente. Luego seleccione "Comportamientos" y haga clic en el botón Agregar comportamiento. 
-
-
-
-### Objeto arrastrable (Draggable object)
-
-
-
-Al seleccionar el comportamiento del objeto arrastrable de la lista, podemos agregar la funcionalidad al objeto. Este comportamiento no tiene opciones para cambiar. Se aplica automáticamente al objeto.
-
-Usando "Eventos" en la pestaña Eventos de escena, podemos verificar si se está arrastrando un objeto.
-
-
-
-#Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
- Abra éstos ejemplos Online.
-
-**Encajar a la cuadricula (Snap to Grid)**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://snap-object-to-grid){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://snap-object-to-grid)
-
-
-**Disparar bala en patrón de parábola** (Una parábola es una curva plana que es simétrica a un espejo y tiene forma de U aproximadamente. Básicamente, un objeto que dispara hacia un objeto en una trayectoria curva..)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shoot-bullet-in-parabola){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://shoot-bullet-in-parabola)
-
-
-**Guardar y cargar (Save and Load)**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://save-load){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://save-load)
-
-
-**Fundamentos de la búsqueda del camino (Path Finding Basics)**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding-basics){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://pathfinding-basics)
diff --git a/docs/es/gdevelop5/behaviors/index.md b/docs/es/gdevelop5/behaviors/index.md
deleted file mode 100644
index f5b32a9e985..00000000000
--- a/docs/es/gdevelop5/behaviors/index.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: behaviors
----
-!!! note
-
- Esta traducción es anterior a la página original en inglés y puede estar obsoleta.
-
-# COMPORTAMIENTOS
-
-Los comportamientos agregan capacidades adicionales a los objetos. Todos los objetos pueden tener uno o más comportamientos adjuntos.
-
-### Añadir comportamiento a un objeto.
-
-Para agregar un comportamiento a un objeto, necesita abrir las propiedades del objeto. Hay dos maneras en que esto se puede lograr:
-
-1. Haga clic con el ratón en los tres puntos en el menú Objetos ubicado a la derecha de la escena. Seleccione "Editar objeto" de la lista emergente.
-
-
-
-2. Haga clic derecho en el objeto dentro de la escena. Seleccione "Editar objeto" de la lista emergente.
-
-Deberías ver las propiedades del objeto seleccionado. Ignorar la pestaña de propiedades por ahora. Seleccione la pestaña "Comportamientos" en la barra. 
-
-Aquí verá una lista de comportamientos agregados al objeto. Probablemente esté vacío ahora. Para agregar un comportamiento al objeto, haga clic en el botón Agregar comportamiento. 
-
-A continuación debería ver una lista de comportamientos disponibles. 
-
-Es posible que deba desplazarse hacia abajo para ver la lista completa de comportamientos. Finalmente, simplemente haga clic en un comportamiento para agregar ese comportamiento al objeto.
-
-### Aprende más
-
-Puede obtener más información sobre cada comportamiento haciendo clic en los siguientes enlaces:
-
-- [Comportamiento fisico](/gdevelop5/behaviors/physics)
-- [Pathfinding](/gdevelop5/behaviors/pathfinding)
-- [Destruir la pantalla exterior](/gdevelop5/behaviors/destroyoutside)
-- [Objetos de plataforma y plataformas.](/gdevelop5/behaviors/platformer)
-- [Objeto arrastrable](/gdevelop5/behaviors/draggable)
-- [Movimiento de arriba hacia abajo.](/gdevelop5/behaviors/topdown)
diff --git a/docs/es/gdevelop5/behaviors/pathfinding.md b/docs/es/gdevelop5/behaviors/pathfinding.md
deleted file mode 100644
index f17b63fa8b2..00000000000
--- a/docs/es/gdevelop5/behaviors/pathfinding.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: de rutas
----
-#Búsqueda de rutas
-
-**[¡Prefiero ver los ejemplos de comportamiento de Pathfinding! Por favor, llévame allí ahora.](#Examples)**
-
-El comportamiento de búsqueda de rutas nos permite mover objetos a un destino seleccionado, así como marcar elementos como obstáculos. Los objetos que están marcados como obstáculos serán evitados por los objetos en movimiento.
-
-## Añadir comportamiento al objeto Para agregar comportamiento a un objeto, como de costumbre, cree el objeto. Luego, abra las propiedades del objeto haciendo clic derecho en la lista de Objetos ubicada a la derecha de la Interfaz de Escena. Seleccione "Editar objeto" de la lista emergente.
-
-
-
-Ahora, seleccione la pestaña de comportamiento y haga clic en el botón "agregar comportamiento".
-
-
-
-A continuación, tenemos dos opciones para elegir:
-
-## Opción 1: comportamiento pathfinding 
-
-El "comportamiento de búsqueda de rutas" nos permite mover el objeto a un destino y evitar todos los objetos marcados como un obstáculo.
-
-Después de agregar el comportamiento al objeto, podemos personalizar una serie de opciones. 
-
-- **aceleración:** esta es la velocidad con la que nuestro objeto acelerará mientras se mueve en un camino.
-- **permitir diagonales:** compruebe si el objeto puede moverse en diagonales o no.
-- **ángulo de desplazamiento:** en caso de que nuestro sprite esté orientado en la dirección incorrecta, podemos establecer el ángulo de desplazamiento
-- **tamaño de borde adicional:** stablece el tamaño de borde alrededor del objeto. Esta configuración determina qué tan cerca se puede mover el objeto a los obstáculos.
-- **Velocidad máxima:** velocidad máxima que el objeto puede mover en el camino.
-- **rotar objeto:** si no desea que el objeto gire mientras se mueve en la ruta, desactive la rotación del objeto.
-- **velocidad de rotación:** establece la velocidad de rotación del objeto.
-- **Alto y ancho de celda virtual:** nuestra ruta se genera mediante una cuadrícula virtual. Aquí podemos cambiar el tamaño de las celdas, cuanto más pequeño sea el tamaño de la celda, más suave será el movimiento. *Un tamaño de celda más pequeño implica más cálculos, así que trate de mantener un tamaño lo más grande posible.*
-
-## Opción 2: comportamiento de obstáculo en el pathfinding (Pathfinding Obstacle behavior) 
-
-Al utilizar el "comportamiento del obstáculo de búsqueda de caminos", podemos marcar un objeto para que sea un obstáculo. Después de agregar el comportamiento al objeto, tenemos dos opciones para personalizar: 
-
-- **Impasable (impassable):** si habilitamos esto, el obstáculo será intransitable. El objeto en movimiento lo va a evitar a toda costa.
-- **Costo (cost):** si el obstáculo no es infranqueable, podemos establecer un costo para el obstáculo. El objeto en movimiento, cuando busque el mejor camino posible hacia un destino, preferirá evitar el obstáculo con valores de alto costo. Por ejemplo, un río puede tener algún costo. El objeto en movimiento, si es posible, lo evitará. Sin embargo, si no hay otra manera alrededor del río, o si el río tiene un costo más bajo en comparación con otra área, el objeto en movimiento lo atravesará (en lugar de escalar una montaña con un costo más alto, por ejemplo). Y si ponemos cocodrilos en el río y aumentamos su costo, el objeto en movimiento podría decidir escalar las montañas.
-
-## Ejemplo
-
-!!! note
-
- **Véalo en acción!** 🎮
-
- Abre estos ejemplos Online.
-
-**Comportamiento general del pathfinding (General Path Finding Behavior)**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://pathfinding)
-
-
-**Conceptos básicos de la ruta de acceso (Path Finding Basics)**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding-basics){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://pathfinding-basics)
diff --git a/docs/es/gdevelop5/behaviors/physics.md b/docs/es/gdevelop5/behaviors/physics.md
deleted file mode 100644
index 22b91d7718f..00000000000
--- a/docs/es/gdevelop5/behaviors/physics.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: Comportamiento de la Física (Physics behavior)
----
-# Comportamiento de la Física (Physics behavior)
-
-**[¡Prefiero ver los ejemplos de comportamiento de física! Por favor, llévame allí ahora.](#Examples)**
-
-El comportamiento de "Física" permite que los objetos se comporten de acuerdo con las leyes de la física. El comportamiento de la física aplica la física del mundo real a los objetos de tu juego. Los objetos del juego pueden moverse, caer, rodar, rebotar y chocar.
-
-## Añadir comportamiento al objeto (Add behavior to object) Para agregar un comportamiento físico a un objeto, abra las propiedades del objeto haciendo clic derecho en el objeto creado en el Editor de objetos. Luego, seleccione "Editar objeto" de la lista emergente que aparece. Finalmente, seleccione la pestaña Comportamientos y haga clic en el botón "agregar comportamiento".
-
-Elige el "motor de física": 
-
-## Propiedades (Properties) Una vez que se agrega el comportamiento al objeto, hay una serie de opciones para personalizar: 
-
-**Considerar como una bala (Consider as Bullet)**
-
-Marque esta casilla si desea que el motor de física intente realizar un manejo de colisión perfecto en este objeto. Esto se usa mejor para objetos que se mueven rápidamente, es decir, balas, de ahí el nombre. "Considerar como bala" requiere muchos recursos. *Úsalo en la menor cantidad de objetos posible.*
-
-**Objeto dinámico (Dynamic Object)**
-
-Un "Objeto dinámico" se efectuará mediante la simulación del motor de física. La gravedad, las fuerzas y todas las propiedades enumeradas forman parte del motor de física. Si piensa en una bola rodante en un juego de pinball, establecería esto como dinámico debido a su movimiento de rodar.
-
-Si no elige "Objeto dinámico", creará un objeto estático o cinemático. Estos objetos no son afectados por el motor de física. Ellos no se moverán por su cuenta. Pueden ser movidos por tus eventos y acciones (cinemática). De lo contrario, simplemente se quedarán donde están (estático). En un juego de pinball puede usar esto para las aletas (cinemáticas) y las paredes y los parachoques (estático).
-
-**Rotación fija (Fixed Rotation)**
-
-Esta configuración evita que el objeto gire. Ignora el valor de amortiguación angular. La amortiguación angular controla la velocidad de rotación del objeto.
-
-**Mojadura (Damping)**
-
-La amortiguación se utiliza para reducir la velocidad de los objetos. La amortiguación es diferente de la fricción. La fricción solo se produce con el contacto. La amortiguación no es un reemplazo para la fricción. Los dos efectos se deben utilizar juntos. Los parámetros de amortiguación deben estar entre 0 e infinito, con 0 significa que no hay amortiguación y infinito significa que la amortiguación es total. Normalmente usarás un valor de amortiguamiento entre 0 y 0.1.
-
-**Fricción (Friction)**
-
-La fricción se utiliza para hacer que los objetos se deslicen entre sí de manera realista. El parámetro de fricción generalmente se establece entre 0 y 1, pero puede ser cualquier valor no negativo. Un valor de fricción de 0 desactiva la fricción y un valor de 1 hace que la fricción sea fuerte.
-
-**Masa (Mass)**
-
-La masa (peso) que asignes a un objeto afectará en gran medida la física de tu juego. Comience con todos los objetos establecidos en 1 y luego ajuste el valor como mejor le parezca.
-
-**Restitución (Restitution)**
-
-La restitución se utiliza para hacer rebotar objetos. El valor de restitución generalmente se establece entre 0 y 1. Considere dejar caer una pelota en una mesa. Un valor de cero significa que la pelota no rebotará. Esto se llama una colisión inelástica. Un valor de uno significa que la velocidad de la pelota se reflejará exactamente. Esto se llama una colisión perfectamente elástica.
-
-#Ejemplos
-
-!!! note
-
- **See it in action!** 🎮
-
- Open these examples online.
-
-**Física (Physics):**
-
-[](https://editor.gdevelop.io/?project=example://physics)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://physics){ .md-button .md-button--primary }
-
-**Física de Carro (Car Physics)**
-
-[](https://editor.gdevelop.io/?project=example://car-physics)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://car-physics){ .md-button .md-button--primary }
-
-**Objeto de Gravedad (Object Gravity)**
-
-[](https://editor.gdevelop.io/?project=example://object-gravity)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://object-gravity){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/behaviors/platformer.md b/docs/es/gdevelop5/behaviors/platformer.md
deleted file mode 100644
index e075dbdf73d..00000000000
--- a/docs/es/gdevelop5/behaviors/platformer.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: Comportamientos de Plataforma y de Personaje de plataforma
----
-# Comportamientos de Plataforma y de Personaje de plataforma
-
-!!! note
-
- **Véalos en acción!** 🎮
- [¡Prefiero ver los ejemplos de comportamiento de plataforma y de personajes de plataforma! Por favor, llévame allí ahora.](#Examples)
-
-¡Con el simple clic de un botón, puedes configurar el comportamiento de "Plataforma" de tu juego, así como el control de un personaje de plataforma!
-
-## Comportamiento de la plataforma (Platform behavior)
-
- Como de costumbre, crea un nuevo objeto. Selecciona el objeto de la lista "Objetos" de la escena haciendo clic en la opción "Hacer clic para agregar un objeto". De la lista que aparece, selecciona "Editar objeto". Selecciona el comportamiento "Plataforma" de la lista que se muestra. Ahora puedes convertir tu objeto en una plataforma. Una vez que tu objeto se define como "Plataforma", tu objeto "Personaje de plataforma" puede caminar sobre él.
-
-Después de seleccionar la opción "Plataforma", verás la lista de opciones de comportamiento de plataforma:
-
-
-
-### Tipo de plataforma
-
-Al hacer clic en el comportamiento de la plataforma, puede elegir entre 3 tipos de plataformas diferentes.
-
-
-
-* **Plataforma (Platform):** ésta es la opción por defecto. El comportamiento predeterminado establece el objeto como una plataforma tradicional. El personaje puede chocar con la plataforma y/o caminar sobre ella. * **Plataforma (Jumpthru):** al elegir esta opción, el personaje puede chocar con la plataforma y caminar sobre ella, pero el personaje también puede saltar a través de la plataforma desde abajo. * **Escalera (Ladder):** como su nombre indica, esta opción convierte nuestro objeto en una escalera. El objeto de personaje no puede chocar con el objeto de escalera. No puede caminar sobre el objeto de escalera, pero cuando el objeto de personaje se superpone al objeto de escalera, el personaje puede subir y bajar.
-
-### Agarrar la repisa (Grab the ledge)
-
-El borde de nuestra plataforma se puede agarrar por defecto. "Agarrar el borde" significa que cuando el objeto de personaje salta lo suficientemente cerca del borde de la plataforma, se puede agarrar al borde. Si no necesitas esta funcionalidad, asegúrate de que esta opción esté desmarcada/deseleccionada. Si lo necesitas, asegúrate de que la casilla esté marcada/seleccionada. 
-
-El desplazamiento del agarre también se puede cambiar en el eje Y. 
-
-La opción de desplazamiento nos permite cambiar la posición de la captura para ajustar la animación de nuestro personaje.
-
-## Comportamiento del personaje de plataformas (Platformer character behavior)
-
-
-
-Al seleccionar "Personaje de plataforma" de la lista, podemos convertir nuestro objeto en un "personaje de plataforma". Después de seleccionar la opción "Personaje de plataforma", se te presentarán las propiedades/parámetros de personaje de platforma. 
-
-Es posible que debas desplazarte para ver todas las opciones.
-
-### Controles (controls)
-
-El comportamiento de los personajes de Platformer viene con las teclas predeterminadas establecidas para controlar el personaje. Estas teclas son las teclas de flecha y la tecla de cambio. Si no desea utilizar los controles predeterminados, debe desactivar los controles predeterminados desmarcando o desmarcando la casilla "Controles predeterminados" debajo de las opciones "Carácter de plataforma". 
-
-### Agarrarse al borde (Grab the ledge)
-
-Al igual que con el comportamiento de plataforma, tenemos la opción "Agarrarse al borde" para el "personaje de plataforma". Esta opción permite que el objeto de personaje se sujete al borde de las plataformas. La opción está deshabilitada por defecto. Para habilitarlo, marca/selecciona la casilla en la lista de opciones. 
-
-Si decides habilitar esta opción, el personaje puede agarrarse al borde de todas las plataformas que también tienen esta opción habilitada.
-
-Nuevamente, al igual que con el "Comportamiento de plataforma", podemos establecer el desplazamiento de agarre en el eje Y para el personaje. A diferencia del comportamiento de plataforma, también podemos establecer la tolerancia de agarre en el eje X. 
-
-Al cambiar el valor de tolerancia de agarre, podemos establecer cuán cerca debe estar el personaje de la plataforma para permitir que el personaje se agarre al objeto de plataforma.
-
-### Pendiente ángulo máximo (Slope max angle)
-
- Al cambiar este valor, podemos establecer el ángulo máximo de una pendiente que el jugador puede escalar. El valor predeterminado es 0. Cero significa que el personaje solo puede moverse sobre una superficie plana.
-
-### Velocidad y Gravedad (Speed and Gravity)
-
-
-
-Al cambiar los valores correspondientes en las opciones de "Velocidad y Gravedad", podemos cambiar la rapidez con la que nuestro personaje acelera, desacelera, se mueve, cae y salta. Creo que estas opciones se explican por sí mismas, así que no creo que requieran mucha explicación. Si deseas ralentizar el objeto de personaje, puedes disminuir estos valores. Si deseas acelerar el objeto de personaje, puedes aumentar estos valores.
-
-Todas las opciones de aquí también se pueden cambiar usando eventos en cualquier momento durante el juego.
-
-# Ejemplos
-
-!!! note
-
- **Véalo en acción** 🎮
- Abre los ejemplos Online.
-
-**Comportamiento de plataformas (Platformer Behavior)**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://platformer)
-
-
-**Comportamiento de desplazamiento de paralaje (Parallax Scrolling Behavior)**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://parallax-scrolling){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://parallax-scrolling)
diff --git a/docs/es/gdevelop5/behaviors/topdown.md b/docs/es/gdevelop5/behaviors/topdown.md
deleted file mode 100644
index 126619166c1..00000000000
--- a/docs/es/gdevelop5/behaviors/topdown.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: Comportamiento de movimiento de arriba hacia abajo (Top Down Movement behavior)
----
-## Comportamiento de movimiento de arriba hacia abajo (Top Down Movement behavior)
-
-!!! note
-
- **Vélo en acción!** 🎮
- [¡Prefiero ver los ejemplos de comportamiento del movimiento de arriba hacia abajo! Por favor, llévame allí ahora.](#Examples)
-
- El comportamiento "Movimiento de arriba abajo" permite la funcionalidad adicional de mover un objeto en 4 u 8 direcciones.
-
-### Añadir comportamiento al objeto (Add behavior to object)
-
-Para agregar el comportamiento de arriba abajo a un objeto, primero abra las propiedades del objeto accediendo al objeto en el menú de objetos o haciendo clic derecho sobre el objeto en una escena. Seleccione "Editar objeto" de la lista emergente. Luego seleccione "Comportamientos" y haga clic en el botón Agregar comportamiento.
-
-### Comportamiento de movimiento de arriba hacia abajo (Top Down Movement behavior)
-
-Al seleccionar el comportamiento del movimiento de arriba hacia abajo de la lista, agregamos la funcionalidad a nuestro objeto. 
-
-Después de seleccionar el comportamiento, deberíamos ver inmediatamente las opciones disponibles: 
-
-### Cambia la velocidad de movimiento y rotación. (Change the speed of movement and rotation)
-
-Al cambiar el valor de Aceleración, Desaceleración y Velocidad máxima, podemos cambiar la velocidad con la que nuestro objeto se moverá. Al cambiar el valor de la velocidad de rotación, podemos cambiar la velocidad con la que nuestro objeto va a girar o si va a girar en absoluto. Explicaré más sobre la rotación a continuación.
-
-### Cambio de ángulo de desplazamiento (Change angle offset)
-
-Por defecto, el ángulo de orientación de nuestro sprite es 0, que es el lado derecho de nuestro sprite, pero podemos cambiar la forma en que se enfrenta nuestro objeto cambiando el valor del desplazamiento del ángulo. Aquí hay una imagen para ayudarte a entender las coordenadas en GDevelop:
-
-
-
-### Permite diagonales. (Allows diagonals)
-
- Esta opción está activada de forma predeterminada. Permitimos que nuestro objeto se mueva diagonalmente en 8 direcciones. Al deshabilitar esta opción, no permitimos el movimiento diagonal. Cuando está deshabilitado, solo podemos movernos en 4 direcciones: izquierda, derecha, arriba y abajo. El movimiento diagonal ya no está permitido.
-
-### Controles predeterminados (Default controls)
-
- El comportamiento del movimiento de arriba hacia abajo viene con los controles predeterminados habilitados. Los controles predeterminados son las cuatro teclas de flecha del teclado. Si nos gustaría usar controles personalizados para mover el objeto, necesitamos deshabilitar esta opción desmarcando la casilla y luego necesitamos usar los eventos de movimiento de arriba hacia abajo para mover el Objeto. 
-
-### Girar objeto (Rotate object)
-
-
-
-Por defecto, nuestro objeto girará hacia la dirección del movimiento. El objeto girará a la velocidad que especificamos en la opción Velocidad de rotación. Si no queremos que el objeto rote, necesitamos deshabilitarlo desactivando la casilla.
-
-También podemos cambiar cualquiera de estas opciones utilizando los eventos que se encuentran en la sección de "Eventos" de GDevelop en cualquier momento durante el juego.
-
-
-
-# Ejemplos
-
-!!! note
-
- **SVéalo en acción!** 🎮
- Abre estos ejemplos en línea.
-
-**Space Shooter**
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://space-shooter)
-
-
-**Juego Isométrico (Isometric Game)** (crea una ilusión de gráficos 3D dentro de un juego de gráficos 2D)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://isometric-game){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://isometric-game)
diff --git a/docs/es/gdevelop5/documentation.md b/docs/es/gdevelop5/documentation.md
deleted file mode 100644
index 2c8ba6287a5..00000000000
--- a/docs/es/gdevelop5/documentation.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: DOCUMENTACIÓN
----
-# DOCUMENTACIÓN
-
-Bienvenidos al manual de orientación de uso del software creador de videojuegos en 2D llamado GDevelop.
-
-Encontrarás diversos temas como lo son:
-
-- Manejo de Interfaces
-- Manejo de objetos
-- Comportamientos
-- Eventos
-- Publicación de Juegos
-
-Por mencionar algunos.
-
-!!! note
-
- "Recuerden ser ingeniosos en su creación de videojuegos".
diff --git a/docs/es/gdevelop5/events/draft-optimization.md b/docs/es/gdevelop5/events/draft-optimization.md
deleted file mode 100644
index e65e4abf7fa..00000000000
--- a/docs/es/gdevelop5/events/draft-optimization.md
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: draft-optimization
----
-!!! note
-
- Esta página es un borrador de buenas prácticas a aplicar para optimizar los juegos de GDevelop. \Este borrador es un WIP de @Bouh
-
-!!! note
-
- Podría fusionarse con
-
-La optimización de juegos es un concepto importante del desarrollo de juegos. Una buena optimización permitirá que el juego funcione más rápido, haciéndolo más fluido.
-
-GDevelop 5 te da total libertad en los eventos. Si bien esto puede ser increíble, también puede ser muy costoso si no tiene el reflejo de escribir eventos optimizados, ya que el procesador podría sobrecargarse al ejecutar el juego. Esto causaría lag en el juego.
-
-Es importante [comprender qué son los eventos](/gdevelop5/tutorials/basic-game-making-concepts) y que todos los eventos se *llaman una vez en cada fotograma* y *en el orden en que se escribieron*.
-
-!!! note
-
- Por ejemplo: Con un juego a 60 cuadros por segundo (FPS), si tiene un solo evento, sin condición, y solo una acción, entonces esta acción debe ejecutarse 60 veces en un segundo.
-
-# La optimización ya está en el motor.
-
-GDevelop ha incorporado optimizaciones, como la *eliminación*, el proceso de ocultar automáticamente objetos fuera de la pantalla. De esa manera se renderiza menos y el renderizado se vuelve más rápido.
-
-Esto no afecta a la persona que crea el juego porque se maneja en segundo plano. Es totalmente transparente para todos. Por ejemplo, cuando un sprite está fuera de la pantalla, todas las animaciones se pausan.
-
-!!! note
-
- Todavía es importante ocultar o deshabilitar lo que no necesita. Esta es la clave de la optimización.
-
-# Optimizaciones que puedes realizar.
-
-## Ejecutar una vez
-
-La condición **Ejecutar una vez** hace que las condiciones que la preceden en el mismo evento se activen solo una vez cada vez que se cumplen.
-
-Por ejemplo, si desea crear un objeto cada vez que se hace un clic, esto es lo que *no* debes hacer:
-
-
-
-- Lo que se espera que suceda: Cuando se presiona el botón izquierdo del ratón, se crea un objeto llamado **MiObjeto**.
-- Lo que realmente sucede: Mientras se presiona el botón izquierdo del ratón, se crean instancias de **MiObjeto**.
-
-Esto es problemático porque cuando se presiona el botón del mouse, es probable que se mantenga presionado durante más de un solo cuadro, como 0,3 segundos. Durante este período de tiempo, el evento se llama varias veces y el objeto se crea más de una vez.
-
-Para arreglar eso, podemos usar la condición **Ejecutar una vez**: 
-
-Ahora, la condición se ejecutará solo una vez mientras sea verdadera. Eso significa que el evento se ejecutará solo una vez cada vez que su condición pase de incumplida a cumplida. Resuelve el problema anterior ya que la condición activará solo el primer cuadro del clic y esperará a que finalice el clic antes de permitir que el evento de clic se active nuevamente.
-
-## Desactivar comportamientos no utilizados
-
-Los comportamientos toman rendimiento, especialmente los comportamientos *Pathfinding* y *Physic Engine 2.0*. Recuerde desactivarlos cuando no sean necesarios.
-
-Tomemos como ejemplo la siguiente situación: Quiero que 100 enemigos se muevan a una posición cercana a ellos cada 2 segundos, y tener en cuenta los obstáculos de la pared.
-
-Esta sería una forma intuitiva pero incorrecta de hacerlo:  Si hace esto, todos los objetos se moverán, incluidos los que están fuera de la pantalla.
-
-!!! note
-
- ¿Por qué calcular el movimiento que el jugador no verá?
-
-En su lugar, puede limitar el movimiento a los objetos visibles. Esto se puede hacer de la siguiente manera: deshabilite el comportamiento Pathfinding de los objetos que no están visibles en la ventana gráfica, y también actívelo cuando estén visibles en la ventana gráfica.
-
-!!! note
-
- No olvides ejecutar una vez para asegurarte de que el comportamiento se deshabilite o habilite solo cuando su estado cambie de no visible a visible o al revés.
-
-## Eliminar objetos no utilizados
-
-Tomemos como ejemplo la siguiente situación: Tengo un arma y creo una instancia de objeto de bala cuando presiono la tecla para disparar. Esta bala tiene una fuerza hacia una dirección. Si el jugador dispara muchas balas, su cantidad aumentará en la escena y cada una requiere cálculos de la fuerza que se les aplica en el bucle de eventos. Si no elimina los objetos de viñetas antiguos, se sumarán y tomarán más y más rendimiento, lo que provocará un retraso después de jugar durante algún tiempo. La mejor solución es eliminar las viñetas que están fuera de la pantalla.
-
-El comportamiento **"Destruir cuando está fuera de la pantalla"** hace exactamente eso. Adjúntelo a un objeto y se eliminarán todas las viñetas que salgan de la pantalla.
-
-!!! note
-
- TODO
-
-- Cuanto más pequeñas sean las dimensiones de las imágenes, menor será el tiempo de renderizado.
-- Es posible que las imágenes de más de 2000 px no funcionen bien, especialmente en dispositivos móviles donde es posible que no se carguen.
-- Reduzca la cantidad de fotogramas en las animaciones de sprites tanto como sea posible, elimine los fotogramas demasiado similares al anterior y al siguiente.
-- Para optimizar el código para lograr una métrica de rendimiento deseada, use el generador de perfiles en GD5 para ver dónde se gasta el rendimiento.
-- Reduzca el número de condiciones ya que la selección de objetos es un proceso pesado.
-- La carga de un juego puede llevar un tiempo cuando los recursos son demasiado grandes, 2Gb de un archivo de video o sonido, ralentizarán el tiempo de carga.
-- Considere comprimir videos, sonidos e imágenes, esto reducirá el tiempo de carga.
-- Todos los recursos del proyecto se agrupan en los juegos exportados si el recurso existe en la pestaña Recursos (Gestor de proyectos\>Configuración del juego), recuerda eliminar todos los recursos no utilizados.
diff --git a/docs/es/gdevelop5/events/foreach.md b/docs/es/gdevelop5/events/foreach.md
deleted file mode 100644
index 69d30d86488..00000000000
--- a/docs/es/gdevelop5/events/foreach.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: Para cada evento (For Each events)
----
-# Para cada evento (For Each events)
-
-A For Each event es un tipo de [event](/gdevelop5/ events) que tomará un objeto como parámetro. Luego, durante el juego, para cada instancia del objeto, se repetirán las condiciones y las acciones.
-
-Por lo general, no es necesario utilizar eventos "para cada uno". Las condiciones y acciones se ejecutarán automáticamente en todos los objetos. Se definen por sus condiciones. Sin embargo, de vez en cuando, los eventos "para cada" pueden ser útiles para ejecutar una acción que depende de cada instancia del objeto.
-
-## Ejemplo
-
-!!! note
-
- **Véalo en acción!** 🎮
-
- Abra estos ejemplos Online.
-
-[](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://platformer)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary }
-
-## Cuando usarlo (When to use it)
-
-Considere el siguiente ejemplo. Cuando el jugador se encuentra en una colisión con un objeto llamado "KillAllEnemyBonus", establecemos la variable de "vida" de todos los enemigos en 0. También queremos crear un tipo especial de explosión en la posición de cada enemigo. Necesitamos un evento "para cada" para lograr esto. De lo contrario, se crearía una sola explosión en la posición de solo el primer enemigo: 
diff --git a/docs/es/gdevelop5/events/functions/extract-events.md b/docs/es/gdevelop5/events/functions/extract-events.md
deleted file mode 100644
index 2c0ee204c1f..00000000000
--- a/docs/es/gdevelop5/events/functions/extract-events.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: Extraer eventos a una función
----
-# Extraer eventos a una función
-
-Cuando haga clic derecho en un evento seleccionado (o después de seleccionar más de un evento), puede elegir el elemento del menú "*Extraer eventos a una función*".
-
-
-
-GDevelop analiza los eventos y subeventos seleccionados, los extraerá en una función y mostrará una ventana para permitirle personalizar esta [función](/gdevelop5/events/functions). Una vez que haya completado los campos, haga clic en Crear para que se cree la función y se reemplacen los eventos seleccionados por una llamada a la [función](/gdevelop5/events/functions).
-
-## Configuración de la extensión y el nombre de la función
-
-El primer campo le pide la extensión donde se debe almacenar la función. Recuerda que las funciones se agrupan en extensiones. Si pretende crear múltiples funciones relacionadas con una misma función (por ejemplo, funciones para tratar con el inventario, un sistema de batalla o para ayudarlo a manejar a los enemigos en su juego), es mejor agruparlos en una misma extensión con un nombre relacionado con la característica.
-
-Esto permitirá entonces compartir la extensión y reutilizarla en otros juegos con poco o ningún cambio.
-
-Puede seleccionar una extensión existente o ingresar el nombre de una nueva, que se creará para usted.
-
-Introduzca entonces el nombre de la función. Al igual que el nombre de una extensión, el nombre de una función está limitado a caracteres alfanuméricos (0-9, a-Z) y guiones bajos. No se permiten espacios.
-
-
-
-## Configuración del resto de la función y parámetros.
-
-El resto de la ventana contiene los mismos widgets para configurar su función como los que se muestran cuando está editando una función. En particular, puede ingresar el nombre que se muestra al usuario y la descripción.
-
-Un campo importante es la oración que se muestra en la hoja de eventos. Puede usar _PARAMx_, donde x es un número (por ejemplo: _PARAM1_) para referirse a un parámetro. Generalmente, usted quiere ingresar todos los parámetros en esta oración:
-
-
-
-Finalmente puede introducir la descripción de los parámetros.
-
-!!! note
-
- Los parámetros se extraen automáticamente de los eventos por GDevelop. GDevelop comprenderá qué objetos, grupos y comportamientos está utilizando, así como los tipos de objetos.
-
-
-
-Al final, haga clic en Crear en la parte inferior derecha del cuadro de diálogo. ¡La función se creará y los eventos se reemplazarán por una acción que utiliza esta función!
-
-
diff --git a/docs/es/gdevelop5/events/group.md b/docs/es/gdevelop5/events/group.md
deleted file mode 100644
index 6d5886d7dee..00000000000
--- a/docs/es/gdevelop5/events/group.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Grupo de eventos (Group of events)
----
-# Grupo de eventos (Group of events)
-
-Los grupos son eventos que no hacen nada en particular. Se utilizan para organizar y estructurar sus eventos en grupos.
-
-Puedes agregar un grupo desde dentro del Panel de Eventos. Seleccione el icono "Elegir y agregar un evento" en la parte superior derecha. 
-
-Aparecerá un menú desplegable. Seleccione "Grupo" en el menú.
-
-
-
-Luego, como se ilustra a continuación, nombre a su grupo describiendo lo que contiene ("Gestión de jugadores", "Creación de mapas", "Enemigo verde", "Enemigo azul", "Enemigo negro", etc.).
-
-Además, en el editor de eventos, puede hacer clic en la flecha pequeña ubicada a la izquierda del evento de grupo para ocultar los eventos secundarios. Haga clic nuevamente en esta flecha para desplegar el grupo y mostrar lo que contiene.
-
-
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
-
- Abra estos ejemplos Online.
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://space-shooter)
diff --git a/docs/es/gdevelop5/events/index.md b/docs/es/gdevelop5/events/index.md
deleted file mode 100644
index 70b74119289..00000000000
--- a/docs/es/gdevelop5/events/index.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: Eventos  Los eventos en GDevelop te permiten programar visualmente tu juego sin ningún conocimiento o experiencia previa en programación, por lo que cualquier persona con cualquier fondo podrá crear el juego real y permitir que los jugadores interactúen con el juego.
----
-# Eventos  Los eventos en GDevelop te permiten programar visualmente tu juego sin ningún conocimiento o experiencia previa en programación, por lo que cualquier persona con cualquier fondo podrá crear el juego real y permitir que los jugadores interactúen con el juego.
-
-### Tipos de eventos (Event types)
-
-Hay diferentes tipos de eventos en GDevelop que pueden usarse para diferentes propósitos:
-
-- [Standard event](/gdevelop5/events/standard): este evento es el predeterminado y se activa en cada fotograma. Ejecuta las acciones una vez que las condiciones son verdaderas, luego pasa al siguiente evento.
-- [For Each event](/gdevelop5/events/foreach): este evento se activa para todas y cada una de las instancias del objeto seleccionado, verifica las condiciones y luego ejecuta las acciones para cada uno individualmente antes de pasar al siguiente evento.
-- [Repeat event](/gdevelop5/events/repeat): este evento se repite la cantidad de veces especificada antes de pasar al siguiente evento.
-- [While event](/gdevelop5/events/while): este evento se repite continuamente mientras se cumplen las condiciones especificadas y pasa al siguiente evento solo después de que las condiciones de este evento ya no sean ciertas.
-- [Link](/gdevelop5/events/link): Este evento le permite llamar al evento externo especificado. Los eventos externos son eventos que no están vinculados a una escena específica. Puede llamarlos y ejecutarlos desde una o más escenas usando eventos de enlace.
-- [Group](/gdevelop5/events/group): Un grupo contiene uno o más eventos. Es una forma fácil de organizar tus eventos en secciones. Puede contraer el contenido del grupo para ocultar los eventos en los que no está interesado cuando trabaja.
-- [Javascript event](/gdevelop5/events/js-code): este evento le permite utilizar el código de Javascript junto con otros eventos
-
-Los eventos pueden tener subeventos (a excepción de los enlaces, los comentarios y el código Javacript). Los subeventos solo se activan después de que se hayan ejecutado las acciones del evento principal. Si las condiciones del evento principal son falsas, entonces no se ejecuta ningún evento secundario.
-
-Finalmente, los usuarios avanzados pueden crear sus propias acciones y condiciones usando [funciónes](/gdevelop5/events/functions). Es una forma de hacer que sus eventos sean aún más modulares y adaptados a su juego.
-
-### Agregar eventos (Add events)
-
-Para agregar eventos a nuestro juego, primero necesitamos cambiar al editor de eventos. Podemos hacerlo usando la pestaña del evento al lado de nuestra pestaña de escena. 
-
-Después de eso, podemos encontrar las herramientas en la parte superior para agregar eventos.  Como el tipo de evento más utilizado es el estándar y los subeventos, tenemos un botón rápido para usar en la parte superior. Para agregar un evento estándar podemos usar el botón agregar evento Para agregar eventos secundarios, primero debemos seleccionar un evento en el editor y luego hacer clic en el botón Agregar evento secundario  Puede encontrar todas las opciones disponibles haciendo clic en el icono más 
-
-### Añadir condiciones y acciones (Add conditions and Actions)
-
-Después de agregar un evento, vamos a encontrar un evento en blanco en nuestro editor. 
-
-Podemos agregar cualquier número de condiciones y acciones a cada evento. Para agregar condiciones y acciones debemos hacer clic en agregar condición y agregar acción dentro del evento, luego podemos elegir entre muchas opciones ordenadas en diferentes categorías.
-
-Para aprender más sobre cómo usar las diferentes condiciones y acciones, recomiendo leer los tutoriales y guías disponibles en la wiki: [](/gdevelop5/tutorials)
diff --git a/docs/es/gdevelop5/events/js-code.md b/docs/es/gdevelop5/events/js-code.md
deleted file mode 100644
index 7ea786a2c34..00000000000
--- a/docs/es/gdevelop5/events/js-code.md
+++ /dev/null
@@ -1,151 +0,0 @@
----
-title: Eventos de Código Java Script (JavaScript Code events)
----
-# Eventos de Código Java Script (JavaScript Code events)
-
-¡Este evento te permite agregar código JavaScript personalizado en tu juego!
-
-Solo debe ser utilizado por usuarios avanzados que estén familiarizados con la programación de JavaScript.
-
-Cuando se agrega, haga clic en el código para editarlo. El código se ejecutará cada vez que GDevelop alcance el evento.
-
-Tenga en cuenta que en el código, tiene acceso a una variable llamada _runtimeScene_. La variable, "runtimeScene", representa la escena que se está reproduciendo. A continuación se muestra un ejemplo de un evento GDevelop estándar y un evento equivalente que utiliza un JavaScript: 
-
-Si hace clic en "Haga clic aquí para elegir objetos para pasar a Javascript" junto al parámetro runtimeScene, una variable de la matriz llamada "objetos" estará disponible para su uso. Aparecerá un menú con los objetos de tu juego. Puede seleccionar el objeto de juego de nuestra elección. Ese objeto se agregará a su matriz de objetos javascript. 
-
-"objetos" es una matriz que contiene las instancias seleccionadas del objeto que elija. Es exactamente como lo que una acción o condición usaría). Por ejemplo, la siguiente ilustración es un evento que utiliza un evento de JavaScript como un evento secundario. El evento javascript manipulará a los enemigos que chocan con el jugador: 
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
- Abrir los ejemplos Online.
-
-[](https://editor.gdevelop.io/?project=example://text-to-speech)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-to-speech){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://javascript-blocks-in-platformer)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://javascript-blocks-in-platformer){ .md-button .md-button--primary }
-
-## Documentación (Documentación)
-
-- Leé **\[the game engine documentation\]()** to get started.
-- También puede navegar directamente el **\[GDJS game engine source code\]()**.
-
-## Ejemplos de Código
-
-### Lee y cambia el valor de una variable.
-
-``` javascript
-var myVar = runtimeScene.getVariables().get("MyVar");
-var myVar2 = runtimeScene.getVariables().get("MyVar2");
-
-var currentValue = myVar.getAsNumber();
-myVar.setNumber(currentValue+1);
-
-myVar2.setString("Hello, world");
-```
-
-Véa la documentación sobre [gdjs.Variable](http://4ian.github.io/GD-Documentation/GDJS%20Runtime%20Documentation/classes/gdjs.Variable.html) and [gdjs.VariablesContainer](http://4ian.github.io/GD-Documentation/GDJS%20Runtime%20Documentation/classes/gdjs.VariablesContainer.html).
-
-### Mueve el objeto a la posición de otro, comprueba si el juego está mostrando el primer cuadro.
-
-``` javascript
-const players = runtimeScene.getObjects("Player");
-const playerHitBoxes = runtimeScene.getObjects("PlayerHitBox");
-if (playerHitBoxes.length === 0 || players.length === 0) return;
-
-if (runtimeScene.getTimeManager().isFirstFrame()) {
- playerHitBoxes[0].hide();
-}
-
-players[0].setX(playerHitBoxes[0].getX() - 12);
-players[0].setY(playerHitBoxes[0].getY());
-```
-
-Equivalent events would be: 
-
-### Cambiar la animación de acuerdo con algunas condiciones sobre el comportamiento de un objeto.
-
-!!! note
-
- En el código a continuación, usamos un comentario que se llama una anotación.
-
-Al escribir la **anotación **`/ **@tipo {gdjs.XXX} * /` justo antes de la declaración de una variable en JavaScript, le indica al editor de código que la variable tiene el tipo gdjs.XXX. El editor podrá asistirlo al proporcionar **autocompletar **mientras escribe (o cuando pasa el cursor una palabra).
-
-La mayoría de las anotaciones de tiempo no son necesarias. Los métodos que está utilizando ya son [documented](http://4ian.github.io/GD-Documentation/GDJS%20Runtime%20Documentation/) con anotaciones de tipo. Pero cuando usa una lista de objetos, es posible que desee acceder a este método específico del objeto (por ejemplo, métodos para modificar la animación de un objeto sprite). En este caso, podría escribir `/ **@type {gdjs.SpriteRuntimeObject} * /`.
-
-Si no haces esto, el código seguirá funcionando, pero el editor solo podrá proporcionarte los métodos de `gdjs.RuntimeObject` (la clase base).
-
-Cuando obtiene un comportamiento de un objeto, también sabe qué tipo de comportamiento está recibiendo. Deje que el editor sepa esto usando una anotación (de lo contrario, solo obtendrá el autocompletado para la clase base, `gdjs.RuntimeBehavior`).
-
-``` javascript
-const players = runtimeScene.getObjects("Player");
-const playerHitBoxes = runtimeScene.getObjects("PlayerHitBox");
-if (playerHitBoxes.length === 0 || players.length === 0) return;
-
-/** @type {gdjs.SpriteRuntimeObject} */
-const player = players[0];
-
-/** @type {gdjs.PlatformerObjectRuntimeBehavior} */
-const platformerBehavior = playerHitBoxes[0].getBehavior("PlatformerObject");
-
-if (platformerBehavior.isJumping() || platformerBehavior.isFalling()) {
- player.setAnimation(1);
-} else if (platformerBehavior.isOnFloor()) {
- if (!platformerBehavior.isMoving()) {
- player.setAnimation(0);
- } else {
- player.setAnimation(2);
- }
-}
-
-var LEFTKEY = 37;
-var RIGHTKEY = 39;
-if (runtimeScene.getGame().getInputManager().isKeyPressed(LEFTKEY)) {
- player.flipX(true);
-} else if (runtimeScene.getGame().getInputManager().isKeyPressed(RIGHTKEY)) {
- player.flipX(false);
-}
-```
-
-Equivalent events would be: 
-
-### Establecer la posición de la cámara en la posición de un objeto.
-
-``` javascript
-if (!objects.length) return;
-
-// Aquí, "objetos" se refieren a una lista de "Jugador", que debe seleccionarse
-// en la configuración de la función.
-
-runtimeScene.getLayer("").setCameraX(objects[0].getX());
-```
-
-Este evento equivalente sería: 
-
-### Desvanecer un objeto sprite después de que esté en el piso (utilizando el comportamiento del objeto Platformer)
-
-``` javascript
-objects.forEach(object => {
- /** @type {gdjs.SpriteRuntimeObject} */
- const enemy = object;
-
- /** @type {gdjs.PlatformerObjectRuntimeBehavior} */
- const platformerBehavior = object.getBehavior("PlatformerObject");
-
- if (enemy.getAnimation() === 1 && platformerBehavior.isOnFloor() && !platformerBehavior.isMoving()) {
- object.activateBehavior("PlatformerObject", false);
- enemy.setOpacity(enemy.getOpacity() - 50 * object.getElapsedTime(runtimeScene) / 1000);
-
- if (enemy.getOpacity() === 0) {
- object.deleteFromScene(runtimeScene);
- }
- }
-});
-```
-
-Los eventos equivalentes serían: 
diff --git a/docs/es/gdevelop5/events/link.md b/docs/es/gdevelop5/events/link.md
deleted file mode 100644
index 267b692e2bd..00000000000
--- a/docs/es/gdevelop5/events/link.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: Eventos de enlace (Link events)
----
-# Eventos de enlace (Link events)
-
-Los eventos de enlace son marcadores de posición. Los eventos de enlace indican a GDevelop que debe insertarse un evento externo en el enlace de marcador de posición. (Los eventos externos se pueden crear en [Administración de Proyctos](/gdevelop5/ interface/ project-manager)).
-
-Los eventos externos son útiles para ayudar a separar la lógica de tu juego en múltiples hojas de eventos. Las hojas de eventos externos mejoran la organización de tus eventos de juego. También proporcionan una buena manera de compartir eventos comunes entre tus escenas.
-
-Al agregar un evento de enlace, haga clic en "\" para que se muestre un menú desplegable donde puede elegir los eventos externos que le gustaría incluir.  
-
-
-
-## Ejemplos
-
-!!! note
-
- **Vélo en acción!** 🎮
-
- Abra los ejemplos Online.
-
-[](https://editor.gdevelop.io/?project=example://asteroids)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://asteroids){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://platformer)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/events/repeat.md b/docs/es/gdevelop5/events/repeat.md
deleted file mode 100644
index e757a16db7e..00000000000
--- a/docs/es/gdevelop5/events/repeat.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Repetir eventos (Repeat events)
----
-# Repetir eventos (Repeat events)
-
-Los eventos repetidos funcionan como el estándar [eventos](/gdevelop5/ events), pero se repiten varias veces seguidas antes de continuar con el siguiente evento en la lista. Los eventos que siguen no se ejecutan hasta que se alcanza el número de repeticiones.
-
-Tenga en cuenta que este recuento puede ser una expresión. Eso significa que puedes hacer que el número de repeticiones varíe según lo que haga el jugador. Por ejemplo, puede crear un número diferente de enemigos según el conteo de vida, la posición, etc. de un objeto. También puede crear un número aleatorio de objetos en la escena (consulte el ejemplo a continuación).
-
-
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
-
- Abre estos ejemplos Online.
-
-**Diagonales (Diagonals)**
-
-[](https://editor.gdevelop.io/?project=example://find-diagonals)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://find-diagonals){ .md-button .md-button--primary }
-
-**Laser**
-
-[](https://editor.gdevelop.io/?project=example://zombie-laser)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://zombie-laser){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/events/standard.md b/docs/es/gdevelop5/events/standard.md
deleted file mode 100644
index e9f163ef734..00000000000
--- a/docs/es/gdevelop5/events/standard.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Eventos estandar (Standard events)
----
-# Eventos estandar (Standard events)
-
-Los [eventos](/gdevelop5/ events) más comunes utilizados en GDevelop son los eventos estándar:
-
-Desde el Editor de "Escena", seleccione y haga clic en la pestaña Editor de "Escena (Eventos)". Es la pestaña que se encuentra arriba ya la derecha de la escena.
-
-
-
-Los eventos se componen de una lista de "condiciones" que se muestran en el lado izquierdo de la pantalla y una lista de "acciones" que se muestran en el lado derecho de la pantalla. Cuando todas las condiciones de la izquierda son verdaderas, se ejecutan las acciones de la derecha. Si una condición de la izquierda no es verdadera, las otras condiciones y acciones en el evento no se ejecutan.
-
-
-
-## Ejemplo
-
-Aquí hay un evento que destruirá el objeto "Cuadrado" cuya posición X es inferior a 100 píxeles:
-
-
-
-Si aún no está seguro de cómo funcionan los eventos, eche un vistazo a [esta página](/gdevelop5/tutorials/basic-game-making-concepts).
diff --git a/docs/es/gdevelop5/events/while.md b/docs/es/gdevelop5/events/while.md
deleted file mode 100644
index e78eea4a279..00000000000
--- a/docs/es/gdevelop5/events/while.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: Mientras eventos (While events)
----
-# Mientras eventos (While events)
-
-Mientras que los eventos son un tipo especial de [evento](/gdevelop5/ eventos): mientras las condiciones // ` While ` sean verdaderas, el evento se repite sin interrupción (es decir, los siguientes eventos **no se ejecutan **y la pantalla **no **se actualiza).
-
-
-
-Mientras que los eventos generalmente no son necesarios, pero estos eventos se pueden usar para repetir acciones siempre que la condición sea verdadera. El evento While es útil en algunos algoritmos que quizás quieras crear en tu juego.
-
-## Ejemplos
-
-!!! note
-
- **Véslo en acción!** 🎮
-
- Abra estos ejemplos Online.
-
-[](https://editor.gdevelop.io/?project=example://asteroids)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://asteroids){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://pathfinding)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/extending-gdevelop.md b/docs/es/gdevelop5/extending-gdevelop.md
deleted file mode 100644
index a62001dd07b..00000000000
--- a/docs/es/gdevelop5/extending-gdevelop.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Extendiendo GDevelop
----
-# Extendiendo GDevelop
-
-GDevelop es modular. Puede extenderse para adaptarse a sus necesidades. En particular, todas las funciones disponibles para los juegos: objetos, comportamientos y eventos se basan en un sistema de extensión. Como GDevelop es [open-source](https://github.com/4ian/GD), puede contribuir a las extensiones existentes o puede crear nuevas.
-
-Debido a que el editor es de código abierto, también es posible ver el código fuente y mejorarlo.
-
-## Extensiones para el motor del juego.
-
-Todas las características proporcionadas por el motor del juego se basan en el núcleo del motor del juego (GDJS) y las extensiones.
-
-➡️Si desea crear extensiones, lea **[https://github.com/4ian/GD/blob/master/newIDE/README-extensions.md. Esta página sobre cómo crear y desarrollar extensiones para GDevelop](https://github.com/4ian/GD/blob/master/newIDE/README-extensions.md. Esta página sobre cómo crear y desarrollar extensiones para GDevelop) **.
-
-Necesitará Node.js para comenzar y un conocimiento rudimentario de JavaScript.
-
-## Mejorar el editor
-
-El editor también se basa en JavaScript, y puede modificarlo y mejorarlo fácilmente.
-
-➡️Lea [esta página para comenzar a trabajar en el editor](https://github.com/4ian/GD/blob/master/newIDE/README.md).
-
-Necesitará Node.js para comenzar y conocer JavaScript. También es una buena idea leer tutoriales sobre React.js, ya que todo el editor se basa en él para la modularidad y el rendimiento.
diff --git a/docs/es/gdevelop5/getting_started/index.md b/docs/es/gdevelop5/getting_started/index.md
deleted file mode 100644
index a8c0ec00884..00000000000
--- a/docs/es/gdevelop5/getting_started/index.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: Introducción a GDevelop
----
-# Introducción a GDevelop
-
-GDevelop es una herramienta de creación de juegos gratuita, de código abierto y multiplataforma que cualquiera puede usar para crear juegos sin conocimientos de programación.
-
-Esta guía explica cómo empezar a trabajar con GDevelop.
-
-## Paso 1: instala GDevelop
-
-GDevelop está disponible para todos los principales sistemas operativos, incluidas las últimas versiones de Windows, macOS y Linux. Para descargar GDevelop, visita gdevelop.io/download .
-
-Las instrucciones de instalación dependen del sistema operativo.
-
-* **Windows**: haz doble clic en el ejecutable. Esto instala GDevelop, inicia la aplicación y agrega un icono al escritorio.
-* **macOS**:
- * Abre el archivo DMG.
- * Arrastra “GDevelop.app” al directorio “~/Applications”.
-* **Linux**:
- * Abre una terminal.
- * Haz que el archivo AppImage sea ejecutable escribiendo //chmod a+x GDevelop*.AppImage//.
-
- * Ejecútalo: ///GDevelop*.AppImage// (o haz doble clic en el archivo).
-
-!!! note
-
- Hay una versión en línea de GDevelop disponible en [editor.gdevelop.io](https://editor.gdevelop.io/). Sin embargo, en general, recomendamos utilizar la versión de escritorio.
-
-## Paso 2: crea un nuevo proyecto
-
-1. Inicia GDevelop.
-2. Haz clic en **Crear un nuevo proyecto**.
-3. Elige una ubicación para el proyecto.
-4. Selecciona uno de los proyectos de la pestaña **Principiantes**, como **Platformer** o **Space Shooter de 8 bits**, o comienza un juego desde cero seleccionando el proyecto **Vacío**.
-
-
-
-Los proyectos de la pestaña **Principiantes** muestran cómo crear juegos completos, mientras que los proyectos de la pestaña **Ejemplos** muestran cómo crear funciones específicas.
-
-## Paso 3: vista previa del juego
-
-Si un proyecto tiene al menos una escena, lo que todos los proyectos iniciales hacen, entonces hay disponible un botón de **Vista previa** en la barra de herramientas. Este botón lanza una vista previa del juego.
-
-
-
-## Próximo paso
-
-Lee el [Tutorial de Platformer](/gdevelop5/tutorials/platformer). Aprenderás a crear un juego de plataformas desde cero y descubrirás muchos de los conceptos fundamentales de GDevelop, como objetos, eventos y expresiones.
-
-
-
-
-
diff --git a/docs/es/gdevelop5/getting_started/open-gdevelop-4-project.md b/docs/es/gdevelop5/getting_started/open-gdevelop-4-project.md
deleted file mode 100644
index eaf7ae73137..00000000000
--- a/docs/es/gdevelop5/getting_started/open-gdevelop-4-project.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Abra un juego hecho con Gdevelop 4
----
-# Abra un juego hecho con Gdevelop 4
-
-Gdevelop 5 se basa en el mismo motor que Gdevelop 4 y los juegos son compatibles. Aunque debe asegurase de que:
-
-* Su juego en Gdevelop 4 este basado en la plataforma HTML5, los juegos nativos no son compatibles por ahora con Gdevelop 5 .
-* Algunas extensiones / características aún no son compatibles con GDevelop 5.
-
-Para abrir su juego con GDevelop 5, ábralo con GDevelop 4 y guárdelo como un archivo json:
-
-* En el menú de arriba, en la parte superior izquierda, elija **Archivo\> Guardar como ...**. * Elija una carpeta, luego ingrese un nombre de archivo que termina por **.json**, Por ejemplo:
-
-
-
-Haga clic en Guardar. Ahora puede abrir este archivo con GDevelop 5.
-
-Asegúrese de **verificar que todo funcione **antes de continuar creando su juego con GDevelop 5.
diff --git a/docs/es/gdevelop5/index.md b/docs/es/gdevelop5/index.md
deleted file mode 100644
index d1a8e253d54..00000000000
--- a/docs/es/gdevelop5/index.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Documentación de GDevelop 5
----
-# Documentación de GDevelop 5
-
-GDevelop es una herramienta de creación de juegos gratuita, de código abierto y multiplataforma que cualquiera puede usar para crear juegos sin conocimientos de programación. Esta wiki contiene todo lo que se necesita saber para crear juegos con GDevelop, incluso aunque nunca hayas creado un juego antes.
-
-
-
-## Próximos pasos
-
-* Si no has instalado GDevelop, lee la [Introducción a GDevelop](http://wiki.compilgames.net/doku.php/es/gdevelop5/getting_started).
-* Si nunca antes has creado un juego, lee la [Guía de conceptos básicos de creación de juegos.](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials/basic-game-making-concepts)
-* Si estás listo para comenzar a crear un juego, explora los [tutoriales](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials).
\ No newline at end of file
diff --git a/docs/es/gdevelop5/interface/debugger.md b/docs/es/gdevelop5/interface/debugger.md
deleted file mode 100644
index 89dfd6b874d..00000000000
--- a/docs/es/gdevelop5/interface/debugger.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: Depurador del juego y perfilador
----
-# Depurador del juego y perfilador
-
-El **depurador (debugger)** es una herramienta que te permite inspeccionar el contenido de tu juego. En particular, puede inspeccionar variables globales, variables de escena y variables de instancias de sus objetos. Es una herramienta poderosa.
-
-Puedes pausar el juego en cualquier momento. Usar el depurador es una excelente manera de entender por qué algo no funciona como es debido o para hacer pruebas rápidas en el juego.
-
-El *generador de perfies (profiler)* es una herramienta que mide el tiempo empleado en diferentes partes del motor mientras se ejecuta el juego. Ayuda a encontrar cuellos de botella o eventos que podrían requerir muchos recursos en su juego. [Lea más sobre el uso del generador de perfiles aquí!](/gdevelop5/interface/debugger/profile-your-game)
-
-!!! note
-
- Esta es una característica avanzada de GDevelop. Si lo usa, nos gustaría que muestre su soporte para GDevelop al [obtener una suscripción](/gdevelop5/interface/profile)!
-
-
-
-## Ejecutar el depurador (Launch the debugger)
-
-Para iniciar el depurador, en la barra de herramientas de un editor de escenas, haga clic en el ícono "Depurar".
-
-
-
-En el menú, seleccione "Vista previa con depurador y perfilador de rendimiento". Esto abrirá una nueva pestaña llamada "Depurador" y también lanzará una vista previa de tu juego como siempre.
-
-Tenga en cuenta que incluso si cierra la vista previa, puede dejar abierta la pestaña del depurador. De esta forma, cualquier vista previa que inicie (con el botón Vista previa habitual) se conectará al depurador.
-
-Cuando el juego se acaba de lanzar, el depurador está vacío:
-
-
-
-Haga clic en "**Actualziar**" en cualquier momento para obtener los datos del juego.
-
-
-
-También puede usar el botón Pausa en la barra de herramientas.
-
-## Inspecciona las escenas del juego.
-
-Las escenas que se ejecutan actualmente se enumeran debajo del elemento Escenas en la lista:
-
-
-
-Si hace clic en el nombre de una escena, se le mostrará a la derecha del inspector para esta escena. Este inspector contiene una capa de la escena y un botón para crear una nueva instancia de un objeto en la escena.
-
-### Crear una nueva instancia en la escena.
-
-Para crear una nueva instancia, haga clic en el nombre de la escena donde desea crear la instancia. Escriba el nombre del objeto y haga clic en Crear:
-
-
-
-La instancia se creará en la posición 0; 0, en la capa base con Z orden 0. Luego puede encontrarlo en la lista de instancias y cambiar su posición, ángulo, capa ...
-
-## Inspecciona y edita las instancias.
-
-En la lista, puede encontrar **Instancias** de cada escena en ejecución. Las instancias se agrupan por nombre de los objetos. Haga clic en el nombre de un objeto para ver la lista de instancias de este objeto que vive en la escena. Haga clic en un número de instancia para inspeccionarlo:
-
-
-
-El inspector muestra las propiedades generales de la instancia, por ejemplo, posición, rotación, capa ... Para cada una de estas propiedades, puede **editarlas haciendo clic en el valor**:
-
-
-
-Valide sus cambios haciendo clic en el **botón de validación** (el que tiene el icono de marca).
-
-También puede ver las **variables de la instancia** y modificarlas (consulte a continuación para obtener más información sobre las variables).
-
-## Inspeccionar y editar las variables. (Inspect and edit the variables).
-
-Puede verificar las variables del juego (variables globales), de una escena (variables de escena) o de una instancia particular de un objeto (variables de instancia).
-
-Para hacer esto, en la lista, haga clic en **Variables globales**, **Variables de escena** o el número de instancia que desea inspeccionar.
-
-Las variables se mostrarán en una lista que muestra el nombre y los valores de la variable (ya sea un número o un texto). Aquí hay un ejemplo de una instancia de un objeto que tiene una variable "Vida":
-
-
-
-Como otros campos, puede hacer **clic en el valor de la variable** para cambiarla. Es una buena manera de ver cómo se está comportando tu juego de acuerdo con el valor de las variables y probar que tus eventos funcionan correctamente.
-
-Las variables también pueden ser **estructuras**, o que significa que contienen otras variables. En este caso, en lugar de ver el valor (número o texto) de la variable, verá una sub-lista que contiene las variables secundarias:
-
-Aquí hay un ejemplo de una variable "Opciones", que agrega variables secundarias para almacenar las opciones de un juego: 
-
-También puede cambiar el valor de las variables de los niños como cualquier otro. Perfil del rendimiento de su juego.
-
-## Perfil del rendimiento de su juego.
-
-El generador de perfiles es una herramienta incluida en el depurador que mide el tiempo empleado en varias partes del motor mientras se ejecuta el juego. A continuación, se muestra un desglose de cada sección, incluidos los eventos. [Lee más sobre perfiles!](/gdevelop5/interface/debugger/profile-your-game)
diff --git a/docs/es/gdevelop5/interface/events-editor.md b/docs/es/gdevelop5/interface/events-editor.md
deleted file mode 100644
index 5b9ef2e726a..00000000000
--- a/docs/es/gdevelop5/interface/events-editor.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: Editor de Eventos
----
-# Editor de Eventos
-
-Cuando abre una escena o cualquier evento externo, el editor de eventos de escena se presenta en la pestaña que se encuentra sobre la ventana de apertura.
-
-
-
-El Editor de eventos es donde se agregan los eventos que crean el juego real. Permite a los jugadores jugar e interactuar con tu juego. El editor de eventos es una herramienta que te da el poder de programar visualmente tu juego. No tienes ninguna experiencia en programación o codificación. *Cualquiera puede hacer un juego en GDevelop!*
-
-Para cambiar el [Editor de Escena (Scene editor)](/gdevelop5/interface/scene-editor) y el editor de eventos, use las pestañas en la parte superior de la ventana. 
-
-Cuando cambie al editor de Eventos, verá que la barra de herramientas ha cambiado. Ahora hay un conjunto diferente de herramientas disponibles: 
-
-## Agregar Evento Agregar un evento haciendo clic en el botón "agregar evento". 
-
-Cuando haga clic en este botón, aparecerá un evento en blanco en la pantalla de abajo en el editor. 
-
-Puede agregar el editor de eventos a cualquier número de bloques de eventos. Cada evento puede tener diferentes condiciones y acciones. Una vez que agrega un evento, puede usar las condiciones y acciones para crear la lógica del juego. Conozca más sobre los eventos, en esta página: [](/gdevelop5/eventos).
-
-## Añadir sub evento Al hacer clic en el botón Agregar subevento, puede agregar un bloque de "evento secundario" al evento seleccionado. 
-
-Después de hacer clic en el botón, aparece un evento subs en blanco debajo de nuestro evento seleccionado. 
-
-*Los eventos secundarios se ejecutan solo si las condiciones del evento principal son verdaderas.*. Los eventos secundarios proporcionan una manera de evitar repetir las mismas condiciones. Hacen la lógica mucho más fácil de leer.
-
-## Añadir un comentario Al hacer clic en el botón Agregar comentario, puede agregar comentarios a los eventos. Los comentarios nos ayudan a recordar lo que hacen los eventos. 
-
-Los comentarios son una parte importante de cualquier juego o aplicación. Le ayudan a organizar y recordar exactamente lo que está logrando el evento y la lógica de acción. 
-
-## Añadir eventos especiales Al hacer clic en el botón Agregar un evento, junto con los que ya mencionamos, tenemos acceso a algunos eventos especiales. 
-
-Lee [la ayuda sobre eventos](/gdevelop5/la ayuda sobre eventos) para aprender más.
-
-## Eliminar eventos seleccionados
-
-Al hacer clic en el botón Eliminar eventos seleccionados, los eventos seleccionados se eliminarán de la hoja de eventos (también puede presionar la tecla Eliminar): 
-
-## Deshacer / Rehacer cambios (Undo/Redo changes) Cualquier cambio se puede deshacer o aplicar nuevamente con estos botones (o los accesos directos habituales): 
-
-## Buscar en eventos (Search in events) El botón "buscar en eventos" abre un panel en la parte inferior de la pantalla. Allí, puede buscar un término específico en los parámetros de las condiciones y acciones. También puede ingresar un parámetro de reemplazo y reemplazar todas las apariciones del texto en los eventos.
-
-
diff --git a/docs/es/gdevelop5/interface/index.md b/docs/es/gdevelop5/interface/index.md
deleted file mode 100644
index 8721496c81f..00000000000
--- a/docs/es/gdevelop5/interface/index.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: Interfaz de GDevelop
----
-# Interfaz de GDevelop
-
-La interfaz de trabajo de GDevelop se basa en editores que se muestran en pestañas. Estos editores te permiten cambiar diferentes partes de tu juego.
-
-
-
-## Página de inicio
-
-La pantalla de inicio se muestra la primera vez que inicia GDevelop. Es aquí donde podrá crear sus proyectos, cargar proyectos guardados anteriormente o cargar tutoriales.
-
-
-
-Al inicio, GDevelop buscará nuevas actualizaciones. Si hay una nueva actualización disponible, la actualización se descargará automáticamente.
-
-Puedes ver [el progreso haciendo clic en Acerca de GDevelop](/gdevelop5/interface/updates).
-
-## Administrador de proyecto
-
-Cuando se abre un proyecto, puede hacer clic en el botón superior izquierdo para acceder al administrador del proyecto. 
-
-El jefe de proyecto muestra la estructura de tu juego: 
-
-Usando el administrador de proyectos, puedes agregar nuevos elementos a tu juego y abrir editores. Obtenga más información sobre [el contenido del administrador del proyecto aquí.](/gdevelop5/interface/project-manager).
-
-## Editor de Escena
-
-Al abrir una escena (o un diseño externo), se abre un editor de escenas. Aquí es donde puedes diseñar y construir tus niveles de juego y menus creando y agregando objetos a la escena.
-
-[Aprende más sobre el uso de editores de escenas](/gdevelop5/interface/scene-editor).
-
-## Editor de Eventos
-
-Al abrir una escena (o al abrir eventos externos), también se abre un editor de eventos. Aquí es donde puedes usar los eventos para crear el juego real y permitir que los jugadores interactúen con tu juego y lo jueguen. El editor de eventos es una herramienta que te permite programar visualmente tu juego sin ningún conocimiento de programación o experiencia requerida para que cualquier persona con antecedentes pueda hacer un juego en GDevelop.
-
-Aprenda más sobre [su uso en esta página](/gdevelop5/interface/events-editor) o consulta [la ayuda sobre eventos](/gdevelop5/events).
-
-## Mejores menús
-
-El menú en la parte superior de la pantalla (solo en la versión de escritorio) le permite abrir, guardar y [publicar un juego](/gdevelop5/publishing).
-
-También puede abrir las preferencias de GDevelop o ver [el perfil asociado con su cuenta de GDevelop.](/gdevelop5/interface/profile).
diff --git a/docs/es/gdevelop5/interface/profile.md b/docs/es/gdevelop5/interface/profile.md
deleted file mode 100644
index 830eed210b4..00000000000
--- a/docs/es/gdevelop5/interface/profile.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: Mi perfil
----
-# Mi perfil
-
-Se necesita una cuenta de GDevelop para algunas funciones, especialmente la exportación con un solo clic de su juego para Android e iOS, Windows, macOS y Linux.
-
-Si no tiene una cuenta, cree una gratis: en el menú Archivo (en Windows y Linux) o en el menú GDevelop (en macOS), seleccione "Mi perfil":
-
-
-
-En la ventana, puede ver su perfil (o crear uno si no tiene una cuenta) y también ver los últimos usos que ha hecho sobre los servicios en línea.
-
-## Crear una cuenta
-
-Si no tienes una cuenta, puedes crear una gratis:
-
-
-
-Selecciona/Click en **Crear mi cuenta**. Introduce tu e-mail y crea una contraseña.
-
-
-
-Una vez que haya iniciado sesión, puede ver su perfil y puede usar los servicios específicos de GDevelop, como empacar su juego para Android en un solo clic.
-
-## Obtener una suscripción
-
-De forma predeterminada, las cuentas son gratuitas y no hay límites en los juegos que creas con GDevelop. Algunos servicios en línea son limitados, ya que dependen de servidores que pueden ser costosos. En particular, con una cuenta gratuita puedes hacer 2 paquetes para Android todos los días.
-
-Al obtener una suscripción, desbloqueará más paquetes (y en el futuro más paquetes con un solo clic para iOS, Windows, macOS y Linux). También apoyará el desarrollo futuro de GDevelop. ✨ Note: 7 EUROS = approximately \$8. 2EUROS = approximately \$2.30 (use a Currency Calculator to find the most current amount in USA dollars.)
-
-Una vez que haya iniciado sesión, haga clic en el botón **"Choose a subscription"** :
-
-
-
-Podrás ver una descripción de cada plan disponible. Elija el que se adapte a sus necesidades:
-
-
-
-Una vez que haya hecho clic en **Elegir el plan**, se le pedirá su número de tarjeta de crédito para que la suscripción se pueda pagar cada mes. El pago se realiza y se protege con [Stripe.com](https://stripe.com), que es el nuevo estándar en pagos en línea. Todo está asegurado y manejado por la infraestructura de Stripe.
-
-## Cambiando tu suscripción
-
-Si desea actualizar su suscripción, ya sea para actualizar a una suscripción con más envases o para una suscripción que sea más barata, simplemente abra su perfil y haga clic en **Actualizar / Cambiar (Upgrade/Change)**.
-
-¡El próximo pago se adaptará automáticamente a su nueva suscripción!
-
-## Cancelando tu suscripción
-
-La cancelación de su suscripción en cualquier momento es fácil: abra su perfil y haga clic en **Actualizar / Cambiar**. Elija una suscripción gratuita y su suscripción actual se detendrá, y no se requerirá ningún nuevo pago.
-
-Si lo desea, puede suscribirse nuevamente a otra suscripción. En cualquier caso, ¡no perderás nada de tu juego o trabajo!
diff --git a/docs/es/gdevelop5/interface/project-manager.md b/docs/es/gdevelop5/interface/project-manager.md
deleted file mode 100644
index e5a7c19194a..00000000000
--- a/docs/es/gdevelop5/interface/project-manager.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: Administrador de Proyecto
----
-# Administrador de Proyecto
-
-Cuando se abre un proyecto, puede hacer clic en el botón superior izquierdo de la barra de herramientas para acceder al administrador del proyecto. 
-
-El jefe de proyecto muestra la estructura de todo tu juego.
-
-
-
-Puede plegar y desplegar cada categoría haciendo clic en la flecha pequeña al lado de cada categoría.
-
-También puede configurar los iconos de Escritorio (Windows, MacOS, Linux), Android y / o iOs para su juego.
-
-- **Configuración del Juego:**aquí es donde puedes personalizar la configuración global del juego. Cosas como el tamaño predeterminado de la ventana del juego o el nombre del paquete para Android e iOS. También puedes [configurar los iconos de escritorio (Windows, MacOS, Linux) , Android, and/or iOs para tu juego](/gdevelop5/interface/project-manager/icons).
-
-
-
-- **Escenas:** las escenas están compuestas de diferentes pantallas y niveles en tu juego. Todo en GDevelop es creado en [escenas](/gdevelop5/interface/scene-editor). Todas las pantallas de tu juego están creadas aquí. Las escenas incluyen pantallas como el menú principal, la pantalla de bienvenida, la pantalla de créditos.
-
-
-
-- **Eventos Externos:**Para hacer que el desarrollo de su juego sea más flexible puedes usar los [eventos externos](/gdevelop5/interface/events-editor). A continuación, puede vincular a "Eventos externos" cuando los necesite. Si está familiarizado con la programación, piense en "Eventos externos" como métodos. Si no está familiarizado con el término, recuerde que si necesita usar una colección de eventos a menudo y en diferentes lugares, puede hacerlos externos y llamarlos desde sus escenas en lugar de agregar los mismos eventos varias veces.
-
-
-
-- **Diseños Externos:**• similares a los eventos, puede diseñar a menudo. Usado repetidamente diseños externos para ser cargados en sus escenas.
-
-## Menú de Archivo
-
-En la versión **Escritorio**, el menú Archivo le permite guardar su juego, abrir otro o cerrarlo. También puedes [exportar tu juego](/gdevelop5/publishing). 
-
-En la **Aplicación Web (Web App)**, estas opciones están en la parte superior del administrador del proyecto. 
diff --git a/docs/es/gdevelop5/interface/scene-editor.md b/docs/es/gdevelop5/interface/scene-editor.md
deleted file mode 100644
index 2fa564f99b0..00000000000
--- a/docs/es/gdevelop5/interface/scene-editor.md
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: Editor de Escena
----
-# Editor de Escena
-
-Al abrir una escena (o un diseño externo), se abre el editor de escenas.
-
-
-
-El editor de escenas es donde puedes diseñar y construir tus niveles de juego, tus menús, tus inventarios o cualquier otra cosa que inspire tu imaginación. El Editor de escenas le permite crear y agregar objetos a la escena / pantalla. El juego y las reglas del juego se pueden crear usando eventos en el [Editor de Eventos](/gdevelop5/interface/events-editor) de Escena.
-
-Hay una serie de herramientas y editores disponibles en la barra de herramientas superior del editor de escenas. 
-
-## Editor de Objetos You will find the Objects Editor on the right side of the Scene Editor's interface. Aqui puedes ver todos los [los Objetos](/gdevelop5/objects) usados en tu escena. También puede agregar nuevos objetos utilizando el Editor de objetos. 
-
-Si cierra el panel Editor de objetos, puede volver a abrirlo utilizando este botón en la barra de herramientas: 
-
-Lee sobre las [funciones genéricas disponibles para todos los objetos](/gdevelop5/objects/base_object) y luego observa el [la ayuda sobre los tipos de objetos](/gdevelop5/objects) para aprender más sobre los diferentes tipos de objetos que puedes usar en tu juego.
-
-## Propiedades de Objetos
-
-Puede encontrar el editor de propiedades del objeto en el lado izquierdo de la interfaz del editor de escenas. Si el Editor de propiedades del objeto no está visible, cierre el Administrador de proyectos. Luego, selecciona un objeto en tu escena. El Editor de propiedades del objeto se abrirá a la izquierda. 
-
-El uso del Editor de propiedades le permite cambiar las propiedades del objeto de escena seleccionado. Cosas como la posición de un objeto, la escala y el orden Z se pueden cambiar usando el Editor de propiedades. Puedes informarte más acerca de las [propiedades de objeto en esta página](/gdevelop5/objects/base_object).
-
-Si ha cerrado este panel, puede abrirlo nuevamente haciendo clic en el botón en la barra de herramientas: 
-
-**Nota:** los paneles de GDevelop se pueden mover arrastrándolos a cualquier lugar que desee. Simplemente arrastre el panel usando la barra de título. Como ejemplo, si el Panel de propiedades del objeto se abre en el lado derecho de la pantalla y prefiere colocarlo en el lado izquierdo de la pantalla, simplemente arrástrelo a su lugar con la barra de título.
-
-## Editor de Grupos de Objetos
-
-En el editor de Grupos de objetos, puede encontrar la lista de grupos de objetos que están presentes en la escena. 
-
-Para abrir el editor, haga clic en este botón en la barra de herramientas: 
-
-Los grupos de objetos contienen objetos y se pueden usar en eventos para referirse a múltiples objetos, usando un solo evento. características comunes para todos los objetos. Lea más sobre ellos en la página sobre [características comunes para todos los objetos.](/gdevelop5/objects/base_object).
-
-## Editor de Instancias
-
-El editor de instancias muestra la lista de todas las instancias del objeto que viven en la escena. Se puede usar para seleccionar cualquier instancia de la lista para ver la posición, el ángulo, la capa y el orden de la instancia en la escena. 
-
-Puede abrir el editor de instancias haciendo clic en este botón en la barra de herramientas: 
-
-## Editor de Capas
-
-Por defecto, cada escena de GDevelop viene con una sola capa llamada "Capa base". Aquí es donde todos los objetos se encuentran en nuestra escena. Podemos agregar más capas para varios propósitos y poner cualquier instancia en cualquier capa. Por ejemplo, puede haber una capa para mostrar los controles en la pantalla. Puede haber otra capa para mostrar un menú. Otra capa más puede ser un mapa del juego o un fondo.
-
-El editor de capas muestra la lista de capas en la escena y le permite agregar nuevas, cambiar su orden, alternar su visibilidad en la pantalla o eliminarlas por completo. 
-
-Puede abrir el editor de capas haciendo clic en este botón en la barra de herramientas: 
-
-## Otras Herramientas
-
-### Palanca (Toggle)/Editor de Cuadricula (grid)
-
-Al hacer clic en el botón de cuadrícula en la barra de herramientas, obtendrá múltiples opciones: 
-
-* **Máscara de Palanca (Toggle mask)**: esta opción muestra u oculta un borde negro en la escena. Representa el tamaño de la ventana del juego. * **Palanca de Cuadrícula (Toggle grid):** esta opción activa o desactiva la cuadrícula en el editor de escenas. Tener una cuadrícula es útil cuando necesitamos colocar objetos con precisión. * **Configuración de Cuadrícula (Setup grid):** esta opción abre una ventana que le permite configurar el tamaño y la posición de la cuadrícula.
-
-### Cambiar editor de zoom
-
-Al hacer clic en el botón de zoom, puede cambiar el nivel de zoom dentro del editor de escenas: 
-
-## Lanzar una vista previa de la escena
-
-Al hacer clic en el botón Vista previa, puede iniciar una vista previa de su juego!
-
-
-
-La vista previa se abrirá en una ventana separada.
-
-## Iniciar una vista previa de la red (vista previa a través de WiFi / LAN)
-
-Al hacer clic en el botón "Vista previa de la red (Vista previa a través de WiFi / LAN)", puede obtener una vista previa del juego en dispositivos móviles (o cualquier otra computadora) conectados a la misma red que el editor:
-
-
-
-Después de hacer clic en el botón, aparecerá una ventana que muestra la vista previa de la dirección que se está iniciando en: 
-
-Ahora puede ingresar la dirección dada en el navegador de su teléfono inteligente (o en el otro navegador de su computadora). La vista previa se cargará:
-
-
-
-Nota: Puedes cerrar la ventana emergente en el editor y continuar editando su juego. Si inicia una nueva vista previa, los dispositivos móviles y cualquier computadora conectada actualizarán automáticamente el juego para mostrar los cambios realizados.
-
-### Lanzar una vista previa con el depurador
-
-El depurador es una herramienta que se puede usar para inspeccionar el contenido de tu juego (valores de variables, instancias existentes y sus propiedades ...) e incluso realizar algunas ediciones en tiempo real.
-
-Puedes ejecutar el depurador usando este ícono:
-
-
-
-[Vea esta página](/gdevelop5/interface/debugger) para saber más acerca del uso del depurador.
diff --git a/docs/es/gdevelop5/interface/updates.md b/docs/es/gdevelop5/interface/updates.md
deleted file mode 100644
index 4fd55525c9e..00000000000
--- a/docs/es/gdevelop5/interface/updates.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Buscar actualizaciones
----
-# Buscar actualizaciones
-
-Cuando se inicia, GDevelop busca automáticamente nuevas actualizaciones. Puede ver el progreso haciendo clic en `Acerca de GDevelop` en el[start page](/gdevelop5/interface) o en el menu.
-
-En la ventana Acerca de, verás si se está descargando una actualización:
-
-
-
-Cuando termine, GDevelop le informará que la actualización está lista:
-
-
-
-También se puede mostrar una notificación:
-
-
-
-Ahora puede cerrar GDevelop y abrirlo de nuevo: se instalará la nueva actualización. Verifique nuevamente la ventana Acerca de para ver el número de versión actualizado.
-
-##¿Tiene un problema? Descarga de nuevo GDevelop desde el sitio web.
-
-Si la actualización no se puede aplicar por algún motivo, o si cree que GDevelop no funciona después de una actualización, simplemente descarga de nuevo GDevelop desde la web. [[|http://gdevelop-app.com]]. Tus preferencias no se perderán.
diff --git a/docs/es/gdevelop5/objects/admob.md b/docs/es/gdevelop5/objects/admob.md
deleted file mode 100644
index c344d0dc21b..00000000000
--- a/docs/es/gdevelop5/objects/admob.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: El objeto AdMob
----
-# El objeto AdMob
-
-El objeto AdMob admite la integración de anuncios en tu juego. A medida que se juega, se muestran los anuncios. Esto te permite ganar dinero con tus juegos. AdMob es un servicio gratuito de Google que le brinda la posibilidad de publicar anuncios. Deberá crear una cuenta de AdMob antes de utilizar el objeto AdMob de GDevelop. Enlace externo a AdMob. [Link externo a AdMob](https://www.google.com/admob/)
-
-
-
-## Cómo crear un objeto AdMob
-
-1. Crear una cuenta de AdMob. [Enlace externo a AdMob](https://www.google.com/admob/)
-2. Cree un nuevo objeto GDevelop de la lista de objetos de escena.
-3. Seleccione la opción AdMob en el panel que se muestra.
-
-
-
-- El panel Propiedades / Comportamiento de AdMob se abre.
-
-
-
-#### Propiedades de AdMod
-
-El panel de propiedades de AdMod tiene varias opciones:
-
-1. Nombre del objeto: el nombre que le da a su objeto AdMod.
-2. Banner ID (Android): la identificación de Android que se asigna a su juego a través de admod.com.
-3. Banner ID (iOS): la identificación de iOS que se asigna a sus anuncios de juegos a través de admod.com.
-4. Parte inferior de la pantalla: puede configurar el banner para que esté en una posición específica en la parte inferior de la pantalla.
-5. Se insertan intersticiales usando admob.com. Son banners o videos de recompensa de página completa que aparecen en los descansos de tu juego.
-
-Echa un vistazo a tutoriales de "Cómo crear objetos Gdevelop AdMod" en youtube.
-
-[External Link to Youtube - Av8r Gamez](https://www.youtube.com/watch?v=wzCKpNUwHYE)
-
-[External Link to Youtube - Sparkman](https://www.youtube.com/watch?v=c7BvTGo5dxE)
diff --git a/docs/es/gdevelop5/objects/base_object.md b/docs/es/gdevelop5/objects/base_object.md
deleted file mode 100644
index f812fa8a7c8..00000000000
--- a/docs/es/gdevelop5/objects/base_object.md
+++ /dev/null
@@ -1,113 +0,0 @@
----
-title: Características comunes a todos los objetos
----
-# Características comunes a todos los objetos
-
-En un juego de GDevelop, todo en la pantalla es un objeto.
-
-## Añadir un objeto al juego.
-
-En una escena, podemos agregar objetos simplemente haciendo clic en el botón Agregar objeto a la derecha de la lista de objetos en la parte inferior: 
-
-Puede elegir entre muchos tipos diferentes de objetos, todos con propiedades y propósitos específicos: 
-
-Dependiendo del tipo de objeto que haya seleccionado, el editor, el aspecto del objeto y las características disponibles en los eventos serán diferentes. Como el objetivo de esta página es explicar los objetos en general, no entraremos en los detalles de estas propiedades únicas para cada tipo. Puede encontrar [información detallada sobre cada tipo de objeto aquí](http://wiki.compilgames.net/doku.php/gdevelop5/objects).
-
-# Objetos en la escena (Objects in the scene)
-
-## Añadir una instancia en la escena.
-
-Un objeto se puede colocar en la escena seleccionando el objeto en la pestaña Objeto (hacer clic / tocar en él) y luego hacer clic en la escena para poner una instancia de ese objeto. Una instancia es básicamente una copia del objeto que vive en la escena. Cada instancia tiene sus propias variables, posición, animaciones (para objetos de sprite), contenido (para textos), etc.
-
-Podemos cambiar la posición de un objeto seleccionando el objeto en el editor de scripts y arrastrándolo. Podemos escalar el objeto seleccionando el objeto y arrastrando uno de los puntos de escala blanca. 
-
-## Modificar propiedades.
-
-Cuando seleccionamos un objeto en el editor de escenas, el panel de propiedades a la izquierda muestra información sobre las instancias seleccionadas. Si no está abierto, puede volver a abrirlo haciendo clic en el botón de propiedades en la barra de herramientas: 
-
-### Posición (Position)
-
-Puede establecer con precisión la posición de las instancias seleccionadas cambiando los valores de X e Y en las propiedades: 
-
-## Ángulo (Angle)
-
-Puede establecer el ángulo de una instancia (s) cambiando el valor del ángulo: 
-
-El ángulo puede ser cualquier valor de 0 a 360 grados. Recuerde este diagrama para ver cuál es la orientación de un ángulo dado: 
-
-## Orden Z (Z order)
-
-Puede cambiar el orden de una instancia en las propiedades: 
-
-El propósito del orden Z es especificar qué objeto se mostrará primero cuando las instancias se superponen. De manera más precisa, podemos controlar si el objeto está detrás de otro objeto o si está al frente configurando diferentes valores: cuando dos objetos se superponen, el objeto con un orden Z de menor valor se mostrará detrás del otro.
-
-Los valores pueden ser cualquier número entero, incluidos los números negativos y 0.
-
- En la imagen de arriba, el orden Z del arbusto se deja 2, el orden Z de la moneda es 1 y el orden Z del arbusto de la derecha es 0.
-
-## Capa (Layer)
-
-Puede establecer la capa de una instancia: 
-
-Por defecto, cada escena de GDevelop viene con una sola capa llamada "Capa base". Aquí es donde todos los objetos se encuentran en nuestra escena. Podemos agregar más capas para varios propósitos y poner cualquier instancia en cualquier capa. Por ejemplo, puede haber una capa para mostrar los controles en la pantalla, otra para mostrar un menú, un mapa o un fondo.
-
-## Posición de bloqueo / ángulo (Lock position/angle)
-
-Al marcar la casilla "Bloquear posición / ángulo en el editor", puede hacer que la instancia sea inamovible en el editor: 
-
-Cuando la instancia está bloqueada, ya no podemos seleccionarla en la escena. Hay ocasiones en las que hay muchos objetos que se superponen entre sí en su escena. Esto hace que sea difícil seleccionar algunos de ellos, ya que seguimos seleccionando los que no pretendemos. En tales casos, puede bloquear las instancias.
-
-Puede desbloquear una instancia bloqueada abriendo el panel de instancias, que muestra todas las instancias en nuestra escena y seleccionando el objeto de la lista.
-
-## Variables de instancia (Instance variables)
-
-El botón "editar variables" le permite especificar variables que son específicas de la instancia seleccionada: 
-
-Una variable es básicamente un contenedor que contiene un valor (un número, un texto) que se puede comparar y modificar durante el juego. Hay diferentes tipos de variables en GDevelop, en particular, cada objeto puede contener variables. Cuando el juego se está ejecutando, cada instancia del objeto que vive en la escena tendrá sus propias variables.
-
-Las "Editar variables" le permiten especificar variables que son específicas de la instancia seleccionada. Por ejemplo, si tiene objetos que representan cuadros con oro en la escena, puede modificar la variable llamada "Oro" de cada instancia para establecer diferentes números. Luego, en los eventos, cuando el jugador colisiona con un cuadro, puedes leer el valor variable para agregarlo a la cantidad de oro del jugador.
-
-## Tamaño personalizado (Custom size)
-
-Puede cambiar el tamaño de sus objetos habilitando el tamaño personalizado en el panel de propiedades y luego ingrese las dimensiones de ancho y altura personalizadas en píxeles: 
-
-# Grupos de objetos (Object groups)
-
-Un grupo de objetos es un conjunto de objetos. Por ejemplo, un grupo llamado "Enemigos" puede contener el objeto "Seta", "Bomba", "Dinosaurio". Luego puede usar el nombre del grupo en los eventos para referirse a todos los objetos contenidos en el grupo.
-
-Esto hace posible crear eventos que se aplican a muchos objetos sin repetir eventos varias veces, lo que aumenta el rendimiento de su juego, la facilidad de mantenimiento y la legibilidad de sus eventos.
-
-Para abrir el Editor de grupos, haga clic en el icono de grupos en la barra de herramientas: 
-
-En el Editor de grupos se enumeran todos los grupos de la escena (y también los grupos globales, que están disponibles en todas las escenas del juego). Para agregar un grupo, haga clic en el botón en la parte inferior de la lista: 
-
-Un nuevo grupo se agrega a los perdidos: 
-
-* Para cambiar el nombre del grupo, haga clic derecho en el grupo y seleccione **cambiar nombre**. * Para agregar objetos al grupo, toque o haga clic en el grupo.
-
-En la ventana abierta para editar el grupo, haga clic en el campo inferior y seleccione un objeto (o escriba el nombre de un objeto) para agregarlo al grupo. 
-
-# Variables (Variables)
-
-Cada objeto puede contener variables, que son celdas de memoria que puede usar para almacenar información. Cuando el juego se está ejecutando, cada instancia del objeto que vive en la escena tendrá sus propias variables.
-
-Lee [esta página](/gdevelop5/all-features/variables) para aprender más sobre variables.
-
-# Temporizadores (Timers)
-
-Los objetos pueden mantener sus propios temporizadores, y cada temporizador será único para cada instancia del objeto que vive en la escena. Los temporizadores de objetos son útiles para crear instancias para iniciar acciones después de / cada X segundos.
-
-Por ejemplo, un uso clásico es simular disparos de balas. Si tiene un solo tanque en la escena, puede usar un temporizador de escena para que cada 3 segundos, este tanque pueda disparar (crear una bala) y luego reiniciar el temporizador (para que el tanque pueda disparar nuevamente).
-
-El problema es que si tienes 2 tanques y usas un temporizador de escena, notarás que ambos tanques disparan al mismo tiempo, porque comparten el mismo temporizador de escena. Necesitas tener dos temporizadores separados, independientes entre sí, para hacer que el segundo tanque dispare a su propio ritmo. Pero ¿y si tienes 100 tanques? No desea crear 100 temporizadores de escena, uno por instancia.
-
-Esto es cuando los temporizadores de objetos se están volviendo útiles: reemplace cada condición / acción usando el temporizador de escena con las condiciones / acciones para usar temporizadores de objetos. Durante el juego, GDevelop creará un temporizador dentro de cada instancia del tanque. Cuando utilizará una condición para verificar el valor de un temporizador, solo se seleccionará la instancia que tenga un temporizador que tenga un valor en segundos que sea mayor al número que ingresó.
-
-Puedes leer más sobre los temporizadores aquí: [](/gdevelop5/all-features/timers)
-
-# Editor de eventos (Events Editor)
-
-Puedes cambiar y manipular las propiedades de una instancia de un objeto, o de varias instancias, usando eventos durante el juego. De esto se trata la creación de juegos en GDevelop: manipular objetos en tiempo real mientras jugamos. Como el editor de eventos y eventos están fuera del alcance de esta página, consulte la página de [conceptos básicos de creación de juegos](/gdevelop5/tutorials/basic-game-making-concepts) para comenzar.
-
-* Todos los objetos comparten las mismas características comunes (como posición, ángulo y todo lo que está escrito en esta página), y hay muchas condiciones y acciones que puede usar para todos los objetos.
-* Los objetos también pueden proporcionarle características específicas. Por ejemplo, los [Objetos Sprite (Sprite objects)](/gdevelop5/objects/sprite) pueden tener animaciones, y la animación que se está reproduciendo se puede cambiar mediante una acción.
diff --git a/docs/es/gdevelop5/objects/index.md b/docs/es/gdevelop5/objects/index.md
deleted file mode 100644
index 279c76a791f..00000000000
--- a/docs/es/gdevelop5/objects/index.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Objetos (Objects)
----
-# Objetos (Objects)
-
-Los juegos de GDevelop se basan en objetos que se muestran en la escena y se pueden animar y mover. Los diferentes tipos de objetos están disponibles y proporcionan características específicas:
-
-* [Características para todos los objetos (Features for all objects)](/gdevelop5/objects/base_object)
-* [Objetos de Sprite (Sprite objects)](/gdevelop5/objects/sprite)
-* [Objetos de Sprite de azulejos (Tiled Sprite objects)](/gdevelop5/objects/tiled_sprite)
-* [Emisores de partículas (Particle emitters)](/gdevelop5/objects/particles_emitter)
-* [Objetos de texto (Text objects)](/gdevelop5/objects/text)
-* [Objetos de Panel Sprite ("9 parche") (Panel Sprite ("9 patch") objects)](/gdevelop5/objects/panel_sprite)
-* [Objetos de entrada de texto (Text entry objects)](/gdevelop5/objects/text_entry)
-* [Objetos de Shape Painter (Shape Painter objects)](/gdevelop5/objects/shape_painter)
-* [Objetos AdMob (AdMob objects)](/gdevelop/objects/admob) (aún en desarrollo)
diff --git a/docs/es/gdevelop5/objects/panel_sprite.md b/docs/es/gdevelop5/objects/panel_sprite.md
deleted file mode 100644
index 992a0766170..00000000000
--- a/docs/es/gdevelop5/objects/panel_sprite.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: OBJETO PANEL SPRITE (9 PARCHE) (Panel Sprite ("9 patch") object)
----
-# OBJETO PANEL SPRITE (9 PARCHE) (Panel Sprite ("9 patch") object)
-
-Los objetos Panel Sprite se pueden utilizar para mostrar una textura con bordes repetidos o estirados. El Panel Sprite Object es útil para construir objetos que tienen un tamaño dinámico. Los ejemplos de objetos de Panel Sprite incluyen cosas como el marco de una interfaz. Las plataformas también pueden usar esta característica.
-
-Para usar el Panel Sprite, cree un nuevo objeto desde el panel / lista Objetos a la derecha. Una vez que haya creado el objeto, puede establecer el tamaño de los márgenes para cada borde alrededor del objeto. Los márgenes son la parte superior, la izquierda, la derecha y la parte inferior.
-
-## Pasos para crear un Sprite Panel
-
-1. Desde la lista del Editor de "Objetos" que se encuentra en el lado derecho del Editor de escenas, haga clic en el botón más para crear un nuevo sprite.
-
-
-
-2. Seleccione la opción "Panel Sprite" de la lista que aparece.
-
-
-
- -
-
-
-
-3. Defina las propiedades / parámetros de su objeto.
-
-
diff --git a/docs/es/gdevelop5/objects/particles_emitter.md b/docs/es/gdevelop5/objects/particles_emitter.md
deleted file mode 100644
index bd01cad24f3..00000000000
--- a/docs/es/gdevelop5/objects/particles_emitter.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: EMISOR DE PARTÍCULAS (Particles emitters)
----
-# EMISOR DE PARTÍCULAS (Particles emitters)
-
-!!! note
-
- **Véalo en acción!** 🎮
- [Preferiría ver los ejemplos de objetos emisores de partículas! Por favor, llévame allí ahora.](#Examples)
-
-Los emisores de partículas se utilizan para mostrar un gran número de partículas pequeñas. Simulan efectos en un juego. Algunos ejemplos de emisores de partículas son el fuego, las explosiones, el humo y el polvo.
-
-
-
-El objeto Emisor de partículas se puede configurar con una multitud de parámetros diferentes para crear los efectos deseados.
-
-## Partículas de tipo (Particles kind) Para usar el Emisor de partículas, cree un nuevo objeto de la lista Objetos. Se abrirá un panel:
-
-
-
-Seleccione "Emisores de partículas" de la lista.
-
-Aparecerá un nuevo panel. Este panel contiene las propiedades que se pueden establecer para su emisor. Deberá desplazarse hacia abajo para ver todas las propiedades disponibles para el emisor.
-
-
-
-*Hay 3 modos de renderización disponibles para Emisores de partículas: puntos, líneas y texturas.*
-
-* Modo puntos, se mostrarán círculos con el tamaño especificado.
-* Modo Líneas, mostrará líneas con la longitud y el grosor especificados.
-* Modo texturizado, mostrará una imagen del tamaño especificado.
-
-## Colores (Colors)
-
-* Puede elegir un color de inicio para partículas y un color para atenuar. También puede elegir un valor inicial para la transparencia del objeto.
-
-## Dirección de emisión (Direction of emission)
-
-Las partículas se emitirán en la dirección representada por el ángulo de los emisores en la escena. Puede cambiar el ángulo del cono de rociado, que también se representa en el editor de escenas como dos líneas: un gran valor para este "cono de rociado" dará como resultado una emisión de partículas en un gran número de direcciones. Un valor de 0 emitirá partículas solo en una sola dirección. * Las partículas aparecen en una esfera, alrededor de la posición del objeto emisor. Puedes cambiar el radio de la esfera. * La gravedad se puede aplicar sobre partículas, en los ejes X e Y. Por ejemplo, un valor negativo en el eje Y hará que las partículas suban en el aire. * La fricción influye en la desaceleración de las partículas con el tiempo.
-
-## Tiempo de vida (Lifetime)
-
-* Cada partícula tiene un tiempo de vida limitado que se elige aleatoriamente entre dos valores. Estos dos valores pueden ser cambiados.
-* La cantidad de partículas contenidas en el emisor ("tanque") puede ser ilimitada o fija a un número. Si el emisor está fijado a un número, el emisor dejará de emitir después de alcanzar el número establecido de partículas.
-* El flujo es el número de partículas creadas cada segundo. Puedes ingresar -1 para disparar todas las partículas en un solo disparo.
-
-También puede cambiar el número máximo de partículas renderizadas por el objeto en la pantalla. Tenga en cuenta que este número cambia la memoria tomada por el emisor. *Si este número es demasiado grande, puede hacer que el juego se bloquee.*
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
- Ábre los ejemplos Online.
-
-[](https://editor.gdevelop.io/?project=example://particles-explosions)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-explosions){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://particles-various-effects)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-various-effects){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/objects/shape_painter.md b/docs/es/gdevelop5/objects/shape_painter.md
deleted file mode 100644
index 268de48930a..00000000000
--- a/docs/es/gdevelop5/objects/shape_painter.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: OBJETO DE FORMA PINTOR (Shape painter object)
----
-# OBJETO DE FORMA PINTOR (Shape painter object)
-
-!!! note
-
- **Véalo en acción!** 🎮
- [Prefiero ver los ejemplos de objetos de Shape Painter! Por favor, llévame allí ahora.](#Examples)
-
-Un objeto pintor de formas nos permite dibujar formas en nuestro juego. Puede ser útil para hacer elementos simples de interfaz de usuario (UI). El pintor de formas incluso se puede utilizar para crear un cuadro de selección.
-
-### Añadir un objeto de pintor de formas.
-
-Para agregar un objeto de "pintor de formas", cree un nuevo objeto de la lista del Editor de propiedades a la derecha de la interfaz del editor de escenas. Luego, seleccione y haga clic en el nuevo objeto, seleccione "editar objeto". En la lista que se muestra, haga clic en "Pintor de formas". Es posible que deba desplazarse hacia abajo en la lista para encontrarlo. 
-
-### Editar propiedades (Edit properties)
-
-A continuación queremos editar las propiedades del objeto. Nuevamente, desde la lista de Propiedades a la derecha, haga clic en el objeto. Seleccione "Editar objeto" en la lista emergente que se muestra. Se abre una nueva ventana. Muestra las propiedades del Objeto Pintor. 
-
-### Cambiar el color y la opacidad
-
-La ventana de propiedades de Shape Painter nos presenta opciones que nos permiten cambiar el color de contorno del objeto, el color de relleno / color del objeto, la opacidad de cada color / color y el tamaño del contorno de nuestro objeto.
-
-
-
-### Posición relativa del objeto (Relative object position)
-
-Por defecto, la posición de las formas que dibujamos en la pantalla es relativa al objeto "pintor de formas". 
-
-En el caso de una posición relativa, cuando dibujamos la forma en nuestra pantalla, esa relativa es la posición 0 en los ejes X e Y. Será la posición del objeto Pintor de formas. Es decir, si queremos dibujar una forma donde la posición de la pantalla sea de 100 píxeles en X y 100 píxeles en Y. La posición será de 100 píxeles desde el objeto pintor de formas donde sea que esté en la pantalla.
-
-Cuando la casilla no está marcada o sin marcar, la posición 0 en los ejes X e Y estará en la esquina superior izquierda de nuestra escena, independientemente de dónde se encuentre el objeto.
-
-### Dibujar una forma (Draw a shape)
-
-Para dibujar una forma, como de costumbre, cree un nuevo objeto utilizando el Editor de objetos. Agregue el objeto "pintor de formas" a nuestra escena. Si ejecutamos la vista previa ahora no veremos nada. El objeto del pintor de formas básicamente solo agrega la funcionalidad para el objeto. Por ahora solo tiene las propiedades / parámetros del "pintor de formas". Para dibujar una forma, necesitamos usar el editor de escenas (eventos). //Si no está familiarizado con los eventos, recomiendo revisar la página de eventos en la wiki. //
-
-Vayamos al Editor de Eventos de Escena para agregar un evento. Una vez que haya agregado un nuevo evento, haga clic en el texto "agregar acción".
-
-Encuentra los eventos para el dibujo primitivo.
-
-
-
-Podemos elegir entre 3 tipos diferentes de formas para dibujar. Círculo, línea y rectángulo. Vamos a dibujar un rectángulo en la pantalla. Seleccione el rectángulo debajo de las propiedades del dibujo. 
-
-En el lado derecho, seleccione el objeto de forma de pintor a utilizar. Para la posición superior izquierda ingrese 0 para X e Y. Para la posición inferior derecha ingrese 100 para X e Y. 
-
-Ahora, si iniciamos una vista previa de escena, se dibujará un rectángulo en la escena / pantalla que tiene 100 píxeles de ancho y 100 píxeles de alto. 
-
-Si dejamos la posición relativa habilitada, puede observar que nuestro rectángulo está en la misma posición que el objeto pintor de formas aunque el punto de origen sea 0. Ahora, si deshabilitamos esa opción y lanzamos la vista previa nuevamente, verá nuestro objeto. Se dibuja en la esquina superior izquierda de nuestra escena.
-
-Usando eventos también podemos cambiar cualquier propiedad de una forma sobre la marcha.
-
-
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
- Abra estos ejemplos Online.
-
-[](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/objects/sprite.md b/docs/es/gdevelop5/objects/sprite.md
deleted file mode 100644
index 9b3f52f9c2b..00000000000
--- a/docs/es/gdevelop5/objects/sprite.md
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: Objetos Sprite (Sprite object)
----
-# Objetos Sprite (Sprite object)
-
-!!! note
-
- **Vélo en acción!** 🎮
- [¡Prefiero ver los ejemplos de objetos de Sprite! Por favor, llévame allí ahora.](#Examples)
-
-Los objetos Sprite son los objetos más utilizados en GDevelop.
-
-Un objeto sprite nos permite mostrar una imagen o reproducir una serie de imágenes como animación. Un objeto sprite se puede utilizar para muchas cosas en nuestros juegos. Botones, personajes y plataformas son todos considerados objetos. Cualquier cosa que se pueda representar con una imagen puede ser un objeto sprite.
-
-### Cómo crear un objeto sprite
-
-Para agregar un sprite a su escena, seleccione la opción "haga clic para agregar un objeto" que se encuentra a la derecha en la parte inferior de la lista de Objetos.
-
-
-
-Se abrirá un nuevo panel que le presenta una lista de opciones.
-
-
-
-Elige "Sprite" de la lista para crear un nuevo objeto sprite en la escena de tu juego. 
-
-Una vez que hayamos creado nuestro sprite, haga clic derecho en el objeto sprite en la lista de Objetos. Seleccione "Editar objeto" en el menú emergente. Esta selección abrirá la ventana de propiedades del objeto. Las propiedades son diferentes para cada tipo de objeto. Si el objeto es un sprite, veremos algo como esto.
-
-
-
-### Agregar animacion
-
-A continuación, queremos hacer clic en el botón Agregar animación. 
-
-Ahora deberíamos ver de qué se trata un objeto sprite. 
-
-En esta pantalla, agregamos imágenes a su objeto haciendo clic en el símbolo más. 
-
-A continuación, debemos buscar en nuestra computadora una imagen y seleccionar una. Una vez hecho esto, la imagen de pesar se mostrará en la ventana. 
-
-Si dejamos la imagen como está, nuestro objeto sprite mostrará una sola imagen cuando se agregue a nuestra escena. ¡Pero también podemos agregar imágenes adicionales para crear una animación! 
-
-### Nombra la animación
-
-También podemos nombrar la animación de arriba para que podamos referirnos a esta animación usando su nombre. 
-
-Si no ingresamos un nombre, necesitamos usar el número de animación para referirnos a esta animación.
-
-### Velocidad de la animación
-
-También podemos establecer la velocidad de la animación cambiando el valor con el ícono del reloj. 
-
-El valor que ingresamos aquí es básicamente el tiempo transcurrido entre cada cuadro. 1 es 1 segundo, pero también podemos ingresar valores más pequeños, como 0.5, por ejemplo, para una reproducción más rápida.
-
-### Repite la animación
-
-Por defecto, cada animación se reproduce solo una vez, lo que significa que cuando finalice el último fotograma de la animación, se detendrá. En algunos casos, se prefiere repetir o "hacer un bucle" de la animación. Esto se hace configurando la animación en "bucle" haciendo clic en el icono de repetición.  Una vez que una animación está configurada para hacer un bucle, se reproducirá continuamente.
-
-### Añadir animaciones múltiples
-
-También podemos añadir múltiples animaciones. Para agregar animaciones, haga clic en el botón "agregar animación" de la misma manera que lo hicimos la primera vez. Esta característica nos permite separar fácilmente las diferentes animaciones. 
-
-Más tarde, podemos cambiar entre las animaciones usando eventos.
-
-Finalmente, para guardar las propiedades del sprite, haga clic en el botón "Aplicar" ubicado en la esquina inferior derecha del panel.
-
-
-
-Para agregar el objeto sprite a nuestra escena, simplemente selecciónelo y haga clic en la escena para agregar una instancia del objeto a nuestra escena.
-
-Tu nuevo sprite ahora está completo, pero aún debes agregarlo a la escena de tu juego. Haga clic en el nuevo sprite en la lista de objetos. A continuación, haga clic en la escena donde desea agregar el sprite. Ahora verás tu sprite agregado a la escena. Puedes agregar múltiples "instancias" de tu sprite a tu pantalla de juego. Simplemente repita el proceso para agregar el primer sprite.
-
-
-
-
-
-### Más información sobre animaciones múltiples mientras usas eventos.
-
-El uso de eventos para cambiar la animación se puede hacer creando múltiples animaciones, como se explicó anteriormente, cada una con sus propias imágenes de entrada personal. Si configura el reloj entre 0 y 1, se asegurará de que permanezca activo cuando use eventos.
-
-**NOTA: A diferencia de otro software, ⇐ -1 deshabilita las acciones del evento. _No utilice valores negativos._**
-
-Cuando haya configurado varias animaciones para un objeto, puede usar la pestaña de eventos para '**'establecer la animación por nombre**'. Esto se controla en la sección *Agregar acción* de la condición. Permitirá cualquier condición que use en la sección de *agregar condición* para cambiar a la animación correcta cuando ocurra el evento.
-
-
-
-NOTA: Como costumbre, asegúrese de agregar un nombre a su animación usando la sección de nombre en las propiedades de los objetos:
-
-
-
-Luego ponga ese nombre dentro de la acción del evento con "" a su alrededor: 
-
-Para más detalles del evento, siga los [tutoriales](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials).
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
- Abra estos ejemplos en línea.
-
-[](https://editor.gdevelop.io/?project=example://change-scale-of-sprites)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://change-scale-of-sprites){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://change-sprite-animation)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://change-sprite-animation){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://change-sprite-color)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://change-sprite-color){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://play-stop-sprite-animation)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://play-stop-sprite-animation){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/objects/text.md b/docs/es/gdevelop5/objects/text.md
deleted file mode 100644
index 08e356e4625..00000000000
--- a/docs/es/gdevelop5/objects/text.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: OBJETO DE TEXTO (Text object)
----
-# OBJETO DE TEXTO (Text object)
-
-!!! note
-
- **Véalo en acción!** 🎮
- [Prefiero ver los ejemplos de objetos de texto! Por favor, llévame allí ahora.](#Examples)
-
-Como su nombre lo sugiere, un objeto de texto nos permite mostrar texto en la pantalla / escena.
-
-### Crear un objeto de texto
-
-Primero debemos crear un objeto de texto haciendo clic en el botón Agregar objeto en la parte inferior de la lista Objetos. Seleccione "Texto" de la lista que aparece. 
-
-### Cambiando las propiedades (Change Propierties)
-
-A continuación desea cambiar las propiedades del objeto de texto. Haga clic con el botón derecho en el objeto Texto recién creado en la lista Objetos a la derecha. Seleccione "Editar objeto" de la lista emergente. El panel abrirá la ventana de propiedades. 
-
-### Cambiando Texto (Change Text)
-
-Aquí puede cambiar el texto que muestra el objeto simplemente haciendo clic en el campo de texto y escribiendo otra cosa. 
-
-### Cambiando tamaño (Change size)
-
-También puede cambiar el tamaño del texto cambiando el valor al lado del campo Tamaño. 
-
-### Cambiando Color (Change color)
-
-El color del texto mostrado se puede cambiar haciendo clic en el cuadrado de color de la paleta ubicado a la izquierda de la casilla de verificación "Negrita". 
-
-### Cambiar el Esitlo de Fuente (Change the font style)
-
-El estilo del texto mostrado puede ser cambiado. Puede elegir entre negrita, cursiva o incluso elegir un archivo de fuente personalizado. 
-
-Además, el texto se puede cambiar utilizando eventos. A continuación, el objeto de texto se cambia a 150 px cuando se carga la escena.
-
-
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
- Abra ejemplos Online.
-
-Manipular un objeto de texto
-
-[](https://editor.gdevelop.io/?project=example://manipulate-text-object)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://manipulate-text-object){ .md-button .md-button--primary }
-
-Fade texto dentro y fuera. [](https://editor.gdevelop.io/?project=example://text-fade-in-out)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-fade-in-out){ .md-button .md-button--primary }
-
-Escriba en efecto de texto.
-
-[](https://editor.gdevelop.io/?project=example://type-on-text-effect)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://type-on-text-effect){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/objects/text_entry.md b/docs/es/gdevelop5/objects/text_entry.md
deleted file mode 100644
index e8ef4c41501..00000000000
--- a/docs/es/gdevelop5/objects/text_entry.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: OBJETO DE ENTRADA DE TEXTO (Text entry object)
----
-# OBJETO DE ENTRADA DE TEXTO (Text entry object)
-
-!!! note
-
- **Vélao en acción!** 🎮
- [¡Prefiero ver los ejemplos de objetos de Sprite! Por favor, llévame allí ahora!.](#Examples)
-
-El objeto de entrada de texto captura la entrada del usuario y la almacena en la memoria. Puede utilizar este objeto para simular campos de entrada de texto. Por ejemplo, puede usar el objeto de entrada de texto para proporcionar una forma en que el jugador de su juego pueda ingresar su nombre o cualquier otra información.
-
-### Añadir objeto de entrada de texto
-
-Después de crear un nuevo objeto de la lista del Editor de objetos, seleccione "Entrada de texto" en la lista de opciones mostrada 
-
-Renombra el objeto de entrada de texto a lo que quieras. Agrega el objeto de entrada de texto a la escena.
-
-Ahora, si ejecuta una vista previa de la escena, todas las teclas que presione serán capturadas por el objeto y almacenadas en la memoria. Para leer el valor de la memoria, necesita usar una expresión como esta: TextEntry.String () (vea un ejemplo a continuación).
-
-### Mostrar valor usando un objeto de texto
-
-Primero, agrega un objeto de texto a la escena. Luego, agregue un evento para modificar el contenido del objeto de Texto: 
-
-Para el último parámetro, que es el nuevo contenido para el texto, use la expresión mencionada anteriormente: 
-
-*Tenga en cuenta que la entrada debe ser el nombre del objeto de entrada de texto. Debe reemplazarlo con el nombre de su entrada de texto.*
-
-Preferiría ver el Sprite oNow si ejecutas una vista previa de la escena. Comience a escribir, verá el objeto de texto que muestra lo que escribe.
-
-Usando eventos, es posible habilitar o deshabilitar el objeto "Entrada de texto". Los eventos también le permiten controlar cuándo capturar la entrada de texto y cuándo no capturar los ejemplos de entrada de texto. Por favor, llévame allí ahora.
-
-
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
- Abre estos ejemplos online
-
-
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-entry-object){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/objects/tiled_sprite.md b/docs/es/gdevelop5/objects/tiled_sprite.md
deleted file mode 100644
index d76f034fbd9..00000000000
--- a/docs/es/gdevelop5/objects/tiled_sprite.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: OBJETO SPRITE DE AZULEJOS (Tiled Sprite object)
----
-# OBJETO SPRITE DE AZULEJOS (Tiled Sprite object)
-
-!!! note
-
- **Véalo en acción!** 🎮
- [¡Prefiero ver los ejemplos de objetos de Tiled Sprite! Por favor, llévame allí ahora.](#Examples)
-
-Un objeto sprite de mosaico nos permite mostrar una imagen en un conjunto de mosaicos. Puede aumentar y disminuir el tamaño del conjunto de azulejos al escalar el objeto en la escena.
-
-Un objeto sprite de mosaico puede usarse para crear plataformas en un juego de plataformas. También se puede utilizar como un grupo de las mismas imágenes. En este caso, no es necesario tratar con múltiples objetos de sprite. 
-
-### Añadir un objeto sprite en mosaico
-
-Para agregar un objeto de Sprite en mosaico a una escena, cree un nuevo objeto de la lista de objetos. Seleccione la opción "Sprite en mosaico" en el panel que se abre.
-
-
-
-### Abrir propiedades de objeto
-
-A continuación, nuevamente desde la lista de Objetos a su derecha, abra las propiedades del objeto haciendo clic derecho en el objeto. Seleccione "Editar objeto" en la lista emergente que aparece.
-
-
-
-### Añadir una imagen
-
-Para agregar una imagen al objeto, haga clic en el campo "Seleccionar una imagen". Se abrirá un explorador de archivos local en su computadora. Elige una imagen de tu elección. 
-
-La imagen seleccionada se mostrará en la ventana de vista previa a la derecha. 
-
-### Cambiar tamaño predeterminado
-
-Podemos cambiar el tamaño predeterminado del objeto sprite en mosaico cambiando el ancho predeterminado y el valor de altura predeterminado en la parte inferior. 
-
-El tamaño predeterminado afecta la cantidad de imagen que será visible en el objeto. Por ejemplo, así es como se ve mi imagen con un tamaño de objeto de 32 × 32. 
-
-Como puede ver, la imagen de arriba no se escala con el objeto sino que hace que la imagen solo sea parcialmente visible.
-
-Si configuro el tamaño del objeto en 100 × 100 (como se ve a continuación), el tamaño del objeto es más grande que la imagen real, por lo que continúa dibujando la imagen nuevamente para llenar el espacio vacío. 
-
-### Escalar el objeto
-
-Puede obtener resultados instantáneos al escalar el objeto en el editor de escenas para crear el aspecto / tamaño que necesita. 
-
-El editor de escenas (eventos) también se puede usar para cambiar el tamaño de un sprite en mosaico. Usar el editor de Eventos hace que el juego sea más fluido e interesante.
-
-
-
-## Ejemplos
-
-!!! note
-
- **Véalo en acción!** 🎮
- Abre los ejemplos Online.
-
-[](https://editor.gdevelop.io/?project=example://platformer)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary }
diff --git a/docs/es/gdevelop5/publishing/android-app-installed.png b/docs/es/gdevelop5/publishing/android-app-installed.png
deleted file mode 100644
index 5038ffd0e73..00000000000
Binary files a/docs/es/gdevelop5/publishing/android-app-installed.png and /dev/null differ
diff --git a/docs/es/gdevelop5/publishing/android_and_ios/index.md b/docs/es/gdevelop5/publishing/android_and_ios/index.md
deleted file mode 100644
index 1d6a2e3c735..00000000000
--- a/docs/es/gdevelop5/publishing/android_and_ios/index.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: Publica tu juego en Android o IOS
----
-# Publica tu juego en Android o IOS
-
-GDevelop te permite publicar tus juegos en una gran variedad de formatos incluyendo Android e IOS con los servicios de construcción online o [manualmente](/gdevelop5/publishing/android_and_ios_with_cordova). Para exportar el juego, haga click/seleccione "Archivo" en el menú ubicado en la parte superior de la interfaz de GDevelop. Seleccione la opción de exportación que desee. En este caso, vamos a elegir **Android e iOS** Desde el panel de opciones que aparece
-
-
-
-## ¡Asegúrate de que tu juego está listo para exportar!
-
-Es importante verificar que tu juego está listo para ser exportado a Android o IOS:
-
- * En las propiedades del juego están accesibles desde el [Administrador de proyector](/gdevelop5/interface)), asegúrese de introducir un _nombre de paquete válido_. Un nombre de paquete es un identificador como este: `com.tunombre.nombredeljuego`. Es como el nombre de un sitio web pero al revés. Puedes elegir cualquier nombre simpre que:
- * No está siendo usado por otra aplicación o juego en iOS o Android.
- * Está escrito solo con letras, números y puntos. Solo tiene puesto un punto entre letras (pro ejemplo, `com..mijuego` o `..mijuego` no son válidos). _Limita este identificador a 2 o 3 palabras como máximo._
- * Comprueba que hayas añadido los iconos requeridos.
-
-
-## Abra la exportación
-
-En el menú "archivo" elija exportar. Posteriormente elija **Android (y iOS próximamente)**.
-
-
-
-
-
-
-### Crear una cuenta si todavía no tienes
-
-Para usar el empaquetado para android necesitas una [cuenta de GDevelop](/gdevelop5/interface/profile). Si no tienes una, haga click en "CREAR MI CUENTA", Introduzca su email y elija una contraseña.
-
-Elije si deseas exportar un **APK** o un **Android App Bundle**:
-
-- Un **APK** Te permite enviar el archivo generado a un dispositivo Android e instalarlo. Es ideal para de forma rápida **probar tu juego en un dispositivo Android**.
-- Un **Android App Bundle** (también abreviado "AAB") es el formato requerido para [publicar en Google Play](/gdevelop5/publishing/android_and_ios/play-store). Si creas creas un juego en Google Play Developer Console (Consola de desarrollo de Google Play Store o página del desarrollador de Google Play), necesitarás subir un archivo AAB.
-
-Una vez estés listo, haga click **EMPAQUE PARA ANDROID**:
-
-
-
-Ahora espere a que la exportción se termine de realizar.
-Hay algunos pasos mientras que el juego es exportado, comprimido, subido al servicio de construcción y contruido.
-
-Al final, aparecerá un botón **DESCARGAR** para obtener el archivo APK o [AAB para publicar en google play](/gdevelop5/publishing/android_and_ios/play-store).
-
-
-## Instalación en tu dispositivo Android (APK)
-
-!!! note
-
- Para probar el juego en tu teléfono deberás de haber elegido APK. Si desea distribuirlo en Google Play, [lea esta página](/gdevelop5/publishing/android_and_ios/play-store).
-
-Conecte su teléfono/tablet y transfiera el archivo APK file en alguna carpeta o sitio del dispositivo. De forma alternativa, puedes pasar el archivo APK mediante alguna plataforma de almacenamiento en la nube, servicio de transferencia o email. Algunos ejemplos: ([Dropbox](https://www.dropbox.com/), [Google Drive](http://drive.google.com/), [OneDrive](https://onedrive.live.com/about/en-in/)...) posteriormente tras transferirlo a alguno de estos servicios necesitará descargar el archivo e instalarlo.
-
-Antes de intalar el APK, vaya a Ajustes > Seguridad y active *Orígenes/fuentes desconocidos/as*. Esto va a permitirte [instalar el archivo apk](https://developer.android.com/studio/publish#publishing-unknown) aunque no estés registrado en Google Play Store.
-
-Finalmente, abra un *Administrador de archivos*, vaya a la carpeta que contiene su APK y haga click para abrirlo e instalarlo:
-
-
-
-La aplicación/juego ya está instalada. Haga click en *Abrir* para ejecutarla:
-
-
-
-
-
-### Juega al juego
-
-¡El juego está ahora instalado correctamente en tu dispositivo! Ábrelo como cualquier otro juego o app.
-
-Tú has creado un *juego para Android* directamente desde GDevelop. Puedes actualizarlo fácilmente: exporte el juego de nuevo, transfiera el archivo APK de nuevo a su dispositivo e instálelo.
-
-
-## Subscríbete para obtener más exportaciones diarias.
-
-Como usuario registrado, usted puede empaquetar dos veces su juego diariamente.
-
-Si estás trabajando mucho en tu juego, seguramente querrá exportar más veces el juego. Puedes exportar hasta 10 veces con una subscripción Indie y hasta 70 con una subscripción Pro.
-
-Obteniendo una subscripción ayuda a los autores de GDevelop a continuar trabajando (GDevelop es un software open-source o de código libre/abierto)
-
-
-## Publicando tu juego en tiendas o Google Play Store ("Android App Bundles")
-
-Una vez exportado tu juego y probado, deberás exportarlo como **Android App Bundle** Para publicarlo en Google Play Store. Lea [esta página para obtener más información](/gdevelop5/publishing/android_and_ios/play-store).
-
-También puedes publicarlo en otras tiendas [Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store) (usando un **APK** por ahora en la mayoría de los casos)(Posteriormente puede que algunas plataformas también soporten archivos *ABB*).
\ No newline at end of file
diff --git a/docs/es/gdevelop5/publishing/android_and_ios/play-store.md b/docs/es/gdevelop5/publishing/android_and_ios/play-store.md
deleted file mode 100644
index f36c16b961b..00000000000
--- a/docs/es/gdevelop5/publishing/android_and_ios/play-store.md
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: Publica tu juego en Play Store
----
-# Publica tu juego en Play Store
-
-Después de crear tu juego con Android (ya sea usando [compilación con un clic para Android](/gdevelop5/publishing/android_and_ios) o [proceso manual con Cordova para usuarios avanzados](/gdevelop5/ publishing/ android_and_ios_with_cordova)), puedes publicar en Google Play Store.
-
-Para hacer esto, necesita tener una cuenta en Google Play Store. Google solicita una tarifa de registro única de $ 25.
-
-!!! warning
-
- ¿Has publicado un juego en el pasado cargando un APK? Debes realizar [los siguientes pasos para actualizar tu juego de un APK a un Android App Bundle](/gdevelop5/ publishing/ android_and_ios/play-store/upgrade-from-apk-to-aab) para continuar publicando. [Lea esta página](/gdevelop5/publishing/android_and_ios/play-store/upgrade-from-apk-to-aab), ya que es obligatorio hacerlo desde agosto de 2021.
-
-## Crea tu cuenta de desarrollador de Google Play
-
-Para crear su cuenta, vaya a la [Google Player Console](https://play.google.com/console/about/).
-
-## Empaquete su juego
-
-Paquete [su juego como se explica aquí](/gdevelop5/ publishing/ android_and_ios) - eligiendo **Android App Bundle**.
-
-Una vez finalizado el empaquetado, tendrá un **botón Descargar** para obtener el archivo AAB que se puede publicar en Google Play.
-Descárguelo y guárdelo en algún lugar de su computadora.
-
-## Crea la aplicación y completa los detalles de la aplicación
-
-Conéctese a la Consola para desarrolladores de Play Store (https://play.google.com/apps/publish/). En las páginas que enumeran sus aplicaciones, haga clic en **Crear aplicación**:
-
-
-
-Ingrese un título y elija un idioma. La aplicación se crea en Play Store y ahora puede completar la información que se mostrará en Play Store:
-
-
-
-Haga clic en **Crear aplicación** para continuar.
-
-## Crea una "versión" y sube el paquete de aplicaciones de Android
-
-En el menú de la izquierda, busque la sección ** Lanzamiento **. Elige ** Producción **, ** Prueba abierta **, **Prueba cerrada** o **Prueba interna** según cómo quieras distribuir tu juego primero. Le recomendamos que comience con ** Pruebas internas **. Luego, puedes hacer un lanzamiento de "Producción" una vez que estés satisfecho con el juego.
-
-Haga clic en ** Create Release **:
-
-
-
-Se le solicita *Firma de aplicaciones de Google Play*, haga clic en **Continuar**.
-
-
-
-En **App Bundles**, elija **Upload** y seleccione su Android App Bundle que fue empaquetado por GDevelop.
-
-El AAB se carga en Play Store. Espera un poco.
-Una vez que haya terminado, debería ver un mensaje que indica que la carga se completó correctamente.
-
-Si la carga es un éxito, puede ver su archivo AAB enumerado a continuación:
-
-
-En **¿Qué hay de nuevo en esta versión?**, ingrese las notas de la versión que deben mostrarse en Play Store. Para terminar, haga clic en **Guardar**.
-
-### ¿Algo salió mal?
-
-Si hay un error que le indica que la carga falló, lea el mensaje de error para saber más sobre lo que salió mal. Por lo general, significa que:
-
-* El nombre del paquete no es correcto. En GDevelop, usando [el adminiastrador de proyectos](http://wiki.compilgames.net/doku.php/gdevelop5/interface/project-manager), ingrese un nombre de paquete nuevo y único
-* O usó el mismo nombre de paquete que una aplicación existente. Elige otro en el [administrador de proyectos](http://wiki.compilgames.net/doku.php/gdevelop5/interface/project-manager) y vuelva a empaquetar su juego para crear un nuevo AAB.
-
-!!! note
-
- Si solía publicar su aplicación con un APK, debe actualizar a Android App Bundles. [Lea esta página para aprender cómo hacer esto](/gdevelop5/publishing/android_and_ios/play-store/upgrade-from-apk-to-aab).
-
-## Termina de ingresar todos los detalles sobre el juego
-
-Antes de hacer público su juego, debe terminar de ingresar todos los detalles sobre su juego, incluido el precio y encontrar una calificación para el contenido. Consulte la sección "Crecer" en el menú y asegúrese de completar todos los detalles requeridos:
-
-
-
-## ¡Publica el juego!
-
-Una vez que haya completado todo, ingresado una descripción agradable, configurado hermosas capturas de pantalla y cargado el paquete de aplicaciones de Android de su juego, puede volver a la sección **Lanzamiento**. Haga clic en **Producción** y cree una versión para ello.
-
-
-## ¡Felicidades! El juego está en Play Store.
-
-**¡Felicidades!** Lo lograste y publicaste tu juego.
-Algunos usuarios pueden tener que esperar unas horas antes de ver el juego en Play Store.
-
-Recuerda contarlo en las redes sociales, en Discord y en el foro para que la comunidad lo sepa.
\ No newline at end of file
diff --git a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.24.43.png b/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.24.43.png
deleted file mode 100644
index 1b66a743078..00000000000
Binary files a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.24.43.png and /dev/null differ
diff --git a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.25.39.png b/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.25.39.png
deleted file mode 100644
index 3ca3125233f..00000000000
Binary files a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.25.39.png and /dev/null differ
diff --git a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.27.55.png b/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.27.55.png
deleted file mode 100644
index 22fae758708..00000000000
Binary files a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.27.55.png and /dev/null differ
diff --git a/docs/es/gdevelop5/publishing/index.md b/docs/es/gdevelop5/publishing/index.md
deleted file mode 100644
index 2eda2bf27ff..00000000000
--- a/docs/es/gdevelop5/publishing/index.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Publicacion de juegos
----
-# Publicacion de juegos
-
-¡GDevelop te permite publicar tus juegos en cualquier plataforma moderna! Sin embargo, el juego necesita ser exportado primero.
-
-Para exportar el juego, haga clic en Archivo en la barra de menú sobre la Interfaz de GDevelop. Seleccione la opción Exportar de la lista emergente que aparece.
-
-
-
-A continuación se le presentarán múltiples opciones para elegir:
-
-
-
- * **[Android (y iOS próximamente)](/gdevelop5/publishing/android_and_ios):** esto prepara su juego para Android (y la compatibilidad con iOS estará disponible próximamente). Lo construye en línea, utilizando los servicios en línea de GDevelop. Luego te envía un enlace para que puedas instalarlo en Android y [publícalo en Play Store](/gdevelop5/publishing/android_and_ios/play-store) (o App Store más tarde para iOS).
-
- * **[Facebook Instant Games (Messenger)](/gdevelop5/publishing/publishing-to-facebook-instant-games):** esto prepara su juego para que pueda cargarse en Facebook Instant Games y jugarse en Messenger, compartirlo con sus amigos y luego publicarlo en todo el mundo.
-
- * **[Web (subir en línea)](/gdevelop5/publishing/web)**: esta opción cargará tu juego a GDevelop hosting, de forma gratuita. A continuación, puede compartirlo con cualquier persona con un clic de un botón.
-
- * **[Windows, macOS & Linux](/gdevelop5/publishing/windows-macos-linux)**: esta opción agrupa tu juego como una aplicación de Windows, macOS o Linux, compílalo en línea, utilizando los servicios en línea de GDevelop, y luego te envía un enlace para que puedas distribuir el juego.
-
-También hay exportaciones para usuarios avanzados:
-
- * **[Exportar a una carpeta local](/gdevelop5/publishing/html5_game_in_a_local_folder):** esta opción le permite exportar su juego a una carpeta y cargarlo manualmente a cualquier host que desee o envolver el juego en una aplicación de escritorio o móvil manualmente usando cualquier herramienta que prefiera, como Electron.
-
- * **[iOS & android (manual)](/gdevelop5/publishing/android_and_ios_with_cordova):** esta opción va a exportar tu juego listo para ser utilizado como un proyecto de Cordova. Luego puedes usar las herramientas de la línea de comandos de Cordova para construir tu juego para Android e iOS.
-
- * **[Windows, macOS and Linux (manual)](/gdevelop5/publishing/windows-macos-linux-with-electron):** Esta opción va a exportar tu juego listo para ser utilizado como un proyecto de Electron. Luego puedes usar las herramientas de la línea de comandos para construir tu juego para Windows, macOS o Linux.
diff --git a/docs/es/gdevelop5/publishing/web.md b/docs/es/gdevelop5/publishing/web.md
deleted file mode 100644
index b9bbb71aaf3..00000000000
--- a/docs/es/gdevelop5/publishing/web.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Publicando tu juego en la web (subir en línea)
----
-# Publicando tu juego en la web (subir en línea)
-
-Usando los servidores de hosting de GDevelop, puedes exportar tu juego para su publicación en la web. . Los servidores de hosting son gratuitos. ¡Tu juego estará disponible por unos días!
-
-Para cargar en los servidores, en el menú Archivo, seleccione Exportar. Luego elija **Web (subir en línea)**, y luego simplemente haga clic en **Exportar y cargar mi juego**.
-
-
-
-El juego se alojará en servidores de hosting GDevelop. Estos servidores están respaldados por los servicios robustos de Amazon. Los juegos que subas están disponibles para compartirlos durante unos días. No se cobra por este servicio.
-
-Tenga en cuenta que el enlace, por defecto, es **privado**. No se comparte en ningún lugar. Puedes compartir el enlace a tu juego de acuerdo a tus necesidades. Compartir con algunas personas o una audiencia más grande.
-
-## Exportar a otras plataformas (iOS, Android, Windows, macOS, Linux)
-
-¡Consulta [otras opciones de exportación](/gdevelop5/ publishing) para aprender a publicar tu juego en otras plataformas!
diff --git a/docs/es/gdevelop5/publishing/windows-macos-linux.md b/docs/es/gdevelop5/publishing/windows-macos-linux.md
deleted file mode 100644
index 5179dfc5e22..00000000000
--- a/docs/es/gdevelop5/publishing/windows-macos-linux.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: Publica tu juego en Windows, macOS y Linux
----
-# Publica tu juego en Windows, macOS y Linux
-
-¡GDevelop puede publicar juegos para Windows, macOS e incluso Linux!
-
-Para exportar un juego, haga clic / seleccione "Archivo" en el menú que se encuentra en la parte superior de la interfaz de GDevelop. Elija la opción "Exportar" de la lista desplegable.
-
-
-
-## ¡Asegúrate de que tu juego esté listo para empacar!
-
-Es importante verificar que su juego esté listo para ser exportado como un ejecutable:
-
-- En las propiedades del juego (accesible desde [Project Manager](/gdevelop5/ interface)), asegúrate de ingresar un _package name_ válido. Un nombre de paquete es un identificador como este: `com.yourname.gamename`. Es como la dirección de un sitio web, pero invertida. Puede elegir cualquier nombre de paquete siempre que:
-
-
-
- * No es usado por otro juego o aplicación en iOS o Android.
- * Está escrito solo con letras, números y puntos. Solo ponga un punto entre las palabras (por ejemplo, "com..mygame" o "..mygame" no son válidos), y limite este identificador a un máximo de 2-5 palabras.
- * En las propiedades del juego, ingresa un número de versión válido (como 1.0.0, 1.0.1 ...)
- * Comprueba que has configurado los iconos.
-
-## Iniciar exportación
-
-En el menú Archivo, elija Exportar. Elija entonces **Windows, macOS y Linux**.
-
-### Crea una cuenta, si no tienes una
-
-Para usar el paquete, necesita un [GDevelop account](/gdevelop5/ interface/ profile). Si no tiene una, haga clic en "Crear mi cuenta", ingrese su correo electrónico y elija una contraseña.
-
-### Elige las plataformas y lanza la exportación.
-
-Elige las plataformas para las que quieres exportar el juego. Para Windows, puede elegir si desea un solo archivo ejecutable o un archivo zip: 
-
-Una vez que esté listo, haga clic en **Exportar**.
-
-Ahora, espera a que el juego sea construido. Puede tardar unos minutos dependiendo de las plataformas que haya elegido. Hay algunos pasos, durante los cuales el juego se exporta, se comprime, se carga en el servicio de compilación en línea y se construye.
-
-Cuando haya terminado, verá un botón de descarga para cada plataforma que se seleccionó para su juego. Use los botones de descarga para recibir los archivos que puede distribuir para jugar en su juego.
-
-### Jugar el juego
-
-* En Windows, haga doble clic en el archivo ejecutable con el nombre de su juego para iniciarlo.
-* En macOS, extraiga el archivo y haga doble clic en la aplicación para iniciarla.
-* En Linux, [install the AppImage](https://appimage.org/) para ejecutar el juego
-
-!!! note
-
- Al iniciar el juego en Windows y macOS, puede recibir un aviso sobre la seguridad. Elige ejecutar el juego de todos modos. En macOS, es posible que deba abrir la pestaña * Seguridad y privacidad * en * Preferencias del sistema *.
diff --git a/docs/es/gdevelop5/tutorials/asteroids/index.md b/docs/es/gdevelop5/tutorials/asteroids/index.md
deleted file mode 100644
index 6252715a5f0..00000000000
--- a/docs/es/gdevelop5/tutorials/asteroids/index.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: start
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-# Asteroides
-
-## Series
-
-1\. [Getting Started](/gdevelop5/tutorials/asteroids/start) 2. [Ship and Movement Controls](/gdevelop5/tutorials/Asteroids/Ship And Movement Controls) 3. [Firing Mechanic](/gdevelop5/tutorials/Asteroids/Firing Bullet) 4. [Setting Scene](/gdevelop5/tutorials/Asteroids/Setting Scene) 5. [Splitting Asteroids](/gdevelop5/tutorials/Asteroids/Splitting Asteroids) 6. [Screen Wrap](/gdevelop5/tutorials/Asteroids/Screen Wrap) 7. [Fail State](/gdevelop5/tutorials/Asteroids/Fail State) 8. [End Result](/gdevelop5/tutorials/end_result) \## Descargar material gráfico (llamado también arte)
-
-El material gráfico (arte) utilizado en este ejemplo es de .
-
-Descargue el arte y familiarícese con lo que contiene el paquete.
-
-## Open a blank game project in GDevelop
-
-When you open the engine, you'll see this screen. Click on the button that has been highlighted in red.
-
-
-
-## Name project
-
-Give your project a name, and click on the create project button.
-
-
-
-## Add a scene
-
-Add a scene by pressing on the highlighted button in the image below. Right click on that scene to rename it. Then left click on the scene to open it.
-
-
-
-## Set background color
-
-Right click on the background of the game scene, and click on "Scene properties". From there, click on the color selector and drag to select black.
-
-
-
-## Check game resolution
-
-Open the project manager, and go to the game settings.
-
-Select properties, and make sure your game's resolution is 800 by 600 - or the preferred "Golden Ration" of 800x500
-
-
-
-## Next step
-
-[Ship and Movement Controls](/gdevelop5/tutorials/Asteroids/Ship And Movement Controls)
diff --git a/docs/es/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/es/gdevelop5/tutorials/basic-game-making-concepts.md
deleted file mode 100644
index 4007cce3a80..00000000000
--- a/docs/es/gdevelop5/tutorials/basic-game-making-concepts.md
+++ /dev/null
@@ -1,171 +0,0 @@
----
-title: Conceptos básicos de creación de juegos - lo que necesitas saber para comenzar con GDevelop
----
-# Conceptos básicos de creación de juegos: lo que necesitas saber para comenzar con GDevelop
-
-Los conceptos básicos de GDevelop son simples. Lee la siguiente información para comenzar con el software. Si no tienes GDevelop, descarga la última versión aquí:
-
-## Mostrar cosas en la pantalla: los Objetos
-
-Todo lo que se muestra en la pantalla se llama **"Objeto"**. Se pueden usar diferentes tipos de objetos para mostrar diferentes elementos del juego en la pantalla. Por ejemplo, la mayoría de los gráficos del juego son objetos "Sprite", los textos se pueden mostrar con objetos "Texto" y se pueden crear efectos especiales como un incendio o chispas con "Emisores de partículas".
-
-
-
-La página wiki asociada con los objetos se puede encontrar [aquí](/es/gdevelop5/objects/).
-
-## Coordenadas
-
-Los objetos en la pantalla/escena de GDevelop tienen **coordenadas X e Y**. Estas coordenadas corresponden a la posición horizontal (eje X) y la posición vertical (eje Y) en el plano cartesiano.
-
-La coordenada X disminuye a medida que avanza hacia la izquierda y aumenta a medida que avanza hacia la derecha. La coordenada Y aumenta a medida que desciendes y disminuye a medida que subes.
-
-
-
-Para mover o rotar objetos, debes especificar el ángulo deseado en grados. La siguiente ilustración muestra cómo GDevelop entiende el ángulo de rotación:
-
-
-
-La siguiente imágen muestra estos dos conceptos utilizados dentro del motor, modificando la posición X e Y y la rotación el objeto sprite de la nave. Ten en cuenta que la esquina superior izquierda de la pantalla predeterminada del juego, la posición de la pantalla cuando no se ha aplicado ningún movimiento de la cámara, es donde X=0 e Y=0.
-
-
-
-Tenga en cuenta que los ángulos también pueden ser negativos. Por ejemplo, -90 grados es igual a 270 grados.
-
-Si utilizas funciones trigonométricas como el **seno** o el **coseno**, deberás expresar los ángulos en **radianes**. (1 radián = 180/pi grados y 1 grado = pi/180 radianes. Pi es el número que es aproximadamente igual a 3.14159).
-
-## Eventos
-
-Los eventos, que usas para crear las reglas de tu juego, se componen de condiciones y acciones. Las condiciones pueden considerarse como "si" y las acciones pueden considerarse como "entonces", con el propósito de hacer que las cosas sucedan en tu juego. "Si" las condiciones son verdaderas/cumplidas, "entonces" las acciones sucederán. La mayoría de las condiciones y acciones se refieren a objetos:
-
-- Las condiciones ejecutan una **prueba** en los objetos.
-- Unordered List ItemLas acciones **manipulan** el objeto. Pueden cambiar la posición del objeto, la apariencia, etc.
-
-Un evento, sin ninguna condición, es tratado como si sus condiciones fueran verdaderas. Por lo tanto, en la imágen a continuación, el objeto de la nave girará a la velocidad dada a la acción de rotación.
-
-
-
-Si a este evento se le da la condición "El cursor/toque está encendido" y seleccionamos el objeto de barco para este evento, entonces la acción solo ocurrirá "si" el cursor del mouse está en el objeto de barco.
-
-
-
-La página wiki asociada con eventos se puede encontrar [aquí](/es/gdevelop5/events/).
-
-## Cómo seleccionan los objetos estos eventos Una acción, sin condición, se refiere a todos los objetos. Si utiliza un objeto por primera vez en un evento, GDevelop probará o modificará todos los objetos con este nombre en la escena. Si vuelve a utilizar el objeto en el mismo evento, GDevelop probará o modificará sólo los objetos que hayan sido seleccionados por las condiciones anteriores.
-
-Por ejemplo, este evento no tiene ninguna condición. Eliminará todos los objetos llamados "Barco":
-
-
-
-El siguiente evento tiene una condición. Eliminará solo los objetos "Enviar" con una posición X que sea menor que la del cursor del mouse:
-
-
-
-!!! note
-
- **Velo en acción!** 🎮Abre este ejemplo en línea:
-
-
-
-La página wiki asociada con la selección de objetos se puede encontrar [aquí](/gdevelop5/events/object-picking).
-
-## Eventos: el orden es importante**El orden de los [eventos](/es/gdevelop5/events/) sí importa!**
-
-Los eventos en la parte superior se ejecutan primero. Los eventos se ejecutan cada vez que se muestra el juego. Esta pantalla se denomina marco. Se ejecuta unas 60 veces por segundo. Los siguientes ejemplos **no** son equivalentes:
-
- 
-
-- En la primera imagen de arriba, el primer evento crea un objeto "Ship" en las coordenadas X: 100, Y: 200 (100;200) en la capa base. A continuación, el siguiente evento elimina ese barco creado inmediatamente. Este par de eventos **no mostrará** un barco en la pantalla ya que elimina justo después de ser creado.
-- En la segunda imagen de arriba, el primer evento elimina todos los objetos "Ship" de la escena/pantalla. Luego crea un "Barco" en las coordenadas de escena/pantalla X: 100, Y: 200 (100;200) en la capa base. Este par de eventos **mostrará** un barco en la pantalla (antes de ser eliminado en el siguiente fotograma. Después, será recreado inmediatamente).
-
-## Comportamientos: reglas y lógica predefinidas para objetos
-
-Los **comportamientos** mejoran un objeto con cierta *lógica predefinida*. Pueden ser razonablemente sencillos, automatizando tareas simples o tareas mucho más avanzadas. Por ejemplo:
-
-* Se puede usar un comportamiento para eliminar *automáticamente* un objeto del juego cuando sale de la pantalla (lo que limita el uso de memoria del juego). * Se puede utilizar otro comportamiento para *mover objetos en la pantalla con las flechas del teclado*. * Se puede usar otro comportamiento para permitir que el objeto *sea arrastrado por la pantalla* con el ratón o tocando el objeto. * El comportamiento de la física es un ejemplo de un comportamiento avanzado que hace que sus objetos se muevan de una manera realista, siguiendo las *leyes de la física*.
-
-Los **comportamientos** a menudo vienen con sus propias variables que se pueden cambiar para personalizar la tarea que realizan, pero también se pueden manipular utilizando eventos que son específicos de ese comportamiento.
-
-
-
-La página wiki asociada con comportamientos se puede encontrar [aquí](/es/gdevelop5/behaviors/).
-
-!!! note
-
- Puedes crear comportamientos personalizados para tus objetos. Te recomendamos esto a medida que tu juego crezca. Te permite poner lógica sobre lo que están haciendo tus objetos en los comportamientos personalizados, en lugar de hinchar la hoja de eventos de la escena. [Lee más en este artículo](/gdevelop5/tutorials/how-to-make-behavior).
-
-##Objetos en movimiento: uso de las fuerzas incorporadas
-
-Se puede lograr poner en movimiento objetos con **fuerzas**. Las fuerzas se utilizan para "empujar" objetos.
-
-Puedes especificar:
-
-- Las coordenadas de una fuerza en los ejes X e Y, en píxeles.
-- Sus coordenadas polares (el ángulo de fuerza, en grados, y la longitud, en píxeles).
-- Si la fuerza es instantánea (solo empujará "un poco" el objeto) o continua (seguirá empujando el objeto hasta que se elimine).
-
-### Ejemplo Supongamos que deseas mover un objeto a la derecha o a la izquierda de la pantalla.
-
-Puedes agregar una fuerza utilizando coordenadas X/Y, especificando 50 para la coordenada X y, por ejemplo, 0 píxeles para la coordenada Y. También puedes usar coordenadas polares y agregar una fuerza con un ángulo de 180° y una longitud de 50 píxeles.
-
-En el siguiente ejemplo, la posición X de la nave se utiliza para establecer las condiciones que hacen que vaya en la dirección opuesta cuando pasa de 200 o 600, a lo largo del eje X.
-
-
-
-### Otras formas de mover objetos.
-
- Algunos comportamientos, como el Motor de físicas o el Localizador de rutas, pueden mover objetos por sí mismos. En este caso, es mejor no utilizar el sistema de fuerzas integrado y, en cambio, confiar solo en las acciones proporcionadas por estos comportamientos. \**Véelo en acción!** 🎮 Abre este ejemplo en línea:
-
-
-
-!!! note
-
- Estas otras formas de mover objetos se explican en [esta página de procedimientos](/gdevelop5/tutorials/how-to-move-objects). \## Almacenamiento de cualquier información en memoria: Variables
-
-Una variable te permite almacenar datos. Por ejemplo, una variable puede almacenar un número o un texto. Podríamos compararlos con cajones o cajas donde podemos archivar notas. Cualquier dato se puede almacenar en una variable, siempre y cuando esté en formato de texto o número. Cosas como el número de vidas que le quedan a un jugador, la puntuación más alta de un jugador, el número de balas que quedan o el número de enemigos muertos son ejemplos de lo que se puede almacenar en una variable. Probablemente vaya a ser para ti una práctica común almacenar números en variables.
-
-
-
-Las acciones y condiciones comprueban o cambian el *valor* de una variable.
-
-#### ¿Dónde se almacenan las variables? ("ámbito" de variable)
-
-El *ámbito* o *alcance* de una variable determina el lugar desde el que se puede acceder una variable. En GDevelop, hay tres ámbitos de variable disponibles:
-
-* **Variables Globales**, que son accesibles desde todas las escenas del juego. Por ejemplo, se pueden usar para almacenar la puntuación del jugador en diferentes niveles/escenas. * **Variables de Escena**, que solo son accesibles desde la escena en la que se crean. Se pueden usar para datos que solo conciernen a una escena. Una variable de escena podría acceder al tiempo restante para completar el nivel/escena.
-
-* **Variables de Objeto**, que solo se refieren a un objeto. Por ejemplo, un héroe puede tener una variable "Salud" o "Munición".
-
-
-
-La página wiki asociada con variables se puede encontrar [aquí](/es/gdevelop5/all-features/variables).
-
-Para ampliar aún más cómo se pueden usar las variables en un juego, ve [expresiones](/es/gdevelop5/all-features/expressions).
-
-## Una noción avanzada: el "tiempo transcurrido" desde el último fotograma (TimeDelta)
-
-El juego evalúa eventos y vuelve a recrear la pantalla varias veces por segundo: decimos que el juego *se actualiza* durante un "tick". La frecuencia con la que esto sucede depende de los recursos de su computadora: una computadora lenta puede renderizar 25 cuadros por segundo, una rápida 60. GDevelop generalmente puede asegurarse de que este valor sea el mismo en todos los equipos. Sin embargo, la velocidad de algunas operaciones puede cambiar de una computadora a otra, por ejemplo, las operaciones matemáticas y la representación de movimientos.
-
-Para hacer que la velocidad de los cambios sea constante, utiliza la [expresión](/es/gdevelop5/all-features/expressions) TimeDelta() que devuelve el tiempo en segundos desde el último fotograma. Por ejemplo, no hagas esto:
-
-
-
-Pero haz esto en su lugar:
-
-
-
-- El primer evento es agregar 20 a la variable cada vez que se actualiza el juego (es decir, tanto como sea posible, hasta 60 veces por segundo). **No es correcto** usar tal evento, ya que la velocidad del aumento de la variable no será la misma de una computadora a otra: no podemos predecir el valor de la variable después de 10 segundos, por ejemplo, ya que depende del número de fotogramas del juego pintado.
-- El segundo evento **es correcto y confiable**: El número 300 se multiplica por TimeDelta(). Por lo tanto, la variable se incrementará al mismo tiempo en todas las computadoras. Como TimeDelta() devuelve un tiempo en segundo, te permite cuantificar exactamente la cantidad: En nuestro caso, la variable crecerá a 300 unidades/segundo. Por lo tanto, podemos predecir que la vida aumentará en 3000 unidades en 10 segundos, independientemente del número de fotogramas renderizados durante este tiempo.
-
-!!! note
-
- Como GDevelop ejecutará tu juego a un máximo de 60 imágenes por segundo, normalmente no notarás ningún problema si estás usando el primer evento. Todavía es una buena idea vigilar esto y usar la versión con TimeDelta() en su lugar.
-
-**Regla general:** Usa _TimeDelta()_ cuando desees agregar continuamente alguna cantidad a un valor. Si tu acción está destinada a iniciarse solo una vez (por ejemplo, durante una colisión en la que luego elimina el objeto), está bien usar un valor discreto sin TimeDelta, ya que no depende de la velocidad del juego.
-
-!!! note
-
- Cuando mueves un objeto usando fuerzas, no es necesario usar TimeDelta() ya que GDevelop lo usa automáticamente.
-
-## Y ... eso es casi todo lo que necesitas saber.
-
-➡️ ¡Puedes seguir leyendo los **[tutoriales](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials)** para saber más sobre cómo crear auténticos juegos con GDevelop!
diff --git a/docs/es/gdevelop5/tutorials/breakout.md b/docs/es/gdevelop5/tutorials/breakout.md
deleted file mode 100644
index 540ccf84725..00000000000
--- a/docs/es/gdevelop5/tutorials/breakout.md
+++ /dev/null
@@ -1,601 +0,0 @@
----
-title: breakout
----
-!!! note
-
- Este tutorial está siendo reelaborado/actualizado. Parte de la información puede estar desactualizada y es posible que haya problemas👷♂️ \# Cómo hacer un juego de tipo Breakout
-
-!!! note
-
- Antes de comenzar este tutorial, debe leer [Getting Started](/gdevelop5/getting_started) y [Conceptos básicos de creación de juegos](/gdevelop5/tutorials/basic-game-making-concepts) para obtener una descripción general de GDevelop y una comprensión de los conceptos principales.
-
-Con este tutorial, aprenderá algunas tareas básicas en GDevelop mientras crea un juego divertido. Al igual que el clásico juego de arcade Breakout, crearás una serie de ladrillos que se pueden romper con una pelota que rebota. El jugador controla la pelota con una paleta: una vez que la pelota cae, se acabó el juego. 
-
-------------------------------------------------------------------------
-
-!!! note
-
- El juego creado en este tutorial se puede encontrar en Gdevelop 5 como ejemplo.
-
- Véalo en acción:
-
-
-
-## Crear un nuevo juego
-
-Haz clic en **Crear un nuevo proyecto** en la página de inicio. Desplázate hacia abajo y elige una carpeta para tu proyecto, luego selecciona **Juego vacío**.  \## Añadir recursos al juego
-
-!!! note
-
- Se encontrará con el término "assets" (recursos) a menudo mientras trabaja con GDevelop. En el lenguaje de desarrollo de juegos de computadora, los _recursos_ son los archivos que componen el contenido del juego, como personajes, plataformas, archivos de audio, etc.
-
-Para un juego de breakout, necesitará los siguientes recursos:
-
- * Archivo de imagen de una pelota
- * Archivo de imagen de una pala
- * Archivo de imagen de una barrera
- * Archivos de imagen de diferentes ladrillos.
- * imágenes de Power-ups (opcional)
-
-O puede descargar los recursos utilizados en el tutorial, 
-
-------------------------------------------------------------------------
-
-## Agregar una nueva escena
-
-_Scenes_ son las pantallas de tu juego. Por ejemplo, los diferentes niveles de un juego a menudo se crean como diferentes escenas, al igual que los menús de inicio o los menús de pausa.
-
-Las escenas contienen _objetos_ que se muestran en la pantalla como contenido del juego. Cada objeto que colocas en una escena se llama _instancia_. Su juego de breakout tendrá varias instancias del objeto de ladrillo en una escena de nivel de juego. Las escenas también contienen _eventos_, acciones que ocurren bajo condiciones específicas, para animar la escena.
-
-Para agregar una nueva escena:
-
- - En el panel **Proyecto** de la izquierda, haz clic en **+** para agregar una escena.
-
-
-
- - Se agrega una nueva escena a la lista. Haz clic en **NuevaEscena** para abrirlo.
-
-
-
-## Crea el objeto pala Comience agregando la pala a la escena. El jugador mueve esta pala de izquierda a derecha en línea recta para hacer rebotar la pelota y evitar que se caiga fuera de juego.
-
-- En el panel **Objetos** de la derecha, haga clic en **+** para agregar un objeto.
-
-
-
-Aparecerá una ventana que muestra diferentes tipos de objetos que puede agregar. Cada tipo de objeto tiene su propio conjunto de características.
-
-
-
- - Para la pala, necesitas el tipo de objeto Sprite. Haz clic en **Sprite**. \_Sprites_ son objetos animados que se utilizan para muchos elementos comunes del juego (jugadores, plataformas, enemigos, ladrillos, etc.).
-
-El nuevo objeto se agrega a su escena y se abre el cuadro de diálogo Editor de objetos.
-
-
-
-En este momento, su objeto sprite no tiene animaciones ni imágenes asociadas.
-
-- Haz clic en **+** para agregar una animación.
-- Haga clic en **+** en la miniatura en blanco para agregar una imagen a la animación.
-- Seleccione la imagen llamada "paddle.png" en la carpeta de su proyecto y haga clic en **Abrir**. La imagen se agrega al objeto.
-
-
-
-- En el campo **Nombre del objeto**, escriba **Pala** para cambiar el nombre de su objeto.
-
-- Haz clic en **Aplicar** para guardar y cerrar el editor.
-
-!!! note
-
- Los nombres de los objetos distinguen entre mayúsculas y minúsculas, al igual que otros elementos en GDevelop. Sea consistente en su nombre para evitar errores fáciles como escribir "Pala" cuando quiere decir "pala". Lo mismo ocurre con los nombres de animación como "Ejecutar" o "ejecutar". No importa qué convención de nomenclatura utilice, siempre que sea coherente.
-
-------------------------------------------------------------------------
-
-### Agregue el objeto pala a la escena
-
-Para mostrar la pala en tu juego, debes agregarla a tu escena. Debido a que solo se necesita una pala, se denomina instancia _única_. Otros objetos como ladrillos tendrán múltiples instancias en su escena.
-
-- Para agregar la pala a la escena, haga clic y arrástrela desde el panel **Objetos** a la escena. Colóquelo cerca del fondo.
-
-
-
-------------------------------------------------------------------------
-
-## Crea el objeto barrera
-
-A continuación, agregará una barrera visual que aparecerá para evitar que la pelota rebote en la pantalla. La barrera se hará con un sprite en mosaico. Los _sprites en mosaico_ son objetos repetibles y escalables útiles para crear plataformas, paredes y otros objetos inanimados.
-
-Para crear el objeto de barrera:
-
- - En el panel **Objetos** de la derecha, haga clic en **+** para agregar un objeto.
- - Haz clic en **Sprite en mosaico**.
- - En el cuadro de diálogo **Editor de objetos**, haga clic en **+** para agregar una animación.
- - Haga clic en **+** en la miniatura en blanco para agregar una imagen.
- - Seleccione "barrier.jpg" en la carpeta de su proyecto y haga clic en **Abrir**.
- - En el campo **Nombre del objeto**, cambia el nombre de tu objeto a "Barrera".
- - Haga clic en **Aplicar** para guardar y cerrar el Editor de objetos.
-
-------------------------------------------------------------------------
-
-### Agregue el objeto de barrera a la escena
-
-Deberá agregar tres instancias de su objeto de barrera a su escena: una barrera izquierda, derecha y superior. El tamaño predeterminado de la ventana del juego es de 800 x 600 píxeles, que es el contorno gris en la vista de escena. Crea tu barrera ligeramente dentro de estos límites.
-
-!!! note
-
- Mueva y cambie el tamaño de los objetos con precisión mediante el **panel de propiedades** que se abre cuando hace clic en una instancia de objeto.
-
-- Arrastre y suelte la primera instancia de la barrera en la escena.
-- Haga clic en la barrera. Cambie su tamaño a 15 x 585 con el panel Propiedades o arrastrando el controlador en la parte inferior derecha. Colóquelo en el lado izquierdo de la pantalla en (15, 15).
-- Cree una barrera correspondiente en el lado derecho y colóquela en (770,15).
-- Agregue una barrera final en la parte superior para conectar los dos. Cambie su tamaño a 770 x 15 y colóquelo en (15, 15).
-
-
-
-------------------------------------------------------------------------
-
-## Establecer el movimiento de la pala
-
-El jugador controlará la pala usando las flechas izquierda y derecha del teclado. Puede crear estos controles usando _eventos_ (acciones que ocurren si las condiciones son verdaderas).
-
-Crea un evento donde si el jugador presiona la flecha izquierda en el teclado, la pala se mueve hacia la izquierda:
-
-- Haz clic en la pestaña **Nueva escena (Eventos)** para abrir el **Editor de eventos**.
-- Haz clic en **Agregar un nuevo evento vacío** .
-- Haz clic en **Agregar condición**.
-
-
-
-- Haga clic en **Teclado \> Tecla presionada**.
-
-
-
-- En el campo **Clave**, escriba **Left** y haga clic en **Aceptar**. Esta condición es verdadera si el jugador presiona la flecha izquierda en el teclado.
-
-Ahora necesita agregar una acción correspondiente a la condición. La pala debe moverse hacia la izquierda en un eje horizontal si se cumple la condición.
-
-!!! note
-
- Para mover objetos con una fuerza aplicada, deberá especificar un ángulo. La siguiente imagen ilustra cómo GDevelop entiende el ángulo de rotación. En un eje horizontal, la izquierda es 180°, la derecha es 0°. 
-
-- Haga clic en **Agregar acción**.
-
-- Haga clic en **Acciones comunes para todos los objetos \> Movimiento \> Agregar una fuerza (ángulo).**
-
-- Selecciona **Pala** en el campo **Objeto**.
-
-- En el campo **Ángulo**, escriba **180**.
-
-- En el campo **Velocidad (en píxeles por segundo)**, escriba **300**.
-
-- Haz clic en **Instantáneo**.
-
-- Haga clic en **Aceptar**.
-
-
-
-!!! note
-
- Es un buen momento para guardar tu trabajo. Adquiera el hábito de ahorrar con frecuencia. Puede presionar **Ctrl+S** para guardar su juego, o usar su mouse e ir a **Archivo\>Guardar**.
-
-------------------------------------------------------------------------
-
-Utilice la función de vista previa para verificar su trabajo. Haz clic en el botón **Iniciar una vista previa de la escena**.
-
-Presiona la flecha izquierda para mover la pala. Descubrirá que la pala no se detiene cuando llega a la barrera, simplemente continúa fuera de la pantalla. Puede solucionar esto cerrando la ventana de vista previa y agregando otra condición al movimiento de la pala.
-
-Para agregar otra condición para detener la pala:
-
- - En el mismo evento, debajo de su primera condición, haga clic en **Agregar condición**.
-
- - Haga clic en **Condiciones comunes para todos los objetos > Posición > Posición X de un objeto**.
-
- - En el campo **Objeto**, selecciona **Pala**.
-
- - En el campo **Signo de la prueba**, seleccione **> (mayor que)**.
-
- - En el campo **Posición X**, escriba la coordenada X del lado derecho de la barrera izquierda. En este ejemplo, es 30.
-
- - Haga clic en **Aceptar**.
-
-
-
-Vuelva a obtener una vista previa de su juego. La pala debe detenerse al golpear la barrera izquierda.
-
-Ahora necesita crear el mismo evento para el lado derecho. Pruébelo usted mismo antes de leer el proceso a continuación.
-
-- Haga clic en **Agregar un nuevo evento vacío**.
-- Haga clic en **Agregar condición**.
-- Haga clic en **Teclado \> Tecla presionada**.
-- En el campo **Clave**, escriba **Derecha**.
-- Haga clic en **Aceptar**.
-
-------------------------------------------------------------------------
-
-- Haga clic en **Agregar acción**.
-- Haga clic en **Acciones comunes para todos los objetos \> Movimiento \> Agregar una fuerza (ángulo).**
-- En el campo **Objeto**, selecciona **Pala**.
-- En el campo **Ángulo**, escriba **0**.
-- En el campo **Velocidad (en píxeles por segundo)**, escriba **300**.
-- Haga clic en **Aceptar**.
-
-------------------------------------------------------------------------
-
-- Haga clic en **Agregar condición**.
-- Haga clic en **Condiciones comunes para todos los objetos \> Posición \> Posición X de un objeto**.
-- En el campo **Objeto**, selecciona **Pala**.
-- En el campo **Signo de la prueba**, seleccione **\< (menor que)**.
-- En el campo **Posición X**, escriba la coordenada X del lado izquierdo de la barrera derecha. En este ejemplo, es 655.
-- Haga clic en **Aceptar**.
-
-Obtenga una vista previa de su juego para asegurarse de que funciona.
-
-!!! note
-
- ¿Encuentras que tu pala todavía está pasando la barrera de la derecha? Esto se debe a que GDevelop usa el punto superior izquierdo de un objeto al comparar posiciones X. Una manera fácil de resolver este problema es restar el ancho de la pala de la coordenada X de tu barrera. En nuestro ejemplo, la pala tiene un ancho de 58 px, por lo que la nueva posición X para detener la pala en el lado derecho debe ser **\< 712** (770 - 58). Cámbialo ahora.
-
-------------------------------------------------------------------------
-
-## Agregar comentarios al Editor de eventos Mientras trabaja en su Editor de eventos, es una buena práctica agregar comentarios para cada conjunto de eventos. Podrá encontrar y comprender rápidamente sus eventos a medida que crece su juego si los cataloga mientras trabaja.
-
-- Para agregar una línea de comentario, haga clic en **Agregar un comentario**. 
-
-- Ingrese el texto de su comentario y use la barra azul a la izquierda del comentario para arrastrar y soltar su comentario donde lo desee.
-
-
-
-------------------------------------------------------------------------
-
-## Mover la pelota - Parte 1
-
-El siguiente paso será agregar el objeto bola a la escena. Como hiciste con la pala, agrega el objeto bola como un sprite usando ball-1.png como animación. Arrastra y suelta la pelota justo encima de la pala en la escena.
-
-Cuando piensas en el juego, la pelota deberá hacer cuatro cosas:
-
- * Muévete cuando el jugador comience el juego
- * Rebote cuando choca con la pala o con la barrera
- * Rompe ladrillos y rebota cuando choca con ladrillos
- * Termina el juego cuando cae fuera de la pantalla debajo de la pala.
-
-### Poner la pelota en movimiento
-
-Para hacer que la pelota se mueva cuando el jugador presiona la barra espaciadora para comenzar:
-
-* Desde la pestaña **Nueva Escena (Eventos)**, haga clic en **Agregar un nuevo evento vacío**.
-
-* Haga clic en **Agregar condición**.
-
-* Haga clic en **Teclado \> Tecla presionada**.
-
-* En el campo **Clave**, escriba **Space** y haga clic en **Aceptar**.
-
-
-
-------------------------------------------------------------------------
-
-* Haga clic en **Agregar acción**. * Haga clic en **Acciones comunes para todos los objetos \> Movimiento \> Agregar una fuerza (ángulo)**. * En el campo **Objeto**, selecciona **Pelota**. * En el campo **Ángulo**, escriba **-45+RandomInRange(-5, 5)**. Esto lanzará la pelota en un ángulo de -45 grados, con una variación aleatoria adicional de 5 grados en cualquier dirección para agregar desafío al jugador.
-
-!!! note
-
- No es necesario memorizar todas las expresiones. Puede abrir el **Editor de expresiones** para ayudarlo a completar los campos.  En este caso, podría escribir **-45** en el campo **Ángulo**, luego hacer clic en **Editor de expresiones** y buscar por **Random**. La expresión **Entero aleatorio en rango** con un valor mínimo de -5 y un valor máximo de 5 generará RandomInRange(-5, 5) en su campo. Puede usarlo en su cálculo de velocidad como desee.
-
-* En el campo **Velocidad (en píxeles por segundo)**, escriba **300**. Ajuste esto como desee; cuanto mayor sea el número, más rápido será el objeto. * Haz clic en **Permanente**, ya que quieres que la pelota siga moviéndose durante todo el juego. * Haga clic en **Aceptar**.
-
-
-
-Este es un buen momento para agregar un comentario, guardar y obtener una vista previa de su juego. La pelota debe moverse cuando se presiona la barra espaciadora.
-
-------------------------------------------------------------------------
-
-### Rebote de la pelota en la barrera y la pala
-
-Para un buen juego, la pelota debe rebotar de forma realista cada vez que choca con la barrera, la pala o un ladrillo. GDevelop tiene un comportamiento de rebote fácil que puede aplicar a cualquier objeto para simular un rebote real.
-
-#### Agregar un comportamiento de rebote
-
-Para agregar un comportamiento de rebote a su objeto de bola: - En la pestaña **Nueva escena**, haz clic en **⋮** junto a tu objeto "Pelota" y haz clic en **Editar objeto**. - Haga clic en la pestaña **Comportamientos**. - Haga clic en **+** para agregar un nuevo comportamiento al objeto. - El comportamiento de rebote no es un comportamiento instalado, por lo que debe encontrarlo. Haga clic en la pestaña**Buscar nuevos comportamientos**. - De la lista en la parte inferior, seleccione "Bounce" y haga clic en "Instalar en proyecto".
-
-
-
-- Ahora puede agregar el nuevo comportamiento al objeto. Desplácese hacia abajo, seleccione **Bounce** y haga clic en **Aplicar**. 
-
-¡Tu pelota ya está lista para rebotar!
-
-------------------------------------------------------------------------
-
-#### Agregar los eventos de colisión
-
-A continuación, agregue eventos para hacer que la pelota rebote en la barrera y la pala. Es hora de una condición que usarás mucho en la creación de juegos: una condición de _colisión_.
-
-Para crear una condición de colisión entre la pelota y la barrera:
-
- * Desde la pestaña **Nueva Escena (Eventos)**, haga clic en **Agregar un nuevo evento vacío**.
- * Haga clic en **Agregar condición**.
- * Haga clic en **Condiciones comunes para todos los objetos > Colisión > Colisión**.
- * En el primer campo **Objeto**, seleccione **Pelota**. En el segundo campo **Objeto**, seleccione **Barrera**.
- * Haga clic en **Aceptar**.
-
-------------------------------------------------------------------------
-
-Para agregar la acción que hace que la pelota rebote en la barrera al chocar:
-
-- Haga clic en **Añadir acción**.
-- Haga clic en **Bounce \> Bounce \> Bounce off another object**.
-- En el campo **Object** , elige **Pelota**.
-- En el campo **Objects to bounce on** , elige **Barrerar**.
-- Haga clic en **OK**.
-
-
-
-------------------------------------------------------------------------
-
-Ahora debe hacer exactamente lo mismo para que la pelota rebote en la pala. Cree un nuevo evento, establezca su condición de colisión y agregue la acción para hacer rebotar la pelota.
-
-!!! note
-
- Puede hacer clic con el botón derecho y copiar una condición o acción anterior, y luego hacer clic con el botón derecho para pegarla en un nuevo evento. Es una manera fácil de ahorrar tiempo y esfuerzo, ¡especialmente cuando se trata de eventos similares!
-
-Guarda y previsualiza tu juego. Empieza a ser divertido...
-
-------------------------------------------------------------------------
-
-## Agrega los ladrillos
-
-¡Tu pelota tiene que romper algo! El siguiente paso será agregar ladrillos a la escena. Para aprender sobre diseños externos, este tutorial hará que los ladrillos aparezcan en diferentes diseños.
-
-Para agregar tus ladrillos:
-
- * Haga clic en la pestaña **Nueva escena** para acceder al Editor de escenas.
- * En el panel **Objeto**, haga clic en **+** para agregar un nuevo objeto de tipo _sprite_.
- * Nombre este objeto **Ladrillo**. Dale tres animaciones separadas usando los archivos brick-green.png, brick-red.png y brick-yellow.png de la carpeta de tu proyecto. Nombre las animaciones en consecuencia.
- * Haga clic en **Aplicar**.
-
-
-
-------------------------------------------------------------------------
-
-### Crear diseños externos
-
-Puede usar diseños externos para crear algunos niveles diferentes con diferentes formaciones de ladrillos. Un _diseño externo_ (_layout_) es una capa de objetos que se crea fuera de una escena, pero que se puede insertar dinámicamente en cualquier punto.
-
-Para crear un diseño externo:
-
- * Haga clic en el botón **Administrador de proyectos** en la parte superior izquierda. {{:gdevelop5:tutorials:breakout-game:project_manager.jpg?nolink|}}
- * Haga clic en **Diseños externos** y **+** para agregar un diseño externo.
- * Haga clic en **⋮** junto a su nuevo diseño y cámbiele el nombre a **Layout1**.
-
-
-
-- Haga clic en **Layout1**. Se le pedirá que elija la escena en la que se incluirá. Elige **NuevaEscena**: esa es la escena donde ocurre todo el juego. Se abrirá una nueva pestaña que se parece a su NewScene existente.
-
-
-
- * Agregue ladrillos en cualquier configuración que elija. Diviértete con esta parte, ¡sé creativo!
-
-!!! note
-
- Para acelerar las cosas, haga clic o seleccione objetos, luego mantenga presionada la tecla Ctrl, haga clic y arrastre para replicar instancias en la pantalla. Mantener presionadas las teclas Ctrl+Shift mantiene las nuevas instancias en el mismo eje X o Y.
-
- 
-
-- Cree dos o más diseños nuevos y asígneles el nombre Layout1, Layout2, etc.
-
-!!! note
-
- Siga la convención de nomenclatura Layout1, Layout2, etc. Se vinculará a una variable en breve.
-
-------------------------------------------------------------------------
-
-### Hacer que aparezca un diseño de ladrillo aleatorio
-
-Para hacer que aparezca un diseño aleatorio al comienzo de cada escena, primero agregue su condición:
-
- * Haz clic en la pestaña **Nueva Escena (Eventos)** para volver a tu Editor de Eventos.
- * Haga clic en el botón **Agregar un nuevo evento vacío**.
- * Haga clic en **Agregar condición**.
- * Haz clic en **Escena > Al comienzo de la escena**.
-
-----
-
-En lugar de adjuntar acciones a esta condición, ahora creará subeventos que suceden al comienzo de la escena.
-
-Para comenzar, cree una nueva variable de escena llamada Random_layout:
-
- * Haga clic en un espacio en blanco dentro del evento que acaba de crear y haga clic en el botón **Agregar un subevento al evento seleccionado**.{{:gdevelop5:tutorials:breakout-game:subevent_button.jpg?nolink|}}
- * En el nuevo subevento, haga clic en **Agregar acción**.
- * Haga clic en **Variables > Valor de una variable de escena**.
- * En el campo **Variable**, escriba **Random_layout** para crear una nueva variable de escena.
- * En el campo **Signo de modificación**, seleccione **= (fijar a)**.
- * En el campo **Valor**, escriba **Random(2)+1**.
- * Haga clic en **Aceptar**.
-
-
-
-!!! note
-
- Intente usar el Editor de expresiones para crear sus expresiones. 
-
- Cuanto más juegues con las expresiones, más entenderás la lógica detrás de ellas. ¡No tengas miedo de experimentar!
-
-------------------------------------------------------------------------
-
-Ahora encadenará su número de variable al nombre del diseño externo Layout. Este nombre determinará qué diseño aparecerá en la pantalla. (¡Es por eso que era importante ser consistente al nombrarlos antes!)
-
-Para agregar un diseño aleatorio de ladrillos al comienzo de la escena:
-
-* Agregue otro sub-evento nuevo para el comienzo de la escena, luego haga clic en **Agregar acción**. * Haga clic en **Diseños externos \> Crear objetos a partir de un diseño externo**. * En el campo **Nombre del diseño externo**, escriba **"Layoutv" + ToString(Variable(Random_layout))**. Esto agregará aleatoriamente uno de los diseños externos a la escena. * Haga clic en **Aceptar**.
-
-
-
-------------------------------------------------------------------------
-
-Puede agregar interés haciendo que el color del ladrillo sea aleatorio al comienzo de cada escena.
-
-Para elegir un color de ladrillo al azar:
-
-* Agregue otro sub-evento nuevo para el comienzo de la escena, luego haga clic en **Agregar acción**. * Haga clic en **Variables \> Valor de una variable de escena**. * En el campo **Variable**, escriba **Brick_colour**. * En el campo **Signo de modificación**, seleccione **= (fijar a)**. * En el campo **Valor**, escriba **Random(2)**. * Haga clic en **Aceptar**.
-
-
-
-------------------------------------------------------------------------
-
-- Agregue un último sub-evento nuevo para el comienzo de la escena, luego haga clic en **Agregar acción**.
-- Haz clic en **Sprite \> Animaciones e imágenes \> Cambiar la animación**.
-- En el campo **Objeto**, seleccione **Ladrillo**.
-- En el campo **Signo de modificación**, seleccione **= (fijar a)**.
-- En el campo **Valor**, escriba **Variable(Brick_colour)**.
-- Haga clic en **Aceptar**.
-
-
-
-Guarda y previsualiza tu juego. Un jugador ahora verá un diseño externo seleccionado al azar con ladrillos en un color aleatorio cada vez que se inicie el juego.
-
-------------------------------------------------------------------------
-
-## Mueve la pelota - Parte 2
-
-### Rebota la pelota en los ladrillos
-
-Ahora que tienes ladrillos en la escena, quieres que la pelota rebote lejos de los ladrillos cuando los golpee. Exactamente como hiciste con la pala y la barrera, necesitarás:
-
- - Crear un nuevo evento.
- - Añadir una condición de colisión entre la pelota y el ladrillo.
- - Rebota tu pelota lejos de los ladrillos.
-
-!!! note
-
- ¡No olvide que puede cortar y pegar condiciones y acciones de eventos existentes!
-
-------------------------------------------------------------------------
-
-## Destruye los ladrillos
-
-A medida que la pelota rebota en los ladrillos, debería destruirlos. Destruir un objeto en GDevelop es fácil.
-
- * En el mismo evento de colisión, haga clic en **Agregar acción**.
- * Haga clic en **Acciones comunes para todos los objetos > Objetos > Eliminar un objeto**.
- * En el campo Objeto, seleccione **Ladrillo**.
- * Haga clic en **Aceptar**.
-
-
-
-Guarda y previsualiza tu juego. Deberías poder hacer rebotar la pelota en la pala y destruir los ladrillos. Este es un buen momento para volver a comprobar tu velocidad: ¿quieres que la pelota o la pala sean más rápidas o más lentas? Si es así, juega con tus valores de velocidad hasta que estés satisfecho con el juego.
-
-------------------------------------------------------------------------
-
-## Gana o pierde el juego
-
-Si el jugador elimina todos los ladrillos, el juego debería felicitar al jugador con la opción de volver a jugar. Si el jugador falla la pelota con la pala, debe decirle al jugador que ha perdido con la opción de volver a jugar.
-
-### Crea un mensaje de felicitación
-
-Desea que el mensaje de felicitación esté oculto, solo para que aparezca cuando se hayan ido todos los ladrillos.
-
-Para agregar un objeto de texto a la escena:
-
- * Haga clic en la pestaña **Nueva escena**.
- * En el panel **Objetos**, haga clic en **+** para agregar un nuevo objeto y seleccione **Texto**.
- * En el campo **Nombre del objeto**, escriba **Felicitaciones**.
- * En el campo **Texto**, escriba un mensaje de felicitación (por ejemplo, ¡Felicitaciones! ¡Ha eliminado todos los bloques!). También incluya una línea que le diga al jugador "Presione Enter para jugar de nuevo".
- * Haga clic en **Aplicar**.
-
-
-
-- Arrastre y suelte su objeto Felicitaciones en el medio de la escena.
-
-------------------------------------------------------------------------
-
-Para ocultar su objeto de texto al comienzo de la escena:
-
- * Haga clic en **Nueva Escena (Eventos)**.
- * Vaya al evento existente que contiene la condición "Al comienzo de la escena" y haga clic en **Agregar acción**.
- * Haga clic en **Acciones comunes para todos los objetos > Visibilidad > Ocultar**.
- * En el campo **Objeto**, seleccione **Felicitaciones**.
- * Haga clic en **Aceptar**.
-
-
-
-------------------------------------------------------------------------
-
-Para hacer que su objeto de texto aparezca cuando se destruyen todos los ladrillos:
-
- * Haga clic en el botón **Agregar un nuevo evento vacío**.
- * Haga clic en **Agregar condición**.
- * Haga clic en **Condiciones comunes para todos los objetos > Objetos > Número instancias de objetos en la escena**.
- * En el campo **Objeto**, seleccione **Ladrillo**.
- * En el campo **Signo de la prueba**, seleccione **= (igual a)**.
- * En el campo **Valor**, escriba **0**.
- * Haga clic en **Aceptar**.
-
-------------------------------------------------------------------------
-
-Si hay 0 ladrillos, la bola debe eliminarse y el objeto de felicitación debe hacerse visible. Ambas acciones son acciones comunes para todos los objetos. Agrégalos ahora.
-
-
-
-------------------------------------------------------------------------
-
-También quieres darle al jugador la opción de comenzar un nuevo juego:
-
- * Crea un nuevo sub-evento {{:gdevelop5:tutorials:breakout-game:subevent_button.jpg?nolink|}} para el evento que acabas de crear donde el número de objetos de ladrillo es =0.
- * Haga clic en **Agregar condición**.
- * Haga clic en **Teclado > Tecla presionada**.
- * En el campo **Clave**, escriba **Return**. (Recuerde que el mensaje de felicitación le dice al jugador que presione Enter para comenzar de nuevo).
- * Haga clic en **Aceptar**.
-
-------------------------------------------------------------------------
-
-Añade una acción para volver a la primera escena:
-
- * Haga clic en **Agregar acción**.
- * Haz clic en **Escena > Cambiar la escena**.
- * En el campo **Nombre de la nueva escena**, escribe **"NuevaEscena"**. ¡No olvides las comillas!
- * Haga clic en **Aceptar**.
-
-Ahora, cuando el jugador elimine todos los ladrillos, ¡recibirá un mensaje de felicitación y la opción de comenzar de nuevo!
-
-### Crea un mensaje de finalización del juego
-
-Si el jugador pierde la pelota, se acabó el juego. Al igual que si un jugador gana, esto implicará hacer visible un mensaje en el momento adecuado y darle al jugador la opción de volver a jugar.
-
-Primero, agregue un objeto de texto a la escena que permanecerá oculto a menos que el jugador pierda la pelota.
-
-Siga los mismos pasos que hizo para crear el objeto Felicitaciones en la pantalla, pero cambie el mensaje a Game Over. Incluya la línea sobre comenzar de nuevo. Llame a este objeto de texto **GameOver**.
-
-Arrastra y suelta tu objeto GameOver en el medio de la escena. Está bien si está encima del objeto Felicitaciones.
-
-------------------------------------------------------------------------
-
-A continuación, vaya al Editor de eventos para ocultar su objeto GameOver al comienzo de la escena.
-
-Siga los mismos pasos para ocultar el objeto GameOver como lo hizo para el objeto Felicitaciones. Agréguelo como una segunda acción al evento. 
-
-------------------------------------------------------------------------
-
-El siguiente paso será hacer que el mensaje vuelva a aparecer si el jugador pierde la pelota. Para hacer esto, necesita una condición que verifique si la posición Y de la pelota está fuera de la ventana del juego.
-
-Para agregar una condición para comprobar si el jugador ha perdido el balón:
-
- * Haga clic en el botón **Agregar un nuevo evento vacío**.
- * Haga clic en **Agregar condición**.
- * Haga clic en **Condiciones comunes para todos los objetos > Posición > Comparar la posición Y de un objeto**.
- * En el campo **Objeto**, selecciona **Pelota**.
- * En el campo **Signo de la prueba**, seleccione **> (mayor que)**.
- * En el campo **Valor**, escriba **600**. (600 es la altura predeterminada de la ventana del juego, lo que significa que la pelota está fuera de la pantalla).
- * Haga clic en **Aceptar**.
-
-Agregue una acción correspondiente para hacer visible el objeto GameOver. También debe agregar un evento secundario que haga que se elimine la pelota y que el juego se reinicie si el jugador presiona Enter. Agrégalos ahora.
-
-
-
-Guarda y previsualiza tu juego.
-
-------------------------------------------------------------------------
-
-#### ¡Eso es todo! Has terminado tu primer juego de breakout básico.
-
-Ahora que conoce los conceptos básicos, intente cambiar las velocidades, los diseños de ladrillos, etc. para hacerlo más desafiante. Es posible que desee agregar un sistema de puntuación en el que los puntos aumenten con cada ladrillo destruido, o puede hacer que la bola aumente su velocidad con cada escena. Debido a que el comportamiento de rebote rebota según el ángulo y la velocidad de la fuerza aplicada, también puedes divertirte jugando con la forma de la pala, agregando barreras más desafiantes, etc.
-
-También sería un buen ejercicio agregar instrucciones al comienzo de la escena que desaparecen cuando comienza el juego (vea la primera imagen de este tutorial).
-
-**Próximamente habrá más tutoriales pero, mientras tanto, ¡experimenta y juega!**
diff --git a/docs/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md b/docs/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md
deleted file mode 100644
index e9b338885f0..00000000000
--- a/docs/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: 1-install-and-setup
----
-➡️ **[Parte siguiente: 2. Creando la primera escena](/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)**
-
-# 1. Instalar y configurar
-
-**GDevelop** es un motor de juego multiplataforma de código abierto y gratuito para todos - no necesitas saber cómo codificar para crear tu primer juego. Se puede usar tanto para proyectos de pasatiempo como para la creación de juegos con fines de lucro..
-
-Para obtener su copia de GDevelop puede visitar la [Página de descarga](https://gdevelop.io/download/) en donde están disponibles las distribuciones para Windows, Mac OS, and Linux.
-
-También puedes probar un [Editor online](https://editor.gdevelop.io/) directamente en tu navegador si no quieres instalar nada. Para este tutorial, aún se recomienda descargar la versión completa.
-
-
-
-Continuemos con la instalación en Windows - clic en el botón de Windows para iniciar la descarga del instalador para este sistema operativo.
-
-
-
-Clic en "Save" en la ventana emergente que aparecerá después de hacer clic en el botón - Ello iniciará la descarga del archivo exe. Cuando el instalador sea descargado, diríjase a la carpeta en donde fue descargado y haga clic dos veces para iniciar el proceso de instalación.
-
-
-
-Espere hasta que se complete el proceso, navegue hasta donde están instalados todos sus nuevos programas y haga doble clic en la aplicación GDevelop para iniciar el editor. Serás recibido con la pantalla de bienvenida en la página de inicio.
-
-
-
-Desde allí, puede abrir un proyecto ya existente o crear uno nuevo - vayamos por la segunda opción.
-
-
-
-Al hacer clic en eso, se mostrará una ventana emergente en la que puede seleccionar si desea usar un inicio ya existente o comenzar con un juego vacío - nuevamente, iremos a la segunda opción.
-
-
-
-Además de los iniciadores, también puede consultar los ejemplos y tutoriales en sus respectivas pestañas en la parte superior de la ventana emergente.
-
-
-
-Después de hacer clic en el botón "Juego vacío", se nos presenta el nuevo proyecto y la ventana "Proyecto" debería aparecer en el panel izquierdo. Desde allí, seleccione "Configuraciones del juego" para ingresar a la configuración básica de nuestro juego.
-
-
-
-El nombre de nuestro juego es "Monstruo Geométrico", el tamaño de la ventana es de 640 píxeles de ancho y 960 píxeles de alto; esto creará un área de juego que se adapta al modo retrato en un dispositivo móvil que confirmaremos en un segundo. Puedes ingresar tu nombre o apodo en el campo "Autor" abajo.
-
-
-
-Cuando se desplace hacia abajo, habrá una opción para especificar la "Orientación del dispositivo" - el modo "Retrato", es en el cual podremos jugar el juego en nuestros teléfonos sosteniéndolos con una sola mano y tocando la pantalla.
-
-También cambiaremos la opción "Pantalla completa" a "Sin cambios en el tamaño del juego", ya que esto se manejará más adelante.
-
-Después de ingresar toda esa información en los campos respectivos, puede hacer clic en "Aplicar" para guardar esa configuración.
-
-➡️ **[Parte siguiente: 2. Creando la primera escena](/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)**
diff --git a/docs/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md b/docs/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md
deleted file mode 100644
index 8d0109af021..00000000000
--- a/docs/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: 2-creating-first-scene
----
-⬅️ **[Parte anterior: 1. Instalar y configurar](/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup)** ➡️ **[Parte siguiente: Introducir el personaje principal](/es/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)**
-
-# 2. Creando la primera escena
-
-!!! note
-
- Es *altamente recomendado* leer la guía de [Conceptos Básicos de Creación de Juegos](/gdevelop5/tutorials/basic-game-making-concepts) antes de continuar para comprender algunas de las funciones básicas de cómo funciona GDevelop
-
-Ahora que tenemos [instalado el editor de GDevelop](/gdevelop5/tutorials/geometry-monster/1-install-and-setup) y la configuración básica está en su lugar, podemos empezar a crear. Para agregar componentes a nuestro juego, debemos comenzar con una escena - funcionará como una canasta con varios elementos y mostrándolos en la pantalla.
-
-
-
-Para agregar una nueva escena, haga clic en la sección "Escenas" en el panel izquierdo y cuando el contenido se expanda, aparecerá, "Haga clic para agregar una escena", que se explica por sí mismo.
-
-
-
-Llamemos a nuestra primera escena "Nivel1".
-
-
-
-Después de crear con éxito una escena, se nos llevará directamente a ella. Observe las pestañas en la parte superior del editor que puede seleccionar: hay "Nivel1" y "Nivel1 (Eventos)" por separado. En el panel izquierdo puedes manipular las propiedades de cualquiera de las instancias seleccionadas, el contenido real de la escena es visible en el medio (con el área de juego ya en modo retrato), y una lista de "Objetos" en el panel derecho.
-
-⬅️ **[Parte anterior: 1. Instalar y configurar](/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup)** ➡️ **[Parte siguiente: Introducir el personaje principal](/es/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)**
diff --git a/docs/es/gdevelop5/tutorials/geometry-monster/index.md b/docs/es/gdevelop5/tutorials/geometry-monster/index.md
deleted file mode 100644
index 9bdc010eaff..00000000000
--- a/docs/es/gdevelop5/tutorials/geometry-monster/index.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: Monstruo Geométrico
----
-# Monstruo Geométrico
-
-Bienvenido a el tutorial del juego **Monstruo Geométrico** . En esta serie de artículos aprenderás como crear un juego hiper-casual apropiado para dispositivos mobiles.
-
-
-
-Desde crear el personaje principal y animarlo mediante adición de controles y recoger objetos hasta detección de colisiones, rastrear el puntaje y tener múltiples vidas. También implementaremos múltiples escenas, incluyendo el menú principal y jugabilidad, efectos de sonido y el nivel de dificultad que aumenta con el tiempo..
-
-
-
-## Tabla De Contenidos
-
-1. [Instalar y configurar](/gdevelop5/tutorials/geometry-monster/1-install-and-setup)
-2. [Crear la primera Escena](/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)
-3. [Introducir el personaje principal](/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)
-4. [Escritorio y Controles mobiles](/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)
-5. [Agregando y moviendo figuras](/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)
-6. [Detección de Colisión](/gdevelop5/tutorials/geometry-monster/6-collision-detection)
-7. [Suena divertido](/gdevelop5/tutorials/geometry-monster/7-sounds-fun)
-8. [Siguiendo el puntaje](/gdevelop5/tutorials/geometry-monster/8-tracking-score)
-9. [Añadiendo bombas](/gdevelop5/tutorials/geometry-monster/9-adding-bombs)
-10. [Más vidas](/gdevelop5/tutorials/geometry-monster/10-more-lives)
-11. [Fin del Juego](/gdevelop5/tutorials/geometry-monster/11-game-over)
-12. [Menú principal](/gdevelop5/tutorials/geometry-monster/12-main-menu)
-13. [Disfrutalo!](/gdevelop5/tutorials/geometry-monster/13-juice-it)
-
-
-## Obtener las fuentes
-
-Obtén las [fuentes de el juego del Monstruo Geométrico](/gdevelop5/tutorials/geometry-monster-sources.zip) que contienen todas las imágenes que necesitas para terminar el juego y el archivo final json del proyecto si deseas verificar todo por ti mismo.
-
-## Jugar el Juego
-
-También puedes probar el juego y jugarlo en línea ahora mismo si tienes curiosidad por la jugabilidad - puede ser ejecutado visitando [geometry.enclavegames.com](https://geometry.enclavegames.com/).
\ No newline at end of file
diff --git a/docs/es/gdevelop5/tutorials/how-to-make-behavior.md b/docs/es/gdevelop5/tutorials/how-to-make-behavior.md
deleted file mode 100644
index aa31a03ad00..00000000000
--- a/docs/es/gdevelop5/tutorials/how-to-make-behavior.md
+++ /dev/null
@@ -1,161 +0,0 @@
----
-title: how-to-make-behavior
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-# Cómo crear un comportamiento para un objeto Cuando tu juego comienza a crecer, o incluso al principio al comenzar la creación de tu juego, es una buena idea organizar tanto como sea posible la lógica de tu juego en **[comportamientos personalizados](/gdevelop5/behaviors/events-based-behaviors)**. Esto ayuda a reducir el número de eventos en las hojas de eventos de escena y hace que sea más fácil razonar sobre tu juego.
-
-Hacer comportamientos personalizados para los objetos del juego puede parecer al principio más complicado que hacer eventos directamente en la hoja de eventos. Los comportamientos son más restringidos y necesitan que pienses más cuidadosamente sobre cómo funciona tu objeto y qué acciones/condiciones debe exponer el comportamiento. Pero los comportamientos personalizados también son una herramienta muy poderosa, que te permite *encapsular* tu lógica dentro de tus objetos y mantener la hoja de eventos de tu escena lo más pequeña posible.
-
-!!! note
-
- Si eres un desarrollador de juegos experimentado, incluso se recomienda hacer la **mayor cantidad posible de tu juego** usando **comportamientos personalizados**.
-
-En este artículo, mostramos cómo:
-
-1\. Crear un comportamiento simple para un objeto 2. Después, cómo interactuar con **otro objeto** 3. Y finalmente cómo interactuar con un comportamiento personalizado de otro objeto
-
-## 1. Cómo crear eventos "para un objeto" usando un comportamiento:
-
-Crea una extensión que contenga comportamientos. El nombre depende de ti. Puedes usar extensiones para agrupar comportamientos relacionados con algunos de tus objetos del juego.
-
-
-
-Crea un comportamiento en esta extensión. Asígnale un nombre según el objeto o la capacidad que está agregando: 
-
-!!! note
-
- Es una buena idea tener un nombre que resuma lo que está haciendo el comportamiento. Puede que no esté claro al principio: siempre puede cambiar el nombre del comportamiento más adelante.
-
-Haz clic en *Añadir una nueva función*: 
-
-Añade una función de comportamiento "doStepPreEvents": 
-
-Esta función de comportamiento (también llamada método de comportamiento) es llamada automáticamente por el motor del juego cada vez que se representa un fotograma en la pantalla. Es un buen lugar donde colocar eventos que están **actualizando tu objeto**.
-
-La función ahora es visible en la lista de funciones de comportamiento: 
-
-We can now add events inside. In this example, we're adding two events:
-
-* one to change the background color of the scene when space is pressed
-* one to play a sound when a button is pressed
-
-
-
-Of course, changing the background color of the scene is unusual and should probably not be part of your behavior. But it's a simple way to verify that the behavior is working.
-
-!!! note
-
- In a work complex "real" behavior, you could use the behavior properties or some variables to update your object. For example, you can make the object move in this "doStepPreEvents" function.
-
-Finally, we now go back our game scene and add the behavior to an object. First, we find the object to add the behavior to:
-
-
-
-Edit the object and in the "Behaviors" tab, choose *Add a Behavior to the Object*: 
-
-and in the list choose the behavior with the name you've previously entered. You can see that there is no description for the behavior - we could add one by clicking *Edit Behaviors Properties* in the extension editor. It's in fact a good idea to give a good name and description to make clear what your behavior is made for.
-
-
-
-You can try to run the game. Verify that the scene background color is changed when you press *Space*, or that the sound is played when you press the *P* key.
-
-For example, in the platformer starter game, the background color changed to green, after Space was pressed: 
-
-## 2. How to interact with another object
-
-Now, we may want to go one step further and create some logic related to one object, like the player, and other objects, like enemies.
-
-For this, we can't use "doStepPreEvents", as we can't use other objects in it, apart from the object having the behavior. We need to create a **new behavior function**, that will be an *action*.
-
-Add a new function in the behavior and choose "Custom (action, condition or expression)":
-
-
-
-We can see it added in the list of behavior functions:
-
-
-
-Let's rename it according to what it will do:
-
-
-
-Then in this function, let's add **a parameter**: the objects that are our enemies. For this, we add a new parameter of type "Object". Then, we'll be able to use this object in the events.
-
-Navigate to the function "Parameters" tab and in the bottom choose "Add a parameter". Then, enter "Enemy" for the parameter name, then "Objects" for the type. You can enter "Enemy" as the label too (this is what will be displayed when you add the action in the scene events sheet).
-
-
-
-Once the parameter is set up, we can now use it as an object in the events. As an example, we will make the enemies play a sound when the player is colliding with them.
-
-
-
-Let's finish by adding a nice name and sentence in the configuration of this function: 
-
-Now the last step is to call the function in the scene events sheet.
-
-!!! note
-
- You may be disappointed at this point! "I don't want to add an event in the events sheet". For now, you can't pass objects to behaviors - this could be an addition in the future.
-
-We need to use the action. You'll find it in the scene events sheet, in the Player actions, as we previously added the behavior to the player.
-
-In the scene, add an action for Player (or the object you added the behavior to). Then choose "Handle enemies", our new action:
-
-
-
-Finally, let's configure it with our enemies:
-
-
-
-!!! note
-
- We use a single object, "SlimeWalk", for the enemies in this example, but you could use a **group** of objects.
-
-Here is the result:
-
-
-
-If you run the game, you'll now see that when the player collides with the enemy, a sound is played.
-
-Not bad for a single event in the scene events sheet! And we could add more objects and make the behavior more complex. Or we can reuse it for another object that should behave the same as player. We can even disable this behavior if we want the player not to play a sound when colliding with enemies.
-
-It's up to you to decide how "far" you want to push your behavior.
-
-## 3. Let's interact with other object behaviors
-
-Let's now say that your game is getting more complex. For example, enemies now have also their own behavior(s). And this behavior has an action to make the enemies blink. We now want the enemies to blink when the player touches them (as they are hit - we could imagine make them lose some health or play an animation, etc...).
-
-First, the "Blink" behavior already exists. It's available as an extension you can search and install for your project. Let's add it to our enemies. First, we find it:
-
-
-
-Then we add it to our enemy: 
-
-It's added, we can configure it: 
-
-Now, let's go back to our Player behavior. We go in the *HandleEnemies* function and add a new parameter, which is of type "Behavior", just after the "Enemy" object parameter: 
-
-!!! note
-
- Rough edge here: it's not super obvious that you have to select a behavior as a parameter to make it part of the previous object. This will be improved in future versions.
-
-And now the function knows that the enemies have a behavior called "Blink"! Let's use the action to make them blink: 
-
-!!! note
-
- Another rough edge here: as you added a parameter, you now have to go back to the events sheet and **edit the action** to be sure that the behavior is passed as parameter:
-
-
-
-(Note the third parameter). Alas if you don't do this, the action will be missing the last parameter and the game won't work.
-
-Now you should be able to run the game and when the player touches a enemy, this enemy is blinking!
-
-## Final note
-
-The behavior we created here is simple, but should give you a sense of the idea of what is possible with custom behaviors.
-
-It's a good idea to think about your game in terms of objects and behaviors that interact with each other. The scene events sheet is the central place where the flow of the game is going on, using behaviors to make most of the actions happen in the game.
diff --git a/docs/es/gdevelop5/tutorials/index.md b/docs/es/gdevelop5/tutorials/index.md
deleted file mode 100644
index c881e6ccbd1..00000000000
--- a/docs/es/gdevelop5/tutorials/index.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: GDevelop 5 tutoriales:
----
-# GDevelop 5 tutoriales:
-
-Estos tutoriales son guías que explican paso por paso cómo crear un juego desde cero:
-
-!!! tip
-
- Si está utilizando GDevelop por primera vez, se recomienda comenzar con estos tutoriales
-
-* **[Conceptos básicos de creación de juegos: lo que necesita saber para comenzar con GDevelop](/gdevelop5/tutorials/basic-game-making-concepts)**
-* **[Geometry Monster: un juego móvil completo y sencillo](/gdevelop5/tutorials/geometry-monster)**
-* **[Crea un juego de plataformas](/gdevelop5/tutorials/platformer)**
-* **[Crea un juego de disparos espaciales](/gdevelop5/tutorials/space-shooter)**
-
-Tutoriales comunitarios:
-
-* [Comprender y utilizar la extensión del generador de ruido para la generación procedimental](/gdevelop5/tutorials/procedural-generation)
-* [Crea un juego sencillo de Tank Shooter](/gdevelop5/tutorials/tank-shooter)
-* [Crea un juego simple de Endless Runner](/gdevelop5/tutorials/endless-runner)
-* [Juego de coches sin fin](/gdevelop5/tutorials/roadrider)
-* [Crea un juego sencillo de Breakout](/gdevelop5/tutorials/breakout)
-
-Lecturas recomendadas para ir más lejos:
-
- * **[Cómo crear un comportamiento para un objeto](/gdevelop5/tutorials/how-to-make-behavior)**
-----
-
-# Guías breves de GDevelop ("cómo")
-Las siguientes guías proporcionan explicaciones para ciertas partes de GDevelop. También te muestran algunas mecánicas avanzadas para diseñar tus juegos:
-
-* [Cómo crear un comportamiento para un objeto](/gdevelop5/tutorials/how-to-make-behavior)
-* [Cómo mover objetos en tu juego (todas las diferentes soluciones)](/gdevelop5/tutorials/how-to-move-objects)
-* [Cómo animar el salto y la caída de un personaje en un juego de plataformas](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer)
-* [Cómo mostrar un gran fondo en tu juego](/gdevelop5/tutorials/how-to-display-big-background)
-* [Cómo depurar el rendimiento deficiente del juego](/gdevelop5/tutorials/how-to-debug-poor-performance)
-* [Explicación de la acción de almacenamiento](/gdevelop5/tutorials/storage-action-explained)
-* [Cómo reducir el tamaño de tu juego](/gdevelop5/tutorials/reduce-size-game)
-* [Cómo manejar la lógica compleja: la máquina de estados finitos (FSM)](/gdevelop5/tutorials/finite_state_machine)
-* [Cómo hacer estados alternables](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables)
-* [Cómo utilizar GDevelop en equipo (varios desarrolladores y compañeros de equipo)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team)
-* [Cómo usar Piskel para importar una imagen de hoja de sprites](/gdevelop5/tutorials/piskel-sprite-sheets)
-* [Cómo hacer una copia de seguridad y mantener su proyecto usando GitHub y GitHub Desktop](/gdevelop5/tutorials/using-github-desktop)
-[Cómo cambiar el modo Editor de condiciones y acciones de la Hoja de eventos](/gdevelop5/tutorials/change-event-editor-mode)
-* [Cómo agregar tablas de clasificación en tiempo real a tu juego](/gdevelop5/tutorials/leaderboards)
-----
-# Otras guías
-
-Las siguientes guías proporcionan explicaciones relacionadas con el desarrollo de juegos. No son específicos de GDevelop.
-
-* [Construye .apk de tus juegos con cordova](http://wiki.compilgames.net/doku.php/gdevelop5/publishing/android_and_ios_with_cordova)
-* [Publica tu juego en itch.io](/gdevelop5/publishing/publishing-to-itch-io)
-* [Publica tu juego en la tienda de aplicaciones de Amazon](/gdevelop5/publishing/Publica tu juego en la tienda de aplicaciones de Amazon)
-* [Publicar tu juego en Game Jolt](/gdevelop5/publishing/Publicar tu juego en Game Jolt)
-* [Publicar tu juego en Kongregate](/gdevelop5/publishing/Publicar tu juego en Kongregate)
-* [Antes de publicar tu juego](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials/before-publishing-your-game)
-
-----
-
-# Recursos
-
-Enlaces a sitios web de terceros donde puedes encontrar sprites, música y efectos de sonido para tus juegos y ejemplos de juegos, plantillas y software para ayudarte con el desarrollo del juego.
-
- * [Lista de recursos](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials/resources)
-
-----
-
-La wiki puede ser mejorada por cualquier persona: no dudes en crear una cuenta y contribuir mejorando un artículo, corrigiendo errores o escribiendo nuevos tutoriales.
\ No newline at end of file
diff --git a/docs/es/gdevelop5/tutorials/platform-game/2-player-animations.md b/docs/es/gdevelop5/tutorials/platform-game/2-player-animations.md
deleted file mode 100644
index a97ea7edd8d..00000000000
--- a/docs/es/gdevelop5/tutorials/platform-game/2-player-animations.md
+++ /dev/null
@@ -1,161 +0,0 @@
----
-title: Cómo hacer un juego de plataformas - animación de los jugadores.
----
-# Cómo hacer un juego de plataformas: animación de los jugadores.
-
-Este tutorial te explicará cómo agregar diferentes animaciones y cómo usar eventos para cambiar las animaciones cuando el estado del jugador está cambiando.
-
-[Click aquí para leer el tutorial anterior](/gdevelop5/tutorials/platform-game/start) en caso de que no lo hayas hecho.
-
-## Agregar Animaciones (Add animations)
-
-En este momento, el jugador siempre muestra la misma animación de pie, pero vamos a cambiar eso usando eventos.
-
-Pero primero, necesitamos agregar las animaciones apropiadas al objeto Player.
-
-### Animación de Salto (Jumping animation)
-
-Abra el editor del objeto Player y asegúrese de estar en la pestaña `Propiedades`. Luego haga clic en el botón + en la parte inferior de la ventana para agregar una animación. Finalmente, haga clic en la miniatura con el signo `+` de la nueva animación y elija `p1_jump` como la imagen a agregar: 
-
-A las animaciones se le pueden dar nombres. Es una manera fácil de diferenciarlos y usarlos en los eventos. Es tan simple como hacer clic en "Nombre de animación opcional" y escribir el nombre que desee.
-
-Introduzca "Inactivo" y "Salto" como nombres para nuestras dos animaciones:
-
-
-
-### Animación Corriendo (Running animation)
-
-También necesitamos agregar la animación de caminar para mostrar cuando el personaje está caminando en una plataforma. Agregue otra animación como hicimos antes y, al agregar imágenes, seleccione las 5 imágenes `p1walk03.png`,` p1walk04.png`,… y `p1_walk07.png`. Puede seleccionar todas las imágenes a la vez o una por una como prefiera. Finalmente establezca el nombre de la animación a `Corriendo`:
-
-
-
-Estas imágenes se mostrarán para crear la animación. Necesitamos ajustar un poco algunas opciones. Primero, haga clic en `No hacer bucle` para cambiar esta opción a `Bucle`. Esto hará que la animación se reinicie cuando se llegue al final. El temporizador muestra el tiempo en segundos entre cada imagen: esta es la velocidad de la animación. Ingrese 0.05 en lugar de 1 para que la animación se reproduzca más rápido:
-
-
-
-Nuestro objeto ya está listo, haga clic en "Aplicar" en la esquina inferior derecha.
-
-## Usa eventos para cambiar animaciones.
-
-### El primer evento: animar al saltar.
-
-Ahora, necesitamos cambiar la animación que muestra el objeto de acuerdo con lo que está haciendo el jugador. Vamos a usar los eventos, que se usan para describir las reglas del juego y cómo los objetos se animan, se mueven y responden a las entradas del jugador. Es un tipo de programación visual que puede aprenderse muy rápidamente y es accesible para todos.
-
-Abra el editor de eventos de la escena haciendo clic en la pestaña llamada `Nueva escena (eventos)`.
-
-Por ahora, el editor de eventos está vacío:
-
-
-
-Agregue el primer evento haciendo clic en el botón Agregar evento en la barra de herramientas superior.
-
-
-
-Un evento se compone de una lista de condiciones (por ejemplo, para verificar si se está produciendo una colisión, si se presiona una tecla, si la vida del jugador es baja, etc.) y una lista de acciones que suceden cuando se cumplen las condiciones.
-
-Por ahora el evento está vacío:
-
-
-
-En este primer evento, comprobaremos si el jugador está saltando y cambiaremos su animación en consecuencia. Primero haga clic en `Agregar condición`.
-
-En la nueva ventana, puedes ver todas las condiciones disponibles para hacer tu juego. Queremos comprobar si el objeto Player, que tiene el comportamiento del personaje de Platformer, está saltando. Abra la categoría llamada `Comportamiento de la plataforma`y luego elija` Está saltando`.
-
-La parte derecha de la ventana muestra los parámetros necesarios para configurar la condición. Aquí, queremos comprobar si el objeto "Jugador" está saltando, así que elija Jugador para el primer parámetro (el segundo se llena automáticamente):
-
-
-
-¡La condición está lista! Haga clic en Aceptar en la esquina inferior derecha para cerrar la ventana y ver la condición agregada en el evento:
-
-
-
-Ahora agreguemos la acción para cambiar la animación del Jugador cuando el personaje está saltando. Haga clic en `Agregar acción`.
-
-La ventana abierta es similar, pero ahora muestra todas las acciones disponibles:
-
-
-
-Vamos a cambiar la animación del jugador, que es un objeto Sprite. Abra la categoría `Sprite`, luego` Animaciones` y finalmente elija `Cambiar la animación (por nombre)`.
-
-
-
-Seleccione el objeto `Player` para el primer parámetro y escriba` "Saltando" `en el segundo campo. **Cuidado**, tiene que escribir las comillas dobles, ya que cualquier texto en las acciones o condiciones de GDevelop también se puede generar mediante una fórmula, por lo que es necesario usar comillas dobles para decirle a GDevelop que este es un texto:
-
-
-
-Cuando haya terminado, haga clic en Aceptar en la esquina inferior derecha. ¡El primer evento está listo!
-
-
-
-### Echemos un vistazo al resultado.
-
-Haga clic en el botón Reproducir en la barra de herramientas para iniciar una vista previa. Cuando saltas, verás los cambios de animación del jugador!
-
-
-
-Pero cuando el Reproductor está de vuelta en el piso, puede ver que la animación no está configurada de nuevo en la animación Inactiva. ¡Esto es simplemente porque nunca le dijimos a GDevelop que lo hiciera! Agreguemos otro evento para arreglar esto.
-
-## Animación Idle y correr (Idle and running animation)
-
-Vamos a agregar un nuevo evento en blanco. Haga clic en 'Agregar condición' y esta vez seleccione la condición 'Está en el piso' dentro de la categoría de comportamiento de Platformer. Tenga en cuenta que puede usar el cuadro de búsqueda en la parte superior para encontrar rápidamente una condición cuando sepa su nombre.
-
-Rellene el primer parámetro eligiendo el objeto Jugador:
-
-
-
-Haga clic en Ok para validar la condición:
-
-
-
-De hecho, es una buena oportunidad para hacer que nuestro personaje muestre no solo el ralentí y el salto, sino también la animación en ejecución:
-
-Podríamos agregar dos eventos, con dos condiciones y una acción en cada evento:
-
- * Cuando el jugador está en el suelo * y * no se está ejecutando, se debe mostrar la animación de inactividad.
- * Cuando el jugador está en el suelo * y * en ejecución, se debe mostrar la animación en ejecución.
-
-En su lugar, podemos usar * subeventos *, para que la condición solo compruebe si el jugador está en el suelo una vez.
-
-Seleccione el evento que creamos haciendo clic en un área vacía cerca de `Agregar condición` o` Agregar acción`:
-
-
-
-Luego, haga doble clic en el botón para agregar un sub-evento:
-
-
-
-Se agregan dos eventos "secundarios" debajo del evento que se considera el evento principal ahora. Hay un margen agregado a la izquierda de los eventos y una línea entre ellos para confirmar visualmente que están conectados:
-
-
-
-¡Ahora puedes agregar condiciones dentro de estos eventos! Para el primero, agregue una condición para verificar si el reproductor se está ejecutando:
-
-
-
-Para la segunda, agregue la misma condición, pero marque la opción 'Invertir condición'. De esta manera, las acciones del evento se iniciarán cuando el objeto del Jugador **NO **se esté moviendo:
-
-
-
-Aquí están nuestros eventos hasta ahora:
-
-
-
-Ya casi hemos terminado, terminemos agregando las acciones necesarias a cada evento. Use el primer evento para configurar la animación del personaje en `" Running "y el segundo evento para configurar la animación del carácter` en "Inactivo" `.
-
-Puedes agregar estas acciones de la misma manera que hicimos antes para la animación de salto. No olvide las comillas (`" "`) cuando ingrese los nombres de animación.
-
-
-
-## Tiempo para previsualizar (y guardar) (Time to preview (and save))
-
-Puedes iniciar una vista previa de tu juego y ver que la animación del jugador está cambiando mientras corres y saltas.
-
-Una pequeña mejora que podemos hacer es configurar la animación en Salto cuando el jugador también se está cayendo (de lo contrario, la animación en ejecución seguirá reproduciéndose cuando el jugador llegue al final de la plataforma).
-
-
-
-## Siguiente paso: haz que la cámara siga al jugador
-
-Por ahora, es difícil construir un gran nivel para explorar porque el jugador puede caminar rápidamente fuera de la pantalla. La siguiente parte del tutorial mostrará cómo hacer que la cámara siga al jugador. Es realmente simple, un solo evento será suficiente!
-
-Read️ Read **[la próxima parte del tutorial aquí](/es/gdevelop5/tutorials/platform-game/3-have-camera-follow-player)**!
diff --git a/docs/es/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md b/docs/es/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md
deleted file mode 100644
index b73466e0c0f..00000000000
--- a/docs/es/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: Sigue al jugador con la cámara (Follow the player with the camera)
----
-# Sigue al jugador con la cámara (Follow the player with the camera)
-
-!!! note
-
- Este tutorial es parte del tutorial [tutorial de plataformas](/gdevelop5/tutorials/platform-game/start), ¡pero también puedes reutilizarlo para cualquier otro juego!
-
-Por ahora, es difícil construir un gran nivel para explorar porque el jugador puede salir rápidamente de la pantalla.
-
-Agreguemos otro evento para que la cámara siga al jugador. Hay múltiples maneras de lograr esto. Lo más simple es agregar un evento sin condiciones y la acción llamada `Centrar la cámara en un objeto`:
-
-
-
-El nuevo evento se ve así: 
-
-Puede iniciar una vista previa para ver que la cámara ahora está centrada en el reproductor: 
-
-## Eso es todo
-
-Eso fue fácil ¿verdad? Hay otras acciones que pueden ser útiles. Por ejemplo, las acciones se pueden usar para cambiar las coordenadas de la cámara solo en el eje X o Y. Puede ser útil para los juegos de plataforma en los que no puedes subir / bajar, solo pasar por el nivel con un desplazamiento lateral.
-
-## Siguiente paso: agregar una plataforma 'Saltar a través'
-
-Es un poco aburrido tener un solo tipo de plataforma. ¡Agreguemos otra con una imagen diferente y eso no es sólido, así que puedes saltar sobre ella desde abajo!
-
-Lee **[la siguiente parte del tutorial](/es/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms)**!
diff --git a/docs/es/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md b/docs/es/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md
deleted file mode 100644
index f789848838e..00000000000
--- a/docs/es/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: Añadir un objeto de fondo (Add a background objects)
----
-# Añadir un objeto de fondo (Add a background objects)
-
-!!! note
-
- Este tutorial es parte del [tutorial de plataformas](/gdevelop5/tutorials/platform-game/start), ¡pero también puedes usarlo para cualquier otro juego!
-
-En este momento el nivel es bastante simple sin las cosas elegantes. Vamos a añadir algunos objetos estáticos en el fondo.
-
-## Crear objetos
-
-Agregar objetos en el fondo es realmente fácil: solo agrega algunos sprites con las imágenes que deseas y colócalos en la escena.
-
-Por ejemplo, cree un objeto `Sprite`, agregue una animación y agregue la imagen` bush`:
-
-
-
-Puede nombrar a este objeto `Bush`, y también agregar otro objeto con la imagen` cloud`:
-
-
-
-## Poner objetos en la escena y cambiar el orden z
-
-Si agrega objetos a la escena, puede ver que el reproductor se muestra detrás de ellos:
-
-
-
-Cada instancia en la escena tiene una propiedad que se llama **orden z**. Es un número y los objetos con un orden Z superior se mostrarán frente a los objetos con un orden Z inferior. El orden Z puede ser cualquier número y también puede ser negativo.
-
-Aquí, puede cambiar el orden Z de los arbustos y las nubes para establecerlos como negativos, de modo que el carácter del jugador (con un orden Z que debería ser 1) se muestre delante de ellos. Para ello, selecciona las instancias en la escena. Puede seguir presionando MAYÚS en su teclado para seleccionar más de un objeto:
-
-
-
-Luego, cambie el valor del campo "Orden Z" en el * Panel de propiedades * a la izquierda. Por ejemplo, -2 (o cualquier número negativo) se asegurará de que estos objetos estén detrás del jugador:
-
-
-
-Ahora tenemos el resultado visual que queríamos:
-
-
-
-¡Lanza una vista previa para comprobar que todo funciona bien!
-
-## Siguiente paso: agregue monedas y muestre cuántas se han recolectado
-
-Agreguemos un objetivo para el jugador: ¡recoger tantas monedas como sea posible! Para hacer esto, usaremos eventos para recordar la puntuación del jugador, reproducir sonidos y eliminar las monedas recolectadas.
-
-Lea **[la siguiente parte del tutorial aquí](/es/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins)**!
diff --git a/docs/es/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md b/docs/es/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md
deleted file mode 100644
index 6935b19138b..00000000000
--- a/docs/es/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: Añadir una plataforma de salto 'a través'
----
-# Añadir una plataforma de salto 'a través'
-
-!!! note
-
- Esta página es parte del [tutorial de plataformas](/gdevelop5/tutorials/platform-game) , pero lo aprendido puede ser aplicado a cualquier otro juego de plataformas!
-
-Hasta ahora, todas las plataformas son solidas, no puedes saltar sobre ella si estas debajo de la misma. Creemos una plataforma que permita este comportamiento.
-
-## Crear el objeto nuevo
-
-Crea el nuevo objeto`Sprite` , añade la animación y elige la imgen denominada`bridgeLogs`:
-
-
-
-Renombra el objeto a `SmallBridge`:
-
-
-
-## Hacer que la plataforma sea 'salta-a-traves'.
-
-Hasta ahora, el objeto no es considerado una plataforma. Edita el objeto y cambia a la pestaña `Comportamientos`. Añade el comportamiento denominado Plataform y finalmente elige "Jumpthru platform" en la lista cuando hagas click en el campo "Type":
-
-
-
-## Previsualiza!
-
-Previsualiza el resultado y observa como puedes saltar sobre el puente!
-
-
-
-No olvides guardar los cambios!!
-
-## Next step: add backgrounds objects
-
-The level is still quite empty. Let's add some background objects to make it more pretty.
-We'll then add coins to collect and enemies!
-
-➡️ Lee **[Añadir objetos de fondo](/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects)**!
\ No newline at end of file
diff --git a/docs/es/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md b/docs/es/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md
deleted file mode 100644
index 822caaf50e9..00000000000
--- a/docs/es/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md
+++ /dev/null
@@ -1,196 +0,0 @@
----
-title: Crea monedas y muestra la cantidad de monedas recolectadas.
----
-# Crea monedas y muestra la cantidad de monedas recolectadas.
-
-!!! note
-
- Esta página es parte del [tutorial de plataformas](/gdevelop5/tutorials/platform-game/start), pero también se puede reutilizar para cualquier otro juego, solo reproduce los elementos.
-
-En el juego de plataformas que hemos creado hasta ahora, el jugador tiene mucho que hacer: vamos a poner monedas para que el jugador las recoja.
-
-## Añadir monedas
-
-Comienza creando un nuevo objeto "Sprite" con una animación con la imagen "coinGold":
-
-
-
-Puedes llamar a este objeto "Moneda".
-
-A continuación, puede poner varias monedas en el nivel. Como necesitarás varias monedas, es una buena idea usar la función "arrastrar y clonar" del editor de escenas: selecciona una moneda, sigue presionando Ctrl (o Cmd en macOS) y arrastra la moneda. Esto lo duplicará.
-
-Si mantiene presionada la tecla Mayús mientras se mueve, también podrá mover la moneda creada en el mismo eje que la original.
-
-
-
-## Eliminar monedas cuando se recogen
-
-Ahora, destruyamos el objeto de la moneda cuando el jugador los toca. Agrega un nuevo evento y agrega una condición. Elija la condición para probar una colisión entre dos objetos. El primer objeto debe ser "Jugador" y el segundo objeto debe ser "Moneda":
-
-
-
-A continuación, puede agregar una acción que eliminará la moneda. La acción solo utilizará los objetos de Monedas que se hayan recogido en la primera condición, por lo que solo se eliminará la moneda que chocó con el jugador.
-
-Agregue la acción "Eliminar un objeto" (de la categoría "Acciones comunes para todos los objetos\> Objetos") e ingrese Moneda como el objeto a eliminar:
-
-
-
-El evento debería verse así:
-
-
-
-Ahora puede iniciar una vista previa y ver que la moneda se elimina cuando el jugador corre sobre ellos.
-
-## Reproducir un sonido al recoger una moneda
-
-Para hacer que el juego se sienta más dinámico y gratificante, vamos a reproducir un sonido cuando se recoge una moneda.
-
-Es fácil: ya tenemos un archivo de sonido llamado `coin.wav` en nuestra carpeta del juego (si ese no es el caso, puedes [descargar los recursos aquí](http://www.compilgames.net/dl/PlatformerTutorialResources.zip) y extraerlos en la carpeta del juego).
-
-Es algo que no hemos hecho antes: podemos agregar varias acciones para ejecutar en un solo evento. Para reproducir un sonido, agreguemos otra acción al evento que usamos para eliminar las monedas. Haga clic en 'agregar una acción' justo debajo de la acción "Eliminar objeto Moneda" y agregue la acción llamada 'Reproducir un sonido', desde la categoría 'Audio'. De esta manera, no solo eliminaremos la moneda sino que también estaremos reproduciendo el sonido.
-
-Hay un montón de parámetros disponibles para reproducir un sonido. El primero y más importante es el archivo de sonido a reproducir. Haga clic en el campo y luego en "Elegir un nuevo archivo de audio".
-
-
-
-Elija el archivo `coin.wav` que descargó con el resto de los recursos y que puso en la carpeta del juego:
-
-
-
-Deje los otros parámetros como están (es decir, no repita el sonido, el volumen a `100` y la velocidad predeterminada para el sonido).
-
-
-
-¡Eso es todo! Simplemente inicia la vista previa y el sonido se reproducirá cada vez que recojas una moneda
-
-## Incrementa un puntaje usando variables
-
-Vamos a utilizar una variable para actualizar y recordar la puntuación del jugador.
-
-Las variables son contenedores que podemos usar para almacenar y recordar cierta información, como números y cadenas (texto). En GDevelop hay diferentes tipos de variables:
-
-- __ **Las variables de objeto **__ son variables privadas, específicas de cada instancia de un objeto. Esto significa que cada instancia puede almacenar sus propios valores, sin que se compartan con las otras instancias. Puede, por ejemplo, ser útil si queremos cambiar la vida de cada enemigo.
-- __ **Las variables de escena **__ (las más utilizadas) son variables asociadas a una escena. Esto significa que sus valores no se comparten con otras escenas en nuestro juego. Es útil almacenar información relevante solo para la escena reproducida actualmente. Por ejemplo, la vida del jugador o una puntuación.
-- __ **Las variables globales **__, como sugiere su nombre, son globales en todo el juego. Los valores se comparten con todas las escenas en todo el juego. Es útil si nos gustaría almacenar información que deseamos compartir entre todas las escenas, como la cantidad de bala o la cantidad de dinero que tiene el jugador.
-
-La variable que vamos a usar es una variable de escena y se llamará "Score".
-
-Añadamos una acción en el último evento que hemos realizado. Elija la acción `Variables\> Valor de una variable`. Esta acción se utilizará para agregar 100 a la variable Score, así que complete el parámetro como se muestra aquí:
-
-
-
-En GDevelop no necesitamos declarar variables antes de usarlas, podemos usar cualquier variable sin declararla simplemente nombrándola en una acción o condición. En caso de que estemos usando una acción en una variable que no está declarada, GDevelop la creará automáticamente para nosotros, con el valor predeterminado de '0' (o un texto vacío) después de ejecutar la acción en la variable para evitar cualquier problema. .
-
-Pero, para tener una mejor organización de su juego, es una buena práctica declarar variables antes de usarlas. De esta manera, es más fácil encontrar qué variables estás usando en tu juego. También puede cambiar su valor predeterminado si desea que sea diferente a 0. Para declarar una variable, haga clic en el botón "..." a la derecha del nombre de la variable. Esto muestra la lista de variables:
-
-
-
-La lista se muestra y está vacía, ya que no se declaró ninguna variable todavía:
-
-
-
-Puede hacer clic en el botón "+" para agregar una variable e ingresar "Puntuación" como su nombre:
-
-
-
-Recuerda que esto es totalmente opcional, solo una buena práctica.
-
-## Mostrar una puntuación usando un objeto de texto
-
-### Añadir objeto de texto
-
-Por ahora, la puntuación de la variable no se puede ver, por lo que no podemos verificar que la puntuación haya aumentado (podríamos, utilizando el [Debugger](/gdevelop5/ interface/ debugger), pero el jugador no puede verla).
-
-Necesitamos usar un objeto de Texto para mostrar el valor de la variable Puntuación. Añadamos un nuevo objeto. Esta vez, elija `Texto` cuando se le pregunte qué tipo de objeto crear:
-
-
-
-Cambie entonces las propiedades del objeto para que el texto sea negro y más grande que el tamaño predeterminado: 
-
-A continuación, puede colocar el objeto en la escena: 
-
-### Cambiando la capa de texto
-
-Si inicia el juego, puede ver que el texto de Puntuación se muestra con el resto de los objetos y su posición no está fija en la pantalla. Podemos resolver este problema fácilmente usando una capa encima de la capa base. Abre el editor de capas usando este botón:
-
-
-
-Se muestra la lista de capas, con solo la capa base por ahora:
-
-
-
-Haga clic en el botón `+` para agregar una capa. Introduzca "UI" para su nombre (UI significa interfaz de usuario).
-
-Finalmente, mueva el objeto de texto a esta nueva capa seleccionando la instancia de texto en la escena y en las propiedades de la izquierda, seleccione la capa de interfaz de usuario:
-
-
-
-Asegúrese de que el objeto se muestra en algún lugar visible en la pantalla, por ejemplo, colóquelo en la parte superior izquierda. El rectángulo negro en el editor de escenas representa el tamaño de la ventana:
-
-
-
-### Mostrar el valor de puntuación
-
-Ahora que tenemos un texto en nuestra pantalla, es hora de que muestre el valor de la variable Score. Añadir un nuevo evento. Este evento no tendrá ninguna condición, lo que significa que la acción se ejecutará cada vez que se presente un cuadro del juego en la pantalla (aproximadamente 60 veces por segundo).
-
-Agregue una acción y elija la que se encuentra en la categoría "Objeto de texto" "Modificar el texto".
-
-Para el primer parámetro, elija el objeto "Score", ya que es este objeto el que queremos actualizar. Para el segundo parámetro, elija el operador "= (establecido en)" (queremos configurar el texto en un nuevo valor). Finalmente, el último parámetro representa el nuevo contenido del texto. Es una expresión de cadena que GDevelop evaluará durante el juego cuando se ejecute la acción.
-
-Podemos especificar un texto escribiéndolo entre comillas (como esto: "Hello World"). Pero también podemos usar algo llamado expresiones. Una expresión es una función que está devolviendo un cierto valor. En este caso, necesitamos el valor de la variable Puntuación y queremos usar ese valor para actualizar el contenido del objeto Texto. Las expresiones son un tema más avanzado, por lo que no lo profundizaremos por ahora.
-
-Lo que necesita saber por ahora es que para obtener el valor de una variable de escena, necesitamos usar la expresión "Variable (variableName)". Y como es una variable numérica pero necesitamos el valor como texto, necesitamos convertir el valor devuelto de esta expresión en una cadena. Podemos hacerlo usando otra expresión llamada "ToString (valueToConvert)". Por lo tanto, la expresión real debe verse como esta "ToString (Variable (Score))".
-
-Finalmente, podemos agregar esta expresión después de un texto estático usando el operador "+":" Score: "+ ToString (Variable (Score))" (note las comillas dobles que rodean el texto).
-
-
-
-Muchas otras funciones y expresiones están disponibles en GDevelop. Cuando se combinan, se crean acciones poderosas que hacen un trabajo avanzado. Puede encontrar más expresiones en el editor de expresiones haciendo clic en el icono azul al lado de los campos de valor:
-
-
-
-Aquí está el evento final:
-
-
-
-Puedes previsualizar el juego, ver que la puntuación se muestra y se actualiza cuando recojas una moneda.
-
-
-
-## Bonus: asegurarse de que recoger dos monedas al mismo tiempo funcione
-
-Es posible que haya notado que si recolecta dos monedas al mismo tiempo (por ejemplo, si dos monedas se superponen), el puntaje solo aumenta una vez. Por ejemplo, si cada moneda vale 100 puntos y acumulas 2 monedas, la puntuación solo aumentará a 100 en lugar de 200. La solución para esto es fácil y es algo que aún no hemos visto: vamos a utilizar un evento llamado para cada objeto. Lo que haremos es decirle al motor que por cada moneda que se recolectó, agregue 100 a la puntuación.
-
-Para comenzar, haga clic en el botón + en la barra de herramientas del Editor de eventos:
-
-
-
-Seleccione "para cada objeto":
-
-
-
-Esto agregará un evento en la parte inferior de la página del evento. Arrástrelo hacia arriba y conviértalo en un sub-evento de la colisión del jugador con la moneda:
-
-
-
-Haga clic para elegir un objeto y elija el objeto Coin.
-
-
-
-Ahora que ha agregado el objeto al subevento, movamos las acciones hacia abajo al subevento (para que las acciones se repitan para cada moneda elegida por condiciones).
-
-Desplácese sobre la primera acción, haga clic con el botón derecho y córtela, luego desplace el cursor sobre la acción en el subevento, haga clic con el botón derecho y pegue. Haz esto por las otras dos acciones. También puede arrastrar y soltar acciones, que es más rápido que cortarlas y pegarlas.
-
-
-
-Así es como debería verse el evento final:
-
-
-
-Ahora ejecute el juego y verá que si reúne dos monedas al mismo tiempo, la puntuación se actualizará correctamente si ejecuta dos monedas al mismo tiempo.
-
-## Siguiente paso: agregar enemigos
-
-Todos los juegos de plataformas vienen con enemigos que debes evitar o matar al saltar sobre ellos. Agreguemos algunos y veamos cómo podemos hacer que se muevan.
-
-Leer **[Agregar enemigos](/es/gdevelop5/tutorials/platform-game/6-add-enemies)**!
diff --git a/docs/es/gdevelop5/tutorials/platform-game/6-add-enemies.md b/docs/es/gdevelop5/tutorials/platform-game/6-add-enemies.md
deleted file mode 100644
index c5a50e1e34f..00000000000
--- a/docs/es/gdevelop5/tutorials/platform-game/6-add-enemies.md
+++ /dev/null
@@ -1,150 +0,0 @@
----
-title: Agrega enemigos a tu juego de plataformas
----
-# Agrega enemigos a tu juego de plataformas
-
-!!! note
-
- Este tutorial es parte del [tutorial de plataformas](/gdevelop5/tutorials/platform-game/start), ¡pero también puedes reutilizarlo para cualquier otro juego donde tengas enemigos!
-
-Añadamos un enemigo que se moverá hacia la izquierda y hacia la derecha en las plataformas. El jugador puede destruirlo saltando sobre él.
-
-## Crea y agrega el objeto enemigo a tu escena
-
-Crea un nuevo objeto "Sprite". Agrega las imágenes "slimeWalk1.png" y "slimeWalk2.png" a la primera animación y llama a esta animación "Caminar".
-
-Dado que nuestro enemigo se moverá constantemente, no necesitamos una animación inactiva ni ninguna otra animación.
-
-Establezca la animación en bucle haciendo clic en el botón "No hacer bucle", para voltearlo a "Bucle" y configure su velocidad de animación en "0.5" con el ícono del reloj.
-
-La ventana debería verse así: 
-
-Confirme los cambios haciendo clic en el botón "Aplicar".
-
-A continuación, cambie el nombre del objeto a `Slime`. Agrega un objeto de limo a la escena, asegurándote de que quede justo en la parte superior de una plataforma.
-
-Si ejecutamos la vista previa ahora, no hace mucho. Simplemente se sienta en silencio en la parte superior de la plataforma y reproduce la animación de caminar. Vamos a hacer que se mueva.
-
-## Mueve al enemigo a izquierda y derecha
-
-En este tutorial, nuestro limo se moverá hacia la izquierda y hacia la derecha. Vamos a hacer esto usando objetos invisibles: cuando el El limo tocará uno de los objetos, invertirá su dirección.
-
-Añadamos dos objetos que actuarán como delimitadores. Crea un nuevo objeto sprite y agrega la imagen "Left.png". Nombra este objeto `left`. Luego, crea un objeto más y agrega la imagen "Right.png". Nombre este objeto "correcto".
-
-Finalmente, coloque el objeto llamado "izquierdo" en el lado derecho de la plataforma y el objeto llamado "derecho" en el lado izquierdo de la plataforma.
-
-Debe tener un aspecto como este: 
-
-La idea es que si el limo choca con el objeto llamado "izquierda", establecemos su dirección para moverse hacia la izquierda. Y si está chocando con el objeto llamado derecha, establecemos su dirección para que se mueva hacia la derecha.
-
-Primero, vamos a crear una variable de objeto llamada "dirección" con el valor predeterminado "izquierda". Vamos a utilizar esta variable para cambiar la dirección.
-
-Para agregar una variable de objeto a nuestro limo, haga clic derecho en el objeto de limo en la lista de objetos y elija "Editar variables de objeto".
-
-Se muestra una ventana vacía. Contiene la lista de variables de objeto que hemos declarado para nuestro objeto de limo. Está vacío ahora como hemos declarado ninguno. Para agregar una variable de objeto, haga clic en el signo más en la esquina inferior derecha.
-
-Esto agrega una variable llamada "Variable" en la ventana. Haga clic en el nombre y cámbielo a "dirección". Haga clic en el campo de valor y escriba "izquierda". La ventana debería verse así:
-
-
-
-Confirme los cambios haciendo clic en el botón Aplicar.
-
-Ahora tenemos una variable de objeto llamada "dirección" con el valor predeterminado "izquierda".
-
-Vamos a usar esta variable para hacer que nuestro limo se mueva.
-
-En el editor de eventos, agregue un evento en blanco y agregue una condición para verificar el "Texto de la variable de un objeto". Puede encontrarlo en "Condiciones comunes para todos los objetos\> Variables\> Texto de la variable de un objeto".
-
-En los parámetros, para el campo objeto seleccione "Slime". Para el campo Variable, seleccione "dirección" (o escriba "dirección" con el teclado). Para Signo de la prueba, seleccione "igual a" y finalmente, para el valor, ingrese "izquierda". **No te olvides de poner el valor entre comillas**.
-
-La ventana debería verse así: 
-
-Presione OK para confirmar y agregar la condición al evento.
-
-Ahora vamos a agregar la acción para mover el limo a la izquierda.
-
-Haga clic en "Agregar acción" y seleccione "Agregar una fuerza (ángulo)" en "Condiciones comunes para todos los objetos -\> Movimiento -\> Agregar una fuerza (ángulo)". Recuerde, siempre puede usar el cuadro de búsqueda para encontrar lo que está buscando.
-
-En los parámetros, para el campo de objeto, seleccione "Limo" de nuevo. Para el ángulo, ingrese "180" grados (que es el lado izquierdo en el sistema de coordenadas GDevelop) y para velocidad ingrese 100.
-
-La ventana debería verse así: 
-
-Presione OK para agregar la condición al evento.
-
-Si ejecutamos la vista previa ahora, nuestro limo debería comenzar a moverse hacia la izquierda, pero es probable que note que sigue moviéndose y nunca cambie de dirección.
-
-Esta vez vamos a comprobar la colisión entre el objeto Slime y el objeto llamado "derecho" y vamos a cambiar el valor de la variable de dirección a "derecho".
-
-Agregue un evento en blanco y agregue una condición para verificar la colisión entre el Limo y el objeto llamado "derecho". Ya deberías saber cómo hacer esto. A continuación, agregue una acción para "Modificar el texto de una variable de un objeto".
-
-En los parámetros, para el objeto seleccione Limo, para la variable seleccione "dirección", para el operador, elija "= (establecer en)". Finalmente, para valor ingrese "derecha". No olvides las comillas dobles.
-
-La ventana debería verse así: 
-
-Si ejecutamos la vista previa ahora, puede observar que no ocurre nada porque no le dijimos a GDevelop qué hacer si la dirección es "correcta".
-
-Terminemos agregando los mismos dos eventos similares, pero invirtiendo "izquierda" por "derecha" y cambiando la dirección. Cuando haya terminado, los eventos deberían tener este aspecto (menos las acciones para voltear el sprite que agregaremos después):
-
-
-
-Ahora, si inicias una vista previa del juego, el limo debería moverse hacia la izquierda y hacia la derecha, pero se mantendrá orientado hacia la izquierda cuando te muevas. Vamos a voltear su orientación.
-
-En la lista de acciones en el evento donde hacemos que el limo se mueva hacia la izquierda, agregue una acción para voltear el sprite horizontalmente. Para el objeto, seleccione "Limo" y para el valor, seleccione "No" (ya que no queremos que el objeto se invierta al moverse a la izquierda).
-
-Repita lo mismo, pero esta vez para el evento utilizado para mover el limo a la derecha. Seleccione "Sí" esta vez porque queremos voltear el objeto cuando se está moviendo hacia la derecha.
-
-El evento debería verse así:
-
-
-
-Ahora el limo se mueve hacia la izquierda y hacia la derecha y también tiene la orientación correcta cuando se mueve.
-
-## Haz que el jugador mate al enemigo
-
-Hagamos que el jugador destruya el limo cuando salta sobre él.
-
-Agregue un evento en blanco con una condición para verificar si hay una colisión entre el jugador y el limo. Agrega una acción para eliminar el limo. Esto es como lo que [hicimos con las monedas](/gdevelop5/ tutoriales/ plataforma-juego/ 5-agregar-monedas-y-número-de-monedas-recolectadas) antes, pero esta vez con el Limo.
-
-Si ejecutamos esto ahora, el limo debe eliminarse tan pronto como chocemos con él, pero esto no es lo que queremos. Queremos eliminarlo solo si el jugador salta encima de él.
-
-Para hacer eso, agregue una condición más a nuestro evento: esta vez verifique si el jugador se está cayendo.
-
-Ahora, si ejecutamos una vista previa, nuestro limo debe eliminarse cuando el jugador salta sobre el limo.
-
-Todavía no es perfecto, ya que el jugador cae sobre el limo y el limo desaparece sin que el jugador salte.
-
-Para hacer eso, agrega una acción más al evento. Elija esta vez la acción llamada "Permitir saltar de nuevo" (para el objeto "Jugador"). Luego, agregue otra acción llamada "Simular la acción de presionar la tecla de salto" para que salte (esto parecerá que el jugador está rebotando). Puede encontrar ambas acciones en la categoría "Comportamiento de Platformer".
-
-En este punto el evento debería verse así:
-
-
-
-Ahora, si ejecuta la vista previa y salta en la parte superior del limo, el jugador debe rebotar suavemente en él y el limo desaparecerá.
-
-## Haz que el enemigo mate al jugador
-
-Ahora hagamos la lógica inversa: mata al jugador si el enemigo lo toca.
-
-Agregue un evento en blanco y agregue la condición para verificar la colisión entre el jugador y el limo. Luego agrega una acción para eliminar el jugador.
-
-Esto no va a funcionar, ya que podríamos eliminar el reproductor antes de que podamos eliminar el limo, o podríamos eliminarlo antes de que podamos eliminar el jugador.
-
-Para evitar esto, agregue una condición más a nuestro evento, verificando si el jugador está en el piso.
-
-Ahora, si ejecutamos la vista previa, deberíamos poder matar el limo saltando sobre él y el limo debería poder matar al jugador si el jugador está en el suelo en el momento de la colisión.
-
-## Ocultando los delimitadores de la plataforma.
-
-Lo último que debemos hacer ahora es ocultar los objetos de flecha "izquierda" y "derecha". Para hacerlo, agregue un evento con la condición 'Al principio de la escena' (que se activará solo una vez cuando comience la escena) y la acción para "ocultar el objeto a la izquierda" y "ocultar el objeto a la derecha" .
-
-Los eventos de este tutorial hasta ahora deberían verse así:
-
-
-
-Ahora, si ejecuta una vista previa, el objeto izquierdo y derecho con la flecha debe estar oculto, el limo debe moverse hacia la izquierda y la derecha constantemente. Podemos matar el cieno saltando sobre él y el limo debería poder matar al jugador cuando colisiona con él mientras está en el suelo.
-
-## Siguiente paso: agregar puntos de control
-
-Por ahora, la "muerte" del jugador es un poco brutal: simplemente la eliminamos. Hagamos que vuelva a aparecer en el último punto de control que cruzó. Los puntos de control son esenciales en un juego de plataformas si no quieres forzar a tu jugador a comenzar de nuevo desde el principio cuando muera (lo que puede ser interesante, ¡pero también frustrante!).
-
-Lee el siguiente tutorial **[Puntos de control](/es/gdevelop5/tutorials/platform-game/7-checkpoints)**!
diff --git a/docs/es/gdevelop5/tutorials/platform-game/7-checkpoints.md b/docs/es/gdevelop5/tutorials/platform-game/7-checkpoints.md
deleted file mode 100644
index fa04f6af150..00000000000
--- a/docs/es/gdevelop5/tutorials/platform-game/7-checkpoints.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: Agregar puntos de control a tu juego
----
-# Agregar puntos de control a tu juego
-
-Terminamos el tutorial anterior eliminando el jugador cuando choca con el enemigo. Esta no es la forma en que funciona en la mayoría de los juegos. Generalmente, en lugar de eliminar al jugador, un juego tendrá un "punto de control". El "punto de control" guarda el estado del juego y el estado del jugador en variables. Luego, si el jugador muere, el juego y / o el jugador se reinician desde el "punto de control".
-
-Para este tutorial, guardar el estado de todo el juego y el estado del jugador puede ser un poco demasiado avanzado. En cambio, cuando un jugador colisiona con un objeto de "punto de control", vamos a almacenar la posición del objeto de "punto de control" dentro de las variables. Además, en lugar de eliminar al jugador, vamos a restablecer su posición a lo que esté almacenado dentro de las variables.
-
-### Crear un objeto de punto de control
-
-Empecemos creando un nuevo objeto sprite en nuestro juego. Llámalo "punto de control". Puede ser cualquier imagen de sprite .jpg o .png que tengas. Voy a usar un sprite de cactus.
-
-
-
-A continuación, agregue el objeto sprite a la escena. Su imagen de sprite puede ser demasiado grande o demasiado pequeña. Utilice los manillares en el sprite para cambiar el tamaño de la imagen. En mi caso, será el objeto sprite de cactus como se muestra arriba. Colóquelo en la escena donde desee tener un "punto de control". Puedes agregar tu objeto sprite a múltiples lugares en tu escena. De esa manera, puede establecer múltiples "puntos de control".
-
-### Añadir eventos
-
-Ahora que tenemos los objetos de "punto de control" en nuestra escena, agreguemos los eventos. Comenzamos con una condición para verificar si hay una colisión entre el "jugador" y el "punto de control". Si ocurre la colisión, almacenamos las posiciones X e Y del objeto sprite "checkpoint" en una variable de escena llamada checkpointX y checkpointY.
-
-
-
-
-
-Arriba, estamos utilizando _expresiones_ para obtener las posiciones X e Y del objeto de "punto de control". Esto se hace de manera similar a la forma en que actualizamos el texto de puntuación. Puede encontrar más _expresiones_ en el _editor de expresiones_ haciendo clic en el icono azul al lado de los campos de valor:
-
-
-
-Cuando hace clic en el icono azul, puede buscar todas las expresiones disponibles ordenadas en categorías.
-
-
-
-La condición ahora almacena la posición X e Y del objeto "punto de control" con el que nuestro objeto "Jugador" ha colisionado. Entonces, en lugar de eliminar el objeto sprite "Player", establecemos sus posiciones X e Y usando las variables.
-
-
-
-
-
-En el ejemplo anterior, estamos usando otro conjunto de expresiones para obtener el valor de las variables almacenadas y pasarlas a la posición "Jugador".
-
-### Resolviendo errores
-
-En caso de que sigas el ejemplo y también hayas seleccionado el cactus para el "punto de control", ¡también puedes notar que acabamos de crear un error! Nuestro personaje jugador es más alto que el cactus. Cuando establecemos la posición Y del jugador, en realidad establecemos la posición demasiado baja y nuestro jugador se queda atascado en el suelo. 8-o
-
-
-
-En este caso particular, podemos resolver fácilmente el problema escalando el sprite de cactus en el eje Y para que sea tan alto o incluso más alto que el jugador. Ya que, a estas alturas, ya sabe cómo escalar / cambiar el tamaño de un sprite, veamos cómo hacerlo utilizando un enfoque un poco más desafiante, pero también más preciso. Usemos las matemáticas para solucionar el problema.
-
-
-
-Estoy usando una solución más compleja para mostrarle lo poderosas que pueden ser las expresiones. Mi solución es establecer la posición Y del jugador usando una variable. Yo, entonces, resto la altura del "punto de control" de la altura del "jugador". De esta manera, obtengo la diferencia en altura de jugador y "punto de control". Puedo terminar la solución restando esa diferencia de lo que sea que devuelva la variable.
-
-Una solución menos difícil, pero una que todavía use matemáticas, sería restar, digamos, 30, del valor de la variable.
-
-
-
-Al utilizar la solución más fácil junto con la prueba y el error, puede encontrar el número que funcione mejor. Sin embargo, para obtener un valor exacto, te he dado un ejemplo más complicado de qué usar.
-
-También podría preguntarse por qué estoy restando de la Y en lugar de agregar el valor a la Y. El problema es que la altura del "punto de control" es más baja que la del "Jugador". Eso significa que necesito poner el jugador más alto. Observe que los valores en el eje Y aumentan de arriba a abajo. El eje Y comienza en 0 en la parte superior. Aumenta a medida que se mueve hacia abajo. Técnicamente, necesito un valor más bajo para mover algo más alto. :-)
-
-
-
-La mayoría de los motores 2D funcionan de esta manera. Comenzamos en la esquina superior izquierda que es la coordenada 0,0. Aumentamos el primer número de coordenadas que va a la derecha a medida que seguimos en el eje X. y aumentamos el segundo número de coordenadas que va hacia abajo en el eje Y. Puedes ver cómo se aplica esto en la imagen de arriba.
-
-Ahora, si ejecutamos una vista previa y nuestro jugador muere, su posición se establecerá en los últimos valores guardados del "punto de control". ¡Pero hay un error más! Si nuestro jugador muere antes de chocar con cualquier "punto de control", las variables devolverán un valor de 0, por lo que nuestro jugador reaparecerá / reaparecerá en la posición 0,0, que es la esquina superior izquierda, como se indica en la gráfica de arriba. .
-
-Podemos solucionar fácilmente este problema configurando los valores predeterminados para que los valores del punto de control sean la posición inicial del jugador al comienzo de la escena.
-
-
-
-Entonces, cuando nuestra escena comienza, es de esperar que ya tengamos a nuestro jugador en la posición y simplemente obtengamos la posición del jugador y almacenemos la posición del jugador como la posición de "punto de control". En caso de que el jugador muera antes de colisionar con cualquiera de los puntos de control, usamos las variables de posición originales del jugador para establecer su posición al comienzo de la escena.
-
-### Mejorar el sistema
-
-Usando lo que ha aprendido hasta ahora, puede intentar agregar texto para mostrar un mensaje si llegamos a un punto de control. Entonces quizás, reproduzca una animación para hacer que el cactus salte o algo más para que sea más interesante.
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_224946.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_224946.png
deleted file mode 100644
index a91e7077658..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_224946.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_230624.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_230624.png
deleted file mode 100644
index 44fe784b771..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_230624.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_231357.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_231357.png
deleted file mode 100644
index 54d5bc47e26..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_231357.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232300.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232300.png
deleted file mode 100644
index 665e03d58fe..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232300.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232301.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232301.png
deleted file mode 100644
index c12966ccf23..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232301.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_233506.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_233506.png
deleted file mode 100644
index ea9bf714e41..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_233506.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234534.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234534.png
deleted file mode 100644
index 9fbd4eb8b2b..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234534.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234828.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234828.png
deleted file mode 100644
index 2d097dbde3e..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234828.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235052.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235052.png
deleted file mode 100644
index 539be5828c7..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235052.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235711.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235711.png
deleted file mode 100644
index 7f2828ebf38..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235711.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000121.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000121.png
deleted file mode 100644
index 9fabc4f6da2..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000121.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000719.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000719.png
deleted file mode 100644
index 7490dccc92d..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000719.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001413.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001413.png
deleted file mode 100644
index 58d0c5abe3e..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001413.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001719.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001719.png
deleted file mode 100644
index 5f0a24f8f0d..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001719.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002009.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002009.png
deleted file mode 100644
index ab1a29ba9b3..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002009.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002355.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002355.png
deleted file mode 100644
index 21a572d4b5d..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002355.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002709.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002709.png
deleted file mode 100644
index 07c75917217..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002709.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_003239.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_003239.png
deleted file mode 100644
index 1e8b7b1dca6..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_003239.png and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platform-game/index.md b/docs/es/gdevelop5/tutorials/platform-game/index.md
deleted file mode 100644
index e2856993449..00000000000
--- a/docs/es/gdevelop5/tutorials/platform-game/index.md
+++ /dev/null
@@ -1,172 +0,0 @@
----
-title: Cómo hacer un juego de plataformas
----
-# Cómo hacer un juego de plataformas
-
-Este tutorial te ayudará a comenzar a utilizar **GDevelop**: Crearás un juego de plataformas muy simple donde el jugador puede saltar sobre plataformas y recolectar monedas.
-
-Tenga en cuenta que puede leer la página [Empezando](/es/gdevelop5/ getting_started) para obtener una descripción general del software: explica los conceptos principales y describe la interfaz de GDevelop.
-
-## Descargar GDevelop
-
-Si no tiene **GDevelop 5**, descárguelo del \[sitio web oficial\](). Está disponible para Windows, macOS y Linux.
-
-Siempre descargue GDevelop desde esta página para asegurarse de tener la última versión. Instalar (o extraer) GDevelop y lanzarlo.
-
-
-
-## Crear un nuevo juego
-
-Haga clic en `Crear un nuevo proyecto` en la página de inicio. En la ventana, elija una carpeta para su proyecto y seleccione `Proyecto Vacio o Empty Game ` para comenzar un juego nuevo desde cero.
-
-
-
-Para hacer nuestro juego, necesitaremos activos que podamos usar (el personaje del jugador, algunas plataformas, elementos para recopilar ...). Puede descargar recursos aquí: .
-
-Una vez que haya descargado este archivo, extraiga su contenido en la carpeta donde creó el proyecto.
-
-## Añadir una escena
-
-Las escenas son parte de tu juego. Normalmente, cada pantalla diferente de tu juego es una escena: el menú principal, el menú de pausa y los niveles son escenas.
-
-Las escenas contienen objetos, que se muestran en la pantalla. Estos objetos se pueden poner en escena para crear los niveles (estos objetos se llaman "instancias"). Las escenas también contienen los eventos que se ejecutan para animar la escena.
-
-En el administrador del proyecto que se abre a la izquierda, haga clic en el botón `+` debajo de "Escenas":
-
-
-
-Una nueva escena, llamada "Nueva escena", se agrega a la lista. Haga clic en él para abrirlo.
-
- \## Crear el objeto jugador
-
-El jugador controlará un personaje que puede saltar y moverse en plataformas. Vamos a crear este objeto.
-
-A la derecha, puedes ver un panel llamado "Objetos". Haga clic en el botón `+` para agregar un objeto.
-
-
-
-Aparecerá una ventana que muestra diferentes tipos de objetos entre los que puede elegir.
-
-
-
-Diferentes tipos de objetos proporcionan características específicas. Para la mayoría de nuestros objetos, utilizaremos los objetos Sprite, que son objetos animados que se pueden usar para muchos elementos (jugador, plataformas, enemigos, elementos ...).
-
-Haga clic en `Sprite` en la lista. El nuevo objeto se agrega a la escena y el editor de objetos se abre:
-
-
-
-El objeto está vacío por ahora. Los objetos Sprite están compuestos de animaciones, y cada animación puede contener una o más imágenes. ¡Vamos a añadir una animación! Haga clic en el botón `+`.
-
-
-
-La animación se agrega pero sigue vacía sin imágenes. Para agregar una imagen, haga clic en `+` en la miniatura en blanco.
-
-Elija la imagen llamada `p1_stand` en la carpeta del proyecto. La imagen se agrega al objeto:
-
-
-
-Ahora puede cerrar el editor haciendo clic en el botón "Aplicar" en la esquina inferior derecha.
-
-## Poner el objeto en escena.
-
-Para mostrar el jugador en nuestro nivel, lo colocamos en la escena. Cada objeto que agregamos a la escena se llama una "instancia" del objeto.
-
-Nuestra instancia de jugador será única ya que solo tendremos uno en nuestro nivel, pero otros objetos (como plataformas, monedas, enemigos ...) pueden tener múltiples instancias viviendo en la escena.
-
-Para agregar el objeto, simplemente haga clic en él en la lista. Luego se selecciona y se muestra sobre un fondo azul:
-
-
-
-Luego puede arrastrar el objeto a cualquier lugar de la escena para agregar la instancia de este objeto:
-
-
-
-## Dale al objeto un nombre propio
-
-Para que sea más fácil referirse a nuestro objeto, asígnele un nombre en lugar de usar el nombre predeterminado. Haga clic derecho en él (o haga clic en el ícono `⋯`) y elija renombrar. Luego puede escribir "Jugador" y hacer clic en cualquier lugar de la pantalla o presionar la tecla Intro para cambiar el nombre del objeto.
-
-
-
-## Añadir plataformas
-
-El nivel todavía está vacío por ahora sin ninguna plataforma. Vamos a añadir algunos.
-
-Cree un nuevo objeto haciendo clic en el botón `+` en la lista de Objetos. En esta ocasión, elija `Tiled Sprite` cuando se le pregunte por el tipo de objeto:
-
-
-
-Se abre el editor de objetos. Es un poco diferente en comparación con el editor del objeto Sprite, ya que los objetos Tiled Sprite no están animados. Haga clic en `Seleccionar una imagen` y luego en` Elegir una nueva imagen`. Esta vez, elige la imagen llamada `grassHalfMid`.
-
-
-
-Cierre el editor haciendo clic en el botón "Aplicar" en la esquina inferior derecha. Haga clic en el objeto en la lista para seleccionarlo, y haga clic en la escena para colocarlo en el nivel:
-
-
-
-El objeto se agrega a nuestra escena pero es muy pequeño. Haga clic en él y use los controladores para cambiar el tamaño para que se vea como una plataforma:
-
-
-
-Además, no olvide cambiar el nombre del objeto para que se llame "GrassPlatform" en lugar del nombre predeterminado.
-
-### Tiempo para guardar!
-
-No perdamos lo que hemos hecho hasta ahora: en el menú "Archivo" de la aplicación, haga clic en "Guardar" (o presione Ctrl + S / Cmd + S) para guardar los cambios.
-
-## Añadir comportamientos a objetos
-
-### El jugador
-
-El movimiento del jugador podría crearse usando los eventos de GDevelop, pero sería una tarea bastante larga y difícil recrear un buen motor de plataformas. Afortunadamente, GDevelop ya viene con un motor de plataformas completo incorporado que podemos usar. Para esto, necesitamos usar los "comportamientos de las plataformas", que nos permiten acceder y utilizar el motor de plataformas integrado.
-
-Abra el editor de objetos "Jugador":
-
-
-
-Cambie a la pestaña `Comportamientos` y haga clic en el botón` + `para agregar un comportamiento al objeto. Elija `Objeto que se desplaza sobre plataformas` en la lista de comportamientos disponibles. Luego puede ver el comportamiento en el editor, con una gran cantidad de parámetros que puede modificar:
-
-
-
-Puedes cambiar algunas propiedades como la velocidad de salto. Ajústelo, por ejemplo, a 800 para que el salto sea más potente.
-
-### Plataformas
-
-También necesitamos configurar los objetos para que sean plataformas. Para que el jugador pueda caminar y saltar sobre ellos. De lo contrario, el jugador caerá a través del objeto ya que no le dijimos a nuestro personaje qué hacer cuando aterriza en él. Al configurar un objeto para que sea una plataforma, el personaje del juego de plataformas chocará con él y podrá caminar sobre él.
-
-Para configurar el objeto GrassPlatform para que sea una plataforma, abra el editor de objetos GrassPlatform. Cambie a la pestaña Comportamientos, luego agregue un comportamiento: esta vez, elija el comportamiento `Plataforma`.
-
-
-
-También hay algunas opciones que puedes cambiar. Por ejemplo, la opción "Puede agarrar las plataformas de la plataforma" está ahí para permitir que el personaje del juego de plataformas tome el borde de la plataforma. Si habilitamos esta opción en este momento, el resultado se verá extraño, ya que no tenemos una animación que se muestre cuando el personaje se acerque. Vamos a mantener esto sin marcar.
-
-## Iniciar una vista previa
-
-En este punto, deberías poder probar tu juego presionando el botón "Vista previa" en la parte superior de la pantalla en la barra de herramientas.
-
-
-
-Cuando presiona el botón, se genera una vista previa y, justo después, se abre una nueva ventana.
-
-Debes poder caminar y saltar usando las teclas predeterminadas: mueve el personaje con las flechas y presiona `Shift` o` Space` para saltar. Siéntase libre de agregar algunas otras plataformas a la escena como lo hicimos antes. Asegúrate de agregar los comportamientos a las plataformas para evitar que el personaje se caiga.
-
-Por ahora, el objeto no tiene animaciones, las añadiremos más tarde.
-
-
-
-Si el objeto no se está moviendo, asegúrese de haber agregado los comportamientos adecuados.
-
-## Cambiar el color de fondo
-
-El fondo gris es un poco aburrido. Más tarde podemos agregar una imagen, pero por ahora, seamos sencillos. En el editor, haga clic derecho en el fondo gris y elija "Propiedades de escena":
-
-
-
-En la nueva ventana que se abrió, haga clic en `Color de fondo de la escena` y seleccione un buen color para el fondo:
-
-
-
-## Siguiente paso: animar el jugador
-
-Nuestro juego es muy básico por ahora: el jugador no está animado cuando salta o corre. La siguiente parte del tutorial mostrará cómo agregar diferentes animaciones y cómo usar eventos para cambiar las animaciones cuando el estado del jugador cambia.
-
-Lea **[la siguiente parte del tutorial aquí](/es/gdevelop5/tutorials/platform-game/2-player-animations)**!
diff --git a/docs/es/gdevelop5/tutorials/platformer/crear-proyecto.gif b/docs/es/gdevelop5/tutorials/platformer/crear-proyecto.gif
deleted file mode 100644
index f31845ba07f..00000000000
Binary files a/docs/es/gdevelop5/tutorials/platformer/crear-proyecto.gif and /dev/null differ
diff --git a/docs/es/gdevelop5/tutorials/platformer/index.md b/docs/es/gdevelop5/tutorials/platformer/index.md
deleted file mode 100644
index fc28a8c5109..00000000000
--- a/docs/es/gdevelop5/tutorials/platformer/index.md
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: Tutorial de Plataformas, Parte 1 - Primeros pasos
----
-# Tutorial de Plataformas, Parte 1: Primeros pasos
-
-Este tutorial explica cómo crear un juego de plataformas con GDevelop. Si nunca antes ha creado un juego con GDevelop, este es un excelente lugar para comenzar.
-
-Aprenderá a:
-
-- Diseña un nivel con plataformas, enemigos y monedas coleccionables.
-- Crea un personaje jugable que pueda moverse, saltar y matar enemigos.
-- Devuelve el jugable a los puntos de control cuando mueren.
-
-## Series
-
-Estás leyendo **la Parte 1** del [Tutorial de Plataformas](/es/gdevelop5/tutorials/platformer/start).
-
-1\. Tutorial de Plataformas, Parte 1 2. [Tutorial de Plataformas, Parte 2](/es/gdevelop5/tutorials/platformer/part-2) 3. [Tutorial de Plataformas, Parte 3](/gdevelop5/tutorials/platformer/part-3) 4. [Tutorial de Plataformas, Parte 4](/gdevelop5/tutorials/platformer/part-4) 5. [Tutorial de Plataformas, Parte 5](/gdevelop5/tutorials/platformer/part-5) 6. [Tutorial de Plataformas, Parte 6](/gdevelop5/tutorials/platformer/part-6) 7. [Tutorial de Plataformas, Parte 7](/gdevelop5/tutorials/platformer/part-7) 8. [Tutorial de Plataformas, Parte 8](/gdevelop5/tutorials/platformer/part-8)
-
-## Paso 1: Instalar GDevelop
-
-Si aún no lo ha hecho, descargue e instale GDevelop. Puede encontrar las instrucciones completas sobre cómo configurar el software a través de la página [Primeros pasos.](/gdevelop5/getting_started)
-
-## Paso 2: Descargar los recursos del juego
-
-El término *recursos* se refiere a los medios visuales y de audio de un juego, como los efectos de sonido y los sprites. Cada juego necesita recursos y, para facilitarle un poco la vida, este tutorial proporciona los recursos que necesita para crear el juego.
-
-Puede descargar los recursos a través de la siguiente URL:
-
-
-
-!!! note
-
- También eres más que bienvenido a usar diferentes recursos. Sin embargo, naturalmente, el juego que vea en las capturas de pantalla se verá diferente del juego que termines creando.
-
-## Paso 3: Crear un nuevo proyecto
-
-En GDevelop, un _proyecto_ es un contenedor para los activos y la lógica del juego. En este tutorial, los términos "proyecto" y "juego" se utilizan como sinónimos.
-
-Para crear un proyecto:
-
-1\. Inicie GDevelop. 2. Seleccione **Crear un proyecto en blanco**. 3. Elija una carpeta para el proyecto. 4. Seleccione **Crear proyecto**.
-
-
-
-## Paso 4: Agregar una escena al juego
-
-Un juego se compone de _escenas_. Por lo general, cada escena es una pantalla diferente en el juego. Por ejemplo, el menú principal, el menú de pausa y cada nivel de un juego serían escenas diferentes.
-
-Para agregar una escena al juego:
-
-1\. Expanda el panel **Escenas** (si aún no está expandido). 2. Seleccione **Clic para agregar una escena**.
-
-Luego seleccione la escena para abrirla.
-
-
-
-!!! note
-
- Si agrega varias escenas a un proyecto, la primera escena de la lista es la escena que carga GDevelop cuando se inicia el juego.
-
-## Paso 5: Agrega objetos a la escena
-
-Una escena se compone de [objetos](/gdevelop5/objects). Todo lo que el usuario ve o con lo que interactúa es un objeto, incluido el personaje jugable, los enemigos y partes del entorno.
-
-GDevelop proporciona diferentes tipos de objetos que puede agregar a un juego. Cada tipo de objeto tiene características y casos de uso únicos. El tipo de objeto más común es el objeto Sprite, que le permite crear un gráfico que puede elegir animar (opcionalmente).
-
-Para crear un objeto:
-
-1\. En el panel **Objetos**, haga clic en **Agregar un nuevo objeto**. 2. Seleccione **Sprite**. 3. En el campo **Nombre del objeto**, escriba "Nube". 4. Al abrirse el editor de objetos, haga click en **Añadir una animación**. Aunque el rótulo dice **Añadir una _animación_**, los objetos Sprite no tienen por qué estar animados. 5. Haga click en **Añadir**. 6. Selecccione el recurso "cloud2.png". 7. Seleccione **Aplicar**.
-
-Después arrastre una o más copias del objeto "Cloud" a la escena.
-
-
-
-!!! note
-
- Cada copia del objeto que aparece en una escena se refiere a una _instancia_ de dicho objeto.
-
-## Paso 6: Cambia el color de fondo
-
-Las nubes blancas no se ven muy bien en el fondo gris.
-
-Para cambiar el color de fondo de la escena:
-
-1\. Haz clic derecho en el fondo de la escena. 2. Seleccione **Propiedades de la escena**. 3. Haz clic en **Color de fondo de la escena**. 4. Elige un bonito tono de azul.
-
-!!! note
-
- Puede ingresar un hexadecimal (Ej: \#00000) o un nombre del color (Ej: Negro)
-
-
-
-## Paso 7: Previsualizar el juego
-
-Es bueno adquirir la costumbre de previsualizar con frecuencia sus juegos. Así, cuando algo deje de funcionar, es más fácil averiguar el problema.
-
-Para mostrar la previsualización del juego, haga click en el botón **Vista previa** de la barra de herramientas.
-
-
-
-Para detener la vista previa, cierre la ventana de vista previa.
-
-## Paso 8: Guarda el juego
-
-También es bueno adquirir el hábito de guardar regularmente tus juegos. Puedes guardar el juego a través del menú Archivo o usando un atajo de teclado:
-
-- `CTRL` + `S` en Windows - `CMD` + `S` en macOS
-
-## Próximo paso
-
-Lea el [Tutorial de Plataformas, Parte 2](/es/gdevelop5/tutorials/platformer/part-2) y aprende a crear un personaje jugable.
diff --git a/docs/es/gdevelop5/tutorials/platformer/part-2.md b/docs/es/gdevelop5/tutorials/platformer/part-2.md
deleted file mode 100644
index 296fd38bde8..00000000000
--- a/docs/es/gdevelop5/tutorials/platformer/part-2.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: part-2
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-# Tutorial de Plataformas, Parte 2: Crea un Personaje Jugable
-
-Esta parte del tutorial explica cómo agregar un personaje jugable al juego.
-
-Aprenderás cómo:
-
-- Crear un objeto que represente al personaje jugable.
-- Deje que el jugador controle el objeto usando las teclas de flecha.
-- Sigue al personaje jugable con la cámara.
-
-## Series
-
-Estás leyendo la **Parte 2** del [Tutorial de Plataformas](/es/gdevelop5/tutorials/platformer/start).
-
-1\. [Tutorial de Plataformas, Parte 1](/es/gdevelop5/tutorials/platformer/start) 2. Tutorial de Plataformas, Parte 2 3. [Tutorial de Plataformas, Parte 3](/gdevelop5/tutorials/platformer/part-3) 4. [Tutorial de Plataformas, Parte 4](/gdevelop5/tutorials/platformer/part-4) 5. [Tutorial de Plataformas, Parte 5](/gdevelop5/tutorials/platformer/part-5) 6. [Tutorial de Plataformas, Parte 6](/gdevelop5/tutorials/platformer/part-6) 7. [Tutorial de Plataformas, Parte 7](/gdevelop5/tutorials/platformer/part-7) 8. [Tutorial de Plataformas, Parte 8](/gdevelop5/tutorials/platformer/part-8)
-
-## Paso 1: Crear un objeto
-
-El primer paso es crear un objeto que represente al personaje jugable. Si siguió la primera parte de este tutorial, este debería ser un proceso familiar.
-
-To create an object for the playable character:
-
-1\. Create a **Sprite** object named "Player". 2. Use the "p1_stand.png" asset as the animation's only frame. 3. Assign a name of "Idle" to the animation. 4. Drag an instance of the object into the scene.
-
-
-
-!!! note
-
- [Platformer Tutorial, Part 4](/gdevelop5/tutorials/platformer/part-4) explains how to animate the character.
-
-## Step 2: Add a behavior to the object
-
-If you preview the game, you can't control the "Player" object. This is because, by default, objects don't do anything. To make objects do something, you need to assign one or more [behaviors](/gdevelop5/behaviors) to them.
-
-GDevelop comes with a large library of behaviors that you can add to objects in a matter of clicks. One of these behaviors is the **Platformer character** behavior, which lets you control an object as a playable character.
-
-To add the **Platformer character** behavior to the object:
-
-1\. Right click the **Player** object. 2. Select **Edit object**. 3. Switch to the **Behaviors** tab. 4. Click **Add a behavior to the object**. 5. Select **Platformer character**. 6. Click **Apply**.
-
-If you preview the game, you can control the player with the arrow keys. There's a side-effect though: an object with the **Platformer character** behavior is affected by gravity, so in this case, the playable character quickly fall out of the frame.
-
-
-
-## Step 3: Follow an object with the camera
-
-To prevent the character from falling out of frame, the game needs platforms and a camera that follows the player. The [next part of the tutorial](/gdevelop5/tutorials/platformer/part-3) is about platforms, so this section is about the camera.
-
-To make the camera follow the player, you need to create an [event](/gdevelop5/events). In GDevelop, events let you define cause and effect, so when something happens (cause) you can trigger something else to happen (effect).
-
-Events are made up of two parts: conditions and actions. The condition is what determines when the event happens and the action is what happens when the event occurs.
-
-GDevelop has a large library of conditions and actions that add all sorts of features to a game. A big part of learning GDevelop is discovering the available options. In this case, the game needs the **Center the camera on an object** action.
-
-To add the **Center the camera on an object** action:
-
-1\. Opens the Events editor. 2. Click **Add a new event**. 3. Without specifying a condition, click **Add action**. By not specifying a condition, the action runs in every frame. Therefore, if the game runs at 60 frames per second, the action runs 60 times per second. 4. Click **Other actions**. 5. Expand **Layers and cameras**. 6. Select **Center the camera on an object**. 7. Select the "Player" object. 8. Click **OK**.
-
-
-
-If you preview the game, the player still falls -- there's still no platforms, after all -- but the camera also follows the player. As a result, the player remains within the frame.
-
-
-
-## Next steps
-
-Read [Platformer Tutorial, Part 3](/gdevelop5/tutorials/platformer/part-3)
diff --git a/docs/es/gdevelop5/tutorials/primeros_pasos.md b/docs/es/gdevelop5/tutorials/primeros_pasos.md
deleted file mode 100644
index 5364481c5a3..00000000000
--- a/docs/es/gdevelop5/tutorials/primeros_pasos.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Primeros pasos con Gdevelop
----
-# Primeros pasos con Gdevelop
-En éste vídeo aprenderás algunas cosas de Gdevelop si es que lo tocas por primera vez.
-ojalá te sea de ayuda¡¡¡
-
-
-
-
\ No newline at end of file
diff --git a/docs/es/gdevelop5/tutorials/reduce-size-game.md b/docs/es/gdevelop5/tutorials/reduce-size-game.md
deleted file mode 100644
index 02e73d34512..00000000000
--- a/docs/es/gdevelop5/tutorials/reduce-size-game.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Cómo reducir el tamaño de tu juego
----
-# Cómo reducir el tamaño de tu juego
-
-Es importante mantener el peso lo más ligero posible, especialmente en teléfonos móviles:
-
-* Un juego más pequeño será más rápido de descargar
-* El almacenamiento necesario para tu juego será menos importante, por lo que el jugador tendrá menos incentivos para eliminarlo.
-* El juego se ejecutará más rápido si las imágenes y texturas no son demasiado grandes.
-
-El primer y más importante factor que contribuye al tamaño de tu juego es el tamaño de tus archivos de recursos: sonidos, música e imágenes:
-
-* Para las imágenes, asegúrate de utilizar una resolución (ancho y alto en píxeles) que no sea mayor de lo necesario. Evita todo lo que supere los 2048x2048 píxeles. En general, hay que mantenerse por debajo de 512 x 512 y la mayoría de los elementos pueden tener entre 10 y 200 píxeles.
-
-* Para reducir el uso de disco de imágenes, utiliza un **programa de compresión** o un sitio web como [tinypng.com](https://tinypng.com/) o [compresspng.com](https: //compresspng.com/)
-
-* Para las música y los sonidos, asegúrate de utilizar un formato comprimido como mp3 en lugar de wav para las música. Comprime tu música reduciendo la tasa de bits si es necesario. Considera tener los archivos de música alrededor de 1 MB.
\ No newline at end of file
diff --git a/docs/es/gdevelop5/tutorials/resources.md b/docs/es/gdevelop5/tutorials/resources.md
deleted file mode 100644
index bd153c93f09..00000000000
--- a/docs/es/gdevelop5/tutorials/resources.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: resources
----
-FIXME **Esta página no está completamente traducida, todavía. Por favor ayuda a completar la traducción.**
-
-*(Eliminar este párrafo una vez finalizada la traducción.)*
-
-# Recursos Lista de sitios web donde puede encontrar sprites, música, efectos de sonido para sus juegos y ejemplos de juegos, plantillas, bibliotecas de terceros y herramientas para ayudarle con el desarrollo del juego.
-
-##Ejemplos de juego y plantillas
-
-- [gametemplates.itch.io](https://gametemplates.itch.io/)
-
-##Sprites
-
-- [Kenney.nl](http://kenney.nl/)
-- [gameart2d.com](https://www.gameart2d.com)
-- [spriters-resource.com](https://www.spriters-resource.com/)
-
-##Imágenes y Fotos
-
-- [Unsplash.com](https://unsplash.com/) (Imágenes y fotos gratuitas para uso comercial.)
-
-##Sonido y musica
-
-- [soundimage.org](http://soundimage.org/)
-- [sounds-resource.com](https://www.sounds-resource.com/)
-
-##Contenido mixto de Sprite, Música y Sonido.
-
-- [opengameart.com](https://opengameart.org/)
-- [vg-resource.com](https://www.vg-resource.com/)
-- [gamedevmarket.net](https://www.gamedevmarket.net/)
-- [deviant art](https://www.deviantart.com/)
-
-##Software de animacion
-
-- [Spriter](https://brashmonkey.com/)
-- [Pencil2D](https://www.pencil2d.org/)
-- [DragonBones](https://dragonbones.github.io/en/index.html)
-- [Synfig](https://www.synfig.org)
-- [Blender](https://www.blender.org/)
-
-##Edición de imagen y dibujo.
-
-- [Gimp](https://www.gimp.org/)
-- [Paint.NET](https://www.getpaint.net/index.html)
-- [Krita](https://krita.org/en/)
-
-##Edición de gráficos vectoriales
-
-- [Inkscape](https://inkscape.org/en/)
-
-##Creación de Pixel art
-
-- [PikoPixel](http://twilightedge.com/mac/pikopixel/index.html)
-- [Piskel](https://www.piskelapp.com/)
-- [Pixelaria](https://sourceforge.net/projects/pixelaria/)
-- [GraphicsGale](https://graphicsgale.com/us/)
-- [Grafx2](https://code.google.com/archive/p/grafx2/wikis/Downloads.wiki)
-- [Aseprite](https://www.aseprite.org/)
-
-##Otros gráficos y herramientas de animación.
-
-- [SpriteCutter](http://spritecutter.sourceforge.net/) (Spritesheet cutter)
-- [TexturePacker](https://www.codeandweb.com/texturepacker) (Paquete de imágenes individuales en spritesheet)
-- [Spriteilluminator](https://www.codeandweb.com/spriteilluminator) (Ilumina los sprites con luces dinámicas.)
-- [Assetforge](https://assetforge.io/) (Crea sprites personalizados a partir de objetos 3D.)
-- [3D2Sprite](http://3d2sprite.blogspot.com/p/home.html) (Crea sprites a partir de modelos 3D.)
-- [Blender](https://www.blender.org/) (Blender es el paquete de creación 3D de código abierto y gratuito. Crea sprites y animaciones personalizadas con modelado 3D.)
-- [Anim8or](http://www.anim8or.com/) (Crea sprites animados a partir de modelos animados en 3D.)
-
-##Edición y creación de audio.
-
-- [Audacity](https://www.audacityteam.org/) (Audio editing and converting)
-- [LMMS](https://lmms.io/) ( Creación melodías, sonidos e y musica)
-- [Bfxr](https://www.bfxr.net/) (Procedural Efectos de sonido)
-- [Acapela Box](https://acapela-box.com) (Conversor de texto a voz)
-- [Balabolka](http://www.cross-plus-a.com/balabolka.htm) (Conversor de texto a voz)
-- [Vocaloid](https://www.vocaloid.com/en/) (Conversor de texto a voz, Virtual singer)
-
-##Otras herramientas utiles
-
-- [XnConvert](https://www.xnview.com/en/xnconvert/) (convertidor de imagen por lotes)
-
-##JavaScript librerías
-
-- [ResponsiveVoice](https://responsivevoice.org/) (Sintetizador de texto a voz)
-- [PlayerIO](https://playerio.com/) (Online Multiplayer Service)
diff --git a/docs/es/gdevelop5/tutorials/tank-shooter.md b/docs/es/gdevelop5/tutorials/tank-shooter.md
deleted file mode 100644
index 94599198382..00000000000
--- a/docs/es/gdevelop5/tutorials/tank-shooter.md
+++ /dev/null
@@ -1,322 +0,0 @@
----
-title: Tank shooter - Tutorial para principiantes
----
-# Tank shooter - Tutorial para principiantes
-
-Este tutorial lo ayudará a familiarizarse con la forma en que funciona GDevelop. Va a crear un juego muy simple. En este juego, los enemigos se moverán hacia el jugador. El jugador podrá disparar a los enemigos. Los enemigos explotarán cuando sean golpeados con las balas del jugador. 
-
-Para obtener una descripción general del software, le recomiendo que lea primero la página [](/gdevelop5/ getting_started).
-
-### Descargar GDevelop
-
-Si no tiene GDevelop, descárguelo del sitio web [oficial](https://gdevelop.io)
-
-Siempre descargue GD desde esta página para asegurarse de que tiene la última versión. Una vez que haya instalado GDevelop, ejecútelo. Se mostrará la página "Inicio" de la interfaz: 
-
-### Descargar la fuente
-
-Puede descargar el proyecto terminado desde aquí . Descargar el proyecto terminado te ayuda a ver cómo se ha creado el juego. Tenerlo como ejemplo en caso de que te quedes atascado o no entiendas algo, es una buena manera de verificar tu progreso.
-
-### Crear un nuevo proyecto
-
-Haga clic en "Crear nuevo proyecto" en la página "Inicio".
-
-A continuación, tiene la opción de crear un nuevo proyecto utilizando una plantilla o crear un proyecto "Juego vacío". 
-
-Para este tutorial, necesita un proyecto de juego vacío, pero antes de seleccionar esta opción, debe elegir una carpeta donde se guardará su juego. En la parte inferior de la página "Crear un juego nuevo" encontrará el área "Seleccionar carpeta". Es posible que deba desplazarse hacia abajo para ver esta opción. Mantenga la ubicación predeterminada o seleccione la ubicación donde desea guardar su juego.
-
-
-
-Para seleccionar una ubicación personalizada, seleccione / haga clic en el botón "Seleccionar carpeta". Examine el sistema de archivos en su computadora. Localiza la carpeta que quieres usar.
-
-
-
-Una vez que haya seleccionado una carpeta, seleccione / haga clic en la opción de proyecto en blanco "Juego vacío" en la lista.
-
-
-
-### Crear una nueva escena
-
-Crear una nueva escena es lo primero en tu lista de cosas que hacer. Haga clic / seleccione el botón "Haga clic para agregar una escena" en el Administrador de proyectos:
-
-
-
-A continuación, haga clic en el NewScene que acaba de crear. Se abrirá el editor de "Escena".
-
-### Obtenga las imágenes y recursos
-
-Antes de seguir adelante, necesitarás algunas imágenes para el juego. Puede descargarlos aquí: [Descargar imágenes](http://www.compilgames.net/dl/BeginnerTutorial2Images.zip)
-
-Una vez que haya descargado este archivo, extraiga su contenido en la carpeta donde creó el proyecto.
-
-### Crear la torreta del jugador
-
-El jugador controlará una torreta para disparar a los enemigos. En el editor de "Objetos" de Scene, elija "Agregar un nuevo objeto".
-
-
-
-Aparecerá una nueva lista de opciones de ventana. Elija el tipo de objeto que se creará. 
-
-Primero, crea un objeto sprite. Seleccione "Sprite" de la lista emergente. A continuación, se mostrará el panel de propiedades del objeto. Si no ve el panel de propiedades, haga clic con el botón derecho en NewObject en el editor de objetos y seleccione "Editar objeto" en la lista emergente.
-
-Finalmente, queremos añadir una animación al objeto. Haga clic / seleccione el botón "agregar animación" en la ventana de propiedades. 
-
-Ahora verá las propiedades de animación del objeto. 
-
-Es necesario agregar la imagen de la torreta como una animación. Haga clic en el símbolo más grande . Busque la carpeta del proyecto. Encuentra la imagen aaguntopdown.png. La imagen se mostrará en la ventana.
-
-
-
-Por último, haga clic en "Aplicar" para guardar los cambios.
-
-Renombra el objeto. Haga clic derecho en el objeto de torreta en el editor de "Objeto" de Escena. Seleccione "Cambiar nombre" en la lista emergente que se muestra. Escriba el nombre "torreta" para el nuevo nombre. Esto nos permite referirnos más adelante a este objeto usando el nombre "torreta". 
-
-### Añadir torreta a la escena
-
-Para agregar la "torreta" a la escena, seleccione / haga clic en la torreta en el editor de "Objetos" de la escena y luego haga clic en el editor de "Escenas". Esta acción creará una "torreta" en la escena. La "torreta" se puede seleccionar, mover y girar. 
-
-### Primeros eventos
-
-Ahora vamos a crear los "Eventos" utilizados para animar todo el juego. En el primer evento, la "torreta" debe girarse hacia el mouse del jugador.
-
-Seleccione el editor de "Eventos" haciendo clic en la pestaña "NEWSCENE (EVENTOS)": 
-
-Verá una barra de herramientas en la parte superior de la pantalla del editor de "Eventos". Seleccione / haga clic en el botón "Agregar evento" en la barra de herramientas para crear un nuevo evento. Si olvida cómo se usa cada herramienta en la barra de herramientas, pase el mouse sobre la imagen de la herramienta para ver una descripción de ayuda emergente para la herramienta. 
-
-Se crea el nuevo "Evento", con una condición vacía y una acción vacía. La "condición" se encuentra en el lado izquierdo de la pantalla. La "acción" se encuentra en el lado derecho de la pantalla. Coloque el cursor sobre la "acción" a la derecha. Seleccione / haga clic en "agregar acción": 
-
-Ahora, vas a escribir tu primera acción. Esta acción girará la "torreta" hacia el ratón. Después de hacer clic / seleccionar "Agregar acción", aparecerá un nuevo panel de lista. Elija la acción "Acción común para todos los objetos". Aparecerá una lista desplegable de más opciones. Seleccione / haga clic en "Ángulo". Se mostrará otra lista desplegable. Seleccione / haga clic en "Girar hacia la posición". 
-
-Cuando se selecciona "Girar hacia la posición", se abrirá otra lista de opciones en el lado derecho del panel de selección. Muestra el nombre de la acción, así como los parámetros para la acción. Rellene el primer parámetro seleccionando / haciendo clic en "Objeto". "torreta" se abrirá de una lista de los objetos disponibles. Seleccione "torreta" de la lista. 
-
-Para los siguientes parámetros, ingrese MouseX () y MouseY () para que el objeto gire hacia la posición del mouse. Cuando se inicie el juego, estas dos expresiones obtendrán la posición actual de X e Y del mouse. Para la "velocidad angular", ingrese 0. "Velocidad angular 0" significa que ocurrirá una rotación inmediata de su objeto. Eso es lo que necesitamos para rotar la "torreta". Para controlar la velocidad de rotación de un objeto, ingrese un valor más pequeño para "velocidad angular". Por ejemplo, para reducir la velocidad de su objeto "torreta", ingrese algo como un valor de 100.
-
-En este punto, los parámetros de este evento se verán así: 
-
-Hemos estado usando expresiones para obtener las posiciones X e Y del mouse. Puede encontrar más expresiones en el editor de "expresiones" haciendo clic en el icono azul junto a los campos de valor: 
-
-Cuando haces clic en el ícono del editor de "expresiones", puedes buscar todas las expresiones disponibles. Las expresiones están ordenadas en categorías. 
-
-Para guardar los cambios realizados en el editor de "expresiones", seleccione / haga clic en el botón "Aceptar" que se encuentra en la esquina inferior derecha del panel.
-
-Ahora puede ejecutar una vista previa presionando el botón "vista previa" en la barra de herramientas ubicada arriba de la escena. 
-
-La "torreta" ahora girará hacia la posición del ratón. Si la rotación no funciona, observe detenidamente los pasos anteriores o consulte el tutorial finalizado. 
-
-### Dispara balas con la torreta
-
-El jugador deberá poder disparar balas a los enemigos. Para configurar esto, Necesitará un nuevo objeto "bala". En la lista de "Objetos" de la escena ubicada en el lado derecho de la interfaz GD, haga clic con el ratón en el objeto "torreta". Elija "agregar un nuevo objeto" o, alternativamente, haga clic en el botón "agregar nuevo objeto". 
-
-Elija "Sprite" en el panel de la lista emergente. Ahora, agregue una animación seleccionando el botón agregar. Elige la imagen "Bullet.png". Renombra el nuevo objeto "bala". Si necesita ayuda adicional para agregar un nuevo objeto, consulte la explicación del objeto "torreta" más arriba.
-
-El próximo evento necesario comprobará si se hace clic o se presiona el botón izquierdo del mouse. Si se presiona / hace clic, la acción creará las viñetas que se dispararán. Para crear las viñetas, vaya a la pestaña "NEWSCENE (EVENTOS)". Añadir un nuevo evento. Nuevamente, si necesita ayuda adicional, consulte el evento "torreta" anterior. "Crear un nuevo objeto" será la primera acción en el evento. Esta acción está disponible en El panel "Acciones comunes para todos los objetos" "Objetos". 
-
-Cuando se selecciona "Crear un nuevo objeto", se abrirá otra lista de opciones en el lado derecho del panel de selección. Muestra el nombre de la acción, así como los parámetros para la acción. Complete el primer parámetro seleccionando / haciendo clic en "Objeto". Aparecerá "viñeta" de una lista de los objetos disponibles. Seleccione "viñeta" de la lista. 
-
-Dado que solo hay una capa en el juego, el parámetro de capa no es obligatorio. Haga clic en Ok para finalizar la acción.
-
-Luego agrega otra acción después de esta primera acción. No _crea_ otro evento. Haga clic en "Agregar acción" debajo de la primera acción! 
-
-Esta vez, elija la acción llamada "Acción común para todos los objetos" "Movimiento" "Agregar una fuerza (Ángulo)". 
-
-GDevelop proporciona un sistema de fuerzas incorporado. Este sistema te permite mover fácilmente los objetos del juego. En nuestro caso, cuando se dispara la bala, la acción se utilizará para mover la bala hacia el mouse. Como primer parámetro (Objeto), ingrese "viñeta" para que GDevelop mueva la viñeta que se acaba de crear en la acción anterior.
-
-Para "ángulo de movimiento", use la dirección de la torreta. Ingrese "turret.Direction ()" en el segundo parámetro. Para el tercer parámetro, ingrese "400". La bala se moverá con una velocidad de 400 píxeles por segundo. Finalmente, ingrese "1" en el último parámetro. Este último parámetro establece una fuerza que se aplica constantemente a la bala. Una vez que se inicia el movimiento, este parámetro mantiene la bala en movimiento. 
-
-Nuestras dos acciones se inician cuando el jugador está disparando. es decir: presionando el botón izquierdo del ratón. Para crear este evento en el editor de "Eventos", necesitamos agregar una condición al evento, hacer clic / seleccionar "Agregar condición". 
-
-Elija la condición "Ratón y toque" "Botón del ratón pulsado o pulsado". 
-
-En la ventana emergente del panel lateral derecho, haga clic en el botón para probar el parámetro. Seleccione "Izquierda" de la lista. 
-
-Finalmente, cierre la ventana haciendo clic en el botón "Aceptar". La condición ahora se agrega al evento.
-
-Si obtienes una vista previa del juego ahora, verás que tenemos dos problemas:
-
-- Las balas se disparan demasiado rápido.
-- Las balas aparecen en el origen del objeto. Esto hace que las balas parezcan poco realistas.
-
-Para abordar el primer problema de los disparos de balas demasiado rápido, vamos a utilizar un temporizador. Agregue una segunda condición al último evento que hemos creado. Elija la condición "Condiciones comunes para todos los objetos" "Temporizadores" "Valor de un temporizador". 
-
-El panel aparece a la derecha. El primer parámetro, "Objeto", indica el nombre del objeto. Dejalo en blanco. El segundo parámetro, "Nombre del temporizador", es el nombre del temporizador. Introduzca "firerate". // ¡No olvide las comillas alrededor del nombre del temporizador! // Ingrese 0.25 en el tercer parámetro, "Tiempo en segundos". 
-
-¡No hemos terminado todavía! Queremos disparar balas cada 0.25 segundos. Para hacer eso, necesitamos reiniciar el temporizador para que comience desde 0 después de 0.25 segundos. Así que vamos a agregar una acción: "Temporizadores y tiempo" "Restablecer un temporizador". Esta acción se colocará justo debajo de nuestra acción de "movimiento" en el mismo evento. 
-
-Ingrese "firerate" como el parámetro que es el nombre de nuestro temporizador (nuevamente, ¡tenga en cuenta las comillas!). 
-
-Este par de condiciones y acciones asegurarán que las acciones utilizadas para disparar la bala se repitan cuando hayan transcurrido al menos 0.25 segundos desde que se creó la última bala. 
-
-Ahora debemos configurar la forma en que se disparan las balas desde el cañón de la torreta.
-
-Para hacer eso, vamos a agregar un punto personalizado a nuestro objeto "torreta". Luego creamos las balas en la posición de ese punto. Abramos las propiedades del objeto haciendo clic derecho en el objeto "torreta" en el lado derecho de la pantalla de la interfaz de escena. Seleccione Editar objeto de la lista emergente. Esta selección abre la ventana donde agregamos animaciones a nuestros objetos. Veremos un botón llamado "EDITAR PUNTOS". 
-
-Después de hacer clic en el botón, podemos ver que nuestro objeto tiene actualmente 2 puntos por defecto, el punto "Origen" y el punto "Centro". 
-
-No podemos cambiar el nombre de estos puntos, pero podemos cambiar su posición predeterminada. En este caso, agregaremos un punto más al objeto.
-
-Vamos a hacer clic en el botón "agregar" (más el símbolo) para agregar un punto personalizado a nuestro objeto "torreta". Inmediatamente vemos el nuevo punto agregado a la lista. Puede ser identificado por el nombre "Punto" y la posición 0,0.
-
-Cambiemos el nombre de este punto a "Canon" y establezcamos la posición X en 110 y la posición Y en 35. 
-
-Ahora, cuando realicemos una vista previa del juego, veremos nuestro punto personalizado ubicado al final de nuestro canon. 
-
-Cierra la ventana y aplica los cambios.
-
-Lo único que queda por hacer es decirle a GDevelop que dispare las balas desde el punto "Canon" del objeto "torreta". Así que en nuestra acción "crear viñeta", necesitamos cambiar las expresiones turret.X () y turret.Y (), a turret.PointX (Canon) y turret.PointY (Canon). Podemos cambiarlos haciendo clic en las expresiones dentro del editor. 
-
-// No olvide la C mayúscula en Canon, ya que el nombre de los puntos distingue mayúsculas y minúsculas.//
-
-Si ejecutamos la vista previa ahora, nuestras balas deben dispararse desde el "Canon" de la " torreta ", pero puede notar que, a veces, la bala está un poco desplazada. Esto sucede porque el punto de origen de la bala está en la parte superior esquina izquierda. De la misma manera que hicimos con el punto Canon para la torreta, cambie la posición del punto de origen de la bala para que esté en el centro. 
-
-### Creando enemigos atacando la torreta
-
-Primero, debemos crear los objetos utilizados para los enemigos: agregar un objeto a la lista de objetos (haga clic con el botón derecho en un objeto existente\> agregar un objeto. Elija un objeto Sprite como antes). Denomínalo "enemigo".
-
-Edite el objeto (haga clic con el botón derecho en la lista y seleccione Editar objeto de la lista) a continuación, agregue una animación al objeto y dos imágenes: tank2fr1.png y tank2fr2.png. 
-
-Luego, cambie el tiempo entre las imágenes a 0.05 y cambie la animación a Bucle para hacer que la animación se repita. 
-
-Haga clic en "Aplicar" cuando haya terminado.
-
-### ¡Detente! ¡Ahorrar tiempo!
-
-Antes de continuar, recuerde guardar con frecuencia: haga clic en Archivo y luego en Guardar para guardar su proyecto. 
-
-### AI enemigo
-
-Volvamos al juego. Queremos que los enemigos se muevan hacia la torreta. Ir al editor de "Evento". Añadir un nuevo evento. Ahora, queremos crear un enemigo cada segundo. Añadir una condición "Temporizadores y tiempo"; "Valor de un temporizador de escena". Introduzca 1 en el "Tiempo en segundos" y "Creación de enemigos" para el "Nombre del temporizador". _No olvide las comillas cuando ingrese el nombre del temporizador._
-
-El siguiente paso es agregar una acción para crear un objeto enemigo. Esto se hace usando "Agregar una acción", "Acción común para todos los objetos", "Objetos". "Crear un objeto". Seleccione "enemigo" en el primer parámetro "Objeto para crear". Para el segundo parámetro de "posición X", ingrese la expresión Aleatorio (800). Esta entrada devolverá un número aleatorio entre 0 y 800. Cuando se crea cada enemigo, tendrá una posición de pantalla diferente. Para la posición Y, ingrese -50. Este valor creará los enemigos fuera del área de la pantalla. Crear a los enemigos fuera de la pantalla evita que el jugador del juego sienta que un tanque enemigo apareció de la nada.
-
-Finalmente, agreguemos una acción para restablecer el temporizador ("Temporizadores y tiempo", Restablecer un temporizador ".)" EnemyCreation "debe ingresarse en el parámetro. Nuevamente, no olvide las comillas cuando ingrese el nombre del temporizador. En este punto, nuestro evento se verá así: 
-
-Si ejecutamos una vista previa ahora, no notaremos nada. Dado que los enemigos se crean fuera de la pantalla, no se pueden ver. Para ver al enemigo, necesitamos mover a los enemigos hacia el jugador. Para crear esta acción, agrega otro evento. Este evento no tiene condición. Elija "Agregar acción". Luego, desde el panel emergente, seleccione "Acción común para todos los objetos", "Movimiento", "Agregar una fuerza para moverse hacia un objeto". 
-
-En el panel lateral derecho de "Agregar una fuerza para moverse hacia un objeto", selecciona "enemigo" para el primer parámetro. Seleccione "torreta" para el segundo parámetro. Introduzca 150 píxeles por segundo para la velocidad. Dado que la fuerza será continua, la amortiguación es 0. 
-
-Ahora, si ejecutamos una vista previa, veremos que nuestros enemigos se mueven hacia la torreta. Sin embargo, puedes notar que los enemigos en realidad no giran hacia la torreta. Vamos a hacer algo al respecto. Agreguemos una segunda acción después del movimiento: "Acción común para todos los objetos", "Ángulo", "Girar hacia la posición". Para el primer parámetro a la derecha del panel, selecciona "enemigo". Queremos rotar al enemigo. Para la posición X e Y, vamos a usar una expresión para obtener el punto central de la torreta y hacer que los enemigos giren hacia ese punto con una velocidad angular de 0. Una velocidad angular de 0 causa la rotación inmediata del objeto. 
-
-En este punto, nuestro evento enemigo se verá así: 
-
-Si ejecutamos la vista previa ahora, nuestros enemigos se moverán y girarán hacia la torreta. 
-
-### Añadiendo explosiones
-
-¡Es hora de destruir los tanques! Primero, cuando una bala choca con un tanque, necesitamos una explosión en la posición del tanque. Agrega un nuevo objeto sprite, llámalo "explosión" y agrega todas las imágenes a la animación que comienza con Explosion_ 
-
-Después de agregar todas las imágenes a la animación, establezca el tiempo entre las imágenes a 0.01 segundos. 
-
-Guarde la animación haciendo clic / seleccionando "Aplicar".
-
-A continuación, queremos crear la explosión cuando la bala está en una colisión con el enemigo. Agregue una nueva condición en blanco: "Condiciones comunes para todos los objetos", "Colisión", Colisión 
-
-En el panel del lado derecho, seleccione "viñeta" para el primer parámetro. Para el segundo parámetro, seleccione "enemigo". 
-
-Agrega una acción para crear el objeto de explosión de la misma manera que creamos las balas y los enemigos. Para la posición X e Y, usa la expresión enemy.X () y enemy.Y (). Esta expresión obtendrá la posición X e Y del objeto enemigo que está en colisión con la bala. 
-
-Finalmente, agregue la acción después de crear la explosión. Acciones comunes para todos los objetos\> Objeto\> Eliminar un objeto y en el lado derecho para el parámetro seleccionar el objeto enemigo, ya que queremos eliminar al enemigo. Agrega la misma acción de nuevo, para eliminar también la bala justo después de que se elimine el enemigo. En este punto, nuestro evento debería verse así. 
-
-Si ejecuta una vista previa ahora, notará un par de problemas:
-
-- Primero, los objetos de explosión no se crean exactamente en la posición del enemigo.
-- Segundo, el objeto de explosión creado permanece en la escena.
-
-Para resolver el primer problema de los objetos de "explosión" que quedan en la escena, debemos eliminar el objeto de explosión una vez que las animaciones hayan finalizado. Agregue un nuevo evento vacío y la condición "Sprite", "Animaciones e imágenes", "Animación terminada". 
-
-Para el parámetro en el panel emergente derecho, seleccione el objeto "explosión". Cuando el objeto "explosión" haya finalizado, queremos eliminar la animación de la explosión. 
-
-Para eliminar el objeto de "explosión" de la animación, agregue la acción, "elimine el objeto de explosión".
-
-Para resolver el segundo problema, primero debemos entender su causa. Cuando creamos el objeto de explosión, usamos las expresiones "enemy.X ()" y "enemy.Y ()". Creamos los objetos de "explosión" en el punto "Origen" del objeto "enemigo". El punto "Origen" está, por defecto, ubicado en la esquina superior izquierda del "enemigo" (0). También estamos creando las explosiones desde su punto "Origen", que es la esquina superior izquierda del objeto "explosión" (0).
-
-Para resolver este problema, necesitamos cambiar la posición del punto "Origen" de la explosión. El punto "Origen" debe colocarse en el centro del objeto. Debe editar el objeto "explosión" haciendo clic con el botón derecho en el objeto y seleccionando "Editar objeto" de la lista. En la siguiente ventana, seleccione "Editar Puntos".
-
-Ahora, cambie la posición X e Y del punto "Origen" a 120. Esto establece el punto en el centro de la imagen de "explosión". 
-
-Finalmente, en lugar de crear el objeto "explosión" en el punto "Origen" del "enemigo", es necesario crear el objeto en el Punto Centro. Cambia la expresión en la acción de crear explosión de enemy.X () a enemy.PointX (Center) y forma enemy.Y () a enemy.PointY (Center) 
-
-Si ejecutamos una vista previa ahora, nuestros enemigos explotarán de manera realista desde el centro del objeto. 
-
-### Añadiendo más explosiones y un juego terminado
-
-Hasta ahora, el jugador no podía morir. Cuando un tanque enemigo golpea la torreta del jugador, queremos que la torreta sea destruida. Añadir un nuevo evento. Sigue el mismo procedimiento que seguiste para crear un evento para destruir a los enemigos.
-
-- Agregue una condición para probar una colisión entre un tanque y la torreta.
-- Crear una explosión en la posición de la torreta.
-- Agrega una acción para destruir la torreta.
-
-
-
-Además, sería interesante mostrar un texto de "Juego terminado" cuando se destruye la torreta: Agrega un nuevo objeto usando la lista de objetos de escena. Esta vez, elige un objeto "Texto". Nómbrelo "GameOver". 
-
-Edite el objeto "GameOver" haciendo clic derecho en el objeto. Seleccione "Editar objeto" de la lista emergente. Ahora, cambie el texto a "Game Over", el color del texto a rojo y el tamaño del texto a 40. 
-
-También podemos establecer una fuente personalizada simplemente ingresando la ruta de la fuente. En este caso nuestra fuente se encuentra en la carpeta del proyecto. Solo necesitamos ingresar el nombre del archivo de fuente: 
-
-Finalmente, agregue el objeto de texto "Game Over" a la escena.
-
-El siguiente paso es ocultar el objeto de texto. Luego, si no hay una torreta en la escena, (lo que significa que la torreta está destruida) la mostraremos. Agregue un nuevo evento en blanco y agregue la condición "Escena", "Al principio de la escena". 
-
-Esta condición no tiene parámetros. Lo único que hace es ejecutar la acción una vez al principio de la escena. A continuación, agregue la acción al evento "Al comienzo de la escena". Uso: "Acciones comunes para todos los objetos", "Visibilidad", "Ocultar". 
-
-Para el parámetro, seleccione el objeto GameOver ya que queremos ocultar este objeto 
-
-Si no hay una torreta en la escena, queremos mostrar el Objeto de texto "GameOver". Añadir un nuevo evento vacío. Agregue la condición "Condiciones comunes para todos los objetos", "Objetos", "Recuento de objetos". 
-
-Para el primer parámetro en el lado derecho, seleccione el objeto de la torreta, para el signo de prueba seleccione el signo igual y para el valor de la prueba ingrese 0, como queremos comprobar si el número de la torreta en la escena es 0. 
-
-Y lo que queremos hacer es mostrar el texto GameOver si no hay una torreta en la escena, así que agregue la acción Acción común para todos los objetos\> Visibilidad\> Mostrar y para el parámetro que queremos seleccionar el objeto GameOver. 
-
-Finalmente, un efecto interesante es detener el juego y mostrar Game Over con un poco de retraso. Agregue una segunda condición "Temporizadores y tiempo", Valor de un temporizador de escena ". Para el parámetro de tiempo ingrese 0.1 y para el parámetro de nombre ingrese" GameOver ". Agregue una segunda acción: "Temporizadores y tiempo", "Cambiar escala de tiempo". Ingrese 0 como parámetro para detener el juego y mostrar el texto de Game Over después de 0.1 segundos.
-
-Esto es lo que deberían ver todos los eventos en este punto. 
-
-Puede previsualizar el juego y debería ver que una vez que se destruye la torreta, con un poco de retraso se muestra el texto Game Over y el juego se detiene. 
-
-### Optimizando el juego
-
-Cuando una bala está fuera del área de la pantalla, ya no necesitamos la bala. Incluso fuera de pantalla, las balas todavía tienen movimiento. También se están comprobando las colisiones entre la bala y el tanque. Cada dispositivo tiene recursos limitados en memoria y capacidad de procesamiento. Estamos desperdiciando recursos valiosos al continuar verificando las condiciones y acciones de los objetos cuando están fuera de la pantalla. Nuestro juego podría ralentizarse, bloquearse y / o volverse inejecutable cuando alcance el límite de la memoria del dispositivo en el que estamos jugando. Desea que su juego se pueda jugar en tantos dispositivos como sea posible, por lo que siempre necesita optimizar su juego. Una forma de hacerlo es eliminar objetos que ya no son necesarios en el juego. De esta manera, limitas la cantidad de memoria y potencia de procesamiento que usa el juego.
-
-Podríamos agregar un evento para destruir las balas cuando están demasiado lejos de la torreta, eso es fácil, pero también podemos usar un objeto "Comportamiento". Un comportamiento en GDevelop agrega una característica determinada a un objeto. En este caso, vamos a agregar el comportamiento "Destruir fuera de la pantalla" a las viñetas. Luego serán destruidos cuando estén fuera de la pantalla del juego.
-
-En la lista "Objetos" de la escena, haga clic derecho en el objeto "viñeta". Desde el selector emergente, seleccione "Editar objeto". Se abrirá el "Panel de propiedades". Seleccione / haga clic en la pestaña "Comportamientos". La pestaña "Comportamientos" muestra todos los comportamientos que hemos agregado a nuestro objeto. Está vacío ahora. 
-
-Haga clic en el botón "Haga clic para agregar un comportamiento al objeto"  
-
-A continuación, seleccione de la lista el comportamiento de la pantalla Destruir fuera. 
-
-A continuación, usted verá que el comportamiento se agrega a la lista. Normalmente, si el comportamiento tiene algún parámetro, también se muestra aquí para que pueda cambiarlo. Pero este comportamiento no tiene parámetros, ya que lo único que hace es destruir el objeto cuando está fuera de la pantalla. Haga clic en Aplicar y hemos terminado.
-
-Si ejecuta la vista previa ahora, probablemente no notará ninguna diferencia, ya que el juego es muy simple y es muy probable que use un dispositivo con al menos 2 GB de RAM y una CPU de doble núcleo. Por lo tanto, hay un montón de recursos para nuestro juego simple, pero en caso de que creamos cientos y miles de balas que puedes probar, puedes notar un poco de lentitud después de un tiempo sin destruirlas.
-
-### Añadir un fondo
-
-Una última cosa es agregar un fondo. Esto le dará al juego un aspecto más completo.
-
-Añadir un nuevo objeto Sprite. Nómbrelo como fondo. Agregue la imagen "background.jpg" al objeto. A continuación, puede agregar el objeto a la escena como de costumbre. Asegúrate de que llena toda la escena. Para hacerlo más fácil, puede habilitar la cuadrícula con el botón en la parte superior y debería ayudar a posicionar el objeto. 
-
-Observe que el objeto de fondo cubre todos los demás objetos. Para resolver este problema, necesitamos cambiar el orden Z del objeto. Mientras se selecciona el objeto de fondo, a la izquierda de la pantalla del editor de escenas, verá una lista de "Propiedades". Si no ve la lista de "Propiedades", puede abrirla usando el botón "Propiedades" en la barra de herramientas que se encuentra en la parte superior de la interfaz de GD. 
-
-Podemos cambiar todo tipo de propiedades utilizando el Editor de propiedades. La posición, el ángulo y el tamaño del objeto se pueden cambiar. En este caso, queremos cambiar el orden Z. 
-
-Cambie el valor del orden Z a un número bajo. Para el fondo usaremos un número negativo - 1. La razón del valor negativo es que cuando estamos creando las balas, los enemigos y las explosiones, los estamos creando en orden Z de forma predeterminada. Necesitamos colocar el fondo debajo de 0, de lo contrario no veremos nada más que la torreta en nuestro juego. Otra forma de solucionarlo es decirle a GDevelop que coloque los tanques y las explosiones y balas en una orden Z más alta. Podemos posicionar el fondo en 0, pero es algo que usted, el desarrollador, debe decidir por sí mismo. Cada problema puede tener una serie de soluciones diferentes.
-
-¡Estás listo! El juego está completo y listo para ser compartido.
-
-### Añadir comentarios
-
-Así, nuestro juego está hecho. Es jugable. ¿Qué pasa si quieres compartir la fuente con alguien más? Digamos que estás trabajando en equipo. Alguien en el equipo quisiera hacer modificaciones al juego. ¿Cómo sabe esa persona dónde buscar los eventos de los enemigos, las balas o la torreta? Puede sonar tonto para ti. La mayoría de los eventos en GDevelop se explican por sí mismos. Nuestro juego es lo suficientemente simple como para ver lo que está sucediendo. Sin embargo, imagine una situación en la que tenga un juego hecho de cientos o miles de eventos. Aquí es donde los comentarios son útiles. Podemos dejar recordatorios en el juego para otros y también para nosotros mismos. Confía en mí, aunque tú eres el que creó el juego, en un gran juego complejo, incluso no recordarás dónde encontrar cosas diferentes. Esto es especialmente cierto meses después. _Siempre use comentarios independientemente del tamaño del proyecto._ Es solo una buena práctica de programación.
-
-Para agregar comentarios a su juego, simplemente haga clic en el botón "agregar comentario" en la barra de herramientas que se encuentra en la parte superior de la pantalla "Eventos". 
-
-Verá un cuadro amarillo en el editor de "Eventos". Cuando haces clic / seleccionas la casilla, puedes comenzar a escribir un comentario. 
-
-Puede cambiar la posición de cada evento y hacer comentarios moviendo el mouse sobre el borde azul de la izquierda y arrastrándolo hacia arriba y hacia abajo. Tus primeros comentarios se verán así: 
-
-### Vamos, a descubrir GDevelop por ti mismo
-
-Puede navegar por los otros [tutoriales](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials) y leer la página [Guia de Inicio](http://wiki.compilgames.net/doku.php/es/gdevelop5/getting_started).
-
-¡También hay muchos ejemplos y plantillas incluidas con GDevelop! Puede encontrar más visitando: [gametemplates.itch.io](https://gametemplates.itch.io/gdevelop-examples)
-
-También puede hacer preguntas en el [official forum](http://forum.compilgames.net/)
diff --git a/docs/es/index.md b/docs/es/index.md
deleted file mode 100644
index 135ed082398..00000000000
--- a/docs/es/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: start
----
-
-
-
-# Wiki GDevelop
-
-GDevelop es un creador de juegos de código abierto, multiplataforma, diseñado para ser usado por todos - no se requieren conocimientos de programación. Si aún no tienes GDevelop, ¡[puedes descargarlo ahora](https://gdevelop.io/download)!
-
-La wiki está aquí para buscar ayuda sobre el software y tutoriales de cómo usarlo: ¡tus aportes son bienvenidos!
-
-## Documentación completa
-
-Lee la **[documentación de GDevelop](/es/gdevelop/documentation)** para tener una referencia completa.
-
-## Tutoriales y videos
-
-Aprende a usar GDevelop con los **[tutoriales](/es/gdevelop/tutorials)**.
diff --git a/docs/fr.png b/docs/fr.png
deleted file mode 100644
index 8332c4ec23c..00000000000
Binary files a/docs/fr.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/all-features/expressions.md b/docs/fr/gdevelop5/all-features/expressions.md
deleted file mode 100644
index eef44c6caa0..00000000000
--- a/docs/fr/gdevelop5/all-features/expressions.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: expressions
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-# Écriture des expressions CDevelop prend en charge les expressions ! Les expressions sont des valeurs dynamiques qui peuvent être utilisées dans les paramètres d'événement. Par exemple, pour définir la position d'un objet, vous pouvez utiliser un nombre fixe comme ``75`` ou vous pouvez utiliser une expression telle que ``AnotherObject.X() - Variable(position_offset)``.
-
-Il existe deux types d'expressions :
-
-1. ***Les expressions numériques***
-
-
-
-Les expressions numériques peuvent être utilisées dans les paramètres d'événement. Ils reçoivent une valeur numérique telle que la position de l'objet, la cote z, le nombre de variables, etc.
-
-1. ***Les chaînes de caractères***
-
-
-
-Les chaînes de caractères peuvent être utilisées dans les paramètres qui reçoivent une valeur de texte / chaîne. Vous pouvez utiliser cette expression pour lire le contenu d'une chaîne d'objet texte, sa couleur, le texte d'une autre variable, etc.
-
-## Les expressions numériques Comme indiqué ci-dessus, les expressions numériques peuvent être utilisées dans les paramètres numériques.
-
-### Valeurs aléatoires
-
-``Random(max)`` - Renvoie un entier entre `0` et la valeur maximale `max` définie. La plage est \[0, max\].
-
-*Exemples utilisant l'expression de génération aléatoire : Random()*
-
-``` Javascript
-Random(3) // Les quatre valeurs entières possibles sont : 0, 1, 2 et 3
-```
-
-``RandomInRange(min, max)`` - Renvoie un entier compris entre le minimum `min` et le maximum `max`. La plage est \[min, max\].
-
-*Exemples utilisant l'expression de génération aléatoire : RandomInRange()*
-
-``` Javascript
-RandomInRange(-1, 2) // Les quatre valeurs possibles sont : -1, 0, 1 et 2
-
-
-// A noter que "RandomInRange(min, max)" est équivalent à "min + Random(max - min)" :
-
--1 + Random(2 - -1) // Cela donne les mêmes résultats que ci-dessus.
-```
-
-``RandomFloat(max)`` - Renvoie un nombre à virgule compris entre `0` et `max`. La plage est ``\[0, max)``. A noter que ``max`` n'est pas inclus dans la plage. Il est important de noter aussi que les résultats possibles sont infinis. En effet, il existe une infinité de nombres réels entre deux valeurs différentes.
-
-*Exemples utilisant l'expression de génération aléatoire : RandomFloat(max)*
-
- RandomFloat(2.5) //CERTAINES des nombreuses valeurs possibles sont 0, 1.467798, 2.000587 et 2.499999
-
-``RandomFloatInRange(min, max)`` - Renvoie un nombre à virgule compris entre `min` et `max`. La plage est ``\[min, max\]``. A noter que ``max`` n'est pas inclus dans la plage. Il est important de noter aussi que les résultats possibles sont infinis. En effet, il existe une infinité de nombres réels entre deux valeurs différentes.
-
-*Exemples utilisant l'expression de génération aléatoire : RandomFloatInRange()*
-
- RandomFloatInRange(-1.5, 2) //CERTAINES des nombreuses valeurs possibles sont -1.5, -0.598156, 1.000874 et 1.99999
-
-``RandomWithStep(min, max, step)`` - Renvoie un nombre compris entre `min` and `max` avec un pas égal à `step`. La plage est ``\[min, min + N*step\]`` avec ``min + N*step ≤ max \< min + (N+1)*step``. Cela signifie que l'expression peut renvoyer toutes les valeurs échelonnées inférieures ou égales à ``max``.
-
-*Exemples utilisant l'expression de génération aléatoire : RandomWithStep(min, max, step)*
-
- RandomWithStep(1, 3, 0.6) // Les nombres générés sont : ``1``, ``1.6``, ``2.2`` et ``2.8``
diff --git a/docs/fr/gdevelop5/all-features/filesystem.md b/docs/fr/gdevelop5/all-features/filesystem.md
deleted file mode 100644
index f5e1fc4f928..00000000000
--- a/docs/fr/gdevelop5/all-features/filesystem.md
+++ /dev/null
@@ -1,246 +0,0 @@
----
-title: filesystem
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
- \# Système de fichier Cette extension vous donne accès au système de fichier de l'ordinateur sur lequel votre jeu est en train de tourner. \Cette extension ne fonctionne que sur Linux, MacOS et Windows pour l'instant. les jeux mobiles et Web ne sont pas supportés par l'extension pour l'instant \## Système de fichiers ou système de stockage ? Gdevelop vous permet de stocker des données permanentes de deux manières différentes. L'extension de stockage et l'extension de système de fichiers. Parce que GDevelop est basé sur des technologies web, créer un jeu avec GDevelop est comme créer un site web qui peut être vu dans un navigateur (export web) ou dans un navigateur limité nommé "Electron" pour Windows, MacOS et Linux ou Apache Cordova pour Android et iOS Toutes ces platformes permettent d'utiliser l'extension de stockage car c'est un composant inclus dans les navigateurs. Les données peuvent être sauvegardées dans une sorte de dictionnaire intégré à ce navigateur.
-
-Pour des raisons de sécurité, les navigateurs web ne laissent pas les sites web écrire/supprimer des données dans le système de fichier de l'ordinateur (google.com ne peux pas créer de fichiers sur votre disque dur). Seul les jeux exportés pour Windows, Mac ou Linux peuvent utiliser l'extension du système de fichiers.
-
-### Stockage
-
-- Utilisable dans tous les types d'export (Web, mobile, PC...)
-
-- Ne peut contenir que des des nombres ou du texte (pas de photos, de fichiers etc...)
-
-- Une capacité de stockage limitée ce comptant en Mega octet et limité encore plus par le système sur lequel votre jeu est joué
-
-- Le joueur n'a pas d'accès direct à ce stockage
-
-### Système de fichiers
-
-- Utilisable que sur Windows, Linux et MacOS
-
-- Peut sauvegarder à peu près tout :-D
-
-- Vous pouvez choisir où sont stockées les données.
-
-- La seule limite de taille est celle du système (disque dur ou clé USB par exemple)
-
-- Le joueur peut modifier les fichiers (exemple : modifier manuellement une mauvaise résolution d'écran ou une configuration avec un éditeur de texte)
-
-## Asynchronous execution By default, actions get executed synchronously in GDevelop. This means that the game loop waits for each action to finish its execution before it runs the following event. Actions that take longer than a few milliseconds to execute will freeze the whole execution of the game until they finish.
-
-To avoid these freezes, GDevelop supports asynchronous execution of specific actions. If you choose the "async" version of the action, the operation will be delegated to a background task that runs in parallel to the game loop. After executing an asynchronous action, GDevelop will immediately execute the next event in the event sheet without waiting for the action to finish.
-
-To get notified about the status of the background task, the asynchronous actions have an optional result variable. This variable will be updated with the result of the operation, at the moment the background task has finished.
-
-By checking its value, you get to know when precisely the operation has finished and with which result:
-
-- **"ok"**: The operation was performed without errors.
-
-- **"error"**: Something went wrong while trying to perform the action.
-
-Saving the name of the next level after completing the previous one in a linear puzzle game, need not be done asynchronously.
-
-On the other hand, when trying to add an autosave function to an open-world game with procedurally generated unlimited terrain, the game developer will probably not get around saving the game asynchronously due to the heap of data to be written into the file.
-
-It is up to the game developer to decide which variant of the action is suitable for the individual situation.
-
----
-
-## Conditions
-
-#### File or directory exists
-
-This condition checks if the given file or directory exists on the file system.
-
-##### Parameters
-
-**Path to file or directory: **The absolute path to the file or directory which shall be checked.
-
-## Actions
-
-#### Create a directory
-
-This action creates a new folder at the given file path.
-
-##### Parameters
-
-**Directory: **The absolute file path to the directory which should be created. It is advised to use the expressions for special folders (see below), to keep you game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred.
-
----
-
-#### Save a text into a file
-
-This action saves the given text (string) into a file on the file system *synchronously*.
-
-##### Parameters
-
-**String (text): **The text that will be saved to the file.
-
-**Save path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred.
-
----
-
-#### Save a text into a file (async)
-
-This action saves the given text (string) into a file on the file system *asynchronously*.
-
-##### Parameters
-
-**String (text): **The text that will be saved to the file.
-
-**Save path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished.
-
----
-
-#### Save a scene variable into a JSON file
-
-This action saves the given scene variable into a file on the file system in JSON format *synchronously*.
-
-##### Parameters
-
-**Scene variable: **The scene variable to save into the file. This can be a number-, text variable or a structure with children.
-
-**Save path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred.
-
----
-
-#### Save a scene variable into a JSON file (async)
-
-This action saves the given scene variable into a file on the file system in JSON format *asynchronously*.
-
-##### Parameters
-
-**Scene variable: **The scene variable to save into the file. This can be a number-, text variable or a structure with children.
-
-**Save path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished.
-
----
-
-#### Load a text from a JSON file
-
-This action loads the JSON formatted text from a file and converts it into a scene variable structure. *synchronously*.
-
-##### Parameters
-
-**Scene variable: **The name of the scene variable to which the loaded structure will be added.
-
-**Load path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred.
-
----
-
-#### Load a text from a JSON file (async)
-
-This action loads the JSON formatted text from a file and converts it into a scene variable structure. *asynchronously*.
-
-##### Parameters
-
-**Scene variable: **The name of the scene variable to which the loaded structure will be added.
-
-**Load path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished.
-
----
-
-#### Load a text from a file
-
-This action loads the text from a file into the given scene variable. *synchronously*.
-
-##### Parameters
-
-**Scene variable: **The scene variable to store the text.
-
-**Load path: **The path on the file system where the file is located. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred.
-
----
-
-#### Load a text from a file (async)
-
-This action loads the text from a file into the given scene variable. *asynchronously*.
-
-##### Parameters
-
-**Scene variable: **The scene variable to store the text.
-
-**Load path: **The path on the file system where the file is located. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished.
-
----
-
-#### Delete a file
-
-This action deletes the file at the given file path *synchronously*.
-
-##### Parameters
-
-**File path: **The path on the file system where the file is located. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred.
-
----
-
-#### Delete a file
-
-This action deletes the file at the given file path *asynchronously*.
-
-##### Parameters
-
-**File path: **The path on the file system where the file is located. It is advised to use the expressions for special folders (see below) to keep your game platform independent.
-
-**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished.
-
- \## Expressions These expressions return the path to special folders on the users' operating system. If you use these expressions for loading and saving files it will be guaranteed to work on all supported operating systems. (Currently Windows, Linux, and macOS) \The following gives detailed descriptions of what each of the Filesystem expressions are for. To see the syntax of the expressions refer to the filesystem section of [this article](/gdevelop5/all-features/expressions-reference). It is *strongly recommended* that you do not manually type any expressions, and instead use the expression builder as [mentioned here](/gdevelop5/all-features/expressions).
-
-#### Desktop folder
-
-This expression returns the operating system independent path to the *Desktop* folder of the user that runs your game.
-
-#### Documents folder
-
-This expression returns the operating system independent path to the *Documents* folder of the user that runs your game. This is the standard folder for storing documents.
-
-#### This games executable folder
-
-This expression returns the operating system independent path to the folder where your game is being executed from.
-
-#### Pictures folder
-
-This expression returns the operating system independent path to the *Pictures* folder of the user that runs your game. This is the standard folder for storing images.
-
-#### Temp folder
-
-This expression returns the operating system independent path to the *Temp* folder of the user that runs your game. This folder is used for temporary files that your operating system can delete at any time.
-
-#### Userdata folder
-
-This expression returns the operating system independent path to the *UserData* folder of the user that runs your game. This folder is used for storing application settings.
-
-#### Path delimiter
-
-This expression returns the operating system independent path delimiter character. ("\\" on Windows and "/" on Linux and macOS). Use this expression to build cross-platform file paths that can be accessed on all supported operating systems.
-
-## Example In order to save a screenshot to the *Pictures* directory you could write:
-
-``` () + () + "my_screenshot.png" ```
-
-This will work on Windows, Linux, and macOS.
diff --git a/docs/fr/gdevelop5/all-features/firebase/analytics.md b/docs/fr/gdevelop5/all-features/firebase/analytics.md
deleted file mode 100644
index cff627e7a0c..00000000000
--- a/docs/fr/gdevelop5/all-features/firebase/analytics.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Analytics
----
-# Analytics
-
-Les Analytics sont simples a utiliser dans GDevelop. Il suffit d'utiliser l'action "Activer Firebase", Firebase va ensuite automatiquement collecter et traiter les données. Les Analytics du jour mettent environ 24h a s'afficher sur le tableau de bord Firebase.
-
-### Enregistrer des événements customisés
-
-Tu veux enregistrer des données spécifiques a ton jeu? Disons que tu veux voir la proportion de joueurs qui finissent le premier niveau. Il suffit de log a la fin du niveau: Quand le niveau se termine, avant de changer de scène uttilise l'action pour log un évènement comme "niveau1_fini". Grâce a ça, tu peux voir qui/quels types de /combien de gens réussissent le premier niveau, et si personne ne le réussit tu peux le voir et adapter la difficulté! Tu peux aussi envoyer des données additionnelles comme un score ou le temps pris a finir le niveau.
-
-### Utiliser des propriétés utilisateur
-
-Les propriétés servent a grouper les joueurs. Par exemple, tu peux demander le groupe d'âges d'une personne (0-20, 20-40, 40-60, 60+) au début de jeu, l'enregistrer comme propriété utilisateur, avant de log le score. Tu pourrais en suite trier les scores et voire leur moyenne en fonction de la plage d'âge. Cela peut être utile pour par exemple changer la difficulté du jeu (via la [](/fr/gdevelop5/all-features/firebase/rc)) selon le groupe de la personne pour donner une expérience de jeu personnalisée.
-
-### Déboguer/Tester les événements customisés et les propriétés
-
-Vu que les données n'apparaissent pas très rapidement, comment être sûr que les données sont bien envoyées? D'abord, télécharge [l'extension de débogage d'analytics Google](https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna). Ensuite, exporte ton jeu vers HTML5. Mets en suite le jeu sur un serveur web (par example Apache, ou si tu as python `python -m http.server`, etc). En suite va sur le tableau de bord Firebase et sélectionne DebugView:  Enfin, navigue ver ton serveur web et active l'extension de débogage an cliquant sur son icône. Ça devrait recharger le jeu, et maintenant il devrait apparaître dans DebugView, et tout les événements et changements de propriétés utilisateur devrait y apparaître avec un délai d'environ 20 secondes maximum.
diff --git a/docs/fr/gdevelop5/all-features/firebase/functions.md b/docs/fr/gdevelop5/all-features/firebase/functions.md
deleted file mode 100644
index b5f7c584c83..00000000000
--- a/docs/fr/gdevelop5/all-features/firebase/functions.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Les Fonctions Firebase
----
-# Les Fonctions Firebase
-
-!!! danger
-
- Ceci est une fonctionnalité pensée pour les développeurs JavaScript expérimentés.
-
-Firebase est fait pour remplacer complètement un serveur de backend. Malheureusement certaines fonctionnalités ne peuvent pas être précisés et nécessitent l'écriture d'une logique côte serveur. C'est pour ça que Firebase a les fonctions Firebase.
-
-Firebase laisse ces utilisateurs écrire une logique à faire tourner quand des évènements se produisent. La documentation complète est disponible ici: https://firebase.google.com/docs/functions/callable.
-
-In de ces évènements est un appel https. Il est possible d'appeler ces fonctions via une action depuis GDevelop! Il suffit d'utiliser l'action "Appeler la fonction Firebase" avec le nom de la fonction appelable https. Il est aussi possible de passer un objet JavaScript et de retourner à GDevelop un objet (qui sera converti en structure automatiquement).
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/all-features/firebase/index.md b/docs/fr/gdevelop5/all-features/firebase/index.md
deleted file mode 100644
index beb4567aec7..00000000000
--- a/docs/fr/gdevelop5/all-features/firebase/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: Firebase
----
-# Firebase
-
-> Pour installer firebase dans un projet, vois [](/fr/gdevelop5/all-features/firebase/quickstart).
-
- L'extension Firebase permet d'intégrer Firebase, une suite d'outils gratuits pour développeurs par Google, dans un jeu GDevelop. \Meme si la plupart des services sont entièrement gratuits, certains peuvent nécessiter de payer si ils sont trop utilisés.
-
-Cette suite d'outils comprend:
-
-- [Des Analytics](/fr/gdevelop5/all-features/firebase/analytics)
-- [De la configuration a distance](/fr/gdevelop5/all-features/firebase/rc)
-- De l'Authentification
-- Un système de fichier en ligne (Storage)
-- Une base de données structurée (Firestore)
-- Une base de données en temps réel (Realtime Database)
-- [Les Fonctions Firebase](/fr/gdevelop5/all-features/firebase/functions) (/!\\ Cette fonction requiert de savoir coder en Javascript!)
-- De la messagerie
-- Un mesureur de performance a distance
diff --git a/docs/fr/gdevelop5/all-features/firebase/quickstart.md b/docs/fr/gdevelop5/all-features/firebase/quickstart.md
deleted file mode 100644
index 2ad40ac06ef..00000000000
--- a/docs/fr/gdevelop5/all-features/firebase/quickstart.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: Démarrer avec Firebase
----
-## Démarrer avec Firebase
-
-Firebase n'est pas une fonctionnalité a proprement parler mais une *intégration*. Cela veut dire qu'il faut *connecter* une application Firebase a GDevelop pour utiliser des fonctionnalités de Firebase.
-
-### Step 1: Créer un projet Firebase
-
-D’abord, va sur . Il devrait y avoir ta liste de projets, créés en un nouveau:  Nomme ton projet comme tu veux. Dans le cadre de cet article, je vais nommer mon projet Tutorial-GDevelop.  \ Tu peux activer les Analytics si tu veux, mais cela n'est pas nécessaire pour utiliser les autres services. Tu peux toujours les activer plus tard plus tard. {.is-info}
-
-Tu devrais voir le tableau de bord Firebase de ton projet.
-
-### Step 2: Connecter le jeu au projet Firebase
-
- Les jeux GDevelop fonctionnent comme une *application web*, créés en donc une depuis Firebase  Mets un nom de ton choix et tu peux décocher la case "Firebase hosting". \ A l'heure ou cet article est écrit il n'y a pas de possibilité d'utilisation de firebase hosting mais c'est possible que cela change Firebase devrait te montrer du code ressemblant celui-ci à present:  La seule partie nécessaire est *la configuration*, la partie entre les {}. Copie donc le contenu entre les {} **y compris les {}**. Chez moi ça serait: ```
-
- {
- apiKey: "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA",
- authDomain: "tutorial-gdevelop.firebaseapp.com",
- databaseURL: "https://tutorial-gdevelop.firebaseio.com",
- projectId: "tutorial-gdevelop",
- storageBucket: "tutorial-gdevelop.appspot.com",
- messagingSenderId: "386980638073",
- appId: "1:386980638073:web:b00afc0ecb3ed7ca4f53a8",
- measurementId: "G-R0KBN0HPQ8"
- }
-
-```
-
-Maintenant colle le dans la case "Configuration Firebase" des propriétés du projet. Tu remarqueras sans doute le *message d'erreur*:  Cette erreur est normale et due au fait que GDevelop utilisé un *format* légèrement different, où les *clés* sont entourés par des " ". Dans mon cas ils faudrait transformer ma configuration en: ```
-
- {
- "apiKey": "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA",
- "authDomain": "tutorial-gdevelop.firebaseapp.com",
- "databaseURL": "https://tutorial-gdevelop.firebaseio.com",
- "projectId": "tutorial-gdevelop",
- "storageBucket": "tutorial-gdevelop.appspot.com",
- "messagingSenderId": "386980638073",
- "appId": "1:386980638073:web:b00afc0ecb3ed7ca4f53a8",
- "measurementId": "G-R0KBN0HPQ8"
- }
-
-``` L'erreur devrait avoir disparu:  Et voilà, bravo! Tu est fin prêt a utiliser Firebase dans GDevelop!
diff --git a/docs/fr/gdevelop5/all-features/firebase/rc.md b/docs/fr/gdevelop5/all-features/firebase/rc.md
deleted file mode 100644
index cffa4cbb0c6..00000000000
--- a/docs/fr/gdevelop5/all-features/firebase/rc.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: Configuration a distance Firebase
----
-# Configuration a distance Firebase
-
-!!! note
-
- N'oublie pas [d'installer Firebase](/gdevelop5/all-features/firebase/quickstart)!
-
- La configuration distante Firebase te permet de *changer des paramètres* de jeu pour tout tes utilisateurs ou une partie d'entre eux **depuis le net**. Par example: tu peux augmenter la difficulté du jeu a distance uniquement pour les joueurs expérimentés qui se plaignent de la facilité du jeu sans avoir à déployer un patch. \Pour pouvoir sélectionner des groupes de joueurs efficacement ça aide d'activer les Analytics et l'Authentification
-
-### A propos de cet article
-
-Cet article va prendre un jeu très simple et y rajouter de la configuration distante pour expliquer son fonctionnement et intégration dans un jeu. Voici le jeu de base:  
-
-Comme tu peux le voir, il s'agit d'un simple clicker où on peut gagner et perdre de l'argent.
-
-### Préparer la configuration distante
-
-La configuration distante requiert une action pour fonctionner. Elle permet de passer une structure comme **défaut**. Ce défaut est important car c'est la valeur qui va être utilisée avant la première connexion avec le serveur ou si le jeu est n'est pas connecté au réseau pour télécharger la configuration. Voici la structure que je vais utiliser comme défaut (seul le contenu de la structure est importante, pas son nom)  Puis il suffit de passer cette structure a l'action:  Les deux variables que je vais utiliser sont pour décider la valeur retirée et/ou ajoutée quand on clique sur un des boutons.
-
-### Préparer Firebase
-
- Maintenant ajoutons une valeur a ces variables sur Firebase. Pour ce faire cliques sur "Configuration Distante" depuis le tableau de bord Firebase:  Maintenant il suffit de mettre les mêmes variables et valeurs:  \ N'oublie pas d'enregistrer les modifications ! 
-
-### Ajouter un mécanisme de synchronisation
-
-Cette extension te laisse choisir quand synchroniser la configuration avec le serveur. Le moyen conseillé et d'utiliser l'action pour synchroniser la configuration **au démarrage du jeu et dans un événement périodique**. C'est a dire dans un événement qui arrive souvent mais pas trop dans le jeu \ Il est aussi possible d'utiliser l'action "Mettre l'auto synchronisation" mais elle n'est pas très fiable. {.is-info} Comme évènement périodique je pourrais utiliser un [Timer](/gdevelop5/all-features/timers), mais je veux garder le code simple et utilise donc un événement périodique existant; l'appui de bouton: 
-
-### Remplacer des valeurs par la configuration
-
-Maintenant, il suffit de remplacer les valeurs a rendre modulable par l'expression pour obtenir les valeurs du serveur: 
-
-#### Adapter le jeu a la modularité
-
-Il est important de faire attention en remplaçant des valeurs fixes par des valeurs modulables. Il faut par example mettre a jour dynamiquement des valeurs qui étaient fixes. Dans mon cas, il faut que je rajoute une action pour mettre a jour mon texte précédemment statique en cas de changement de la valeur: 
-
-### Utilise le tableau de bord Firebase pour changer les variables
-
-Et c'est bon! Tu as terminé et peux distribuer ton jeu. Si tu dois modifier une des variables, il te suffit de le faire depuis le tableau de bord Firebase.
diff --git a/docs/fr/gdevelop5/behaviors/destroyoutside.md b/docs/fr/gdevelop5/behaviors/destroyoutside.md
deleted file mode 100644
index 812270cc628..00000000000
--- a/docs/fr/gdevelop5/behaviors/destroyoutside.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Comportement de destruction en dehors de l'écran
----
-# Comportement de destruction en dehors de l'écran
-
-
-C'est l'un des comportements les plus simples, il suffit de l'ajouter à un objet et ensuite, chaque fois qu'une instance de cet objet sort des limites de l'écran, cette instance sera détruite.
-
-C'est une façon simple de vous assurer que votre jeu n'est pas rempli d'objets inutile qui pourraient le ralentir.
-
-#### Ajouter un comportement à l'objet
-
-Pour ajouter un comportement à un objet, ouvrez d'abord les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet et sélectionnez Edit object dans la liste. Sélectionnez ensuite les comportements et cliquez sur le bouton Add a behavior to the object .
-
-#### Détruire lorsque hors de l'écran
-
-
-Une fois que vous avez sélectionné le comportement dans la liste, il va détruire l'objet lorsqu'il se trouve en dehors de l'écran. Ce comportement n' a aucune option à modifier et s'applique automatiquement à l'objet.
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/behaviors/draggable.md b/docs/fr/gdevelop5/behaviors/draggable.md
deleted file mode 100644
index dc137603bab..00000000000
--- a/docs/fr/gdevelop5/behaviors/draggable.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Comportement des objets déplaçables
----
-## Comportement des objets déplaçables
-
-Ce comportement rendra l'objet déplaçable avec la souris ou en utilisant l'écran tactile de l'appareil.
-
-#### Ajouter un comportement à l'objet
-Pour ajouter un comportement à un objet, ouvrez d'abord les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet et sélectionnez "Edit object" dans la liste. Sélectionnez ensuite les comportements et cliquez sur le bouton "Ajouter un comportement".
-
-#### Objet déplaçable
-
-En sélectionnant le comportement déplaçable de l'objet dans la liste, nous pouvons ajouter la fonctionnalité à l'objet.
-Ce comportement n' a aucune option à modifier et s'applique automatiquement à l'objet.
-
-En utilisant des événements, nous pouvons vérifier si un objet est en train d'être déplacé
-
-#### Exemples
-
-Liste d'exemples:
-
- * objet déplacable: [Link](https://gametemplates.itch.io/template-manipulate-text-object)
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/behaviors/index.md b/docs/fr/gdevelop5/behaviors/index.md
deleted file mode 100644
index 33274eca8bd..00000000000
--- a/docs/fr/gdevelop5/behaviors/index.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Comportements
----
-# Comportements
-
-Les comportements ajoutent des capacités supplémentaires aux objets. Tous les objets peuvent avoir un ou plusieurs comportements.
-
-#### Ajouter un comportement à un objet.
-
-Pour ajouter un comportement à un objet, vous devez ouvrir les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet et sélectionner Edit object dans la liste.
-Ensuite, vous devriez voir les propriétés de l'objet sélectionné que vous devez ignorer pour le moment et sélectionner l'options Behaviors en haut de la fenêtre.
-
-
-Ici vous verrez une liste de comportements ajoutés à l'objet mais, il est probablement vide pour le moment. Pour ajouter un comportement à l'objet, cliquez sur le bouton Add a behavior to the object.
-
-
-Ensuite vous devriez voir une liste des comportements disponibles
-
-
-Il se peut que vous deviez faire défiler vers le bas pour les voir tous.
-Enfin, il suffit de cliquer sur un comportement pour ajouter le comportement à l'objet.
-
-#### En savoir plus
-
-Vous pouvez en apprendre plus sur chaque comportement en cliquant sur les liens suivants:
-
- * [Comportement Physique](/fr/gdevelop5/behaviors/physics2)
- * [Pathfinding](/gdevelop5/behaviors/pathfinding)
- * [Destroy outside screen](/gdevelop5/behaviors/destroyoutside)
- * [Platformer objects and platforms](/gdevelop5/behaviors/platformer)
- * [Draggable object](/gdevelop5/behaviors/draggable)
- * [Top-down movement](/gdevelop5/behaviors/topdown)
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/behaviors/physics2.md b/docs/fr/gdevelop5/behaviors/physics2.md
deleted file mode 100644
index 775e3495d6a..00000000000
--- a/docs/fr/gdevelop5/behaviors/physics2.md
+++ /dev/null
@@ -1,455 +0,0 @@
----
-title: Comportement Physique
----
-# Comportement Physique
-
-Le moteur (comportement) physique peut être ajouté aux objets pour les faire bouger de manière réaliste, en suivant les lois de la physique. En arrière-plan, l'extension utilise Box2D, une bibliothèque de simulation physique des corps rigides rapide et très complète.
-
-Le comportement physique est basé sur trois grands concepts : le **_monde_** qui contient les corps, les **_corps_** eux-mêmes et les **_joints_** qui relient les corps. Tous sont expliqués en détail dans ce texte.
-
-!!! warning
-
- **Limite** : Comme indiqué ci-dessus, l'extension simule la physique des **_corps rigides_**, ce qui signifie que les corps ne peuvent pas être déformés. Des objets comme les formes molles, les vêtements et les liquides ne sont pas pris en charge.
-
-##Le monde
-
-Le **_monde_** est l'endroit où se déroulent les simulations, les corps et les contacts sont rattachés à un monde pour pouvoir interagir avec d'autres entités.
-Vous n'avez pas à vous soucier de placer des objets dans le monde, les objets utilisant le comportement Physique sont automatiquement ajoutés au monde. De plus, il ne peut y avoir qu'un seul monde à la fois, vous ne pouvez pas exécuter deux simulations indépendantes en même temps.
-La taille du monde, comme celle de GDevelop, est infinie. Vous n'avez donc pas à vous soucier de l'emplacement de vos objets, ils suivront toujours les lois de la physique.
-
-Le monde comporte 3 propriétés :
-
- * **Gravity** (la gravité) : elle est constituée de deux composantes (**X** et **Y**), et fonctionne comme la gravité terrestre. Elle ajoute une force à chaque objet, le poussant dans la direction donnée. Les objets supportent également un facteur d'échelle de gravité, plus à ce sujet dans la section des corps.
- * **Timescale** (échelle temporelle) : Cette propriété définit l'échelle de temps utilisée par la simulation. Avec une échelle de temps de 0,5, la simulation s'exécute à la moitié de la vitesse normale, avec une échelle de temps de 2, la simulation est deux fois plus rapide et si elle est égale à 0, la simulation s'interrompt. Super utile pour les effets "bullet time" !
- * **Scale** (Échelle) : Dans GDevelop, les distances et les tailles sont définies en pixels mais le moteur physique utilise des mètres. Pour que la conversion se fasse, il faut fournir un facteur d'échelle (celui -ci comporte aussi, comme la gravité, deux composantes, l'échelle en **X** et l'échelle en **Y**). Les valeurs d'échelle indiquent le nombre de pixels par mètre. Par exemple, une valeur de 50 signifie qu'une distance de 50 pixels dans GDevelop est convertie en 1 mètre dans le monde physique.
-
-!!! note
-
- La règle numéro un pour décider de l'échelle du monde consiste à le choisir de manière à ce que la taille de vos objets mobiles / dynamiques soit comprise entre 0,1 et 10 mètres ; en dehors de cette plage, les simulations perdront en précision. Par exemple, si vous travaillez avec des tailles d’objets d’environ 100 x 100 pixels, une échelle mondiale de 100 serait parfaite, car la taille de votre corps sera d’environ 1x1 mètre. Les objets statiques peuvent être beaucoup plus longs, jusqu'à 50 mètres.
-
-## Les corps
-
-Les **_corps_** sont la _vie_ de l'extension **Physics**, ils définissent le mouvement de l'objet, sa forme, son rebond, sa capacité de rotation ou de déplacement.
-
-Lorsque vous ajoutez le comportement **Physics** à un objet, vous pouvez définir la configuration du corps directement à partir de l'EDI.
-
-Vous pouvez "jouer" avec les nombreuses options de **Physics** pour modéliser le monde physique selon vos besoin. Ces options sont décrites ci-dessous.
-
-###Les types de corps
-
-GDevelop supporte trois types de corps de base :
-
- * **Dynamic** : est le type le plus courant. Les **_corps dynamiques_** sont affectés par la gravité et peuvent entrer en collision avec d'autres corps _dynamiques_, _statiques_ et _cinématiques_. Vous pouvez leur appliquer des forces et des impulsions, ainsi que modifier leur vitesse. Presque tout ce qui doit bouger devrait être un corps dynamique.
- * **Static** : Les **_objets statiques_** _ne sont pas_ affectés par la gravité et vous ne pouvez pas les déplacer en utilisant des forces, des impulsions ou en modifiant leur vitesse. Ils ne peuvent entrer en collision qu'avec des objets dynamiques, tout en ignorant la cinématique et les autres corps statiques. Ils sont destinés à être utilisés pour la géométrie statique du monde, comme le sol, les murs non mobiles et les plates-formes.
- * **Kinematic** (Cinématique) : Les **_objets cinématiques_** sont très spécialisés. En tant qu'objets statiques, ils ne sont pas affectés par la gravité, ni par les forces ou les impulsions, mais vous pouvez, tout comme pour les corps dynamiques, les faire se mouvoir par leur vitesse. Les corps cinématiques entrent en collision avec les objets dynamiques uniquement et sont utiles pour simuler des murs et des plates-formes mobiles.
-
-Et quelques paramètres liés à la dynamique :
-
- * **Bullet** (Obus, balles) : Si la valeur est **true**, l'objet utilisera un algorithme de détection de collision en continu, ce qui réduira légèrement les performances, mais améliorera la réponse lors des déplacements très rapides. Utile pour simuler correctement ... évidemment ... des balles de fusil (ou tout objet très rapide) et réduire les risques que les balles traversent des objets minces.
-
-!!! danger
-
- Utilisez cette option sur les objets qui en ont vraiment besoin. L'impact sur les performances lorsqu'il est utilisé dans chaque objet déplacé n'est pas * léger *.
-
- * **Fixed Rotation** (Rotation bloquée) : Si la valeur est **true**, l'objet ne pourra pas pivoter. Imaginez que votre joueur tourne à chaque fois qu’il heurte un mur ou en descendant une pente.
- * **Can Sleep** (Peut dormir) : Si défini à **true**, le moteur peut améliorer les performances des objets qui ne sont pas déplacés depuis un moment, ce qui les met en veille. C'est juste un paramètre de performance qui ne devrait pas avoir d'impact sur la simulation elle-même.
-
-!!! note
-
- Vous pouvez vérifier si un corps "dort" en utilisant les conditions d'événements. Si un objet dort, cela signifie qu'il est dans un état d'équilibre depuis un moment, utile pour créer des jeux d'équilibre.
-
-###La forme du corps (Body shape)
-
-Les options **Body shape** (forme du corps) déterminent la forme et la taille du corps et, en fonction du type de forme, vous disposez de différentes options pour définir les dimensions.
-
- * **Box** (Boîte) : //Un rectangle aligné sur l'axe et centré sur l'objet//. Si la largeur et la hauteur personnalisées ne sont pas définies, c'est la taille de l'objet qui est utilisée.
- * **Circle** (Cercle) : // Un cercle centré sur l'objet //. Si aucun rayon personnalisé n'est défini, il sera calculé comme une moyenne à partir de la largeur et de la hauteur de l'objet. Si l'objet se présente sous la forme d'un carré, le résultat sera un cercle inscrit à l'intérieur de la boîte englobante.
- * **Edge** (Arête) : // Une fine ligne centrée dans l'objet //. Cette forme n'ayant pas de volume, elle ne fonctionne pas bien en tant que corps dynamique, elle est prévue pour être utilisée pour la géométrie statique, le sol et les plateformes. Si une longueur et un angle personnalisés ne sont pas définis, l'arête sera une ligne horizontale avec une longueur égale à la largeur de l'objet.
- * **Polygon** : _Une forme personnalisée définie par ses sommets_. Le polygone doit être convexe et si cette condition échoue, la forme revient à la boîte par défaut. Le nombre de sommets doit être supérieur ou égal à 3 (sinon, il ne peut pas être convexe) et inférieur ou égal à 8 (nombre maximal de sommets pris en charge par polygone) : 3 ≤ nombre de sommets ≤ 8.
-
-Outre le type et la dimension personnalisés de la forme, **Body shape** prend en charge deux options supplémentaires :
-
- * **Offset** (Décalage) : Le décalage a deux composantes (X et Y) et peut être utilisé pour déplacer la forme à partir du centre de l'objet.
- * **Scale** (Échelle) : Vous pouvez aussi redimensionner la forme. **Scale** redimensionne les dimensions et le décalage personnalisés de la forme. Si vous n'utilisez pas des dimensions personnalisées, par exemple si vous utilisez la forme **Box** et laissez la largeur et la hauteur égales à la taille d'origine de l'objet, il n'est pas nécessaire de modifier l'échelle de la forme car la mise à l'échelle sera effectuée automatiquement. Si le type de forme est **Polygon**, l'échelle modifiera également la position des sommets et l'origine de l'échelle sera **Polygon origin** (Origine du polygone). Si vous définissez l'origine du polygone sur **Center** et réduisez la taille de la forme, les sommets seront réduits jusqu'à et dans la direction du centre de l'objet.
-
-###Paramètres du corps (Body settings)
-
-Outre le type et la forme, les corps physiques disposent de paramètres supplémentaires qui déterminent le comportement du corps en cas de collision, l'impact de la gravité sur celui-ci et l'énergie perdue en raison du frottement de l'air. Chaque réglage est expliqué ci-dessous.
-
- * **Density** (Densité) : La densité détermine la masse corporelle. La formule générale est `densité = masse/volume`, mais comme il n’y a pas de troisième dimension, nous pouvons partir du fait qu’il s’agit de `densité = masse/surface`. Deux corps ayant la même densité mais des aires/tailles différentes auront une masse différente, vous devez donc en tenir compte lors du redimensionnement des objets.
-
- __La densité ne peut pas être négative !__
-
- * **Friction** (Frottement) : Le frottement ajoute une force aux corps en contact, dans le sens opposé à celui de leur mouvement. Plus le frottement est élevé, plus les objets ralentissent au contact. Pour mieux le comprendre, une plate-forme en sable aura un frottement proche de 1 (très haut), alors qu'une plate-forme en glace aura un facteur de frottement proche de zéro.
-
- __Le frottement ne peut être négatif ! __
-
-Lorsque deux objets sont en contact, le frottement total est calculé à partir des frottement des objets en contact par la formule : `friction = sqrt (frictionA * frictionB)`
-
-* **Restitution** : Détermine la quantité d'énergie que l'objet garde ou perd à chaque collision. Une valeur de **0** signifie que les collisions seront parfaitement inélastiques et que l'objet ne rebondira pas du tout. Alors qu'une restitution valant **1** signifie que les collisions seront parfaitement élastiques et que l'objet rebondira avec la même énergie à chaque fois. Imaginez une balle qui rebondit sur le sol et qui atteint toujours la même hauteur. Les valeurs de restitution supérieures à 1 sont valides, mais l'objet gagne de l'énergie à chaque collision et la simulation risque de ne plus être maîtrisée.
-
- __La restitution ne peut pas être négative! __
-
-Lorsque deux objets entrent en contact. , la restitution totale est calculée à l'aide de la restitution des objets en collision via la formule : `restitution = max (restitutionA, restitutionB)`
-
-* **Linear Damping** (Amortissement linéaire) : L'amortissement linéaire réduit la vitesse de l'objet à tout moment. Plus la valeur est élevée, plus les objets sont ralentis. Vous pouvez vous la représenter en comparant la viscosité de l’air (qui est faible) à cette de l'eau (plus élevée) et à celle de la mélasse (qui est encore plus élevée. Autrement dit, un objet lancé dans l'air va plus loin que s'il était lancé dans l'eau.
-
- __Bien que vous puissiez utiliser n’importe quelle valeur, l’amortissement négatif fait que l’objet gagne en vélocité à chaque étape, générant un comportement non-physique.__
-
-* **Angulaire Damping** (Amortissement angulaire) : Analogue à l'amortissement linéaire, mais plutôt que de ralentir la vitesse linéaire de l'objet, il ralentit la vitesse angulaire, autrement dit la vitesse de rotation de l'objet à chaque étape.
-
-__Bien que vous puissiez utiliser n'importe quelle valeur, un amortissement négatif fait que l’objet gagne en vitesse angulaire à chaque étape, générant un comportement non-physique.__
-
-* **Gravity Scale** (Échelle de gravité) : Ce facteur est multiplié par la gravité du monde pour déterminer la gravité appliquée à l'objet. Notez qu'il s'agit d'un nombre et non d'un vecteur, vous ne pouvez pas modifier l'orientation de la gravité, mais uniquement sa magnitude et son sens. Tout nombre est valide, par exemple si **Gravity Scale** vaut `1`, la gravité appliquée sera la gravité du monde, si elle vaut `2`, la gravité sera deux fois plus forte pour cet objet et si elle est égale à `0,5`, elle sera deux fois plus faible. Avec une valeur de `0`, l'objet ne sera pas affecté par la gravité, et si elle vaut `-1`, la gravité sera inversée.
-
-!!! note
-
- Vous pouvez utiliser une échelle de gravité négative pour inverser la gravité d'un objet spécifique.
-
-### Calques et masques
-
-Les calques et les masques permettent de filtrer les collisions entre objets. Imaginez que vous construisez un jeu de zombies et que vous voulez que votre joueur entre en collision avec le sol et que les zombies entrent en collision avec le joueur et avec le sol également, mais vous ne voulez pas que les zombies se heurtent avec d'autres zombies, Dans ce cas, vous avez besoin de filtres de collision.
-
-Comment fonctionnent les filtres ?
-Il n'y a qu'une seule règle :
-
-!!! warning
-
- Deux objets `A` et `B` peuvent entrer en collision si n'importe quel calque de `A` correspond à n’importe quel masque de `B` **et** que n'importe quel calque de `B` correspond à n’importe quel masque de `A`
-
-Voici une solution possible au problème des zombies évoqué ci-dessus :
-
- * Sol : activez le premier calque et les premier et deuxième masques.
- * Joueur : activez le premier calque et les premier et deuxième masques.
- * Zombie : Activer le deuxième calque et le premier masque uniquement.
-Pourquoi cela fonctionne-t-il ?
-
- * Sol et joueur : un calque de sol correspond à un masque de joueur (premier) **et** un calque de joueur correspond à un masque de sol (premier).
- * Sol & Zombie : un calque de sol correspond à un masque de zombie (premier) **et** un calque de zombie correspond à un masque de sol (deuxième).
- * Joueur & Zombie : un calque joueur correspond à un masque de zombie (premier) **et** un calque zombie correspond à un masque de joueur (deuxième).
- * Zombie & Zombie : seul le deuxième calque est activé pour le zombie, et seul le premier masque est activé, afin que les zombies ne puissent pas se heurter.
-
-Notez que vous disposez de 16 calques et de 16 masques, et pour résoudre notre petit problème, il ne vous a fallu que 2 calques et masques.
-
-###Mouvement
-
-Après avoir configuré vos objets, il est temps de commencer la simulation : la gravité commence d'agir, les objets bougent et se heurtent, mais vous ne pouvez pas interagir avec le jeu. Il est temps de déplacer les objets vous-même et pour ce faire, vous devez utiliser le système des événements. Voici quelques actions utiles pour interagir avec les objets et les déplacer comme vous le souhaitez.
-
-!!! danger
-
- Les forces intégrées de GDevelop ne conviennent pas au comportement **Physics**. Pour définir la vitesse linéaire, utilisez les forces spécifiques à la physique ou aux actions de la physique.
-
-* **Forces** : Les forces modifient le mouvement d'un objet et sont destinées à être utilisées pendant un certain temps pour générer un effet appréciable. La vitesse que l'objet gagne lorsque vous lui appliquez une force dépend de la magnitude de la force et de la masse de l'objet. Un objet lourd se déplacera plus lentement qu'un objet plus léger si la même force est appliquée sur les deux masses.
-
-__Il faut définir un point d'application pour ajouter et utiliser une force.__
-
-* **Torques** (Couples) : Analogues aux forces mais pour la rotation. Un couple générera une accélération angulaire sur l'objet, le faisant tourner plus vite ou plus lentement dans le temps.
-
-* **Impulses** (Impulsions) : Semblables aux forces, mais ne dépendent pas du temps, elles ajoutent instantanément une "quantité" de vélocité. Elles sont censées être utilisées une seule fois. Une utilisation courante pourrait être de simuler des sauts : chaque fois que vous appuyez sur le bouton de saut, vous ajoutez une impulsion vers le haut.
-
-__Il faut définir un point d'application pour ajouter une impulsion.__
-
-* **Angular Impulses** (Impulsions angulaires) : Analogues aux impulsions mais pour la rotation. Change la vitesse de rotation d'un objet instantanément.
-
-* **Velocity** (Vélocité) : Vous permet de modifier directement la vélocité d'un objet. Par exemple, vous pouvez faire marcher votre personnage à vitesse constante, puis modifier la vélocité tant que vous appuyez sur un bouton de mouvement.
-
-* **Angular Velocity** (Vitesse angulaire) : Vous pouvez également définir directement la vitesse angulaire (vitesse de rotation).
-
-!!! warning
-
- Vous pouvez modifier directement la position des objets, mais cela générera des comportements non physiques, du moins jusqu'à ce que la nouvelle position soit corrigée. Après tout, les objets ne se téléportent pas dans la vie réelle.
-
-Notez que les forces et les impulsions ont besoin d’un //point d’application//. C’est important car c n'est pas pareil de pousser un verre à la base (pour déplacer le verre) que de le pousser dans le haut (le verre va probablement tomber), ni de pousser une porte vers sa poignée ou vers ses charnières.
-Si le point d'application est différent du centre de gravité de l'objet, il générera une sorte de couple/rotation.
-
-!!! note
-
- Vous pouvez obtenir le centre de gravité d'un objet en utilisant les expressions de comportement **Physics** `MassCenterX ()` et `MassCenterY ()`
-
-##Les joints (Joints)
-
-Les joints sont des restrictions données aux objets pour leur faire suivre des règles de mouvement supplémentaires. Certains joints font pivoter les objets autour d’un point fixe, d’autres maintiennent deux objets ensemble, les plus complexes simulent les roues du véhicule, limitant la distance entre les corps tout en leur permettant de tourner librement.
-
-** Joint ID ** (ID du joint) :
-Lorsque vous créez un joint, vous pouvez lui transmettre un nom de variable. Si vous le faites, GD stockera le numéro d'identification unique (**ID**) du joint dans la variable donnée. En vous servant de **Joint ID**, vous pourrez le modifier après sa création, vérifier ses valeurs et le supprimer. Imaginez que vous créez un joint pour attacher une clé à une ficelle fixée au toit. Si vous enregistrez l'ID du joint dans une variable, vous pourrez vérifier si un objet entre en collision avec la ficelle et supprimer le joint à l'aide de l'ID enregistrée pour faire tomber la clé.
-!!! note
-
- Un **Joint ID** sera toujours un nombre supérieur à zéro.
-
-En règle générale, vous aurez besoin de deux objets pour définir un joint (dans l'exemple précédent, la corde et la clé), mais il existe des "exceptions". Consultez l'explication fournie dans **Revolute joint** si vous souhaitez en savoir plus.
-
-Voici une liste des propriétés, conditions et actions communes à tous les types de joints.
-
-* ** Joint first/second object ** (Premier/second objet du joint) : conditions qui vous permettent de sélectionner des objets s’ils sont le premier ou le second objet reliés par le joint.
-* ** Joint first/second anchor X/Y ** (Ancrage X/Y du premier/second objet) : expressions permettant d'obtenir la position du premier ou du deuxième point d'ancrage de l'objet relié par le joint.
-* ** Joint reaction force/torque ** (Force/couple de réaction du joint) : Conditions et expressions permettant de vérifier la force ou le couple de réaction du joint, cette valeur indique à quelle distance se situe le joint par rapport à son état d'équilibre. Si la force de réaction du joint est trop élevée, cela signifie que le joint a été séparée de sa position d'équilibre par une force considérable. Utile pour faire des joints cassables.
-* **Remove joint** (Supprimer le joint) : Action pour supprimer le joint spécifié. Si le joint est l'un des enfants d'un joint de type engrenage, l'engrenage sera également supprimé. Si l'un des objets relié par le joint est supprimé, le joint sera également supprimé.
-
-Il existe de nombreux types de joint, chacun avec des comportements et des propriétés uniques. Ils sont énumérés ci-dessous.
-
-!!! warning
-
- Assurez-vous de créer les joints dans les événements qui ne s'exécutent qu'une seule fois (par exemple, au début de la scène). La créations de joints à chaque image créera des centaines de de joints en quelques secondes, ce qui entraînera des performances médiocres, des comportements non physiques, voire faire planer la machine en raison de l'énorme consommation de mémoire.
-
-### Distance Joint
-
-**Distance joint** essaie de garder deux objets séparés par une distance donnée, la distance est calculée à partir des points d'ancrage du joint.
-Les objets ne seront pas à la distance donnée tout le temps mais auront tendance à l'atteindre, en utilisant une formule d'oscillateur.
-
-Paramètres :
-* **Length** (Longueur) : La distance de la cible. Si une valeur négative est donnée, c'est la distance entre les objets au moment de la création du joint qui est utilisée.
-* **Damping ratio** (Rapport d'amortissement) : Le "frottement" des objets va souffrir, des valeurs faibles font osciller davantage les objets, des valeurs plus élevées réduisent les oscillations mais les objets bougent plus lentement.
-* **Frequency** (Fréquence) : Spécifie à quelle vitesse les objets vont osciller, des valeurs faibles génèrent des joints souples se déplaçant plus lentement pour atteindre la distance cible, des valeurs plus élevées simulent des joints plus rigides avec des objets se déplaçant très rapidement pour atteindre la cible.
-
-!!! note
-
- Les valeurs d'amortissement et de fréquence faibles généreront des joints souples, avec de nombreuses oscillations avant de se rapprocher de la distance cible, tandis que des valeurs élevées pour les deux réglages génèrent des joints très rigides.
-
-### Revolute Joint
-
-Les joints **Revolute** fonctionnent comme des axes, ils sont également appelés **_charnières_**. Ils font pivoter les objets autour d’un point.
-Il existe deux types de joints **Revolute**, qui sont presque les mêmes, mais avec une petite différence.
-
-* **Revolute joint between two objects** (Joint tournant entre deux objets) : il relie deux objets qui les objets se déplacent ensemble de manière à ce que leurs points d'ancrage se chevauchent, et chaque objet pivote autour de son point d'ancrage. Imaginez que vous épingliez deux cartes ensemble et les lanciez afin qu'elles bougent et tournent librement autour de l'épingle.
-* **Revolute joint in a single object** (Joint tournant dans un seul objet) : Les joints fonctionnant généralement entre deux objets, celui-ci représente l'une des exceptions. Ce joint nécessite un seul objet et son point d'ancrage épingle l'objet à la position fixe donnée. Pensez-y comme si vous épingliez une note sur un tableau d'affichage : la note peut pivoter autour de l'épingle mais ne peut pas bouger.
-
-!!! note
-
- Notez que, dans la version du joint à objet unique, l'objet est ajouté en tant que deuxième objet du joint, le premier objet est un corps statique masqué, ce qui permet d'utiliser ce type de joint dans les engrenages (expliqué dans la section joint d'engrenage).
-
-Voici la liste des paramètres spécifiques aux joints **Revolute** :
-
-* **Angle limits** (Limites d'angle) : Si activé, la rotation sera limitée entre les angles `minimum` et `maximum`. Notez que les deux angles sont relatifs au premier objet.
-* **Reference angle** (Angle de référence) : L'angle entre les objets sera considéré comme nul. Il décale toutes les propriétés de l'angle. Si l'angle de référence est de 15 degrés, demander l'angle courant de l'articulation lorsque l'angle entre les objets est de 15 degrés en coordonnées universelles retournera 0, et si vous définissez l'angle maximal à 30, il retournera 45 (par rapport au premier objet).
-* **Minimum angle** : L'angle minimal entre les objets, par rapport au premier objet. Doit être inférieur ou égal à l'angle maximal.
-* **Maximum angle** : L'angle maximal entre les objets, par rapport au premier objet. Doit être supérieur ou égal à l'angle minimal.
-
-!!! tip
-
- Vous pouvez utiliser des joints **Revolute** avec des limites d’angle pour simuler des articulations charnières
-
-* **Motor** : Si activé, ce joint ajoutera du couple au second objet pour le faire tourner sans avoir besoin d'une force externe ... comme un moteur. Si vous l'activez, pensez à définir une vitesse de moteur et un couple moteur maximal !
-* **Motor speed** (Vitesse du moteur) : La vitesse du moteur cible, en degrés par seconde. Il s’agit de la vitesse que le deuxième objet essaiera d’atteindre en tournant autour du premier objet. La vitesse du moteur peut être positive pour faire tourner l'objet dans le sens des aiguilles d'une montre ou négative pour le faire tourner dans le sens contraire des aiguilles d'une montre.
-* **Maximum motor torque** (Couple moteur maximal) : Le couple maximal que le moteur peut utiliser pour atteindre la vitesse de rotation cible. Doit être positif.
-
-Vous pouvez de plus accéder aux valeurs suivantes pendant la simulation :
-
-* **Joint angle** (Angle du joint) : L'angle actuel entre les objets, par rapport au premier objet et affecté par l'angle de référence.
-* **Joint speed** (Vitesse du joint) : vitesse angulaire actuelle du joint, c'est-à-dire la vitesse autour de laquelle tourne le deuxième objet, par rapport à la rotation du premier objet.
-* **Joint motor torque** (Couple moteur commun) : Le couple du moteur actuel peut être inférieur au couple moteur maximal, car il s'agit du couple requis pour atteindre la vitesse cible du moteur.
-
-!!! note
-
- Les joints tournants peuvent également être utilisés pour : des leviers de flipper, des portes de type store, des machines tournantes automatiques en tant ponts levis ou tournants.
-
-
-
-### Prismatic Joint
-
-Les joints prismatiques **Prismatic Joint** fonctionnent comme des **_pistons_** et sont également appelées _curseurs_. Ils font glisser des objets les uns sur les autres selon une direction donnée. Un bon exemple est un ascenseur, l’ascenseur se déplaçant dans un sens vertical le long d’un rail, le rail serait le premier corps du joint et l’ascenseur le second, la direction de l’axe serait un angle dirigé vers le haut ou le bas (-90 ou 90 degrés) .
-
-Paramètres spécifiques aux joints prismatiques
-
-* **Axis angle** (Angle de l'axe) : L'angle déterminant la direction du mouvement. Un angle d'axe égal à **`0`** définit un mouvement horizontal. La valeur est donnée en coordonnées universelles, mais l'axe pivote en suivant la direction du premier objet (si vous faites pivoter les rails de votre ascenseur, l'angle de mouvement de l'ascenseur pivote également).
-* **Reference angle** (Angle de référence) : Comme pour les joints tournants, cet angle ajoute un décalage à l'axe, établissant un nouvel "angle zéro". Si l'angle de référence est 15, un angle d'axe de 15 en coordonnées du monde (par rapport à la direction du premier objet) sera traité en tant que 0.
-* **Translation limits** (Limites de translation) : Si activé, le mouvement du second objet sera limité entre les translation minimale et maximale données.
-* **Minimum translation** : La distance minimale dont le deuxième objet peut se déplacer par rapport au premier. Dans notre exemple d'ascenseur, la translation minimale serait le sol.
-* **Maximum translation** : La distance maximale dont le second objet peut se déplacer par rapport au premier. Dans notre exemple d'ascenseur, le toit.
-
-!!! warning
-
- La plage des limites de translation doit inclure le zéro. Une tranlation minimale de 5 et maximale de 10 (plage [5, 10]) sera convertie en plage [0, 10] pour inclure le zéro.
-
-* **Motor** : Si activé, le joint appliquera une force au second objet pour que le moteur atteigne une vitesse donnée. Si vous l'activez, pensez à définir une vitesse et une force maximales pour le moteur !
-* **Motor speed** (Vitesse du moteur) : La vitesse finale que le moteur essaiera d'atteindre. Si positif, le second objet se déplace dans la direction de l'axe et dans la direction opposée si elle est négative.
-* **Maximum motor force** (Force maximale du moteur) : La grandeur maximale de la force que le moteur peut dépenser pour atteindre la vitesse cible. Doit être positif.
-
-Vous pouvez en plus accéder aux paramètres ci-dessous pendant la simulation.
-
-* **Joint translation** (Translation du joint) : La distance actuelle dont le deuxième objet a été déplacé par rapport au premier.
-* **Joint speed** (Vitesse du joint) : La vitesse actuelle du deuxième objet le long de son axe par rapport à la vitesse du premier objet.
-* **Joint motor force** (Force motrice du joint) : Force actuelle appliquée par le moteur au deuxième objet. Cette valeur peut être inférieure à la force motrice maximale car il s'agit de la force nécessaire pour atteindre la vitesse cible du moteur.
-
-
-###Pulley joint (joint de type poulie)
-
-Un joint simple avec un nom simple. Ce joint rend la somme des distances de chaque objet à leur position par rapport au sol (point d'ancrage) constante. Il est beaucoup plus facile à comprendre en utilisant d'autres mots : il simule une poulie).
-
-Imaginez que vous ayez une boîte suspendue à 3 mètres sous un point fixe A et un cercle suspendu à 2 mètres sous un point fixe B, les deux objets étant fixés aux extrémités de la même corde passant par une poulie. La corde a une longueur constante. Ainsi, si vous déplacez la boîte vers le haut de 2 mètres, donc maintenant suspendue à seulement 1 mètre sous A, le cercle doit descendre de la même distance, donc maintenant être à 4 mètres sous B. Il en résulte que la distance entre la boîte et le point A plus la distance entre le cercle et le point B est toujours de 5 mètres:
-
-`distance (boîte, A) + distance (cercle, B) = constante`
-
-
-**Ratio** :
-Facile, non ? Maintenant la partie un peu folle : ce joint supporte un paramètre supplémentaire : **ratio** (rapport). **Ratio** rend la corde plus extensible d'un côté que de l'autre. Par exemple, 1 mètre de corde du côté de la boîte peut être équivalent à 2 mètres de corde du côté cercle (rapport = 1/2 = 0,5).
-
-Revenons à notre exemple initial : la boîte à 3 mètres sous A, le cercle à 2 mètres sous B, mais avec un rapport de 0,5. Si vous déplacez la boîte de 2 mètres vers le haut, le cercle se déplace de 4 mètres vers le bas. La longueur de la corde n’est clairement plus constante, mais :
-
-`distance (boîte, A) + rapport * distance (cercle, B) = constante`
-
-(Notez que la première équation est un cas particulier de celle-ci, avec **ratio** = 1).
-
-Veuillez également noter qu'il n'y a véritablement pas de "corde" du tout, le joint fonctionne uniquement avec la distance entre les objets et les points d'ancrage !
-
-Voici les paramètres courants :
-
-* **First ground point** (Premier point d'ancrage) : Le point fixe auquel le premier objet est attaché (dans les exemples, le point A).
-* **Second ground point** (Deuxième point d'ancrage) : Le point fixe auquel le deuxième objet est attaché (dans les exemples, le point B).
-* **First length** (Première longueur) : Longueur initiale de la corde entre le premier objet et son point d'ancrage. Si la valeur est négative ou égale à zéro, c'est la distance au moment de la création du joint qui est utilisée.
-* **Second length** (Deuxième longueur) : Longueur initiale de la corde entre le deuxième objet et son point d'ancrage. Si la valeur est négative ou égale à zéro, c'est la distance au moment de la création du joint qui est utilisée.
-* **Ratio** (Rapport) : Expliqué ci-dessus. C'est le rapport entre les distances de chaque côté. Si le rapport est égal à 0,33, 1 mètre du premier côté équivaut à 3 mètres du deuxième côté.
-
-###Gear Joint (joint engrenage)
-
-Ce joint est très spécial car, au lieu de joindre deux corps directement, les engrenages joignent deux autres joints. Ces joints enfants doivent être de type **revolute** ou **prismatic**.
-Lorsque deux joints sont reliés par un joint **Gear**, le mouvement de l'un des joints provoque le déplacement de l'autre joint. Par exemple, le déplacement d'un objet le long de l'axe d'un joint **prismatic** entraîne la rotation du joint **revolute** qui lui est liée, et inversement.
-
-Mais ce joint est aussi très délicat à manier ! Pour faire fonctionner un engrenage, le premier corps du joint de chaque enfant doit être _statique_ et le second _dynamique_.
-Vous pouvez assembler deux joints **revolute**, deux joints **prismatic** ou un joint **revolute** et un joint **prismatic**, mais le premier corps de chaque joint doit toujours être **_statique_** !
-
-!!! note
-
- Le premier corps des joints enfants de l'engrenage doit être statique. C'est pourquoi la version à objet unique du joint **revolute** précise que le premier corps est un objet statique masqué
-
-Les paramètres du joint **Gear** :
-
-* **First joint** (Premier joint) : Un joint **revolute** ou **prismatic** sera lié au second joint.
-* **Second joint** (Second joint) : Un joint **revolute** ou **prismatic** sera liée au premier joint.
-* **Ratio** (Rapport) : comme le joint de type poulie, les engrenages supportent un "rapport" et fonctionnent de manière similaire : si vous reliez deux joints **revolute** avec un rapport de 0,33, chaque tour dans le premier **revolute** équivaut à trois tours dans le second. Il existe toutefois une différence par rapport au rapport des joints de type poulie : les rapports des engrenages peuvent être négatifs, ce qui permet à un mouvement positif dans l’une des articulations de générer un mouvement négatif dans l’autre. Par exemple, lorsque vous reliez deux joints avec un ratio de –1, une rotation dans le sens des aiguilles d'une montre génère une rotation dans le sens inverse des aiguilles d'une montre dans l'autre, un peu comme un engrenage, non ?
-
-!!! warning
-
- La condition nécessaire à l'existence d'un engrenage est l'existence des deux joints enfants. Si l'un des deux joints est supprimé, l'engrenage est automatiquement supprimé.
-
-
-###Mouse Joint (joint souris)
-
-Ce joint n'est pas nécessairement liée à la souris, mais c'est très courant. Ce joint ne fait que déplacer un objet vers une position cible. Si vous mettez continuellement à jour la position de l'objet pour cibler la souris ou l'endroit où vous avez appuyé, vous pouvez faire glisser des objets.
-
-Notez que **Mouse Joint** une autre exception parmi les joints, car il ne nécessite qu'un seul corps pour fonctionner : l'objet qui sera déplacé vers la cible.
-
-Paramètres pour le joint souris :
-
-* **Object** : L'objet à déplacer, vers la position cible.
-* **Target** (Cible) : le point cible que l'objet essaiera d'atteindre. Vous pouvez le mettre à jour autant de fois que vous le souhaitez après la création du joint
-.
-!!! warning
-
- La position initiale de la cible (au moment de la création du joint) est également utilisée comme point d'ancrage de l'objet. Veillez donc à la définir !
-
-* **Maximum force** (Force maximale) : La force maximale que le joint peut appliquer à l’objet pour atteindre la position de la cible. Plus la force est grande, plus l’objet se déplace rapidement. Ce paramètre doit être positif.
-* **Frequency** (Fréquence) : Fonctionne comme la fréquence du joint distance. Il déterminant la vitesse à laquelle l'objet oscille autour de la cible.
-* **Damping ration** (Rapport d'amortissement) : Fonctionne comme le rapport d'amortissement du joint distance, en ralentissant l'objet au cours du temps.
-
-!!! note
-
- **Mouse Joint** n'est pas limité à son utilisation avec la souris, il accepte n'importe quel point du monde comme cible.
-
-
-###Wheel Joint
-
-**Wheel Joint** (joint de roue) est un joint très spécifique. Vous aurez besoin de ce joint lorsque vous voulez utiliser une ou des roues, et il est difficile de penser à un cas différent de celui d'une roue de véhicule pour laquelle le meilleur joint est **Wheel Joint**.
-
-Conçu pour simuler les roues de véhicules, ce joint ne fait que cela, mais le fait très bien !
-
-Vous pouvez vous représenter le joint **Wheel** comme une combinaison du joint **Revolute** et du joint **Prismatic** :
-
-* Le joint **Revolute** permet de faire tourner le deuxième objet (la roue) et, comme le joint **Revolute** classique, il comporte un moteur simulant le moteur du véhicule faisant tourner la roue.
-* La fonction du joint **Prismatic** consiste à simuler la suspension de la roue du véhicule et, tout comme avec le joint **Prismatic** classique, vous pouvez définir l'angle de l'axe pour définir le sens de translation de la roue. C'est généralement la direction de l'axe vertical, mais, par exemple, les motos ont une direction de suspension de la roue avant différente (et parfois très éloignée) de la verticale.
-
-!!! warning
-
- Le corps qui fera office de roue doit être le deuxième objet de l'articulation.
-
-Voici les paramètres du joint **Wheel**
-
-* **Axis angle** (Angle d'axe) : Équivalent à l'angle d'axe du joint **Prismatic**, il détermine la direction du mouvement (ou du glissement) entre la roue et le premier objet.
-* **Frequency** (Fréquence) : La fréquence de l'oscillation de la suspension, équivalent à la fréquence du joint **Distance**. Des valeurs élevées font osciller la roue plus rapidement.
-* **Damping ratio** (Rapport d'amortissement) : L'amortissement de la suspension, équivalent au rapport d'amortissement du joint **Distance**. Plus la valeur est élevée, plus le mouvement de la roue est ralenti.
-* **Motor** : Si activé, le joint ajoutera un couple à la roue (deuxième objet) pour atteindre la vitesse souhaitée du moteur. Si vous l'activez, n'oubliez pas de régler la vitesse du moteur et le couple moteur maximal !
-* **Motor speed** (Vitesse du moteur) : La vitesse angulaire que la roue tentera d'atteindre. Peut être positif pour une rotation dans le sens horaire ou négatif pour une rotation dans le sens anti-horaire.
-* **Maximum motor torque** (Couple moteur maximal) : Couple maximal que l'articulation peut appliquer à la roue pour atteindre la vitesse désirée du moteur. Doit être positif.
-
-Et voici quelques paramètres supplémentaires auxquels vous pouvez accéder pendant la simulation :
-
-* **Joint translation** (Translation du joint) : La translation actuelle de la roue le long de l'axe de suspension.
-* **Joint speed** (Vitesse du joint) : La vitesse de rotation actuelle de la roue.
-* **Joint motor torque** (Couple moteur du joint) : Le couple actuel que le joint applique à la roue, il peut être inférieur au couple maximal du moteur, car il s'agit du couple nécessaire pour atteindre la vitesse cible.
-
-
-###Weld Joint
-
-Ce joint (soudure en français) est super basique, il essaye juste de coller deux objets ensemble et de les déplacer comme s'il s'agissait d'un seul objet.
-
-!!! warning
-
- Vous pouvez l'utiliser pour fabriquer des objets cassables, mais n'abusez pas ! Si presque tous les objets sont attachés par des joints souples et que de nombreux objets sont collés ou ont densités très différentes, des résultats physiquement inexacts peuvent se produire
-
-Paramètres spécifiques du joint **Weld** :
-
-* **Reference angle** : L'angle que le second objet a par rapport à l'angle du premier objet.
-
-!!! note
-
- Pour coller les objets dans l'angle qu'ils ont au moment de la création du joint, utilisez l'angle relatif entre les objets comme angle de référence : \\ `SecondObject.Angle () - FirstObject.Angle ()`
-
- * **Frequency** : Fonctionne comme la fréquence du joint **Distance**. Il déterminant la vitesse à laquelle les objets vont osciller pour atteindre la position de repos.
-* **Damping ratio** (Rapport d'amortissement) : Fonctionne comme le rapport d'amortissement du joint **Distance**, en ralentissant les objets au cours du temps.
-
-
-###Rope Joint
-
-Le joint **Rope** (corde) est autre joint simple : il fait en sorte que deux objets soient virtuellement reliés par une corde. Il en résulte qu'ils ne peuvent pas être séparés par une distance supérieure à la longueur de la corde, mais peuvent bien sûr être séparés d'une distance inférieure à celle-ci.
-
-Comme dans le joint **Pulley**, il n'y a pas du tout de corde réelle, le joint vérifie simplement la distance entre les objets et réagit si la distance est supérieure à la longueur donnée.
-
-Le seul paramètre spécifique pour le joint **Rope** est :
-
-* **Maximum length** (Longueur maximale) : La distance maximale entre les objets. Si la valeur initiale est négative, c'est la distance entre les objets au moment de la création du joint qui est utilisée.
-
-
-###Friction Joint
-
-Le joint de friction simule le frottement selon un axe Z, il ralentit la vitesse relative et/ou la vitesse angulaire entre deux objets, de manière à pouvoir simuler un frottement linéaire et/ou angulaire.
-
-!!! tip
-
- Si l'un des objets est statique, vous pouvez utiliser le joint de friction pour simuler correctement la friction dans un jeu "top-down", comme une table de billard ou des jeux de course "top-down".
-
-Paramètres du joint **Friction**
-
-* **Maximum force** (Force maximale) : La force maximale que le joint peut appliquer aux objets, des valeurs plus élevées génèrent un frottement linéaire plus important.
-* **Maximum torque** (Couple maximal) : Le couple maximal que le joint peut appliquer aux objets, des valeurs plus élevées génèrent un frottement angulaire plus élevé.
-
-
-###Motor Joint
-
-Le joint **Motor** n'a pas grand-chose à voir avec les vrais moteurs, du moins pas directement. Lorsque vous liez deux objets avec un joint **Motor**, ils essaieront d'atteindre une position cible et/ou un angle par rapport à l'autre objet, plus un décalage.
-
-Deux choses sont à prendre en compte :
-
-* Le joint n'est pas du tout rigide, les objets peuvent être éloignés de leur position ou de leur angle cible. Un facteur de correction indiquera la vitesse à laquelle ils se déplaceront et pivoteront pour atteindre la position finale.
-
-Par exemple, imaginez un sac de frappe (utilisé par les boxeurs) qui se relève toujours. Vous pouvez le simuler en utilisant un joint moteur, reliant le sol et le sac. Ainsi, quel que soit le nombre de poussées sur l'objet sac, le joint tentera de le replacer dans l'angle initial, mais pas automatiquement.
-
-* Les joints **Motor** s’arrêtent si ils rencontrent des obstacles.
-
-Revenons à l'exemple du sac de frappe : si vous le poussez avec un gros objet pour le maintenir au sol, le joint moteur ne pourra pas le repousser, comme dans la vraie vie.
-
-!!! note
-
- Notez que ce joint n'utilise pas de points d'ancrage, la position de décalage doit être définie à l'aide des décalages linéaires et angulaires uniquement. L'accès aux points d'ancrage de ce joint renvoie les positions des objets.
-
-Les paramètres spécifiques du joint **Motor** :
-
-* ** Offset X/Y ** (Décalage X / Y) : Décalage du deuxième objet par rapport au premier. Pour utiliser la position actuelle des objets au moment de créer le joint, utilisez les formules :
-
-`SecondObject.X () - FirstObject.X ()` et `SecondObject.Y () - FirstObject.Y ()`
-
-* **Offset angle** (Angle de décalage) : Décalage angulaire du deuxième objet par rapport au premier. Pour utiliser l'angle relatif des objets actuels au moment de la création du joint, utilisez la formule :
-
-`SecondObject.Angle () - FirstObject.Angle ()`
-
-* **Maximum force** (Force maximale) : Force maximale que le joint peut appliquer aux objets pour les déplacer vers la position cible. Des valeurs plus élevées déplacent les objets plus rapidement, au besoin. Si cette valeur est égale à zéro, il n'y aura pas de déplacement linéaire et les objets ne se déplaceront pas pour atteindre la position cible.
-* **Maximum torque** (Couple maximal) : Couple maximal que le joint peut appliquer aux objets pour les faire pivoter selon l'angle désiré. Des valeurs plus élevées feront tourner les objets plus rapidement, au besoin. Si cette valeur est égale à zéro, il n'y aura pas de déplacement angulaire et les objets ne pivoteront pas pour atteindre l'angle cible.
-* **Correction factor** (Facteur de correction) : Vitesse à laquelle les objets doivent se déplacer et pivoter pour atteindre la position et l'angle désirés. Plus la correction est élevée, plus les objets bougent et/ou pivotent rapidement. La correction est limitée par la quantité maximale d'effort et de couple que le joint peut utiliser.
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/behaviors/platformer.md b/docs/fr/gdevelop5/behaviors/platformer.md
deleted file mode 100644
index 79526d4f83c..00000000000
--- a/docs/fr/gdevelop5/behaviors/platformer.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: platformer
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-## Platformer and Platform object behavior
-
-The platformer behavior allow you to setup platformer character control and platforms, literally with a click of a button.
-
-### Add behavior to object
-
-To add behavior to an object, first open the object properties by right clicking on the object and select Edit object from the list. Then select behaviors and click the add behavior button.
-
-## Platform behavior
-
- By selecting the platform behavior from the list, you can turn your object in to a platform that a Platform character can walk on.
-
-After selecting, you should see immediately the Platform behavior options:
-
-
-
-### Platform type
-
-By clicking on the platform type, we can choose from 3 different platform types
-
-
-
-* **Platform:** this is the default option, by choosing this our object going to become a traditional platform which the character can collide with and walk on. * **Jumpthru platform:** by choosing this option, the character can collide with the platform and walk on it but can be jump thru from below. * **Ladder:** as it name suggest, this option turns our object in to a ladder, the character can not collide with it and can not walk on it, but able to climb up and down when overlapped.
-
-### Grab the ledge
-
-The ledge of our platform can be grabbed by default which means when the character jump close enough to the edge of the platform, the ledge can be grabbed. In case you don't need this functionality make sure this option is unticked or in case you need it, make sure the box is ticked 
-
-We can also change the offset of the grab on the Y axis  This option allow us to change the position of the grab to fit the animation of our character.
-
-## Platformer character behavior
-
-
-
-By selecting the Platformer character from the list, we can turn our object in to a Platformer character After selecting, you should see immediately the Platformer character options 
-
-You may need to scroll to see all the options.
-
-### Controls
-
-The Platformer character behaviour comes with default keys set to control the character which is arrow keys and the shift key. In case you plan to change this and you don't want to use the default controls, you need to turn the default controls off by unticking the box in the options. 
-
-### Grab the ledge
-
-Just like with the platforms we have the option also for the platformer character to allow it to grab the ledge of the platforms. But, it is disabled by default, to enable it just tick the box in the options 
-
-In case you enable this option, the character can grab the ledge of the platforms that also have this option enabled.
-
-Just like with the platforms we can set the grab offset on the Y axis also for the character. But what we can also set here is the grab tolerance on the X axis. 
-
-By changing this value, we can set how close the character need to be to the platform to be able to grab it.
-
-### Slope max angle
-
- By changing this value we can set the maximum angle of a slope where the player can still move up. It is 0 by default which means the character can move only on flat surface by default.
-
-### Speed and Gravity
-
- We can also change how fast our character accelerate, decelerate, move, fall and jump by changing the corresponding values. I believe these options are self explaining so I don't think it is require any explanation. If you want to slow the character down you can decrease these values and if you want to speed up you can increase these values.
-
-All the options here can also be changed using events at any time during the game.
-
-### Examples
-
-List of examples coming soon
-
-- custom controls
diff --git a/docs/fr/gdevelop5/behaviors/topdown.md b/docs/fr/gdevelop5/behaviors/topdown.md
deleted file mode 100644
index a81662ead30..00000000000
--- a/docs/fr/gdevelop5/behaviors/topdown.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: topdown
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-## Comportement du mouvement en vue du dessus
-
-Le comportement "Top-down Movement" permet d'avoir la fonctionalité de déplacement d'un objet dans 4 ou 8 directions.
-
-### Ajout d'un comportement à un objet
-
-Pour ajouter un comportement a un objet, tout d'abord éditez l'objet (clic droit sur l'objet) et sélectionnez l'onglet Behavior. Puis cliquez sur le **+** pour ajouter un comportement.
-
-### Comportement mouvement en vus du dessus
-
-En sélectionnant Top-down Movement dans la liste, cela ajoute la focntionalité à l'obbjet.
-
-
-
-Après avoir sélectionné ce comportement, les options s'affichent :
-
-
-
-### Changer la vitesse du déplacement et de la rotation
-
-En changeant la valeur de Acceleration ou de Deceleration et de Max speed, cela change la vitesse de déplacement de l'objet.
-
-En changeant la valeur de Rotation speed , cela change la vitesse de rotation de l'objet, si vous avez laissé Rotate object. J'expliquerai plus en détail la rotation ci-dessous.
-
-### Modifier l'angle d'orientation d'un sprite
-
-Par défaut, l'angle d'orientation de notre sprite est 0, ce qui est le côté droit de notre sprite, mais nous pouvons changer cela en changeant la valeur du décalage angulaire. Voici une image pour vous aider avec les coordonnées dans GDevelop : 
-
-### Autoriser le déplacement en diagonales
-
- Cette option est activée par défaut et nous permettons à notre objet de se déplacer également en diagonale, ce qui signifie un mouvement dans 8 directions. En désactivant cette option, nous n'autorisons pas les mouvements diagonaux et donc nous ne pouvons nous déplacer que dans 4 directions, gauche, droite, haut et bas mais pas en diagonale.
-
-### Default controls
-
- The behavior comes with default controls enabled which is the arrow keys. If we would like to use custom controls to move the object we need to disable this option by unchecking the box and after we need to use the top down movement events to move the object. 
-
-### Rotate object
-
- By default our object is rotating toward the direction of movement at the speed we specify at the Rotation speed option. If we don't want the object to rotate, we need to disable this option by unchecking the box.
-
-We can change any of these options also using events at any time during the game.
-
-### Examples
-
-List of examples coming soon
-
-- custom controls
diff --git a/docs/fr/gdevelop5/community/contribute-to-the-assets-store.md b/docs/fr/gdevelop5/community/contribute-to-the-assets-store.md
deleted file mode 100644
index 30f0f251ee8..00000000000
--- a/docs/fr/gdevelop5/community/contribute-to-the-assets-store.md
+++ /dev/null
@@ -1,215 +0,0 @@
----
-title: contribute-to-the-assets-store
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-*(remove this paragraph once the translation is finished)*
-
-# Contributing to the assets store
-
-GDevelop's documentation is powered by the community and everyone is encouraged to contribute. In particular, you can help building the assets store with royalty free/public domain resources that can be used by everyone for any kind of project.
-
-This page provides a few guidelines to help maintain the quality of the assets store.
-
-L'idée principal est que les assets (ressources) soient groupé dans les dossiers et sous-dossiers. Images, audio et fonts (polices d'écriture) doivent avoir un nom en Anglais pour être affiché à l'utilisateur. Un objet sera généré en focntion des noms des images.
-
-!!! note
-
- Notez que les tilesheets **ne sont pas supporté**! Chaque images d'une animation doit être un fichier unique (en utilisaant les régles de nommage ci-dessous il sera possible de créer une animation. Il est également recommandé que toutes les images d'une animation aient les même dimensions. (avec des marges transparente au besoin), car il n'est pas possible de spécifié de point d'origine d'une image.
-
-## For images (to make sprite, tiled sprite or panel sprite objects):
-
-Each image will be used to create an object. For sprites, more than one image can be used to create a single object, by following the rules described below.
-
-- By default, an image will be used to create a **Sprite** object.
-
-1. The **name of the file**, without the extension, will be used for the object name.
-
-!!! note
-
- For example, an image called "Spaceship.png" will create a Sprite object called "Spaceship", with this image as the first animation.
-
-1. If the object is **animated**, use different image files with the **same base name**, and add an underscore followed by the image index: `Spaceship_1.png`, `Spaceship_2.png`, `Spaceship_3.png`.
-
-
-
-1. If the object has **multiple animations**, you can add the name of the animation between the *base name* and the index.
-
-
-
- Spaceship_flying_1.png
- Spaceship_flying_2.png
- Spaceship_flying_3.png
- Spaceship_1.png
- Spaceship_idle.png
- Spaceship_damaged_1.png
- Spaceship_damaged_2.png
-
-!!! note
-
- Will create an object with three animations: Flying (3 images), Idle (1 image), Damaged (2 images)
-
-1. To specify the **speed of the animations and if they are looping**, create a file with the **same base name** suffixed by `_METADATA.json`.
-
-
-
- For example: `Spaceship_METADATA.json`.
-
- Inside, put this JSON:
-
- {
- "timeBetweenFrames": 0.2,
- "loop": false
- }
-
-For example:
-
-
-
-- If you have **multiple animations** and **each must have a different speed**, you can create one .json file per animation, using this name: `basename_animationname_METADATA.json`.
-
-For example:
-
- Spaceship_Idle_METADATA.json
- Spaceship_Flying_METADATA.json
- Spaceship_Destroyed_METADATA.json
- ...
-
-- If you want to create a **Tiled sprite** (for backgrounds or repeating patterns):
-
-1. Prefix the *base name* by `tiled_`. For example: `tiled_Grass Background.png`
-
-- If your image is a **9 patch**, that can be stretched with the center and the border repeated:
-
-1. Slice your image in 9 different images, and name them: `9patch_base name_gravity.png` with gravity being: `southwest`, `southeast`, `south`, `northwest`, `northeast`, `north`, `west` and `east`.
-
-For example:
-
- 9patch_Orange leaves_center.png
- 9patch_Orange leaves_east.png
- 9patch_Orange leaves_north.png
- 9patch_Orange leaves_northeast.png
- 9patch_Orange leaves_northwest.png
- 9patch_Orange leaves_south.png
- 9patch_Orange leaves_southeast.png
- 9patch_Orange leaves_southwest.png
- 9patch_Orange leaves_west.png
-
-## Organizing the assets with tags
-
-Put all your images in a folder. In this folder, create a file called `TAGS.md`. In this file, put the tags of the assets, separated by a comma. Put at least a tag `top-down`, `side view` or `interface`.
-
-For example:
-
- side view, pirate, ship, sea
-
-You can put your images in different sub folders. Each sub folder will be used as a tag name. Some folders names like "PNG", "SVG", etc... will be ignored (so don't change the whole structure of your assets, we'll ignore anything that does not make sense).
-
-Note that you can also put assets in a folder called `Unimplemented` or `TODO`, and these folders will be entirely ignored.
-
-## For audio
-
-Put your .aac or .wav files (prefer .aac) directly in a folder, with the name to be displayed: `Laser effect.aac`, `Background music.aac`.
-
-!!! note
-
- 🚨 Careful about the size! Players are sensitive to the size of a game download (especially on mobile and on the web). **Try to keep music file sizes around 1 to 2 MB. In rare cases, these can be 4 or 5 MB, but not larger.** Consider downgrading the quality a bit to keep the music files around these sizes. Sound effects are usually even smaller. If a sound file is larger than 200 or 300 KB, consider downgrading the quality.
-
-`TAGS.md` files will work like for images. Sub folders are also used for tags as described for images.
-
-A great tool to convert audio files to AAC format is \[fre:ac\](). fre:ac is free, open-source, and cross-platform. It can process batches of files, with many options on how they are named and put into folders.
-
-- Choose the encoder called "Fraunhofer FDK AAC Encoder".
-- Select "File format \> AAC"
-- Select "Quality \> Set Quality \> 3"
-
-This will create high-quality audio files, but using a variable bit rate that won't exceed 96 kbps (assuming stereo input).
-
-
-
-
-
-## For fonts
-
-Like images and audio, put your fonts in folders. `.ttf` and `.otf` files are supported.
-
-`TAGS.md` files will work like for images. Sub folders are also used for tags as described for images.
-
-## (⚠️ Advanced!) To make an object from scratch, for example particle emitters
-
-!!! note
-
- These assets from scratch are a bit cumbersome to author right now. Here is an example folder that shows how the particle emitter objects from Wishforge Games are done: \[Particles.zip\]()
-
-Create an file with extension `.asset.json`, for example: `My Particle Effect.asset.json`. The format of this asset is:
-
- {
- "id": "",
- "name": "",
- "authors": [""],
- "license": "",
- "shortDescription": "",
- "description": "Enter a description. Leave the rest empty, it will be autogenerated",
- "previewImageUrls": [],
- "tags": [],
- "objectAssets": [
- {
- "object": { ...JSON CONTENT OF AN OBJECT... },
- "resources": [ ],
- "customization": []
- }
- ],
- "gdevelopVersion": "",
- "version": ""
- }
-
-Leave almost everything empty. Create your object in GDevelop, then copy it in the clipboard. Paste the content in a file, and then copy just the "content.object" key:
-
-For example:
-
-
-
-Paste it inside the `.asset.json` file you created, replacing `...JSON CONTENT OF AN OBJECT...`: 
-
-Finally, if your object uses image resources, make sure to add them in the `resources` array: 
-
-Put all images with the name that you put in the `resources` array next to your `.asset.json` file.
-
-Finally, add:
-
-- a file with the same name but with the extension `.preview.png` that will be shown in the assets store - an empty filed called `IGNORED_FOR_IMAGE_ASSETS.md` so that the importer will ignore the images and won't try to create objects automatically :)
-
-For example:
-
-
-
-## I have too many assets and this will take me a long time to organize everything! How can I do?
-
-That's the reason why we're making an asset store: there are lots of assets available or that could be made available, but most are hidden on different websites, and not ready to use. By taking the time to prepare them for GDevelop, we're making a **high quality** asset store of objects ready to use. This implies taking a bit of time to prepare these assets - which should hopefully be not too much considering that we use a naming convention with filenames.
-
-!!! note
-
- In particular, you should be able to quickly rename a bunch of files by opening the folder in the Windows/Linux/macOS file explorer, ensuring you have a preview of each file and then with your keyboard and some shortcuts (F2 to rename on Windows, Enter on macOS...) rename quickly each file with a proper name.
-
-In the case where it's too painful/long to do because you have **tons** of objects (for example, you have separated a spritesheet of 200 RPG objects), it's ok to select all the files and rename them to something like `Generic RPG object (1).png`, `Generic RPG object (2).png`, etc...
-
-!!! note
-
- Be sure **not** to use an underscore to separate the name from the number, otherwise the asset importer will consider that it's a single object with multiple animations. In other words, **don't name the files** like `Generic RPG object_1.png`, etc...
-
-Finally, be sure to put a `TAGS.md` file with enough tags for people to be able to search for these assets. 👍
-
-## License
-
-Put a license.txt file in your folder. The importing will recognize it and apply to all files in the folder. Make sure to put your name in this license file too (or the name of the original author). The importer will be adapted to understand the license file.
-
-!!! note
-
- We won't allow the addition of any assets with an unclear license. Get in touch with the author if the license is unclear or if you worried that the author would not allow redistribution of their original assets. All assets must have a license allowing their usage for free for any purpose, allow modifications/derived work and may optionally ask for attribution.
-
-## Something unclear?
-
-Ask a question on [this Trello board](https://trello.com/c/s8RctC9M/2-asset-rules-and-regulations) card. If the rules here are too complicated or are giving you too much work, you can suggest a new rule and we'll see if we can adapt the importer so that it can understand your asset structure. The goal is to make objects more or less automatically!
-
-## How to send my assets when they are ready?
-
-Zip the folder containing them and send them to the GDevelop team on Github by opening an [issue here](https://github.com/4ian/GDevelop/issues/new/choose). You can also tag `@florianrival` and `@bouh2` on a card on the [GDevelop Assets Trello board](https://trello.com/b/xoOCKFOf/gdevelop-assets). It's a good idea to get in touch with people on the Trello board to have them review your assets first.
diff --git a/docs/fr/gdevelop5/events/draft-optimization.md b/docs/fr/gdevelop5/events/draft-optimization.md
deleted file mode 100644
index fe3dc396296..00000000000
--- a/docs/fr/gdevelop5/events/draft-optimization.md
+++ /dev/null
@@ -1,102 +0,0 @@
----
-title: draft-optimization
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-*(remove this paragraph once the translation is finished)*
-
-!!! note
-
- This page is a draft for good rule to apply for optimize a game. \This is a draft in progress @Bouh
-
-L'optimisation d'un jeu est un concept important à prendre en compte, ceci pour faire gagne quelques images par secondes et des temps de chargement moins long. Une bonne optimisation permettra à votre jeux de tourné plus rapidement sur n'importe quel support (téléphone ou pc).
-
-GDevelop 5 permet une liberté dans les événements qui peut se retourné contre vous en cas de mauvaises pratiques ou compréhension des événements, mais également d'une mauvaise utilisation des comportements et de la tailles énorme sur les ressources importé (vidéo, image, audio).
-
-Tout celà peut être coûteux pour votre jeux et aura comme effets de ralentir votre jeux sur les appareils n'ayant pas énormément de mémoire et de puissance.
-
-Pour la suite de cet article il est important de comprendre [les principes de base des événements](/fr/gdevelop5/tutorials/basic-game-making-concepts##comment_les_evenements_affectent_les_objets) et que *tout les événements sont exécuté une fois par image durant l’exécution du jeux*.
-
-# Optimisation déjà présente dans le moteur du jeu
-
-Le moteur de jeu GDevelop dispose d'une optimisation très simple, il dit à l'interface graphique de ne pas calculé les images des objets hors de la zone de rendu. Le moteur s'occupe de cette optimisation en tache de fond et est complètement transparent pour les utilisateurs et joueurs.
-
-Dans la suite de cette page sur l'optimisation nous allons prendre quelque cas et voir comment les rendre plus performant.
-
-# Trigger once
-
-La condition **Tigger once** permet à des actions d'être éxécuté une seule fois, chaque fois que la ou les conditions sont vrais.
-
-Prenons un exemple où nous voulons créer un objet chaque fois que je clique sur la souris. Ceci vous montrera la mauvaise et la bonne façon de le faire.
-
-La mauvaise: 
-
-- Ce que je pense avoir : Lorsque le bouton gauche de la souris est pressé, un objet appelé **MyObject** est créer sur la scène aux position du curseur.
-- Ce qui se passe vraiment : Lorsque le bouton gauche de la souris est pressé, beaucoup d'objets appelé **MyObject** sont créer sur la scène à la position du curseur.
-
-Cela se produit lorsque le bouton de la souris est enfoncé car la pression sur la touche dure un certain temps, durant tout ce temps des objets seront créés.
-
-Pour corrigé ceci nous avons besoin de **Trigger once** qui se trouve dans les conditions, ajoutons le à nos événements pour n'avoir qu'un seul nouvel objet. 
-
-# Sprites
-
-Les sprites ont deux aspects important, leur poids en Ko, Mo, Go et les dimensions en pixels. Il est naturel d'avoir un niveau de jeux gigantesque et d'y mettre une image de fond comme un ciel par exemple sur la totalité du niveau. Evidemment ceci n'est pas conseillé car si cela est naturel pour vous ça ne l'est pas pour le moteur de jeu et les appareils sur lesquels tournera votre jeu.
-
-Notamment à cause des images dépassant 2048 pixels de côté. Les images lourde en poids quand à elle ralentirons les temps de chargement.
-
-!!! note
-
- **Pourquoi il ne faut pas dépasser 2048 pixels de côté ?**
-
- Les images plus grande peuvent ne pas s'afficher correctement sur certains téléphones. Sachez aussi que plus une image est grande, plus elle prendra de la place en mémoire, se qui est important à prendre en compte car les téléphones ne sont pas aussi performant qu'un ordinateur.
-
-Il est recommandé de découper les images dépassant cette taille. Il existe aussi [un type d'objet permettant de répété votre image](/fr/gdevelop5/objects/tiled_sprite) sur de longue distance.
-
-# Animations
-
-Les animations sont par exemple utilisé lorsque le personnage de votre jeu se déplace. Plus il y a d'images dans l'animation plus le mouvement est fluide. Toute fois l’œil humain ne nécessite pas d'avoir des dizaines et des dizaines d'images pour avoir un mouvement fluide, donc il est bon de retiré les images similaire qui n'auront visuellement aucun impact sur votre animation.
-
-Il existe aussi des limitations technique possible, comme le fait d'avoir un maximum d'image par seconde dans le jeu. Dans ce cas si votre jeux tourne à 30fps, vous n'avez pas besoin de 60 images.
-
-Ceci est encore plus vrais si vos images sont de très grande en taille. En un mot, réduisez le nombre d'images au strict nécessaire.
-
-# Vidéo
-
-Les vidéos doivent impérativement respecté quelques points pour être charger et lue correctement. Assurez vous de [lire les notes en haut de la page à ce sujet](/gdevelop5/objects/video), toutes les indications vous permettront d'avoir une optimisation optimal pour la vidéo.
-
-# Audio
-
-L'audio contient une particularité, les sons et les musiques sont deux choses différentes pour le moteur de jeu. Ceci permet une optimisation différente selon le type.
-
-- Une musique est souvent longue et doit être préchargé avant d'être lue. - Un son est bref, comme un son de rebond sur le sol, celui-ci est si bref qu'il peut être chargé rapidement sans retard de lecture juste avant sont exécution par une action.
-
-Une page complète pour [l'audio](/gdevelop5/all-features/audio#performance_considerations) est disponible et indiquera les meilleurs solution.
-
-!!! note
-
- It can still be important to hide or disable what you don't need. This is the key of the optimization.
-
-# Les comportements
-
-Les comportements *Recherche de chemin* et *Physique 2.0* sont gourmand en puissance.
-
-### Supprimer les objets inutile
-
-Prenons un exemple d'un pistolet qui tire des balles, nous créons une balle lorsque nous faisons feu. La balle se dirige vers une direction grâce à une force. A chaque tir une nouvelle balle apparaît et se dirige aussi vers une direction grâce à une autre force qui lui est propre.
-
-Si vous ne géré pas les objets que vous créez, le jeux sera à un moment débordé par le nombre d'objet, ceci affectera votre jeu car celui-ci commencera à ralentir.
-
-La bonne solution consiste à supprimer les balles qui sont hors de l'écran. Un comportement à cet effet existe, vous pouvez l'attaché à votre objet balle. Toutes les balles qui seront hors de l'écran seront immédiatement supprimé.
-
-### Désactiver les comportement sur les objets inutilisé
-
-Les comportements sur les objets peuvent être désactivé.
-
-Prenons un cas où votre jeux contient une centaines d'objet qui sont des gardiens de police et un autre objet qui est le joueur, vous souhaitez que les gardiens se dirigent vers vous toutes les 2 secondes en prenant compte des obstacles autour. Les gardiens disposent du comportement Recherche de chemin qui est rappelez vous, est gourmand en puissance et peut ralentir votre jeu si celui si est mal utilisé.
-
-La mauvaise façon de bouger les gardiens:
-
--- Image avec le timer , et les gardiens qui bougent vers le joueur.-
-
-Si vous faite seulement ceci tout les gardiens même ceux hors de l'écran bougerons. Nous ne voulons pas qu'ils bougent. Voyons comment limité le comportement des gardiens à ceux qui sont proche du joueur.
-
--- Image avec la désactivation du comportement pour le gardien en dehors de l'écran (prendre la condition object dans le viewport et l'inversé, mettre aussi le trigger once sur l'event) .-
diff --git a/docs/fr/gdevelop5/events/index.md b/docs/fr/gdevelop5/events/index.md
deleted file mode 100644
index 89b68621470..00000000000
--- a/docs/fr/gdevelop5/events/index.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: Événements
----
-# Événements
-
-Les événements dans GDevelop vous permettent de programmer visuellement votre jeu sans aucune connaissance de programmation et sans expérience requise, donc n'importe qui est capable de créer le gameplay qu'il souhaite et permettre aux joueurs d'interagir avec le jeu.
-
-#### Types d'événements
-
-Il existe différents types d'événements dans GDevelop qui peuvent être utilisés à différentes fins:
-
- * **standard event**: cet événement est déclenché à toutes les images et exécute les actions une fois que la condition est vraie puis passe à l'événement suivant.
- * **for each event:** cet événement est déclenché pour chaque instance de l'objet sélectionné, vérifiez les conditions et exécutez les actions pour chaque instance avant de passer à l'événement suivant.
- * **repeat event:** cet événement est répété le nombre de fois spécifié avant de passer à l'événement suivant.
- * **while event:** cet événement se répète continuellement tant que les conditions spécifiées sont remplies et ne passe à l'événement suivant qu'après la condition si cet événement n'est plus vrai.
- * **sub-event:** (Événement enfant) cet événement peut être ajouté en tant qu'enfant à tout événement mentionné ci-dessus et ne peut être déclenché qu'après l'exécution de l'événement parent.
- * **Javascript event:** cet événement vous permet d'utiliser le code Javascript avec d'autres événements
- * **External event:** cet événement vous permet de stocker un ensemble d'événements en externe, de les appeler et de les exécuter, n'importe où, n'importe quand et ceci un nombre illimité de fois.
- * **Link:** il vous permet d'appeler un événement externe spécifié
-
-#### Ajouter des événements
-Pour ajouter des événements à notre jeu, nous devons d'abord passer à l'éditeur d'événements. Nous pouvons le faire en utilisant l'onglet Events à côté de notre onglet Scene.
-
-
-Après cela, nous pouvons trouver les outils en haut de la page pour ajouter des événements.
-
-Comme les événements standards et les sous-événements sont les plus utilisés, nous avons un bouton rapide à utiliser en haut.
-Pour ajouter un événement standard, nous pouvons utiliser le bouton Ajouter un événement
-
-Pour ajouter des sous-événements, il faut d'abord sélectionner un événement dans l'éditeur, puis cliquer sur le bouton Add sub-event
-
-Vous pouvez trouver toutes les options disponibles en cliquant sur l'icône plus
-
-
-#### Ajouter des conditions et Actions
-Après avoir ajouté un événement, nous allons trouver un événement vide dans notre éditeur
-
-
-Nous pouvons ajouter un nombre illimité de conditions et d'actions à chaque événement.
-Pour ajouter des conditions et des actions, nous devons cliquer sur Add condition et Add action à l'intérieur de l'événement, puis nous pouvons choisir parmi de nombreuses options triées dans différentes catégories.
-
-Pour en savoir plus sur l'utilisation des différentes conditions et actions, je vous recommande de lire les tutoriels et guides disponibles sur le wiki: [tutorials](/gdevelop5/tutorials)
diff --git a/docs/fr/gdevelop5/extensions/best-practices.md b/docs/fr/gdevelop5/extensions/best-practices.md
deleted file mode 100644
index 2a02e123658..00000000000
--- a/docs/fr/gdevelop5/extensions/best-practices.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Conventions d'écriture d'extensions
----
-# Conventions d'écriture d'extensions
-
-Cette page recense les conventions pour les extensions [partageable avec la communauté](/gdevelop5/extensions/share):
-
-* **Évènements:**
- * Toutes les **noms de variables** doivent commencer avec `__NomDeLExtension_`. Ceci est nécessaire pour ne pas avoir de nom en conflit avec les variables des utilisateurs. Dans le futur, les extension auront peut être des variables à part, mais c'est pour le moment nécessaire.
- * Les noms d'actions, conditions et expressions doivent être écrit avec la `PascalCase` et en anglais.
- * Les expressions ne doivent pas commencer en `Get`, vu qu'une expression est toujours un moyen d'obtenir quelque chose et que c'est donc inutile a préciser.
-
-* **Descriptions:**
- * Toutes les descriptions doivent être écrites en anglais. **N'utilisez pas d'abréviations**. Les phrases affichées dans les événements en particulier doivent être claires.
- * Décrivez en détail comment les comportent doivent être utilisés.
- * Pour les descriptions longues d'extensions, veuillez utiliser les tables en format Markdown, et entourer les noms de conditions, actions, expressions et comportements avec ` pour les afficher avec une fonte spéciale.
-
-* **Compatibilité**:
- * Si l'extension utilise des fonctionnalitées qui dépendent de la plateforme, et non des actions inter-plateformes de GDevelop, veuillez tester l'extension sur toutes les plateformes. Il est important qu'elles fonctionnent partout.
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/extensions/index.md b/docs/fr/gdevelop5/extensions/index.md
deleted file mode 100644
index 5ccb9bbf3ca..00000000000
--- a/docs/fr/gdevelop5/extensions/index.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: Extensions
----
-# Extensions
-
-GDevelop est fondamentalement flexible. Le coeur de GDevelop contient le strict minimum, et chaque fonctionnalité de GDevelop est contenue dans une extension. Les extensions contiennent des [Objets](/fr/gdevelop5/objects), des [Comportements](/fr/gdevelop5/behaviors), des Actions, des Conditions, des Expressions, des Effets et des [Événements](/fr/gdevelop5/events).
-
-En plus de pouvoir accéder aux extension intégrées, tu as accès à pleins d'extensions faites par la communauté. Tu peux aussi créer tes propres extensions avec des [Comportements](/fr/gdevelop5/behaviors), des Actions, des Conditions et des Expressions dans tes projets, les réutiliser dans d'autres projets et les partager.
-
-Pour en savoir plus:
-
-* [Trouver de nouvelles extensions](/gdevelop5/extensions/search)
-* [Créer ses extensions](/gdevelop5/extensions/create)
-* [Partager ses extensions](/gdevelop5/extensions/share)
-* [Étendre GDevelop avec du JavaScript ou C++](/gdevelop5/extensions/extend-gdevelop)
-
-
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/extensions/search.md b/docs/fr/gdevelop5/extensions/search.md
deleted file mode 100644
index 6e5a3fb893e..00000000000
--- a/docs/fr/gdevelop5/extensions/search.md
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: Recherche de nouvelles extensions
----
-# Recherche de nouvelles extensions
-
-!!! tip
-
- **Voir la [liste des extensions GDevelop](/gdevelop5/extensions)**.
-
-Trouver de **nouveaux comportements, conditions, actions ou expressions** pour votre jeu dans GDevelop est facile. Dans le [Project Manager](/gdevelop5/interface/project-manager), clique sur "Functions/Behaviors", puis sur "Search for new extensions" :
-
-
-
-Un dialogue montrera une barre de recherche et une liste d'extensions disponibles :
-
-
-
-
-Tapez quelque chose dans la barre de recherche pour filtrer les extensions en fonction de ce que vous souhaitez. Vous pouvez également explorer les extensions en cliquant sur les balises situées sous la barre de recherche.
-!!! tip
-
-
- Ou vous pouvez importer un fichier d'extension avec le bouton **Importer une extension**.
-
-Les extensions sont présentées avec leur nom, suivi d'une courte description. Cela devrait vous donner une idée de ce que l'extension peut faire dans votre jeu.
-
-## Installer une extension
-
-Si vous trouvez une extension intéressante, cliquez dessus pour ouvrir une fenêtre avec plus de détails. Par exemple, voici un aperçu de l'extension "Flash (blink)" :
-
-
-
-La description explique généralement comment utiliser l'extension. Ici, c'est un comportement que vous pouvez ajouter à un objet, avec une action pour faire clignoter l'objet pendant un certain temps (comme dans un vieux jeu de plateforme, quand vous êtes touché par un ennemi).
-
-Cliquez sur **Installer dans le projet** pour télécharger l'extension. Vous pouvez voir qu'elle est alors ajoutée à la liste des comportements/fonctions dans le [Project Manager](/gdevelop5/interface/project-manager) :
-
-
-
-## Utiliser la nouvelle extension
-
-Une fois que l'extension est installée, vous pouvez généralement :
-
-* Trouvez-là dans la liste des **comportements**, lorsque [adding a new behavior](/gdevelop5/behaviors)à un objet.
-* Même si aucun comportement n'est fourni, vous aurez quelques **actions ou conditions**. Trouvez-les dans la liste des actions ou des conditions lorsque vous éditez un événement. Le nom de la catégorie qui les contient est le même que celui de l'extension.
-
-Par exemple, l'extension *Flash* fournit 2 nouvelles actions :
-
-
-
-Elles peuvent être utilisées sur les objets qui ont le comportement *Flash* attaché.
-
-## Créer vos propres comportements, actions, conditions ou expressions
-
-Il est possible de créer facilement de nouvelles extensions, en utilisant les mêmes événements que ceux que vous utilisez dans les scènes. C'est une fonctionnalité puissante qui vous permet d'organiser votre jeu et d'étendre vos objets.
-
-Lisez plus sur [créer vos propres extensions ici](/gdevelop5/extensions/create).
-
-# Ajouter une extension manuellement
-
-Dans le panneau de recherche de nouvelles extensions, en bas du panneau vous avez un bouton **IMPORTER UNE EXTENSION**, cela ouvrira un sélecteur de fichier de votre OS, vous devez sélectionner un format de fichier **.json**.
-
-Une fois que vous avez sélectionné votre fichier et confirmé votre choix dans le sélecteur de fichiers, l'extension est ajoutée à votre projet.
-Les comportements/conditions/actions/expressions sont maintenant disponibles dans GDevelop avec les autres comportements ou événements.
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/getting_started/index.md b/docs/fr/gdevelop5/getting_started/index.md
deleted file mode 100644
index 90970e4634d..00000000000
--- a/docs/fr/gdevelop5/getting_started/index.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: Débuter
----
-# Débuter
-
-## Essayez GDevelop en ligne ou téléchargez la version bureau.
-
-* Pour commencer, [essayez GDevelop en ligne](https://4ian.github.io/GD).
-* Pour créer votre propre jeu, le sauvegarder et le publier, [Téléchargez la version bureau](http://compilgames.net/#download).
-
-Lorsque GDevelop est téléchargé, ouvrez-le et installez-le, puis utilisez l'icône GDevelop sur votre bureau pour le lancer.
-Une fois l'application lancée, vous allez voir apparaître la page d'accueil sur laquelle vous pouvez ouvrir un projet existant ou en créer un nouveau.
-
-
-
-#### Ouvrir un projet existant
-
-Pour ouvrir un projet existant, sélectionnez l'option appropriée sur la page d'accueil.
-Ensuite, vous devez parcourir votre explorateur de fichiers pour ouvrir un projet. Les fichiers de projet GDevelop 5 sont normalement sauvegardés en tant que fichier ".json". Trouvez-le et sélectionnez-le pour l'ouvrir.
-
-
-!!! warning
-
- L'icône de ce fichier dépend de l'application par défaut installée sur votre ordinateur pour éditer ce fichier.
-
-!!! note
-
- Par défaut le fichier game.json est sauvegardé dans :
-
- * Windows: C:\Users\MonNomUtilisateur\GDevelop Projects,
- * macOS et Linux: Le dossier GDevelop Projects dans le dossier home.
-
-
-
-Une fois que vous avez ouvert le projet, vous devriez être face à l'éditeur mais nous y reviendrons plus tard, nous allons d'abord voir comment créer un nouveau projet.
-
-**Note:** Utilisateurs de GDevelop 4, vous pouvez [apprendre en cliquant ici comment transférer un projet vers GDevelop 5](/fr/gdevelop5/getting_started/open-gdevelop-4-project).
-
-!!! tip
-
- GDevelop 4 est obsolète, veuillez utiliser GDevelop 5 si vous êtes un débutant.
-#### Créer un nouveau projet
-Pour créer un nouveau projet, sélectionnez l'option appropriée sur la page d'accueil.
-
-Dans la fenêtre suivante, vous pouvez choisir parmi les modèles ou créer un projet vierge. Un modèle inclut déjà quelques ressources et des événements pour vous aider à démarrer.
-
-Un projet vierge n'inclus rien, vous devrez donc commencer à partir de zéro.
-
-
-Puisque le but de cette page est de vous permettre de commencer à utiliser GDevelop, choisissez "créer un projet vierge".
-Tout d'abord, sélectionnez l'emplacement où vous souhaitez stocker votre nouveau projet. Comme vous pouvez le constater, un emplacement par défaut est déjà défini pour vous au bas de cette page.
-
-Si vous souhaitez sélectionner un autre emplacement, cliquez sur le bouton "Choisir le dossier" à côté :
-
-Ensuite, parcourez avec l'explorateur de fichiers de votre ordinateur pour sélectionner un dossier dans lequel stocker votre projet.
-
-Une fois que vous avez sélectionné un dossier ou décidé de conserver l'emplacement par défaut, cliquez simplement sur le bouton "Empty game" pour créer un projet vide.
-
-
-Ensuite, vous devriez voir l'éditeur créer un projet vierge ou ouvrir le modèle de votre choix.
-
-#### En savoir plus
-
-Pour de plus amples informations sur la façon d'utiliser GDevelop, vous pouvez visiter les pages suivantes où tout est expliqué plus en détail:
-
- * [interface](/fr/gdevelop5/interface)
- * [objects](/fr/gdevelop5/objects)
- * [behaviors](/fr/gdevelop5/behaviors)
-
-
-#### Tutoriels
-
-Vous pouvez également trouver des tutoriels sur le wiki:
-
- * [tutorials](/fr/gdevelop5/tutorials)
-
-#### Exemples
-
-Vous trouverez sur le site ci-dessous divers exemples et modèles pour vous permettre de commencer à fabriquer vos propres jeux à partir de zéro:
-
- * [gametemplates.itch.io](https://gametemplates.itch.io/)
-
-
-➡️ Suite **[Découvrir l'interface](/fr/gdevelop5/interface)** !
-
diff --git a/docs/fr/gdevelop5/getting_started/open-gdevelop-4-project.md b/docs/fr/gdevelop5/getting_started/open-gdevelop-4-project.md
deleted file mode 100644
index 06e8762cc37..00000000000
--- a/docs/fr/gdevelop5/getting_started/open-gdevelop-4-project.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Ouvrir un jeu réalisé avec GDevelop 4
----
-# Ouvrir un jeu réalisé avec GDevelop 4
-
-GDevelop 5 est basé sur le même moteur que GDevelop 4 et les jeux sont compatibles. Vous devez quand même vous assurer de certain points :
-
-* Votre jeu GDevelop 4 est basé sur la **plateforme HTML5**. Les jeux natifs ne sont pas supportés pour l'instant par GDevelop 5. * Quelques **extensions/fonctionnalités** ne sont toujours pas prises en charge dans GDevelop 5.
-
-Pour ouvrir votre jeu avec GDevelop 5, ouvrez-le avec GDevelop 4 et enregistrez-le dans un fichier json :
-
-* Dans le menu ruban, sélectionnez **File \> Save as...**. * Choisissez un dossier, puis entrez un nom de fichier en terminant par **.json**. Par exemple:
-
-
-
-Cliquez sur Save. Vous pouvez maintenant ouvrir ce fichier avec GDevelop 5..
-
-Assurez-vous de **vérifier que tout fonctionne** avant de continuer à créer votre jeu avec GDevelop 5.
diff --git a/docs/fr/gdevelop5/index.md b/docs/fr/gdevelop5/index.md
deleted file mode 100644
index 43543de8835..00000000000
--- a/docs/fr/gdevelop5/index.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Documentation GDevelop 5
----
-# Documentation GDevelop 5
-
-GDevelop est un outil de création de jeux gratuit, open-source et multiplateforme que tout le monde peut utiliser pour créer des jeux sans connaissances en programmation. Ce wiki contient tout ce que vous devez savoir pour créer des jeux avec GDevelop - même si vous n'avez jamais créé de jeu auparavant.
-
-
-
-## Etapes suivantes
-
-* Si vous n'avez pas installé GDevelop, lisez le [guide de démarrage](/fr/gdevelop5/getting_started).
-* Si vous n'avez jamais créé de jeu auparavant, lisez le [guide Concepts de base](/fr/gdevelop5/tutorials/basic-game-making-concepts) de la création de jeux.
-* Si vous êtes prêt à commencer à créer un jeu, [parcourez les tutoriels](/fr/gdevelop5/tutorials).
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/interface/debugger/index.md b/docs/fr/gdevelop5/interface/debugger/index.md
deleted file mode 100644
index 743b8e5e612..00000000000
--- a/docs/fr/gdevelop5/interface/debugger/index.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: Débogueur de jeu et Profiler
----
-# Débogueur de jeu et Profiler
-
-Le * débogueur * est un outil qui vous permet d'inspecter le contenu de votre jeu, en particulier les variables (variables globales, variables de scène et variables d'instances d'objets) et les instances vivant dans les scènes de votre jeu.
-Vous pouvez mettre le jeu en pause à tout moment. C'est une excellente façon de comprendre pourquoi quelque chose ne fonctionne pas comme prévu ou de faire des tests rapides dans le jeu.
-
-Le * profiler * est un outil qui mesure le temps passé dans différentes parties du moteur pendant que votre jeu est en cours d'exécution. Il aide à trouver des goulets d'étranglement ou des événements qui pourraient prendre beaucoup de ressources dans votre jeu. [En savoir plus sur l'utilisation du profileur ici!](/fr/gdevelop5/interface/debugger/profile-your-game)
-
-!!! note
-
-
- Ceci est une fonctionnalité avancée de GDevelop. Si vous l'utilisez, nous aimerions que vous montriez votre soutien pour GDevelop par [abonnement payant](/fr/gdevelop5/interface/profile)!
-
-
-
-
-## Lancer le débogueur
-
-Pour lancer le débogueur, dans la barre d'outils d'un éditeur de scène, cliquez sur l'icône "Debug":
-
-
-
-Dans le menu, choisissez "Aperçu avec débogueur et profileur de performances".
-Cela ouvrira un nouvel onglet appelé "Débogueur" et lancera également un aperçu de votre jeu comme d'habitude.
-
-Notez que même si vous fermez l'aperçu, vous pouvez laisser l'onglet débogueur ouvert. De cette façon, tout aperçu que vous lancez (avec le bouton Aperçu habituel) sera connecté au débogueur.
-
-Lorsque le jeu est lancé, le débogueur est vide:
-
-
-
-Cliquez sur ** "Actualiser" ** à tout moment pour récupérer les données du jeu.
-
-
-
-Vous pouvez également utiliser le bouton **Pause** dans la barre d'outils.
-
-## Inspecter les scènes du jeu
-
-Les scènes actuellement en cours sont listées sous l'élément Scenes de la liste:
-
-
-
-Si vous cliquez sur un nom de scène, vous verrez à droite l'inspecteur de cette scène. Cet inspecteur contient la couche de la scène et un bouton pour créer une nouvelle instance d'un objet sur la scène.
-
-
-### Créer une nouvelle instance de la scène
-
-Pour créer une nouvelle instance, cliquez sur le nom de la scène où vous souhaitez créer l'instance.
-Écrivez le nom de l'objet et cliquez sur Créer:
-
-
-
-L'instance sera créée à la position 0; 0, sur la couche de base avec l'ordre Z 0.
-Vous pouvez alors le trouver dans la liste des instances et changer sa position, son angle, sa couche ...
-
-## Inspecter et éditer les instances
-
-Dans la liste, vous pouvez trouver **Instances** de chaque scène en cours d'exécution.
-Les instances sont regroupées par nom d'objet. Cliquez sur un nom d'objet pour voir la liste des occurrences de cet objet vivant sur la scène. Cliquez sur un numéro d'instance (chaque instance a un numéro unique) pour l'inspecter:
-
-
-L'inspecteur affiche les propriétés générales de l'instance, par exemple la position, la rotation, la couche ... Pour chacune de ces propriétés, vous pouvez ** les modifier en cliquant sur la valeur **:
-
-
-
-
-Validez vos modifications en cliquant sur le petit bouton **valider** (celui avec l'icône en forme de coche).
-
-Vous pouvez également voir les ** variables de l'instance ** et les modifier (voir ci-dessous pour plus d'informations sur les variables).
-
-## Inspecter et éditer les variables
-
-Vous pouvez inspecter des variables du jeu (variables globales), d'une scène (variables de scène) ou d'une instance particulière d'un objet (variables d'instance).
-
-Pour ce faire, dans la liste, cliquez sur ** Variables globales **, **Variables de scène** ou le numéro d'instance que vous souhaitez inspecter.
-
-Les variables seront affichées dans une liste affichant le nom et les valeurs de la variable (un nombre ou un texte). Voici un exemple d'instance d'un objet ayant une variable "Life":
-
-
-
-Comme les autres champs, vous pouvez **cliquer sur la valeur de la variable** pour la modifier. C'est un bon moyen de voir comment votre jeu se comporte en fonction de la valeur des variables et de vérifier que vos événements fonctionnent correctement.
-
-Les variables peuvent également être des ** structures **, ce qui signifie qu'elles contiennent d'autres variables. Dans ce cas, au lieu de voir la valeur (nombre ou texte) de la variable, vous verrez une sous-liste contenant les variables enfants:
-
-Voici un exemple de variable "Options", contenant des variables enfants pour stocker les options d'un jeu:
-
-
-Vous pouvez également modifier la valeur des variables enfants comme les autres.
-
-
-## Profil de la performance de votre jeu.
-
-Le profileur est un outil inclus dans le débogueur qui mesure le temps passé dans différentes parties du moteur pendant que votre jeu est en cours d'exécution. Il montre ensuite une ventilation de chaque section, y compris les événements.
-[Lire plus sur le profileur ici!](/fr/gdevelop5/interface/debugger/profile-your-game)
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/interface/debugger/profile-your-game.md b/docs/fr/gdevelop5/interface/debugger/profile-your-game.md
deleted file mode 100644
index fbc29d38e57..00000000000
--- a/docs/fr/gdevelop5/interface/debugger/profile-your-game.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: Profiler votre jeu
----
-# Profiler votre jeu
-
-Le profileur est un outil qui mesure le temps passé dans les différentes parties du moteur pendant que votre jeu est en cours d'exécution. Il aide à trouver des goulots d'étranglement ou des événements qui pourraient prendre beaucoup de ressources dans votre jeu.
-
-Le profiler fait partie du [Debugger](/fr/gdevelop5/interface/debugger).
-!!! tip
-
-
- [Lisez ici comment ouvrir le Debugger pour votre jeu](/fr/gdevelop5/interface/debugger).
-
-Lorsque le débogueur est ouvert, le profileur est affiché dans la partie inférieure de l'écran :
-
-
-
-Pendant que le jeu est en cours d'exécution, cliquez sur le bouton **Start Profiling** pour lancer le profiler.
-Après quelques secondes, cliquez sur **Stop Profiling** pour terminer les mesures. Le jeu ne stockera que 600 images de mesures, soit environ 10 secondes. Si vous avez mesuré plus de 600 images, les premières mesures seront effacées par les dernières.
-
-Lorsque le profilage est terminé, les résultats sont affichés :
-
-
-
-Chaque section du jeu est affichée. Les sections peuvent contenir d'autres sections.
-
-Les sections sont :
-
-* Objets (pré-événements) - Le temps passé à exécuter des comportements avant les événements.
-* Événements - Le temps passé à exécuter les événements. Si vous avez ajouté *groupes* à vos événements, ils seront affichés sous forme de sous-sections. C'est une bonne façon de voir comment chaque partie de vos événements se déroule.
-* Objets (post-événements) - Le temps passé à exécuter des comportements après les événements (selon les comportements, ils peuvent être exécutés avant ou après les événements).
-* Objets (visibilité) - Le temps passé à vérifier quels objets seront rendus à l'écran.
-* Rendu - Le temps passé par le processeur (CPU) pour émettre des appels de rendu vers la carte graphique (GPU).
-
-Notez que le rendu réel sur le GPU n'est pas mesuré ici.
-
-Pour chaque section, vous pouvez voir : le temps total passé dans cette section pendant le temps de profilage, le pourcentage de temps passé dans cette section par rapport au parent et le pourcentage de temps passé dans cette section par rapport au temps total.
-
-* C'est une bonne idée de lancer le profiler pour voir quelle est la partie du jeu qui consomme le plus de ressources. En particulier, jetez un coup d'œil aux événements pour voir si certains groupes d'événements consomment plus de ressources que d'autres.
-* Si certains comportements prennent beaucoup de temps, il peut être une bonne idée de voir si vous pouvez réduire le nombre d'objets ayant le comportement, ou désactiver le comportement si ce n'est pas nécessaire.
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/interface/events-editor.md b/docs/fr/gdevelop5/interface/events-editor.md
deleted file mode 100644
index 6a1e69eb024..00000000000
--- a/docs/fr/gdevelop5/interface/events-editor.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: events-editor
----
-FIXME **Cette page contient peut-être des erreurs, vous pouvez contribuer pour les corriger.**
-
-*(Enlevez ce paragraphe si vous pensez qu'il n'y a plus d'erreurs.)*
-
-# Éditeur d’événements
-
-Lors de l'ouverture d'une scène (ou lors de l'ouverture d'événements externes), un éditeur d'événements est également ouvert. C'est ici que vous pouvez utiliser les événements pour créer le jeu et permettre aux joueurs d'interagir avec votre jeu et de le jouer. L'éditeur d'événements est un outil qui vous permet de programmer visuellement votre jeu sans aucune connaissance en programmation ou expérience requise pour que n'importe qui avec n'importe quel arrière-plan puisse créer un jeu dans GDevelop.
-
-Pour basculer entre [l'éditeur de scène](/gdevelop5/interface/scene-editor) et l'éditeur d'événements vous pouvez utiliser ces onglets en haut 
-
-Lorsque vous passez à l'éditeur d'événements, vous remarquerez peut-être que nous avons une sélection différente d'outils disponibles: 
-
-## Ajouter un événement Nous pouvons ajouter un événement en cliquant sur le bouton **Ajouter un événement** 
-
-En cliquant sur ce bouton, un événement vide apparaît dans notre éditeur 
-
-Nous pouvons ajouter n'importe quel nombre de blocs d'événements à notre éditeur et ajouter diverses conditions et actions à chaque bloc d'événement pour rendre notre logique. Vous pouvez en apprendre plus sur les événements, sur la page dédié aux : [](/gdevelop5/événements).
-
-## Ajouter un sous-événement En cliquant sur le bouton Ajouter un sous-événement, nous pouvons ajouter un bloc d'événement enfant à l'événement sélectionné.
-
-Après avoir cliqué sur le bouton, un sous-événement vide apparaît sous notre événement sélectionné 
-
-Les sous-événements ne sont exécutés que si l'événement parent est exécuté, de cette façon nous pouvons freiner nos événements et déclencher des événements seulement quand / si cela est nécessaire et ne pas les déclencher si ce n'est pas le cas.
-
-## Ajouter un commentaire
-
-!!! note
-
- Les commentaires sont très utiles afin de vous repérer dans votre jeu, si vous souhaitez par exemple faire un gros jeu, forcément, il y aura pleins d'événements et vous pourriez vous perdre, mais grâce aux commentaires, vous allez vous repérer ! En cliquant sur le bouton **Ajouter un commentaire**, nous pouvons ajouter des commentaires à nos événements afin que nous puissions nous souvenir des événements qui correspondent à leur objectif. 
-
-Bien sûr, la plupart des événements s'expliquent d'eux-mêmes, mais dans les jeux complexes, il est toujours utile d'ajouter des commentaires pour nous rappeler ce que cette partie fait exactement. 
-
-## Ajouter un événement spécial En cliquant sur le bouton Ajouter un événement, avec ceux que nous avons déjà mentionnés, nous avons accès à des événements spéciaux 
-
-Lire la page dédié aux [événements](/gdevelop5/events)pour en apprendre plus.
-
-## Supprimer un événement sélectionné
-
-En cliquant sur le bouton Supprimer les événements sélectionnés, les événements sélectionnés seront supprimés de la feuille 
-
-## Annuler / Rétablir les modifications Tout changement peut être annulé ou appliqué à nouveau avec ces boutons  ## Rechercher dans les événements En cliquant sur le bouton rechercher dans les événements, nous pouvons faire exactement cela, rechercher une expression dans les événements et trouver ce que nous recherchons 
diff --git a/docs/fr/gdevelop5/interface/index.md b/docs/fr/gdevelop5/interface/index.md
deleted file mode 100644
index c25ff950e7d..00000000000
--- a/docs/fr/gdevelop5/interface/index.md
+++ /dev/null
@@ -1,163 +0,0 @@
----
-title: Aperçu de l'interface de GDevelop
----
-# Aperçu de l'interface de GDevelop
-
-L'interface de travail de GDevelop est basée sur des éditeurs affichés dans des onglets. Ces éditeurs vous permettent de modifier différentes parties de votre jeu.
-
-
-
-# Page de démarrage
-
-L'écran de démarrage initial s'affiche lorsque vous lancez GDevelop pour la première fois. C'est ici que vous créez vos projets, chargez des projets précédemment enregistrés ou chargez des tutoriels.
-
-
-
-Au démarrage, GDevelop recherchera de nouvelles mises à jour. Si une nouvelle mise à jour est disponible, la mise à jour sera automatiquement téléchargée.
-Vous pouvez en voir la progression en cliquant sur [About GDevelop](/gdevelop5/interface/updates)
-.
-# Gestionnaire de projet
-
-Lorsqu'un projet est ouvert, vous pouvez cliquer sur le bouton en haut à gauche pour accéder au gestionnaire de projet.
-
-Le gestionnaire de projet montre la structure de votre jeu.
-
-Vous pouvez plier et déplier chaque catégorie en cliquant sur la petite flèche.
-
- *** Ressources:** C'est ici que GDevelop stocke toutes les images et les sons utilisés dans votre jeu.
-
- * **Scènes:** Les scènes sont les différents niveaux de votre jeu mais pas seulement car dans GDevelop tout est une question de scène, le menu principal, écran de démarrage, écran de crédits, tous sont des scènes.
-
- *** Événements externes:** Pour rendre le développement de notre jeu plus flexible, nous pouvons rendre externes des événements souvent utilisés et les lier à des scènes quand nous en avons besoin. Considérez-les comme des méthodes de programmation, mais si vous n'êtes pas familier avec le terme méthode, rappelez-vous simplement que si vous avez souvent besoin d'utiliser un des événements, vous pouvez le rendre externe et l'appeler quand vous en avez besoin.
-
- *** Agencements externes:** Comme pour les événements, vous pouvez décider que des agencements utilisés à diverses reprises méritent d'être conçus comme des agencements externes qui pourront être chargés à de multiples endroits de vos scènes.
-
-Dans la version **bureau**, le menu Fichier vous permet de sauvegarder votre jeu, d'en ouvrir un autre ou de le fermer. Vous pouvez aussi [exporter votre jeu](/gdevelop5/publishing).
-
-Dans la version navigateur de GDevelop5, ces options sont en haut du gestionnaire de projet.
-
-
-# Éditeur de scènes
-
-Lorsque vous ouvrez une scène (ou un agencement externe), un éditeur de scène s'ouvre.
-C'est ici que vous pouvez concevoir et construire vos niveaux et menus de jeu en créant et ajoutant des objets à la scène.
-
-Nous avons une sélection d'outils et d'éditeurs disponibles dans l'éditeur de scènes:
-
-
-[Pour en apprendre plus sur l'utilisation de l'éditeur de scènes](/fr/gdevelop5/interface/scene-editor).
-}
-## Éditeur d'objets
-L'éditeur d'objets se trouve à droite. C'est ici que vous pouvez voir tous les objets utilisés dans votre scène et en ajouter de nouveaux.
-
-Si vous avez fermé cette barre, vous pouvez l'ouvrir à nouveau en utilisant le bouton en haut.
-
-
-## Propriétés de l'objet
-Vous trouverez les propriétés de l'objet à gauche, sous le gestionnaire de projet. Fermez le gestionnaire de projet si vous ne pouvez pas le voir.
-
-Ici, vous pouvez modifier les propriétés des objets sélectionnés tels que la position, la rotation, l'échelle, l'ordre Z, etc.
-
-Si vous avez fermé cette barre, vous pouvez l'ouvrir en cliquant sur le bouton en haut.
-
-
-Dans ce cas, la barre peut s'ouvrir sur le côté droit, vous pouvez déplacer et mettre à l'échelle via les bords n'importe quel élément de l'écran en faisant glisser et en déplaçant.
-
-## Éditeur des Groupes d'objets
-Dans l'éditeur des Groupes d'objets nous pouvons trouver la liste des groupes que nous avons dans notre scène et nous pouvons en créer de nouveaux.
-
-Pour ouvrir l'éditeur, il faut cliquer sur le bouton en haut.
-
-
-Les groupes d'objets nous permettent de rassembler des objets dans des groupes, puis d'y faire appel à l'intérieur de nos événements. Cela sert à faire appel à un groupe plutôt qu' à des objets individuels.
-
-## Éditeur d'instances
-L'éditeur d'instances affiche une liste de toutes les instances présentes dans notre scène et nous pouvons sélectionner n'importe quelle instance de la liste et voir sa position, angle, couche et ordre Z dans notre scène.
-
-
-On peut ouvrir l'éditeur d'instances en cliquant sur le bouton en haut dans la barre d'outils.
-
-
-## Éditeur de calques
-L'éditeur de calques affiche la liste des calques dans nos scènes et nous permet d'en ajouter de nouveaux, de modifier leurs ordres, de les masquer et de les supprimer.
-
-
-On peut ouvrir l'éditeur de calques en cliquant sur le bouton en haut dans la barre d'outils.
-
-
-## Masque de fenêtre
-En cliquant sur le bouton Masque de fenêtre situé en haut, nous pouvons activer et désactiver la bordure noire de notre scène qui indique la taille de notre fenêtre de jeu.
-
-
-## Editer la grille
-En cliquant sur le bouton d'édition de la grille en haut, nous obtenons deux options:
-
-
- * **Toggle grid:** il nous permet d'activer et de désactiver la grille dans l'éditeur de scènes, la grille est utile lorsque nous avons besoin de placer des objets avec précision ou que nous avons à faire à des sprites de tuiles.
- * **Setup grid:** il nous permet de personnaliser la taille de la grille.
-
-## Changer le zoom de l'éditeur
-En cliquant sur le bouton Modifier le zoom, on peut changer le niveau de zoom dans l'éditeur de scène.
-
-
-## Lancement de la prévisualisation de la scène
-En cliquant sur le bouton Prévisualiser, nous pouvons lancer un aperçu de notre jeu et le tester avant de l'exporter.
-
-
-## Éditeur d'événements
-
-Lors de l'ouverture d'une scène (ou lors de l'ouverture d'événements externes), un éditeur d'événements est également ouvert. C'est ici que vous pouvez utiliser les événements pour créer le gameplay réel et permettre aux joueurs d'interagir avec votre jeu et de le jouer.
-L'éditeur d'événements est un outil qui vous permet de programmer visuellement votre jeu sans aucune connaissance de programmation ou d'expérience requise afin que n'importe qui avec n'importe quel niveau puisse faire un jeu dans GDevelop.
-
-Pour basculer entre l'éditeur de scène et l'éditeur d'événements, vous pouvez utiliser les onglets en haut de l'écran.
-
-
-Lorsque vous passez à l'éditeur d'événements, vous remarquerez peut-être qu'en haut un choix de différents outils est désormais disponible.
-
-
-## Ajouter un événement
-Nous pouvons ajouter un événement en cliquant sur le bouton Ajouter un événement
-
-
-En cliquant sur ce bouton, un évènement vide apparaît dans notre éditeur.
-
-
-Nous pouvons ajouter autant de blocs d'événements à notre éditeur et ajouter diverses conditions et actions à chaque bloc d'événements pour faire notre logique de jeu. Pour en savoir plus sur les événements, consultez cette page: [events](/gdevelop5/events)
-
-## Ajouter un sous-événement
-En cliquant sur le bouton Ajouter un sous-événement, nous pouvons ajouter un bloc d'événement enfant à l'événement sélectionné.
-
-
-Après avoir cliqué sur le bouton, un sous-événement vide apparaît en dessous de l'événement sélectionné.
-
-
-Les sous-événements ne sont exécutés que si l'événement parent est exécuté, de cette façon nous pouvons freiner nos événements et déclencher des événements seulement quand/si c'est nécessaire et ne pas les déclencher si ce n'est pas le cas.
-
-## Ajouter un commentaire
-En cliquant sur le bouton ajouter un commentaire, nous pouvons ajouter des commentaires à nos événements afin que nous puissions nous rappeler quels événements correspondent à quel but.
-
-Bien sûr, la plupart des événements s'expliquent d'eux-mêmes, mais dans les jeux gigantesques et complexes, il est toujours utile d'ajouter des commentaires pour nous rappeler ce que fait exactement cette partie. Dans un projet à plusieurs mettre des commentaires est utile pour que vos collègues comprennent la logique des évènements plus simplement.
-
-
-## Ajouter des événements spéciaux
-En cliquant sur le bouton Ajouter un événement, en plus de ceux que nous avons déjà mentionnés, nous avons accès à quelques événements spéciaux
-
-
- * **For each object:** cet événement va être déclenché sur chaque instance d'un objet un par un et s'assurer que les actions sont appliquées à chaque instance individuellement.
- * **Group:** Les groupes nous permettent de trier les événements dans des groupes, cela nous aide à rendre nos événements plus organisés.
- * **Javascript code:** il nous permet d'utiliser le code Javascript dans l'éditeur d'événements
- * **Link:** nous pouvons lier un événement externe en utilisant cette option
- * **Repeat:** cet événement va être répété un nombre spécifié de fois.
- * **While:** cet événement va être exécuté tant qu'une certaine condition est remplie
-
-## Supprimer les événements sélectionnés
-En cliquant sur le bouton Supprimer les événements sélectionnés, ce bouton fait exactement ce qui est écrit.
-
-
-## Annuler/Rétablir les modifications
-En cliquant sur le bouton Annuler ou Rétablir les modifications, ceci sera fait.
-
-
-## Rechercher dans les événements
-En cliquant sur le bouton de recherche dans les événements, recherchez n'importe quelle expression dans les événements et trouvez ce que vous voulez.
-
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/interface/profile.md b/docs/fr/gdevelop5/interface/profile.md
deleted file mode 100644
index 77724e503ad..00000000000
--- a/docs/fr/gdevelop5/interface/profile.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: Mon profil
----
-# Mon profil
-
-Un compte GDevelop est nécessaire pour quelques fonctionnalités, notamment l'exportation en un clic de votre jeu pour Android, iOS, Windows, macOS and Linux..
-
-Si vous n'avez pas de compte, créez-en un gratuitement: dans le menu Fichier (sur Windows et Linux) ou dans le menu GDevelop (sur macOS), choisissez Mon profil:
-
-
-
-Dans la fenêtre, vous pouvez voir votre profil (ou en créer un si vous n'avez pas de compte) et aussi voir les dernières utilisations que vous avez faites des services en ligne.
-
-## Créer un compte
-
-Si vous n'avez pas de compte, vous pouvez en créer un gratuitement:
-
-
-
-Cliquez sur **Créer mon compte**, puis entrez votre adresse email et choisissez un mot de passe:
-
-
-
-Une fois connecté, vous pouvez voir votre profil et vous pouvez utiliser les services spécifiques de GDevelop, comme le packaging de votre jeu pour Android en un clic!
-
-## Obtenir un abonnement
-
-Par défaut, les comptes sont gratuits et il n' y a pas de limites sur les jeux que vous créez avec GDevelop.
-Quelques services en ligne sont limités car ils s'appuient sur des serveurs qui peuvent être coûteux. En particulier, avec un compte gratuit vous pouvez faire 2 [packaging for Android](/gdevelop5/publishing/android_and_ios) exports par jour.
-
-En obtenant un abonnement, vous débloquerez plus de packagings (et à l'avenir, plus de packagings en un clic pour iOS, Windows, MacOS et Linux! Vous soutiendrez également GDevelop pour le développement futur. ✨
-
-Une fois connecté, cliquez sur le bouton **Choisissez un abonnement**:
-
-
-
-Vous pourrez voir une description de chaque plan disponible. Choisissez celui qui convient à vos besoins:
-
-
-
-Une fois que vous avez cliqué sur Choisir ce forfait, on vous demandera votre numéro de carte de crédit afin que l'abonnement puisse être payé chaque mois. Les paiements sont effectués et protégés à l'aide de [Stripe. com](https://stripe.com), qui est le nouveau standard en matière de paiement en ligne. Tout est sécurisé et géré par l'infrastructure Stripe.
-
-## Modification de votre abonnement
-
-ISi vous souhaitez mettre à jour votre abonnement, soit pour passer à un abonnement avec plus de packagings, soit à un abonnement moins cher, il vous suffit d'ouvrir à nouveau votre profil et de cliquer sur **Mettre à jour/Modifier**.
-
-Le prochain paiement sera automatiquement adapté à votre nouvel abonnement!
-
-## Annulation de votre abonnement
-
-Il est facile d'annuler votre abonnement à tout moment: ouvrez à nouveau votre profil et cliquez sur **Mettre à jour/Modifier**. Choisissez l'abonnement Gratuit et votre abonnement actuel sera arrêté, et aucun nouveau paiement ne sera requis.
-
-Si vous le souhaitez, vous pouvez vous réabonner ultérieurement à un autre abonnement. En tout cas, vous ne perdrez rien de votre jeu ou de votre travail!
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/interface/project-manager.md b/docs/fr/gdevelop5/interface/project-manager.md
deleted file mode 100644
index 31f92080593..00000000000
--- a/docs/fr/gdevelop5/interface/project-manager.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: project-manager
----
-FIXME **Cette page contient peut-être des erreurs, vous pouvez contribuer pour les corriger.**
-
-*(Enlevez ce paragraphe si vous pensez qu'il n'y a plus d'erreurs.)*
-
-# Gestion des projets
-
-Quand un projet est ouvert, vous pouvez cliquer sur le bouton en haut à gauche pour accéder au menu **Gestion des projets** 
-
-Le **menu gestion des projets** montre la structure de votre jeu.
-
-
-
-Vous pouvez plier et déplier chaque catégorie en cliquant sur la petite flèche.
-
-!!! note
-
- Le logiciel sur cet image est noir car il possède le thème **dark**, votre logiciel ne ressemble donc peut-être pas à ceci mais ne vous inquiétez pas, ils possèdent tout les deux les mêmes fonctions
-
-- **Paramètre du jeu:**C'est ici que vous pouvez personnaliser les **paramètres globaux du jeu**, comme par exemple la taille de la fenêtre de votre jeux ou le nom du package pour Android et iOS. Vous pouvez aussi [mettre en place un icône pour votre jeu](/gdevelop5/interface/project-manager/icons).
-
-
-
-- **Scènes:** Les **scènes** sont les différents niveaux de votre jeu mais que ça, dans GDevelop tout est une [scène](/gdevelop5/interface/scene-editor), le menu principal, le splash screen, les crédits: Toutes ces catégories sont des scènes.
-
-
-
-- **Événements extérieurs:**pour rendre le développement de notre jeu plus flexible, nous pouvons faire usage des [événements extérieurs](/gdevelop5/interface/events-editor) et les relier à chaque fois que nous en avons besoin. Considérez-les comme des méthodes de programmation, mais si vous n'êtes pas familier avec le terme, souvenez-vous que si vous devez utiliser une collection d'événements souvent et différents, vous pouvez les rendre externes et les appeler quand vous en avez besoin.
-
-* **Disposition externe: **similaire aux événements, vous pouvez concevoir des mises en page externes souvent utilisées à plusieurs reprises pour les charger même à plusieurs endroits de votre scène.
-
-## Menu Fichier
-
-Dans la version **bureau** de GDevelop, le **menu Fichier** vous permet d'enregistrer votre projet, d'en ouvrir un autre ou de le fermer. Vous pouvez aussi [exporter votre jeu](/gdevelop5/publishing). 
-
-Dans **l'application web** de GDevelop, ces options sont dans le **menu options**. 
diff --git a/docs/fr/gdevelop5/interface/scene-editor.md b/docs/fr/gdevelop5/interface/scene-editor.md
deleted file mode 100644
index abf7780e41d..00000000000
--- a/docs/fr/gdevelop5/interface/scene-editor.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: scene-editor
----
-FIXME **Cette page contient peut-être des erreurs, vous pouvez contribuer pour les corriger.**
-
-*(Enlevez ce paragraphe si vous pensez qu'il n'y a plus d'erreurs.)*
-
-# Éditeur de scène
-
-Quand vous ouvrez une scène (où une disposition extérieur), un éditeur de scène s'ouvre. C'est ici que vous pouvez créer les niveaux de votre jeu (ou menus, inventaires...) en créant et ajoutant des objets dans la scène. Le gameplay et les règles du jeu peuvent être crée avec des événements dans [l'éditeur d'événements](/gdevelop5/interface/events-editor).
-
-Nous avons une sélection d'outils et d'éditeurs disponibles dans l'éditeur de scène: 
-
-## Éditeur d'objets Vous pouvez trouver l'éditeur d'objets sur le côté droit. C'est là que vous pouvez voir tous [les objets](/gdevelop5/ objects) utilisés dans votre scène et en ajouter de nouveaux. 
-
-Au cas où vous avez fermé ce panneau, vous pouvez le rouvrir en utilisant le bouton en haut 
-
-Lisez [l'aide à propos des objets](/gdevelop5/objects) pour en apprendre davantage sur les différents types d'objets que vous pouvez utiliser dans votre jeu.
-
-## Propriété des objets Vous pouvez trouver les propriétés de l'objet sur le côté gauche, sous le gestionnaire de projet. Fermez le gestionnaire de projet si vous ne pouvez pas le voir.  Ici vous pouvez modifier les propriétés des objets sélectionnés tels que la position, l'échelle, l'ordre Z. Si vous avez fermé cette barre, vous pouvez la rouvrir en cliquant sur le bouton en haut 
-
-Dans ce cas, la barre peut s'ouvrir sur le côté droit, vous pouvez déplacer et mettre à l'échelle n'importe quel élément sur l'écran en le faisant glisser et en le déplaçant.
-
-## Éditeur des Groupes d'objets Dans l'éditeur des groupes d'objets, nous pouvons trouver la liste des groupes que nous avons dans notre scène et nous pouvons en créer de nouveaux.  Pour ouvrir l'éditeur, nous devons cliquer sur le bouton en haut: 
-
-Les groupes d'objets nous permettent de collecter des objets dans des groupes et à l'intérieur de nos événements se référer à un groupe au lieu d'objets individuels.
-
-## Éditeur d'instances L'éditeur d'instances affiche une liste de toutes les instances présentes dans notre scène et nous pouvons sélectionner n'importe quelle instance de la liste et voir leur position, angle, calque et ordre Z dans notre scène. 
-
-Nous pouvons ouvrir l'éditeur Instances en cliquant sur le bouton en haut 
-
-## Éditeur de couches L'éditeur de calques affiche la liste des calques dans nos scènes et nous permet d'en ajouter de nouveaux, de modifier leur ordre, de les masquer et de les supprimer. 
-
-Nous pouvons ouvrir l'éditeur de calques en cliquant sur le bouton en haut 
-
-## Autres outils
-
-Voici différents outils très complets qui vous aideront à la création de votre jeu:
-
-### Basculer / Modifier la grille En cliquant sur le bouton bascule / modifier la grille en haut, nous obtenons deux options:  * **Masque**: Ceci affiche ou masque une bordure noire dans la scène, qui indique la taille de la fenêtre de jeu. * **Grille**: Elle nous permet d'activer et de désactiver la grille dans l'éditeur de scène, la grille est utile lorsque nous avons besoin de placer des objets avec précision ou nous avons affaire à des sprites de tuiles.
-
-- **Grille d'installation: **elle nous permet de personnaliser la taille de la grille
-
-### Zoom sur l'éditeur En cliquant sur le bouton Modifier le zoom de l'éditeur, nous pouvons changer le niveau de zoom dans l'éditeur de scène 
-
-## Aperçu du jeu
-
-En cliquant sur le bouton Aperçu, vous pouvez lancer un aperçu de votre jeu:
-
-
-
-L'aperçu ouvre une fenêtre séparé.
-
-### Lancer un aperçu réseau (Aperçu sur WiFi / LAN)
-
-En cliquant sur le bouton "Aperçu du réseau (Aperçu sur WiFi / LAN)", nous pouvons prévisualiser notre jeu sur des appareils mobiles connectés sur le même réseau que l'éditeur:
-
-
-
-Après avoir cliqué sur le bouton, une fenêtre apparaîtra, nous montrant l'adresse sur laquelle l'aperçu est lancé 
-
-Maintenant, nous devons écrire et entrer l'adresse donnée dans le navigateur de notre appareil mobile. L'aperçu devrait charger: 
-
-Maintenant nous pouvons fermer la fenêtre pop-up dans l'éditeur pour continuer à éditer notre jeu. Enfin, si nous lançons une nouvelle prévisualisation via wifi, notre appareil mobile actualisera automatiquement la page pour afficher les modifications apportées.
-
-### Lancer un aperçu avec un débogueur
-
-Le débogueur est un outil qui peut être utilisé pour inspecter le contenu de votre jeu (valeurs de variables, instances existantes et leurs propriétés ...) et même faire une édition en temps réel.
-
-Vous pouvez lancer le débogueur en utilisant cette icône:
-
-
-
-[Voir cette page](/fr/gdevelop5/interface/debugger) pour en savoir plus sur l'utilisation du débogueur.
diff --git a/docs/fr/gdevelop5/objects/admob.md b/docs/fr/gdevelop5/objects/admob.md
deleted file mode 100644
index ac2281cc637..00000000000
--- a/docs/fr/gdevelop5/objects/admob.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: L'objet Admob
----
-# L'objet Admob
-
-AdMob permet d'afficher des publicités dans votre jeu, sur Android ou iOS.
-
-!!! note
-
- L'objet AdMob a été modifié dans les dernières versions de GDevelop. **[Consultez plutôt la page Admob](/gdevelop5/all-features/admob)**.
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/objects/base_object.md b/docs/fr/gdevelop5/objects/base_object.md
deleted file mode 100644
index acd921ab94a..00000000000
--- a/docs/fr/gdevelop5/objects/base_object.md
+++ /dev/null
@@ -1,159 +0,0 @@
----
-title: base_object
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-Dans les jeux développés avec GDevelop, tout est lié aux objets.
-
-# Caractéristiques communes à tous les objets
-
-Dans un jeu GDevelop, tout ce qui apparaît à l'écran est un objet.
-
-## Ajouter un objet à votre jeu
-
-Vous pouvez ajouter des objets dans une scène en cliquant sur le bouton **Click to add an object** (Cliquez pour ajouter un objet) à droite, en bas de la liste des objets :
-
-
-
-Vous pouvez choisir parmi de nombreux types d'objets, tous dotés de propriétés spécifiques et destinés à jouer un rôle bien défini :
-
-
-
-En fonction du type d'objet choisi, l'éditeur, l'aspect de l'objet et les fonctionnalités disponibles dans les événements seront différents. Le but de cette page étant d'expliquer les objets en général, nous n'entrerons pas dans les détails des propriétés propres à chaque type d'objets. Vous pouvez trouver des [informations détaillées ici](http://wiki.compilgames.net/doku.php/gdevelop5/objects).
-
-# Les objets dans la scène
-
-## Ajouter une instance d'objet à la scène
-
-Un objet peut être placé sur la scène en le sélectionnant dans l'onglet **Object** (cliquez dessus), puis en le faisant glisser dans la scène pour placer une * instance * de cet objet. Une * instance * est fondamentalement une *copie* de l'objet vivant sur la scène. Chaque instance a ses propres variables, position, animations (pour les objets sprite), contenu (pour les textes), etc ...
-
-Nous pouvons modifier la position d'un objet en sélectionnant l'objet dans l'éditeur de scène et en le faisant glisser. Nous pouvons redimensionner l'objet en le sélectionnant et en faisant glisser l'une des poignées d'échelle blanches.
-
-
-
-## Modifier les propriétés d'un objet
-
-Lorsque nous sélectionnons un objet dans l'éditeur de scène, le panneau de propriétés situé à gauche affiche des informations sur la ou les instances sélectionnées. S'il n'est pas ouvert, vous pouvez l'ouvrir en cliquant sur le bouton des propriétés situé dans la barre d'outils :
-
-
-
-## Position de l'instance d'un objet
-
-Vous pouvez définir avec précision la position des instances sélectionnées en modifiant les valeurs **X** et **Y** dans le panneau des propriétés :
-
-
-
-## Angle (orientation) de l'instance d'un objet
-
-Vous pouvez définir l'angle (l'orientation) de l'instance en modifiant la valeur de l'angle :
-
-
-
-L'angle peut prendre n'importe quelle valeur de 0 à 360 degrés. Rappelez-vous ce diagramme pour voir quelle est l'orientation d'un angle donné :
-
-
-
-## L'ordre Z
-
-Vous pouvez modifier l'ordre Z d'une instance dans le panneau des propriétés :
-
-
-
-Le but de l'ordre Z est de permettre de spécifier quel objet sera affiché en premier, lorsque les instances se chevauchent. Plus précisément, nous pouvons contrôler si l'objet est derrière un autre objet ou s'il est devant en définissant des valeurs différentes : lorsque deux objets se chevauchent, l'objet avec la valeur d'ordre Z inférieure sera affiché derrière l'autre.
-
-Les valeurs peuvent être n'importe quel entier, y compris les nombres négatifs et 0.
-
-
-
-Sur l'image ci-dessus, l'ordre Z du buisson à gauche est 2, l'ordre Z de la pièce est 1 et l'ordre Z du buisson à droite est 0.
-
-## Les calques (layers)
-
-Vous pouvez définir le calque d'une instance :
-
-
-
-Par défaut, chaque scène de GDevelop est fournie avec un seul calque (ou couche) appelé **Base layer** (calque de base). C'est là que tous les objets de notre scène sont situés. Nous pouvons ajouter plus de calques à des fins diverses et mettre n'importe quelle instance sur n'importe quel calque. Par exemple, il peut y avoir un calque pour afficher les commandes à l'écran, une autre pour afficher un menu, une carte ou un arrière-plan.
-
-## Verrouiller la position / l'angle
-
-En cochant la case**Locked**(Verrouiller) la position / l'angle dans l'éditeur, vous pouvez rendre l'instance inamovible dans l'éditeur.
-
-
-
-Quand une instance est verrouillée, nous ne pouvons plus la sélectionner dans la scène. Il y a des moments où nous avons beaucoup d'objets qui se chevauchent dans la scène ce qui rend difficile la sélection de certains d'entre eux, car nous continuons à sélectionner ceux que nous n'avons pas l'intention de manipuler. Dans ce cas, nous pouvons verrouiller les instances.
-
-Vous pouvez déverrouiller une instance verrouillée en ouvrant le panneau d'instances, qui affiche toutes les instances de notre scène et en sélectionnant l'objet dans la liste.
-
-## Les variables d'instance
-
-Le bouton **Edit variables** (Editer les variables) permet de définir des variables spécifiques à l'instance sélectionnée :
-
-
-
-Une variable est essentiellement un conteneur qui renferme une valeur (un nombre, un texte) pouvant être comparée et modifiée au cours du jeu. Il existe différents types de variables dans GDevelop, en particulier chaque objet peut contenir des variables. Lorsque le jeu est en cours d'exécution, chaque *instance* de l'objet vivant sur la scène aura ses propres variables.
-
-L'éditeur de variables permet de définir des variables spécifiques à l'instance sélectionnée. Par exemple, si vous avez sur la scène des objets représentant des coffres contenant de l'or, vous pouvez modifier la variable nommée "Or" de chaque instance pour définir un nombre différent. Ensuite, dans les événements, lorsque le joueur entre en collision avec un coffre, vous pouvez lire la valeur de la variable pour l’ajouter au montant en or du joueur.
-
-## Dimensions personnalisées
-
-Vous pouvez modifier la taille des objets en activant la taille personnalisée dans le panneau de propriétés, puis entrez les dimensions personnalisées **Width** (largeur) et **Height** (hauteur) en pixels :
-
-
-
-# Les groupes d'objets
-
-Un groupe d'objets est un ensemble d'objets. Par exemple, un groupe appelé "Ennemis" peut contenir des objets "Champignon", "Bombe", "Dinosaure". Vous pouvez ensuite utiliser le nom du groupe dans les événements pour faire référence à tous les objets contenus dans le groupe.
-
-Cela permet de créer des événements qui s'appliquent à un grand nombre d'objets sans les répéter plusieurs fois, ce qui augmente les performances du jeu, la facilité de maintenance et la lisibilité des événements.
-
-Pour ouvrir l’éditeur de groupes, cliquez sur l’icône des groupes dans la barre d’outils :
-
-
-
-L'éditeur de groupes répertorie tous les groupes de la scène (ainsi que les groupes globaux disponibles dans toutes les scènes du jeu). Pour ajouter un groupe, cliquez sur le bouton **Click to add a group** (Cliquez pour ajouter un groupe) en bas de la liste :
-
-
-
-Un nouveau groupe est ajouté dans la liste :
-
-
-
-* Pour renomer un groupe, faites un clic droit sur le groupe et sélectionnez **Rename** (Renommer). * Pour ajouter un objet au groupe, cliquez ou tapez sur le groupe.
-
-Dans la fenêtre qui s'ouvre pour éditer le groupe, cliquez sur le champ du bas et choisissez un objet (ou écrivez le nom d'un objet) pour l'ajouter au groupe.
-
-
-
-# Les variables
-
-Chaque objet peut contenir des variables, qui sont des cellules de mémoire que vous pouvez utiliser pour stocker des informations. Lorsque le jeu est en cours d'exécution, chaque *instance* de l'objet vivant sur la scène aura ses propres variables.
-
-Consultez [cette page](/gdevelop5/all-features/variables) pour en savoir plus sur les variables.
-
-# Les chronomètres ou minuteries
-
-Les objets peuvent contenir leurs propres chronomètres et chaque chronomètre sera unique pour chaque instance de l'objet vivant sur la scène. Les chronomètres d’objets sont utiles pour créer des instances permettant de lancer des actions toutes les X secondes.
-
-Par exemple, une utilisation classique consiste à simuler des balles tirées par une arme. Si vous avez un seul char sur la scène, vous pouvez utiliser un chronomètre de scène pour que ce char puisse tirer (créer une balle) toutes les 3 secondes, puis réinitialiser le chronomètre (pour que le char puisse tirer à nouveau).
-
-Le problème est que si vous avez 2 chars et utilisez un chronomètre de scène, vous remarquerez que les deux chars tirent en même temps, car ils partagent le même chronomètre de scène. Vous devez disposer de deux chronomètres distincts, indépendants l’un de l’autre, pour que le second char tire à son rythme. Mais que faire si vous avez 100 chars ? Vous ne voudrez certainement pas créer 100 chronomètres de scène, un par instance.
-
-C'est à ce moment que les chronomètres d'objets deviennent utiles : remplacez chaque condition / action utilisant le chronomètre de scène par des conditions / actions permettant d'utiliser les chronomètres d'objet. Pendant le jeu, GDevelop créera un chronomètre pour chaque instance de char. Lorsque vous utiliserez une condition pour vérifier la valeur d'un chronomètre, seule l'instance dont le chronomètre a une valeur en secondes supérieure au nombre que vous avez entré sera sélectionnée.
-
-Vous pouvez en apprendre plus sur les chronomètres en étudiant : [](/gdevelop5/all-features/timers)
-
-# La visibilité
-
-La visibilité d'un objet est la propriété qui lui permet d'être visible après sa création. La visibilité d'un objet peut être activée ou désactivée. Si l'objet n'est pas visible, cela ne signifie pas que l'objet n'existe pas. Par contre, si l'objet cesse d'exister, cela implique directement que l'objet n'est pas visible. Si l'objet existe, il est visible et inversement.
-
-Si l'objet existe et que sa visibilité est désactivée, toutes les actions et conditions auront lieu exactement comme si l'objet était visible.
-
-# Dans l'éditeur d'événements
-
-Vous pouvez modifier et manipuler les propriétés d'une instance d'objet ou de plusieurs instances à l'aide d'événements au cours du jeu. C’est même ce qu’est le gameplay dans GDevelop : manipuler des objets en temps réel pendant que nous jouons. Comme les événements et l’éditeur d’événements sortent du cadre de cette page, reportez-vous à la page [Concepts de base du jeu](/fr/gdevelop5/tutorials/basic-game-making-concepts) pour commencer.
-
-* Tous les objets partagent les mêmes caractéristiques communes (comme la position, l'angle et tout ce qui est décrit sur cette page). De nombreuses conditions et actions peuvent être utilisées pour tous les objets. Vous pouvez [en savoir plus sur les conditions / actions communes pour tous les objets ici.](/gdevelop5/ objects/ base_object/ events)
-* Les objets peuvent également vous fournir une fonctionnalité spécifique. Par exemple, [les objets sprite](/[gdevelop5/ objects/ sprite) peuvent avoir des animations et l'animation en cours de lecture peut être modifiée à l'aide d'une action.
diff --git a/docs/fr/gdevelop5/objects/index.md b/docs/fr/gdevelop5/objects/index.md
deleted file mode 100644
index ca5de59e7a2..00000000000
--- a/docs/fr/gdevelop5/objects/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: Les objets
----
-# Les objets
-
-Les jeux GDevelop sont basés sur des objets affichés sur la scène. Ces objets peuvent être animés, déplacés et manipulés de différentes manières. Différents types d'objets sont disponibles et offrent des fonctionnalités spécifiques. Ce sont :
-
-* [Caractéristiques générales des objets](/fr/gdevelop5/objects/base_object)
-* [Les objets Sprite](/fr/gdevelop5/objects/sprite)
-* [Les objets tuile](/fr/gdevelop5/objects/tiled_sprite)
-* [Les émetteurs de particules](/fr/gdevelop5/objects/particles_emitter)
-* [Les objets texte](/fr/gdevelop5/objects/text)
-* [Les objets Panel Sprite ("9 patch")](/fr/gdevelop5/objects/panel_sprite)
-* [Les objets d'entrée de texte](/fr/gdevelop5/objects/text_entry)
-* [Les objets Shape Painter](/fr/gdevelop5/objects/shape_painter)
-* [Les objets vidéo](/fr/gdevelop5/objects/video) (encore en développement)
-
-Il existe également des fonctionnalités qui agissent sans objets, par exemple AdMob, qui permet d'afficher des publicités sur votre appareil Android ou iOS. Vous pouvez en savoir plus sur AdMob [ici](/gdevelop5/all-features/admob).
-
-➡️ Suite **[Caractéristiques communes à tous les objets](/fr/gdevelop5/objects/base_object)** !
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/objects/panel_sprite.md b/docs/fr/gdevelop5/objects/panel_sprite.md
deleted file mode 100644
index e8a16a7707a..00000000000
--- a/docs/fr/gdevelop5/objects/panel_sprite.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Objet Panel Sprite ("9 patch")
----
-# Objet Panel Sprite ("9 patch")
-
-Les objets **Panel Sprite** (Sprite de panneau) peuvent être utilisés pour afficher une texture avec des bordures répétées ou étirées. L'objet **Panel Sprite** est utile pour construire des objets ayant une taille dynamique. Les exemples d'objets **Panel Sprite** incluent des éléments tels que le cadre d'une interface. Les plates-formes peuvent également utiliser cette fonctionnalité.
-
-Pour utiliser un Sprite de panneau, créez un nouvel objet à partir de la liste d'objets à droite. Une fois que vous avez créé l'objet, vous pouvez définir la taille des marges pour chaque bordure autour de l'objet. Les marges sont en haut, à gauche, à droite et en bas.
-
-## Étapes pour créer un Pprite de panneau
-
-- 1. Dans la liste de l'Éditeur d'objets située à droite de l'éditeur de scène, cliquez sur le bouton plus (**+**) pour créer un nouveau sprite.
-
-
-
-- 2. Sélectionnez l'option **Panel Sprite** dans la liste qui apparaît.
-
-
-
-- 3. Définissez les propriétés / paramètres de l'objet.
-
-
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/objects/particles_emitter.md b/docs/fr/gdevelop5/objects/particles_emitter.md
deleted file mode 100644
index 63b500c5c5d..00000000000
--- a/docs/fr/gdevelop5/objects/particles_emitter.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: particles_emitter
----
-FIXME **Cette page n'est pas encore complètement traduite. De plus, la description de l'éditeur de particules n'est pas complète.**
-*(remove this paragraph once the translation is finished)*
-
-# Les émetteurs de particules
-
-!!! note
-
- **Voir en action !** 🎮
- [J'aimerais voir des exemples d'émetteurs de particules ! SVP, montrez-les moi maintenant.](#Examples)
-
-Les émetteurs de particules sont utilisés pour afficher un grand nombre de petites particules. Ils simulent des effets dans un jeu. Les feux, les explosions, la fumée et la poussière sont des exemples d'émetteurs de particules.
-
-
-
-L'objet **Particles Emitter** (Émetteur de particules) peut être configuré avec une multitude de paramètres différents pour créer les effets souhaités.
-
-## Les types de particules
-
-Pour pouvoir utiliser l'émetteur de particules, créez un nouvel objet à partir de la liste **Objects**. Ce qui ouvre le panneau suivant :
-
-
-
-Sélectionnez **Particles Emitter** (Émetteur de particules) dans la liste.
-
-Un nouveau panneau s'ouvre alors. Ce panneau contient les propriétés pouvant être définies pour votre émetteur. Vous devrez faire défiler l'écran vers le bas pour afficher toutes les propriétés disponibles.
-
-
-
-*GDevelop offre 3 types de rendu pour les émetteurs de particules : points, lignes et textures.*
-
-* Le type Points (**Point**) affiche des cercles avec la taille spécifiée. * Le type Lignes (**Line**) affiche des lignes de longueur et d'épaisseur spécifiées. * Le type Texturé (**Textured**) affiche une image de la taille spécifiée.
-
-## Les couleurs
-
-* Vous pouvez choisir une couleur de départ (**Particles start color**) et une couleur de fin (**Particles end color**) pour les particules. Vous pouvez également choisir une valeur de départ pour la transparence de l'objet (**Start opacity**) et une valeur de fin (**End opacity**).
-
-## Direction de l'émission
-
-Les particules seront émises dans la direction représentée par l'orientation des émetteurs sur la scène. Vous pouvez modifier l'angle du * cône de pulvérisation *, qui est également représenté dans l'éditeur de scène par deux lignes : une valeur élevée pour ce * cône de pulvérisation * entraînera une émission de particules dans une grande plages de directions. Une valeur de 0 n'émettra des particules que dans une seule direction.
-
-* Les particules apparaissent dans une sphère centrée sur la position de l'objet émetteur. Vous pouvez changer le rayon de la sphère.
-* La gravité peut être appliquée sur des particules, sur les axes X et Y. Par exemple, une valeur négative sur l'axe des Y fera monter les particules en l'air.
-* La friction influence la décélération des particules au cours du temps.
-
-## La durée de vie
-
-* Chaque particule a une durée de vie limitée qui est choisie aléatoirement entre deux valeurs. Ces deux valeurs peuvent être changées.
-* Le nombre de particules contenues dans l'émetteur ("réservoir") peut être illimité (valeur -1) ou fixé à une certaine valeur. Si ce nombre est spécifié, l'émetteur cessera d'émettre après avoir émis le nombre spécifié de particules.
-* Le flux est le nombre de particules créées chaque seconde. Vous pouvez entrer -1 pour tirer toutes les particules en un seul coup.
-
-Vous pouvez également modifier le nombre maximal de particules rendues par l'objet à l'écran. Notez que ce numéro modifie la mémoire utilisée par l'émetteur. // Si ce nombre est trop grand, le jeu risque de planter.//
-
-## Exemples
-
-!!! note
-
- **Voir en action !** 🎮
- Ouvrez ces exemples en ligne.
-
-[](https://editor.gdevelop.io/?project=example://particles-explosions)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-explosions){ .md-button .md-button--primary }
-
-[](https://editor.gdevelop.io/?project=example://particles-various-effects)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-various-effects){ .md-button .md-button--primary }
diff --git a/docs/fr/gdevelop5/objects/shape_painter.md b/docs/fr/gdevelop5/objects/shape_painter.md
deleted file mode 100644
index e825824f21f..00000000000
--- a/docs/fr/gdevelop5/objects/shape_painter.md
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: L'objet Shape painter
----
-# L'objet Shape painter
-
-!!! tip
-
- **Voir en action !** 🎮
- [Je préférerais examiner des exemples de l'objet Shape painter ! SVP, faites-les moi voir maintenant.](/#Examples)
-
-
-Un objet **Shape painter** (peintre de formes) permet de dessiner des formes dans le jeu. Ce qui peut être utile pour créer des éléments d'interface utilisateur simples. Le **Shape painter** peut même être utilisé pour créer une boîte de sélection.
-
-#### Ajouter un objet Shape Painter
-
-Pour ajouter un objet **Shape painter**, créez un nouvel objet à partir de la liste **Properties Editor** (Editeur de propriétés) à droite de l'interface de l'Éditeur de scène. Sélectionnez-cliquez ensuite sur le nouvel objet, sélectionnez **Edit object** et dans la liste qui s'affiche, cliquez sur ** Shape painter**.
-Vous devrez peut-être faire défiler la liste pour le trouver.
-
-
-
-#### Éditer les propriétés
-
-Il s'agit ensuite d'éditer les propriétés de l'objet pour le faire correspondre à ce que nous voulons. De nouveau, cliquez sur l’objet créé dans la liste des propriétés à droite. Sélectionnez **Edit object** dans la liste déroulante qui s'affiche. Une nouvelle fenêtre s'ouvre. Elle affiche les propriétés de l'objet **Shape painter**.
-
-
-
-#### Changer la couleur et l'opacité
-
-La fenêtre des propriétés du **Shape painter** présente des options permettant de changer
-
-* la couleur du contour de l'objet (**Outline color**),
-* l'opacité de contour de l'objet (**Outline opacity**),
-* l'épaisseur de ce contour (**Outline size**),
-* la couleur de remplissage de l'objet (**Fill color**),
-* l'opacité du remplissage (**Fill opacity**).
-
-
-
-#### Position relative de l'object
-
-La position par défaut des formes que nous dessinons à l'écran est relative à la positon de l'objet **Shape painter** dans la scène.
-
-
-
-Dans le cas d'une position relative activée (case cochée dans la figure ci-dessus), la position de la forme dessinée sur l'écran correspondra à la positon 0 sur les axes X et Y. Ce sera la position de l'objet **Shape painter**. Autrement dit, si nous voulons dessiner une forme dont la position sur l’écran est de 100 pixels sur X et de 100 pixels sur Y, sa position sera située à 100 pixels de l’objet **Shape painter** où que ce dernier se trouve sur l’écran.
-
-Lorsque la case est décochée, la position 0 sur les axes X et Y se trouve dans le coin supérieur gauche de la scène, quelle que soit la position de l'objet.
-
-#### Dessiner une forme
-
-Pour dessiner une forme, créez comme d'habitude un nouvel objet à l'aide de l'Éditeur d'objets. Ajoutez ensuite l'objet **Shape painter** à la scène. Si nous lançons l'aperçu maintenant, nous ne verrons rien. L'objet **Shape painter** ajoute simplement la fonctionnalité pour l'objet. Pour l'instant, il ne contient que les propriétés / paramètres du **Shape painter**. Pour dessiner une forme, nous devons utiliser l'Éditeur de scènes (**Scene Events Editor**). // Si vous n'êtes pas familier avec les événements, je vous recommande de consulter la page des événements sur le wiki .//
-
-Allons dans l'éditeur d'événements de scène (**Scene Events Editor**) pour ajouter un événement. Une fois l'événement ajouté, cliquez sur le texte **add action** (ajouter une action).
-Les formes primitives sont listées dans le menu déroulant **Primitive drawing**.
-
-
-
-Nous avons le choix entre 3 types de formes à dessiner : le cercle, la ligne et le rectangle. Nous allons dessiner un rectangle. Sélectionnez **Rectangle** dans la liste déroulante.
-
-
-
-Sur le côté droit, sélectionnez l'objet **Shape painter** à utiliser. Pour la position en haut à gauche (**Top left side**), entrez `0` pour **X** et pour **Y**. Pour la position en bas à droite (**Bottom right side**), entrez `100` pour **X** et **Y**.
-
-
-
-Maintenant, si nous lançons un aperçu de la scène, un rectangle de 100 pixels de large et 100 pixels de haut sera dessiné dans la scène.
-
-
-
-Si nous laissons la position relative activée, nous remarquerons que le rectangle est à la même position que l'objet **Shape painter**, même si son point d'origine est 0. Si nous désactivons cette option et lançons à nouveau l'aperçu, nous verrons que l'objet est dessiné dans le coin supérieur gauche de la scène.
-
-L'utilisation des événements permet de modifier les propriétés d’une forme à la volée.
-
-
-
-## Exemple
-
-!!! tip
-
- **Voir en action !** 🎮
- Ouvrez cet exemple en ligne.
-
-[](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter){ .md-button .md-button--primary }
-
-
diff --git a/docs/fr/gdevelop5/objects/sprite.md b/docs/fr/gdevelop5/objects/sprite.md
deleted file mode 100644
index 456517065be..00000000000
--- a/docs/fr/gdevelop5/objects/sprite.md
+++ /dev/null
@@ -1,163 +0,0 @@
----
-title: sprite
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-*(remove this paragraph once the translation is finished)*
-
-# Les objets sprite
-
-!!! note
-
- **Voir en action !** 🎮
- [Je préférerais examiner des exemples d'objet Sprite ! S'il vous plaît, faites-les moi voir maintenant.](#Examples)
-
-Les objets Sprite sont les objets les plus souvent utilisés dans GDevelop.
-
-Un objet sprite permet d'afficher une image ou d'afficher une série d'images sous forme d'animation. Il peut être utilisé pour représenter beaucoup de choses dans les jeux, comme des boutons, des personnages ou des plateformes. Tout ce qui peut être représenté par une image peut être un objet sprite.
-
-## Créer un objet sprite
-
-Pour ajouter un sprite à votre scène, sélectionnez l'option **Click to add an object** (Cliquez pour ajouter un objet) située à droite au bas de la liste des objets.
-
-
-
-S'ouvre alors un nouveau panneau qui montre les différents types d'objets disponibles dans GDevelop.
-
-
-
-Sélectionnez **Sprite** dans la liste pour créer un nouvel objet sprite dans votre scène de jeu.
-
-
-
-Cette sélection ouvre la fenêtre des propriétés de l'objet. Cette fenêtre vous montre propriétés de l'objet sprite.
-
-
-
-## Ajouter une animation
-
-Une animation permet d'ajouter une image ou une série d'images à l'objet sprite. Pour ajouter une animation, cliquez sur le bouton **Click to add animation** (Cliquez pour ajouter une animation).
-
-
-
-Cette action agrandit la boîte de dialogue qui vous montre alors une grande variété d’options que vous pouvez modifier.
-
-
-
-### Ajouter une image à l'animation
-
-Nous pouvons ajouter des images à l'animation de notre objet en cliquant sur le symbole plus (**+**).
-
-
-
-Ce clic ouvria l'explorateur de fichiers afin que vous puissiez parcourir les fichiers et choisir une image appropriée pour votre animation. Après avoir choisi l'image, celle-ci s'affiche dans la fenêtre.
-
-
-
-### Collisions et points
-
-Vous pouvez personnaliser la zone de collision du sprite à l'aide de la liste **EDIT HITBOXES** (Editer les boîtes de collision) située au bas de la boîte de dialogue. Cette liste vous permet de définir la zone à prendre en compte lors d'une collision. Vous pouvez en savoir plus sur [les masques de collision ici](/gdevelop5/ objects/ sprite/ collision-mask)
-
-À côté de l'option **EDIT HITBOXES**, vous trouverez l'option **EDIT POINTS** (Editer les points) au bas de la boîte de dialogue des propriétés du sprite. Cette option permet d’avoir des points de référence supplémentaires pour un objet. Ces points de référence peuvent être utilisés dans des événements en cas de besoin. [En savoir plus sur les points dans les sprite ici.](/gdevelop5/objects/sprite/edit-points)
-
-### Ajouter plusieurs animations
-
-Un objet peut parfois nécessiter plusieurs animations. Pour ajouter des animations, cliquez sur le bouton **Click to add an animation** (Cliquez pour ajouter une animation) de la même manière que nous l'avions fait la première fois. Cette fonctionnalité permet de séparer facilement les différentes animations.
-
-
-
-Plus tard, nous pourrons basculer entre les différentes animations en utilisant des événements.
-
-### Nommer une animation
-
-En haut de la section animation de la fenêtre, vous avez un champ à côté de **Animation \#** avec un "nom d'animation facultatif" grisé. Pour entrer un nom pour votre animation, cliquez dans le champ et entrez le nom désiré.
-
-
-
-!!! note
-
- Dans les objets comportant plusieurs animations, il peut être difficile de différencier les animations sans noms. Il est généralement recommandé d'utiliser des noms d'animation significatifs pour les objets comportant plusieurs animations.
-
- Si nous n'entrons pas de nom, nous devons utiliser le numéro d'animation pour faire référence à cette animation.
-
-### Ajouter plusieurs images dans une animation
-
-Pour ajouter plusieurs images à une animation, vous pouvez sélectionner toutes les images dans l'explorateur de fichier et les ajouter d'un coup à l'animation.
-
-
-
-Les images seront lues dans le même ordre que celui affiché.
-
-### Répéter l'animation
-
-Par défaut, chaque animation n'est jouée qu'une fois, ce qui signifie que l'animation s'arrête dès la fin de la dernière image. Pour répéter l'animation, nous pouvons faire *boucler* l'animation. Nous pouvons mettre l'animation en mode boucle en cliquant sur l'icône **Loop** (Boucle).
-
-
-
-Une fois qu'une animation est configurée pour être en boucle, elle est lue en continu.
-
-### Régler la vitesse de l'animation
-
-La vitesse de l'animation peut être définie en modifiant la valeur à l'aide de l'icône d'horloge.
-
-
-
-La valeur entrée dans le champ est le temps écoulé entre deux images consécutives. La valeur par défaut est 0,08 seconde. Pour une lecture plus rapide, utilisez une durée d'animation réduite, et pour une lecture plus lente, une durée d'animation plus élevée.
-
-## Donner un nom aux objets
-
-En haut de la boîte de dialogue est affiché le nom de l'objet dans le champ **Object name** (Nom de l'objet). Le nom de l'objet décrit généralement le contenu ou le rôle de cet objet, ce qui permet de le distinguer facilement des autres.
-
-
-
-## Ajouter des objets à la scène
-
-Pour ajouter un objet sprite à la scène, sélectionnez-le dans la liste et cliquez dans la scène pour ajouter une occurrence de cet objet à la scène.
-
-Votre nouveau sprite est maintenant terminé, mais vous devez toujours l'ajouter à votre scène de jeu. Cliquez sur la nouvelle image-objet dans la liste des objets. Ensuite, cliquez sur la scène à laquelle vous souhaitez ajouter le sprite. Vous verrez maintenant votre sprite ajouté à la scène. Vous pouvez ajouter plusieurs *instances* de votre sprite à votre écran de jeu. Répétez simplement le processus pour ajouter le premier sprite.
-
-
-
-## Utiliser plusieurs animations à l'aide d'événements
-
-Après avoir créé plusieurs animations, chacune avec son propre ensemble d'images, vous pouvez utiliser des événements pour basculer entre les diverses animations. Régler la vitesse d'animation entre 0 et 1 garantira qu'elle reste active lors de l'utilisation d'événements.
-
-!!! note
-
- L'utilisation d'une durée d'animation négative désactive les actions d'événement.
-
- _Ne pas utiliser de valeurs négatives._
-
-Lorsque vous avez défini plusieurs animations pour un objet, vous pouvez utiliser l'onglet événements pour **Change the animation (by name)** (Modifier l'animation (par le nom)). Ceci est contrôlé dans la section **Add action** (Ajouter une action) de la condition. Cela permet de passer à l'animation correcte chaque fois que la condition utilisée dans la section**Add condition**(Ajouter une condition) est vraie.
-
-
-
-Comme conseillé précédemment, utilisez des noms d'animation significatifs pour plusieurs animations dans un objet afin de les différencier facilement.
-
-Pour ajouter une action permettant de modifier l'animation à l'aide du nom de l'animation, choisissez la condition **Change the animation (by name)** (Modifier l'animation (par le nom)).
-
-Placez ensuite ce nom dans le champ **Animation name** (Nom de l'animation) entouré de guillemets.
-
-
-
-Pour plus de détails, suivez [les tutoriaux ici](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials).
-
-## Exemples
-
-!!! note
-
- **Voir en action !** 🎮
- Cliquez sur les images pour ouvrir les exemples en ligne.
-
-[](https://editor.gdevelop.io/?project=example://change-scale-of-sprites)
-
-------------------------------------------------------------------------
-
-[](https://editor.gdevelop.io/?project=example://change-sprite-animation)
-
-------------------------------------------------------------------------
-
-[](https://editor.gdevelop.io/?project=example://change-sprite-color)
-
-------------------------------------------------------------------------
-
-[](https://editor.gdevelop.io/?project=example://play-stop-sprite-animation)
diff --git a/docs/fr/gdevelop5/objects/text.md b/docs/fr/gdevelop5/objects/text.md
deleted file mode 100644
index 16d47ea7e87..00000000000
--- a/docs/fr/gdevelop5/objects/text.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: L'objet Text
----
-# L'objet Text
-
-!!! note
-
- **Voir en action !** 🎮
- [Je préférerais examiner des exemples de l'objet Text ! SVP, faites-les moi voir maintenant.](#Examples)
-
-Comme son nom l'indique, un objet texte permet d'afficher du texte à l'écran.
-
-## Créer un objet texte
-
-Nous devons d'abord créer un objet texte en cliquant sur le bouton Ajouter un objet et sélectionner l'objet texte (**Text**) dans la liste.
-
-
-
-## Modifier les propriétés
-
-Pour modifier les propriétés de l'objet texte, cliquez avec le bouton droit de la souris sur l'objet qui vient d'être créé et sélectionnez **Edit object** (Modifier objet) dans la liste. La fenêtre des propriétés de l'objet s'ouvre alors.
-
-
-
-## Modifier le texte
-
-Vous pouvez maintenant modifier le texte affiché par l'objet en cliquant simplement sur le champ de texte (**Text**) et entrez quelque chose d'autre.
-
-
-
-## Modifier la taille
-
-La taille des caractères peut être modifiée en changeant la valeur du champ **Size** (Taille).
-
-
-
-## Modifier la couleur
-
-On peut aussi changer la couleur du texte affiché en cliquant sur la case **Color** située à droite du champ **Size**.
-
-
-
-## Modifier le style de la police
-
-Le style du texte affiché peut aussi être modifié. Nous pouvons choisir entre gras (**Bold**), italique (**Italic**) ou même choisir une police personnalisé dans le champ **Font**.
-
-
-
-En outre, le texte peut être modifié à l'aide d'événements. Dans l'exemple ci-dessous, la taille de l'objet texte est modifié à 150px lorsque la scène est chargée.
-
-
-
-## Exemples
-
-!!! note
-
- **Voir en action !** 🎮
- Ouvrez ces exemples en ligne.
-
-Manipuler un object Text
-
-[](https://editor.gdevelop.io/?project=example://manipulate-text-object)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://manipulate-text-object){ .md-button .md-button--primary }
-
-Fondu–enchaîné d'u texte
-
-[](https://editor.gdevelop.io/?project=example://text-fade-in-out)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-fade-in-out){ .md-button .md-button--primary }
-
-Entrée d'un texte
-
-[](https://editor.gdevelop.io/?project=example://type-on-text-effect)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://type-on-text-effect){ .md-button .md-button--primary }
diff --git a/docs/fr/gdevelop5/objects/text_entry.md b/docs/fr/gdevelop5/objects/text_entry.md
deleted file mode 100644
index 9cce88f5649..00000000000
--- a/docs/fr/gdevelop5/objects/text_entry.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: L'objet Text entry
----
-# L'objet Text entry
-
-!!! tip
-
- **Voir en action !** 🎮
- [Je préférerais examiner des exemples d'objet Text entry ! SVPt, faites-les moi voir maintenant.](/#Examples)
-
-
-L'objet **Text entry** (Saisie de texte) capture le texte entré (tapé) par le joueur et le stocke en mémoire. Vous pouvez utiliser cet objet pour simuler des champs de saisie de texte. Par exemple, vous pouvez utiliser l'objet de saisie de texte pour permettre au joueur d'entrer son nom ou toute autre information.
-
-## Ajouter un objet Text entry
-
-Après avoir créé un nouvel objet dans la liste de l'éditeur d'objets, sélectionnez **Text entry** dans la liste des choix affichée.
-
-
-
-Renommez ensuite l'objet **Text entry** comme bon vous semble, puis ajoutez l'objet **Text entry** dans la scène.
-
-Dès maintenant, si vous exécutez une pré-visualisation de la scène, toutes les touches sur lesquelles vous appuierez seront capturées par l'objet et stockées en mémoire. Pour lire les données stockées dans la mémoire, vous devez utiliser une expression comme celle-ci: **`TextEntry.String ()`** (voir un exemple ci-dessous).
-
-## Afficher une information à l'aide d'un objet Text
-
-Commencez par ajoute un objet **Text** à la scène. Ajoutez ensuite un événement pour modifier le contenu de l'objet Text :
-
-
-
-Pour le dernier paramètre, qui est le nouveau contenu du texte, utilisez l'expression mentionnée ci-dessus :
-
-
-
-!!! note
-
- __Entry__ doit être le nom de l'objet **Text entry** . Vous devez remplacer ce nom par défaut par le nom de votre objet **Text entry**.
-
-Si vous exécutez maintenant une pré-visualisation de la scène, lorsque vous commencerz à taper, vous verrez l'objet **Text** afficher tout ce que vous tapez.
-
-En utilisant des événements, il est possible d'activer ou de désactiver l'objet **Text entry**. Les événements vous permettent également de contrôler quand saisir du texte et ne pas saisir du texte.
-
-
-
-## Exemple
-
-!!! tip
-
- **Voir en action !** 🎮
- Ouvrez cet exemple en ligne.
-
-
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-entry-object){ .md-button .md-button--primary }
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/objects/tiled_sprite.md b/docs/fr/gdevelop5/objects/tiled_sprite.md
deleted file mode 100644
index 7af846b235b..00000000000
--- a/docs/fr/gdevelop5/objects/tiled_sprite.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: tiled_sprite
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-*(remove this paragraph once the translation is finished)*
-
-# Les objets Tiled Sprite
-
-!!! note
-
- **Voir en action !** 🎮
- [Je préférerais examiner des exemples d'objet Tiled Sprite ! S'il vous plaît, faites-les moi voir maintenant.](#Examples)
-
-Un objet **tiled sprite** (que l'on pourrait traduire par_mosaïque de spirites_ ou *mosaïque de tuiles*) permet d'afficher une image sous la forme d'une mosaïque de sprites. Vous pouvez augmenter et diminuer la taille de la mosaïque en redimensionnant l'objet dans la scène.
-
-Un objet mosaïque de sprite peut être utilisé pour créer des plateformes dans un jeu de plateforme. Il peut également être utilisé en tant que groupe d'images identiques. Dans ce cas, il n'est pas nécessaire de manipuler plusieurs objets sprite.
-
-
-
-## Ajouter un objet tiled sprite
-
-Pour ajouter un objet tiled sprite à une scène, créez un nouvel objet à partir de la liste **Objects**. Sélectionnez l'option **Tiled Sprite** dans le panneau qui s'ouvre.
-
-
-
-## Ouvrir les propriété de l'objet
-
-Ensuite, à nouveau dans la liste d'objets à droite, ouvrez les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet. Sélectionnez **Edit object** (Modifier l'objet) dans la liste déroulante qui apparaît.
-
-
-
-## Ajouter une image
-
-Pour ajouter une image à l'objet, cliquez sur le champ **Select an image** (Sélectionner une image). Votre navigateur de fichiers s'ouvre alors sur votre ordinateur. Sélectionnez l'image de votre choix.
-
-
-
-L'image sélectionnée sera affichée dans la fenêtre d'aperçu à droite.
-
-
-
-## Modifier la taille par défaut
-
-Nous pouvons changer la taille par défaut de l'objet mosaïque de sprites en modifiant les valeurs **Default width** (Largeur par défaut) et **Default height** (Hauteur par défaut).
-
-
-
-La taille par défaut affecte la grandeur de l' image qui sera visible dans l'objet. Par exemple, voici à quoi ressemble mon image avec un objet de taille 32x32.
-
-
-
-Comme vous pouvez le constater, l’image ci-dessus n’est pas une mise à l'échelle de l’objet, elle ne montre qu'une partie de l'objet.
-
-Si la taille de l'objet est réglée sur 100x100 (comme indiqué ci-dessous), la taille de l'objet est supérieure à celle de l'image originelle, de sorte que l'objet continue à répéter l'image jusqu'à remplir tout l'espace vide.
-
-
-
-## Mettre l'objet à l'échelle
-
-Vous pouvez obtenir des résultats immédiats en mettant l'objet à l'échelle dans l'éditeur de scène pour créer l'aspect / la taille dont vous avez besoin.
-
-
-
-L'éditeur de scène (Events) peut également être utilisé pour modifier la taille d'une mosaïque de sprite. L'utilisation de l'éditeur de scène rend le jeu plus fluide et intéressant.
-
-
-
-## Exemples
-
-!!! note
-
- **Voir en action !** 🎮
- Ouvrir cet exemple en ligne.
-
-[](https://editor.gdevelop.io/?project=example://platformer)
-
-[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary }
diff --git a/docs/fr/gdevelop5/objects/video.md b/docs/fr/gdevelop5/objects/video.md
deleted file mode 100644
index a430bff9f04..00000000000
--- a/docs/fr/gdevelop5/objects/video.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-title: L'objet Video
----
-# L'objet Video
-
-Un objet vidéo affiche une vidéo à l'écran. Ce qui est parfait pour l'intégration d'une cinématique dans un jeu.
-
-!!! warning
-
- Les fichiers vidéo peuvent être très lourds, même pour de courtes vidéos, ce qui rend le jeu plus long à télécharger et à lancer. Veillez utiliser une compression correcte et limiter autant que possible la longueur de la vidéo.
-
-!!! warning
-
- Avant de pouvoir lire une vidéo, vous devez vous assurer que le joueur a d'abord interagi avec le jeu (un simple clic / toucher sur l'écran permet d'autoriser la lecture des vidéos).
-
-!!! warning
-
-
- Le fichier doit être de format **.mp4** avec les codecs suivant :
-
- * **H264** pour la vidéo
- * **AAC** pour l'audio
-
-
-Les vidéos peuvent être contrôlées à l'aide d'événements : minutage, état (lecture / pause), volume audio ...
-
-## Ajouter une vidéo
-
-Lorsque vous créez un nouvel objet, cliquez sur le bouton **Show Experimental Objects** (Afficher les objets expérimentaux) puis choisissez **Video**.
-
-
-
-Une fois l'objet créé, l'éditeur des propriété s'affiche pour vous permettre de configurer le nouvel objet **Video**.
-
-
-
-## Sélectionner un fichier vidée
-
-Cliquez sur le champ **Video resource** (Ressource vidéo), puis sur **Choose a new video file** (Choisir un nouveau fichier vidéo). Pour avoir une bonne compatibilité avec la plupart des navigateurs, suivez ces conseils pour le format vidéo :
-
-
-!!! warning
-
-
- Le fichier doit être de format **.mp4** avec les codecs suivant :
-
- * **H264** pour la vidéo
- * **AAC** pour l'audio
-
-
-Vous pouvez aussi choisir entre :
-
- * **Loop the video** (Boucler la vidée) : cette option permet de lire la vidéo en boucle. Si vous la cochez, la vidéo recommencera au début lorsque elle arrive à sa fin, et ce jusqu’à ce que vous l’arrêtiez.
- * **Video opacity** (Opacité de la vidéo) : de 0 (invisible) à 255 (opaque — par défaut), cette option modifie la transparence de la vidéo sur la scène.
- * **Video volume** (Volume de la vidéo) : de 0 (silence) à 100 (volume maximum — par défaut), cette option configure le volume sonore de la vidéo.
-
-## Les paramètres de la vidéo
-
-!!! note
-
- Toutes les conditions et actions suivantes font référence aux conditions et actions de la catégorie **Video**.
-
-Vous pourriez avoir besoin de sauvegarder une valeur correspondant à l'état d'une vidéo. Pour cela, il existe des fonctions pour la vidéo, que vous pouvez utiliser dans un champ d'expressions. Ces paramètres sont les suivants :
-
-### Durée de la vidéo
-
-La condition **Duration** (Durée) teste la longueur de la vidéo par rapport à la valeur entrée et du **Sign of the test** (Signe du test) utilisé.
-
-### Fin de la vidéo
-
-Il faut utiliser la condition **Is ended** (est terminée) pour exécuter une action lorsque la vidéo est terminée. Cette condition peut être utilisée pour passer de la vidéo au gameplay ou à quelque chose de similaire.
-
-## Temps de la vidéo
-
-Lorsqu'une vidéo est lue pendant le jeu, il peut arriver que le temps écoulé depuis le début de la vidéo doive être testé pour déclencher des actions telles que **Skip the video** (Sauter le reste de la vidéo) ou provoquer l'ouverture d'une boîte de dialogue du genre **Save the game** (Enregistrer le jeu). Ceci peut être réalisé en utilisant la condition de test **Current time** (Temps actuel).
-
-Vous pouvez également passer à un endroit précis de la vidéo en utilisant l'action **Set time** (Définir le temps). Lorsque la condition correspondant à l'action est vraie, la vidéo sautera à l'endroit voulu en fonction du temps entré et du **Modification's sign** (Signe de la modification).
-
-### Opacité de la vidéo
-
-L'opacité est la mesure de la transparence de la vidéo. Si la condition **Opacity** renvoie 255, cela signifie que la vidéo n'est pas du tout transparente et si elle renvoie 0, elle est totalement transparente. L'opacité par défaut d'une vidéo est de 255.
-
-Nous pouvons définir l'opacité d'une vidéo en utilisant l'action **Set opacité** (Définir l'opacité). Pour une opacité maximale, entrez 255, tandis que pour une transparence totale, entrez 0.
-
-### Vitesse de lecture de la vidéo
-
-La vitesse de lecture de la vidéo est le rapport entre la vitesse actuelle de la vidéo et la vitesse originale de la vidéo. Si la condition **Playback speed** (Vitesse de lecture) retourne une valeur supérieure à 1, la lecture de la vidéo est plus rapide que celle de la vidéo d'origine. Si la condition renvoie une valeur inférieure à 1, la lecture est plus lente que celle de la vidéo d'origine. La valeur par défaut pour la vitesse de lecture est 1.
-
-Pour définir la vitesse de lecture d'une vidéo, utilisez l'action **Set playback speed** (Définir la vitesse de lecture). Pour lire la vidéo à un débit plus rapide que le débit par défaut, définissez une valeur supérieure à 1, puis à une cadence plus lente, définissez la vitesse de lecture sur une valeur inférieure à 1. Pour le paramètre par défaut, utilisez la valeur 1.
-
-### Boucler une vidéo
-
-Lorsqu'une vidéo tourne en boucle, elle recommence depuis le début après avoir atteint la fin. Pour savoir si une vidéo tourne en boucle ou non, utilisez la condition **is looped** (en boucle). Si la vidéo tourne en boucle, la ou les actions correspondantes seront exécutées.
-
-Vous pouvez également mettre une vidéo en boucle dans GDevelop en utilisant l’action **Loop a video** (Faire boucler une vidéo) et en sélectionnant **Yes** pour **Activate loop** (Activer la boucle). Par défaut, une vidéo n'est pas en boucle.
-
-### Couper le son d'une vidéo
-
-Lorsqu'une vidéo est mise en sourdine, aucun son n'est audible dans le jeu. Pour vérifier si une vidéo est muette, utilisez la condition **is mute** (est muette). Si la vidéo est en mode muet, la ou les actions correspondantes seront exécutées.
-
-Vous pouvez mettre une vidéo en sourdine à l'aide de l'action **Mute a video** (Rendre une vidéo muette) et sélectionner **Yes** pour **Activate mute** (Activer muet). Le son de la vidéo est désactivé par défaut.
-
-### Mettre une vidéo en pause
-
-Pour savoir si une vidéo est en pause, utilisez la condition **is pause** (est en pause). Si la vidéo est en pause, les actions correspondantes seront exécutées.
-
-Vous pouvez mettre en pause une vidéo en utilisant l’action **Pause a video** (Mettre une vidéo en pause). Par défaut, la vidéo est en pause.
-
-### Lecture d'une vidéo
-
-Pour voir la vidéo, vous devez d'abord la lire. Pour vérifier si la vidéo est en cours de lecture, utilisez la condition **is played** (est jouée). Si la vidéo est en cours de lecture, la ou les actions correspondantes seront exécutées.
-
-Pour démarrer une vidéo ou reprendre la vidéo après l'avoir mise en pause, vous pouvez utiliser l'action **Play a video** (Lire une vidéo). Par défaut, la vidéo est en pause et a besoin de cette action pour être lue.
-
-### Volume d'une vidéo
-
-Vous pouvez également régler le volume d'une vidéo à l'aide de GDevelop. Pour connaître le volume d'une vidéo, utilisez la condition **Volume**. Le volume maximal d'une vidéo est 100 et le volume minimal est 0 (muet).
-
-Pour régler le volume d'une vidéo, utilisez la condition **Set volume** (Régler le volume). Vous pouvez définir un nombre compris entre 0 et 100. Le volume par défaut est défini à 100.
-
-## Exemple
-
- * Video player: https://editor.gdevelop.io/?project=example://video-player
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/publishing/android_and_ios/index.md b/docs/fr/gdevelop5/publishing/android_and_ios/index.md
deleted file mode 100644
index d6bd414f3f6..00000000000
--- a/docs/fr/gdevelop5/publishing/android_and_ios/index.md
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Publier votre jeu sur Android ou iOS GDevelop permet de publier vos jeux sur plein de platformes différentes, y compris Android et iOS avec les services d'empaquetage ou [manuellement](/gdevelop5/publishing/android_and_ios_with_cordova). Pour exporter un jeu, cliquez/sélectionnez 'Fichier" depuis le menu qui se trouve en haut de l'interface GDevelop. Choisissez l'option d'export que vous voulez. Dans ce cas, nous allons choisir **Android et iOS** depuis le panneau des options d'export.
----
-# Publier votre jeu sur Android ou iOS GDevelop permet de publier vos jeux sur plein de platformes différentes, y compris Android et iOS avec les services d'empaquetage ou [manuellement](/gdevelop5/publishing/android_and_ios_with_cordova). Pour exporter un jeu, cliquez/sélectionnez 'Fichier" depuis le menu qui se trouve en haut de l'interface GDevelop. Choisissez l'option d'export que vous voulez. Dans ce cas, nous allons choisir **Android et iOS** depuis le panneau des options d'export.
-
-
-
-## Soyez sûr que votre jeu est prêt à être publié
-
-Il est important de vérifier que votre jeu est prêt a être exporté pour Android and iOS. * Dans les propriétés du jeu qui sont accessible depuis [Project Manager](/gdevelop5/interface)), soyez sûr que le *nom du paquet* est un nom comme `com.votrenom.nomdujeu`. C'est comme l'adresse d'un site web mais à l'envers. Vous pouvez choisir le nom de paquet que vous souhaitez mais il doit respecter certaines règles :
-
- * le nom de paquet ne doit pas être déjà utilisé par une autre application Android ou iOS.
- * le nom du paquet ne contient que des lettres, nombres et points. Ne mettez qu'un seul point entre chaque mot (exemple de chose à ne **PAS** faire : `com..mygame` ou `..monjeu`) La limite de cet identifiant est de 2 à 5 mots maximums
- * Vérifiez que vous avez inclus les icônes pour votre jeu
-
-. \## Lancer l'export
-
-Dans le menu "Fichier" Choisissez "Export". Puis choisissez **Android (& iOS à venir)**
-
-
-
-### Créez un compte GDevelop si vous n'en avez pas
-
-Pour utiliser l'outil d'exportation pour Android, vous devez [avoir un compte GDevelop](/gdevelop5/interface/profile) Si vous n'avez de compte GDevelop, cliquez sur "Créer mon compte", entrez votre email et choisissez un mot de passe.
-
-Choisissez **APK** ou **Android App Bundle**:
-
-- Un **APK** vous permet d'envoyer un fichier exécutable et installable sur votre téléphone Android. C'est efficace pour **tester rapidement votre jeu sur votre téléphone Android**. - Un **Android App Bundle** (AAB pour faire court) est le format obligatoire pour [publier sur Google Play](/gdevelop5/publishing/android_and_ios/play-store). Quand vous créez un jeu sur la console développeur Google Play, c'est ce fichier AAB que vous allez envoyer.
-
-Quand tout est prêt, exportez le jeu en **AAB** (*Android App Bundle*) pour Android.
-
- Attendez quelques minutes, le temps que le jeu soit exporté. Il y a quelques étapes durant laquelle le jeu est exporté, compressé, envoyé sur le service d'exportation en ligne, puis exporté.
-
-À la fin, vous pourrez **Télécharger** l'APK ou le fichier AAB qui pourra être installé sur Android ou être [publié sur Google Play](/gdevelop5/publishing/android_and_ios/play-store).
-
- \## Installez le jeu sur votre appareil Android (APK) \ Pour tester un jeu sur votre téléphone vous devez avoir exporté le jeu en APK. Si vous voulez distribuer votre jeu sur Google Play, [lisez plutôt cette page](/gdevelop5/publishing/android_and_ios/play-store).
-
-Branchez l'appareil android en USB sur votre ordinateur et mettez l'APK quelque part dans un dossier de votre appareil Anrdoid
-
-(solution alternative : envoyez votre jeu sur [Dropbox](https://www.dropbox.com/), [OneDrive](https://onedrive.live.com/about/en-in/) [mediafire](https://mediafire.com) ou [Google Drive](https://drive.google.com/)pour le télécharger sur votre téléphone depuis l'application ou le site web)
-
-Avant d'installer votre APK, allez dans Paramètres \> Sécurité et autorisez l'installation de *logiciels provenant de sources inconnues*. Cela vous permettera \[d'installer l'APK\]() et des logiciels ne provenant pas de Google Play
-
-Enfin, ouvrez votre *Explorateur de fichiers*, allez dans le dossier qui contient votre APK et cliquez dessus puis démarrez l'installation
-
- 
-
-Quand l'application est installée, cliquez sur *Ouvrir l'application*
-
-### Testez votre jeu
-
-Votre jeu est maintenant installé confortablement dans votre téléphone Vous pouvez le lancer comme n'importe quelle autre application !
-
-Bravo vous avez créé un *jeu pour android* avec GDevelop ! Vous pouvez le mettre à jour facilement en l'exportant une autre fois et en recommençant le processus d'installation !
-
-## S'abonner à GDevelop et avoir plus d'exports par jour...
-
-En tant qu'utilisateur connecté à GDevelop, vous pouvez exporter votre jeu 2 fois par jour pour Android
-
- Si vous voulez avoir plus d'exports par jour, vous pouvez améliorer votre compte pour obtenir plus d'exports par jour ! \**10 exports** par jour avec l'abonnement **Indie** et **70 exports** avec l'abonnement **Pro**.
-
-S'abonner permet de supporter l'auteur de GDevelop et de l'encourager à continuer de travailler dessus ! (GDevelop est open source) En retour, vous obtiendrez plein d'autres fonctionnalités, comme plus d'exports pour Mobile/PC , un debugger en ligne etc...
-
-## Publiez votre jeu sur des "Stores" ("Android App Bundles")
-
-Quand vous avez exporté votre jeu pour Android (et que vous l'avez testé), vous pouvez l'exporter en tant que **Android App Bundle** et le publier sur Google Play. Voir [Cette page pour en savoir plus à propos de la publication sur Google Play](/gdevelop5/publishing/android_and_ios/play-store).
-
-Vous pouvez aussi publier votre app sur [l'Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store) en exportant votre jeu comme **APK**
diff --git a/docs/fr/gdevelop5/publishing/android_and_ios/play-store.md b/docs/fr/gdevelop5/publishing/android_and_ios/play-store.md
deleted file mode 100644
index 163d6f877b0..00000000000
--- a/docs/fr/gdevelop5/publishing/android_and_ios/play-store.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: play-store
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-# Publish your game on the Play Store
-
-After building your game with Android (either using the [one-click build for Android](/gdevelop5/publishing/android_and_ios) or [the manual process with Cordova for advanced users](/gdevelop5/publishing/android_and_ios_with_cordova)), you can publish it on the Google Play Store.
-
-To do this, you need to have an account on Google Play Store. There is a one-time \$25 registration fee asked by Google.
-
-## Create your Google Play Store Develop account
-
-To create your account, go there:
-
-## Package your game
-
-Package your game as explained here. At the end, you'll have a **Download button** to get the .apk file that can be installed on Android.
-
-Download this APK and keep it somewhere on your computer.
-
-## Create the app and fill in the app details
-
-Connect to the Play Store Developer Console (). On the pages listing your applications, click on **Create Application**:
-
-
-
-Enter a title and choose a language. The application is created on the Play Store and you're now able to complete the information that will be displayed on the Play Store:
-
-
-
-Don't forget to add screenshots and promo graphics:
-
-
-
-Click on the button on the bottom of the page to submit all that you've entered.
-
-## Upload the game .apk file
-
-In the menu on the left, click on App Releases. Then, on the right, choose **Manage Production**:
-
-
-
-Click then on **Create Release**.
-
-A new form appears. If you're asked for Google Play App Signing, click on **Opt Out**, than on **Confirm** for now.
-
-In **APKs to add**, choose **Browse files**, then select the .apk file that you downloaded earlier: 
-
-The APK is uploaded to the Play Store. Wait a bit. Once it's finished, you should see a message telling that the upload finished successfully.
-
-If there is an error telling you that the upload failed, read the error message to know more about what went wrong. Usually it means that:
-
-* The package name is not correct. In GDevelop, using [the project manager](http://wiki.compilgames.net/doku.php/gdevelop5/interface/project-manager), enter a new, unique package name
-* Or you used the same package name as an existing application. Choose another in the [the project manager](http://wiki.compilgames.net/doku.php/gdevelop5/interface/project-manager) and package again your game to create a new APK.
-
-If the upload is a success, you can see your APK file listed below: 
-
-In **What's new in this release?**, enter the release notes that should be displayed on the play store. Finish by clicking on Save:
-
-
-
-## Finish entering all the details about the game
-
-Before making your game public, you must finish the enter all the details about your game, including the price and find a rating for the content. Everything that you must still complete is listed in the menu and can be seen thanks to a "warning" icon:
-
-
-
-## Publish the game!
-
-Once you've completed everything, entered a nice description, set up beautiful screenshots and uploaded the .apk of your game, you can go back to the **App Releases** page. Click on **Manage Production** or **Edit release**. In the page where you've uploaded your apk, you can still upload a new apk if you want to change it (if you made changes in your game).
-
-When you're ready, click on **Review** (or **Save** and then **Review**) at the bottom of the page.
-
-A final screen is shown: 
-
-When you're ready, click on **Roll out to production** (if it's grayed, then you forgot to complete something, check again everything in the menu on the left).
-
-## Congratulations! The game is on the Play Store.
-
-**Congrats!** You've made it and published your game. Some users can have to wait for a few hours before seeing the game in the Play Store.
-
-Remember to send some Tweets to GDevelop and/or a messages on the forum to let the community know that you've published a game 🚀
diff --git a/docs/fr/gdevelop5/publishing/android_and_ios_with_cordova.md b/docs/fr/gdevelop5/publishing/android_and_ios_with_cordova.md
deleted file mode 100644
index 9d9260c3282..00000000000
--- a/docs/fr/gdevelop5/publishing/android_and_ios_with_cordova.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Publication Android et iOS manuel avec Cordova
----
-# Publication Android et iOS manuel avec Cordova
-
-Depuis GDevelop vous pouvez publier vos jeux sur Android et iOS. Pour exporter notre jeu, cliquez sur Fichier en haut et sélectionnez l'option Exporter. Vous pouvez alors choisir la première **[Android et iOS](/gdevelop5/publishing/android_and_ios)** option, qui utilisera les services en ligne de GDevelop pour créer automatiquement votre jeu pour Android et iOS.
-
-Si vous voulez plus de contrôle ou si vous avez des besoins particuliers, vous pouvez également choisir l'option **iOS et Android (manuel)**. Cette option exporte votre jeu en tant que projet Cordova. [Cordova](https://cordova.apache.org/), également connu sous le nom de PhoneGap, est une technologie permettant aux jeux et applications HTML5 de fonctionner sur Android et iOS et d'être packagés en tant qu'applications (APK et IPA ), puis distribués sur l'App Store ou Play Store.
-
-## Choisissez un dossier
-
-Tout d'abord, choisissez un dossier dans lequel le jeu sera exporté. Il est recommandé de choisir un dossier vide, au moins pour la première fois, afin d'éviter de perdre tout fichier qui pourrait être écrasé par l'exportation.
-
-## Lancez l'exportation
-
-Vous pouvez ensuite cliquer sur Exporter. Le jeu sera exporté en comme un projet Cordova.
-
-Vous pouvez ensuite utiliser [Cordova](https://cordova.apache.org/) ou PhoneGap Build pour conditionner votre jeu sous forme d'application Android ou iOS.
-
-## Exportation vers d'autres plateformes (Web, Windows, MacOS, Linux)
-
-Voir [les autres options](/gdevelop5/publishing) d'exportation pour apprendre comment publier votre jeu sur d'autres plateformes!
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/publishing/choix_type_export_android_gdevelop_fr.png b/docs/fr/gdevelop5/publishing/choix_type_export_android_gdevelop_fr.png
deleted file mode 100644
index f0e4c61100d..00000000000
Binary files a/docs/fr/gdevelop5/publishing/choix_type_export_android_gdevelop_fr.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/publishing/export_android_gdevelop_fr_choix.png b/docs/fr/gdevelop5/publishing/export_android_gdevelop_fr_choix.png
deleted file mode 100644
index 44220230985..00000000000
Binary files a/docs/fr/gdevelop5/publishing/export_android_gdevelop_fr_choix.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/publishing/gdevelop_export_fr.png b/docs/fr/gdevelop5/publishing/gdevelop_export_fr.png
deleted file mode 100644
index 917739d61df..00000000000
Binary files a/docs/fr/gdevelop5/publishing/gdevelop_export_fr.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/publishing/index.md b/docs/fr/gdevelop5/publishing/index.md
deleted file mode 100644
index a676a681b31..00000000000
--- a/docs/fr/gdevelop5/publishing/index.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Publier des jeux
----
-# Publier des jeux
-
-De GDevelop vous pouvez publier vos jeux sur toutes les plateformes modernes! Tout d'abord, elle doit être exportée.
-
-Pour exporter votre jeu, cliquez sur Fichier en haut de la page et sélectionnez l'option Exporter.
-
-
-Ensuite, de multiples options vous seront proposées:
-
-
- * **[Android (et iOS bientôt disponible)](/gdevelop5/publishing/android_and_ios):** cela prépare votre jeu pour Android (et la prise en charge d'iOS arrive bientôt), faites un export en ligne, en utilisant les services de GDevelop, puis envoyez un lien pour que vous puissiez l'installer sur Android et [le publier sur le Play Store](/fr/gdevelop5/publishing/android_and_ios/play-store) (ou l'App Store plus tard pour iOS).
-
- * **[Facebook Instant Games (Messenger)](/fr/gdevelop5/publishing/publishing-to-facebook-instant-games):** Préparez votre jeu pour qu'il puisse être téléchargé sur Facebook Instant Games et joué sur Messenger, partagé avec vos amis et ensuite publié dans le monde entier.
-
- * **[Web (téléchargement en ligne)](/fr/gdevelop5/publishing/web)**: cette option chargera votre jeu sur l'hébergement GDevelop, gratuitement. Vous pouvez ensuite le partager avec n'importe qui en cliquant sur un bouton.
-
- * **Windows/macOS/Linux(Bientôt disponible)**: Cette option regroupe votre jeu sous forme d'application Windows, MacOS ou Linux, exportez le en ligne, en utilisant les services de GDevelop, puis envoyez un lien pour que vous puissiez distribuer le jeu.
-
-Il y a aussi des exportations pour les utilisateurs avancés:
-
- * **[Exportation vers un dossier local](/gdevelop5/publishing/html5_game_in_a_local_folder):** Cette option vous permet d'exporter votre jeu dans un dossier et de le télécharger manuellement vers n'importe quel hôte que vous voulez ou de l'envelopper dans un bureau ou une application mobile manuellement en utilisant n'importe quel outil que vous préférez, comme peut le faire Electron.
- * **[iOS & android (manuel)](/fr/gdevelop5/publishing/android_and_ios_with_cordova):** cette option va exporter votre jeu prêt à être utilisé comme un projet Cordova. Vous pouvez ensuite utiliser les outils de ligne de commande Cordova pour créer votre jeu pour Android et iOS.
diff --git a/docs/fr/gdevelop5/publishing/install_apk_on_device.png b/docs/fr/gdevelop5/publishing/install_apk_on_device.png
deleted file mode 100644
index bc153a9093d..00000000000
Binary files a/docs/fr/gdevelop5/publishing/install_apk_on_device.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/publishing/publishing-to-facebook-instant-games.md b/docs/fr/gdevelop5/publishing/publishing-to-facebook-instant-games.md
deleted file mode 100644
index e3bdb27fc04..00000000000
--- a/docs/fr/gdevelop5/publishing/publishing-to-facebook-instant-games.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: Publiez votre jeu sur Messenger avec Facebook Instant Games.
----
-# Publiez votre jeu sur Messenger avec Facebook Instant Games.
-
-Les jeux Facebook Instant Games sont des jeux auxquels vous pouvez jouer avec vos amis sur Facebook Messenger.
-
-## Créez un compte et une application sur Facebook Developers.
-
-Allez sur [Facebook Developers](https://developers.facebook.com/apps/) et créez une application :
-
-
-Entrez le nom de votre jeu et votre email de contact :
-
-
-Ouvrez les *paramètres de base* de votre application :
-
-
-
-Et choisissez Jeux comme catégorie :
-
-
-
-Remplissez également les autres champs nécessaires à la publication de votre jeu. C'est aussi sur cette page que vous pouvez télécharger les icônes et entrer d'autres détails de votre jeu.
-
-Une fois que vous avez terminé, activez Instant Games. Cliquez sur le bouton + à proximité des produits :
-
-
-
-et choisissez **Instant Games**. Votre application est maintenant prête à télécharger le jeu !
-
-## Exportez et téléchargez votre jeu
-
-Dans GDevelop, ouvrez la fenêtre d'exportation. Choisissez Facebook Instant Games :
-
-
-
-Dans la fenêtre, cliquez sur **Export**. Après quelques secondes, lorsque l'exportation est terminée, cliquez sur Ouvrir le dossier pour voir le fichier contenant votre jeu :
-
-
-
-Retournez sur Facebook Developers et choisissez **Hébergement Web** dans le menu Instant Games :
-
-
-
-Cliquez sur le bouton **Upload Version** à droite et choisissez le fichier qui a été créé par GDevelop.
-Lorsque le téléchargement est terminé, attendez quelques secondes pour que Facebook traite votre jeu.
-
-Cliquez sur l'icône Étoile pour marquer la version que vous avez téléchargée comme étant prête pour la production :
-
-
-!!! note
-
- Il est important de le faire *même si vous ne voulez pas encore publier le jeu* ! Si vous n'avez pas une version marquée avec l'étoile comme étant prête pour la production, vous ne pourrez pas tester votre jeu.
-
-## (Facultatif) Ajouter des testeurs
-
-Pour permettre à vos amis ou collègues de tester le jeu, ajoutez-les comme testeurs. Dans le menu de gauche, cliquez sur Rôles :
-
-
-
-Cliquez ensuite sur le bouton **Ajouter des testeurs** et ajoutez vos amis/collaborateurs.
-
-## Testez votre jeu !
-
-Sur votre téléphone, ouvrez Facebook Messenger. Allez à une conversation, cliquez sur le bouton **+** et choisissez **Jeux** :
-
-
-
-Choisissez votre jeu dans la liste :
-
-
-
-**Votre jeu commence ! ** Si pour une raison quelconque, vous ne pouvez pas voir votre jeu, assurez-vous d'avoir correctement rempli les informations et envoyé le fichier zip sur Facebook Developers. Assurez-vous que le téléphone que vous utilisez est connecté à votre compte Facebook ou à celui d'un testeur.
-
-## Envoyez votre jeu pour l'évaluer et le publier
-
-Envoyez les nouvelles versions de votre jeu jusqu'à ce que vous en soyez satisfait. Assurez-vous de remplir toutes les informations et d'ajouter des images de haute qualité. Une fois que vous êtes prêt, cliquez sur le menu **Review** pour envoyer votre jeu afin qu'il soit évalué par Facebook.
-
-Lisez [cette liste de contrôle pour le lancement du jeu avec Facebook](https://developers.facebook.com/docs/games/instant-games/getting-started/launch-checklist) et assurez-vous d'avoir suivi toutes les directives pour maximiser vos chances de voir votre jeu approuvé.
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/publishing/publishing-to-itch-io.md b/docs/fr/gdevelop5/publishing/publishing-to-itch-io.md
deleted file mode 100644
index 2119d2b9e24..00000000000
--- a/docs/fr/gdevelop5/publishing/publishing-to-itch-io.md
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: Publier votre jeu sur itch.io
----
-# Publier votre jeu sur itch.io
-
-## Qu'est-ce que itch.io ?
-
- [itch.io](https://itch.io) est un site d'hébergement et de vente de jeux ouvert à tous avec une attention particulière portée sur les développeurs indépendants.
-
-Les développeurs ont accès à une analyse détaillée sur les visites de leurs créations comme le nombre de téléchargement ou les sites de provenance.
-
-------------------------------------------------------------------------
-
-## Pourquoi itch.io ?
-
-- Il est complètement **gratuit et ouvert à tous**.
-- La **préparation du contenu** à envoyer est simple
-- Les **mises à jour** de contenu sont tout aussi simple.
-- Un carnet de bord "Devlog" est intégré.
-- Il laisse le choix **d'activer les commentaire** et de mettre en place un **forum pour la communauté**.
-- Il n'y aucune restriction sur la qualité du contenu.
-- Le contenu envoyé est optimisé pour les moteurs de recherches.
-- Les jeux partagés peuvent être compatible Windows, Linux, Mac, Android ou des jeux HTML5 jouables directement dans un navigateur.
-- Il permet de **gagner de l'argent** sans officialiser une structure juridique. itch.io gère les paiements, les demandes de remboursement, paye les taxes pour vous et les bénéfices peuvent être récupéré à tout moment.
-- Dans le cas d'une officialisation de structure, itch.io continue de gérer les transactions mais les taxes et les demandes de remboursement sont à votre responsabilité.
-- Un **prix** peut être défini pour vos créations mais il est possible de les distribuer **gratuitement** ou d'accepter les dons. La décision du prix peut également être laissé à l'acheteur.
-- La part de bénéfice reversé à l'hébergeur est aussi flexible. C'est ce rend itch.io unique en son genre. Cette part peut être de 0%. itch.io hébergera néanmoins vos créations gratuitement en espérant qu'un futur succès vous donnera envie de les remercier.
-- **Aucune publicité** ne vient perturber l'exploration des jeux.
-- Il est compatible avec Patreon et permet de donner l'accès à votre contenu aux personnes qui vous soutiennent.
-
-Il est cependant uniquement en anglais : amis non-anglophones, passez votre chemin !
-
-## Exporter un projet
-
- Commençons par exporter notre jeu dans une version prête à être publiée et jouable depuis un navigateur ou exécutable sur un ordinateur. **Cliquez** sur l’icône à gauche de ce texte. Elle est **en haut à gauche** de la fenêtre de GDevelop.
-
-
-
-Une boite de dialogue apparait et permet de choisir pour quelle plateforme exporter le jeu. Ce tutoriel se concentre sur l'export HTML5 qui permet de jouer directement depuis un navigateur. Défilez vers le bas si nécessaire jusqu'à voir apparaitre **Advanced** et choisissez **Dossier local**.
-
-
-
-Créez un dossier vide sur votre ordinateur et choisissez-le en cliquant sur **Choose Folder**. Ici, le dossier **Endless Runner** a été choisi.
-
-## Créer une archive Zip du projet exporté
-
-Préparer un jeu pour itch.io est très simple. La seule chose à faire est d'archiver le dossier exporté dans un fichier ZIP. Il faut tout de même bien veiller à ce que le fichier "index.html" soit dans le dossier archivé et non dans un sous-dossier.
-
-Pour compresser le dossier au format ZIP, vous aurez besoin d'un logiciel de compression. Il en existe de nombreux. En voici un très couramment utilisé : [7-Zip](http://www.7-zip.org), il est complètement gratuit et facile à utiliser. Téléchargez donc 7-Zip et installez-le. Une fois cela fait, faites un clic droit sur le dossier contenant votre jeu : vous devriez voir apparaitre 7-Zip dans la liste des choix. Cliquez sur "Ajouter à l'archive".
-
-
-
-Si le clic droit sur le dossier ne permet de faire apparaitre 7-Zip dans la liste de choix, lancez 7-Zip normalement, puis cliquez sur le bouton "Ajouter".
-
-
-
-Différentes options s'offrent alors à vous, ne vous en préoccupez pas ! Cliquez simplement sur "OK" afin de lancer la création de votre fichier Zip. Une fois cela fait, le fichier Zip obtenu sera prêt à être chargé sur itch.io
-
-## Envoyer votre projet sur itch.io
-
-Vous allez ensuite devoir [créer votre compte itch.io](https://itch.io/register). Il s'agit là d'une procédure classique, suivez simplement les instructions qui vous sont données par le site. (nous ne détaillerons pas toute la procédure dans cet article)
-
-Une fois votre comte itch.io créé, connectez-vous, allez sur la page "Dashboard", puis cliquez sur le bouton "Create new project"
-
-
-
-Vous pouvez à présent paramétrer votre projet. Voici les rubriques principales :
-
-- **Title :** C'est le titre de votre jeu, il doit être unique.
-- **Project URL :** C'est l'adresse URL où votre jeu sera sur itch.io. Ordinairement, ce devrait être proche de cela : votrenom.itch.io/nom-de-votre-jeu. Le nom du jeu dans l'URL peut être ce que vous désirez, c'est à vous de choisir librement.
-- **Classification :** Vous choisissez ici le type de contenu que vous voulez charger : jeu, livre.... (dans notre exemple, nous choisirons bien entendu "game" )
-- **Kind of project :** vous choisissez ici le type de projet que vous désirez charger : jeu télechargeable, HTML, ... Nous choisirons pour notre exemple "HTML"
-- **Pricing :** C'est ici que vous choisissez si votre jeu : accepte les dons, est payant ou est gratuit.
-- **Uploads :** C'est grâce à ce bouton que vous pouvez charger votre jeu sur itch.io
-
-
-
-Cliquez sur le bouton "Uploads", et sélectionnez le fichier ZIP que vous venez de créer : le chargement commence. Une fois terminé, vous aurez le choix entre différentes options :
-
-
-
-Vous pouvez choisir si le fichier que vous venez de charger est un exécutable, un livre, un code source ou un mode. Vous pouvez également choisir la plateforme et le prix pour chaque fichier que vous aurez chargé. L'option la plus importante pour nous dans notre exemple est "This file will be played in the browser".
-
-
-
-En cochant la case, cela permettra de pouvoir lancer notre jeu HTML dans les navigateurs.
-
-Enfin, cliquez sur le bouton "Save and view page".
-
-
-
-Après avoir chargé un aperçu de la page de notre jeu, le jeu se lancera dans votre navigateur (si vous n'avez pas fait d'erreur !).
-
-## Partager votre projet
-
-La dernière chose restante à faire est à présent de rendre le jeu public afin que tout le monde puiss y jouer. Pour faire ceci, cliquez sur le bouton "Edit game" en haut (ou retournez sur le Dashboard) La page de création de projet va s'ouvrir, et vous pourrez activer l'option afin de rendre votre jeu public.
-
-
-
-Cliquez ensuite sur le bouton "Save".
-
-Voilà, c'est terminé ! Tout le monde est à présent en mesure de trouver et jouer à votre jeu ! Vous avez également la possibilité de partager un lien afin qu’un maximum de personnes joue à votre jeu !
-
-!!! note
-
- N'oubliez pas de renseigner GDevelop comme moteur utilisé dans les métadonnées. Il apparaitra sur [la page "made with GDevelop"](https://itch.io/games/made-with-gdevelop)
diff --git a/docs/fr/gdevelop5/publishing/screenshot_apk_on_android_fr.png b/docs/fr/gdevelop5/publishing/screenshot_apk_on_android_fr.png
deleted file mode 100644
index 948f14d0309..00000000000
Binary files a/docs/fr/gdevelop5/publishing/screenshot_apk_on_android_fr.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/publishing/web.md b/docs/fr/gdevelop5/publishing/web.md
deleted file mode 100644
index e459a1dee71..00000000000
--- a/docs/fr/gdevelop5/publishing/web.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Publier votre jeu sur le web (télécharger en ligne)
----
-# Publier votre jeu sur le web (télécharger en ligne)
-
-A partir de GDevelop, vous pouvez exporter votre jeu et le publier sur le web, en utilisant les serveurs d'hébergement de GDevelop. Cet hébergement est gratuit et votre jeu sera disponible pour quelques jours !
-
-Pour ce faire, dans le menu Fichier, sélectionnez Exporter. Ensuite, choisissez **Web (télécharger en ligne)** et cliquez simplement sur **Exporter et télécharger mon jeu**.
-
-
-
-Le jeu sera hébergé sur des serveurs d'hébergement GDevelop (soutenus par des services Amazon ) et disponible pour quelques jours gratuitement afin que vous puissiez partager votre jeu.
-
-Notez que le lien est **privé** par défaut, et n'est partagé nulle part : vous pouvez alors partager le lien vers le jeu à quelques personnes ou à un public plus large selon vos besoins.
-
-## Exportation vers d'autres plates-formes (iOS, Android, Windows, macOS, Linux)
-
-Voir les [autres options d'exportation](/fr/gdevelop5/publishing) pour apprendre à publier votre jeu sur d'autres plates-formes !
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/fr/gdevelop5/tutorials/basic-game-making-concepts.md
deleted file mode 100644
index f4c59f5496e..00000000000
--- a/docs/fr/gdevelop5/tutorials/basic-game-making-concepts.md
+++ /dev/null
@@ -1,134 +0,0 @@
----
-title: Concepts de base pour créer un jeu - ce dont vous avez besoin pour démarrer avec GDevelop
----
-# Concepts de base pour créer un jeu : ce dont vous avez besoin pour démarrer avec GDevelop
-
-Les concepts de base de GDevelop sont simples. Lisez les informations suivante pour commencer sereinement avec cette application. Si vous n'avez pas encore GDevelop, [Téléchargez le depuis le site](https://gdevelop.io/download)!
-
-## Coordonnées
-
-Les objets sont repérés sur la scène à partir de leurs coordonnées X et Y correspondant respectivement à la position horizontale (axe-X) et la position verticale (axe-Y) sur un plan cartésien.
-
-Les coordonnées en abscisse (axe des X) sont croissantes de gauche à droite et les coordonnées en ordonnées (axe des Y) sont croissantes de haut en bas.
-
-
-
-Parallèlement, pour déplacer ou tourner des objets, vous avez besoin de spécifier un angle en degré. Observez le schéma suivant pour comprendre comment sont ordonnés les degrés de 0 à 360° (en tournant dans le sens des aiguilles d’une montre à partir de 3h):
-
-
-
-Si vous utilisez des fonctions trigonométriques comme le **sinus** ou le **cosinus**, notez que vous devrez exprimer les angles en **radians** (1 radian =180/Π degrés et 1 degré= Π/180 radians, Π(Pi) étant approximativement égal à 3.14159)
-
-## Comment les événements affectent les objets
-
-Les événements, que vous utilisez pour créer les règles et interaction de votre jeu, sont composés de conditions et d’actions.
-La majorité des conditions et actions se réfèrent à des objets. Les conditions effectuent des tests sur les objets et les actions les manipulent, les transforment.
-
- * Une action sans condition s’appliquera à tous les objets.
- * Si vous utilisez un objet pour la première fois dans un événement, GDevelop testera et modifiera **tous les objets** qui portent le même nom dans la scène.
- * Si vous ré-utilisez cet objet dans le même événement, GDevelop ne testera et ne modifiera que les objets qui ont été affectés par la condition initiale.
-
-Ce processus est au cœur de la logique de l’application.
-Ainsi l’exemple suivant supprimera **tous** les objets nommés "Square" (Carré):
-
-
-
-Tandis que l’événement suivant supprimera **seulement** les objets "Square"(Carré) dont la position X est inférieur à 100 pixels:
-
-
-
-!!! tip
-
- **À voir en action!** 🎮Ouvrez cet exemple en ligne et allez observer les événements: https://editor.gdevelop.io/?project=example://object-selection
-
-## Événement: L'importance de l'ordre
-
-L'ordre dans lequel sont listés les événement est important: Les événement du haut de la liste sont exécutés les premiers. Chaque fois que votre jeu est affiché (appelé "Vue"), 60 fois par seconde les événements sont exécutés.
-Les exemples suivantes ne sont pas équivalents:
-
-
-
-
-
-* La première paire d'événements crée un objet "Square" (Carré) à la position 200;100 et le supprime immédiatement. **Aucun** "Square" n'est affiché à l'écran (car il a été supprimé dans la fraction de seconde de sa création).
-* La seconde paire d'événements supprimera tous les objets "Square" de la scène et en créera un à la position 200;100. Ainsi un carré sera visible sur la scène (avant d'être effacé et recréé immédiatement lors du prochain affichage de la vue)
-
-!!! note
-
- Par exemple: Un jeu tournant à 60 images par seconde, si vous avez un seul événement, sans condition à l'intérieur et juste une action pour créer un objet sur la scène, alors cette action sera exécuté 60 fois en une seconde.
- Vous aurez donc à chaque seconde 60 objets de plus sur la scène.
-
-## Déplacer les objets en leur intégrant des forces
-
-Les objets peuvent se déplacer en leur intégrant à des **forces** qui les "poussent".
-
-Vous pouvez spécifier des coordonnées cartésiennes à une force (par exemple en spécifiant des X et des Y en pixels). Ces coordonnées polaires définissent une longueur et une direction vectorielle (un angle) qui sera soumis à une force de glissement (le contraire d’une force de résistance). Cette **force de glissement** aura un coefficient compris entre 0 et 1. Chaque seconde, la puissance (longueur) de la force est multipliée par ce coefficient. Ainsi si la valeur est de 1, la puissance ne diminue pas et la vitesse reste constante. Au contraire, si le coefficient est 0, la résistance est totale et l’objet stoppe immédiatement. Les valeurs intermédiaires feront que l’objet ralentira de plus en plus jusqu’à s’arrêter.
-
-Certains [comportements](http://www.wiki.compilgames.net/doku.php/fr/gdevelop5/behaviors) que vous pouvez affecter à des objets pour les déplacer "par défaut" (par exemple un objet déplacé à l’aide de la souris). Vous n’aurez pas besoin d’utiliser les forces (voir plus loin).
-
-### Exemple
-
-Comment faire bouger ce personnage vers le bas:
-
-
-
-Vous pouvez ajouter une force à l’aide des coordonnées X/Y en indiquant 0 pour X (on ne va ni à droite ni à gauche) et en précisant 150 (pixels) pour Y. Vous pourriez aussi utiliser les coordonnées polaires (vectorielles) en ajoutant une force avec un angle de 90 (degrés) et une longueur de 150 (pixels).
-
-### Autres façons de déplacer les objets
-
-Certains comportements, comme le comportement Physique ou le Détecteur de chemin peuvent déplacer les objets eux-mêmes. Dans ces cas, il est préférable de ne pas utiliser les forces "internes" mais de s'en remettre seulement aux actions qui sont gérées au niveau du comportement lui-même.
-
-!!! tip
-
- **À voir!** 🎮Ouvrez et décortiquez cet exemple en ligne: https://editor.gdevelop.io/?project=example://move-object-with-physics
-
-## Les variables
-
-Les variables vous servent à stocker des **données**, comme des nombres ou du texte. On pourrait les comparer à des tiroirs ou des boites dans lesquels on garderait en mémoire quelques petites notes et informations à réutiliser plus tard. Toutes les données qui peuvent être stockées si on peut les exprimer en _texte_ ou en _nombre_: Nombre de vies restantes, meilleur score, nombre de balles en réserve, nombre d’ennemis neutralisés, pseudo de la personne qui joue… Vous allez probablement souvent utiliser des nombres, mais pas seulement si vous voulez personnaliser l’expérience :)
-
-
-
-La _valeur_ d’une variable pourra donc être testée par des conditions ou modifiée par des actions.
-
-#### Où sont les variables? (Typologie des "variables")
-
-Il existe plusieurs types de variable qui différencient leur rayon d’utilisation. Il y a trois types de variable dans GDevelop qui détermineront quand et comment elles sont utilisables.:
-
-* **Globale**: variable accessible par toutes les scènes d’un jeu. Typiquement on les utilisera pour stocker le score du joueur d’un niveau à l’autre ou encore son pseudo tout au long de la partie.
-* **Scène** : variable qu’on utilisera uniquement au sein d’une scène (ou d’un niveau). Par exemple pour compter le nombre d’ennemis encore présents dans le niveau, pour gérer le temps qu’il reste pour sortir de la scène.;
-* **Objet**: chaque objet peut contenir ses propres variables. Par exemple un compteur de "santé" pour un objet qui à chaque fois qu’il sera touché diminuera. Ainsi si on génère automatiquement une horde d’ennemis, chacun aura sa propre variable "Santé".
-
-!!! note
-
- Lisez le chapître des [Variables](/gdevelop5/all-features/variables). Les variables sont très utilisées et de nombreux exemples et tutoriaux illustreront une partie des infinies possibilités qu’elles offrent..
-## Une notion avancée : le "temps écoulé" depuis la dernière image (TimeDelta)
-
-Le jeu évalue les événements et repeint l'écran plusieurs fois par seconde : on dit que le jeu est _rafraîchi_, _mis à jour_ lors d'un "tick". La fréquence de ce phénomène dépend des ressources de votre ordinateur : un ordinateur lent peut rendre 25 images par seconde, un ordinateur rapide 60. GDevelop peut généralement s'assurer que cette valeur est la même sur tous les ordinateurs. Cependant, la vitesse de certaines opérations peut changer d'un ordinateur à l'autre, par exemple, les opérations mathématiques et le rendu des mouvements.
-
-Pour rendre la vitesse des changements constante, utilisez l'expression //`TimeDelta()`//, qui retourne le temps en secondes depuis la dernière image.
-
-Par exemple, ne faites pas :
-
-
-
-Mais plutôt :
-
-
-
-* Le premier événement consiste à ajouter 20 à la variable à chaque fois que le jeu est rafraîchi (c'est-à-dire autant que possible, jusqu'à 60 fois par seconde). Il n'est **pas correct** d'utiliser un tel événement car la vitesse d'augmentation de la variable ne sera pas la même d'un ordinateur à l'autre : nous ne pouvons pas prédire la valeur de la variable après 10 secondes par exemple - car elle dépend du nombre d'images du jeu peintes.
-
-* Le deuxième événement est **correct et fiable** : le nombre 300 est multiplié par TimeDelta(). Ainsi, la variable sera augmentée en même temps sur tous les ordinateurs. Comme TimeDelta() renvoie un temps en seconde, il vous permet de quantifier exactement l'accroissement : dans notre cas, la variable augmentera à 300 unités/seconde. Ainsi, nous pouvons prédire que les points de vie augmenteront de 3000 unités en 10 secondes - indépendament du nombre de rafraîchissements effectués durant cette période.
-
-!!! tip
-
- Comme GDevelop exécute votre jeu à un maximum de 60 images par seconde, vous ne remarquerez généralement pas de problème si vous utilisez le premier événement. C'est toujours une bonne idée de garder un oeil sur cela et d'utiliser la version avec `TimeDelta()` à la place.
-
-**Règle de base : ** Utilisez _TimeDelta()_ lorsque vous souhaitez ajouter continuellement un certain montant à une valeur. Si votre action est censée être lancée une seule fois (par exemple, lors d'une collision où vous effacez ensuite l'objet), vous pouvez utiliser une valeur discrète sans TimeDelta - car elle ne dépend pas de la vitesse du jeu.
-
-!!! danger
-
- Lorsque vous déplacez un objet en utilisant des forces, il n'est pas nécessaire d'utiliser TimeDelta() car GDevelop l'utilise automatiquement.
-
-## Et… c’est l’essentiel de ce que vous devez savoir (ou presque)
-
-➡️ Mais vous pouvez peut-être poursuivre votre lecture par **[les tutoriels](/fr/gdevelop5/tutorials)** pour en savoir un peu plus à propos de la création de jeux interactifs, inventifs et puissants avec GDevelop!
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/beginner-tutorial.md b/docs/fr/gdevelop5/tutorials/beginner-tutorial.md
deleted file mode 100644
index b0d5ea5edf7..00000000000
--- a/docs/fr/gdevelop5/tutorials/beginner-tutorial.md
+++ /dev/null
@@ -1,218 +0,0 @@
----
-title: beginner-tutorial
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-##Beginner tutorial
-
-This tutorial will help you to begin to use GDevelop: You will create a very simple game where enemies are moving toward the player, and we can shot the enemies which is going to explode. 
-
-To get an overview of the software I recommend to read the [](/gdevelop5/getting_started) page first.
-
-### Download GDevelop
-
-If you do not have GDevelop, download it from the official website : [Compilgames.net](http://compilgames.net) Always download GD from this page to be sure to have the latest version. Ounce you have GDevelop installed and launched, the start page is displayed: 
-
-### Download the source
-
-You can download the finished project from here  so you can see how it done in case you get stuck or don't understand something.
-
-### Create a new project
-
-Click create new project on the start page. Next you have the option to create a new project using an example or create an empty project.  In this case we need an empty project but before select it, we need to choose a folder on the bottom of this page to select where our project is going to be stored.  To select a custom location, we need to click the choose folder button and browse the file system of our computer to find the folder we want to use. 
-
-Once we have a folder selected, just click the blank project option in the list. 
-
-### Create a new scene
-
-The first thing we want to do is create a new scene. Just click the add scene button in the Project manager 
-
-Next, click on the NewScene we have just created and it should open the scene editor.
-
-### Get the images and resources
-
-Before going further, we'll need some images for our game. You can download them here : [Download images](http://www.compilgames.net/dl/BeginnerTutorial2Images.zip)
-
-Once you have downloaded this file, extract its content in the folder where you created the project.
-
-### Create the player turret
-
-The player will be controlling a turret to shot on the enemies. In the Objects editor choose Add a new object.  A window pop up so as to choose the type of the object to create: 
-
-We want to create a sprite object so let select that one from the list. Next, the object properties panel should be displayed by default. If it not, just right click on the NewObject in the Object editor and select Edit object from the list.
-
-Next we want to add an animation to the object so let click the add animation button in the properties window. 
-
-Now we should see the animation properties of the object. 
-
-Next we want to add the turret image as an animation, so let click the big plus symbol and browse our project folder for the image aaguntopdown.png. Next the image should be displayed in the window. 
-
-Finally, just click apply to save the changes.
-
-Next, let rename the object if we haven't done it already. Right click on the turret object in the Object editor and select Rename from the list and type the name turret in place so later we can refer to this object using the name turret. 
-
-### Add turret to the scene
-
-To add the turret to the scene, select the turret in the Object editor then click in the scene editor. It should create a turret in the scene that we can select, move around and rotate. 
-
-### First events
-
-We are going to create the events used to animate the whole game. First, the turret must be turned toward the player mouse.
-
-Go to the events editor by clicking on the events tab: 
-
-Than, on the top click the add event button to create a new event. 
-
-The event is created, with an empty list of condition ( on the left part ) and an empty list of actions ( on the right ). Put your cursor over the action list and click add action: 
-
-The first action will turn the turret toward the mouse: In the next window, choose the action Common action for all objects \> Angle \> Rotate toward position.  When selected, the right part of the window show the name of the action as well as the parameters. Fill the first parameter by clicking the parameter and select turret from the available objects.  For the next parameters, enter MouseX() and MouseY() so that the object turns toward the mouse position. When the game will be launched, these two expressions will get the current X and Y position of the mouse. For the angular speed 0 means immediate rotation which is what we need in this case. But in case you want the turret to slowly rotate toward the position of the mouse, you may want to enter a small value here, something like 100.
-
-At this point the parameters of this event should look like this:  To save the changes, press OK at the bottom right corner of this page.
-
-Now we can run preview by pressing the preview button on the top. 
-
-If we did it right, our turret should rotate toward the position of the mouse. 
-
-### Shoot bullets with the turret
-
-The player must be able to shoot some bullets on the enemies. First, we need a bullet object: In the objects list on the right, make a right click on the turret object and choose Add a new object or click the add new object button.  Next choose a Sprite, then add an animation and select the bullet.png image, finally rename the object to bullet. Just the way we did with the turret before.
-
-What we want to do next is create the bullets when the left mouse button is pressed. Go to the events tab, and add a new event just the way we did with the turret. The first action will be a Create a new object action, which is available in Common actions for all objects \> Objects category.  On the right side the first parameter must be bullet, as we want to create a bullet object. The other parameters are the position of the turret: Enter Turret.X() and Turret.Y() in the 2nd and 3rd parameters. 
-
-The layer parameter is not required in this case as we have only one layer in our game. Click on Ok to finalize the action.
-
-Then add another action after this first action. Do not create another event only click Add action below the first action!  This time, choose the action called Common action for all objects \> Movement \> Add a force ( Angle ).  GDevelop provide a built-in forces system allowing to easily move the objects. This action will be used to move the bullet toward the mouse when fired. As the first parameter, enter bullet so that GDevelop will move the bullet just created in the last action. As of angle of movement we are going to use the direction of the turret so enter turret.Direction() in the 2nd parameter. For the 3rd parameter, enter 400 so that the bullet will move with a speed of 400 pixels per seconds. Finally, enter 1 in the last parameter so the force is constantly applied to the bullet and the bullet will keep moving after the moment started. 
-
-Our two actions must be launched only when the player is firing ( i.e: Pressing the left button of the mouse ). To do that, we need to add a condition to the event, click the Add condition in the event. 
-
-Choose the condition Mouse and touch \> Mouse button pressed or touch held.  On the right side click the Button to test parameter and select Left from the list  Finally, close the window by clicking the OK button. The condition is now added to the event.
-
-If you preview the game now, you'll see that we have two problems: The bullet are fired too fast, and the appear at the object's origin, which is not very realistic.
-
-To address the first issue, we're going to use a timer: Add a second condition to the last event we've created. Choose the condition Timers and time \> Value of a timer  On the right side, enter 0.25 in the first parameter which the elapsed time in seconds, and “firerate” in the second parameter, which is the name of the timer we're going to use ( Do not forget the quotes around the timer's name! ). 
-
-But we are not done yet, as we want to shoot bullets every 0.25 seconds, we need to reset the timer to start from 0 after rich 0.25. So let add an action Timers and time \> Reset a timer just below our movement action in the same event.  Enter “firerate” as parameter which is the name of our timer ( again, beware of the quotes! ).  This pair of condition and action will ensure that the actions used to fire the bullet are repeated when at least 0.25 seconds is elapsed since the last bullet creation : 
-
-We must now ensure that the bullets are fired from the canon of the turret.
-
-In order to do that, we are going to add a custom point to our turret object and create the bullets in position of that point. Let open the object properties by right clicking the turret object on the right side and select Edit object from the list. It brings up the window where we can add animations to our objects and we should see button called EDIT POINTS. 
-
-After clicking the button, we can see that our object currently has 2 points by default, the Origin point and the Centre point.  We can not rename these points but we can change their default position if we need to. But what we are here for is to add one more point to the object.
-
-Let click the add button (plus symbol) to add a custom point to our turret object. We immediately see the new point added to the list with the name Point and position 0,0. Let rename this point to Canon and set the X position to be 110 and the Y position to be 35 
-
-Now in the preview on the top we should see our custom point is located at the end of our canon  Now we can close the window and apply the changes we made.
-
-The only thing is left to do is to tell GDevelop to fire the bullets from the Canon point of the turret. So in our create bullet action we need to change turret.X() and turret.Y() expressions, to turret.PointX(Canon) and turret.PointY(Canon). We can change them by clicking the expressions inside the editor.  Don't forget the capital C in Canon as the name of the points are case sensitive.
-
-If we run the preview now, our bullets should be fired from the canon of the turret.
-
-### Creating enemies attacking the turret
-
-First, we must create the objects used for the enemies: Add an object to the object list ( Right click on an existing object \> Add an object. Choose a Sprite object as before. ). Name it enemy.
-
-Edit the object (right click in the list and select Edit object from the list) next add an animation to the object and two images: tank2fr1.png and tank2fr2.png.  Then, change the time between the images to 0.05 and change the animation to Loop to make the animation repeat. 
-
-Click Apply when you done.
-
-### Stop! Save time!
-
-Before going any further, remember to save frequently: Click File and then Save to save your project. 
-
-### Enemy AI
-
-Let's go back to the game. We want the enemies moving toward the turret: Go to the event editor and add a new event. What we want to do is creating an enemy every second: Let add a condition Timers and time \> Value of a timer. Enter 1 in the first parameter and “EnemyCreation” for the name of the timer. Don't forget the quotes when you enter the name of the timer.
-
-Next let add the action to create an enemy object: Add an action Common action for all objects \> Objects \> Create an object. Select enemy in the first parameter. For the second parameter, the X position of the new object to be created, enter the expression Random(800): This will return a random number between 0 and 800, so that each enemy we create will have a different position when they are created. For the Y position, enter -50. This will create the enemy outside the screen, so that the player won't have the feeling that an enemy tank just appeared from nowhere.
-
-Finally, let add the action to reset the timer ( Timers and time \> Reset a timer with “EnemyCreation” as parameter ). Again, don't forget the quotes when you enter the name of the timer. At this point, our event should look like this: 
-
-If we run a preview now, probably we won't notice anything as the enemy is created outside the screen. Let move the enemies toward the player. Add another event without any condition and choose the action Common action for all objects \> Movement \> Add a force to move toward an object.  On the right side, for the first parameter, select enemy, and select turret for the second parameter. Enter 150 pixels per second for speed, and damping is 0, as the force will be continuously applied. 
-
-Now if we run a preview we should see that our enemies are moving toward the turret, but you may notice that they don't actually rotate toward the turret so let do something about that. Let add a second action after the movement which is the Common action for all objects \> Angle \> Rotate toward position and for the first parameter on the right select enemy as we are rotating the enemy and for the X and Y position we are going to use an expression to get the Centre point of the turret and make the enemies rotate toward that point and the angular speed is 0 so it is going to rotate immediately.  At this point our enemy event should look like this: 
-
-If we run the preview now, our enemies should move and rotate toward the turret. 
-
-### Adding explosions
-
-It time to destroy the tanks. The first thing we want to do is create an explosion in position of the tanks when they are collided with the bullet. So let add a new sprite object, name it explosion and add all the images to an animation beginning with Explosion_ 
-
-After all the images are added to the animation, set the time between the images to 0.01 seconds. 
-
-Save it by clicking Apply.
-
-Next, we want to create the explosion when the bullet is in collision with the enemy. Let add a new blank event and add the condition Common conditions for all objects \> Collision \> Collision  And on the right side for the first parameter select bullet and the second parameter select enemy 
-
-When it done, let add an action to create the explosion object just the way we have created the bullets and the enemies before but for X and Y position let use the expression enemy.X() and enemy.Y() which is going to get the X and Y position of the enemy object that is in collision with the bullet. 
-
-Finally, add the action after creating the explosion Common actions for all objects \> Object \> Delete an object and on the right side for parameter select the object enemy as we want to delete the enemy. Add the same action again, to also delete the bullet right after the enemy is deleted. At this point our event should look like this 
-
-If we run a preview now, we should notice a few problems. Our explosion objects are not created exactly in the position of the enemy and once it created the explosion object remain in the scene. To solve the second problem, let delete the explosion object after the animations is finished. Add a new empty event and the condition Sprite \> Animations and Images \> Animation finished  For the parameter on the right select the explosion object as we want to do something if the animation of the explosion object is finished.  And what we want to do is delete the explosion object so next let add the action, delete the explosion object.
-
-To solve the first problem we need to understand what is the cause of the problem. When we create the explosion object by using the expression enemy.X() and enemy.Y() we are creating the objects at the origin point of the enemy object which is the top left corner of the enemy and we also creating the explosions from their origin point which is the top left corner of the explosion object.
-
-To solve the problem, what we need to do is, change the position of the Origin point of the explosion to be in the middle of the object. Let edit the explosion object by right clicking the explosion object and select Edit object from the list. In the next window, select EDIT POINTS. Next we want to change the X and Y position of the Origin point to 120 which is right in the middle of the image 
-
-Next, what we want to do, instead of creating the explosion object at the Origin point of the enemy, we want to create the object at the Centre point. So let change the expression in the create explosion action from enemy.X() to enemy.PointX(Centre) and form enemy.Y() to enemy.PointY(Centre) 
-
-If we run a preview now, our enemies should explode and it should also look right. 
-
-### Adding more explosions and a Game Over
-
-Until now, the player could not die. We want the player's turret to be destroyed when an enemy tank is hitting it. First, add a new event, and do as we did for the event used to destroy the enemies: Add a condition testing for a collision between a tank and the turret. Then create an explosion at the turret position. Finally, add an action to destroy the turret: 
-
-It would be also interesting to display a “Game Over” text when the turret is destroyed: Add an object to the object list. This time, choose a Text object and name it GameOver. 
-
-Edit the object by right clicking on the object and and select Edit object from the list. Let change the text to Game Over, the text color to red and the text size to 40.  Finally, let add a text object to our scene.
-
-What we want to do next, is hide the text object and display it if there is no turret in the scene meaning the turret is destroyed. Let add a new blank event and add the condition Scene \> At the beginning of the scene 
-
-This condition has no parameters because the only thing it does is execute the action only once at the beginning of the scene. Next, add the action to the same event Common Actions for all objects \> Visibility \> Hide  For parameter select the GameOver object as we want to hide this object 
-
-Now what we want to do is show the text object if there is no turret in the scene Add a new empty event and add the condition Common conditions for all objects \> Objects \> Objects count 
-
-For the first parameter on the right side select the turret object, for sign of test select the equal sign and for value of test enter 0 as we want to test if the number of turret in the scene is 0. 
-
-And what we want to do is show the text GameOver if there is no turret in the scene, so add the action Common action for all objects \> Visibility \> Show and for parameter we want to select the GameOver object. 
-
-Finally, an interesting effect is to stop the game and display Game Over with a little delay. Add a second condition Timers and time \> Value of a timer for time parameter enter 0.1 and for name parameter enter "GameOver". Then, add a second action: Timers and time \> Change time scale and enter 0 as parameter to stop the game and display the Game Over text after 0.1 seconds.
-
-This is what all the events should look like at this point.  You can preview the game and should see that once the turret is destroyed, with a little delay the Game Over text is displayed and the game is stopped. 
-
-### Optimizing the game
-
-When a bullet get outside the screen, we no longer need that bullet but we still apply movement to it and we are checking collision between the bullet and the tank. Every device has limited resources such as memory and processing power and we are wasting this valuable resources that we need to address otherwise our game may slow down, crash and become unplayable when it rich the limit of the device we are playing our game on. You want your game to be playable on as many devices as possible so you always need to optimize your game and one way to do that is to delete objects that no longer required in our game and this way limit the amount of memory and processing power used by the game.
-
-We could add an event to destroy the bullets when they are too far from the turret, that is quite easy. But we can also use a behavior. A behavior in GDevelop is adds a certain behavior and feature to an object, in this case we are going to add the Destroy outside screen behavior to the bullets so they get destroyed outside the screen.
-
-Make a right click on the object in the object list and choose Edit object from the list. In the next window on the top, click the Behaviors tab, this tab going to display all the behaviors we have added to our object. It is empty now. 
-
-Click on the add behavior button 
-
-Next select from the list the Destroy outside screen behavior 
-
-Next you are going to see the behavior is added to the list. Normally if the behavior has any parameters it is also display here so you can change it, but this behavior has no parameters as the only think it does is destroy the object when it outside the screen. Click Apply and we are done.
-
-If you run the preview now, probably you won't notice any difference as the game is very simple and you most likely using a device with at least 2GB of RAM and a dual core CPU. So there is plenty of resources for our simple game but in case we would create hundreds and thousands of bullets that you are free to try you may notice a little slow down after a while without destroying them.
-
-### Adding a background
-
-One last thing to make the game good looking is to add a background.
-
-Add a Sprite object, name it background and add the background.jpg image to the object. Next, you can add the object to the scene as usual and make sure it fills the entire scene. To make it easier, you can enable the grid using the button on the top and it should help with positioning the object.  But you may notice the background object cover all the other objects, to solve this problem we need to change the Z-order of the object. While the background object is selected, on the left you should notice the object properties. In case you have closed this tab, you can re-open it using the button on the top.  We can change all kind of properties here such as the positon, angle and size of the object but what we are interested in is the Z-order.  Change the value of the Z-order to a low number, in this case we need a negative number something like - 1. The reason for the negative value is that when we are creating the bullets, enemies and explosions we are creating them at Z-order 0 by default and so we need to position the background below 0 otherwise we won't see anything but the turret in our game. An other way to fix it is to tell GDevelop to position the tanks and explosions and bullets on a higher Z-order so we can position the background at 0 but it is something that you the developer need to decide for your self how you want to do it. Every problem can have number of different solutions.
-
-And we are done. The game is complete and ready to be shared.
-
-### Add comments
-
-So, our game is done and playable but what if you want to share the source with someone else? Let say you are working in a team and someone else would like to make modifications to the game. How that person know where to look for the events for enemies, bullets, the turret? Of course it may sound silly to you as most of the events in GDevelop are self explaining and our game is simple enough to see it through but imagine the situation you have a game made out of hundreds and thousands of events. This is where comments come in handy as we can leave reminders in our game for others and also for our self. Trust me, even though you are the one who made it, in a big complex game, even you won't remember where to find different things especially months later. So always use comments regardless how small or big your project is.
-
-To add comments, you can simply click the add comment button on the top.  After you should see a yellow box in the events editor, by clicking in the box you can start writing a comment 
-
-You can change the position of each event and comment by moving the mouse over the blue edge on the left and drag it up and down. Once you done it, you should have something like this: 
-
-### Let's discover GDevelop by yourself
-
-You can browse the other [](/gdevelop5/tutorials) and read the [](/gdevelop5/getting_started) page. There is also lots of examples and templates bundled with GDevelop and you can find more by visiting: [gametemplates.itch.io](https://gametemplates.itch.io) And you can also ask questions on the [official forum](http://forum.compilgames.net/)
diff --git a/docs/fr/gdevelop5/tutorials/breakout.md b/docs/fr/gdevelop5/tutorials/breakout.md
deleted file mode 100644
index b15b71b0bad..00000000000
--- a/docs/fr/gdevelop5/tutorials/breakout.md
+++ /dev/null
@@ -1,650 +0,0 @@
----
-title: Comment faire un jeu de casse-briques
----
-# Comment faire un jeu de casse-briques
-
-!!! warning
-
- Avant de commencer ce tutoriel, vous devriez lire [Commencer](/fr/gdevelop5/getting_started) et [Concepts de base pour créer un jeu](/fr/gdevelop5/tutorials/basic-game-making-concepts) pour avoir un aperçu de GDevelop et une compréhension des principaux concepts.
-
-Avec ce tutoriel, vous apprendrez quelques tâches de base dans GDevelop tout en créant un jeu amusant. Comme dans le jeu d'arcade classique Breakout, vous allez créer un ensemble de briques qui peuvent être brisées par une balle rebondissante. Le joueur contrôle la balle avec une raquette - une fois que la balle est tombée, c'est la fin du jeu.
-
-
-
-
-----
-
-## Créer un nouveau jeu
-
-Cliquez sur **Create a new project** sur la page d'accueil. Faites défiler vers le bas et choisissez un dossier pour votre projet, puis sélectionnez **Empty game**.
-
-## Ajouter des ressources de jeu
-
-!!! tip
-
- Vous rencontrerez souvent le terme " ressources" lorsque vous travaillerez avec GDevelop. En langage de développement de jeux vidéo, les _ressources_ sont les fichiers qui constituent le contenu du jeu - des choses comme les personnages, les plateformes, les fichiers audio, etc.
-
-Pour un jeu de casse-briques, vous aurez besoin des ressources suivantes :
-
- * Fichier image d'une balle
- * Fichier image d'une raquette
- * Fichier image d'une barrière
- * Fichiers d'images de différentes briques
-
-Téléchargez-les en cliquant sur le lien ci-dessous et extrayez les fichiers dans votre dossier de projet. (Merci à Eric Matyas de soundimage.org pour l'image de la barrière !)
-http://www.wiki.compilgames.net/lib/exe/fetch.php/gdevelop5/tutorials/breakout-game/breakout-images.zip
-
-
-----
-
-## Ajouter une nouvelle scène
-
-Les _scènes_ sont les écrans de votre jeu. Par exemple, les différents niveaux d'un jeu sont souvent créés comme des scènes différentes, tout comme les menus de démarrage ou de pause.
-
-Les scènes contiennent des _objets_ affichés à l'écran en tant que contenu du jeu. Chaque objet que vous placez sur une scène est appelé une _instance_. Votre jeu de casse-briques aura plusieurs instances de l'objet brique sur une scène de niveau de jeu. Les scènes contiennent également des _événements_ - des actions qui se produisent dans des conditions spécifiques - pour animer la scène.
-
-Pour ajouter une nouvelle scène :
-
- - Dans le panneau **Project** sur la gauche, cliquez sur **+** pour ajouter une scène.
-
-
-
- - Une nouvelle scène est ajoutée à la liste. Cliquez sur **NewScene** pour l'ouvrir.
-
-
-
-
-----
-
-## Créer l'objet raquette
-Commencez par ajouter la raquette à la scène. Le joueur déplace cette raquette en ligne droite vers la gauche et vers la droite afin de faire rebondir la balle et d'éviter qu'elle ne tombe hors du jeu.
-
- - Dans le panneau **Objects** sur la droite, cliquez sur **+** pour ajouter un objet.
-
-
-
-Une fenêtre apparaîtra, affichant les différents types d'objets que vous pouvez ajouter. Chaque type d'objet possède son propre ensemble de caractéristiques.
-
-
-
- - Pour la raquette, vous avez besoin du type d'objet Sprite. Cliquez sur **Sprite**.
-!!! tip
-
- Les _Sprites_ sont des objets animés qui sont utilisés pour de nombreux éléments de jeu courants (joueurs, plateformes, ennemis, briques, etc.).
-
-Le nouvel objet est ajouté à votre scène et la boîte de dialogue de l'éditeur d'objet s'ouvre.
-
-
-
-Pour l'instant, votre objet sprite n'a pas d'animations, ni d'images associées.
-
- - Cliquez sur **+** pour ajouter une animation.
- - Cliquez sur **+** dans la vignette vierge pour ajouter une image à l'animation.
- - Sélectionnez l'image appelée "paddle.png" dans votre dossier de projet et cliquez sur **Ouvrir**. L'image est ajoutée à l'objet.
-
-
-
-
- - Dans le champ **Object Name**, tapez **Paddle** pour renommer votre objet.
-
- - Cliquez sur **Apply** pour enregistrer et fermer l'éditeur.
-
-!!! warning
-
- Les noms d'objets sont sensibles à la casse, tout comme les autres éléments de GDevelop. Soyez cohérent dans votre dénomination pour éviter les erreurs fréquentes comme taper "Paddle" quand vous voulez dire "paddle". Il en va de même pour les noms d'animation comme "Run" ou "run" - peu importe la convention de nommage que vous utilisez tant que vous êtes cohérent.
-
-
-----
-
-### Ajouter l'objet raquette à la scène
-
-Pour afficher la raquette dans votre jeu, vous devez l'ajouter à votre scène. Comme une seule raquette est nécessaire, on l'appelle une instance _unique_. D'autres objets, comme les briques, auront plusieurs instances dans votre scène.
-
- - Pour ajouter la raquette à la scène, cliquez et faites-la glisser du panneau **Objets** vers la scène. Placez-la près du fond.
-
-
-
-----
-
-## Créer l'objet barrière
-
-Ensuite, vous ajouterez une barrière visuelle qui apparaîtra pour empêcher la balle de rebondir sur l'écran. La barrière sera faite avec un sprite en mosaïque. Les sprites en mosaïque sont des objets répétables et évolutifs, utiles pour créer des plateformes, des murs et d'autres objets inanimés.
-
-Pour créer l'objet barrière :
-
- - Dans le panneau **Objects** à droite, cliquez sur **+** pour ajouter un objet.
- - Cliquez sur **Tiled Sprite**.
- - Dans la boîte de dialogue **Object Editor**, cliquez sur **+** pour ajouter une animation.
- - Cliquez sur **+** dans la vignette vierge pour ajouter une image.
- - Sélectionnez "barrier.jpg" dans le dossier de votre projet et cliquez sur **Open**.
- - Dans le champ **Object Name**, renommez votre objet "Barrier".
- - Cliquez sur **Apply** pour enregistrer et fermer l'éditeur d'objet.
-
-----
-
-### Ajouter l'objet barrière à la scène
-
-Vous devrez ajouter trois instances de votre objet barrière à votre scène - une barrière gauche, une barrière droite et une barrière supérieure. La taille par défaut de la fenêtre du jeu est de 800 x 600 pixels, ce qui correspond au contour gris de votre vue de la scène. Créez votre barrière légèrement à l'intérieur de ces limites.
-
-!!! note
-
- Déplacez et redimensionnez les objets avec précision en utilisant le **panneau des propriétés** qui s'ouvre lorsque vous cliquez sur une instance d'objet.
-
-
- - Glissez et déposez la première instance de la barrière sur la scène.
- - Cliquez sur la barrière. Redimensionnez-la à 15 x 585 avec le panneau Propriétés ou en faisant glisser la poignée en bas à droite. Placez-la sur le côté gauche de l'écran à (15, 15).
- - Créez une barrière correspondante sur le côté droit et positionnez-la à (770,15).
- - Ajoutez une dernière barrière en haut pour relier les deux. Redimensionnez-la à 770 x 15, et positionnez-la à (15, 15).
-
-
-
-----
-
-
-## Faire bouger la raquette
-
-Le joueur contrôlera la raquette en utilisant les flèches gauche et droite du clavier. Vous pouvez créer ces contrôles à l'aide d'_événements_ (actions qui se produisent si les conditions sont vraies).
-
-Créez un événement pour lequel si le joueur appuie sur la flèche gauche du clavier, la raquette se déplace vers la gauche :
-
- - Cliquez sur l'onglet **NewScene (Events)** pour ouvrir l'**Events Editor**.
- - Cliquez sur **Add a new empty event** .
- - Cliquez sur **Add condition**.
-
-
- - Cliquez sur **Keyboard > Key pressed**.
-
-
- - Dans le champ **Key**, tapez **Left** et cliquez sur **OK**. Cette condition est vraie si le joueur appuie sur la flèche gauche du clavier.
-
-Vous devez maintenant ajouter une action correspondante à la condition. La raquette doit se déplacer vers la gauche sur un axe horizontal si la condition est remplie.
-
-!!! tip
-
- Pour déplacer des objets avec une force appliquée, vous devez spécifier un angle. L'image ci-dessous illustre comment GDevelop comprend l'angle de rotation.
- Sur un axe horizontal, la gauche est de 180°, la droite est de 0°.
- 
-
- - Cliquez sur **Add action**.
-
- - Cliquez sur **Common actions for all objects > Movement > Add a force (angle).**
-
- - Sélectionnez **Paddle** dans le champ **Object**.
-
- - Dans le champ **Angle**, tapez **180**.
-
- - Dans le champ **Speed (in pixels per second)**, tapez **300**.
-
- - Cliquez sur **Instant**.
-
- - Cliquez sur **OK**.
-
-
-
-!!! tip
-
- C'est le bon moment pour sauvegarder votre travail. Prenez l'habitude de sauvegarder régulièrement. Vous pouvez appuyer sur **Ctrl+S** pour sauvegarder votre jeu, ou utiliser votre souris et aller sur **File>Save**.
-
-----
-
-
-Utilisez la fonction de prévisualisation pour vérifier votre travail. Cliquez sur le bouton **Launch a preview of the scene** 
-
-Appuyez sur votre flèche gauche pour déplacer la raquette. Vous verrez que la raquette ne s'arrête pas lorsqu'elle atteint la barrière - elle continue juste hors de l'écran. Vous pouvez y remédier en fermant la fenêtre de prévisualisation et en ajoutant une autre condition au mouvement de la raquette.
-
-Pour ajouter une autre condition pour arrêter la raquette :
-
- - Dans le même condition, sous votre première condition, cliquez sur **Add condition**.
-
- - Cliquez sur **Common conditions for all objects > Position > Compare X position of an object**.
-
- - Dans le champ **Objet**, sélectionnez **Paddle**.
-
- - Dans le champ **Sign of the test**, sélectionnez **> (greater than)**.
-
- - Dans le champ **X Position**, saisissez la coordonnée X du côté droit de la barrière gauche. Dans cet exemple, il s'agit de 30.
-
- - Cliquez sur **OK**.
-
-
-
-
-Prévisualisez à nouveau votre jeu. La raquette doit s'arrêter au moment où elle heurte la barrière de gauche.
-
-Vous devez maintenant créer le même événement pour le côté droit. Essayez-le vous-même avant de lire le processus ci-dessous.
-
- * Cliquez sur **Add a new empty event**.
- * Cliquez sur **Add condition**.
- * Cliquez sur **Keyboard > Key pressed**.
- * Dans le champ **Key**, tapez **Right**.
- * Cliquez sur **OK**.
-----
-
- * Cliquez sur **Add action**.
- * Cliquez sur **Common actions for all objects > Movement > Add a force (angle).**
- * Dans le champ **Object**, sélectionnez **Paddle**.
- * Dans le champ **Angle**, tapez **0**.
- * Dans le champ **Speed (in pixels per second)**, tapez **300**.
- * Dans le champ **OK**, tapez **OK**.
-----
-
- * Cliquez sur **Add condition**.
- * Cliquez sur **Common conditions for all objects > Position > Compare X position of an object**.
- * Dans le champ **Object**, sélectionnez **Paddle**.
- * Dans le champ **Sign of the test**, sélectionnez **< (less than)**.
- * Dans le champ **X position**, saisissez la coordonnée X du côté gauche de la barrière droite. Dans cet exemple, il s'agit de 770.
- * Cliquez sur **OK**.
-
-
-Prévisualisez votre jeu pour vous assurer qu'il fonctionne.
-
-!!! tip
-
- Trouvez-vous que votre raquette passe toujours la barrière de droite ? C'est parce que GDevelop utilise le point le plus haut à gauche d'un objet pour comparer les positions X. Une façon simple de résoudre ce problème est de soustraire la largeur de la raquette de la coordonnée X de votre barrière. Dans notre exemple, la raquette a une largeur de 58 px, donc la nouvelle position X pour arrêter la raquette sur le côté droit devrait être **< 712** (770 - 58). Modifiez-la maintenant.
-
-
-----
-
-
-## Ajouter des commentaires dans l'éditeur d'événements
-Lorsque vous travaillez dans votre éditeur d'événements, il est bon d'ajouter des commentaires pour chaque série d'événements. Vous pourrez trouver et comprendre rapidement vos événements au fur et à mesure de l'évolution de votre jeu si vous les commentez au fur et à mesure de votre travail.
-
- - Pour ajouter une ligne de commentaire, cliquez sur **Add a comment**. 
-
- - Saisissez le texte de votre commentaire et utilisez la barre bleue à gauche du commentaire pour le faire glisser et le déposer où vous le souhaitez.
-
-
-
-
-----
-
-
-## Bougez la balle - Partie 1
-
-La prochaine étape consistera à ajouter l'objet en forme de balle à la scène. Comme vous l'avez fait avec la raquette, ajoutez l'objet balle comme un sprite en utilisant ball-1.png comme animation. Glissez et déposez la balle juste au-dessus de la raquette dans la scène.
-
-Lorsque vous pensez au jeu, la balle devra faire quatre choses :
-
- * Se déplacer lorsque le joueur commence le jeu
- * Rebondir lorsqu'elle entre en collision avec la raquette ou avec la barrière
- * Casser les briques et rebondir lorsqu'elle entre en collision avec des briques
- * Fin du jeu quand elle tombe de l'écran sous la raquette
-
-
-### Mettre la balle en mouvement
-
-
-Pour faire bouger la balle lorsque le joueur appuie sur la barre d'espace pour démarrer :
-
-
- * Dans l'onglet **NewScene (Events)**, cliquez sur **Add a new empty event**.
-
- * Cliquez sur **Add condition**.
-
- * Cliquez sur **Keyboard > Key pressed**.
-
- * Dans le champ **Key**, tapez **Space** et cliquez sur **OK**.
-
-
-
-
-----
-
- * Cliquez sur **Add action**.
- * Cliquez sur **Common actions for all objects > Movement > Add a force (angle)**.
- * Dans le champ **Object**, sélectionnez **Ball**.
- * Dans le champ **Angle**, tapez **-45+RandomInRange(-5, 5)**. Cela lancera la balle à un angle de -45 degrés, avec une variation aléatoire supplémentaire de 5 degrés dans les deux sens pour ajouter un défi au joueur.
-
-!!! tip
-
- Vous n'avez pas besoin de mémoriser toutes les expressions. Vous pouvez ouvrir l' **Éditeur d'expressions** pour vous aider à remplir les champs.  Dans ce cas, vous pourriez taper **-45** dans le champ **Angle** puis cliquer sur **Expression Editor** et rechercher par **Random**. L'expression **Random integer in range** avec une valeur minimale de -5 et une valeur maximale de 5 générera RandomInRange(-5, 5) dans votre champ. Vous pouvez l'utiliser dans votre calcul de vitesse comme vous le souhaitez.
-
- * Dans le champ **Speed (in pixels per second)**, tapez **300**. Ajustez cela comme vous le souhaitez ; plus le chiffre est élevé, plus l'objet est rapide.
- * Cliquez sur **Permanent**, car vous voulez que la balle continue à se déplacer tout au long du jeu.
- * Cliquez sur **OK**.
-
-
-
-C'est le bon moment pour ajouter un commentaire, enregistrer et prévisualiser votre jeu. La balle doit se déplacer lorsque vous appuyez sur la barre d'espace.
-
-
-----
-
-
-### Faire rebondir la balle sur la barrière et la raquette
-
-Pour une bonne jouabilité, votre balle doit rebondir de manière réaliste chaque fois qu'elle entre en collision avec la barrière, la raquette ou une brique. GDevelop a un comportement de rebond facile que vous pouvez appliquer à n'importe quel objet pour simuler un rebond réel.
-
-#### Ajouter un comportement de rebond
-
-Pour ajouter un comportement de rebond à votre objet balle :
-
- * Dans l'onglet **NewScene**, cliquez sur **⋮** à côté de votre objet "Balle" et cliquez sur **Edit object**.
- * Cliquez sur l'onglet **Behaviors**.
- * Cliquez sur **+** pour ajouter un nouveau comportement à l'objet.
- * Le comportement de rebond n'est pas un comportement installé, vous devez donc le trouver. Cliquez sur l'onglet **Recherche de nouveaux comportements**.
- * Dans la liste du bas, sélectionnez **Bounce** et cliquez sur **Install in project**.
-
-
- * Vous pouvez maintenant ajouter le nouveau comportement à l'objet. Faites défiler vers le bas, sélectionnez **Bounce**, et cliquez sur **Apply**.
-
-
-
-Votre balle est maintenant prête à rebondir !
-
-----
-
-#### Ajouter les événements de collision
-
-Ensuite, ajoutez des événements pour faire rebondir la balle sur la barrière et la raquette. Il est temps d'ajouter une condition que vous utiliserez beaucoup dans la création de jeux : une condition de _collision_.
-
-Pour créer une condition de collision entre la balle et la barrière :
-
- * Dans l'onglet **NewScene (Events)**, cliquez sur **Add a new empty event**.
- * Cliquez sur **Add condition**.
- * Cliquez sur **Common conditions for all objects > Collision > Collision**.
- * Dans le premier champ **Object**, sélectionnez **Ball**. Dans le deuxième champ **Object**, sélectionnez **Barrier**.
- * Cliquez sur **OK**.
-
-----
-
-Pour ajouter l'action qui fait que la balle rebondit sur la barrière en cas de collision :
-
- * Cliquez sur **Add action**.
- * Cliquez sur **Bounce > Bounce > Bounce off another object**.
- * Dans le champ **Object**, sélectionnez **Ball**.
- * Dans le champ **Object to bounce on**, sélectionnez **Barrier**.
- * Cliquez sur **OK**.
-
-
-
-----
-
-Vous devez maintenant faire exactement la même chose pour faire rebondir la balle sur la raquette. Créez un nouvel événement, définissez votre condition de collision et ajoutez l'action pour faire rebondir la balle.
-
-!!! tip
-
- Vous pouvez faire un clic droit et copier une condition ou une action précédente, puis faire un clic droit pour la coller dans un nouvel événement. C'est un moyen facile d'économiser du temps et des efforts, surtout lorsque vous avez affaire à des événements similaires !
-
-
-Enregistrez et prévisualisez votre jeu. Ça commence à devenir amusant...
-
-
-----
-
-## Ajoutez les briques
-
-
-Votre balle doit casser quelque chose ! La prochaine étape consistera à ajouter des briques à la scène. Pour en apprendre plus sur les calques externes, ce tutoriel fera apparaître les briques dans différents calques.
-
-Pour ajouter vos briques :
-
- * Cliquez sur l'onglet **NewScene** pour accéder à l'éditeur de scène.
- * Dans le panneau **Object**, cliquez sur **+** pour ajouter un nouvel objet.
- * Nommez cet objet **Brick**. Donnez-lui trois animations séparées en utilisant les fichiers brick-green.png, brick-red.png et brick-yellow.png de votre dossier de projet. Nommez les animations en conséquence.
- * Cliquez sur **Appliquer**.
-
-
-
-----
-
-### Créer des mises en page externes
-
-Vous pouvez utiliser des mises en page externes pour créer différents niveaux avec différentes formations de briques.
- Une _mise en page externe_ est une couche d'objets qui est créée en dehors d'une scène, mais qui peut être insérée dynamiquement à n'importe quel endroit.
-
-Pour créer une mise en page externe :
-
- * Cliquez sur le bouton **Project manager** en haut à gauche. 
- * Cliquez sur **External layouts** et **+** pour ajouter une mise en page externe.
- * Cliquez sur **⋮** à côté de votre nouvelle mise en page et renommez-la **Layout1**.
-
-
-
- * Cliquez sur **Layout1**. Il vous sera demandé de choisir la scène dans laquelle il sera inclus. Choisissez **NewScene** - c'est la scène où se déroule tout le jeu. Un nouvel onglet s'ouvrira et ressemblera à votre NewScene existante.
- * Ajoutez des briques dans la configuration de votre choix. Amusez-vous bien avec cette partie - soyez créatif !
-
-!!! tip
-
- Pour accélérer les choses, cliquez ou sélectionnez des objets puis maintenez la touche Ctrl enfoncée, cliquez et faites glisser pour reproduire les instances à l'écran. En maintenant Ctrl+Maj enfoncé, les nouvelles instances restent sur le même axe X ou Y.
-
-
- 
-
-
- * Créez deux ou plusieurs nouvelles mises en page et nommez-les Layout1, Layout2, etc.
-
-!!! warning
-
- Suivez la convention d'appellation Layout1, Layout2, etc. Elle sera bientôt liée à une variable.
-
-
-----
-
-### Faire apparaître une disposition aléatoire des briques
-
-Pour faire apparaître une disposition aléatoire au début de chaque scène, ajoutez d'abord votre condition :
-
- * Cliquez sur l'onglet **NewScene (Events)** pour retourner dans votre éditeur d'événements.
- * Cliquez sur le bouton **Add a new empty event** (Ajouter un nouvel événement vide).
- * Cliquez sur le bouton **Add condition**.
- * Cliquez sur **Scene > At the beginning of the scene** (Scène > Au début de la scène).
-
- ----
-
-Plutôt que d'attacher des actions à cette condition, vous allez maintenant créer des sous-événements qui se produisent au début de la scène.
-
-Pour commencer, créez une nouvelle variable de scène appelée Random_layout :
-
- * Cliquez sur un espace vide dans l'événement que vous venez de créer et cliquez sur le bouton **Add a sub-event to the selected event**. 
- * Dans le nouveau sous-événement, cliquez sur **Add action**.
- * Cliquez sur **Variables > Value of a scene variable**.
- * Dans le champ **Variable**, tapez **Random_layout** pour créer une nouvelle variable de scène.
- * Dans le champ **Modification's sign**, sélectionnez **= (set to)**.
- * Dans le champ **Valeur**, tapez **Random(2)+1**.
- * Cliquez sur **OK**.
-
-
-
-!!! tip
-
- Essayez d'utiliser l'éditeur d'expression pour créer vos expressions. 
-
- Plus vous jouerez avec les expressions, plus vous comprendrez la logique qui les sous-tend. N'ayez pas peur d'expérimenter !
-
-----
-
-Vous allez maintenant associer votre numéro de variable au nom de la mise en page externe Layout. Ce nom déterminera la mise en page qui apparaîtra à l'écran. (C'est pourquoi il était important d'être cohérent en les nommant plus tôt).
-
-Pour ajouter une disposition aléatoire de briques au début de la scène :
-
- * Ajoutez un autre sous-événement pour le début de la scène, puis cliquez sur **Add action**.
- * Cliquez sur **External layouts > Create objects from an external layout**.
- * Dans le champ **Name of the external layout**, tapez **" Layout " + ToString(Variable(Random_layout))**. Cela ajoutera aléatoirement un des modèles externes à la scène.
- * Cliquez sur **OK**.
-
-
-
-
-----
-
-Vous pouvez ajouter de l'intérêt en rendant la couleur de la brique aléatoire au début de chaque scène.
-
-Pour choisir une couleur de brique aléatoire :
-
- * Ajoutez un autre sous-événement pour le début de la scène, puis cliquez sur **Add action**.
- * Cliquez sur **Variables > Value of a scene variable**.
- * Dans le champ **Variable**, tapez **Brick_colour**.
- * Dans le champ **Signe de modification**, sélectionnez **= (set to)**.
- * Dans le champ **Value**, tapez **Random(2)**.
- * Cliquez sur **OK**.
-
-
-
-
-----
-
- * Ajoutez un dernier sous-événement pour le début de la scène, puis cliquez sur **Add action**.
- * Cliquez sur **Sprite > Animations et images > Change the animation**.
- * Dans le champ **Object**, sélectionnez **Brick**.
- * Dans le champ **Modification's sign**, sélectionnez **= (set to)**.
- * Dans le champ **Value**, tapez **Variable( Brick_colour)**.
- * Cliquez sur **OK**.
-
-
-
-Enregistrez et prévisualisez votre jeu. Un joueur verra maintenant une disposition externe choisie au hasard avec des briques d'une couleur aléatoire à chaque fois que le jeu sera lancé.
-
-
-----
-
-## Déplacez la balle - Partie 2
-### Faire rebondir la balle sur les briques
-
-Maintenant que vous avez des briques sur la scène, vous voulez que la balle rebondisse sur les briques lorsqu'elle les frappe. Exactement comme vous l'avez fait avec la raquette et la barrière, vous devrez :
-
- - Créer un nouvel événement.
- - Ajouter une condition de collision entre la balle et la brique.
- - Faire rebondir votre balle loin des briques.
-
- Objects > Delete an object**.
- * Dans le champ Objet, sélectionnez **Brick**.
- * Cliquez sur **OK**.
-
-
-
-Enregistrez et prévisualisez votre jeu. Vous devriez être capable de faire rebondir la balle sur la raquette et de détruire les briques. C'est le bon moment pour vérifier à nouveau votre vitesse - voulez-vous que la balle ou la raquette soit plus rapide ou plus lente ? Si oui, jouez avec vos valeurs de vitesse jusqu'à ce que vous soyez satisfait du jeu.
-
-----
-## Gagner ou perdre le jeu
-
-Si le joueur casse toutes les briques, le jeu doit le féliciter en lui offrant la possibilité de jouer à nouveau. Si le joueur rate la balle avec la raquette, il doit dire au joueur qu'il a perdu et lui donner la possibilité de jouer à nouveau.
-
-### Créer un message de félicitations
-
-Vous voulez que le message de félicitations soit caché, pour n'apparaître que lorsque toutes les briques ont disparu.
-
-Pour ajouter un objet texte à la scène :
-
- * Cliquez sur l'onglet **NewScene**.
- * Dans le panneau **Objects**, cliquez sur **+** pour ajouter un nouvel objet et sélectionnez **Text**.
- * Dans le champ **Nom de l'objet**, tapez **Congratulations**.
- * Dans le champ **Text**, tapez un message de félicitations (par exemple : Félicitations ! Vous avez effacé tous les blocs !). Incluez également une ligne disant au joueur "Appuyez sur Entrée pour rejouer".
- * Cliquez sur **Apply**.
-
-
-
- * Glissez et déposez votre objet Congratulations au milieu de la scène.
-
-
-----
-
-Pour cacher votre objet texte au début de la scène :
-
- * Cliquez sur **NewScene (Events)**.
- * Allez à l'événement existant contenant la condition "At the beginning of the scene" et cliquez sur **Add action**.
- * Cliquez sur **Common actions for all objects > Visibility > Hide**.
- * Dans le champ **Object**, sélectionnez **Congratulations**.
- * Cliquez sur **OK**.
-
-
-
-
-----
-
-Pour faire apparaître votre objet texte lorsque toutes les briques sont détruites :
-
- * Cliquez sur le bouton **Add a new empty event**.
- * Cliquez sur **Add condition**.
- * Cliquez sur **Common conditions for all objects > Objects > Number of objects**.
- * Dans le champ **Object**, sélectionnez **Brick**.
- * Dans le champ **Sign of the test**, sélectionnez **= (égal à)**.
- * Dans le champ **Value**, tapez **0**.
- * Cliquez sur **OK**.
-
-----
-
-S'il y a 0 brique, la balle doit être supprimée et l'objet de félicitations doit être rendu visible.
-Ces deux actions sont communes à tous les objets. Ajoutez-les maintenant.
-
-
-
-----
-
-Vous voulez également donner au joueur la possibilité de commencer une nouvelle partie :
-
- * Créer un nouveau sous-événement  à l'événement que vous venez de créer où le nombre d'objets brique est =0.
- * Cliquez sur **Add Condition**.
- * Cliquez sur **Keyboard > Key pressed**.
- * Dans le champ **Key**, tapez **Return**. (N'oubliez pas que le message de félicitations indique au joueur d'appuyer sur la touche Entrée pour recommencer).
- * Cliquez sur **OK**.
-
-----
-
-Ajoutez une action pour revenir à la première scène :
-
- * Cliquez sur **Add action**.
- * Cliquez sur **Scene > Change the scene**.
- * Dans le champ **Name of the new scene**, tapez **"NewScene"**. N'oubliez pas les guillemets !
- * Cliquez sur **OK**.
-
-Maintenant, lorsque le joueur casse toutes les briques, il recevra un message de félicitations et la possibilité de recommencer !
-
-----
-
-### Créer un message de fin de partie
-
-Si le joueur rate la balle, la partie est terminée. Tout comme si un joueur gagne, il s'agira de rendre un message visible au moment opportun et de donner au joueur la possibilité de rejouer.
-
-Tout d'abord, ajoutez un objet texte à la scène qui restera caché à moins que le joueur ne rate la balle.
-
-Suivez les mêmes étapes que pour créer l'objet Félicitations à l'écran, mais changez le message en "Game Over". Incluez la ligne concernant le fait de recommencer. Appelez cet objet texte **GameOver**.
-
-Glissez et déposez votre objet GameOver au milieu de la scène. C'est bon s'il est au-dessus de l'objet Congratulations.
-
-----
-
-Ensuite, allez dans l'éditeur d'événements pour cacher votre objet GameOver au début de la scène.
-
-Suivez les mêmes étapes pour cacher l'objet GameOver que pour l'objet Congratulations. Ajoutez-le comme deuxième action à l'événement.
-
-
-----
-
-L'étape suivante consistera à faire réapparaître le message si le joueur rate la balle. Pour ce faire, vous avez besoin d'une condition qui vérifie si la position Y de la balle se trouve en dehors de la fenêtre de jeu.
-
-Pour ajouter une condition permettant de vérifier si le joueur a manqué la balle :
-
- * Cliquez sur le bouton **Add a new empty event**.
- * Cliquez sur le bouton **Add condition**.
- * Cliquer sur **Common conditions for all objects > Position > Compare Y position of an object**.
- * Dans le champ **Object**, sélectionnez **Ball**.
- * Dans le champ **Sign of the test**, sélectionnez **> (greater than)**.
- * Dans le champ **Value**, tapez **600**. (600 est la hauteur de la fenêtre de jeu par défaut, ce qui signifie que la balle est hors écran).
- * Cliquez sur **OK**.
-
-Ajoutez une action correspondante pour rendre l'objet GameOver visible. Vous devez également ajouter un sous-événement qui entraîne la suppression de la balle et le redémarrage du jeu si le joueur appuie sur Entrée. Ajoutez-les maintenant.
-
-
-
-
-Enregistrez et prévisualisez votre jeu.
-
-----
-
-#### C'est bon ! Vous avez terminé votre premier jeu de base.
-
-Maintenant que vous avez appris les bases, essayez de changer les vitesses, la disposition des briques, etc. pour le rendre plus difficile. Vous pouvez ajouter un système de points où les points augmentent avec chaque brique détruite, ou vous pouvez faire en sorte que la balle augmente de vitesse avec chaque scène. Comme le comportement de rebondissement dépend de l'angle et de la vitesse de la force appliquée, vous pouvez aussi vous amuser à jouer avec la forme de la raquette, à ajouter des obstacles plus difficiles, etc.
-
-Ce serait également un bon exercice d'ajouter des instructions au début de la scène qui disparaissent lorsque le jeu commence (voir la toute première image de ce tutoriel).
-
-**D'autres tutoriels seront bientôt disponibles, mais en attendant, expérimentez et jouez !
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/endless-runner.md b/docs/fr/gdevelop5/tutorials/endless-runner.md
deleted file mode 100644
index a303a0e3655..00000000000
--- a/docs/fr/gdevelop5/tutorials/endless-runner.md
+++ /dev/null
@@ -1,392 +0,0 @@
----
-title: Un tutoriel pour débutants de jeu de course infinie
----
-# Un tutoriel pour débutants de jeu de course infinie
-
->  Ce tutoriel vous aidera à vous familiariser avec le fonctionnement de GDevelop. Dans ce tutoriel, nous allons créer un jeu de course sans fin très basique où **les plateformes sont générées de manière aléatoire** et où le joueur doit se déplacer pour éviter d'être poussé hors de l'écran. Il y a également un **système de score** qui met à jour le score lorsque le joueur est en action.
->
-> Pour connaître les bases du fonctionnement du logiciel, vous pouvez vous référer à la page [Commencer](/fr/gdevelop5/getting_started) pour plus d'informations.
->
-
-
-## Télécharger GDevelop
-
-Si vous n'avez pas encore installé GDevelop, téléchargez-le depuis le site officiel : [GDevelop App](https://gdevelop.io/fr-fr/download/).
-
-Il est conseillé de toujours vérifier la page ci-dessus pour les dernières versions de GDevelop et de garder le logiciel à jour à tout moment. Une fois que vous avez téléchargé et installé le logiciel, lorsque vous lancez le programme, vous serez accueilli par un écran "Start".
-
-
-
-Pour plus de confort, vous pouvez changer la langue par défaut pour le français.
-
-## Principaux éléments du jeu
-
-#### ☆Player Sprite
-
- C'est le personnage principal que l'utilisateur va contrôler. Le sprite joueur doit "sauter" pour éviter les obstacles et rester dans l'écran. Il possède des animations **Idle**, **Run** et **Jump**.
-
-#### ☆Platformes/Obstacles
-
- Ce sont les blocs mobiles que le sprite du joueur doit éviter. Ces blocs seront rencontrés par le joueur de manière aléatoire.
-
-#### ☆Affichage du score
-
-Ce bloc de texte met à jour et affiche le score pendant que le Sprite joueur est en action.
-
->
->
-> #### Télécharger les ressources
->
-Vous aurez besoin d'images que vous pourrez utiliser pour créer les personnages, les plateformes et les arrière-plans du jeu. Trouvez toutes les ressources dont vous avez besoin pour ce jeu par .
-
-## Étape 1 : Créer un nouveau projet
-
-Une fois sur l'écran de démarrage, cliquez sur le bouton "Créer un nouveau projet".
-
-Une boîte de dialogue "Créer un nouveau jeu" apparaît.
-
-Vous pouvez choisir de personnaliser l'emplacement de votre projet.
-
-
-
-Cliquez sur l'option "Choisir un dossier" pour choisir l'emplacement de votre choix. Les fichiers du projet de jeu seront stockés à cet emplacement.
-
-Ensuite, faites défiler la liste et trouvez l'onglet "Jeu vide". Cliquez dessus pour ouvrir un nouveau projet.
-
-
-
-## Etape 2 : Création d'une nouvelle scène
-
-Un jeu repose sur des scènes pour différents scénarios de jeu. Nous pouvons créer et utiliser plusieurs scènes, mais pour ce tutoriel, nous n'avons besoin que de **1 Scène**. Créons une nouvelle scène.
-
-
-
-Cliquez sur la zone où il est indiqué `Cliquez pour ajouter une Scène` pour créer votre première scène vide.
-
-Vous pouvez personnaliser le nom de votre scène en cliquant sur les trois points à côté de la scène créée et en cliquant sur `Renommer`.
-
-> Vérifiez que vous avez déjà téléchargé l'archive mentionnée précédemment. Vous en aurez besoin pour les sprites du jeu.tip
-
-## Étape 3 : travailler sur la nouvelle scène
-
-Cliquez sur la scène que nous avons créée à l'étape précédente pour ouvrir l' **Éditeur de scène**. C'est ici que nous allons créer les éléments du jeu.
-
-
-
-Vous devriez voir l'onglet **Objet** et l'onglet **Propriétés**.   Si par hasard, vous ne voyez pas ces onglets, cliquez sur l'icône affichée à gauche pour ouvrir l'onglet "Objets". De même, cliquez sur l'icône de droite pour ouvrir l'onglet "Propriétés".
-
-> La dernière version de GDevelop vous avertira si vous essayez de charger une ressource qui n'est pas dans l'emplacement de votre projet de jeu. Veillez à toujours placer vos images dans le même dossier que le jeu (ou un sous-dossier). Sinon, si vous déplacez votre jeu, cela brisera les liens vers les images. Décompressez l'archive fournie dans le dossier du jeu et utilisez ces images. tip
-
-## Etape 4 : Création d'un sprite de joueur
-
-Comme mentionné dans la section **Éléments principaux du jeu**, nous avons besoin d'un personnage que l'utilisateur peut contrôler. Notez que, comme il s'agit d'un jeu de course sans fin, nous voulons seulement que le personnage saute pour éviter les obstacles qui se présentent sur son chemin afin de rester en vie.
-
-
-
-Cliquez sur la zone `Ajouter un nouvel objet` dans l'onglet Objets pour créer votre premier objet. Une boîte de dialogue s'ouvre et présente les différents types d'objets. cliquez sur l'onglet "Nouvel objet à partir de zéro". Pour notre personnage, nous avons besoin d'un objet de type **Sprite**, où nous pouvons ajouter des animations pour que le personnage soit **Idle**, **Jump**, ou **Running**.
-
-
-
-En cliquant sur "Sprite(image animée)", une boîte de dialogue permettant de modifier les propriétés de l'objet Sprite apparaît. Nous allons maintenant ajouter des animations pour notre personnage. Pour ajouter votre première animation, cliquez simplement sur le bouton "+Ajouter une animation".
-
-
-
-Un nouvel emplacement Animation vide apparaît. Nous allons maintenant charger nos images Sprite pour créer notre animation. Comme vous pouvez le remarquer, notre animation a un identifiant `0`. Nous pouvons également donner un nom à notre animation.
-
-Pour notre première animation, nous voulons créer une animation Idle. Cliquez sur le gros bouton **+Ajouter** qui ouvrira une boîte de dialogue pour charger une image. Notez que nous pouvons également ajouter plusieurs images, mais pour cette animation, nous n'en avons besoin que d'une seule.
-
-Choisissez l'image `p1_stand.png` dans l'archive que vous avez téléchargée et décompressée. Après avoir choisi le fichier, le placeholder de l'animation ressemble maintenant à ceci.
-
-
-
-Notez que j'ai donné à notre objet Sprite le nom "Player". De la même manière, j'ai également attribué un nom à notre animation : " Idle ". L'attribution d'un nom est facultative, mais le fait de nommer les sprites dans votre projet permet de l'organiser et de le rendre plus facile à utiliser.
-
-Notre première animation est terminée. Maintenant, ajoutons les animations **Jumping** et **Running**. Essayez de le faire en utilisant les images fournies dans l'archive que vous avez téléchargée. Il y aura plusieurs images pour l'animation Running, tandis que l'animation Jumping n'aura qu'une seule image selon le fichier archivé fourni. Une fois que vous aurez terminé les trois animations, cela ressemblera un peu à ceci.
-
-
-
-Comme vous pouvez le voir, l'animation **Run** comporte plusieurs images.  Chaque image a un fichier image séparé. Lorsqu'elles sont exécutées, toutes les images sont lues séquentiellement, créant ainsi une animation en cours. L'animation Run ressemblera à l'action montrée dans l'image de gauche.
-
-Nous allons maintenant ajouter un **Comportement** à notre Sprite de joueur. Les comportements ajoutent des capacités supplémentaires aux objets. Cliquez sur l'onglet Comportements dans la boîte de dialogue Player Sprite. Créez ensuite un comportement en cliquant sur la zone " Ajouter un comportement à l'objet ". Sélectionnez ensuite le type de comportement **Objet se déplaçant sur des plateformes**.
-
-
-
-Le menu de l'éditeur de comportement va s'ouvrir. Ici, assurez-vous de décocher la fonction **Touches par défaut** pour ce comportement. La propriété des contrôles par défaut ajoute tous les mouvements nécessaires pour un personnage de plateforme, y compris le déplacement à gauche, à droite et le saut. Puisque nous ne voulons pas que notre personnage se déplace à gauche ou à droite, mais que nous avons seulement besoin de l'action Sauter, nous désactivons cette propriété et créons le mouvement Sauter en utilisant les événements.
-
-
-
-Nous avons maintenant terminé de créer notre Sprite de joueur. N'oubliez pas d'activer la fonction **Loop** pour les animations où plusieurs images ont été utilisées, c'est-à-dire pour l'animation Running dans notre cas. Si nous ne la mettons pas en boucle, l'animation sera jouée une fois et s'arrêtera à la dernière image.
-
-## Étape 5 : Création d'une plateforme
-
-Une plateforme est un objet avec lequel un personnage peut entrer en collision et/ou sur lequel il peut marcher. Pour notre jeu, la plateforme sera les obstacles que le Sprite du joueur doit éviter. Pour créer un objet Plate-forme, cliquez pour ajouter un nouvel objet dans l'onglet Objets et choisissez un type d'objet **Mosaïque**. Il s'agit d'une image qui se répète comme une mosaïque.
-
-
-
-Nous obtenons une boîte de dialogue similaire à celle du Sprite Player que nous avons créé. Cliquez sur la zone "Selectionnez une image" pour choisir l'image de notre plateforme/obstacle. Une fois que vous avez fini de charger l'actif `Platform.png`, la boîte de dialogue ressemblera à ceci.
-
-
-
-Remarquez que j'ai également changé le nom de l'objet par défaut en "Platform". Changez votre largeur par défaut à *193* et votre hauteur par défaut à *40*, pour le moment. Maintenant, nous devons ajouter un **Comportement** pour cet objet, de la même manière que nous avons ajouté un comportement pour notre Sprite de joueur. Allez dans l'onglet Comportements, cliquez pour "Ajouter un comportement à l'objet" et choisissez le type de comportement **Platforme**.
-
-
-
-Cliquez sur **Appliquer**, une fois que vous avez terminé. Il est maintenant temps de placer nos objets créés dans l'espace **Scène**.
-
-## Etape 6 : Ajout d'objets à la scène
-
-Glissez et déposez les sprites **Platform** et **Player** de l'onglet Objets et placez-les dans votre scène.
-
-
-
-Voici à quoi ressemble l'espace Scène après que j'ai placé les deux objets. Notez que la bordure noire que vous pouvez voir est la taille de la **Fenêtre de jeu**. Seuls les éléments situés dans cet espace sont visibles par le joueur. Nous pouvons modifier la taille de la fenêtre en allant dans le **Gestionnaire de projet**-\>**Propriétés**, mais pour l'instant, laissons-la telle quelle.
-
-Cliquez sur l'objet Platform dans l'espace de la scène et faites un **Clic droit**-\>**Copie** ou **Ctrl**+**C** (pour Windows) pour copier l'objet. Nous allons créer plusieurs plateformes pour remplir l'espace de la scène. Après avoir copié, faites **Clic droit**-\>**Coller** pour dupliquer l'objet dans la scène. Faites-le plusieurs fois pour remplir la scène. La scène ressemble maintenant à ceci.
-
-
-
-Nous devons créer quelques Obstacles/Plateformes supplémentaires vers la droite de l'espace de la scène pour une génération aléatoire plus douce des obstacles. Enfin, nous ajoutons une **Skybox** ou un fond pour notre jeu. Il s'agit d'un objet de type **Sprite**. Essayez d'ajouter cet objet par vous-même. L'objet utilisé ici est `background2.png`. La scène ressemble maintenant à ceci. Remarquez les obstacles supplémentaires créés. Pour placer l'image de fond **derrière** tous les autres objets, nous voulons que son **Z-Order** soit minimal. L'ordre Z peut être modifié dans l'onglet **Propriétés** à gauche.
-
-
-
-Maintenant vient la partie la plus intéressante. Il est maintenant temps de rendre notre jeu fonctionnel. Apprenez quelques trucs sur les [événements](http://wiki.compilgames.net/doku.php/fr/gdevelop5/events) avant de passer à l'étape suivante.
-
-## Étape 7 : créer des événements/ Rendre le jeu fonctionnel
-
-Les événements sont ce que nous utilisons pour créer les règles de n'importe quel jeu dans GDevelop. C'est ce qui rend GDevelop spécial par rapport aux moteurs de jeu traditionnels. Les événements dans GDevelop vous permettent de programmer visuellement votre jeu sans aucune connaissance ou expérience de programmation, ainsi les personnes de n'importe quel niveau seront capables de créer le jeu réel et de permettre aux joueurs d'interagir avec le jeu.
-
-
-
- Ceci étant dit, créons notre premier événement. Cliquez sur l'onglet **NewScene(Events)**. Cliquez ensuite sur l'icône affichée à gauche pour créer un **Evénement** vide.
-
-Pour notre premier événement, nous voulons que notre sprite joueur saute lorsque la touche flèche **Haut** est pressée. Pour ce faire, nous devons ajouter une condition pour détecter si la touche Up est enfoncée ou non. Cliquez sur **Add a condition** et recherchez la catégorie "Keyboard". Choisissez la condition **Key pressed** et faites-lui vérifier la touche Up comme indiqué ci-dessous.
-
-
-
-Cliquez sur **OK** pour confirmer et nous aurons notre première condition d'événement. Ensuite, nous devons "Ajouter une action" qui aura lieu si la condition est remplie. Nous voulons que notre personnage saute lorsque la condition spécifiée est remplie. Pour ajouter cette action, cherchez et cliquez sur **Comportement de la plate-forme**-\>**Contrôle**-\>**Simuler la pression sur la touche de saut**.
-
-
-
-Notez que l'objet doit être défini sur Player car nous voulons que le joueur effectue l'action. Maintenant, nous voulons également que l'animation de saut soit jouée lorsque le Sprite du joueur saute. Pour ce faire, nous ajoutons une autre action pour la même condition d'événement. Cliquez sur **Ajouter une action**-\>**Sprite**-\>**Animation et images**-\>**Changer l'animation** et définissez-la comme indiqué. Notez qu'au lieu d'utiliser des numéros d'identifiant, vous pouvez également utiliser le nom de l'animation. Pour faire référence aux animations en utilisant leur nom, vous devez utiliser l'option **Changer l'animation (par son nom)**. Le nom doit être entre guillemets.
-
-
-
- L'onglet Événements ressemblera à quelque chose comme ceci maintenant.
-
-> Ajouter des **Commentaires** est un bon moyen de garder l'éditeur d'événements organisé. Pour ajouter un commentaire, cliquez sur l'icône affichée à gauche. Les commentaires sont utilisés pour décrire ce qui est vérifié et exécuté dans cet événement particulier pour le débogage plus tard.tip
-
-
-
- Il est maintenant temps de voir comment l'événement créé fonctionne. Cliquez sur le bouton `Play` pour **Prévisualiser** le projet. Une fenêtre de prévisualisation s'ouvre, dans laquelle nous pouvons tester les différentes fonctions de notre jeu. La fenêtre de prévisualisation nous montre exactement comment le jeu se présente et se comporte lorsqu'il tourne.
-
- Pour l'instant, nous voulons tester l'événement que nous venons de créer, c'est-à-dire faire sauter notre personnage et jouer l'animation de saut en sautant. Utilisez la touche de déplacement vers le haut pour tester l'action de saut.
-
-Nous pouvons voir notre personnage sauter et l'animation a maintenant changé pour l'animation de saut spécifiée. Notez que le personnage reste dans l'état d'animation de saut même après être revenu au sol. Nous traiterons ce problème lorsque nous créerons d'autres événements.
-
-## Faire bouger les obstacles
-
-Pour le deuxième événement, nous allons maintenant faire en sorte que les obstacles/plates-formes se déplacent vers la gauche de l'écran. Pour ce faire, nous devons spécifier une force grâce à laquelle les obstacles se déplacent à une certaine vitesse. Tout d'abord, cliquez pour ajouter un nouvel événement comme vous l'avez fait pour notre premier événement. Il n'est pas nécessaire de spécifier une quelconque condition pour l'instant. Concentrons-nous sur les actions.
-
-
-
- Pour notre première action, choisissez l'objet **Plateforme** puiscliquez sur l'action **Mouvement**-\>**Ajouter une Force(Angle)**. et attribuez-lui un angle **180** (en spécifiant la direction gauche) et une vitesse **250**. Vous pouvez tester l'action que nous venons de créer en utilisant le bouton Play pour voir un aperçu. Vous pouvez voir les obstacles se déplacer vers la gauche. Remarquez que lorsque le Sprite du joueur entre en contact avec la Plate-forme/Obstacle, il se déplace également (glisse) vers la gauche. Nous ne voulons pas que notre personnage bouge lorsqu'il **est sur le sol** de la plateforme. Notre prochain événement s'occupe de cela.
-
-------------------------------------------------------------------------
-
-Comme mentionné ci-dessus, nous devons résoudre le problème de glissement du Player Sprite. Pour ce faire, nous allons utiliser un nouvel événement. Cliquez pour ajouter un nouvel événement, et "Ajouter une condition", **Comportement de la plateforme**-\>**Options**-\>**Is on floor**. Choisissez l'objet **Player** car c'est ce que nous essayons de vérifier, c'est-à-dire si le personnage "st "sur le sol".
-
-
-
-Maintenant, nous devons ajouter une action correspondante. Ajoutez une action à cet événement, similaire à celle que nous avons ajoutée pour l'obstacle/plateforme pour le faire se déplacer vers la gauche. Cette fois, nous devons faire en sorte que notre personnage se déplace vers la droite lorsqu'il se trouve sur le sol de la plate-forme. Nous disons "se déplacer vers la droite" mais notre personnage ne se déplace pas vraiment. Il équilibre simplement le mouvement négatif de la plate-forme ou de l'obstacle afin que le personnage ne glisse pas. Essayez d'ajouter cette action vous-même.
-
-> Introduction : Cliquez sur Ajouter une action. Trouvez **Actions communes à tous les objets**-\>**Mouvement**-\>**Ajouter une Force(Angle)**. Puis choisissez **Joueur** comme objet et attribuez-lui un angle **0**(spécifiant la direction de droite) et une vitesse **250**.tip
-
-
-
- Maintenant vous pouvez lancer l'aperçu des événements que nous avons créés. Vous pouvez voir que le problème de glissement a été résolu et que la mécanique de base du jeu a été créée avec succès, c'est-à-dire que le personnage peut sauter pour éviter les obstacles et que les obstacles se déplacent constamment vers le personnage. Notez qu'à ce stade, les obstacles sont limités et le personnage se retrouve rapidement à court de plateformes sur lesquelles sauter. Nous allons travailler sur ce problème lors de notre prochaine étape.
-
-------------------------------------------------------------------------
-
-Nous devons également faire en sorte que le personnage joue l'animation **Run** lorsqu'il est au sol. Puisque nous avons déjà créé un événement pour vérifier la condition "Is on floor", nous pouvons simplement ajouter une autre action pour ce même événement. Cliquez sur **Ajouter une action**-\>**Sprites**-\>**Animation et images**-\>**Changer l'animation**. Indiquez ensuite l'objet et l'identifiant d'animation correct pour jouer cette animation particulière. Pour ce jeu, nous avons enregistré notre animation Run avec l'identifiant `2`. Vous pouvez également utiliser le nom de l'animation comme identifiant. Pour faire référence aux animations en utilisant leur nom, vous devez plutôt utiliser l'option **Changer l'animation (par son nom)**. Si vous utilisez un nom, n'oubliez pas de le mettre entre guillemets (") car il s'agit d'une chaîne de caractères.
-
-
-
-## Rendre le jeu infini
-
-Créez un nouvel événement. Dans cet événement, nous allons rendre les plateformes **infinies**. Avant de continuer, retournez dans l'espace de la scène et analysez la position X de la **dernière** tuile de plateforme/obstacle.
-
-
-
-Comme vous pouvez le voir, la position X de la dernière tuile est *1550* pour moi. Ne vous inquiétez pas si c'est différent pour vous. Quelle que soit la valeur, nous l'utiliserons pour rendre les plateformes infinies. Maintenant, `Ajoutez une condition` pour ce nouvel évènement. Trouvez **Conditions communes à tous les objets**-\>**Position**-\>**Comparez la position X d'un objet**. Choisissez l'objet "Plateforme" avec le signe de modification **≤ (inférieur ou égal à)** et la valeur disons **-200**.
-
-Nous vérifions et **comparons** la position X de la **première** tuile de la plateforme. La condition est que si la position X de la plateforme est ≤-200, alors l'action correspondante sera exécutée. Maintenant, vous vous demandez peut-être pourquoi la valeur __ -200__ ? Eh bien, notre espace de scène position X commence à partir de la valeur *0*. Nous devons détecter quand la tuile la plus à gauche de notre plateforme sort de l'espace de scène. Nous avons choisi -200 comme position X arbitraire, qui est hors de l'espace de la scène.
-
-
-
-Une fois que la condition est en place, nous allons **Ajouter une action**. Trouvez **Les conditions communes à tous les objets**-\>**Position**-\>**Changer la position X d'un objet**. Maintenant, nous utilisons la valeur de la position X de la dernière tuile que je vous ai demandé de mémoriser. Pour moi, c'était *1550*. Maintenant, nous choisissons "Platform" comme objet, le signe de modification est **= (égal)** et la valeur est **1550**. Cliquez sur **OK** pour confirmer et voilà notre événement terminé.
-
- Ce que nous avons fait dans cet événement, c'est que nous avons mis en place une **Loop** pour nos tuiles Obstacle/Plateforme. Dès qu'une tuile sortait des limites, c'est-à-dire de l'espace de la scène, elle était **téléportée** à une position X (*1550* dans mon cas) vers la droite. Ainsi, les tuiles Obstacle continuent à tourner en boucle et le jeu tourne sans fin.
-
-## États de jeu
-
-Nous allons maintenant ajouter des **états** à notre jeu. Les états décrivent le statut de notre jeu. Il peut être considéré comme un drapeau, pour détecter quand le personnage est en action ou quand le personnage est tombé de la plate-forme. Cela est nécessaire pour décider d'un état de "Game Over" et donc de redémarrer le jeu. Nous pouvons enregistrer l'état en créant simplement une **variable de scène**. Il y aura 3 états pour notre jeu.
-
-- Le premier état ou l'état initial est celui où le jeu n'a pas encore commencé et où l'utilisateur doit le démarrer. Nous allons nous référer à cet état en utilisant la valeur **0**.
-
-
-
-- Le deuxième état est celui où le personnage ou Player Sprite est en action. Nous allons nous référer à cet état en utilisant la valeur **1**.
-
-
-
-- Le troisième état est l'état "Game Over" lorsque le personnage tombe de la plate-forme. Nous allons nous référer à cet état en utilisant la valeur **2**.
-
-
-
-Tout d'abord, nous devons configurer une variable pour stocker l'état actuel du jeu. Créez un nouvel événement. **Ajoutez une condition**-\>**Scène**-\>**Au début de la scène**.
-
-Ensuite, **Ajoutez une action**-\>**Variables**-\>**Valeur d'une variable de scène**. Donnez un nom à votre variable, **Etat** par exemple, et attribuez-lui la valeur **0**. Cela place le jeu dans l'état initial d'avant le jeu au début de la scène.
-
-
-
-Nous ne voulons pas que notre jeu commence immédiatement. Nous voulons qu'il démarre après que l'utilisateur ait appuyé sur une touche.
-
-En d'autres termes, nous voulons que le jeu **démarre** lorsque la valeur de la variable de scène state est à **1**. Modifions nos événements.
-
-> Introduction : dans l'événement où nous avons spécifié une force pour que la plate-forme se déplace, nous allons maintenant ajouter une condition. Cliquez sur **Ajouter une condition**-\>**Variables**-\>**Valeur d'une variable de scène**. Définissez-la pour vérifier si la valeur est égale à **1**.tip
-
-
-
-Voyez les modifications que j'ai apportées à nos événements : j'ai ajouté une nouvelle condition et créé quelques **sous-événements**. La condition d'un sous-événement n'est testée que si la condition de l'événement parent donne un résultat `vrai`. Dans notre cas, si le jeu est dans l'état **initial** (événement), ce n'est qu'alors que les sous-événements vérifieront les conditions respectives et effectueront les actions correspondantes.
-
-Pour convertir un événement en sous-événement, vous devez faire glisser cet événement pour le placer sous un événement parent auquel il est associé. Vous remarquerez une indentation dans l'échelle événement-sous-événement qui confirme que les événements en indentation sont des "sous-événements" par rapport à l'événement parent.
-
-Les sous-événements **fonctionnent** uniquement si la condition de l'événement est vraie. Si la condition de l'événement parent résulte en `faux`, les conditions des sous-événements ne seront pas vérifiées et donc, leurs actions correspondantes ne seront pas exécutées même si les conditions des sous-événements résultent en `vrai`.
-
->  Pour ajouter un nouveau sous-événement au complet, cliquez pour choisir l'événement pour lequel nous créons les sous-événements. Ensuite, cliquez sur l'icône affichée à gauche. Vous pouvez trouver cela dans le menu de navigation de GDevelop.
-
-Maintenant, à moins que la valeur de la variable scène soit **1**, le jeu ne démarrera pas, c'est-à-dire que les plateformes ne bougeront pas et que le joueur ne pourra pas sauter.
-
-Nous avons besoin que l'utilisateur démarre le jeu en appuyant sur une touche. Pour ce faire, ajoutez un nouvel événement. Nous avons besoin de deux conditions ici. Une pour vérifier la valeur de la variable scène et une autre pour détecter si la touche est pressée ou non. Ces deux conditions ont déjà été ajoutées sous une forme ou une autre dans les autres événements. Essayez de le faire vous-même ;-)
-
-
-
-> Astuce : Pour la première condition, nous devons vérifier la valeur de l'état de la variable de scène. Cliquez sur **Ajouter une condition**→**Variables**→**Valeur d'une variable de scène**. Paramétrez-la pour vérifier si la valeur est égale à **0**. Pour la deuxième condition, **Ajoutez une condition**-\>**Clavier**-\>**Touche enfoncée**, puis paramétrez-la pour vérifier si la touche **Haut**. tip
-
-Maintenant, nous ajoutons l'action pour changer l'état du jeu. Nous voulons changer la valeur de la variable de scène à 1. Cliquez sur **Ajouter une action**-\>**Variables**-\>**Valeur d'une variable de scène**. Puis donnez un nom à votre variable, **Etat** par exemple, et attribuez-lui la valeur **1**. Cela ressemblera à quelque chose comme ceci.
-
-
-
-Vous pouvez maintenant tester le fonctionnement du jeu. Vous remarquerez que le jeu ne démarre pas dès que vous cliquez sur le bouton Play. Vous devez appuyer sur la touche Haut pour lancer le jeu. Revoyez ce que nous avons fait ci-dessus si vous n'avez pas compris ce qui s'est passé :-P
-
-Maintenant, nous devons travailler sur le troisième état, c'est-à-dire lorsque le jeu se termine parce que le personnage tombe de la plate-forme. Nous devons vérifier les positions X et Y de notre personnage, c'est-à-dire vérifier si le personnage est à l'intérieur de l'espace scénique. S'il se trouve à l'extérieur, il est évident qu'il est tombé de la plate-forme ou qu'il a été poussé hors de l'écran. Nous vérifions ces conditions et changeons l'état du jeu en état **Game Over**.
-
-
-
-Dans cet événement, nous utilisons le concept d'une condition et d'une sous-condition. Avant d'entrer plus avant dans la logique, mettons d'abord en place cette échelle condition-sous-condition. **Ajouter une condition**-\>**Avancé**-\>**Or**. C'est la condition principale que nous utilisons. Après avoir confirmé et établi cette condition, vous remarquerez que vous pouvez maintenant ajouter des **sous-conditions**. Essayez de le faire vous-même en regardant l'image ci-dessus.
-
-> Conseil : Trouvez les **conditions communes à tous les objets**-\>**Position**-\>**Comparez la position X d'un objet**. Choisissez l'objet "Player" avec le signe de modification **≤ (inférieur ou égal à)** et la valeur disons **-69**. De même, pour la sous-condition suivante, trouvez **Conditions communes à tous les objets**-\>**Position**-\>**Comparez la position Y d'un objet**. Choisissez l'objet "Joueur" avec le signe de modification **≥ (supérieur ou égal à)** et la valeur disons **-550**. tip
-
-Maintenant, comprenons ce que nous avons fait ici. La condition que nous avons ajoutée spécifie une règle telle que si même une des sous-conditions est vraie, alors l'action associée à cet événement sera exécutée. Puisque le jeu se termine s'il tombe (position Y) **ou** est poussé en dehors de l'écran (position X), nous vérifions donc la position X et la position Y.
-
-Maintenant nous voulons changer l'état du jeu quand cela se produit, donc nous ajoutons une action pour changer la valeur de la variable de scène en **2**, le troisième état requis.
-
- Vous pouvez maintenant tester le jeu. Vous remarquerez que si vous tombez ou êtes poussé, le mouvement des obstacles s'arrête. Cela montre que le jeu a atteint avec succès l'état **Game Over**. Dans notre prochain événement, nous allons travailler sur le **redémarrage** du jeu, lorsque l'utilisateur appuie sur une touche.
-
----
-
-## Redémarrer le jeu
-
- Nous voulons que le jeu redémarre lorsque l'utilisateur appuie sur un bouton après avoir atteint l'état **Game Over**. Pour ce faire, créons un nouvel événement. Nous voulons vérifier si l'état du jeu est **2**. Si c'est le cas, nous voulons que l'utilisateur appuie sur la touche **Entrée/Retour** pour redémarrer le jeu. Pour cela, nous ajoutons deux conditions, une pour vérifier la valeur de la variable d'état et une autre pour vérifier si la touche Entrée est enfoncée. Essayez d'ajouter les conditions vous-même ou consultez l'astuce si vous êtes bloqué.
-
-> Astuce : Pour la première condition, nous devons vérifier la valeur de la variable d'état de la scène. Cliquez sur **Ajouter une condition**→**Variables**→**Valeur d'une variable de scène**. Paramétrez-la pour vérifier si la valeur est égale à **2**. Pour la deuxième condition, **Ajoutez une condition**-\>**Clavier**-\>**Touche enfoncée**, puis paramétrez-la pour vérifier si la touche **Retour** est enfoncée. tip
-
-Ensuite, nous devons ajouter une action pour redémarrer le jeu ou la **scène**. Pour ce faire, **Ajouter une action**-\> **Scène**-\> **Changer la scène**. Puis indiquez le nom de notre scène entre guillemets. Sélectionnez l'option **Stop any other paused scenes**. Cette option n'est pas nécessaire pour notre jeu puisqu'il ne contient qu'une seule scène, mais elle peut être bénéfique pour augmenter les performances des jeux ayant un grand nombre de scènes.
-
-
-
-Maintenant, après avoir atteint l'état **Game Over**, lorsque l'utilisateur appuie sur la touche **Entrée**, le jeu redémarre et passe à l'état **initial**, c'est-à-dire l'état où l'utilisateur doit appuyer sur le bouton Up pour démarrer le jeu.
-
-Vous pouvez maintenant tester votre jeu et remarquer le changement d'état. Il ne reste plus qu'à ajouter un système de **score** et quelques **instructions textuelles** pour aider l'utilisateur à connaître les états du jeu.
-
-------------------------------------------------------------------------
-
-## Ajout d'un système de score
-
-Un système de score est un élément nécessaire dans chaque jeu. L'ajouter à notre jeu est très facile car nous n'avons pas besoin d'ajouter de nouveaux événements. Nous allons modifier certains des événements que nous avons déjà créés pour les adapter à ce système. Nous voulons que le score commence à 0 à chaque fois que le jeu commence. Le score continue de s'actualiser jusqu'à ce que l'état Game Over soit atteint. Tout d'abord, créons une variable **objet** pour stocker cette valeur de score.
-
-> Vous pouvez également utiliser d'autres types de variables comme les **variables de scène** et les **variables globales** au lieu des variables d'objet que nous utilisons ici. La façon dont ces variables diffèrent est qu'elles ont des *scopes* différents pour le jeu. Vous pouvez en savoir plus sur les variables [ici](/gdevelop5/all-features/variables). tip
-
-Allez dans l'onglet Objets du panneau de l'éditeur de scène. Choisissez l'objet de votre choix. Nous choisissons ici **Platform**. Cliquez sur les **trois points** à côté de l'onglet Objet Plateforme et choisissez **Modifier les variables de l'objet**. Une nouvelle boîte de dialogue s'ouvre dans laquelle nous pouvons ajouter et configurer des variables pour un objet. Cliquez sur le gros bouton Plus pour ajouter une nouvelle variable. Puis personnalisez le nom et la valeur de la variable comme indiqué ci-dessous.
-
-
-
-Comme vous pouvez le voir, nous avons fixé sa valeur par défaut à 0. Maintenant, nous devons créer une action pour mettre à jour le score. Trouvez l'événement montré ci-dessous que nous avions déjà créé auparavant.
-
-
-
-Nous allons ajouter cette action ici. Cliquez sur **Add an action**. Trouvez **Actions communes à tous les objets**-\>**Variables**-\>**Modifier une variable d'un objet**. Puis faites comme indiqué ci-dessous.
-
-
-
-Nous voulons modifier la variable de l'objet que nous venons de créer. En ajoutant cette action, nous demandons au jeu de mettre à jour la valeur en continu pendant que le personnage est en action.
-
-Nous avons besoin d'un objet Text pour montrer ce changement de valeur. Allez dans l'éditeur de scène. Ajoutez un nouvel objet de type **Text**.
-
-
-
-Faites les modifications nécessaires comme indiqué ci-dessus. Vous pouvez le personnaliser comme vous le souhaitez. Une fois que vous avez terminé de modifier le texte, cliquez sur Appliquer. Ensuite, il suffit de faire glisser et de déposer l'objet texte dans l'espace de la scène. Ce sera quelque chose comme ceci.
-
-
-
-Revenons à l'événement que nous étions en train de modifier. Nous devons ajouter une autre action pour mettre à jour ce texte.
-
-Une fois que nous sommes de retour à cet événement particulier, cliquez sur **Add an Action**-\>**Text Object**-\>**Modify the text**. Maintenant, regardez attentivement l'image ci-dessous. Maintenant, l'objet texte a une valeur de type String mais notre variable score stocke des valeurs numériques. Nous devons utiliser une fonction de la bibliothèque pour convertir cet Integer en String et ensuite mettre à jour le texte de l'objet Text.
-
-
-
- Nous utilisons la fonction `VariableString(variable)` pour faire notre travail. Vous pouvez en apprendre davantage sur les fonctions des bibliothèques dans leurs tutoriels respectifs. Vous pouvez maintenant tester le jeu. Vous pouvez voir le score se mettre à jour pendant que le joueur est en action. Dès que l'état Game Over est atteint, le score cesse de s'actualiser.
-
-L'événement que nous avons modifié ressemblera à ceci maintenant.
-
-
-
-------------------------------------------------------------------------
-
-Maintenant nous allons ajouter d'autres objets texte nécessaires à notre jeu comme un texte **Game Over**, un texte **Score**, un texte **Press Enter to Restart** et **Press Up to Start**. Pour chacun d'entre eux, nous allons créer des objets **Texte** distincts. Comme pour l'étape précédente, ajoutez de nouveaux objets texte et modifiez le texte dans l'éditeur d'objets. Il suffit de les faire glisser et de les déposer dans votre espace de scène pour les afficher.
-
-
-
-Remarquez comment j'ai créé des objets texte séparés pour des textes séparés. Mais nous ne voulons pas que notre jeu affiche le texte `Game Over` au début. Le texte Game Over ne doit être visible qu'à l'état **Game Over**, c'est-à-dire lorsque la valeur de la variable d'état est **2**. De même, nous voulons que le texte Appuyer sur la touche Entrée pour redémarrer apparaisse également à ce stade, tandis que les autres textes doivent être masqués. À l'étape 0, le texte Appuyer sur le haut pour entrer doit être visible. Lorsque le joueur est en mouvement, nous voulons cacher les textes. Pour cela, nous devons agir sur la visibilité de ces objets texte.
-
-Pour cette modification de visibilité, nous utilisons l'action **Action commune à tous les objets**-\> Action **Visibilité**. Après avoir ajouté toutes les actions à leurs endroits respectifs comme indiqué ci-dessus, la page de l'éditeur d'événements ressemblera à ceci.
-
-
-
-Ici, au début de l'événement de scène, que nous avons déjà fait, nous ajoutons deux nouvelles actions pour cacher les textes Game Over et Restart. Pour ajouter ces actions, cliquez sur **Add an action**-\> **Common action for all objects**-\> **Visibility**-\> Puis Hide ou Show en conséquence.
-
-
-
-Maintenant, nous voulons aussi cacher le texte Start, quand le jeu a déjà commencé. Pour cela, nous ajoutons une autre action à l'action déjà créée ci-dessus.
-
-
-
-Enfin, nous ajoutons deux événements pour **montrer** le texte **Game Over** et **Restart** lorsque le jeu se termine, c'est-à-dire lorsque l'état Game Over est atteint.
-
- Voilà, c'est fait ! Tu as appris avec succès comment créer un jeu Endless Runner. Créer des jeux avec GDevelop est très facile une fois que vous avez compris comment utiliser les fonctionnalités. Il m'a fallu environ trois jours pour écrire ce tutoriel en détail, alors qu'il ne m'a fallu qu'une heure pour créer ce jeu. Oui, c'est aussi simple que cela de créer des jeux avec GDevelop💓.
-
-## Bonus : Rendre le jeu plus stimulant
-
-Le jeu est-il trop facile à jouer ? Vous voulez que votre jeu soit un peu plus difficile ? Ne vous inquiétez pas. Travaillons-y ensemble.
-
-Nous allons travailler sur la vitesse des plateformes/obstacles mobiles. Nous voulons qu'ils se déplacent plus rapidement à mesure que le score augmente.
-
-Tout d'abord, nous voulons ajouter une nouvelle variable de scène pour stocker la vitesse initiale à laquelle les plates-formes se déplacent. Pour ajouter une variable de scène, allons à l'événement qui a la condition `Au début de la scène`. Comme nous l'avons fait précédemment, ajoutez une nouvelle variable. Cliquez sur Ajouter une action→Variables→Valeur d'une variable de scène. Ensuite, nommez votre variable quelque chose, **vitesse** par exemple et donnez-lui la valeur **250** qui est la vitesse initiale.
-
-Maintenant, nous voulons modifier l'événement : où nous avons spécifié la valeur de la force avec laquelle les plateformes se déplacent. Au lieu de spécifier une valeur, nous allons utiliser la variable de scène **speed**. Pour utiliser la variable de scène ici, nous devons suivre cette syntaxe : `Variable(speed)`, où speed est la variable de scène spécifiée.
-
-Faites la même chose pour l'action où nous avons spécifié la vitesse du sprite du joueur pour éviter qu'il ne glisse. Maintenant, nous pouvons travailler sur le changement de vitesse au fur et à mesure que le score augmente.
-
-Maintenant, nous voulons vérifier la valeur de la variable objet `score`, et changer la valeur de la variable scène `speed` en conséquence. Ajoutez de nouveaux événements et spécifiez les conditions pour augmenter la vitesse des plateformes. Un exemple est présenté ci-dessous :
-
-
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md b/docs/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md
deleted file mode 100644
index 981d966ab00..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: 1-install-and-setup
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-➡️ **[Étape suivante : 2. Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)**
-
-# 1. Installation et configuration
-
-**GDevelop** est un moteur de jeu multiplateforme gratuit et open source pour tout le monde - vous n'avez pas besoin de savoir comment coder pour créer votre premier jeu. Il peut être utilisé à la fois pour des projets de loisirs et pour la création de jeux à but lucratif.
-
-Pour obtenir une copie de GDevelop, il vous suffit de vous rendre sur la [page de téléchargement](https://gdevelop.io/download/) où les versions pour Windows, Mac OS et Linux sont disponibles.
-
-Vous pouvez également essayer [l'éditeur en ligne](https://editor.gdevelop.io/) directement dans votre navigateur si vous ne souhaitez pas installer le logiciel. Pour ce tutoriel, il est cependant recommandé de télécharger la version complète.
-
-Continuons avec l'installation de la version pour Windows - cliquez sur le bouton "**Windows**" pour commencer à télécharger le programme d'installation pour ce système d'exploitation.
-
- Cliquez sur "**Enregistrer**" dans la fenêtre contextuelle qui apparaît après avoir cliqué sur ce bouton - pour lancer le téléchargement réel du fichier `exe`. Une fois le programme d'installation téléchargé, accédez au dossier où il a été enregistré et cliquez deux fois dessus pour lancer le processus d'installation.
-
-
-
-Attendez la fin du processus. Accédez alors à l'emplacement d'installation de tous vos nouveaux programmes et double-cliquez sur l'application `GDevelop` pour lancer l'éditeur.
-
-
-
-Vous serez accueilli avec l'écran d'accueil sur la page d'accueil.
-
-
-
-De là, vous pouvez soit ouvrir un projet déjà existant "(**OPEN A PROJECT**", soit en créer un nouveau "**CREATE A NEW PROJECT**" — Sélectionnez cette deuxième option.
-
-
-
-À côté de l'onglet "**STARTERS**" (en haut de la fenêtre contextuelle) vous pouvez consulter les exemples et les tutoriels dans leurs onglets respectifs .
-
-
-
-Après avoir cliqué sur le bouton **Empty Game** 640(Jeu vide), le nouveau projet nous est présenté et la fenêtre **Project** devrait apparaître dans le panneau de gauche. Dans celui-ci, sélectionnez **Game settings** (Paramètres du jeu) puis **Properties** pour accéder à la configuration de base de notre jeu.
-
-
-
-Le nom de notre jeu **Game name** est `Geometry Monster`, la largeur de la fenêtre est de `640` pixels (**Game resolution width**) et sa hauteur `960` pixels (**Game resolution height**). Ces commandes créeront une zone de jeu qui convient au mode portrait sur un appareil mobile, choix que nous confirmerons dans une seconde. Vous pouvez entrer votre nom ou votre pseudo dans le champ **Author name** situé en dessous.
-
-
-
-Okus bas dans la fenêtre, vous avez une option pour spécifier le mode **Device orientation (for iOS and Android)** (Orientation de l'appareil) - Sélectionnez **Portrait** afin que nous puissions jouer sur nos téléphones en les tenant d'une seule main et en touchant l'écran.
-
-Nous devons également changer l'option **Change width ...** en **No changes to the game size** (Aucune modification de la taille du jeu). Ce paramètre sera traité plus tard.
-
-Une fois toutes ces informations entrées dans les champs respectifs, vous pouvez cliquer sur **APPLY** (Appliquer) pour enregistrer ces paramètres.
-
-
-
-➡️ **[Étape suivante : 2. Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/10-more-lives.md b/docs/fr/gdevelop5/tutorials/geometry-monster/10-more-lives.md
deleted file mode 100644
index 434ade0db51..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/10-more-lives.md
+++ /dev/null
@@ -1,142 +0,0 @@
----
-title: 10-more-lives
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 9. Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs)** ➡️ **[Étape suivante : 11. Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over)**
-
-# 10. Plus de vies
-
-Avec des ***vies supplémentaires***, le joueur ne sera pas immédiatement pénalisé par un ***jeu terminé*** (Game over) lorsqu'il est touché par une bombe au lieu de l'être par une forme. Cette collision ne sera plus fatale mais supprimera une vie parmi celles disponibles, nombre que nous allons définir à 3.
-
-Ce sera également une bonne occasion d'utiliser des ***des extensions***, qui ont l'avantage de faire que nous n'avons pas besoin de tout créer nous-mêmes.
-
-!!! note
-
- Saviez-vous que les extensions sont également faites d'événements ? Vous pouvez inspecter la façon dont elles sont construites et fonctionnent en cliquant sur l'une d'entre-elles dans le gestionnaire de projets et en inspectant ses comportements, qui sont composés d'événements pour créer les conditions et les actions du comportement.
-
-Cliquez sur l'icône **Project manager** (Gestionnaire de projet) qui se trouve dans le coin supérieur gauche de l'éditeur.
-
-
-
-Cette action ouvre un panneau où la barre de recherche est dans le bas. Cliquez sur **Search for new extensions** (Rechercher de nouvelles extensions).
-
-
-
-L'extension que nous recherchons s'appelle **life** (la vie).
-
-
-
-Cette extension contient un **behavior** (comportement) appelé **Health** (Santé), que nous pouvons ensuite manipuler dans le jeu pour gérer la vie d'un objet. Cliquez sur **INSTALL IN PROJECT** (Installer dans le projet) pour pouvoir l'utiliser.
-
-
-
-!!! note
-
- Les comportements (behaviors) permettent d'ajouter de nouvelles fonctionnalités et de la logique aux objets. Elles sont utiles pour créer des objets en assemblant quelques comportements que l'on peut ensuite manipuler avec des événements.
-
-Pendant que nous y sommes, ajoutons une autre extension utile : **Flash**. Lorsque le monstre est touché par une bombe et perd une vie, nous le faisons cligner des yeux pendant une courte période pour donner au joueur des informations supplémentaires sur ce qui s'est passé.
-
-
-
-Installez-le également.
-
-
-
-Maintenant que nous avons installé les deux extensions, elles doivent être répertoriées dans le panneau de gauche, sous **Functions/Behaviors** (Fonctions/Comportements).
-
-
-
-Cliquez sur l'onglet **LEVEL1** pour revenir dans l'éditeur de scène puis, dans le panneau de droite **Objects**, double-cliquez sur **Monster**, ce qui ouvre une fenêtre contextuelle.
-
-
-
-Dans celle-ci, cliquez sur l'onglet **BEHAVIORS** (Comportements), car nous voulons ajouter ces comportements à l'objet ...
-
-
-
-... en cliquant sur **Add a behavior to the object**.
-
-
-
-Les deux extensions personnalisées que nous venons d'ajouter doivent être répertoriées dans la fenêtre **Ad a new behavior to the object** et disponibles pour utilisation. Cliquez sur l'extension **Health**.
-
-
-
-Nous fixons **Damage cooldown** (Temps de recharge des dégâts) à `0,8` secondes (durée pendant laquelle le monstre touché est indestructible afin qu'il ne soit pas immédiatement touché à nouveau par une autre bombe), **Health** (Santé) à `3` (nombre actuel de vies), et **Maximum health** (Santé maximale)n aussi à `3` (le monstre aura donc trois vies au total).
-
-Cliquez finalement sur **Add behavior to the object** (Ajouter un comportement à l'objet) pour en activer un autre.
-
-
-
-Ce second comportement est **Flash**.
-
-
-
-Le paramètre **Half period** (demi-période) spécifie la durée pendant laquelle l'objet est invisible, et nous allons la fixer à `0,1` secondes. Dans le champ juste en dessous, vous pouvez voir le comportement **Health** que nous avons entré précédemment. Cliquez sur **APPLY** pour les enregistrer.
-
-
-
-Cliquez maintenant sur l'onglet **Level1 (Events)**, puis sur le label **Collision** (un commentaire) pour vous assurer que c'est bien celui qui est actif. Dans le menu en haut à droite, cliquez sur l'icône **Choose and add an event** (Choisir et ajouter un événement), puis sur **For each object** (Pour chaque objet) dans la liste déroulante qui s'est ouverte.
-
-
-
-Cela nous permet d'avoir la condition spécifique **Repeat for each Obstacle object** (Répéter pour chaque objet Obstacle).
-
-
-
-Cliquez sur **Add condition**. Sélectionnez **Obstacle**, **Collision** et **Monster** puis cliquez **OK**. De cette façon, les bombes entreront en collision avec le monstre, et nous pourrons soustraire le nombre actuel de vies lorsque cela se produira.
-
-
-
-Toujours pour **Obstacle**, sélectionnez l'action **Delete an object** (Supprimer un objet) pour supprimer la bombe. Chaque fois qu'une bombe frappe le monstre, elle est supprimée du jeu.
-
-
-
-Une autre action va être utilisée pour que le monstre soit endommagé par la bombe. Cliquez sur **Add action**. Sélectionnez **Monster**, **Damage the object** (Endommager l'objet), en entrez `1` dans le champ **Value of the damage to do** (Valeur du dommage). Cela signifie que chaque fois que la bombe frappe le monstre, il perd une vie.
-
-
-
-Dans l'onglet **OTHER ACTIONS**, ajoutons un son différent lorsque cela se produit. Sélectionnez **Audio**, **Play a sound** (Jouer un son), et **Choose a new audio file** (Choisir un nouveau fichier audio) pour ouvrir la fenêtre de l'explorateur de fichiers.
-
-
-
-Sélectionnez le fichier `kill.wav` et ouvrez-le pour l'ajouter au projet.
-
-
-
-Assurez-vous que le nom du fichier est bien là puis cliquez **OK**.
-
-
-
-Bien que les événements fonctionnent, ils ne font que changer la vie du monstre en mémoire. Affichons donc un compteur de vie à l'écran !
-
-Cliquez sur l'onglet **LEVEL1**, puis dans la liste **Objects** sur **Add a new object** (Ajouter un nouvel objet).
-
-
-
-Faites-en un autre **Sprite**.
-
-
-
-Le nom de l'objet **Object Name:** est `Life`, l'animation **Animation \#0** s'appelle `Life3` (puisque l'état initial de l'animation a trois vies), puis ajoutez l'image avec 3 cœurs.
-
-
-
-Répétez l'opération pour l'animation `Life2` ...
-
-
-
-... et encore une fois pour `Life1`.
-
-
-
-Le dernier est **Life0** (sans images) lorsque toutes les vies sont perdues. Appliquez (**APPLY**) les modifications.
-
-
-
-Faites glisser et déposez l'objet **Life** sur la scène et placez-le dans le coin supérieur droit. Nous verrons au chapitre suivant comment animer cet objet en créant un écran **game over** lorsqu'il atteindra zéro.
-
-
-
-⬅️ **[Étape précédente : 9. Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs)** ➡️ **[Étape suivante : 11. Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/11-game-over.md b/docs/fr/gdevelop5/tutorials/geometry-monster/11-game-over.md
deleted file mode 100644
index 25441fe80ca..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/11-game-over.md
+++ /dev/null
@@ -1,192 +0,0 @@
----
-title: 11-game-over
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 10. Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives)** ➡️ **[Étape suivante : 12. Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu)**
-
-# 11. Jeu terminé
-
-Avec le monstre ayant [plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives), capable de [détecter les collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection) et devant faire au danger de [bombes](/fr/gdevelop5/tutorials/geometry-monster/9-add-bombs) tombant avec les formes, nous arrivons à un point où le joueur peut perdre toutes les vies : qu'advient-il alors ? C'est **Jeu terminé** !
-
-Ajoutons un nouvel objet, qui sera à nouveau un sprite.
-
-
-
-Appelez-le `GameOver`, ajoutez l'image respective et enregistrez-la.
-
-
-
-Faites-la glisser du panneau des objets sur la scène.
-
-
-
-Ajoutez un autre sprite, qui sera le bouton permettant de rejouer. Nommez-le `ButtonTryAgain` (Bouton réessayer) et nommez l'animation `TryAgainNormal` pour l'état du bouton par défaut. Importez l'image.
-
-
-
-Ajoutez une deuxième animation appelée `Try AgainHover` (RéessayerSurvol) qui sera utilisée pour indiquer que l'utilisateur a positionné le curseur de la souris sur le bouton.
-
-
-
-La troisième et dernière animation est `TryAgainPressed` (RéessayerPressé), montrant que le joueur veut recommencer.
-
-
-
-Faites glisser le bouton sur la scène.
-
-
-
-Répétez cette opération pour le `ButtonMainMenu` (BoutonMenuPrincipal) qui amènera le lecteur au menu principal que nous allons créer bientôt en tant que scène séparée.
-
-
-
-Après **MainMenuNormal**, le deuxième nom de l'animation est `MainMenuHover` (MenuPrincipalSurvol) ...
-
-
-
-... et le troisième `MainMenuPressed`, appliquez les modifications.
-
-
-
-Faites glisser le bouton du menu principal sur la scène.
-
-
-
-Double-cliquez sur le monstre et ajoutez-lui une deuxième animation (bouton **ADD AN ANIMATION**).
-
-
-
-C'est l'animation `MonsterDead` qui sera utilisée lorsque le monstre est à court de vies disponibles.
-
-
-
-Créez un commentaire `Health` dans le panneau de l'onglet **Level1 (Events)**.
-
-
-
-Ajoutez ensuite un nouvel événement avec une nouvelle condition.
-
-
-
-Sélectionnez **Monster**, puis **Is just damaged** (Vient juste d'être endommagé) et **OK**.
-
-
-
-!!! note
-
- Cette condition **Is just damaged** se trouve ici car elle fait partie du comportement **Health** que nous avions précédemment ajouté à l'objet.
-
-Cliquez ensuite sur **Life**, **Change the animation (by name)** (Changer l'animation (par son nom), entrez `"Vie" +` dans le champ **Animation name**, puis cliquez sur le bouton **ABC** à droite. Choisissez **Conversion**, puis **Nombre \> Text** (parce que nous voulons transformer la santé du joueur, qui est un nombre, en un texte qui sera utilisé pour choisir l'animation à afficher).
-
-
-
-Dans la fenêtre contextuelle, cliquez sur le bouton **123** ...
-
-
-
-... puis choisissez **Health**.
-
-
-
-Vous serez ensuite invité à entrer le nom de l'objet et le comportement (qui est automatiquement rempli pour vous après avoir sélectionné l'objet).
-
-
-
-Optez pour **Monster**. **Health** est automatiquement écrit dans le deuxième champ. Cliquez sur **APPLY**.
-
-
-
-!!! note
-
- Il est possible d'avoir plusieurs comportements de même nature pour un objet ! Par exemple, un énorme vaisseau spatial dans un jeu de tir peut avoir plusieurs comportements de santé, correspondant à différentes parties du vaisseau. En général cependant, un seul comportement suffit !
-
-GDevelop vous présente la fonction **Monster.Health::Health()** qui retourne la variable de santé. Cette expression sera convertie en texte.
-
-
-
-!!! note
-
- Confus par la notation `Monster.Health::Health()` ? Le premier **Health** est le nom du comportement, tandis que le second **Health** correspond à la fonction à appeler sur le comportement.
-
-La valeur finale de **Animation name** sera `"Life" + ToString (Monster.Health::Health())`.
-
-
-
-!!! note
-
- La fonction **ToString()** est importante, car elle convertit la valeur de la santé (un nombre) en un texte. Sinon, GDevelop essaiera d'ajouter un texte à un nombre, ce qui n'a pas de sens.
-
-De retour à **Monster**, recherchez l'action **Flash (blink)** (Flash (clignotement)), puis réglez la durée du clignotement sur `1,5` secondes, et cliquez **OK**.
-
-
-
-Sous le commentaire **Health**, ajoutez une autre condition.
-
-
-
-Sélectionnez **Monster**, puis **Is dead** (Est mort), et **OK**.
-
-
-
-!!! note
-
- Il s'agit là encore d'une condition fournie par le comportement **Health**.
-
-Cliquez **Add action**. Sélectionnez **Life**, **Change the animation (by name)** (Changer l'animation (par son nom)), puis `"Life0"`. Ainsi, quand le monstre meurt, l'image de vie montre qu'il n'y a plus de cœurs disponibles.
-
-
-
-Ajoutez encore une autre action, cette fois pour **Monster**, puis **Change the animation (by name)**, et **MonsterDead**. Cela montre l'image du monstre lorsqu'il est à court de vies.
-
-
-
-L'action suivante dont nous avons besoin consiste à supprimer le groupe **Shapes** en en activant **Delete an object** (Supprimer un objet) ...
-
-
-
-... et faire de même avec **Obstacle**.
-
-
-
-Sélectionnez ensuite le sprite **GameOver** et affichez-le à l'écran avec **Show**.
-
-
-
-Faites de même avec le sprite **ButtonTryAgain** ...
-
-
-
-... et le sprite **ButtonMainMenu**.
-
-Tous ces sprites seront affichés en fin de partie, mais nous devons les cacher au début du jeu.
-
-
-
-Créez un nouveau commentaire appelé **Game Over**, un nouvel événement et ajoutez-y une condition.
-
-
-
-Recherchez **At the beginning of the scene** (Au début de la scène).
-
-
-
-Créez ensuite une action où **Hide** (Masquer) est appliqué à l'objet **GameOver**.
-
-
-
-Faites de même pour le sprite **ButtonTryAgain** ...
-
-
-
-... et pour le sprite **ButtonMainMenu**.
-
-
-
-De cette façon, lorsque vous lancez le jeu et perdez toutes vos vies, les cœurs sont presque entièrement transparents, les formes et les bombes disparaissent, l'animation de Monster devient inerte et le message **"Game Over"** est affiché avec le bouton avec une maison et le bouton Réessayez.
-
-
-
-Le gameplay lui-même est terminé, mais nous aimerions ajouter plus de possibilités dans le jeu. Il serait bien d'introduire plus de scènes dans le jeu en ayant un [Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu) au début, et permettre au joueur de démarrer le jeu par lui-même.
-
-⬅️ **[Étape précédente : 10. Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives)** ➡️ **[Étape suivante : 12. Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/12-main-menu.md b/docs/fr/gdevelop5/tutorials/geometry-monster/12-main-menu.md
deleted file mode 100644
index 2afe64dcd15..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/12-main-menu.md
+++ /dev/null
@@ -1,162 +0,0 @@
----
-title: 12-main-menu
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 11. Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over)** ➡️ **[Étape suivante : 13. Améliorations !](/fr/gdevelop5/tutorials/geometry-monster/13-juice-it)**
-
-# 12. Menu principal
-
-Pour compléter l'expérience de jeu, nous devrions avoir au moins les écrans du menu principal et du gameplay. Si vous pouvez créer plus d'une scène, en avoir des distinctes concernant les paramètres, les crédits ou toute autre chose ne devrait pas être un problème. Créons donc la scène du menu principal, différente de celle du gameplay.
-
-Cliquez sur le boutoin **Project manager** (Gestionnaire de projet) pour ouvrir le panneau de gauche.
-
-
-
-Ensuite, sous la section **Scènes**, où apparaît **Level1**, sélectionnez **Click to add a scene** (Cliquez pour ajouter une scène).
-
-
-
-Le nom par défaut de la nouvelle scène est **NewScene**, mais vous pouvez cliquer avec le bouton droit sur les trois points verticaux à droite pour ouvrir le menu contextuel et sélectionner **Rename** (Renommer).
-
-
-
-Nommez notre nouvelle scène `MainMenu`.
-
-
-
-Cliquez sur l'onglet **MAIN MENU** (Menu principal), puis cliquez avec le bouton droit sur la scène et sélectionnez **Scene properties** (Propriétés de la scène).
-
-
-
-Changez la couleur de la scène à l'aide du sélecteur de couleurs : dans notre cas, c'est `#560921`.
-
-
-
-Elle devrait ressembler à cela. Cliquez sur le panneau de droite (**Objects**) pour ajouter un nouvel objet et sélectionnez **Sprite**.
-
-
-
-Le nom de l'objet est `GameTitle` et celui de l'animation `GeometryMonster`. Ajoutez l'image du titre et cliquez sur **BEHAVIORS** (Comportements).
-
-
-
-Cliquez sur le bouton **ADD A BEHAVIOR TO THE OBJECT**.
-
-
-
-Cliquez ensuite sur l'onglet **SEARCH NEW BEHAVIORS** ...
-
-
-
-... et recherchez et sélectionnez **movement**. Nous utiliserons le mouvement **Sine (or ellipsis) movement** (Mouvement sinusoïdal (ou elliptique)) pour animer l'image du titre, qui ne sera donc pas statique, et tout le menu principal aura meilleure allure.
-
-
-
-Cette extension fonctionne de la même manière que les extensions que nous avons déjà utilisées. Installez-le dans le projet.
-
-
-
-Parcourez la liste des comportements et cliquez sur le nouveau **Sine movement** (Mouvement sinusoïdal).
-
-
-
-Configurez-le comme suit : (**Object name**) a pour nom `GameTitle`, **Amplitude of the movement on the X axis to** (Amplitude du mouvement sur l'axe X) à `20`, **Amplitude of the movement on the Y axis** (Amplitude du mouvement sur l'axe Y) à `10` et **Speed** (Vitesse) à `60` degrés par seconde, puis cliquez sur **APPLY**.
-
-
-
-Il est maintenant temps d'ajouter le bouton Démarrer. Créez un nouvel objet (**New object**) de type **Sprite**. Nommez-le `ButtonStart` et l'animation `StartNormal` pour l'animation et l'image du bouton lui-même.
-
-
-
-Ajoutez deux autres animations avec leurs images respectives : `StartHover` et `StartPressed`.
-
-
-
-Faites glisser le titre sur la scène puis faites de même avec le bouton.
-
-
-
-Activez l'onglet **MAINMENU (EVENTS)**, et créez un nouvel événement (bouton en haut à droite).
-
-
-
-Ajoutez une nouvelle condition : cliquez sur **OTHER CONDITIONS** (Autres conditions), puis sur **The cursor/touch is on an object** (Le curseur/toucher est sur un objet), et affectez-le à `ButtonStart`. N'oubliez pas de sélectionner **Invert condition** (Inverser la condition) pour que cela fonctionne comme nous le voulons.
-
-
-
-Ajoutons les animations à ce bouton. Sélectionnez **ButtonStart** dans le panneau de gauche, cliquez sur **Change the animation (by name)** (Modifier l'animation (par son nom)) dans celui du milieu et entrez `StartNormal` dans le panneau de droite.
-
-
-
-Ajoutez une nouvelle condition.
-
-
-
-Dans le panneau **OTHER CONDITIONS**, sélectionnnez **The cursor/touch is on an object** entrez `ButtonStart`.
-
-
-
-Répétez ces étapes pour **Change the animation (by name)** et entrez `"StartHover"`.
-
-
-
-Créez un sous-événement (bouton **Add a sub-event...**), ajoutez la condition **Mouse button pressed or touch held** (Bouton de la souris enfoncé ou touché maintenu), le bouton à tester (**Button to test**) est **Left (primary)** (Gauche (principal)).
-
-
-
-Maintenant **ButtonStart**, **Change the animation (by name)**, `"StartPressed"` ...
-
-
-
-... et **Mouse button released**, **Left (primary)**.
-
-
-
-L'action que ce bouton va effectuer consiste à changer de scène pour passer à celle du jeu proprement dit. Recherchez **Change the scene** (Changer la scène), puis sélectionnez `"Level1"`.
-
-
-
-Lancez le jeu et voyez si le menu principal se comporte comme prévu (titre en vol stationnaire, bouton Démarrer fonctionnel), et le gameplay réel est lancé après avoir cliqué sur le bouton.
-
-
-
-Puisque nous savons maintenant comment passer d'une scène à l'autre, faisons-le pour le bouton Réessayer que nous avons créé plus tôt, mais pour lequel nous n'avons pas encore implémenté l'action réelle. Cliquez sur l'onglet **Level1 (Events)** et **Add condition**.
-
-
-
-Cliquez sur **OTHER CONDITIONS**, **The cursor/touch is on an object**, puis spécifiez l'objet `ButtonTryAgain`, activez **Invert condition** et finalement pressez **OK**.
-
-
-
-Maintenant ajoutez une action : **ButtonTryAgain**, **Change the animation (by name)**, et `"TryAgainNormal"`.
-
-
-
-Répétez pour `"TryAgainHover"`.
-
-
-
-Créez un sous-événement et sa condition. Sélectionnez le **ButtonTryAgain** puis **OTHER CONDITIONS**, **Mouse button pressed or touch held**, `Left (primary)`.
-
-
-
-Répétez l'action : **ButtonTryAgain**, **Change the animation (by name)**, `"TryAgainPressed"`.
-
-
-
-Un autre sous-événement, la condition **Left mouse button was released** puis l'action : **Change the scene** pour `"Level1"`, de sorte que le bouton pour réessayer le jeu redémarre le gameplay.
-
-
-
-Maintenant, pour vous laisser un peu faire par vous-même, compte tenu de ce que vous avez appris jusqu'à présent, essayez d'ajouter de l'interactivité au bouton **ButtonMainMenu**, de sorte qu'il changera son animation pour planer une fois survolé, détecter la pression du bouton gauche, changer l'animation en **MainMenuPressed**, détectez le relâchement du bouton et changez la scène en **MainMenu**.
-
-
-
-À la fin, cela devrait ressembler à cette capture d'écran ci-dessus.
-
-Ça marche ! La prochaine étape sera consacrée à l'ajout de la touche finale au jeu : [Améliorations !](/fr/gdevelop5/tutorials/geometry-monster/13-juice-it).
-
-
-
-⬅️ **[Étape précédente : 11. Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over)** ➡️ **[Étape suivante : 13. Améliorations !](/fr/gdevelop5/tutorials/geometry-monster/13-juice-it)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/13-juice-it.md b/docs/fr/gdevelop5/tutorials/geometry-monster/13-juice-it.md
deleted file mode 100644
index 88616639b2f..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/13-juice-it.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: 13-juice-it
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 12. Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu)** ⬅️ **[Retour à l'index](/fr/gdevelop5/tutorials/geometry-monster)**
-
-# 13. Améliorations !
-
-Dans cette dernière partie, nous allons programmer de petites choses qui peuvent rendre le jeu vraiment intéressant : augmenter progressivement le niveau de difficulté et engendrer des effets de particules lorsque Monster collecte les formes.
-
-Nous allons commencer par la première. Ajoutez un commentaire et intitulez-le `Progressively increase game speed` (Augmenter progressivement la vitesse de jeu).
-
-
-
-Créez un nouvel événement, ajoutez-y une action **Value of a scene variable** (Valeur d'une variable de scène), appelez cette variable `"GameSpeed"` (Vitesse de la scène) , réglez le signe des modifications sur **+ (add)** et sa valeur à `7 * TimeDelta()`.
-
-
-
-Ajoutez un autre commentaire, mais plus haut dans la liste des événements, juste en dessous de **Shapes**. Intitulez-le `Move shape according to the game speed` (Déplacer la forme en fonction de la vitesse du jeu). L'augmentation du niveau de difficulté fera tomber les formes plus rapidement.
-
-
-
-Modifiez l'action et remplacez `100` pixels par `Variable(GameSpeed)`.
-
-
-
-Cette modification doit être répétée pour l'obstacle bombe. Ajoutez le commentaire `"Déplacer l'obstacle en fonction de la vitesse de jeu"` ...
-
-
-
-... puis remplacez `100` pixels par `1.5 * Variable(GameSpeed)`, afin que les bombes tombent plus vite que les formes.
-
-
-
-Testez le jeu et jouez un peu pour voir si cela fonctionne vraiment comme prévu.
-
-
-
-!!! note
-
- Vous pouvez rendre le jeu plus facile ou plus difficile en modifiant vous-même la variable **GameSpeed**.
-
-Passons maintenant aux particules. Cliquez sur **Add a new object** dans le panneau de droite ...
-
-
-
-... est sélectionnez **Particles emitter** (Émetteur de particules).
-
-
-
-Ces émetteurs engendrent de petites formes sous l'aspect de particules dès que le monstre ramasse une forme. Le nom de l'objet (**Object name:**) est `Shape1Explosion`, le type de particules : `Textured` (texturé). Sélectionnez ensuite l'image `geometry1.png` et entrez les valeurs des différents paramètres. **Particles start width** (largeur initiale des particules) : `20`, **Particles start height** (hauteur initiale des particules) : `20` pixels, l'opacité du début et de la fin **Start opacity** et **End opacity** est de `255` ; elles seront donc toujours entièrement visibles.
-
-
-
-Faites défiler vers le bas pour entrer d'autres valeurs. Assurez-vous de sélectionner **Delete when out of particles** (Supprimer quand il n'y a plus de particules) : l'émetteur fera apparaître toutes les particules qui lui sont attribuées et elles seront ensuite supprimées si elles ne sont plus nécessaires. Réglez le nombre maximum de particules (**Maximum number of particles displayed**) à `10`, le nombre de particules dans le réservoir (**Number of particles in tank**) à `5`, le débit (**Flow of particles**) à `45` particules par seconde, la force d'émission minimale appliquée sur les particules (**Minimum emitter force applied on particles**) également à `45`, et le maximum à `85`, l'angle du cône de pulvérisation à `360` degrés (de sorte que l'émetteur génère les particules dans toutes les directions) et le rayon de l'émetteur (**Radius of the emitter**) à `10`.
-
-
-
-Faites défiler encore plus vers le bas. Réglez la gravité des particules (**Gravity on particles**) sur les axes X et Y à `0` (nous n'avons pas besoin de la gravité dans ce jeu), le frottement sur les particules (**Friction on particles**) à `2`, la durée de vie minimale des particules (**Particle minimum lifetime**) à `0,5` secondes et la durée maximale (**Particle maximum lifetime**) à `1,5` secondes, la taille initiale des particules (**Particle start size**) à `100` pourcent et taille finale (**Particle start size**) à `80` pourcent (elles deviennent donc un peu plus petites après leur apparition), la vitesse de rotation minimale (**Particle minimum rotation speed**) à `0` degrés par seconde et la vitesse maximale à `40` degrés par seconde (donc certains d'entre-elles peuvent tourner un peu).
-
-Confirmez le tout cela en cliquant sur **APPLY**.
-
-
-
-Répétez ces étapes pour les trois autres formes : **geometry2**, **geometry3** et **geometry4**.
-
-
-
-Créez un sous-commentaire pour générer les particules (`CREATE PARTICLES`), puis ajoutez une nouvelle condition.
-
-
-
-Sélectionnez **Shape1** dans la liste des objets, recherchez et sélectionnez **Number of objects** (Nombre d'objets), puis `≠(not equal to)` (différent de) et comparez à `0` dans le panneau de droite.
-
-
-
-Ajoutez une nouvelle action `Shape1Explosion` qui apparaît dans la liste des objets, recherchez et sélectionnez **Create and object** (Créer un objet), puis positionnez X (**X position**) sur `Shape1.PointX("Center")` et positionnez Y (**Y position**) sur `Shape1.PointY("Center")`. Elles apparaissent donc au milieu de la forme qu'elles vont remplacer.
-
-
-
-Ajoutez une autre action **Shape1Explosion**, avec **Size, parameter 1** (Taille, paramètre 1) puis `= (set to)` avec pour valeur `Shape1.Width()`. Confirmez avec **OK**
-
-
-
-Répétez ces étapes pour les trois autres formes.
-
-
-
-Nous allons maintenant, ajouter le sous-commentaire de la section concernant la suppression de la forme lorsqu'elle est récoltée, et ensuite déplacer la partie responsable de l'augmentation du score.
-
-
-
-Faites glisser la partie **Delete object Shapes** (Supprimer les formes des objets) vers le bas ...
-
-
-
-... pour que cela ressemble à ça.
-
-
-
-C'est ça ! Les treize étapes sont maintenant terminées et vous avez construit le jeu **Geometry Monster** à partir de zéro. **Félicitations !**
-
-
-
-Le jeu propose une quantité infinie de formes à collecter, des bombes pour le rendre un peu plus difficile, des vies pour contrer ces difficultés et "adoucir" les erreurs, suivre le score, terminer le jeu lorsque Monster est à court de vies, basculer entre le menu principal et les scènes de gameplay , augmentant le niveau de difficulté, les effets de particules et bien plus encore!
-
-N'hésitez pas à l'utiliser comme base et à le compléter. Ajoutez des fonctionnalités, modifiez celles existantes et jouez pour en apprendre le plus possible.
-
-⬅️ **[Étape précédente : 12. Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu)** ⬅️ **[Retour à l'index](/fr/gdevelop5/tutorials/geometry-monster)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md b/docs/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md
deleted file mode 100644
index e0029f951a4..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: 2-creating-first-scene
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 1. Installation et configuration](/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup)** ➡️ **[Étape suivante : 3. Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)**
-
-# 2. Création de la première scène
-
-Maintenant, quand nous avons [installé l'éditeur GDevelop](/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup) et que la configuration de base est terminée, nous pouvons commencer à créer. Pour ajouter des composants au jeu, nous devons commencer par une scène - celle-ci fonctionnera comme un panier contenant divers objets et fera en sorte de les montrer à l'écran.
-
-Pour ajouter une nouvelle scène, cliquez sur le menu déroulant **Scenes** dans le panneau de gauche et lorsque son contenu est développé, cliquez le bouton **Click to add a scene** (Cliquez pour ajouter une scène), qui est suffisamment explicite puis cliquez sur les trois points à gauche et sélectionnez **Rename**.
-
-
-
-Appelons notre première scène `Level1`.
-
-
-
-Après la création réussie de la scène, nous y sommes directement dirigés. Remarquez les onglets **Level1** et **Level1 (Events)** (événements) dans le haut de l'éditeur, onglets que vous pouvez sélectionner séparément. Dans le panneau de gauche, vous pouvez configurer les propriétés de n'importe laquelle des instances sélectionnées dans la scène, dont le contenu réel est visible dans la partie centrale de l'écran (la zone de jeu est déjà en mode portrait), et dans le panneau de droite s'affiche la liste des objets (**Objects**).
-
-
-
-⬅️ **[Étape précédente : 1. Installation et configuration](/gdevelop5/tutorials/geometry-monster/1-install-and-setup)** ➡️ **[Étape suivante : 3. Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md b/docs/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md
deleted file mode 100644
index bde425f2363..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: 3-introducing-main-character
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 2. Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)** ➡️ **[Étape suivante : 4. Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)**
-
-# 3. Création du personnage principal
-
-Maintenant que la scène elle-même est prête, elle est plutôt vide - ajoutons-y quelque chose !
-
-Nous pouvons le faire en cliquant sur le bouton **Add a new object** (Ajouter un nouvel objet) dans le panneau **Objects** à droite.
-
-
-
-Il ouvre une fenêtre contextuelle où une liste des options disponibles est affichée. Celles-ci vont des **Sprites** à l'option **Text entry** (Entrées de texte) en passant par l'option **Tiled Sprite**, **Text**, **Particles emitter** (émetteurs de particules), **Panel Sprite** et **Shape painter** (dessinateur de formes). Sélectionnez **Sprite**, vocable utilisé pour désigner les objets animés qui peuvent être utilisés pour la plupart des éléments d'un jeu.
-
-
-
-Une autre fenêtre apparaît alors, mais contenant cette fois-ci les options pour personnaliser le nouvel objet. Nous l'appellerons `Monster`. Il sera notre personnage principal dans le jeu, chargé de collecter des objets et tout en étant en même temps *mignon*.
-
-
-
-Après lui avoir donné un nom, ajoutons quelques images qui le représenteront sur la scène et dans le jeu. Cliquez sur le bouton **ADD AN ANIMATION** (Ajouter une animation) puis sur le gros bouton **ADD** à gauche pour ouvrir une fenêtre de sélection de fichier.
-
-
-
-Accédez au dossier où se trouvent les images (vous pouvez les télécharger à partir de ), sélectionnez tout ce que vous souhaitez ajouter (Ici` **monster-idle1.png**` à `monster-idle11.png`), puis cliquez sur **Ouvrir**.
-
-
-
-Si vos images ne se trouvent pas dans le dossier du projet, GDevelop affiche un message disant que ces fichiers sont en dehors du dossier du projet, donc la prochaine étape recommandée est de permettre de les copier dans le dossier du projet avant de faire quoi que ce soit avec eux. Cliquez sur **OK** pour le faire.
-
-
-
-Toutes les images que nous venons d'importer serviront pour animer le personnage inactif – celle qui est lue lorsque rien ne se passe. L'animation étant en boucle, il semblera que le monstre ferme et ouvre les yeux de temps en temps, et ce indéfiniment.
-
-Nous nommerons cette animation `MonsterIdle` (Monstre au repos), et chaque nouvelle image sera rendue après chaque dixième de seconde.
-
-!!! note
-
- N'oubliez pas de sélectionner l'option **Loop** (Boucle) pour que l'animation se répète indéfiniment.
-
-
-
-Vous pouvez également modifier des images dans Piskel (**EDIT IN PISKEL**) ou prévisualiser (**PREVIEW**) l'animation si vous le souhaitez.
-
-Lorsque tout est terminé, cliquez sur **APPLY** (Appliquer) pour enregistrer les modifications.
-
-
-
-Vous pouvez maintenant voir l'icône de notre petit monstre dans le panneau de droite, sous la liste **Objects**. N'est-il pas mignon ?
-
-Pour rendre la scène un peu plus intéressante, ajoutons-lui une couleur d'arrière-plan. Faites un clic droit sur la scène et sélectionnez **Scene properties** (Propriétés de la scène) dans le menu contextuel.
-
-
-
-Cette commande ouvre une fenêtre contextuelle avec quelques options. Nous sommes intéressés à définir une couleur d'arrière-plan de la scène (**Scene background color**) de sorte que le monstre ait l'air élégant.
-
-Cliquez sur le sélecteur de couleurs à droite et choisissez une couleur - la nôtre est `#560921`.
-
-
-
-Après confirmation, la couleur d'arrière-plan de la scène changera pour celle qui a été sélectionnée - succès !
-
-
-
-⬅️ **[Étape précédente : 2. Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)** ➡️ **[Étape suivante : 4. Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md b/docs/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md
deleted file mode 100644
index 36de6bbacbc..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md
+++ /dev/null
@@ -1,174 +0,0 @@
----
-title: 4-desktop-and-mobile-controls
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 3. Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)** ➡️ **[Étape suivante : 5. Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)**
-
-# 4. Commandes pour ordinateurs et téléphones mobiles
-
-Maintenant que nous avons créer Monster, ce serait bien de pouvoir le contrôler.
-
-Faites glisser le monstre du panneau de droite (contenant les objets) sur la scène et cliquez sur l'onglet **Level1 (Events)** pour passer à l'édition des événements.
-
-
-
-La liste des événements est videpar défaut – le message contextuel explique que les événements sont composés de **conditions **et d'**actions**.
-
-
-
-Dans la partie supérieure droite de l'éditeur sont affichées maintenant quelques icônes. Cliquez sur la troisième à partir de la gauche : un carré bleu clair avec un signe **+** blanc sur fond bleu foncé. Lorsque vous lui passez la souris dessus, l'infobulle indique **Add a new empty event** (Ajouter un nouvel événement vide).
-
-
-
-Quand l'événement vide est ajouté, cliquez sur **Add condition** (Ajouter une condition), ce qui ouvre une fenêtre contextuelle.
-
-
-
-Dans la fenêtre contextuelle, vous voyez que notre monstre figure dans la liste des objets. Mais, pour le moment, il ne nous intéresse pas. Cliquez sur l'onglet **OTHER CONDITIONS** (Autres conditions) pour développer la liste des options.
-
-
-
-!!! note
-
- Vous n'avez pas l'onglet **OTHER CONDITIONS** ? Pas de panique ! Allez dans les préférences de GDevelop (cliquez sur le menu **File**, ou **GDevelop 5** sur macOS, puis sur **Preferences**). Activez **Use the new action/condition editor** (Utiliser le nouvel éditeur d'action/condition). Vous pouvez ensuite revenir au didacticiel.
-
- 
-
-Les conditions incluent entre autres les collisions, les opérations sur les variables, la souris et les commandes tactiles. Cliquez sur l'option **Keyboard** (Clavier) pour développer la liste, puis sélectionnez **Key pressed** (Touche pressée).
-
-
-
-Cette condition teste si une touche spécifique a été pressée. Entrez **Left** (Gauche) dans le champ **Key** (Touche), puis cliquez sur **OK**.
-
-
-
-Revenons maintenant à notre Monster. Cliquez sur **Add an action** (Ajouter une action).
-
-
-
-Sélectionnez **Monster** dans la liste de gauche, recherchez puis cliquez **Add a force** (Ajouter une force), puis réglez la vitesse **Speed on X axis** sur `-450` et à `0` pour l'axe Y.
-
-
-
-!!! note
-
- Assurez-vous que l'option **INSTANT** (Instantané) est sélectionnée, car nous voulons que le monstre se déplace uniquement lorsque vous appuyez sur la touche gauche et s'arrête lorsqu'elle est relâchée.
-
-Quand vous avez terminé, cliquez sur **OK** pour confirmer.
-
-GDevelop affiche la version finale de l'événement que nous venons de terminer, avec les conditions à gauche et une action à droite. En langage courant, cela veut dire que lorsque vous appuyez sur la touche gauche, le monstre se déplace horizontalement (en appliquant la force de -450 unités le long de l'Axe X tout en ignorant l'axe Y doté d'une force valant 0) vers le bord gauche de l'écran.
-
-
-
-**Félicitations**, le monstre se déplace vers la gauche ! Maintenant, ajoutons le déplacement vers la droite. Essayez de le faire vous-même en suivant exactement les mêmes étapes que vous avez faites pour le mouvement vers la gauche.
-
-
-
-Lorsque vous avez terminé le mouvement vers la droite, les deux événements avec leurs conditions et actions devraient maintenant être en place, afin que le monstre puisse se déplacer dans les deux sens - vers la gauche ou vers la droite.
-
-Cliquez sur le bouton **Add a comment** (Ajouter un commentaire) dans la barre des outils pour faire apparaître un champ supplémentaire.
-
-
-
-Faites-le glisser en haut des deux événements (avec la souris sur la barre bleue à gauche).
-
-
-
-Entrez ensuite le commentaire `Monster`. Ce commentaire nous permet clairement voir à qui s'adresse ces commandes quand nous avons beaucoup d'événements dans la liste.
-
-Il nous faut maintenant limiter le mouvement du monstre à la partie visible de l'écran, de manière à ce qu'il ne se déplace pas à l'extérieur de celui-ci lorsque nous appuyons sur les touches du clavier.
-
-
-
-Cliquez sur l'onglet **Level1** pour revenir dans la fenêtre de configuration de la scène et double-cliquez **Monster** dans la liste de droite.
-
-
-
-Cliquez l'onglet **BEHAVIORS** (Comportements) dans la fenêtre qui s'ouvre.
-
-
-
-Puis ajouter un comportement à l'objet en cliquant **ADD A BEHAVIOR TO THE OBJECT** dans la nouvelle fenêtre.
-
-
-
-Cliquez sur l'onglet **SEARCH NEW BEHAVIORS** (Rechercher nouveaux comportements) dans la nouvelle fenêtre.
-
-
-
-Sélectionnez **Screen** (Écran) dans la liste des comportements disponibles.
-
-
-
-Cliquez sur le comportement personnalisé **Stay On Screen** (Rester sur l'écran) que nous allons utiliser pour le monstre.
-
-
-
-Installez-le dans notre projet (**INSTALL IN PROJECT**). Il sera ainsi disponible pour une utilisation ultérieure.
-
-
-
-Sélectionnez-le ensuite dans la liste.
-
-
-
-Entrez `133` pour la marge de droite (dans **Right margin, in pixels**).Cette valeur correspond à la largeur du monstre (en pixels), de manière à ce qu'il ne sorte pas de l'écran vers la droite (son origine se trouve dans la partie supérieure gauche du sprite), puis cliquez sur **APPLY**.
-
-
-
-Dans la barre d'outils (en haut à droite), cliquez sur le premier bouton – **Launch a preview of the scene** (Lancer un aperçu de la scène).
-
-
-
-Si tout à été fait correctement , l'aperçu du jeu Geometry Monster est lancé, et vous pouvez déjà contrôler le personnage principal !
-
-
-
-Maintenant que nous avons des commandes pour un ordinateur (déplacer le monstre avec le clavier), il serait génial d'ajouter la possibilité de le déplacer avec la souris ou avec les doigts sur un écran tactile. Le jeu sera plus facile à jouer avec la souris, et il sera également jouable sur un mobile.
-
-Cliquez sur l'onglet **Level1 (Events)** puis sur le bouton sur **Add a new empty event** et ajoutez une condition (**(Add condition**).
-
-
-
-Dans l'onglet **OTHER CONDITIONS**, Recherchez **Mouse and touch** (Souris et touché) puis **Mouse button pressed or touch held** (Bouton de la souris enfoncé ou appuyé de manière prolongée), et le bouton à tester (**Button to test**) sera **Left (primary)** (Gauche (principal)).
-
-
-
-Ajoutez maintenant une sous-condition en cliquant dans le quatrième bouton de la barre d'outils en haut à droite.
-
-
-
-Sélectionnez **Monster**, puis **"Compare X position of an object** (Comparer la position X d'un objet) et entrez `> (greater than)` (supérieur à) pour **Sign of the test** (Signe du test) et `MouseX() + 5` pour la **Position X**.
-
-* `MouseX ()` est une *expression* (aussi appelée *fonction*, comme les fonctions mathématiques). Elle renvoie la position de la souris, ou du toucher sur un écran tactile, en pixels sur l'axe X.
-
-* Le `5` est un décalage en pixels, de manière à ce que le monstre ne saute pas entre les deux états s'il est cliqué ou touché au centre (vous verrez comment cela est utile en programmant le prochain événement).
-
-
-
-Copiez l'action effectuée à partir de la condition testant une pression sur la touche gauche du clavier. (Faites un clic droit dans zone et sélectionnez **Copy** dans le menu contextuel, comme montré dans la figure.) ...
-
-
-
-... et collez-la dans la condition de nous venons de créer.
-
-
-
-Créez ensuite une nouvelle sous-condition.
-
-
-
-Suivez le même schéma : **Monster**, **Compare X position of an object**, puis **\< (less than)** et **MouseX() - 5** pour le décalage de l'autre côté.
-
-
-
-Copiez et collez l'action de la condition pour la touche droite du clavier et collez-la ici.
-
-
-
-Excellent! Le monstre devrait maintenant se déplacer avec les commandes du clavier et de la souris!
-
-
-
-⬅️ **[Étape précédente : 3. Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)** ➡️ **[Étape suivante : 5. Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md b/docs/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md
deleted file mode 100644
index 7c1d253dca7..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md
+++ /dev/null
@@ -1,174 +0,0 @@
----
-title: 5-adding-and-moving-shapes
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 4. Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)** ➡️ **[Étape suivante : 6. Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection)**
-
-# 5. Ajout et déplacement de formes
-
-Après avoir réussi [l'implementation des déplacements](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls) du monstre, il serait bien d'ajouter les formes qui vont tomber et de les déplacer vers le bas de le scène.
-
-!!! note
-
- Notez qu'au lieu d'avoir un nombre fixe d'objets placés sur la scène, nous les générerons de manière à ce que le jeu soit de type réellement **sans fin**.
-
-Dans le panneau **Level1**, cliquez sur **Add a new object** (Ajouter un nouvel objet) dans le panneau de droite pour ouvrir une fenêtre contextuelle.
-
-
-
-Sélectionnez un **Sprite**, comme nous l'avons fait auparavant avec Monster .
-
-
-
-Nommez-le `Shape1` et cliquez sur le bouton **ADD AN ANIMATION** (Ajouter une animation).
-
-
-
-L'animation de cet objet s'appelle **NewObject1**. Chargez l'image du triangle à partir du disque. Le temps de rendu n'est pas important car c'est la seule image que nous avons, il en va de même pour l'animation en boucle. Cliquez sur **APPLY** (Appliquer) pour l'enregistrer.
-
-
-
-Cliquez encore une fois sur **Add a new object**.
-
-
-
-Faites de même pour la deuxième forme **Shape2** avec comme nom d'animation **NewObject2**, importez l'image du carré, puis cliquez **APPLY**.
-
-
-
-Répétez les mêmes opérations pour le cercle.
-
-
-
-Répétez encore une fois pour la dernière et quatrième forme, un pentagone.
-
-
-
-Les quatre formes sont maintenant visibles dans la liste **Objects** dans le panneau de droite. Nous allons les regrouper avec l'éditeur de groupes d'objets **Object groups**. Pour ce faire, cliquez sur la quatrième icône située dans le menu en haut à droite, celle qui a trois cubes.
-
-
-
-Cette opération ajoute un panneau supplémentaire à droite du panneau **Objects**, intitulé **Object Groups**. Cliquez sur **Group** pour ouvrir une fenêtre contextuelle.
-
-
-
-Cliquez sur **Choose an object to add to the group** (Choisir un objet à ajouter au groupe), puis sélectionnez la première forme.
-
-
-
-Continuez à ajouter les formes jusqu'à ce que toutes soient répertoriées dans le groupe, puis cliquez sur **APPLY**.
-
-!!! note
-
- Prenez garde de ne pas ajouter le monstre à ce groupe, uniquement les formes.
-
-
-
-Cliquez maintenant sur les trois points verticaux à côté de **Group** dans le panneau **Object Groups**pour ouvrir un menu contextuel et cliquez sur **Remane** (Renommer).
-
-
-
-Renommez le groupe `Shapes` (Formes) et confirmez.
-
-
-
-Activez le panneau **Level1 (Events)**, cliquez le quatrième bouton dans la barre des menus en haut à droite pour ajouter un commentaire indiquant que cette nouvelle section concerne les formes. Inscrivez `Shapes` dans ce commentaire.
-
-
-
-Cliquez ensuite sur le bouton **Add a new event** (Ajouter un nouvel événement) puis ajoutez une condition (**Add condition**) pour ouvrir une fenêtre contextuelle.
-
-
-
-Dans l'onglet **OTHER CONDITIONS** (Autres conditions), recherchez **Timers and time** (Temps et chronomètre), puis cliquez pour le sélectionner.
-
-
-
-!!! note
-
- Vous n'avez pas l'onglet **OTHER CONDITIONS** ? Pas de panique ! Allez dans les préférences de GDevelop (cliquez sur le menu **File**, ou **GDevelop 5** sur macOS, puis sur **Preferences**). Activez **Use the new action/condition editor** (Utiliser le nouvel éditeur d'action/condition). Vous pouvez ensuite revenir au didacticiel. 
-
-Ensuite, dans la liste déroulante, sélectionnez **Value of a scene timer** (Valeur d'un chronomètre de scène) et entrez deux valeurs. La première est `1,3` dans le champ **Time in seconds** (Temps en secondes) qui spécifie la durée de la minuterie en secondes. Autrement dit, toutes les 1,3 secondes, nous déposons une nouvelle forme sur la scène.
-
-Le deuxième est le nom de la minuterie **Timer's name** que vous appelez `"ShapeCreation"`, puis cliquez sur **OK** lorsque vous avez entré ces deux valeurs.
-
-
-
-Maintenant que la condition est définie, ajoutons l'action en cliquant sur **Add action**:.
-
-
-
-Cliquez sur **Other actions** (Autres actions).
-
-
-
-Recherchez ensuite **Create an object from its name** (Créer un objet à partir de son nom) qui se trouve dans la liste déroulante **Non-objects and other actions** (Non-objets et autres actions).
-
-
-
-Dans le panneau de droite, recherchez le groupe **Shapes** et cliquez-lui dessus.
-
-
-
-Les trois valeurs que nous devons spécifier sont : **Text representing the name of the object to create** (Texte représentant le nom de l'objet à créer), **X position** et **Y position**. La première est `"Shape"+ ToString (RandomInRange(1,4))`, de sorte que chaque fois qu'un nouvel objet est créé, ce sera l'une des quatre formes disponibles choisie au hasard.
-
-La position X est `RandomInRange(80,640-80)` - ce qui signifie que nous choisissons une position aléatoire entre 80 et 560 pixels. Pourquoi ces valeurs spécifiques ? Pour nous assurer que les formes sont entièrement restituées sur la scène et ne soient pas partiellement découpées si elles sont rendues sur l'un des bords de l'écran.
-
-La position Y est `-100`, donc la nouvelle forme apparaît au-dessus de la zone visible, puis descend. Cela semble plus naturel que de la faire apparaître directement dans la zone de jeu.
-
-
-
-!!! note
-
- Un peu perdu au sujet des positions sur l'écran ? Si vous déplacez votre curseur dans l'éditeur de scène, vous verrez en bas à gauche les positions X et Y du curseur. Utile pour se faire une idée de l'emplacement d'un objet tout en travaillant avec des événements comme ceux-ci.
-
-Ajoutons une autre action (**Add action**) à celle que nous venons de créer.
-
-
-
-Assurez-vous que les formes **Shapes** sont bien sélectionnées, puis recherchez **Angle** dans le panneau à droite. Cette commancde change l'angle de rotation d'un objet. Dans **Modification's sign** (Signe de la modification), sélectionnez **= (set to)** (= (défini à)) et la valeur `RandomInRange(0, 360)`.
-
-Désormais, chaque fois qu'une nouvelle forme est créée et déposée dans la zone de jeu, elle sera tournée d'une valeur aléatoire comprise entre 0 et 360 degrés. Cela ajoutera de la variété à la façon dont les formes apparaissent dans le jeu.
-
-
-
-Allons encore plus loin avec les personnalisations - cliquez à nouveau sur **Add action**.
-
-
-
-Cliquez sur **Shapes**, puis recherchez **Scale** (Echelle). Sélectionnez **= (set to)** et entrez `RandomInRange(0.8, 1.6)`. Cela personnalisera encore plus les formes en introduisant une mise à l'échelle aléatoire : certaines d'entre elles seront un peu plus petites que l'original (80% de l'original), et certaines seront plus grandes (160%).
-
-
-
-!!! note
-
- La rotation et la mise à l'échelle sont un excellent moyen de rendre le jeu plus amusant même si nous n'avons encore que quatre formes de base dans le jeu.
-
-Cliquez **Add action** puis **OTHER ACTIONS** (Autres actions). Recherchez **Timers and time** (Temps et chronomètre), et sélectionnez **Start (or reset) a scene timer** "Démarrer (ou réinitialiser) un chronomètre de scène).
-
-
-
-Le nom du minuteur étant **ShapeCreation**, chaque fois qu'une nouvelle forme est créée, le minuteur est réinitialisé et nous attendons 1,3 seconde avant qu'une nouvelle forme ne soit créée à nouveau et cela indéfiniment.
-
-
-
-Nous avons presque terminé avec les formes. Créez un commentaire intitulé **Move shapes** (Déplacer les formes), cliquez sur **Add a new empty event** (Ajouter un nouvel événement vide), puis sur **Add action**.
-
-
-
-Définissez l'action de la manière suivante : sélectionnez **Shapes**, puis à droite **Add a force (angle)** (Ajouter une force (angle)), et réglez **Angle** sur` **90**` et **Speed (in pixels per second)** (Vitesse en (pixels par seconde)) sur `100`.
-
-
-
-Ajoutez une autre action : **Shapes**, puis **Rotate** (Rotation) et réglez la vitesse angulaire **Angular speed (in degrees per second)** sur `90`.
-
-
-
-C'est fait ! Non seulement less formes sont générées de manière aléatoire et indéfinie, elles ont non seulement une rotation et une mise à l'échelle aléatoires au début, mais elles tournent aussi en tombant.
-
-
-
-Lancez le jeu pour voir tout cela en action : les formes devraient tomber sur la scène. Mais on dirait que quelque chose manque, non ? Les formes passent sur le monstre. Nous devons donc introduire [la détection des collisions](/gdevelop5/tutorials/geometry-monster/6-collision-detection) pour pouvoir les collecter.
-
-⬅️ **[Étape précédente : 4. Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)** ➡️ **[Étape suivante : 6. Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection.md b/docs/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection.md
deleted file mode 100644
index aff175f37c4..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: 6-collision-detection
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 5. Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)** ➡️ **[Étape suivante : 7. Bruitages amusants](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun)**
-
-# 6. Détection des collisions
-
-Les formes tombent, mais elles n'interagissent pas avec le monstre. Nous aimerions pouvoir contrôler le monstre et lui permettre de collecter les formes qui tombent - c'est à cela que sert la ***détection des collisions***.
-
-Ajoutez un nouveau commentaire et appelez-le `Collision`.
-
-
-
-Ajoutez ensuite une nouvelle condition (**Add condition**).
-
-
-
-Comme toujours, assurez-vous que **Shapes** soit sélectionné, puis recherchez **Collision** (qui testera la collision entre deux objets). Dans le panneau de droite, entrez `Monster` et cliquez sur **OK**.
-
-
-
-Nous avons la condition, il est maintenant temps d'ajouter une action (**Add action**).
-
-
-
-Activez **Shapes**, recherchez et activez **Delete an object** (Supprimer un objet) puis cliquez **OK**:
-
-
-
-Ce fut rapide ! La détection de collisions en elle-même est simple, mais sa puissance se révélera dans les chapitres suivants, où nous ajouterons de nombreuses actions à la condition de collision créée ci-dessus.
-
-⬅️ **[Étape précédente : 5. Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)** ➡️ **[fr/gdevelop5:tutorials:geometry-monster:7-sounds-fun\|Étape suivante : 7. Bruitages amusants](/gdevelop5/tutorials/geometry-monster/7-sounds-fun)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md b/docs/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md
deleted file mode 100644
index c9afb614a6d..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: 7-sounds-fun
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 6. Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection)** ➡️ **[Étape suivante : 8. Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score)**
-
-# 7. Bruitages amusants
-
-La [détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection) est à elle seule brève et "nue", mais lorsque Monster et la forme entrent en collision, rien ne se passe mise à part la destruction de la forme. Nous pouvons profiter de cette condition (la détection d'une collision) et y ajouter quelque chose de plus, un ***son*** (bruitage).
-
-Ajoutez une action, sélectionnez **Monster** puis l'onglet **OTHER ACTIONS** (Autres actions).
-
-
-
-Recherchez **Audio** dans le menu déroulant qui s'ouvre, optez pour **Play a sound** (Jouer un son). Dans le panneau de droite, cliquez sur **Choose a new audio file** (Choisir un nouveau fichier audio).
-
-
-
-Cette action ouvre une fenêtre contextuelle où vous pourrez choisir et charger un fichier audio qui sera joué lorsque une forme est collectée par le monstre. Pour nous, il s'agit du fichier `monster.wav`.
-
-
-
-Si vous l'avez sélectionné correctement, vous devriez voir le nom du fichier son qui sera utilisé.
-
-
-
-!!! note
-
- Assurez-vous que **Repeat the sound** (Répéter le son) est réglé sur **NO** car nous voulons que le son ne soit joué qu'une seule fois lorsque le monstre récupère la forme. Le volume par défaut est `100`.
-
-
-
-Maintenant que le bruitage est programmé, nous pouvons commencer à penser à [suivre le score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score).
-
-⬅️ **[\|Étape précédente : 6. Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection)** ➡️ **[Étape suivante : 8. Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score.md b/docs/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score.md
deleted file mode 100644
index 732db19f7d8..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: 8-tracking-score
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 7. Bruitages amusants](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun)** ➡️ **[Étape suivante : 9. Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs)**
-
-# 8. Suivi du score
-
-C'est génial d'avoir déjà [des bruitages](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun), mais la partie la plus importante est en fait de compter le nombre de formes que le monstre a pu collecter. Nous allons profiter de la [détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection) de la même manière : lorsque une forme est collectée, non seulement nous jouons un son, mais nous augmentons également le ***score***.
-
-Pour commencer, ajoutons une action après les actions servant à supprimer une forme et jouer un son, que nous avions ajoutées dans les chapitres précédents. Choisissez **Add an action** (Ajouter une action).
-
-Cliquez sur **OTHER ACTIONS** (Autres actions), recherchez **Variables** et sélectionnez **Value of a scene variable** (Valeur d'une variable de scène). Ensuite, dans le panneau de droite, mettez `Score` dans le champ **Variable**, **Modification's sign** (signe de la modification) sur `+ (add)` et **value** à `1`. Ces réglages signifient que chaque fois qu'une forme est collectée par le monstre, la forme disparaît et le joueur obtient un point.
-
-
-
-!!! note
-
- Ces instructions sont en fait un peu incomplètes : au cas où nous collecterions deux formes en même temps, nous n'obtiendrions qu'un seul point ! En effet, la condition sera considérée comme "vraie" pour les deux formes qui entrent en collision avec le monstre, mais l'action n'est alors exécutée qu'une seule fois. Nous corrigerons cela dans quelques instants avec un événement **For Each**.
-
-Nous avons maintenant la possibilité de suivre le score, mais le joueur ne peut pas le voir. Pour afficher le score, nous avons besoin de créer un objet de type texte.
-
-Cliquez sur l'onglet **Level1**, puis sur **Add a new object** (Ajouter un nouvel objet).
-
-
-
-Dans la fenêtre contextuelle **Add a new object**, sélectionnez **Text**.
-
-
-
-Entrez maintenant les propriétés de l'objet texte : **Object Name** (Nom de l'objet) est `Score`, la taille du texte **Size** est `30`, la couleur **Color** jaune, et le style est **Bold** (gras). Le texte lui-même est `Score :` . Confirmez en cliquant **APPLY**.
-
-
-
-Activez l'onglet **Level1 (Events)**, cliquez sur **Add an action**, et dans la fenêtre contextuelle, sélectionnez notre nouvelle variable **Score**. Recherchez et sélectionnez **Modify the text** (Modifier le texte), et dans le panneau de droite, sélectionnez **= (set to)** pour **Modification's sign**, en entrez dans le champ **Text** : `" Score : " + ToString(Variable(Score))`.
-
-
-
-Ces instructions mettent à jour le texte **Score** avec la valeur actuelle de la variable chaque fois qu'une forme entre en collision avec le monstre.
-
-!!! note
-
- Comme mentionné précédemment, cela est quelque peu incomplet car si le monstre entre en collision avec deux objets en même temps, les actions d'événement ne seront exécutées qu'une seule fois, donc un seul point sera ajouté au score. Nous devons dire à GDevelop d'exécuter les actions pour chaque forme entrée en collision à un moment donné. Faisons-le donc !
-
-Activez l'onglet **Level1 (Events)**. Cliquez ensuite sur le bouton **Choose and add an event** (Choisir et ajouter un événement) dans la barre des outils, puis sur **For each object** (Pour chaque objet) dans le menu contextuel.
-
-
-
-Entrez le nom de l'objet, qui dans notre cas est le groupe appelé **Shapes**.
-
-
-
-Assurez-vous de faire glisser **Shapes in collision with Monster** (Formes en collision avec Monster) afin que cette instruction soit répétée pour chaque objet **Shapes**.
-
-
-
-Enfin, faites glisser toutes les actions dans le nouvel événement **For Each**.
-
-
-
-Vous pouvez ensuite supprimer l'événement vide.
-
-
-
-Activez maintenant l'onglet **Level1**, prenez l'objet **Score** dans le panneau de droite et faites-le glisser sur la scène.
-
-
-
-Lancez le jeu pour tester si le comptage du score et l'affichage des informations mises à jour fonctionnent comme prévu.
-
-
-
-⬅️ **[Étape précédente : 7. Bruitages amusants](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun)** ➡️ **[Étape suivante : 9. Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md b/docs/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md
deleted file mode 100644
index eeea72c8e49..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: 9-adding-bombs
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-⬅️ **[Étape précédente : 8. Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score)** ➡️ **[Étape suivante : 10. Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives)**
-
-# 9. Ajout de bombes
-
-Bien que ce soit génial d'avoir le mécanisme de base pour collecter les formes, cela devient ennuyeux assez rapidement, et c'est beaucoup trop facile. Et si nous pouvions augmenter le niveau de difficulté en introduisant des objets que vous ne devriez pas collecter ? Voici les **bombes** !
-
-Cliquez le bouton **Add a new object** (Ajouter un nouvel objet) ...
-
-
-
-... et sélectionnez **Sprite**.
-
-
-
-Le nom de l'objet bombe **Object name** est `Obstacle`. Il en va de même pour le nom de l'animation (**Animation \#0**). L'animation est constituée de deux images, à charger. L'animation doit durer `0,1` secondes et se dérouler en boucle (**Loop**).
-
-
-
-Ajoutez un autre commentaire et appelez-le `Obstacle`.
-
-
-
-Ajouter un nouvel événement vide (bouton **Add a new empty event**) puis une nouvelle condition (**Add condition**) et activez l'onglet **OTHER CONDITIONS** (Autres conditions).
-
-
-
-Activez **Timers and time** (Temps et chronomètre), sélectionnez **Value of a scene timer** (Valeur d'un chronomètre de scène). Dans le panneau de droite, entrez `5` pour **Time in seconds** (Durée en secondes) et `"ObstacleCreation"` pour **Timer's name** .
-
-
-
-Ces instructions créent une nouvelle minuterie qui engendre une bombe indépendamment de la génération des formes.Une nouvelle bombe apparaîtra toutes les 5 secondes.
-
-!!! note
-
- N'hésitez pas à modifier cette valeur pour rendre le jeu plus difficile. Nous verrons dans un prochain chapitre comment accélérer les bombes au fil du temps – pour rendre le jeu plus difficile. Vous pouvez également utiliser une variable au lieu d'un nombre, de sorte que vous pouvez changer pendant le jeu le temps écoulé entre la création des bombes !
-
-Maintenant, passons à l'action ! Sélectionnez **Obstacle** dans l'onglet **OBJECTS** puis **Create an object** (Créer un objet) dans la liste à droite, et réglez la position X (**X position**) sur `RandomInRange(80, 640-80)` et la position Y (**Y position**) sur `-100`. C'est exactement la même approche que celle utilisée pour les formes.
-
-
-
-La deuxième action à ajouter (clic sur **Add action** puis **OTHER ACTIONS**) est **Start (or reset) a scene timer** (Démarrer (ou réinitialiser) un chronomètre de scène) dans la liste de **Timers and time** (Temps et chronomètres), puis lui donner le nom **Timer's name** de `ObstacleCreation`.
-
-
-
-Le panneau des événements devrait ressembler la figure ci-dessous après avoir terminé avec succès les différentes étapes. Si c'est le cas, ajoutez un commentaire intitulé `Move obstacles` (déplacement des obstacles) puis un autre événement vide dans lequel vous créez une nouvelle action (**Add action**).
-
-
-
-Dans le panneau **OBJECTS**, sélectionnez **Obstacle**, recherchez et sélectionnez **Add a force (angle)** (Ajouter une force (angle)). Entrez `90` dans le champ **Angle** et `100` dans le champ **Speed**.
-
-
-
-Nous voulons être sûr que la bombe soit devant les formes, et non derrière elles. À cet effet, nous allons utiliser **Z order**. C'est une manière de dire au jeu comment nous voulons que les objets soient rendus les uns au-dessus des autres. Sélectionnez **Obstacle**, puis **Z order** (PLan) dans la liste à droite, puis **= (set to)** pour le signe de la modification et pour terminer entrez **4** dans **Value**.
-
-
-
-Lancez le jeu et observez les formes tomber sur l'écran, avec des bombes apparaissant et tombant indépendamment une fois toutes les quelques formes. La récolte des formes vous donne des points, tandis que les bombes ne font encore rien.
-
-
-
-Les bombes sont une menace importante pour la vie du monstre. Rendons le gameplay un peu plus facile en introduisant des [vies](/gdevelop5/tutorials/geometry-monster/10-more-lives).
-
-⬅️ **[Étape précédente : 8. Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score)** ➡️ **[Étape suivante : 10. Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives)**
diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/index.md b/docs/fr/gdevelop5/tutorials/geometry-monster/index.md
deleted file mode 100644
index 757cf79110d..00000000000
--- a/docs/fr/gdevelop5/tutorials/geometry-monster/index.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: geometry-monster
----
-FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_
-
-# Geometry Monster
-
-Bienvenue dans le didacticiel du jeu **Geometry Monster**. Dans cette suite de chapitres, vous apprendrez à créer un jeu hyper-décontracté adapté aux appareils mobiles.
-
-
-
-À partir de la création du personnage principal et de son animation, nous passerons par l'ajout de commandes et d'objets à récolter, la détection des collisions, le suivi du score et la génération de vies multiples. Nous mettrons également en œuvre plusieurs scènes, notamment le menu principal et le gameplay, les effets sonores et le niveau de difficulté qui augmente avec le temps.
-
-
-
-!!! note
-
- Ce tutoriel utilise le nouvel éditeur d'action/condition ! Si vous avez déjà installé GDevelop, allez dans les préférences de GDevelop (cliquez sur le menu "Fichier" ou "GDevelop 5" sur macOS), puis "Préférences". Activez «Utiliser le nouvel éditeur d'action/condition» (Use the new action/condition editor). Vous pouvez ensuite revenir au didacticiel. 
-
-## Table des matières
-
-1\. [Installation et configuration](/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup) 2. [Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene) 3. [Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character) 4. [Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls) 5. [Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes) 6. [Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection) 7. [Bruitages amusants](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun) 8. [Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score) 9. [Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs) 10. [Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives) 11. [Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over) 12. [Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu) 13. [Améliorations !](/fr/gdevelop5/tutorials/geometry-monster/13-juice-it)
-
-!!! note
-
- Des chapitres bonus permettant d'ajouter de nouvelles fonctionnalités au jeu seront ajoutés ! N'oubliez pas de vérifier cette page de temps en temps.
-
-## Obtenir les sources
-
-Téléchargez les  contenant toutes les images dont vous avez besoin pour terminer le jeu, et le fichier `json` du projet final si vous souhaitez tout vérifier vous-même.
-
-## Jouer à Geometry Monster
-
-Vous pouvez également essayer le jeu et le jouer en ligne dès maintenant si vous voulez avoir une idée du gameplay - il peut être lancé en cliquant [geometry.enclavegames.com](https://geometry.enclavegames.com/).
diff --git a/docs/fr/gdevelop5/tutorials/index.md b/docs/fr/gdevelop5/tutorials/index.md
deleted file mode 100644
index a87e436f50a..00000000000
--- a/docs/fr/gdevelop5/tutorials/index.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: GDevelop 5 tutoriels
----
-# GDevelop 5 tutoriels
-
-Ces tutoriels sont des guides qui expliquent, étape par étape, comment créer un jeu à partir de zéro :
-
-!!! note
-
- Si vous utilisez GDevelop pour la première fois, il est recommandé de commencer avec ces tutoriels
-
-* **[Concepts de base : ce que vous devez savoir pour commencer avec GDevelop](/fr/gdevelop5/tutorials/basic-game-making-concepts)**
-* **[Créer un jeu de plateforme](/fr/gdevelop5/tutorials/platform-game/start)**
-* **[Geometry Monster : un jeu mobile simple et complet](/gdevelop5/tutorials/geometry-monster)** (anglais)
-
-Tutoriels communautaires :
-
-- [Créer un jeu simple de Tank Shooter](/fr/gdevelop5/tutorials/tank-shooter)
-- [Créer un jeu simple de Course Infinie](/fr/gdevelop5/tutorials/endless-runner)
-- [Créer un jeu simple de casse-briques](/fr/gdevelop5/tutorials/breakout)
-- [Créer un rpg isometric](/fr/gdevelop5/tutorials/isometric-rpg/start)
-
-------------------------------------------------------------------------
-
-# Les guides "Comment faire" de GDevelop Les guides suivants fournissent des explications pour certaines parties de GDevelop. Ils vous montrent également quelques mécanismes avancés pour la conception de vos jeux :
-
-(Remarque : tous ces guides sont en anglais)
-
-- [Comment déplacer des objets dans votre jeu (toutes les possibilités)](/gdevelop5/tutorials/how-to-move-objects)
-- [Comment animer le saut et la chute d'un personnage dans un jeu de plateformes](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer)
-- [Comment afficher un grand fond dans votre jeu](/gdevelop5/tutorials/how-to-display-big-background)
-- [Comment déboguer de mauvaises performances de jeu](/gdevelop5/tutorials/how-to-debug-poor-performance)
-- [Comment réduire la taille de votre jeu](/gdevelop5/tutorials/reduce-size-game)
-- [Comment gérer une logique complexe - La machine d'états finis (FSM)](/gdevelop5/tutorials/finite_state_machine)
-- [Comment utiliser GDevelop en équipe (plusieurs développeurs et coéquipiers)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team)
-
-------------------------------------------------------------------------
-
-# Autres guides Les guides ci-dessous fournissent des explications relatives au développement des jeux. Ils ne sont pas spécifiques à GDevelop.
-
-* [Publier votre jeu sur itch.io](/fr/gdevelop5/publishing/publishing-to-itch-io)
-* [Publier votre jeu sur Amazon Store](/gdevelop5/publishing/publishing-to-amazon-app-store) (anglais)
-* [Publier votre jeu sur Gamejost](/gdevelop5/publishing/publishing-to-gamejolt-store) (anglais)
-* [Publier votre jeu sur Kongregate](/gdevelop5/publishing/publishing-to-kongregate-store) (anglais)
-
-------------------------------------------------------------------------
-
-# Tutoriels vidéo
-
-- [La liste des tutoriels vidéo réalisé par la Communauté francophone](https://www.youtube.com/watch?list=PL3YlZTdKiS8_S_BaL5NNMyYDwKlQjnfU9)
-- [La liste des tutoriels vidéo réalisés par la Communauté anglophone](/gdevelop5/tutorials/videos).
-
-------------------------------------------------------------------------
-
-# Ressources
-
-Liens vers des sites web tiers où vous pouvez trouver des sprites, de la musique et des effets sonores pour vos jeux, ainsi que des exemples de jeux, des modèles et des logiciels pour vous aider à développer des jeux.
-
-- [Liste des ressources](/gdevelop5/tutorials/resources) (anglais)
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/2-decor.md b/docs/fr/gdevelop5/tutorials/isometric-rpg/2-decor.md
deleted file mode 100644
index 1bb710bf7a3..00000000000
--- a/docs/fr/gdevelop5/tutorials/isometric-rpg/2-decor.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: Étape numéro 2 - Ajout du décors
----
-# Étape numéro 2 : Ajout du décors
-
-### Résumé
-
- * Ajout des décors, comme des objets de type sprite. Utilisation des numéros d'animation pour chaque partie de l'image du fond du jeu.
-
-## Ajout de l'objet Decor de type Sprite :
-
- * Nous allons ajouter les décors de la même manière que précédemment avec l'objet du personnage.
-
-Cliquez dans l'onglet Object, Add an object puis Sprite. Renommez l'objet en Decor puis cliquez sur le **+** et encore le **+** au milieu du carré pour ajouter une première image à cet objet, sélectionnez l'image row-1-col-1.jpg dans le répertoire tiled-bg, vous obtenez :
-
-
-
-Apply
-
-Puis recommencez, cliquez tout en bas à droite sur Add an animation puis **+** et sélectionnez l'image row-1-col-2.jpg. L'objet Decor contient maintenant deux "animations" référencées respectivement **Animation #0** et **#1** .
-
-
-
-Maintenant revenons à notre scène, il suffit alors de sélectionner l'objet Decor et de le poser sur la scène comme ceci :
-
-
-
-Le panneau Properties est ouvert, on y retrouve le nom de l'objet, la position relative au point en haut à gauche de notre scène, dans l'image au-dessus X=14 et Y=7. Cela signifie que le pixel en haut et à gauche de ce bout de décor est un peu décalé.
-En sélectionnant l'instance 0 de l'objet Decor je peux la faire bouger avec les flèches du clavier pour que les coordonnées deviennent X=0 et Y=0 comme ceci :
-
-
-
-Pour la deuxième partie du décor, il y a plusieurs manières de faire :
-
- * Soit en refaisant un glisser-déposer de l'objet Decor vers la scène.
- * Soit en appuyant sur la touche ctrl et en cliquant sur la première instance Decor et en faisant un glisser déposer, pour faire une copie du même objet automatiquement.
-
-Une erreur ? Aucune importance, ctrl+Z permet bien sûr de revenir en arrière, et pour effacer une instance d'un objet, il suffit de le sélectionner et de le supprimer.
-
-Et n'oubliez pas :
-
->
-> Sauvegardez avec Ctrl + s
-warning
-
-
-Maintenant nous avons donc deux fois la même image, pour avoir la deuxième "animation" de l'objet Decor, il faut regarder dans les propriétés de l'instance, et descendre tout en bas, pour écrire animation : 1.
-
-Vous devez maintenant avoir :
-
-
-Apply
-
-Et de même déplacez cette deuxième instance de l'objet Decor avec les flèches. Vous devriez avoir dans les coordonnées de cette instance dans les propriétés, X=0 et Y=256.
-
-Renouvelez l'opération avec les images jusqu'à row-1-col-8.jpg. Pour cela aidez-vous de l'outil de zoom (molette de la souris), et également des poignées bleues  pour déplacer l'affichage dans votre scène.
-
-Vous devez obtenir :
-
-
-## Finalisation du décor de la première scène.
-
-Continuez la même opération que pour la première ligne, avec l'image row-2-col-1.jpg jusqu'à row-2-col-8.jpg et ainsi de suite jusqu'à l'image row-2-col-1.jpg. Bravo ! L'étape la plus fastidieuse de ce tutoriel est réalisée.
-Pensez à sauvegarder.
-
-Il est possible de gagner du temps, en sélectionnant l'ensemble de la première ligne des images de fond à l'aide de la souris (les images deviennent grisées), et en appuyant sur Ctrl puis clic sur cette zone grisée, vous copiez d'un coup les 8 images.
-
-Il suffit alors de changer la valeur de l'animation, de 8 à 15. Vous obtenez :
-
-
-
-Pour résumé, l'objet Decor, est composée de 64 "animations", placée en carré de 256x256 pixels.
-L'image globale composant le décor est donc de 2048*2048 pixels. Il est à noté que normalement chaque animation de cet objet se retrouve dans la couche (layer) Base Layer.
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/index.md b/docs/fr/gdevelop5/tutorials/isometric-rpg/index.md
deleted file mode 100644
index a1134707b8b..00000000000
--- a/docs/fr/gdevelop5/tutorials/isometric-rpg/index.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-title: start
----
-!!! note
-
- Tutoriel en cours de création (9/11/2018), revenez plus tard ?
-
-# Comment faire un jeu de type RPG isometric
-
-Ce tutoriel vous aidera à commencer à utiliser **GDevelop**: Vous allez créer un jeu de type RPG en vue isometric très simple où le joueur se déplacera dans un décor pour combattre des monstres et ramasser des trésors.
-
-Notez que vous pouvez lire la page [Commencer](/fr/gdevelop5/getting_started) pour avoir une vue d'ensemble du logiciel : elle explique les principaux concepts et décrit l'interface de **GDevelop**.
-
-## Télécharger GDevelop
-
-Si vous n'avez pas **GDevelop 5**, téléchargez-le à partir du site officiel (\]. Il est disponible pour Windows, MacOS et Linux.
-
-Téléchargez toujours GDevelop à partir de cette page pour être sûr d'avoir la dernière version. Installez ou extrayez GDevelop et lancez-le.
-
-
-
-## Créer un nouveau jeu
-
-Cliquez sur **CREATE A NEW PROJECT** sur la page d'accueil. Dans la fenêtre **Create a new game**, choisissez un dossier pour votre projet (dans le champ **CHOOSE FOLDER** situé au bas de la fenêtre) et sélectionnez **Empty game** pour démarrer un nouveau jeu à partir de zéro.
-
-Pour faire notre jeu, nous aurons besoin de ressources pour représenter les objets ( images du personnage, éléments de décor, objets à récolter ...).
-
-Vous pouvez télécharger les ressources ici :
-
-- Les images du décor pour la première scène : 
-- Les sprites pour les personnages : 
-- Images généreusement prêtée par le studio indé japonais [SmokymonkeyS](http://www.smokymonkeys.com)
-
-Une fois ce fichier téléchargé, extrayez son contenu dans le dossier où vous avez créé le projet.
-
-## Propriétés générales du jeu
-
-Dans votre onglet Project, sélectionnez Game Settings, puis Properties. Remplissez ensuite les champs comme ci-dessous. La taille de la largeur et de la longueur du jeu exprimée en pixels sera la taille de la fenêtre du jeu. 
-
-## Ajouter une scène
-
-Les ***scènes*** sont les différentes parties du jeu. Typiquement, chaque écran apparaissant dans le jeu est une scène : le menu principal, le menu pause et les niveaux sont des scènes.
-
-Les ***scènes*** contiennent les objets qui sont affichés à l'écran. Les ***objets*** peuvent être mis en scène pour créer les niveaux (ces objets sont appelés ***instances***). Les scènes contiennent également les ***événements*** qui sont exécutés pour animer la scène.
-
-Dans le gestionnaire de projet qui s'ouvre à gauche, cliquez sur le bouton **+** à droite de **Click to add a scene**.
-
-
-
-Une nouvelle scène, appelée **NEWSCENE** est ajoutée à la liste. Cliquez dessus pour l'ouvrir.
-
-
-
-Puis éditez les paramètres de la scène (clic droit sur scène), et renommez-là en Scene1, vous pouvez maintenant fermer la fenêtre Project Manager.
-
-## Création des calques (layer)
-
-Les calques permettent de modifier la façon dont les objets sont affichés : Lors de l'affichage, les calques sont visualisés les uns après les autres (c'est à dire en rendu dans le jeu, les uns au-dessus des autres), et chaque calque n'affiche que les objets qui sont positionnés sur ce calque.
-
-Dans cet exemple nous allons utiliser 4 calques qui s'afficheront ainsi :
-
-1. Le calque **UI** (interface du joueur): Toujours visible et au-dessus de tout le reste.
-2. Le calque **Effets** qui contiendra quelques effets visuels qui s'afficheront juste en-dessous du calque UI mais au-dessus du reste.
-3. Le calque **Personnage** : Il contiendra uniquement les images de l'animation et des mouvements).
-4. Le calque **Base Layer** : Il contiendra l'image de fond du jeu, c'est aussi celui qui est créé par défaut à la création du jeu.
-
-Pour ouvrir l'onglet calque (layer), cliquez sur , (Open the layer editor). Puis ajoutez un calque avec le **+**., nommez-le UI puis continuez avec Effet et Personnage. Vous devez maintenant voir cela :
-
-
-
-Reste maintenant à les mettre dans le bon ordre, celui en haut étant celui qui contiendra les objets (images et autres) qui resteront toujours visible au-dessus du reste. Nous allons les mettre dans l'ordre :
-
-- UI
-- Personnage
-- Effet
-- Base layer
-
-En utilisant la poignée de déplacement : 
-
-Et ainsi obtenir :
-
-
-
-Il est temps de fermer cet onglet de calques pour revenir à notre scène.
-
-## Créer l'objet du personnage
-
-Le joueur contrôlera un personnage qui peut sauter et se déplacer dans le jeu. Nous allons créer cet objet.
-
-Sur la droite, vous pouvez voir un panneau intitulé **Objects**. Cliquez sur le bouton **+** pour ajouter un objet.
-
-
-
-Ensuite, une fenêtre s'ouvre et affiche différents types d'objets parmi lesquels vous pouvez choisir.
-
-
-
-Les différents types d'objets présentent des caractéristiques spécifiques. Pour la plupart de nos objets, nous utiliserons les objets **Sprite** qui sont des objets animés ou fixes pouvant être utilisés pour de nombreux éléments (joueur, plates-formes, ennemis, objets...).
-
-Cliquez sur **Sprite** dans la liste. Le nouvel objet est ajouté à la scène et les propriété de l'objet s'ouvrent :
-
-
-
-L'objet est actuellement vide. Les objets **Sprite** sont composés d'animations, et chaque animation peut contenir une ou plusieurs images. Ajoutons une animation. Cliquez sur le bouton **+**.
-
-
-
-L'animation est ajoutée mais toujours vide, sans images. Pour ajouter une image, cliquez sur le **+** dans la vignette vierge.
-
-Choisissez l'image appelée `goblin_frame_0.png` dans le dossier player du projet. L'image est ajoutée à l'objet :
-
-
-
-C'est le moment de nommer cet objet, par exemple **LeGobelin** ;-). Vous pouvez maintenant fermer les propriétés en cliquant sur le bouton **APPLY** dans le coin inférieur droit. Cet objet n'est pas encore intégré à la scène, pour cela, sélectionnez l'objet **LeGobelin** et déplacez-le dans la fenêtre de votre scène vous obtiendrez :
-
-
-
-L'objet LeGobelin devient maintenant une **instance** incorporée dans votre scène. Vous pouvez en voir les propriétés, en sélectionannt l'instance du Gobelin dans votre scène et en cliquant ensuite sur l'icône  propriété : 
-
-## Ajout des animations au personnage
-
-Il est un peu fade ce Gobelin, pour lui ajouter des animations, il faut retourner aux propriétés de l'objet. Pour cela , cliquez sur , puis sélectionnez Edit Object. Nous allons ajouter avec le **+**, et ajouter goblin_frame_1.png, goblin_frame_2.png et goblin_frame_3.png, soit :
-
-
-
-Il est alors possible de voir l'animation en cliquant sur PREVIEW, puis régler la vitesse à 0.2 en cliquant sur le chiffre pour régler la vitesse d'animation avec 0.2. L'option boucle (Loop) est désactivée par défaut, en cliquant sur Don't Loop, cela permet de faire tourner l'animation en continue. Ré-essayez PREVIEW maintenant, notre Gobelin respire !
-
-> Sauvegarde warning
-
-A cette étape, il est grand temps de faire une sauvegarde du projet ! Menu File Save ou Ctrl S.
-
-Un des points forts de Gdevelop, c'est qu'il permet de visualiser le rendu du jeu à n'importe quelle étape. Simplement en cliquant sur .
-
-Puis fermer cette fenêtre de prévisualisation.
-
-## Étape suivante : Placer les images du décor
-
-Pour le moment, notre jeu est très basique : Juste un Gobelin qui s'anime ! L'étape suivante de ce tutoriel vous montrera comment ajouter des images pour le décor.
-
-➡️ Lisez **[la suite du tutoriel se trouve ici !](/fr/gdevelop5/tutorials/isometric-rpg/2-decor)**
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/smokymonkeys_foot_logo.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/smokymonkeys_foot_logo.png
deleted file mode 100644
index 6ce1dbf63e3..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/smokymonkeys_foot_logo.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tiled-bg.zip b/docs/fr/gdevelop5/tutorials/isometric-rpg/tiled-bg.zip
deleted file mode 100644
index 366597bc172..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tiled-bg.zip and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-1.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-1.png
deleted file mode 100644
index 82159df5901..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-1.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-2.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-2.png
deleted file mode 100644
index d4a8c708ccd..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-2.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-3.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-3.png
deleted file mode 100644
index e00d81165c7..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-3.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-4.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-4.png
deleted file mode 100644
index aacafa4cbc4..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-4.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-5.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-5.png
deleted file mode 100644
index d90095ed6d6..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-5.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-deux-lignes.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-deux-lignes.png
deleted file mode 100644
index 050c4e08005..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-deux-lignes.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste-ordonnee.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste-ordonnee.png
deleted file mode 100644
index 4668305e397..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste-ordonnee.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste.png
deleted file mode 100644
index 76c955afe79..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-poignee.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-poignee.png
deleted file mode 100644
index 1bf4c4f20dc..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-poignee.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques.png
deleted file mode 100644
index c081b272f22..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-launch-game-preview.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-launch-game-preview.png
deleted file mode 100644
index fa5a3f51d0b..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-launch-game-preview.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-objet-trois-points.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-objet-trois-points.png
deleted file mode 100644
index 98f65718f78..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-objet-trois-points.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-propriete.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-propriete.png
deleted file mode 100644
index 6d1f88a6abb..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-propriete.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-scene-legobelin.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-scene-legobelin.png
deleted file mode 100644
index 28d8069c108..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-scene-legobelin.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-images-fond-ligne-1.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-images-fond-ligne-1.png
deleted file mode 100644
index ca739ccb2a0..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-images-fond-ligne-1.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-molette-bleue.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-molette-bleue.png
deleted file mode 100644
index ab1ce74e9c9..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-molette-bleue.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-objet-fenetre-proprietes.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-objet-fenetre-proprietes.png
deleted file mode 100644
index bd1f90eb95b..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-objet-fenetre-proprietes.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-player1.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-player1.png
deleted file mode 100644
index ac520275e17..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-player1.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-propriete-jeu.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-propriete-jeu.png
deleted file mode 100644
index 2cca7723216..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-propriete-jeu.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprite-gobelin-animations.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprite-gobelin-animations.png
deleted file mode 100644
index 6584b05a6e1..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprite-gobelin-animations.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprites.zip b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprites.zip
deleted file mode 100644
index f3cb68fdae6..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprites.zip and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/2-player-animations.md b/docs/fr/gdevelop5/tutorials/platform-game/2-player-animations.md
deleted file mode 100644
index ce8a2412261..00000000000
--- a/docs/fr/gdevelop5/tutorials/platform-game/2-player-animations.md
+++ /dev/null
@@ -1,200 +0,0 @@
----
-title: Comment faire un jeu de plateforme - animations du joueur
----
-# Comment faire un jeu de plateforme : animations du joueur
-
-Ce tutoriel explique comment ajouter différentes animations et comment utiliser les événements pour changer les animations lorsque l'état du joueur change.
-
-[Cliquez ici pour lire l'étape précédente](/fr/gdevelop5/tutorials/platform-game) si vous ne l'avez par encore accomplie.
-
-## Ajouter des animations
-
-Pour le moment, le joueur montre toujours la même « animation statique » ; nous allons changer cette situation en utilisant les événements.
-
-Mais nous devons d'abord ajouter les animations appropriées à l'objet `Player`.
-
-### Animation du saut
-
-Ouvrez l'éditeur de l'objet `Player` (clic-droit sur son nom dans la liste des objets). Assurez-vous que le panneau **PROPERTIES** de l'éditeur soit sélectionné et cliquez le bouton **+** au bas de la fenêtre pour ajouter une animation.
-
-Cliquez ensuite sur le gros bouton portant un signe **+** dans la nouvelle zone d'animation et sélectionnez `p1_jump.png` dans le navigateur de fichiers qui s'est ouvert pour charger l'image dans le jeu.
-
-
-
-Il est recommandé de donner un nom significatif à chaque animation afin de pouvoir différencier facilement les diverses animations et les référencer sans ambiguïté dans les événements.
-Il suffit de cliquer à la suite de **Animation #0** et d'écrire le nom que vous voulez.
-
-Entrez `Idle` pour l'animation n° 0 et `Jumping` pour l'animation n°2.
-
-
-
-### Animation de la marche
-
-Nous devons aussi ajouter l'animation à afficher lorsque le personnage marche sur une plateforme. Ajoutez une autre animation de la même manière que ci-dessus, et , lorsque vous chargez les images, sélectionnez les 5 images `p1walk03.png`, `p1walk04.png`, ... , et `p1walk07.png`. Vous pouvez sélectionner les 5 images d'un seul coup ou les charger les unes après les autres. Finalement, nommez cette animation `Running`.
-
-
-
-Ces images seront affichées les unes après les autres pour créer l'animation. Pour que le cycle de la marche se répète, nous devons modifier quelques options : cliquez d'abord **Don't loop** pour commuter sur **Loop**. Cette option fera boucler l'animation sur elle-même pour qu'elle soit jouée de manière continue.
-Dans le cas contraire, l'animation ne sera jouée qu'une seule fois chaque fois qu'elle sera appelée, et dans le cas d'un marche continue, ce n'est pas ce que nous voulons. Le minuteur affiche le temps écoulé en secondes entre chaque images, en d'autres mots, la vitesse de l'animation. Entrez `0.05` à la place de `1` afin que l'animation soit jouée plus rapidement.
-
-
-
-Notre objet étant terminé, cliquez le bouton **APPLY** situé dans le coin inférieur droit.
-
-## Utiliser des événements pour changer les animations
-
-### Le premier événement : animation du saut
-
-Nous devons maintenant changer l'animation montrée par l'objet en fonction de ce que fait le joueur. À cet effet, nous allons nous servir des **_événements_**, qui sont utilisés pour décrire les règles du jeu ainsi que pour spécifier comment les objets sont animés, se déplacent et répondent aux sollicitations du joueur.
-Pour décrire ces règles, GDevelop met à notre disposition une « programmation visuelle » dont l'apprentissage est rapide et accessible à tous.
-
-Ouvrez l'éditeur des événements de la scène en cliquant l'onglet **NEWSCENE (EVENTS)**.
-
-Pour le moment, l'éditeur d'événements est encore vide.
-
-
-
-Ajoutez le premier événement en cliquant le bouton **Add a new empty event** dans la barre d'outils.
-
-
-
-Un événement est composé d'une liste de conditions (qui peuvent être utilisées pour tester si une collision s'est produite, si une touche a été pressée, si le niveau de vie du joueur est bas, …) et d'une liste d'actions qui sont exécutées lorsque la ou les conditions sont remplies.
-
-Il n'y a actuellement aucun événement défini.
-
-
-
-Dans le premier événement, nous allons tester si le joueur saute, et dans ce cas, modifier son animation.
-
-Commencez par cliquer sur **Add condition** dans le coin supérieur gauche de la fenêtre.
-
-La fenêtre qui vient de s'ouvrir présente dans sa partie gauche une liste de toutes les conditions disponibles pour programmer votre jeu.
-Nous voulons tester si l'objet `Player`, qui possède le comportement de personnage de plateforme, est en train de sauter.
-Ouvrez la catégorie **Platform Behavior** puis sélectionnez **Is jumping**.
-
-La partie droite de la fenêtre affiche les paramètres qui sont nécessaires à la configuration de la condition. Ici, comme nous voulons tester si l'objet `Player` saute, sélectionnez `Player` pour le premier paramètre (intitulé **Object**). Le second paramètre est rempli automatiquement.
-
-
-
-Le condition est maintenant prête. Cliquez le bouton **OK** dans le coin inférieur droit de la fenêtre pour la fermer et voir la condition ajoutée à l'événement.
-
-
-
-Ajoutons maintenant l'action pour changer l'animation du joueur lorsque le personnage saute. Cliquez sur **Add action**.
-
-La fenêtre qui s'ouvre est semblable à celle ouverte avec **Add condition**, à ceci près qu'elle affiche toutes les actions disponibles.
-
-
-
-Nous allons changer l'animation de l'objet `Player`, qui est un objet de type **Sprite**.
-
-Ouvrez la catégorie **Sprite**, puis **Animations and images** et sélectionnez finalement **Change the animation (by name)**.
-
-
-
-Dans la fenêtre de droite, sélectionnez l'objet `Player` pour le premier paramètre et écrivez `"Jumping"` dans le champ **Animation name**.
-
-!!! warning
-
- **Attention !** Vous devez entourer le nom de guillemets anglais doubles car tout texte dans les actions ou les conditions de GDevelop peut aussi être généré par une formule. Il est donc nécessaire d'utiliser ces guillemets pour indiquer à GDevelop qu'il s'agit d'un texte et pas d'une formule quelconque.
-
-
-
-Lorsque vous avez terminé, cliquez le bouton **OK** dans le coin inférieur droit. Le premier événement est maintenant prêt.
-
-
-
-### Jetons un coup d'oeil au résultat
-
-Cliquez le bouton **Launch a preview of the scene** de la barre des outils pour démarrer la prévisualisation. Observez le changement de l'animation quand le joueur saute.
-
-
-
-Mais lorsque le joueur retourne sur le sol, vous pouvez voir que l'animation n'a pas été remise à la position au repos. C'est tout simplement parce que nous n'avons pas dit à GDevelop de le faire ! Ajoutons une autre événement pour corriger cela.
-
-## Animations de la pause et de la course
-
-Ajoutez un nouvel événement vide en cliquant le bouton **Add a new empty event** dans la barre d'outils.
-
-Cliquez **Add condition** et sélectionnez cette fois la condition **Is on floor** dans la catégorie **Platform Behavior**. Notez que vous pouvez utiliser l'outil de recherche **Search** dans le haut de la liste pour trouvez rapidement la condition désirée si vous connaissez son nom.
-
-Remplissez le premier paramètre en sélectionnant l'objet `Player`.
-
-
-
-Cliquez **OK** pour valider la condition.
-
-
-
-Ici, nous avons l'opportunité de faire que notre personnage n'affiche pas seulement son état inactif et son saut, mais aussi sa course.
-
-Nous pouvons construire deux événements comprenant chacun deux conditions et une action :
-
- * Lorsque le joueur est sur le sol **et** ne court pas, c'est l'animation `Idle` qui doit être montrée.
-
-
- * Lorsque le joueur est sur le sol **et** court, c'est l'animation `Running` qui doit être montrée.
-
-mais nous pouvons utiliser des *sous-événements* pour n'avoir à tester qu'une seule fois si le joueur est sur le sol.
-
-Faisons donc comme nous l'avons dit. Nous pouvons maintenant ajouter deux autres événements qui seront des sous-événements de cet événement. Cela signifie qu'ils ne seront lancés que si leur *parent* (l'événement que nous venons juste de créer) a satisfait à ses conditions.
-
-Sélectionnez l'événement que nous avons créé avec un clic droit dans un espace vide près de **Add condition** ou **Add action**.
-
-
-
-Cliquez ensuite deux fois sur le bouton **Add a sub-event to the selected event** pour ajouter deux sous-événements.
-
-
-
-Deux événements « enfant » ont été ajoutés sous l'événement sélectionné qui est maintenant considéré comme l'événement « parent ». GDevelopp a mis ces deux événements en retraits (indentation) et les a reliés par une ligne pour confirmer visuellement qu'il sont bien connectés.
-
-
-
-Vous pouvez maintenant ajouter des conditions dans ces événements .
-
-Cliquez sur **Add condition** du premier sous-événement. Sélectionnez **Platform Behavior** dans la liste des comportements puis sur **Is moving** pour tester si le joueur est en train de courir. N'oubliez pas de spécifier que l'objet à tester est le `Player` (à mettre dans le premier paramètre, à gauche).
-
-
-
-Faites de même pour le second sous-évémenent, mais activez en plus le commutateur **Invert condition**. C'est ainsi que nous inversons techniquement la condition de manière à ce que les actions de l'événement ne seront lancées que lorsque le joueur n'est **PAS** en train de se déplacer.
-
-
-
-Notre séquence d'événements doit maintenant ressembler à quelque chose comme :
-
-
-
-Nous en avons presque terminé : il reste encore à spécifier l'action requise par chaque événement. Les opérations à effectuer sont les mêmes que celles faites pour le saut.
-
-Cliquez **Add action** du premier sous-événement, sélectionnez **Sprite** dans la liste, puis **Animations and images** et finalement **Change the animation (by name)**. Sélectionnez l'objet `Player` dans le premier paramètre et entrez `"Running"` dans le paramètre **Animation by name**. N'oubliez pas les guillemets anglais doubles autour de `Running`.
-
-Répétez ces opération pour le second sous-événement. Le nom de l'animation est ici `"Idle"`.
-
-
-
-## Il est temps de tester (et de sauvegarder)
-
-Testez le jeu et voyez si l'animation du joueur change lorsqu'il court ou qu'il saute.
-
-Vous avez peut-être remarqué un petit bug quand vous avez essayé de sauter d'une plateforme : le joueur continue de courir même lorsqu'il est en train de tomber. Ce n'est peut-être pas ce que nous voulons car nous préférerions avoir une animation de chute lorsque le joueur tombe. Pour corriger ce bug, nous pouvons aussi activer l'animation du saut `Jumping` lorsque le joueur tombe, tout comme nous l'avons fait avant avec les autres animations. Cela ne devrait pas poser de problèmes : il suffit d'ajouter un nouvel événement et de le configurer comme indiqué ci-dessous.
-
- * Ouvrez le panneau **NEWSCENE (EVENTS)**.
- * Activez le premier événement en cliquant dans la zone vide à droite de **Player is jumping**.
- * Créez un nouvel événement en cliquant le bouton **Add a new empty event**.
- * Cliquez **Add condition** dans le nouvel événement qui vient de se placer sous le premier.
- * Activez les événements **Platform Behavior** et sélectionnez **Is falling**.
- * Mettez `Player` dans le premier paramètre et cliquez **OK** pour confirmer.
- * Cliquez sur **Add action** pour spécifier l'action à accomplir.
- * Sélectionnez `Sprite` dans la liste de gauche qui vient de s'ouvrir puis
- * **Animations and images** et **Change the animation (by name)**.
- * Sélectionnez l'objet `Player` dans le premier paramètre du panneau de droite et inscrivez `"Jumping"` dans **Animation name**. (N'oubliez pas les guillemets doubles !)
- * Cliquez **OK** et comparez votre programme à la figure ci-dessous.
-
-
-}
-## Étape suivante : la caméra doit suivre le joueur
-
-Pour le moment, il est difficile de construire un grand niveau à explorer car le joueur quitte rapidement l'écran ! L'étape suivante de ce tutoriel vous montrera comment faire que la caméra suive le joueur. C'est très simple : un seul événement suffira.
-
-➡️ Lisez **[l'étape suivante de ce tutoriel ici !](/fr/gdevelop5/tutorials/platform-game/3-have-camera-follow-player)**
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md b/docs/fr/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md
deleted file mode 100644
index 9a1b52ff6f1..00000000000
--- a/docs/fr/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Suivre le joueur avec la caméra
----
-# Suivre le joueur avec la caméra
-
-!!! note
-
- Ce tutoriel fait partie de [start](/gdevelop5/tutorials/platform-game) , mais vous pouvez aussi le réutiliser pour n'importe quel autre jeu !
-
-Pour l'instant, il est difficile de construire un grand niveau à explorer car le joueur peut rapidement sortir de l'écran !
-
-Ajoutons un autre événement pour que la caméra suive le joueur. Il y a plusieurs façons d'y parvenir. Le plus simple est d'ajouter un événement sans condition et de mettre l'action appelée **Center the camera on an object** :
-
- * Créez un nouvel événement vide ; n'y ajoutez aucune condition et cliquez sur **Add action**.
- * Dans la liste des actions, sélectionnez **Layers and cameras** puis **Center the camera on an object**.
- *Laissez les paramètres par défaut et cliquez sur **OK**.
-
-
-
-Le nouvel événement ressemble à ceci :
-
-
-
-Vous pouvez lancer un aperçu pour voir que la caméra est désormais centrée sur le joueur :
-
-
-
-## C'est tout !
-
-C'était facile, non ? D'autres actions peuvent être utiles. Par exemple, des actions peuvent être utilisées pour modifier les coordonnées de la caméra uniquement sur l'axe X ou Y. Cela peut être utile pour les jeux de plates-formes où vous ne pouvez pas monter/descendre, mais juste traverser le niveau avec un défilement latéral.
-
-## Prochaine étape : ajouter un saut à travers la plate-forme
-
-C'est assez ennuyeux d'avoir un seul type de plateforme. Ajoutons une autre plateforme sur laquelle nous pourrons monter en arrivant d'en dessous en sautant pour la traverser.
-
-➡️ Lisez **[la suite par ici](/fr/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms)**!
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md b/docs/fr/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md
deleted file mode 100644
index cd1387a4524..00000000000
--- a/docs/fr/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: Ajouter des objets à l'arrière-plan
----
-# Ajouter des objets à l'arrière-plan
-
-!!! note
-
- Ce tutoriel fait partie du tutoriel [start](/gdevelop5/tutorials/platform-game), mais vous pouvez aussi l'utiliser pour n'importe quel autre jeu.
-
-Pour le moment, le niveau est assez simple, sans attraits particuliers. Ajoutons quelques objets statiques à l'arrière plan.
-
-## Créer des objets
-
-Ajouter des objets à l'arrière-plan est vraiment facile : il suffit d'ajouter quelques sprites avec les images à votre convenance puis les mettre dans la scène.
-
-Par exemple, créez un objet de type **Sprite** en
-
- * cliquant le **+** à droite de **Click to add an object** au bas de la listes des objets et en sélectionnant `Sprite` dans la liste qui s'affiche ;
- * cliquant le **+** dans le fenêtre qui s'ouvre puis le bouton **+** dans la nouvelle fenêtre et sélectionnez l'image `bush.png` dans le navigateur de fichiers.
- * Renommez ensuite ce sprite `Bush`.
-
-
-
-Ajoutez de la même manière un sprite de nuage (fichier `cloud2.png`) et renommez-le `Cloud`.
-
-
-
-## Placer des objets sur la scène et modifier leur position z
-
-Ajoutez quelques nuages dans le ciel et deux ou trois buissons sur la plateforme.
-Vous pouvez constater que la joueur est affiché derrière les objets ajoutés.
-
-
-
-Chaque instance d'un objet placé sur la scène possède une propriété appelée **z order** . Ce paramètre est un nombre et les objets ayant une valeur **z** plus grande sont affichés au-dessus (ou devant) les objets ayant un z plus petit. La valeur de z peut être n'importe quel nombre entier, même négatif.
-
-Vous pouvez maintenant changer le **z order** des buissons et des nuages en leur donnant des valeurs négatives de manière à ce que le personnage du joueur (dont le z vaut 1 puisque c'est le premier objet placé sur la scène) soit toujours affiché devant les autres objets.
-
-À cet effet, sélectionnez les instances sur la scène (vous pouvez faire une sélection multiple en maintenant la touche Majuscule pressée pendant la sélection)
-
-
-
-Changez ensuite la valeur du champ **Z Order** dans le panneau des propriétés **Properties** dans la partie droite de la fenêtre. Donnez-lui par exemple la valeur -2 (ou n'importe quel nombre négatif) de manière à ce que ces objets soient bien toujours derrière le joueur.
-
-
-
-**Remarque** : si ce panneau n'est pas ouvert, cliquez la cinquième icône **Open the propreties pannel** dans la barre des outils.
-
-Nous avons maintenant l'aspect visuel que nous voulions.
-
-
-
-Vous pouvez lancer le jeu pour tester si tout fonctionne bien, et n'oubliez pas de sauvegarder.
-
-## Étape suivante : ajouter des pièces de monnaie et afficher combien ont été récoltées
-
-Donnons une tâche à accomplir à notre joueur : récolter autant de pièce de monnaie que possible. À cet effet, nous utiliserons des événements pour stocker le score du joueur, jouer des sons et effacer les pièces récoltées.
-
-➡️Lisez **[l'étape suivante de ce tutoriel ici !](/fr/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins)**
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md b/docs/fr/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md
deleted file mode 100644
index 77b8c6213fe..00000000000
--- a/docs/fr/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: 4-add-jump-thru-platforms
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-# Ajouter une plateforme 'Jump through'
-
-!!! note
-
- Ce tutoriel fait partie du tutoriel [](/gdevelop5/tutorials/platform-game/start) mais vous pouvez également l'utiliser pour tout autre jeu de plateforme !
-
-Pour l'instant, toutes les plateformes sont solides (c'est-à-dire « imperméables », mais nous pouvons également créer une plate-forme à travers laquelle vous pouvez passer.
-
-## Créer le nouvel objet
-
-Créez un nouvel objet **Sprite**, ajoutez une animation et choisissez l'image appelée `bridgeLogs` :
-
-
-
-Renommez l'objet et appelez-le `SmallBridge` :
-
-
-
-## Faites-en une plate-forme "jump-thru"
-
-Pour le moment, l'objet n'est pas considéré comme une plate-forme. Ouvrez l'éditeur d'objet (clic droit sur le nom `SmallBridge` puis sur **Edit Object** et activez l'onglet **Behaviors** dans l'éditeur. Ajoutez le comportement appelé **Platform** puis sélectionnez **Jumpthru Platform** dans la liste qui s'ouvre lorsque vous cliquez le champ **Type**
-
-
-
-## Testez votre travail
-
-Vous pouvez maintenant lancer un aperçu et constater que vous pouvez sauter sur le pont mais aussi passez à travers !
-
-
-
-Et, comme d'habitude, n'oubliez pas de sauvegarder votre jeu !
-
-## Étape suivante : ajouter des objets d'arrière-plan
-
-Le niveau est encore passablement vide. Ajoutons quelques objets d'arrière-plan pour le rendre plus joli. Nous ajouterons ensuite des pièces de monnaie à collectionner et des ennemis !
-
-➡️ Lisez **[4-add-backgrounds-objects](/fr/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects) !**
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md b/docs/fr/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md
deleted file mode 100644
index 1eeec1cd327..00000000000
--- a/docs/fr/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md
+++ /dev/null
@@ -1,228 +0,0 @@
----
-title: Ajouter des pièces de monnaie et afficher le nombre de pièces récoltées
----
-# Ajouter des pièces de monnaie et afficher le nombre de pièces récoltées
-
-!!! note
-
- Ce tutoriel fait partie du tutoriel [start](/gdevelop5/tutorials/platform-game) , mais vous pouvez aussi le réutiliser pour n'importe quel jeu dans lequel vous récoltez des objets.
-
-Dans le jeu de plateforme que nous avons créé jusqu'ici, le joueur n'a pas grand chose à faire : ajoutons des pièces de monnaie que le joueur devra récolter.
-
-## Ajouter des pièces de monnaie
-
-Commencez par créer un nouvel objet **Sprite** et donnez-lui une animation contenant une image `coinGold.png`.
-
-
-
-Nommez ce sprite `Coin`.
-
-Vous pouvez placer plusieurs pièces de monnaie dans ce niveau. Si vous avez besoin de nombreuses pièces, il vaut la peine d'utiliser la technique **_drag and clone_** offerte par l'éditeur de scène : sélectionnez une pièce déjà placée sur la scène et, tout en maintenant la touche CTRL (ou CMD sur macOS), tirez la pièce avec la touche gauche de la souris. La pièce sera dupliquée à chaque relâché de la touche gauche.
-
-Si vous maintenez aussi la touche MAJ, la pièce dupliquée sera à la même hauteur que la pièce d'origine (cela marche aussi bien horizontalement que verticalement).
-
-
-
-## Effacer les pièces récoltées
-
-Il faut faire disparaître les objets pièces de monnaie lorsque le joueur les touche.
-
-Créer un nouvel événement et ajoutez-y une nouvelle condition (**Add condition**). Sélectionnez **Common conditions for all objects** dans la liste de gauche, puis **Collision** et enfin **Collision** pour tester la survenue d'une collision entre deux objets. Sélectionnez `Player` pour le premier paramètre et `Coin` pour le second.
-
-
-
-Cliquez **OK** pour confirmer.
-
-Il faut maintenant ajouter une action pour supprimer la pièce touchée. Seuls les objets `Coin` qui ont rempli la première condition seront utilisés par cette action, ce qui fait que seule la pièce touchée par le joueur sera effacée.
-
-Activez les actions **Add action** et sélectionnez dans la liste de gauche **Common action for all objects**, **Objects** et **Delete an object**. Sélectionnez `Coin` dans le premier paramètre pour spécifier l'objet à détruire.
-
-
-
-L'événement doit ressembler à :
-
-
-
-Vous pouvez maintenant faire un test et voir si les pièces disparaissent lorsque le joueur les touche.
-
-## Jouer un son lors de la collecte d'une pièce
-
-Pour que le jeu soit plus dynamique et gratifiant, faisons jouer un son lorsqu'une pièce est récoltée. C'est facile : nous avons déjà un fichier son appelé `sound.wav` dans le dossier des ressources de notre jeu (si ce n'est pas le cas, vous pouvez télécharger les ressources à l'adresse [http://www.compilgames.net/dl/PlatformerTutorialResources.zip](http://www.compilgames.net/dl/PlatformerTutorialResources.zip) et les extraire dans le dossier adéquat).
-
-
-Pour jour un son, il faut ajouter une autre action à l'événement que nous avons utilisé pour effacer les pièces.
-
-Cliquez **Add action** juste en dessous de l'action **Delete object Coin** et activez l'action **Play a sound** dans la catégorie **Audio**, ce qui fera jouer un son en même temps q'une pièce est effacée.
-
-L'action **Play a sound** présente plusieurs paramètres. Entrez le nom du fichier son `coin.wav` dans le premier paramètre. Laissez les autres paramètres tels qu'ils sont (par exemple, ne répétez pas le son, laissez le volume à 100 par défaut et le **Pitch** à 1 par défaut. )
-
-
-
-C'est tout ! Lancez une test et le son sera joué chaque fois qu'une pièce est récoltée. 👍
-
-## Augmenter un score en utilisant des variables
-
-Nous allons utiliser une variable pour mettre à jour et mémoriser le score du joueur.
-
-Les variables sont des conteneurs que nous pouvons utiliser pour stocker et mémoriser certaines informations telles que des nombres et des chaînes de caractères.
-
-GDevelop utilise différents types de variables.
-
-* __**Les variables d'objet**__ sont privées à chaque instance d'un objet, ce qui a pour conséquence que chaque instance peut stocker ses propres valeurs qui ne sont pas partagées avec les autres instances. Cette « privatisation » est par exemple utile lorsqu'on veut gérer séparément la vie de chaque ennemi.
-
-* __**Les variables de scène**__ (les plus fréquemment utilisées) sont privées (réservées) à chaque scène : leurs valeurs ne sont pas partagées avec les autres scènes de notre jeu. Elles sont utiles pour stocker des informations pertinentes pour la scène actuellement en cours, comme par exemple la vie du joueur ou un score.
-
-* __**Les variables globales**__ sont, comme leur nom l'indique, globales (c'est à dire visibles et atteignables) dans l'ensemble du jeu. Leurs valeurs sont partagées entre toutes les scènes et les objets de l'ensemble du jeu. Elles sont utiles pour stocker des informations que nous voulons partager entre plusieurs ou toutes les scènes du jeu, par exemple la quantité de balles ou la somme d'argent accumulée par le joueur.
-
-La variable que nous allons utiliser est une variable **Scene** que nous appellerons `Score`.
-
-Ajoutons une action dans le dernier événement que nous avons créé. Sélectionnez l'action **Variables > Value of a variable**. Cette action sera utilisée pour ajouter 100 à la variable `Score`.
-
-Renseignez les paramètres comme montré ci-dessous.
-
-
-
-Dans GDevelop, il n'est pas nécessaire de déclarer les variables avant de les utiliser : nous pouvons utiliser n'importe quelle variable sans la déclarer, il suffit de lui donner un nom dans une action ou une condition. Dans le cas où nous utilisons une action sur une variable qui n'est pas déclarée, GDevelop la crée automatiquement pour nous en lui affectant la valeur par défaut `0` ou une chaîne vide `""` puis exécute ensuite l'action sur la variable pour nous éviter tout problème.
-
-Toutefois, pour mieux organiser notre jeu, il vaut toujours mieux déclarer les variables avant de les utiliser. Cette bonne pratique permet de se souvenir plus facilement des variables utilisées et nous permet aussi de changer leur valeur par défaut si nous voulons qu'elle soit différente de 0 ou d'une chaine vide.
-
-Pour déclarer une variable, cliquez sur le bouton **…** à droite du nom de la variable pour afficher la liste des variables déclarées.
-
-
-
-La liste qui s'affiche est vide car aucune variable n'a encore été déclarée.
-
-
-
-Vous pouvez cliquez sur le bouton **+** pour ajouter une variable et entrer `Score` pour son nom.
-
-
-
-Rappelez-vous que ceci est facultatif, ce n'est qu'une bonne pratique fortement recommandée !
-
-## Afficher un score à l'aide d'un objet texte
-
-### Ajouter un objet texte
-
-Pour le moment, la variable `Score` ne peut pas être vue, ce qui fait que nous ne pouvons pas vérifier si le score a augmenté.
-
-Nous avons besoin d'un objet **Text** pour afficher la valeur de la variable `Score`. Ajoutez un nouvel objet dans la liste des objets (en cliquant sur le signe **+** au bas de la liste) et sélectionnez le type **Text** quand GDevelop vous demande quel type d'objet créer.
-
-
-
-Dans la fenêtre qui vient de s'ouvrir, modifiez les propriétés de l'objet `Score` afin que le texte soit affiché en noir et plus grand que la taille de la police par défaut.
-
-
-
-Vous pouvez ensuite placer l'objet sur la scène.
-
-
-### Modifier du calque du texte
-
-Si vous lancez le jeu, vous pouvez constater que le texte `Score:` est affiché avec le reste des objets et que sa position n'est pas fixe sur l'écran.
-
-Nous pouvons résoudre facilement ce problème en créant un nouveau calque au-dessus du calque de base. Pour ce faire, ouvrez l'éditeur de calques en cliquant ce bouton :
-
-
-
-La liste des calques est alors affichée, mais elle ne contient pour le moment que le calque de base.
-
-
-
-Cliquez sur le bouton **+** pour ajouter un calque. Entrez `UI` pour son nom (UI pour User Interface ou Interface Utilisateur) :
-
-Pour finir, déplacez l'objet texte `Score` sur ce nouveau calque en sélectionnant l'objet texte sur la scène
-(ce qui ouvre son panneau des propriétés sur la gauche de l'écran.
-
-Cliquez sur **Base layer** et sélectionnez `UI` dans la liste :
-
-
-
-Assurez-vous que l'objet texte soit affiché de manière visible quelque part sur l'écran, par exemple en le déplaçant dans le coin supérieur gauche de la scène.
-
-Le rectangle noir de l'éditeur de scène représente la taille de la scène (ce que l'on voit quand le jeu est lancé).
-
-
-
-### Afficher la valeur du score
-
-Maintenant que nous avons un objet texte sur l'écran, il est temps de lui faire afficher la valeur de la variable `Score`.
-
-Ajoutez un nouvel événement (Ouvrez le panneau **NEWSCENE (EVENTS)** et cliquez le bouton **Add a new empty event** dans le haut de la fenêtre.)
-
-Cet événement n'aura aucune condition, ce qui signifie que l'action sera exécutée à chaque image, soit environ 60 fois par seconde.
-
-Ajoutez une action **Add action** et sélectionnez l'action **Modify the text** dans la catégorie appelée **Text object**.
-
-Pour le premier paramètre, sélectionnez l'objet `Score` car c'est cet objet que nous voulons mettre à jour.
-
-Pour le deuxième paramètre, sélectionnez l'opérateur `= (set to)` dans la liste `Modification's sign` (nous voulons donner une autre valeur au texte).
-
-Finalement, le dernier paramètre représente le nouveau contenu du texte. Ce contenu est une expression de type chaîne de caractères qui sera évaluée par GDevelop pendant le jeu lorsque l'action sera exécutée.
-
-Nous pouvons spécifier un texte en le plaçant entre guillemets (comme ceci `"Hello World"`). Mais nous pouvons aussi utiliser quelque chose appelée **_expression_**, qui est une fonction qui retourne une certaine valeur que nous pouvons utiliser d'une manière ou d'une autre.
-
-Dans notre cas, nous avons besoin de la valeur de la variable `Score` que nous voulons utiliser pour mettre à jour l'objet texte.
-
-Les expressions étant un sujet quelque peu avancé, je ne pense pas que ce soit le bon moment pour s'y atteler.
-
-Tout ce que vous devez savoir pour le moment est que, pour obtenir la valeur d'une variable de scène, nous devons utiliser l'expression `Variable(nom_de_la_variable)`. Mais la variable obtenue est une valeur numérique (ici un nombre entier) alors que nous voulons une valeur de type texte. C'est pourquoi nous devons convertir la valeur retournée par cette expression en une chaîne de caractères, conversion qui sera faite en utilisant une autre expression appelée `ToString(valeur_a_convertir)`.
-
-Ce qui fait que l'expression finale dont nous avons besoin est `ToString(Variable(Score))`.
-
-Finalement, nous pouvons ajouter cette pression à la suite d'un texte statique en utilisant l'opérateur **+** pour obtenir :
-
-`"Score : " + ToString(Variable(Score))`
-
-
-
-Bien d'autres fonctions ou expressions sont disponibles dans GDevelop. En les combinant, vous pouvez obtenir des actions puissantes qui peuvent effectuer un travail complexe.
-
-Voici l'élément final :
-
-
-
-Vous pouvez maintenant tester le jeu et constater que le score est affiché et mis à jour chaque fois que vous récoltez une pièce de monnaie.
-
-
-
-## Bonus : corriger le bug de score
-
-Vous avez peut-être remarqué que si vous collectez deux pièces en même temps, le score n'augmente que d'une unité. Par exemple, si chaque pièce vaut 100 points et que vous collectez 2 pièces, le score n'augmentera que de 100 au lieu de 200. La correction est facile ; il suffit d'utiliser une fonction que nous n'avons pas encore rencontrée : un événement appelé **For each object**. Cette fonction nous permet de dire au moteur du jeu qu'il doit ajouter 100 au score pour chaque pièce ramassée.
-
-Pour commencer, cliquez sur la bouton **+** dans le barre des outils.
-
-
-
-Sélectionnez **For each object** dans le menu :
-
-
-
-et GDevelop ajoute un événement au bas de la page de l'événement.
-
-Faites-le glisser vers le haut pour en faire un sous-événement de la collision du joueur avec la pièce :
-
-
-
-Cliquez `_Click to chose for which object this event will be repeted_`.
-
-Tapez `coin` dans le champ qui apparaît et cliquez sur l'objet.
-
-
-
-Maintenant que l'objet a été ajouté au sous-événement, déplaçons les actions vers ce sous-événement. Sélectionnez la première action avec la souris, cliquez ave son bouton droit et coupez la sélection. Placez le curseur dans l'action du sous-événement et collez avec le bouton droit (il s'agit donc d'un banal couper-coller).
-Faites la même chose pour les eux autres actions
-
-
-
-Voilà à quoi devrait ressembler l'événement final :
-
-
-
-Lancez le jeu, et vous verrez que si vous récoltez deux pièces en même temps, le score sera mis à jour pour refléter le fait que vous avez effectivement récolté deux pièces plutôt qu'une.
-
-## Prochaine étape : ajouter des ennemis
-
-Chaque jeu de plateforme comporte des ennemis qu'il faut éviter ou tuer en leur sautant dessus ! Ajoutons-en et voyons comment nous pouvons les faire bouger.
-
-➡️ Pour continuer **[6 add enemies](/fr/gdevelop5/tutorials/platform-game/6-add-enemies)**!
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/6-add-enemies.md b/docs/fr/gdevelop5/tutorials/platform-game/6-add-enemies.md
deleted file mode 100644
index 57b9e9732ce..00000000000
--- a/docs/fr/gdevelop5/tutorials/platform-game/6-add-enemies.md
+++ /dev/null
@@ -1,206 +0,0 @@
----
-title: Ajouter des ennemis à notre jeu de plateforme
----
-# Ajouter des ennemis à notre jeu de plateforme
-Terminons ce tutoriel en ajoutant un ennemi qui se déplacera à gauche et à droite et que nous pourrons détruire en lui sautant dessus.
-
-
-##Créer et ajouter un objet ennemi à notre scène
-
-Créons d'abord un nouvel objet **Sprite** et ajoutons-y les images `slimeWalk1.png` et `slimeWalk2.png` dans une seule animation. Appelons cette animation `Walk`.
-
-Puisque cet ennemi est constamment en mouvement, nous n'avons pas besoin d'une animation « immobile » ou d'une quelconque autre animation.
-
-Activez l'animation en boucle en cliquant le bouton **Don't Loop** (en haut à droite) et réglez la vitesse d'animation (à droite du symbole d'un chronomètre) à `0.5`.
-
-La fenêtre devrait ressembler à :
-
-
-
-Confirmez ensuite les modifications en cliquant le bouton **Apply** dans le coin inférieur droit.
-
-Renommez finalement l'objet en `Slime` et ajoutez-le à la scène. Assurez-vous qu'il repose bien sur le dessus de la plateforme et qu'il se trouve sur le calque `Base`.
-
-Si vous lancez maintenant un aperçu, il ne se passe pas grand chose. L'ennemi se pose gentiment sur la plateforme et joue l'animation `Walk`. Faisons-le bouger.
-
-
-##Déplacer l'ennemi à gauche et à droite
-Dans ce tutoriel, l'ennemi devra se déplacer à gauche à et droite. Les changements de directions se feront lorsque l'ennemi entre en collision avec un obstacle.
-
-Il nous faut donc ajouter deux objets qui serviront d'obstacle et permettront de détecter les collisions avec l'ennemi.
-
-Créez un premier objet **Sprite**, ajoutez-lui l'image `Left.png` et renommez cet objet `left`. Créez ensuite un second objet **Sprite**, ajoutez-lui l'image `Right.png` et renommez-le `right`.
-
-Placez enfin l'objet `left` sur l'extrémité droite de la plateforme et l'objet `right` sur l'extrémité gauche de la plateforme.
-
-La plateforme devrait alors ressembler à :
-
-
-
-Vous devinez peut-être ce que nous allons faire avec ces deux objets. Si ce n'est pas le cas, je vais vous l'expliquer. L'idée est que, si la bave rose `Slime` entre en collision avec l'objet appelé `left`, nous changeons sa direction pour la faire aller à gauche et si elle entre en collision avec l'objet appelé `right`, nous changeons sa direction pour la faire aller à droite. Passons donc à l'action.
-
-Nous allons commencer par créer une variable objet appelée `direction` en lui donnant la valeur `left` par défaut. Cette variable nous permettra de stocker le sens du déplacement de la bave et de la faire changer de direction. Pour ajouter une variable d'objet à la bave `Slime`:
-
-sélectionnez une bave dans la scène et, dans l'onglet **Properties**, cliquez sur **EDIT VARIABLES**.
-
-
-
-GDevelop affiche une fenêtre vide qui contient la liste des variables d'objet déjà déclarées pour l'objet `Slime`. Elle est évidemment vide puisque, jusqu'à maintenant, nous n'en avons déclaré aucune. Pour ajouter une variable d'objet :
-
-cliquez sur le signe **+** **Click to add a variable** dans le coin inférieur droit.
-
-GDevelop affiche maintenant une variable appelée `Variable` dans le champ **Name**.
-
-Cliquez sur ce nom et remplacez-le par `direction`. Cliquez ensuite dans le champ **Value** et entrez `left`. La fenêtre devrait alors ressembler à :
-
-
-
-Confirmez les modifications en cliquant sur le bouton **APPLY**.
-
-Nous avons maintenant une variable d'objet appelée `direction` ayant la valeur par défaut `left`. Utilisons cette variable pour faire bouger la bave. L'idée est que, si la valeur de `direction` est `left` la bave doit se déplacer vers la gauche et si la valeur est `right` la bave doit se déplacer vers la droite.
-
-Ouvrez l'onglet des événements **NEWSCENE (EVENTS)** et créez un nouvel événement vide (bouton **Add a new empty event** dans la barre du haut).
-
-Ajoutez-y une condition en cliquant **Add condition** pour tester le contenu texte d'une variable d'objet. Vous la trouverez dans **Common condition for all objects > Variables > Text of an object's variable** dans la liste de gauche.
-
-Dans le panneau de droite, cliquez sur **Object** et sélectionnez `Slime` dans la liste des objets. Dans le champ **Variable**, sélectionnez `direction` ou, s'il n'y figure pas pour une raison ou l'autre, écrivez-le. Pour le champ **Sign of the test**, choisissez **= (equal to)** ou tapez simplement le signe `=` et finalement, pour le champ **Text to test**, tapez `"left"`. N'oubliez pas de mettre cette valeur **entre guillemets** !
-
-La fenêtre devrait ressembler à :
-
-
-
-Pressez **OK** pour confirmer et ajouter la condition à l'événement.
-
-La condition étant fixée, ajoutons une action pour déplacer la bave vers la gauche.
-
-Cliquez sur **Add an action** pour paramétrer le déplacement vers la gauche. Sélectionnez **Common action for all objects > Movement > Add a force (angle)** dans le menu de gauche.
-
-Rappelons que vous pouvez toujours utiliser la boîte de recherche **Search** pour trouver ce que vous cherchez à condition de savoir ce que vous cherchez.
-
-Dans le panneau de droite, sélectionnez `Slime` dans le champ **Object**. Entrez la valeur `180` dans **Angle**, angle qui correspond à la direction vers la gauche dans le système de coordonnées de GDevelop. Pour la vitesse, entrez `100` dans le champ **Speed (in pixels per second)**.
-
-La fenêtre devrait ressembler à :
-
-
-
-Pressez **OK** pour confirmer et ajouter l'action.
-
-Si nous lançons maintenant un test, la bave devrait commencer par se déplacer vers la gauche, mais vous constaterez probablement qu'elle continue à se déplacer sans jamais changer de direction. Il est temps de remédier à cet situation.
-
-À cet effet, nous devons tester s'il y a collision entre l'objet `Slime` et l'objet appelé `right` et, si c'est le cas, changer la valeur de la variable `direction` en `"right"`.
-
-La suite des opérations est, à quelques détails près, la même que pour le déplacement vers la gauche.
-
-Ajoutez un événement vide (bouton **Add a new empty event**) puis une condition (**Add condition**) pour tester la collision entre l'objet `Slime` et l'objet `Right`.
-
-Sélectionnez **Common conditions for all objects > Variables > Text of a variable** dans la liste de gauche. Dans le panneau de droite, sélectionnez `Slime` dans le champ **Object**, `direction` dans le champ **Variable** (entrez ce nom manuellement s'il ne figure pas dans la liste). Sélectionnez **= (equal to)** ou tapez un signe égal `=` dans le champ **Sign of the test**. Pour finir, entrez `"right"` dans le champ **Text to test** (n'oubliez pas les guillemets doubles !).
-
-La fenêtre devrait ressembler à :
-
-
-
-Il reste encore à dire à GDevelop ce qu'il faut faire quand la variable `direction` vaut `right`.
-
-Cliquez **Add action** dans la condition qui vient d'être créée. Sélectionnez **Common action for all objects > Movement > Add a force (angle)** dans la liste de gauche. Sélectionnez `Slime` dans le champ **Object**, mettez **Angle** à `0` et **Speed (in pixels per second)** à `100`, puis cliquez **OK** pour confirmer.
-
-La figure ci-dessous, qui représente le système de coordonnées utilisé par GDevelop, montre que le déplacement vers la droite correspond bien à un angle de 0°.
-
-
-
-Si nous testons maintenant le jeu, nous constatons que rien ne se passe comme prévu : bien que GDevelop sache ce qu'il faut faire quand `direction` vaut `right` ou `left`, la bave poursuit son chemin vers la gauche sans se préoccuper des limites.
-
-Il faut donc tester les conditions les collisions avec les objets limite `Right` et `Left` et ajuster la variable `direction` en conséquence.
-
-Créez un nouvel événement et ajoutez-y une condition (**Add condition**) pour tester la collision avec la borne située à gauche appelée `Right`.
-
-Sélectionnez **Common condition for all objects > Collision > Collision** dans la liste de gauche. Sélectionnez `Slime` dans le premier champ **Object** et `Right` dans le second. Cliquez **OK** pour confirmer.
-
-Indiquez à GDevelop ce qu'il doit faire quand il y a collision en ajoutant une action en cliquant **Add action**.
-
-Sélectionnez **Common action for all objects > Variables > Modify the text of a variable of an object** dans la liste de gauche. Dans le panneau de droite, sélectionnez `Slime` dans le champ **Object**, écrivez `direction` dans le champ **Variable**, sélectionnez `= (set to)` dans le champ **Modification's sign** et tapez `"right"` dans le champ **Text**. Cliquez **OK** pour confirmer.
-
-Il reste à dire à GDevelop ce qu'il doit faire en cas de collision à droite (donc avec la borne `Left`).
-
-Répétez ce que vous venez de faire pour la borne `Right` en utilisant l'objet `Left` et la valeur `"left"`.
-
-Si vous avez bien suivi, les événement devraient ressembler à :
-
-
-
-Si vous testez maintenant le jeu, la bave devrait changer de direction chaque fois qu'elle touche une limite, mais elle continue de regarder vers la gauche quelle que soit la direction de son déplacement. Il s'agit dont de retourner l'image de la bave chaque fois que c'est nécessaire.
-
-Il suffit d'ajouter une action de retournement horizontal du sprite de la bave dans les événements spécifiant la direction de cette bave.
-
-Cliquez **Add action** dans l'événement qui déplace la bave vers la gauche (`The text of variable direction of Slime is = "left"`.
-
-Sélectionnez **Sprite > Effects > Flip the object horizontally** dans la liste de gauche. Sélectionnez `Slime` dans le champ **Object** du panneau de droite. Cliquez `NO` dans le champ **Activate flipping** puisque dans ce cas, l'image regarde dans la bonne direction.
-
-Répétez ces deux derniers paragraphes pour l'événement déplaçant la bave vers la droite. Sélectionnez cette fois le bouton **YES** dans le champ **Activate flipping** car nous voulons que la bave regarde vers la droite quand elle va à droite..
-
-Les événements devraient maintenant ressembler à :
-
-
-
-Si vous effectuez un test, la bave devrait bien regarder dans la direction de son mouvement.
-
-#Faire en sorte que le joueur tue l'ennemi
-
-Il suffit de faire en sorte que le joueur détruise la bave quand il lui saute dessus. À cet effet,
-
-Ajoutez un événement vide (bouton **Add a new empty event**). La suite du procédé est la même que celui utilisé pour faire disparaître les pièces de monnaie.
-
-Testez la survenue d'une collision en cliquant **Add condition** puis en sélectionnant **Common conditions for all objects > Collision > Collision**. Sélectionnez `Player` pour le premier **Object** et `Slime` pour le second. Confirmer avec **OK**.
-
-La condition étant remplie, il faut encore y ajouter une action avec **Add action**. Sélectionnez **Common action for all objects > Objects > Delete an object** dans la liste de gauche et sélectionnez ensuite `Slime` pour **Object** à droite. Confirmez avec **OK**.
-
-Si nous testons le jeu maintenant, la bave est supprimée dès que le joueur entre en collision avec elle, mais ce n'est pas ce que nous voulons. Nous voulons la supprimer seulement si le joueur lui saute dessus (retombe sur elle).
-
-Pour ce faire, il faut ajouter une condition supplémentaire à l'événement qui vérifie si le joueur est en train de tomber.
-
-Cliquez **Add condition** dans le dernier événement. Sélectionnez **Platform Behavior > is falling** dans la liste de gauche et `Player` pour **Object**. Cliquez **OK** pour confirmer.
-
-Si nous testons le jeu, la bave n'est détruite que lorsqu'elle entre en collision avec le joueur qui est en train de lui tomber dessus, et seulement dans ce cas.
-
-Mais ce n'est pas encore parfait car il n'a pas de poids, il tombe tout simplement sur la bave et la bave disparaît. Faisons en sorte que le joueur puisse sauter encore lorsqu'il tombe sur la bave.
-
-Pour ce faire, ajoutez une action supplémentaire (**Add action**) pour que le joueur puisse sauter à nouveau puis de le faire sauter en simulant une pression sur la touche de saut.
-
-Pour lui permettre de refaire un saut, sélectionnez **Platform behavior > Options > Allow again jumping** dans la liste de droite et `Player` dans le champ **Object**. Cliquez **OK** pour confirmer.
-
-Pour le faire sauter « automatiquement », ajoutez une action **Add action** puis sélectionnez **Platform behavior > Controls > Simulate jump key press** à gauche et `Player` dans le champ **Object** à droite. Confirmez avec **OK**.
-
-À ce stade, l'événement devrait ressembler à :
-
-
-
-Si nous démarrons maintenant le jeu et sautons sur la bave, le joueur devrait sauter encore une fois et la bave disparaître.
-
-#Faire que l'ennemi puisse tuer le joueur
-
-Il est temps de faire que l'ennemi puisse tuer le joueur.
-
-Dans l'onglet **NEWSCENE (EVENTS)**, ajoutez un événement vide (bouton **Add a new empty event**) et, dans cet événement, une condition pour vérifier la collision entre le joueur et la bave puis ajoutez une action pour supprimer le joueur.
-
-Évidemment, cela ne fonctionnera pas car nous pourrions juste supprimer le joueur avant de pouvoir supprimer la bave ou supprimer la bave avant de pouvoir supprimer le joueur. Pour l'éviter, ajoutez une action de plus à notre événement pour vérifier que le joueur n'est pas seulement en collision avec la bave mais que le joueur est également sur le sol.
-
-Si nous lançons maintenant le jeu, nous devrions être en mesure de tuer la bave en lui sautant dessus et la bave devrait pouvoir tuer le joueur si le joueur est au sol au moment de la collision.
-
-La dernière chose que nous avons à faire est de cacher les objets flèches gauche et droite.
-
-À cet effet, ajoutons un événement vide et la condition `At the beginning of the scene` qui sera déclenchée une seule fois au démarrage de la scène et ajoutera l'action pour `Hide the object left` (cacher l'objet à gauche) et `Hide the object right` (cacher l'objet à droite).
-
-L'événement final complet de ce tutoriel devrait ressembler à :
-
-
-
-Si nous lançons maintenant un aperçu, les objets à gauche et à droite portant une flèche doivent être cachés. La bave doit bouger constamment de gauche à droite. Nous sommes capables de tuer la bave en lui sautant dessus et la bave devrait être capable de tuer le joueur quand elle entre en collision avec lui lorsqu'il est au sol.
-
-
-##Étape suivante : ajouter des points de contrôle (checkpoints)
-
-Pour l'instant, la «mort» du joueur est un peu brutale : on le supprime. Faisons-le réapparaître au dernier point de contrôle qu'il a traversé. Les points de contrôle sont essentiels dans un jeu de plateforme si vous ne voulez pas forcer le joueur à recommencer depuis le début lorsqu'il meurt.
-
-➡️ LIsez **[7 checkpoints](/fr/gdevelop5/tutorials/platform-game/7-checkpoints) !**
-
-
-
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/7-checkpoints.md b/docs/fr/gdevelop5/tutorials/platform-game/7-checkpoints.md
deleted file mode 100644
index d848e01bb62..00000000000
--- a/docs/fr/gdevelop5/tutorials/platform-game/7-checkpoints.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Ajouter des points de contrôle à votre jeu
----
-# Ajouter des points de contrôle à votre jeu
-
-Nous avons terminé notre tutoriel précédent en supprimant le joueur quand il entre en collision avec l'ennemi. Mais cela ne fonctionne pas de cette manière dans la plupart des jeux. Au lieu de supprimer le joueur, il y a normalement un « point de contrôle » (checkpoint) où l'état du jeu et celui du joueur sont sauvegardés et au cas où le joueur mourrait, le jeu redémarrerait à partir du point de contrôle.
-
-Enregistrer la totalité de l'état du jeu et la situation du joueur est peut-être un peu trop avancé pour le moment. Donc, ce que nous allons faire en cas de rencontre avec un objet « point de contrôle », consiste à stocker la position de l’objet dans des variables et au lieu de supprimer le joueur, nous enregistrons sa position dans les variables. Passons à la réalisation… .
-
-#### Créer un objet point de contrôle
-
-Commencez par créer un nouvel objet **sprite** dans le jeu et appelez-le `checkpoint`. Son image peut être n'importe quoi. Ici, nous allons utiliser un cactus pour représenter le ou les points de contrôle.
-
-
-
-Ajoutez maintenant l'objet à votre scène, là où nous aimeriez avoir un point de contrôle. Vous pouvez ajouter l'objet à plusieurs endroits dans la scène.
-
-#### Ajouter des événements
-
-Maintenant que nos objets point de contrôle sont placés dans la scène, ajoutons les événements qui y sont liés. Commençons avec une condition pour vérifier la collision entre le joueur `player` et le point de contrôle `checkpoint` et, si la collision se produit, stockons la position X et Y du point de contrôle dans deux variables de scène appelées `checkpointX` et `checkpointY`.
-
-
-
-Tout comme lorsque nous mettons à jour le texte du score, nous utilisons des expressions pour obtenir la position X et Y de l’objet `checkpoint`. Vous trouverez plus d'expressions dans l'éditeur d'expression en cliquant sur l'icône bleue à côté des champs de valeur :
-
-
-
-Lorsque vous cliquez sur cette icône, vous pouvez rechercher toutes les expressions disponibles triées par catégories.
-
-
-
-Nous avons maintenant stocké les positions X et Y de l’objet `checkpoint` avec lequel nous sommes entrés en collision. La seule chose qui reste à faire est de donner au joueur la position X et Y du point de contrôle au lieu de supprimer l’objet `player` en utilisant le coordonnées stockées dans les variables que nous venons de définir.
-
-
-
-Nous utilisons ici un autre ensemble d'expressions pour obtenir la valeur des variables.
-
-#### Résolution de bogues
-
-Au cas où vous avez suivi scrupuleusement et que vous avez également choisi le cactus comme point de contrôle, vous remarquerez peut-être que nous venons de créer un bogue. Puisque le personnage du joueur est plus grand que le cactus, nous définissons la position du joueur trop bas et le joueur reste coincé dans le sol lorsque nous définissons sa coordonnée Y :
-
-
-
-Dans ce cas particulier, nous pouvons facilement résoudre le problème en redimensionnant le cactus sur l’axe des Y pour qu’il soit aussi haut ou même plus haut que le joueur. Mais nous pouvons aussi utiliser les mathématiques pour contourner ce problème. Puisque tout le monde sait comment redimensionner un sprite « manuellement », voyons comment le faire avec les maths.
-
-
-
-La solution présente ici paraît un peu trop compliquée, mais elle n'est là que pour vous montrer à quel point les expressions peuvent être puissantes. Donc, ma solution est la suivante : lorsque je définis la position Y du joueur en utilisant la variable `checkpointY`, je soustrais la hauteur du point de contrôle `checkpoint.Height()` du cactus de la hauteur du joueur `Player.Height()`, et la différence obtenue de cette manière est soustraite à la variable `checkpointY`. La différence de hauteur obtenue est donc calculée automatiquement, quelles que soient les hauteurs des objets en question .
-
-Bien entendu, pour rester simple, nous pourrions également soustraire 30 à la valeur de `checkpointY`.
-
-
-
-Donc, avec la méthode des essais et erreurs, vous pouvez trouver la valeur qui vous convient le mieux ou vous pouvez essayer la manière plus compliquée de déterminer la valeur exacte.
-
-Peut-être que vous vous demandez maintenant pourquoi je soustrais cette différence de hauteur à Y au lieu de l'ajouter à Y. Le problème est que, la hauteur du point de contrôle étant plus petite, je dois placer le joueur plus haut. La raison est que le valeur de la coordonnée sur l'axe Y augmente de haut en bas. Elle commence à 0 en haut et augmente de plus en plus vers le bas de l'écran, donc techniquement j'ai besoin d'une valeur inférieure pour déplacer quelque chose vers le haut :
-
-
-
-Les coordonnées de la scène de jeu de la plupart des moteurs 2D sont définies de la manière suivante :
-
-L'origine est placée dans le coin supérieur droit de la scène, de cordonnées (0,0). La valeur de l'abscisse (coordonnée horizontale X le long de l'axe du même nom) augment de gauche à droite et celle de l'ordonnée (coordonnée verticale Y le long de l'axe du même nom) augmente de haut en bas, comme vous pouvez le voir sur l'image ci-dessus.
-
-Maintenant, si nous lançons un aperçu et que notre joueur meurt, sa position est définie sur les dernières valeurs de point de contrôle enregistrées. Mais il y a un autre bug.
-
-Si le joueur meurt avant d'entrer en collision avec un point de contrôle, les variables renverront 0 et le joueur va se retrouver à la position 0,0 qui est le coin supérieur gauche.
-
-Nous pouvons facilement résoudre ce problème en définissant des valeurs par défaut pour les points de contrôle, valeurs correspondant à la position de départ du joueur au début de la scène.
-
-
-
-Donc, lorsque la scène commence, le joueur doit normalement être déjà en position de départ ce qui fait que nous obtenons simplement la position du joueur, position que nous stockons comme position du point de contrôle. Si le joueur meurt avant d'entrer en collision avec l'un des points de contrôle, nous le positionnons au début de la scène.
-#### Améliorer le système
-
-En utilisant ce que vous avez appris jusqu'ici, vous pouvez aller de l'avant et ajouter un texte pour afficher un message lorsque le joueur a atteint un point de contrôle et peut-être jouer une animation, faire sauter le cactus ou quelque chose de plus intéressant.
-
-
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/ajout-mosaique.png b/docs/fr/gdevelop5/tutorials/platform-game/ajout-mosaique.png
deleted file mode 100644
index c104b5d1aed..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/ajout-mosaique.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-32-46.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-32-46.png
deleted file mode 100644
index 5f1ec950d56..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-32-46.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-42-29.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-42-29.png
deleted file mode 100644
index 9054a6f3661..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-42-29.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-45-50.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-45-50.png
deleted file mode 100644
index e27630f2e83..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-45-50.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-11.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-11.png
deleted file mode 100644
index 4ca9331ebf1..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-11.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-34.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-34.png
deleted file mode 100644
index e4587e7e8fd..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-34.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-19.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-19.png
deleted file mode 100644
index a6359bcba11..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-19.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-32.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-32.png
deleted file mode 100644
index 2de04d5bdba..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-32.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-52-46.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-52-46.png
deleted file mode 100644
index f2a44a47451..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-52-46.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/changer-nom-objet.png b/docs/fr/gdevelop5/tutorials/platform-game/changer-nom-objet.png
deleted file mode 100644
index 4bb55f09565..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/changer-nom-objet.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/charger-image-plateforme1.png b/docs/fr/gdevelop5/tutorials/platform-game/charger-image-plateforme1.png
deleted file mode 100644
index 699991ce92d..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/charger-image-plateforme1.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/comportement-obj-plateforme.png b/docs/fr/gdevelop5/tutorials/platform-game/comportement-obj-plateforme.png
deleted file mode 100644
index 5b801366f1a..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/comportement-obj-plateforme.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/comportement-plateforme.png b/docs/fr/gdevelop5/tutorials/platform-game/comportement-plateforme.png
deleted file mode 100644
index e0bc47ea188..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/comportement-plateforme.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/depose-plateforme1.png b/docs/fr/gdevelop5/tutorials/platform-game/depose-plateforme1.png
deleted file mode 100644
index 974bb850539..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/depose-plateforme1.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/editer_perso.png b/docs/fr/gdevelop5/tutorials/platform-game/editer_perso.png
deleted file mode 100644
index 171b2dc4626..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/editer_perso.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/gestionnaire-projet.png b/docs/fr/gdevelop5/tutorials/platform-game/gestionnaire-projet.png
deleted file mode 100644
index 5cbbeb55c03..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/gestionnaire-projet.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/index.md b/docs/fr/gdevelop5/tutorials/platform-game/index.md
deleted file mode 100644
index 2426cb3ea38..00000000000
--- a/docs/fr/gdevelop5/tutorials/platform-game/index.md
+++ /dev/null
@@ -1,190 +0,0 @@
----
-title: Comment faire un jeu de plate-forme
----
-# Comment faire un jeu de plate-forme
-
-Ce tutoriel vous aidera à commencer à utiliser **GDevelop**:
-Vous allez créer un jeu de plateforme très simple où le joueur peut sauter sur les plates-formes et collecter des pièces de monnaie.
-
-Notez que vous pouvez lire la page [Commencer](/fr/gdevelop5/getting_started) pour avoir une vue d'ensemble du logiciel : elle explique les principaux concepts et décrit l'interface de GDevelop.
-
-
-## Télécharger GDevelop
-
-Si vous n'avez pas **GDevelop 5**, téléchargez-le à partir du [site officiel](https://gdevelop.io). Il est disponible pour Windows, MacOS et Linux.
-
-Téléchargez toujours GDevelop à partir de cette page pour être sûr d'avoir la dernière version.
-Installez ou extrayez GDevelop et lancez-le.
-
-
-
-## Créer un nouveau jeu
-
-Cliquez sur **CREER UN NOUVEAU PROJET** sur la page d'accueil. Dans la fenêtre **Créer un nouveau jeu**, choisissez un dossier pour votre projet (dans le champ **CHOISIR UN DOSSIER** situé en haut de la fenêtre) et sélectionnez **Jeu vide** (dernière option) pour démarrer un nouveau jeu à partir de zéro.
-
-Par défaut, GDevelop crée un dossier appelé **My project**. Vous pouvez créer un dossier vide avec le nom qui vous convient et le sélectionner (dossier **exemple-jeu-plateforme** dans notre exemple).
-
-Pour faire notre jeu, nous aurons besoin de ressources pour représenter les objets (image(s) du personnage, quelques plateformes, objets à récolter ...).
-
-
-
- Vous pouvez télécharger les ressources ici : http://www.compilgames.net/dl/PlatformerTutorialResources.zip.
-
-Une fois ce fichier téléchargé, extrayez son contenu dans le dossier où vous avez créé le projet.
-
-## Ajouter une scène
-
-Les **_scènes_** sont les différentes parties du jeu. Typiquement, chaque écran apparaissant dans le jeu est une scène : le menu principal, le menu pause et les niveaux sont des scènes.
-
-Les **_scènes_** contiennent les objets qui sont affichés à l'écran. Les **_objets_** peuvent être mis en scène pour créer les niveaux (ces objets sont appelés **_instances_**). Les scènes contiennent également les **_événements_** qui sont exécutés pour animer la scène.
-
-Dans le gestionnaire de projet qui s'ouvre à gauche, cliquez sur le bouton **+** à droite de **Cliquez pour ajouter une scène**.
-
-
-
-Une nouvelle scène, appelée **New Scene** est ajoutée à la liste. Cliquez dessus pour l'ouvrir.
-
-
-
-Pour renommer la scène comme vous le souhaitez, vous pouvez revenir au **gestionnaire de projet** en cliquant sur
-
- en haut à gauche. Faire clic-droit sur **New Scene** puis **rename** pour lui choisir un nouveau nom (dans notre exemple : **scene1**).
-
-## Créer l'objet joueur
-
-Le joueur contrôlera un personnage qui peut sauter et se déplacer sur des plateformes. Nous allons créer cet objet.
-
-Sur la droite, vous pouvez voir un panneau intitulé **Objects**. Cliquez sur le bouton **+** pour ajouter un objet.
-
-
-
-Ensuite, une fenêtre s'ouvre et affiche différents types d'objets parmi lesquels vous pouvez choisir.
-
-
-
-Les différents types d'objets présentent des caractéristiques spécifiques. Pour la plupart de nos objets, nous utiliserons les objets **Sprite** qui sont des objets animés ou fixes pouvant être utilisés pour de nombreux éléments (joueur, plates-formes, ennemis, objets...).
-
-Cliquez sur **Sprite** dans la liste. Le nouvel objet est ajouté à la scène et les propriété de l'objet s'ouvrent. Vous pouvez renommer l'objet (ici on l'a appelé `perso_principal`) :
-
-
-
-L'objet est actuellement vide. Les objets **Sprite** sont composés d'animations, et chaque animation peut contenir une ou plusieurs images. Ajoutons une animation. Cliquez sur le bouton **+**.
-
-
-
-L'animation est ajoutée mais toujours vide, sans images. Pour ajouter une image, cliquez sur le **+** dans la vignette vierge.
-
-Choisissez l'image appelée `p1_stand.png` dans le dossier du projet. L'image est ajoutée à l'objet :
-
-
-
-Vous pouvez maintenant fermer les propriétés en cliquant sur le bouton **APPLIQUER** dans le coin inférieur droit.
-
-##Mettre l'objet dans la scène
-
-Pour ajouter le joueur dans notre niveau, nous devons récupérer l'objet et le placer dans la scène.
-Chaque objet ajouté à la scène est une **_instance_** de l'objet.
-
-Nous n'avons besoin que d'une seule instance du joueur car nous n'aurons qu'un seul joueur dans ce niveau. Les autres objets (comme les plateformes, pièces, ennemis, ...) pourront avoir plusieurs instances dans la scène.
-
-Pour ajouter l'objet, il faut cliquer dans la liste à gauche :
-
-
-
-puis sans relacher la souris, le faire glisser vers la scène et relacher pour le déposer :
-
-
-
-Pour zoomer et dézoomer dans la scène, utilisez la molette de la souris. Pour déplacer la scène, utiliser le clic du milieu (laisser appuyer et faire glisser).
-
-## Donner un nom significatif à l'objet
-
-Si vous avez oublié de nommer votre personnage, vous pouvez le faire en revenant dans le menu ou en faisant un clic droit sur l'objet (ou cliquez sur l'icône présentant trois points alignés verticalement). Choisissez alors l'option **Rename** dans le menu contextuel. Vous pouvez alors saisir `perso_principal` et cliquer n'importe où sur l'écran pour renommer l'objet.
-
-
-
-## Ajouter des plateformes
-
-Pour le moment, le niveau est encore vide, sans plateformes. Ajoutons-en quelques unes.
-
-Créez un nouvel objet en cliquant le bouton **+** dans la liste d'objets. Cette fois, choisissez **Mosaïque** (Tile en anglais) dans la fenêtre de sélection.
-
-
-
-L’éditeur d'objet s'ouvre. Il est un peu différent de l’éditeur de **Sprite** car les **Mosaïque** ne sont pas animés.
-
-Cliquez sur **Sélectionner une image** puis sur **Choose a new image**. Choisissez cette fois l'image appelée `grassHalfMid.png`. Au passage, renommez l'objet _plateforme_herbe1_.
-
-
-
-Fermez l’éditeur en cliquant sur le bouton **APPLIQUER** en bas à droite. Comme pour le personnage, déposez une instance de l'objet sur la scène pour le placer dans le niveau :
-
-
-
-L'objet est ajouté à la scène mais il est minuscule. Cliquez-le et utilisez les poignées de taille pour le redimensionner afin qu'il ressemble à une plateforme :
-
-
-
-Si vous avez oublié, n'oubliez pas de renommer l'objet `plateforme_herbe1` au lieu du nom par défaut dans la liste des objets.
-
-### Il est temps de sauvegarder!
-
-Ne perdons pas ce que nous venons de créer : dans le menu **Fichier** de l'application, cliquez **Sauvegarder** (ou pressez (Ctrl+S/Cmd+S) pour sauvegarder les modifications.
-
-## Ajouter des comportements aux objets
-
-### Le joueur (perso_principal)
-
-Les mouvements du joueur pourraient être créés à l'aide des événements de GDevelop, mais ce serait une tâche longue et difficile de recréer un bon moteur de plateforme. Heureusement, GDevelop contient déjà un moteur de plateforme complet. Afin de mettre en oeuvre ce moteur, nous avons besoin d'utiliser les « comportements de plateforme », qui nous permettent d'accéder au moteur de plateforme et de l'utiliser.
-
-Ouvrez l'éditeur d'objet de `perso_principal` en cliquant-droit sur le joueur dans la liste des objet et en sélectionnant **Edit object** dans le menu (un double clic ouvre également le menu).
-
-
-
-Dans la fenêtre qui vient de s'ouvrir, sélectionnez le panneau **Comportement** (en haut à droite de **Propriétés**) et cliquez le bouton **+ Ajouter un comportement à l'objet**. Sélectionnez **Objet se déplaçant sur des plateformes** dans la liste des comportements disponibles.
-L'éditeur affiche maintenant les comportements avec toute une série de paramètres que vous pouvez modifier.
-
-
-
-Vous pouvez changer certaines de ces propriétés, par exemple la **Vitesse de saut**. Mettez ce paramètre à `800` afin que le saut soit plus important.
-
-### Platformes
-Nous devons aussi configurer des objets pour qu'ils fonctionnent comme des plateformes afin que le joueur puisse leur marcher ou leur sauter dessus. Si nous ne le faisons pas, le joueur tombera à travers l'objet, comme si nous n'avions pas dit à notre personnage comment réagir avec ces plateformes. En donnant à un objet les propriétés d'une plateforme, nous indiquons au personnage que cet objet est une plateforme avec laquelle il peut entrer en collision (lors d'un saut) et lui marcher dessus.
-
-Pour configurer l'objet `plateforme_herbe1` en tant que plateforme, ouvrez l'éditeur de l'objet (clic droit sur l'objet dans la liste des objets et sélection de **Edit object** dans le menu), activez le panneau **Comportements** et **+ Ajoutez un comportement à l'objet** puis sélectionnez le comportement **Platforme** :
-
-
-
-Ce panneau présente aussi quelques options que vous pouvez modifier. Par exemple, l'option **Les rebords peuvent être saisis** permet au personnage de s'accrocher au bord de la plateforme. Si nous activons cette option maintenant, le comportement du personnage paraîtra étrange car nous n'avons pas encore d'animation à afficher lorsque le personnage attrape un bord.
-
-## Lancer une prévisualisation
-
-Arrivés à ce point, vous devriez pouvoir tester votre jeu en pressant le bouton de prévisualisation situé dans la barre d'outils de l'écran.
-
-
-
-Lorsque vous pressez ce bouton, GDevelop génère une prévisualisation et ouvre ensuite une nouvelle fenêtre.
-
-Vous devriez alors pouvoir vous délacer sur les plateformes et sauter d'une plateforme à l'autre avec les touches par défaut. Sentez-vous libres d'ajouter quelques autres plateformes à la scène, comme vous l'avez fait pour la première. N'oubliez pas d'ajouter aussi les comportements adéquats aux plateformes créées pour que le personnage ne passe pas au travers.
-
-Vous pouvez maintenant faire bouger le personnage avec les touches par défaut, qui sont les touches fléchées pour le déplacer horizontalement et les touches **Maj** ou **Espace** pour le faire sauter. Remarquez que, pour le moment, notre personnage n'est pas animé : nous l'animerons pas le suite.
-
-
-
-Si le personnage ne se déplace pas, assurez-vous d'avoir activé les comportements adéquats. Assurez-vous aussi d'avoir ajouté le comportement **Platform** aux objets `GrassPlatform`, sinon le joueur les traversera et sortira de l'écran par le bas.
-
-## Changer la couleur de l'arrière-plan
-
-Un arrière-plan gris est un peu ennuyeux. Nous pourrons y ajouter une image par la suite, mais ne nous compliquons pas les choses pour le moment. Faites un clic-droit dans l'éditeur de la scène et sélectionnez **Scene properties** :
-
-
-
-Dans la fenêtre qui s'est ouverte, cliquez sur **Couleurs d'arrière plan de la scène**, choisissez la couleur qui vous convient dans la palette des couleurs et confirmez en cliquant **OK**.
-
-
-
-## Étape suivante : animer le joueur
-
-Pour le moment, notre jeu est très basique : le joueur n'est pas animé lorsqu'il saute ou qu'il marche. L'étape suivante de ce tutoriel vous montrera comment ajouter différentes animations et comment utiliser des événements pour changer les animations lorsque l'état du joueur change.
-
-➡️ Lisez **[la suite du tutoriel se trouve ici !](/fr/gdevelop5/tutorials/platform-game/2-player-animations)**
\ No newline at end of file
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/instance-sprite-depose.png b/docs/fr/gdevelop5/tutorials/platform-game/instance-sprite-depose.png
deleted file mode 100644
index b5878127f8a..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/instance-sprite-depose.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/nouveau-projet.png b/docs/fr/gdevelop5/tutorials/platform-game/nouveau-projet.png
deleted file mode 100644
index 6b194b9a96d..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/nouveau-projet.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/platform-game/objets-volet.png b/docs/fr/gdevelop5/tutorials/platform-game/objets-volet.png
deleted file mode 100644
index 0d3f36c6129..00000000000
Binary files a/docs/fr/gdevelop5/tutorials/platform-game/objets-volet.png and /dev/null differ
diff --git a/docs/fr/gdevelop5/tutorials/storage-action-explained.md b/docs/fr/gdevelop5/tutorials/storage-action-explained.md
deleted file mode 100644
index 32f7c1c69a9..00000000000
--- a/docs/fr/gdevelop5/tutorials/storage-action-explained.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: Explications sur l'action de stockage
----
-# Explications sur l'action de stockage
-
-Quand vous voulez sauvegarder ou charger n'importe quelle donnée, votre jeu a besoin d'utiliser les évènements de stockage. Ici je vais vous expliquer ce que chaque option fait, comment lire et écrire des valeurs et comment bien commencer. Après avoir lu cette page, je vous recommande d'aller regarder l'exemple "Save-Load" inclus dans GDevelop.
-
-!!! note
-
- Les actions de stockage vont stocker les données dans le **stockage interne**. Si vous souhaitez écrire ou lire des **fichiers**, lisez la page [File system](/gdevelop5/all-features/filesystem) mais cette option est uniquement disponible pour les versions ordinateurs natifs (Linux, Windows, MacOS)
-
-### Écrire une valeur
-
-**Stockage :** "nomdustockage"
-
-Le nom du stockage dans lequel vous voulez écrire une valeur. Par exemple, vous voulez peut-être stocker des informations sur le joueur, pour cela, créez un stockage nommé "joueur".
-
-Si vous souhaitez sauvegarder les préférences utilisateurs ou paramètres du jeu, vous pouvez créer un stockage nommé "parametres" ou vous pouvez juste créer un seul stockage pour ~~les contrôler tous~~ stocker toutes les informations à la fois et juste le nommer "sauvegarde".
-
-C'est à vous d'organiser les sauvegardes comme vous le souhaitez.
-
-Si le nom d'un stockage n'existe pas, GDevelop créera le stockage pour vous. Pour faire une analogie, le stockage est un meuble contenant plusieurs tiroirs.
-
-**Groupe :** "nomdugroupe"
-
-Un groupe peut être n'importe quoi, c'est basiquement un tiroir sur lequel vous mettez un nom et dans lequel vous mettez une valeur que vous gardez pour plus tard. En utilisant des groupes, vous pouvez stocker plusieurs valeurs dans le même stockage. Par exemple, la position du joueur peut être stockée dans un groupe et la vie du joueur dans un autre à l'intérieur du même stockage. Ce qui donne :
-
-Groupe: "PositionXJoueur" pour stocker la position X du joueur
-
-Groupe: "ViesDuJoueur" pour stocker le nombre de vies du joueur.
-
-Quand vous chargez une valeur depuis le stockage, vous pouvez utiliser le nom du groupe pour spécifiez quelle valeur vous souhaitez lire. Dans le cas plus haut, la position X du joueur ou son nombre de vies ou n'importe quoi d'autre est enregistrée dans le stockage.
-
-**Expression :** La valeur que vous voulez écrire dans le stockage
-
-Une expression peut être un texte, un nombre, une variable ou n'importe quoi d'autre.
-
-Pour récupérer la valeur stockée dans la variable, nous devons utiliser des *expressions variables* dans le champ d'entrée:
-
-**Variable d'objet :**
-
-objet_nom.Variable(variable_nom)
-
-objet\nom.VariableString(variable_nom)
-
-**Variable de scène :**
-
-Variable(variable_nom)
-
-VariableString(variable_nom)
-
-**Variable globale :**
-
-GlobalVariable(variable_nom)
-
-GlobalVariableString(variable_nom)
-
-Une chose importante à savoir ; **Écrire une valeur" peut être utilisée seulement pour ÉCRIRE UN NOMBRE** et **"Écrire un texte" peut seulement être utilisé pour ÉCRIRE UN TEXTE** dans le stockage. Souvenez-vous-en aussi quand vous utilisez des expressions. Les expressions de textes ne renvoient que du texte alors que les expressions numériques ne renvoies que des nombres. Cela vaut aussi pour les différents types de variables.
-
-### Lire une valeur
-
-Pour lire une valeur depuis le stockage, vous devez a peu près faire la même chose :
-
-**Stockage :** Entrez le nom du stockage depuis lequel vous voulez lire la valeur.
-
-**Groupe :** Entrez le nom du groupe qui contient la valeur.
-
-(Souvenez vous de l'analogie de du meuble avec les tiroirs)
-
-**Variable de scène :** Entrez le nom de la variable dans laquelle stocker la valeur chargée. Notez que cette variable **devrait être une variable de scène** et que le champ d'entrée attends le nom d'une variable de scène existante, pas une expression.
-
-La variable **devrait** aussi être ajoutée (déclarée) à l'avance dans les propriétés de la scène. Si vous souhaitez stocker la valeur chargée dans une variable globale ou une variable d'objet, vous pouvez utiliser une variable de scène "tampon" pour passer la valeur du stockage, à la variable de scène puis à la variable globale/d'objet.
-
-!!! note
-
- Conseil : Vous pouvez mettre un underscore ("_") ou juste le mot "tmp" devant le nom de la variable temporaire pour signaler qu'elle ne sert que de tampon entre le stockage et une variable de scène ou d'objet. Mais ce choix ne revient qu'à vous
-
-N'oubliez pas : **L'action Lire une valeur est réservé aux nombres** et **L'action Lire un texte est réservé aux textes** ! Les types de variables sont importants et doivent être respectés.
-
-#### Exemples
-
-!!! note
-
- **Testez le stockage interne par vous même !** 🎮
-
- Ouvrez cet exemple dans l'éditeur en ligne !
-
--
diff --git a/docs/fr/gdevelop5/tutorials/tank-shooter.md b/docs/fr/gdevelop5/tutorials/tank-shooter.md
deleted file mode 100644
index 5e65cba4e73..00000000000
--- a/docs/fr/gdevelop5/tutorials/tank-shooter.md
+++ /dev/null
@@ -1,246 +0,0 @@
----
-title: tank-shooter
----
-FIXME **This page is not fully translated, yet. Please help completing the translation.**
-
-*(remove this paragraph once the translation is finished)*
-
-##Tirs sur tanks – Tutoriel pour débutant
-
-Ce tutoriel vous introduit à l’utilisation de GDevelop : vous allez créer un jeu très simple, avec des ennemis qui se déplacent vers le joueur, celui-ci pouvant tirer dessus afin qu'ils explosent au contact des missiles. 
-
-Pour obtenir une vue d'ensemble du logiciel, je recommande de commencer par lire la page [](/fr/gdevelop5/getting_started).
-
-### Télécharger GDevelop
-
-Si vous n'avez pas encore GDevelop, téléchargez-le sur le site officiel : [gdevelop-app.com](http://gdevelop-app.com)
-
-Téléchargez toujours GDevelop à partir de cette page pour être sûr d'avoir la dernière version. Une fois que GDevelop est installé et lancé, la page de démarrage est affichée : 
-
-### Télécharger les sources
-
-Vous pouvez télécharger le projet terminé  afin de voir comment il est fait au cas où vous seriez bloqué ou ne comprendriez pas quelque chose.
-
-### Créer un nouveau projet
-
-Cliquez sur **Create a new project** sur la page d'accueil.
-
-Ensuite, vous avez le choix entre créer un nouveau projet à partir d'un modèle ou créer un projet vide. 
-
-Nous avons besoin d'un projet vide, mais avant de faire ce choix, nous devons définir un dossier en bas de la page dans lequel notre projet sera stocké.
-
-
-
-Pour choisir un emplacement personnalisé, nous devons cliquer sur le bouton **Choose folder** et parcourir le système de fichiers de notre ordinateur pour trouver le dossier que nous voulons utiliser. 
-
-Une fois que vous avez sélectionné un dossier, cliquez sur l'option **Empty game** dans la liste. 
-
-### Créer une nouvelle scène
-
-La première chose que nous avons à faire est créer une nouvelle scène. Cliquez sur le bouton dans le gestionnaire de projet : 
-
-Ensuite, cliquez sur la nouvelle scène **NewScene** que nous venons de créer, afin d'ouvrir l'éditeur de scène.
-
-### Obtenir les images et ressources
-
-Avant de continuer, nous avons besoin de quelques images pour notre jeu. Vous pouvez les télécharger ici : [Télécharger les images](http://www.compilgames.net/dl/BeginnerTutorial2Images.zip)
-
-Une fois que vous avez téléchargé ce fichier, extrayez son contenu dans le dossier dans lequel vous avez créé le projet.
-
-### Créer la tourelle du joueur
-
-Le joueur contrôlera une tourelle pour tirer sur les ennemis. Dans l'éditeur d'objets, cliquez sur le bouton pour ajouter un nouvel objet.  Une fenêtre demande le type d'objet à créer : 
-
-Nous avons besoin d'un objet **Sprite**, donc choisissez ce type dans la liste. Ensuite, le panneau de propriétés de l'objet devrait apparaitre par défaut. Si ce n'est pas le cas, faites un clic droit sur le **NewObject** dans l'éditeur d'objets et sélectionnez **Edit object** dans le menu.
-
-Ensuite, nous devons ajouter une animation à l'objet, donc cliquez sur le bouton correspondant dans la fenêtre de propriétés. 
-
-À présent, vous devriez voir les propriétés d'animation de l'objet. 
-
-Ensuite, nous devons ajouter l'image de la tourelle comme animation. Cliquez sur le gros bouton « plus » et sélectionnez l'image aaguntopdown.png dans le dossier du projet. L'image devrait dès lors être affichée dans la fenêtre. 
-
-Terminez en cliquant sur **Apply** pour enregistrer.
-
-Ensuite, renommez l'objet si vous ne l'avez pas encore fait. Faites un clic droit sur l'objet tourelle dans l'éditeur d'objets, sélectionnez **Rename** dans le menu et entrez le nom `turret`, afin que nous puissions par la suite désigner l'objet par ce nom. 
-
-### Ajouter la tourelle à la scène
-
-Pour ajouter la tourelle à la scène, sélectionnez-la dans l'éditeur d'objets puis cliquez sur l'éditeur de scène. Cela devrait créer une tourelle dans la scène et nous permettre de la sélectionner, la déplacer et la pivoter. 
-
-### Premiers évènements
-
-Nous allons créer les évènements qui vont servir à animer l'ensemble du jeu. D'abord, la tourelle doit se tourner vers le pointeur de la souris.
-
-Allez dans l'éditeur d'évènements en cliquant sur l'onglet des évènements : 
-
-Ensuite, en haut, cliquez sur le bouton pour créer un nouvel évènement. 
-
-L'évènement est créé, avec une liste vide de conditions (sur la gauche) et une liste vide d'actions (sur la droite). Placez votre souris sur la liste d'actions et cliquez sur **Add action** : 
-
-La première action tournera la tourelle vers la souris : dans la fenêtre suivante, choisissez l'action **Common action for all objects \> Angle \> Rotate toward position**.  La partie droite de la fenêtre montre alors le nom de l'action ainsi que les paramètres. Définissez la valeur du premier paramètre en cliquant sur le paramètre et en sélectionnant la tourelle parmi les objets disponibles.  Pour les paramètres suivants, entrez `MouseX()` et `MouseY()` afin que l'objet se tourne vers la position de la souris. Lorsque le jeu sera lancé, ces deux expressions obtiendront les abscisse et ordonnée de la souris. Pour la vitesse angulaire, 0 signifie rotation instantanée et c'est ce que nous voulons ici. Si vous préférez que la tourelle se déplace lentement vers la position de la souris, vous pouvez entrer une petite valeur telle que 100.
-
-Maintenant, les paramètres de cet évènement devraient ressembler à cela : 
-
-Nous avons utilisé comme valeurs des expressions pour obtenir l'abscisse et l'ordonnée de la souris. Vous pouvez trouver d'autres formules dans l'éditeur d'expressions en cliquant sur l'icône bleue à côté des champs de valeur :
-
-
-
-En cliquant sur l'icône, vous pouvez fouiller toutes les expressions classées par catégories.
-
-
-
-Pour enregistrer les changements, cliquez sur OK dans le coin en bas à droite de la page.
-
-Nous pouvons lancer un aperçu en cliquant sur le bouton prévu à cet effet en haut. 
-
-Si nous le faisons correctement, notre tourelle devrait se tourner vers la position de la souris. 
-
-### Tirer des missiles avec la tourelle
-
-Le joueur doit pouvoir tirer des missiles sur les ennemis. Nous avons d'abord besoin d'un objet missile : dans la liste d'objets sur la droite, faites un clic droit sur l'objet tourelle et choisissez **Add a new object** ou bien cliquez sur le bouton pour ajouter un nouvel objet.  Choisissez **Sprite**, puis ajoutez une animation et choisissez l'image bullet.png, puis nommez l'objet **missile**. Tout comme nous avons fait précédemment pour la tourelle.
-
-Ensuite, nous voudrions créer les missiles lorsque le bouton gauche de la souris est enfoncé. Allez dans l'onglet des évènements, et ajoutez un nouvel évènement de la même façon que nous l'avons fait pour la tourelle. La première action sera une action **Create a new object**, disponible dans la catégorie **Common actions for all objects \> Objects**.  Sur le côté droit, le premier paramètre doit être le missile, puisque nous voulons créer un objet missible. Les autres paramètres sont la position de la tourelle : entrez `turret.X()` et `turret.Y()` comme valeurs des 2^(e) et 3^(e) paramètres. 
-
-Il n'est pas nécessaire de préciser un calque (**Layer**) puisque nous n'en avons qu'un seul dans notre jeu. Cliquez sur OK pour disposer l'action.
-
-Ajoutez ensuite une autre action après cette première action. Ne créez pas un autre évènement, cliquez seulement sur **Add action** sous la première action !  Cette fois, choisissez l'action appelée **Common action for all objects \> Movement \> Add a force (angle)**.  GDevelop contient un système de forces intégré qui permet de déplacer les objets facilement. Cette action sera utilisée pour déplacer le missile vers la souris lorsqu'il est lancé. Comme premier paramètre, entrez `bullet` afin que GDevelop déplace le missile tout juste créé dans l'action précédente. Comme angle, nous allons utiliser la direction de la tourelle : entrez `turret.Direction()` comme valeur du 2^(e) paramètre. Pour le 3^(e) paramètre, entrez 400 afin que le missile se déplace avec une vitesse de 400 par seconde. Enfin, entrez 1 comme valeur du dernier paramètre, afin que la force soit appliquée au missile de façon constante et que le missile continue de se déplacer après son lancement. 
-
-Nos deux actions doivent être lancées uniquement lorsque le joueur tire (en enfonçant le bouton gauche de la souris). Pour ce faire, nous devons ajouter une condition à l'évènement : cliquez sur **Add condition** dans l'évènement. 
-
-Choisissez la condition **Mouse and touch \> Mouse button pressed or touch held**.  Sur le côté droit, cliquez sur **Button to test parameter** et choisissez **Left** dans la liste.  Enfin, fermez la fenêtre en cliquant sur le bouton OK. La condition est alors ajoutée à l'évènement.
-
-Si vous prévisualisez le jeu maintenant, vous verrez qu'il y a deux problèmes : les missiles sont tirés trop rapidement, et ils apparaissent à l'origine de la tourelle, ce qui n'est pas très réaliste.
-
-Afin de résoudre le premier problème nous allons utiliser un timer. Ajoutez une seconde condition au dernier évènement que nous avons créé. Choisissez la condition Timers and time \> Value of a timer  Dans la partie droite, entrez 0.25 comme premier paramètre qui représente le temps écoulé en secondes, et "firerate" comme second paramètre, qui est le nom du timer que nous allons utiliser (n'oubliez pas les guillemets doubles autour du nom du timer !). 
-
-Nous n'avons cependant pas encore fini, car comme nous voulons tirer des balles toutes les 0.25 secondes, nous avons besoin de remettre à zéro le timer à 0 après avoir atteint 0.25. Nous allons donc ajouter une action Timers and time \> Reset a timer juste en dessous de l'action de mouvement dans le même évènement.  Entrez le paramètre "firerate", qui est le nom du timer (encore une fois, attention au guillements !).  Cette paire de condition et action garantira que les actions utilisées pour tirer la balle ne soient répétées que lorsqu'au moins 0.25 secondes se sont écoulées après la dernière création de balle : 
-
-Nous devons maintenant nous assurer que les balles sont bien tirées depuis le canon de la tourelle.
-
-Pour ce faire, nous allons ajouter un point personnalisé à notre objet tourelle et créer les balles à partir de ce point.
-
-Pour cela, ouvrons les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet tourelle sur le côté droit et sélectionnons "Edit Object" dans la liste. Cela fait apparaître la fenêtre dans laquelle nous pouvons ajouter des animations à nos objets et nous devrions voir un bouton appelé EDIT POINTS. 
-
-Après avoir cliqué sur le bouton, nous pouvons voir que notre objet a actuellement 2 points par défaut, le point Origin et le point Center.  Nous ne pouvons pas renommer ces points, mais nous pouvons modifier leur position par défaut si nécessaire. Mais notre but est d'ajouter un point de plus à l'objet.
-
-Cliquez sur le bouton d'ajout (symbole plus) pour ajouter un point personnalisé à notre objet tourelle. Nous voyons immédiatement le nouveau point ajouté à la liste avec le nom Point et la position 0,0. Renommons ce point en Canon et fixons la position X à 110 et la position Y à 35 
-
-Maintenant, dans l'aperçu en haut, nous devrions voir que notre point personnalisé est situé à la fin de notre canon  Nous pouvons maintenant fermer la fenêtre et appliquer les modifications que nous avons apportées.
-
-La seule chose qu'il reste à faire est de dire à GDevelop de tirer les balles depuis la pointe Canon de la tourelle. Donc dans notre action de création de balles, nous devons changer les expressions turret.X() et turret.Y(), en turret.PointX(Canon) et turret.PointY(Canon). Nous pouvons les modifier en cliquant sur les expressions dans l'éditeur.  N'oubliez pas le C majuscule de Canon car les noms des points sont sensibles à la casse.
-
-Si nous lançons l'aperçu maintenant, nos balles devraient être tirées depuis le canon de la tourelle mais vous remarquerez peut-être que la balle est parfois un peu décalée. Cela est dû au fait que le point d'origine de la balle se trouve dans le coin supérieur gauche. De la même façon que nous l'avons fait avec la pointe du canon de la tourelle, changez la position du point Origin de la balle pour qu'il soit au milieu. 
-
-### Création d'ennemis attaquant la tourelle
-
-D'abord, nous devons créer les objets utilisés pour les ennemis : ajoutez un objet à la liste d'objets ( Clic droit sur un objet existant \> Add an object. Choisissez un objet Sprite comme précédemment. ). Nommez le enemy.
-
-Editez l'objet (clic droit dans la liste et sélectionner Edit object from the list) puis ajouter une animation à l'objet et deux images : tank2fr1.png et tank2fr2.png.  Ensuite, modifiez le temps entre les images à 0,05 et changez l'animation en Loop pour répéter l'animation. 
-
-Cliquez sur Apply lorsque vous avez terminé.
-
-### Stop ! Gagnez du temps !
-
-Avant d'aller plus loin, pensez à sauvegarder fréquemment : cliquez sur File\>Save pour sauvegarder votre projet. 
-
-## IA ennemie
-
-Revenons au jeu. Nous voulons que les ennemis se dirigent vers la tourelle : Allez dans l'éditeur d'événements et ajoutez un nouvel événement. Ce que nous voulons, c'est créer un ennemi à chaque seconde : ajoutons une condition Timers and time \> Value of a timer. Entrez 1 dans le premier paramètre et "EnemyCreation" pour le nom du timer. N'oubliez pas les guillemets lorsque vous entrez le nom du timer.
-
-Ajoutons ensuite l'action de créer un objet ennemi : Ajouter une action Common action for all objects \> Objects \> Create an object. Sélectionnez enemy dans le premier paramètre. Pour le deuxième paramètre, la position X du nouvel objet à créer, entrez l'expression Random(800) : ceci renverra un nombre aléatoire entre 0 et 800, de sorte que chaque ennemi que nous créerons aura une position différente lors de sa création. Pour la position Y, entrez -50. Cela créera l'ennemi en dehors de l'écran, de sorte que le joueur n'aura pas l'impression qu'un char ennemi vient d'apparaître de nulle part.
-
-Enfin, ajoutons l'action pour réinitialiser le minuteur ( Timers and time \> Reset a timer avec "EnemyCreation" comme parameter ). Encore une fois, n'oubliez pas les guillemets lorsque vous entrez le nom du timer. À ce stade, notre événement devrait ressembler à ceci : 
-
-Si nous lançons un aperçu maintenant, nous ne remarquerons probablement rien car l'ennemi est créé en dehors de l'écran. Déplaçons les ennemis vers le joueur. Ajoutez un autre événement sans aucune condition et choisissez l'action Common action for all objects \> Movement \> Add a force to move towards an object.  Sur le côté droit, pour le premier paramètre, sélectionnez enemy, et sélectionnez turret pour le second paramètre. Entrez 150 pixels par seconde pour la vitesse, et l'amortissement (damping) est de 0, car la force sera appliquée en continu. 
-
-Maintenant, si nous lançons un aperçu, nous devrions voir que nos ennemis se déplacent vers la tourelle, mais vous remarquerez peut-être qu'ils ne se tournent pas réellement vers la tourelle, alors faisons quelque chose à ce sujet. Ajoutons une deuxième action après le mouvement, qui est Common action for all objects \> Angle \> Rotate toward position et pour le premier paramètre sur la droite, sélectionnons l'ennemi pendant que nous faisons tourner l'ennemi et pour les positions X et Y, nous allons utiliser une expression pour obtenir le point central de la tourelle et faire tourner les ennemis vers ce point et la vitesse angulaire est de 0, donc elle va tourner immédiatement.  À ce stade, notre événement ennemi devrait ressembler à ceci : 
-
-Si nous lançons l'aperçu maintenant, nos ennemis devraient se déplacer et tourner vers la tourelle. 
-
-### Ajout d'explosions
-
-Il est temps de détruire les tanks. La première chose que nous voulons faire est de créer une explosion à la place des tanks lorsqu'ils entrent en collision avec la balle. Ajoutons donc un nouvel objet sprite, appelons-le explosion et ajoutons toutes les images à une animation commençant par Explosion_. 
-
-Après avoir ajouté toutes les images à l'animation, réglez le temps entre les images à 0,01 seconde. 
-
-Enregistrez-le en cliquant sur Apply.
-
-Ensuite, nous voulons créer l'explosion lorsque la balle est en collision avec l'ennemi. Ajoutons un nouvel événement vide et ajoutons la condition Common conditions for all objects \> Collision \> Collision  Et sur la droite pour le premier paramètre sélectionner la balle et le second paramètre sélectionner enemy 
-
-Lorsque c'est fait, ajoutons une action pour créer l'objet d'explosion comme nous avons créé les balles et les ennemis auparavant, mais pour la position X et Y, utilisons l'expression enemy.X() et enemy.Y() qui va obtenir la position X et Y de l'objet ennemi qui est en collision avec la balle. 
-
-Enfin, ajoutez l'action après avoir créé l'explosion Common actions for all objects \> Object \> Delete an object et dans la partie droite pour le paramètre sélectionner l'objet enemy puisque nous voulons supprimer l'ennemi. Ajoutez à nouveau la même action, pour supprimer également la balle juste après la suppression de l'ennemi. À ce stade, notre événement devrait ressembler à ceci 
-
-Si nous lançons un aperçu maintenant, nous devrions remarquer quelques problèmes. Nos objets explosifs ne sont pas créés exactement dans la position de l'ennemi et une fois qu'il a créé l'objet explosif, il reste dans la scène. Pour résoudre le second problème, il faut supprimer l'objet d'explosion une fois l'animation terminée. Ajoutez un nouvel événement vide et la condition Sprite \> Animations and Images \> Animation finished  Pour le paramètre de droite, sélectionnez l'objet explosion car nous voulons faire quelque chose si l'animation de l'objet d'explosion est terminée.  Et ce que nous voulons faire, c'est supprimer l'objet explosion, alors ajoutons ensuite l'action, supprimons l'objet explosion.
-
-Pour résoudre le premier problème, nous devons comprendre quelle est sa cause. Lorsque nous créons l'objet explosion en utilisant les expressions enemy.X() et enemy.Y(), nous créons les objets au point d'origine de l'objet ennemi, qui est le coin supérieur gauche de l'ennemi, et nous créons également les explosions à partir de leur point d'origine, qui est le coin supérieur gauche de l'objet explosion.
-
-Pour résoudre le problème, nous devons changer la position du point d'origine de l'explosion pour qu'il se trouve au milieu de l'objet. Pour modifier l'objet explosion, il suffit de cliquer avec le bouton droit de la souris sur l'objet de l'explosion et de sélectionner "Modifier l'objet" dans la liste. Dans la fenêtre suivante, sélectionnez EDIT POINTS. Ensuite, nous voulons changer la position X et Y du point d'origine à 120 qui est juste au milieu de l'image 
-
-Ensuite, ce que nous voulons faire, au lieu de créer l'objet explosion au point d'origine de l'ennemi, nous voulons créer l'objet au point central. Changeons donc l'expression dans l'action de création d'explosion de enemy.X() en enemy.PointX(Centre) et formons enemy.Y() en enemy.PointY(Centre) 
-
-Si nous lançons un aperçu maintenant, nos ennemis devraient exploser et cela devrait également paraître correct. 
-
-### Ajout de nouvelles explosions et d'un Game Over
-
-Jusqu'à présent, le joueur ne pouvait pas mourir. Nous voulons que la tourelle du joueur soit détruite lorsqu'un char ennemi la frappe. D'abord, ajoutez un nouvel événement, et faites comme pour l'événement utilisé pour détruire les ennemis : ajoutez un test de condition pour une collision entre un char et la tourelle. Ensuite, créez une explosion à la position de la tourelle. Enfin, ajoutez une action pour détruire la tourelle : 
-
-Il serait également intéressant d'afficher un texte "Game Over" lorsque la tourelle est détruite : Ajouter un objet à la liste des objets. Cette fois, choisissez un objet Text et nommez-le GameOver. 
-
-Modifiez l'objet en cliquant avec le bouton droit de la souris sur l'objet et sélectionnez Edit object dans la liste. Changeons le texte en Game Over, la couleur du texte en rouge et la taille du texte en 40.  Ensuite, nous pouvons définir une police personnalisée en entrant simplement le chemin de la police. Comme dans ce cas notre police se trouve dans le dossier du projet, il nous suffit d'entrer le nom du fichier de police : 
-
-Enfin, ajoutons l'objet texte à notre scène.
-
-Ce que nous voulons faire ensuite, c'est cacher l'objet texte et l'afficher s'il n'y a pas de tourelle dans la scène, ce qui signifie que la tourelle est détruite. Ajoutons un nouvel événement vide et ajoutons la condition Scene \> At the beginning of the scene 
-
-Cette condition n'a pas de paramètres car la seule chose qu'elle fait est d'exécuter l'action une seule fois au début de la scène. Ensuite, ajoutez l'action au même événement Common Actions for all objects \> Visibility \> Hide  Pour le paramètre, sélectionnez l'objet GameOver car nous voulons cacher cet objet 
-
-Maintenant, ce que nous voulons faire, c'est montrer l'objet texte s'il n'y a pas de tourelle dans la scène Ajouter un nouvel événement vide et ajouter la condition Common conditions for all objects \> Objects \> Objects count 
-
-Pour le premier paramètre sur le côté droit, sélectionnez l'objet tourelle, pour le signe du test, sélectionnez le signe égal et pour la valeur du test, entrez 0 car nous voulons tester si le nombre de tourelles dans la scène est 0. 
-
-Et ce que nous voulons faire, c'est afficher le texte GameOver s'il n'y a pas de tourelle dans la scène, donc ajouter l'action Common action for all objects \> Visibility \> Show et pour paramètre nous voulons sélectionner l'objet GameOver. 
-
-Enfin, un effet intéressant est d'arrêter le jeu et d'afficher Game Over avec un peu de retard. Ajoutez une deuxième condition imers and time \> Value of a timer pour le paramètre de temps entrez 0.1 et pour le paramètre de nom entrez "GameOver". Ensuite, ajoutez une deuxième action : Timers and time \> Change time scale et entrer 0 comme paramètre pour arrêter le jeu et afficher le texte Game Over après 0,1 seconde.
-
-Voici à quoi devraient ressembler tous les événements à ce stade.  Vous pouvez prévisualiser le jeu et vous devriez voir qu'une fois la tourelle détruite, avec un peu de retard, le texte Game Over s'affiche et le jeu est arrêté. 
-
-## Optimiser le jeu
-
-Lorsqu'une balle sort de l'écran, nous n'avons plus besoin de cette balle mais nous lui appliquons toujours un mouvement et nous vérifions la collision entre la balle et le char. Chaque ordinateur dispose de ressources limitées, telles que la mémoire et la puissance de traitement, et nous gaspillons ces précieuses ressources dont nous avons besoin pour faire face, sinon notre jeu peut ralentir, s'arrêter et devenir injouable lorsqu'il atteint la limite de l'appareil sur lequel nous jouons. Vous voulez que votre jeu soit jouable sur le plus grand nombre d'appareils possible, vous devez donc toujours optimiser votre jeu et une façon de le faire est de supprimer les objets qui ne sont plus nécessaires dans notre jeu et de limiter ainsi la quantité de mémoire et la puissance de traitement utilisée par le jeu.
-
-Nous pourrions ajouter un événement pour détruire les balles lorsqu'elles sont trop éloignées de la tourelle, c'est assez facile. Mais nous pouvons aussi utiliser un comportement. Un comportement dans GDevelop est l'ajout d'un certain comportement et d'une certaine fonctionnalité à un objet, dans ce cas nous allons ajouter le comportement "Détruire en dehors de l'écran" aux balles pour qu'elles soient détruites en dehors de l'écran.
-
-Faites un clic droit sur l'objet dans la liste d'objets et choisissez Modifier l'objet dans la liste. Dans la fenêtre suivante en haut, cliquez sur l'onglet Behaviours, cet onglet va afficher tous les comportements que nous avons ajoutés à notre objet. Il est maintenant vide.
-
-Cliquez sur le bouton " Add behavior " (ajouter un comportement) 
-
-Ensuite, sélectionnez dans la liste le comportement Destroy outside screen 
-
-Ensuite, vous allez voir que le comportement est ajouté à la liste. Normalement, si le comportement a des paramètres, il est également affiché ici pour que vous puissiez le modifier, mais ce comportement n'a pas de paramètres car la seule chose qu'il fait est de détruire l'objet lorsqu'il est en dehors de l'écran. Cliquez sur Appliquer et nous avons terminé.
-
-Si vous lancez l'aperçu maintenant, vous ne remarquerez probablement aucune différence car le jeu est très simple et vous utilisez très probablement un appareil avec au moins 2 Go de RAM et un processeur double cœur. Il y a donc beaucoup de ressources pour notre jeu simple, mais au cas où nous créerions des centaines et des milliers de balles que vous êtes libre d'essayer, vous remarquerez peut-être un petit ralentissement au bout d'un moment sans les détruire.
-
-### Add a background
-
-One last thing to make the game good looking is to add a background.
-
-Add a Sprite object, name it background and add the background.jpg image to the object. Next, you can add the object to the scene as usual and make sure it fills the entire scene. To make it easier, you can enable the grid using the button on the top and it should help with positioning the object.  But you may notice the background object cover all the other objects, to solve this problem we need to change the Z-order of the object. While the background object is selected, on the left you should notice the object properties. In case you have closed this tab, you can re-open it using the button on the top.  We can change all kind of properties here such as the position, angle and size of the object but what we are interested in is the Z-order.  Change the value of the Z-order to a low number, in this case we need a negative number something like - 1. The reason for the negative value is that when we are creating the bullets, enemies and explosions we are creating them at Z-order 0 by default and so we need to position the background below 0 otherwise we won't see anything but the turret in our game. An other way to fix it is to tell GDevelop to position the tanks and explosions and bullets on a higher Z-order so we can position the background at 0 but it is something that you the developer need to decide for your self how you want to do it. Every problem can have number of different solutions.
-
-And we are done. The game is complete and ready to be shared.
-
-### Add comments
-
-So, our game is done and playable but what if you want to share the source with someone else? Let say you are working in a team and someone else would like to make modifications to the game. How that person know where to look for the events of enemies, bullets, the turret? Of course it may sound silly to you as most of the events in GDevelop are self explaining and our game is simple enough to see it through but imagine the situation you have a game made out of hundreds and thousands of events. This is where comments come in handy as we can leave reminders in our game for others and also for our self. Trust me, even though you are the one who made it, in a big complex game, even you won't remember where to find different things especially months later. So always use comments regardless how small or big your project is.
-
-To add comments, you can simply click the add comment button on the top.  After you should see a yellow box in the events editor, by clicking in the box you can start writing a comment 
-
-You can change the position of each event and comment by moving the mouse over the blue edge on the left and drag it up and down. Once you done it, you should have something like this: 
-
-### Let's discover GDevelop by yourself
-
-You can browse the other [](/gdevelop5/tutorials) and read the [](/gdevelop5/getting_started) page.
-
-There is also lots of examples and templates bundled with GDevelop and you can find more by visiting: [gametemplates.itch.io](https://gametemplates.itch.io/gdevelop-examples)
-
-And you can also ask questions on the [official forum](http://forum.compilgames.net/)
diff --git a/docs/fr/index.md b/docs/fr/index.md
deleted file mode 100644
index d85879c1588..00000000000
--- a/docs/fr/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: start
----
-
-
-
-# Wiki de GDevelop
-
-GDevelop est un logiciel de création de jeux open source, multiplateforme conçu pour être utilisé par tout le monde. Aucune programmation n'est requise, tout le processus de création se faisant à l'aide de l'éditeur.
-Si vous n'avez pas encore installé GDevelop, téléchargez le depuis [le site officiel](http://www.compilgames.net/gd.php).
-
-Si vous avez besoin d'aide pour débuter, consultez la [page de mise en route](/fr/gdevelop/documentation/manual/edit_getstart).
-
-## Aide en ligne
-
-L'aide est disponible intégralement en ligne sur [cette page](/fr/gdevelop/documentation).
-
-## Tutoriels
-
-Accédez aux [tutoriels](/fr/gdevelop/tutorials) et [articles](/fr/gdevelop/articles) pour GDevelop.
diff --git a/docs/gb.png b/docs/gb.png
deleted file mode 100644
index db084b410d5..00000000000
Binary files a/docs/gb.png and /dev/null differ
diff --git a/docs/gdevelop5/.pages b/docs/gdevelop5/.pages
index f4557725821..96152659770 100644
--- a/docs/gdevelop5/.pages
+++ b/docs/gdevelop5/.pages
@@ -6,11 +6,11 @@ nav:
- objects
- behaviors
- events
- - all-features
- - extensions
- - Tutorials and Guides: tutorials
+ - Core features: all-features
+ - Extended features: extensions
- Publishing games: publishing
- community
- collaboration
- monetization
- GDevelop for Education: education
+ - Tutorials and Guides: tutorials
diff --git a/docs/gdevelop5/10_amazon_app_description.png b/docs/gdevelop5/10_amazon_app_description.png
index b6caf48a18c..f50eb5ba4a1 100644
Binary files a/docs/gdevelop5/10_amazon_app_description.png and b/docs/gdevelop5/10_amazon_app_description.png differ
diff --git a/docs/gdevelop5/11_amazon_apk.png b/docs/gdevelop5/11_amazon_apk.png
index 993a0014b46..c67f648bf39 100644
Binary files a/docs/gdevelop5/11_amazon_apk.png and b/docs/gdevelop5/11_amazon_apk.png differ
diff --git a/docs/gdevelop5/12_amazon_apk_check.png b/docs/gdevelop5/12_amazon_apk_check.png
index b4c12d2038c..95f52c324ae 100644
Binary files a/docs/gdevelop5/12_amazon_apk_check.png and b/docs/gdevelop5/12_amazon_apk_check.png differ
diff --git a/docs/gdevelop5/13_amazon_app_test.png b/docs/gdevelop5/13_amazon_app_test.png
index 962e45b73a6..67d90991712 100644
Binary files a/docs/gdevelop5/13_amazon_app_test.png and b/docs/gdevelop5/13_amazon_app_test.png differ
diff --git a/docs/gdevelop5/4_amazon_tray_menu.png b/docs/gdevelop5/4_amazon_tray_menu.png
index a44a92b3559..dd4b51711cd 100644
Binary files a/docs/gdevelop5/4_amazon_tray_menu.png and b/docs/gdevelop5/4_amazon_tray_menu.png differ
diff --git a/docs/gdevelop5/4c375dd-2016-07-21_16-23-18.png b/docs/gdevelop5/4c375dd-2016-07-21_16-23-18.png
index 2e4670f9fec..ef3ed6fe0eb 100644
Binary files a/docs/gdevelop5/4c375dd-2016-07-21_16-23-18.png and b/docs/gdevelop5/4c375dd-2016-07-21_16-23-18.png differ
diff --git a/docs/gdevelop5/6_amazon_app_submission.png b/docs/gdevelop5/6_amazon_app_submission.png
index 2f86a031be0..94575d14a33 100644
Binary files a/docs/gdevelop5/6_amazon_app_submission.png and b/docs/gdevelop5/6_amazon_app_submission.png differ
diff --git a/docs/gdevelop5/7d244ad-2016-07-21_16-12-58.png b/docs/gdevelop5/7d244ad-2016-07-21_16-12-58.png
index 389b149c89f..9f000da655e 100644
Binary files a/docs/gdevelop5/7d244ad-2016-07-21_16-12-58.png and b/docs/gdevelop5/7d244ad-2016-07-21_16-12-58.png differ
diff --git a/docs/gdevelop5/7zip-add-to-archive.png b/docs/gdevelop5/7zip-add-to-archive.png
index 73e85a85f8d..c2ac31f7ac8 100644
Binary files a/docs/gdevelop5/7zip-add-to-archive.png and b/docs/gdevelop5/7zip-add-to-archive.png differ
diff --git a/docs/gdevelop5/9_amazon_pricing.png b/docs/gdevelop5/9_amazon_pricing.png
index eb9bdea0657..5b42a6e97a9 100644
Binary files a/docs/gdevelop5/9_amazon_pricing.png and b/docs/gdevelop5/9_amazon_pricing.png differ
diff --git a/docs/gdevelop5/GDevelop-Solutions-Provider-Program.md b/docs/gdevelop5/GDevelop-Solutions-Provider-Program.md
index d1cc7acf9a3..513162a26f5 100644
--- a/docs/gdevelop5/GDevelop-Solutions-Provider-Program.md
+++ b/docs/gdevelop5/GDevelop-Solutions-Provider-Program.md
@@ -11,11 +11,11 @@ The GDevelop Solutions Provider Program is an initiative designed to foster coll
The program functions on a dual basis:
#### For Professionals:
-GDevelop users operating as freelancers, consultants, agencies or companies can apply to become a GDevelop Solutions Provider. To be eligible, candidates must:
+GDevelop users operating as freelancers, consultants, agencies, or companies can apply to become a GDevelop Solutions Provider. To be eligible, candidates must:
-- Have legal age to operate as a professional in their country
-- Demonstrate active registration and/or tax compliance as a professional entity
-- Express willingness to engage in projects.
+- Be of legal age to operate as a professional in their country
+- Demonstrate active registration and tax compliance as a professional entity
+- Express a willingness to engage in projects.
Accepted partners gain access to exclusive project opportunities from clients seeking GDevelop expertise. Partners also benefit from increased industry recognition, networking prospects within the GDevelop ecosystem, and the ability to connect with potential clients.
@@ -50,11 +50,11 @@ The validation process is as follows:
1. The candidate fills the online form with their professional profile
2. The GDevelop team will look at the application and contact the candidate if more information is needed
-3. A possible video call between a GDevelop member and the candidate might be required to better seize the profile's specialization.
+3. A video call with a GDevelop team member might be required to better understand the candidate's specialization.
4. If the profile is validated, the professional will join GDevelop's channels where they'll be able to see the projects hiring.
-**Once a GDevelop Professional establishes contact with a Client, the GDevelop team leaves the process. From that moment the Professional and the Client remain responsible for the Project's management, delivery and billing process.
-GDevelop **does not** take any cut nor percentage for head hunting during 2023 and 2024.*
+**Once a GDevelop Professional establishes contact with a Client, the GDevelop team steps out of the process. From that moment on, the Professional and the Client remain responsible for the project's management, delivery, and billing.
+GDevelop **does not** take any cut or percentage for head hunting during 2023 and 2024.*
### Legal requirements
To join the GDevelop Solutions Provider Program as a professional, candidates must meet the following legal requisites:
@@ -73,16 +73,16 @@ To contact a GDevelop specialist send an email to [business@gdevelop.io](mailto:
- Budget: Clearly specify your project budget or budget range to help the specialist understand your expectations.
- Timeline: Communicate your project's expected timeline, including key milestones or deadlines.
- Contact Information: Include your contact details, such as your name, email address, or phone number, to facilitate effective communication.
-- Preferred Language: Specify if you have a prefered language
+- Preferred Language: Specify if you have a preferred language
-**Plese consider sending your project at least **2 weeks** before the desired starting date so the professionals have the time to see it.*
+**Please consider sending your project at least **2 weeks** before the desired start date so professionals have time to review it.*
Once the project information is complete, the GDevelop team will publish the project for the Professionals to see.
-Based on the project's specificities, some professional profiles might be suggested by the GDevelop team as the project brief gets published.
-The client is in **no obligation** to choose from the recommended profiles.
+Based on the project's specificities, some professional profiles might be suggested by the GDevelop team as the project brief is published.
+The client is under **no obligation** to choose from the recommended profiles.
-**Once a Project Owner stablished contact with a GDevelop Professional, the GDevelop team leaves the process. From that moment the Professional and the Project Owner remain responsible for the Project's management, delivery and billing process.
-GDevelop **does not** take any cut nor percentage for head hunting during 2023 and 2024.*
+**Once a Project Owner has established contact with a GDevelop Professional, the GDevelop team steps out of the process. From that moment on, the Professional and the Project Owner remain responsible for the project's management, delivery, and billing.
+GDevelop **does not** take any cut or percentage for head hunting during 2023 and 2024.*
[Contact a GDevelop Specialist](mailto:business@gdevelop.io){ .md-button .md-button--primary }
@@ -92,15 +92,15 @@ GDevelop **does not** take any cut nor percentage for head hunting during 2023 a
**1. I work in an agency that uses GDevelop. Can I register the agency where I work?**
-Yes, you can register your agency with their permision.
+Yes, you can register your agency with their permission.
**2. Can GDevelop help me with invoices or contracts for my clients?**
-No, GDevelop will not assist with project management ressources once the contact between the Client and the Professional is stablished.
+No, GDevelop will not assist with project management resources once contact between the Client and the Professional is established.
**3. Can I still work as a professional if I don't have the legal requirements?**
-You can not be listed as a GDevelop Professional on GDevelop's official Solutions Providers if you do not have the minimim legal requirements.
+You cannot be listed as a GDevelop Professional on GDevelop's official Solutions Providers if you do not meet the minimum legal requirements.
However, you are always welcome to join [the GDevelop Advocate's program](https://gdevelop.io/page/community-advocate).
@@ -108,7 +108,7 @@ However, you are always welcome to join [the GDevelop Advocate's program](https:
**1. Are contracts and invoices between the two parts managed by GDevelop?**
-No, GDevelop will not assist with project management ressources once the contact between the Client and the Professional is stablished.
+No, GDevelop will not assist with project management resources once contact between the Client and the Professional is established.
**2. What kind of professionals can I expect to find on GDevelop's Solutions Provider Program?**
diff --git a/docs/gdevelop5/about_translations.md b/docs/gdevelop5/about_translations.md
index ae48dde14f2..fc476219453 100644
--- a/docs/gdevelop5/about_translations.md
+++ b/docs/gdevelop5/about_translations.md
@@ -1,8 +1,10 @@
---
title: About translations
---
+
# About translations
-Translations are written by volunteers. If you're a native speaker or fluent in another language, you are welcome to create an account on Github then submit a Pull Request on this repository to edit or create the pages related to your language. You will find out the [other languages in this folder](https://github.com/GDevelopApp/GDevelop-documentation/tree/main/docs).
+Keeping translations up to date with the documentation is challenging, so translated files are not committed to the repository.
+Instead, we rely on Google Translate to provide up-to-date translations of the documentation.
-In case of doubts or questions, [open an issue here](https://github.com/GDevelopApp/GDevelop-documentation/issues), a staff member will get back to you.
\ No newline at end of file
+If you have any questions, [open an issue here](https://github.com/GDevelopApp/GDevelop-documentation/issues) and a staff member will get back to you.
diff --git a/docs/gdevelop5/add-behavior-list.png b/docs/gdevelop5/add-behavior-list.png
index 1650dfc1b46..9df460c0157 100644
Binary files a/docs/gdevelop5/add-behavior-list.png and b/docs/gdevelop5/add-behavior-list.png differ
diff --git a/docs/gdevelop5/all-features/.pages b/docs/gdevelop5/all-features/.pages
new file mode 100644
index 00000000000..9d8856e6df8
--- /dev/null
+++ b/docs/gdevelop5/all-features/.pages
@@ -0,0 +1,90 @@
+nav:
+ - index.md
+ - Ads:
+ - AdMob: admob
+ - Advanced:
+ - Asynchronous functions: async
+ - Debugger Tools: debugger-tools
+ - Event functions: advanced
+ - Events and control flow: common-instructions
+ - External layouts: external-layouts
+ - File system: filesystem
+ - Linked objects: linked-objects
+ - Screenshot: screenshot
+ - Shape painter: primitive-drawing
+ - Spine (experimental): spine-object
+ - Storage: storage
+ - System information: system-info
+ - Tile map: tilemap
+ - Audio:
+ - Sounds and music: audio
+ - Spatial sound: spatial-sound
+ - Camera:
+ - Layers and cameras: camera
+ - Game mechanic:
+ - Destroy Outside Screen Behavior: destroy-outside-behavior
+ - Dialogue Tree: dialogue-tree
+ - Inventories: inventory
+ - Save State (experimental): save-state
+ - General:
+ - 3D: scene3d
+ - Conversion: common-conversions
+ - Flippable objects: flippable-capability
+ - Mathematical tools: mathematical-tools
+ - Objects: object
+ - Objects containing a text: text-container-capability
+ - Objects with animations: animatable-capability
+ - Objects with effects: effect-capability
+ - Objects with opacity: opacity-capability
+ - Panel Sprite (9-patch) Object: panel-sprite-object
+ - Resizable objects: resizable-capability
+ - Scalable objects: scalable-capability
+ - Scene: scene
+ - Sprite: sprite
+ - Text manipulation: string-instructions
+ - Tiled Sprite Object: tiled-sprite-object
+ - Timers and time: time
+ - Variables: variables
+ - Input:
+ - Device sensors: device-sensors
+ - Keyboard: keyboard
+ - Mouse and touch: mouse-touch
+ - Movement:
+ - 2D Physics Engine: physics2
+ - 3D physics engine: physics3d
+ - Pathfinding behavior: pathfinding-behavior
+ - Physics Engine (deprecated): physics-behavior
+ - Platform behavior: platform-behavior
+ - Top-down movement: top-down-movement-behavior
+ - Network:
+ - Firebase: firebase
+ - Network: network
+ - P2P: p2p
+ - Players:
+ - Leaderboards: leaderboards
+ - Multiplayer: multiplayer
+ - Player Authentication: player-authentication
+ - Text:
+ - BBCode Text Object: bbtext
+ - Bitmap Text: bitmap-text
+ - Text object: text-object
+ - Third-party:
+ - Facebook Instant Games: facebook-instant-games
+ - Shopify: shopify
+ - Steamworks (Steam) (experimental): steamworks
+ - User interface:
+ - Advanced window management: advanced-window
+ - Anchor: anchor-behavior
+ - Device vibration: device-vibration
+ - Draggable Behavior: draggable-behavior
+ - Game window and resolution: window
+ - Text entry object: text-entry-object
+ - Text Input: text-input
+ - Video: video
+ - Visual effect:
+ - Effects: effects
+ - Lights: lighting
+ - Particle system: particle-system
+ - Tweening: tween
+ - ...
+ - expressions-reference.md
diff --git a/docs/gdevelop5/all-features/admob-account-approved.png b/docs/gdevelop5/all-features/admob-account-approved.png
index 01cabe2f20e..0704e8ef1ff 100644
Binary files a/docs/gdevelop5/all-features/admob-account-approved.png and b/docs/gdevelop5/all-features/admob-account-approved.png differ
diff --git a/docs/gdevelop5/all-features/admob-adunit-id.png b/docs/gdevelop5/all-features/admob-adunit-id.png
index c433adbb158..a28214cfcc8 100644
Binary files a/docs/gdevelop5/all-features/admob-adunit-id.png and b/docs/gdevelop5/all-features/admob-adunit-id.png differ
diff --git a/docs/gdevelop5/all-features/admob-app-created.png b/docs/gdevelop5/all-features/admob-app-created.png
index 68e65276dad..fe994bde2e4 100644
Binary files a/docs/gdevelop5/all-features/admob-app-created.png and b/docs/gdevelop5/all-features/admob-app-created.png differ
diff --git a/docs/gdevelop5/all-features/admob-banner-setup.png b/docs/gdevelop5/all-features/admob-banner-setup.png
index eae09823b3b..c28f3d1341a 100644
Binary files a/docs/gdevelop5/all-features/admob-banner-setup.png and b/docs/gdevelop5/all-features/admob-banner-setup.png differ
diff --git a/docs/gdevelop5/all-features/admob-choose-ads-type.png b/docs/gdevelop5/all-features/admob-choose-ads-type.png
index 2b86da293fc..182af2760a0 100644
Binary files a/docs/gdevelop5/all-features/admob-choose-ads-type.png and b/docs/gdevelop5/all-features/admob-choose-ads-type.png differ
diff --git a/docs/gdevelop5/all-features/admob-left-menu-add-app.png b/docs/gdevelop5/all-features/admob-left-menu-add-app.png
index 077b9f3ca99..dda047863b0 100644
Binary files a/docs/gdevelop5/all-features/admob-left-menu-add-app.png and b/docs/gdevelop5/all-features/admob-left-menu-add-app.png differ
diff --git a/docs/gdevelop5/all-features/admob-payments-menu.png b/docs/gdevelop5/all-features/admob-payments-menu.png
index 83c06da20c4..5849419975f 100644
Binary files a/docs/gdevelop5/all-features/admob-payments-menu.png and b/docs/gdevelop5/all-features/admob-payments-menu.png differ
diff --git a/docs/gdevelop5/all-features/admob/pasted/20210128-231626.png b/docs/gdevelop5/all-features/admob/pasted/20210128-231626.png
index 5134b6bfa2f..c4782696e24 100644
Binary files a/docs/gdevelop5/all-features/admob/pasted/20210128-231626.png and b/docs/gdevelop5/all-features/admob/pasted/20210128-231626.png differ
diff --git a/docs/gdevelop5/all-features/admob/pasted/20210131-221349.png b/docs/gdevelop5/all-features/admob/pasted/20210131-221349.png
index 3aa23691b39..756e64c9d8d 100644
Binary files a/docs/gdevelop5/all-features/admob/pasted/20210131-221349.png and b/docs/gdevelop5/all-features/admob/pasted/20210131-221349.png differ
diff --git a/docs/gdevelop5/all-features/admob/pasted/20210131-221724.png b/docs/gdevelop5/all-features/admob/pasted/20210131-221724.png
index 8d6c6b76384..47175765753 100644
Binary files a/docs/gdevelop5/all-features/admob/pasted/20210131-221724.png and b/docs/gdevelop5/all-features/admob/pasted/20210131-221724.png differ
diff --git a/docs/gdevelop5/all-features/admob/pasted/20210131-221920.png b/docs/gdevelop5/all-features/admob/pasted/20210131-221920.png
index a05ec4bd49c..ffb76e498d3 100644
Binary files a/docs/gdevelop5/all-features/admob/pasted/20210131-221920.png and b/docs/gdevelop5/all-features/admob/pasted/20210131-221920.png differ
diff --git a/docs/gdevelop5/all-features/admob/reference.md b/docs/gdevelop5/all-features/admob/reference.md
index 2ab00852807..cbd02a2e686 100644
--- a/docs/gdevelop5/all-features/admob/reference.md
+++ b/docs/gdevelop5/all-features/admob/reference.md
@@ -7,35 +7,120 @@ Allow to display AdMob banners, app open, interstitials, rewarded interstitials
**Mark the reward of the rewarded interstitial as claimed**
Mark the rewarded interstitial reward as claimed. Useful if you used the condition to check if the reward was given to the user without clearing the reward.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::ClaimRewardedInterstitialReward`.
+
**Mark the reward of the rewarded video as claimed**
Mark the rewarded video reward as claimed. Useful if you used the condition to check if the reward was given to the user without clearing the reward.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::ClaimRewardedVideoReward`.
+
**Hide banner**
Hide the banner. You can show it again with the corresponding action.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::HideBanner`.
+
+**Initialize AdMob manually**
+Initialize AdMob manually. This will trigger the consent dialog if needed, and then load the ads.
+Use this action if you have disabled the auto init and want to control when the consent dialog will be shown.
+
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::InitializeAdmob`.
+
**Load app open**
Start loading an app open (that can be displayed automatically when the loading is finished).
If test mode is set, a test app open will be displayed.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Android app open ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/9257395921"` for loading a test app open.
+ - Parameter 1 (🔤 String): iOS app open ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/5575463023"` for loading a test app open.
+ - Parameter 2 (❓ Yes or No): Display in landscape? (portrait otherwise)
+ - Parameter 3 (❓ Yes or No): Displayed automatically when loading is finished?
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::LoadAppOpen`.
+
**Load interstitial**
Start loading an interstitial (that can be displayed automatically when the loading is finished).
If test mode is set, a test interstitial will be displayed.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Android interstitial ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/1033173712"` for loading a test interstitial.
+ - Parameter 1 (🔤 String): iOS interstitial ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/4411468910"` for loading a test interstitial.
+ - Parameter 2 (❓ Yes or No): Displayed automatically when loading is finished?
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::LoadInterstitial`.
+
**Load rewarded interstitial**
Start loading a rewarded interstitial (that can be displayed automatically when the loading is finished).
If test mode is set, a test rewarded interstitial will be displayed.
This is similar to a rewarded video, but can be displayed at any time, and the user can close it.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Android rewarded interstitial ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/5354046379"` for loading a test rewarded interstitial.
+ - Parameter 1 (🔤 String): iOS interstitial ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/6978759866"` for loading a test rewarded interstitial.
+ - Parameter 2 (❓ Yes or No): Displayed automatically when loading is finished?
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::LoadRewardedInterstitial`.
+
**Load rewarded video**
Start loading a reward video (that can be displayed automatically when the loading is finished).
If test mode is set, a test video will be displayed.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Android reward video ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/5224354917"` for loading a test rewarded video.
+ - Parameter 1 (🔤 String): iOS reward video ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/1712485313"` for loading a test rewarded video.
+ - Parameter 2 (❓ Yes or No): Displayed automatically when loading is finished?
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::LoadRewardedVideo`.
+
+**Prevent AdMob auto initialization**
+Prevent AdMob from initializing automatically. You will need to call "Initialize AdMob" action manually.
+This is useful if you want to control when the consent dialog will be shown (for example, after the user has accepted your game terms).
+
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::PreventAdmobAutoInitialization`.
+
**Enable test mode**
Activate or deactivate the test mode ("development" mode).
When activated, tests ads will be served instead of real ones.
It is important to enable test ads during development so that you can click on them without charging advertisers. If you click on too many ads without being in test mode, you risk your account being flagged for invalid activity.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Enable test mode?
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::SetTestMode`.
+
**Configure the banner**
Configure a banner, which can then be displayed.
If a banner is already displayed, it will be removed
@@ -43,92 +128,289 @@ If test mode is set, a test banner will be displayed.
Once a banner is positioned (at the top or bottom of the game), it can't be moved anymore.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Android banner ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/6300978111"` for showing a test banner.
+ - Parameter 1 (🔤 String): iOS banner ID
+ Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/2934735716"` for showing a test banner.
+ - Parameter 2 (❓ Yes or No): Display at top? (bottom otherwise)
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::SetupBanner`.
+
**Show app open**
Show the app open that was loaded. Will work only when the app open is fully loaded.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::ShowAppOpen`.
+
**Show banner**
Show the banner that was previously set up.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::ShowBanner`.
+
**Show interstitial**
Show the interstitial that was loaded. Will work only when the interstitial is fully loaded.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::ShowInterstitial`.
+
**Show rewarded interstitial**
Show the rewarded interstitial that was loaded. Will work only when the rewarded interstitial is fully loaded.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::ShowRewardedInterstitial`.
+
**Show rewarded video**
Show the reward video that was loaded. Will work only when the video is fully loaded.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdMob::ShowRewardedVideo`.
+
+
## Conditions
+**AdMob initialized**
+Check if AdMob has been initialized.
+
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::AdmobInitialized`.
+
+**AdMob initializing**
+Check if AdMob is initializing.
+
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::AdmobInitializing`.
+
**App open errored**
Check if there was an error while loading the app open.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::AppOpenErrored`.
+
**App open loading**
Check if an app open is currently loading.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::AppOpenLoading`.
+
**App open ready**
Check if an app open is ready to be displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::AppOpenReady`.
+
**App open showing**
Check if there is an app open being displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::AppOpenShowing`.
+
**Banner configured**
Check if there is a banner correctly configured ready to be shown.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::BannerConfigured`.
+
**Banner had an error**
Check if there was a error while displaying a banner.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::BannerErrored`.
+
**Banner loaded**
Check if there is a banner correctly loaded ready to be shown.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::BannerLoaded`.
+
**Banner showing**
Check if there is a banner being displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::BannerShowing`.
+
**Interstitial had an error**
Check if there was a error while loading the interstitial.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::InterstitialErrored`.
+
**Interstitial loading**
Check if an interstitial is currently loading.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::InterstitialLoading`.
+
**Interstitial ready**
Check if an interstitial is ready to be displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::InterstitialReady`.
+
**Interstitial showing**
Check if there is an interstitial being displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::InterstitialShowing`.
+
**Rewarded interstitial had an error**
Check if there was a error while loading the rewarded interstitial.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedInterstitialErrored`.
+
**Rewarded interstitial loading**
Check if a rewarded interstitial is currently loading.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedInterstitialLoading`.
+
**Rewarded interstitial ready**
Check if a rewarded interstitial is ready to be displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedInterstitialReady`.
+
**Rewarded Interstitial reward received**
Check if the reward of the rewarded interstitial was given to the user.
You can mark this reward as cleared, so that the condition will be false and you can show later another rewarded interstitial.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Clear the reward (needed to show another rewarded interstitial)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedInterstitialRewardReceived`.
+
**Rewarded interstitial showing**
Check if there is a rewarded interstitial being displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedInterstitialShowing`.
+
**Rewarded video had an error**
Check if there was a error while loading the rewarded video.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedVideoErrored`.
+
**Rewarded video loading**
Check if a rewarded video is currently loading.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedVideoLoading`.
+
**Rewarded video ready**
Check if a rewarded video is ready to be displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedVideoReady`.
+
**Rewarded Video reward received**
Check if the reward of the rewarded video was given to the user.
You can mark this reward as cleared, so that the condition will be false and you can show later another rewarded video.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Clear the reward (needed to show another rewarded video)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedVideoRewardReceived`.
+
**Rewarded video showing**
Check if there is a rewarded video being displayed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdMob::RewardedVideoShowing`.
+
+
+
+
---
-*This page is an auto-generated reference page about the **AdMob** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The AdMob extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **AdMob** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/advanced-conditions/index.md b/docs/gdevelop5/all-features/advanced-conditions/index.md
index d9e31d4e729..38fccba0bfd 100644
--- a/docs/gdevelop5/all-features/advanced-conditions/index.md
+++ b/docs/gdevelop5/all-features/advanced-conditions/index.md
@@ -19,7 +19,7 @@ If the "**OR**" condition is used in an event, the actions are performed when on
!!! warning
- The OR condition has a special behavior regarding the [object filtering logic of GDevelop](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials/basic-game-making-concepts#events_and_how_objects_are_selected_by_these_events). The objects listed under it are _unselected_ by GDevelop if their condition is not met, so actions specific to these objects may not work. In some cases, using "Pick all instances" on the action side will fix things. In other cases, replacing the OR will be necessary.
+ The OR condition has a special behavior regarding the [object filtering logic of GDevelop](/gdevelop5/events/object-picking). The objects listed under it are _unselected_ by GDevelop if their condition is not met, so actions specific to these objects may not work. In some cases, using "Pick all instances" on the action side will fix things. In other cases, replacing the OR will be necessary.
## Not logical operation

@@ -33,7 +33,7 @@ Whenever the "**Trigger once while true**" condition is used, the actions for th
!!! warning
- Trigger once conditions are not checked per instance. Within a [for each object](/gdevelop5/events/foreach) event, [object variables](/gdevelop5/all-features/variables/object-variables/) must be used to follow the state of object instances one by one.
+ As explained in the [trigger once](/gdevelop5/all-features/advanced-conditions/trigger-once) page, "Trigger once" conditions are not checked per instance. Until at least one instance met the conditions, the action won't be triggered for any instance.
## Compare two numbers

diff --git a/docs/gdevelop5/all-features/advanced-conditions/not-condition.png b/docs/gdevelop5/all-features/advanced-conditions/not-condition.png
index 24a5fad5166..650240fb2af 100644
Binary files a/docs/gdevelop5/all-features/advanced-conditions/not-condition.png and b/docs/gdevelop5/all-features/advanced-conditions/not-condition.png differ
diff --git a/docs/gdevelop5/all-features/advanced-conditions/trigger-once/index.md b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/index.md
new file mode 100644
index 00000000000..7544d6ec3e0
--- /dev/null
+++ b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/index.md
@@ -0,0 +1,36 @@
+---
+title: Trigger Once Condition
+---
+# Trigger Once Condition
+
+When the "**Trigger once while true**" condition is used, the event actions are executed only once as long as the specified conditions are met.
+
+## Simulating the "Trigger Once" Condition with Variables
+
+The "trigger once" condition maintains a state that tracks whether the conditions above it were met in the previous frame. If the conditions are met:
+- If the conditions were **previously met**, the actions are **not triggered**.
+- If the conditions were **not previously met**, the actions are **triggered**.
+
+The following event...
+
+
+
+...can be replicated using variables:
+
+
+
+This example demonstrates how the "trigger once" condition functions. However, this is primarily to help understand its limitations, as explained in the next section.
+
+## Triggering Actions Once Per Object Instance
+
+The "trigger once" condition is **not evaluated per instance**. If at least one instance meets the conditions, the action will not be triggered for any other instances, even if they meet the conditions later.
+
+For example, if you want to play a "surprised" animation when the player gets close to an enemy, the "trigger once" condition may work if enemies are spaced far apart. However, if the player is already being chased by one enemy, other nearby enemies will not trigger the "surprised" animation.
+
+To handle this, you need to use [object variables](/gdevelop5/all-features/variables/object-variables/) to track the state of each object instance individually. While boolean variables can be used, string variables are often clearer, especially when objects have more than two possible states.
+
+
+
+!!! info
+
+ For a more detailed explanation, refer to the [finite state machines](/gdevelop5/tutorials/finite_state_machine) page.
diff --git a/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-fsm.png b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-fsm.png
new file mode 100644
index 00000000000..e75714d84b2
Binary files /dev/null and b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-fsm.png differ
diff --git a/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-variables.png b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-variables.png
new file mode 100644
index 00000000000..64e836d7632
Binary files /dev/null and b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-variables.png differ
diff --git a/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-key-pressed.png b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-key-pressed.png
new file mode 100644
index 00000000000..7fc8bf76a85
Binary files /dev/null and b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-key-pressed.png differ
diff --git a/docs/gdevelop5/all-features/advanced-window/reference.md b/docs/gdevelop5/all-features/advanced-window/reference.md
index efd1408e7cd..4edc6f80600 100644
--- a/docs/gdevelop5/all-features/advanced-window/reference.md
+++ b/docs/gdevelop5/all-features/advanced-window/reference.md
@@ -7,104 +7,374 @@ Provides advanced features related to the game window positioning and interactio
**Enable content protection**
Enables or disables the content protection mode. This should prevent screenshots of the game from being taken.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Enable content protection?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::EnableContentProtection`.
+
**Enable the window**
Enables or disables the window.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Enable window?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::EnableWindow`.
+
**Flash the window**
Make the window flash or end flashing.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Flash the window?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::Flash`.
+
**Window focus**
Make the window gain or lose focus.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Focus the window?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::Focus`.
+
**Maximize the window**
Maximize or unmaximize the window.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Maximize window?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::Maximize`.
+
**Minimize the window**
Minimize or unminimize the window.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Minimize window?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::Minimize`.
+
**Make the window always on top**
Puts the window constantly above all other windows.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Enable always on top?
+ - Parameter 1 (🔤 String): Level
+ The level is like a layer in GDevelop but for the OS. The further down the list, the higher it will be. When disabling always on top, the level will be set to normal. From "floating" to "status" included, the window is placed below the Dock on macOS and below the taskbar on Windows. Starting from "pop-up-menu", it is shown above the Dock on macOS and above the taskbar on Windows. This parameter is ignored on linux. (one of: "normal", "floating", "torn-off-menu", "modal-panel", "main-menu", "status", "pop-up-menu", "screen-saver")
+
+ > Technical note: parameter 2 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetAlwaysOnTop`.
+
**Allow closing**
Enables or disables closing of the window by the user.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Allow closing?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetClosable`.
+
**Allow focusing**
Allow or disallow the user to focus the window.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Allow focus?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetFocusable`.
+
**Allow full-screening**
Enables or disables full-screening of the window by the user.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Allow full-screening?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetFullScreenable`.
+
**Enable window shadow**
Enables or disables the window shadow.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Enable shadow?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetHasShadow`.
+
**Enable kiosk mode**
Puts the window in kiosk mode. This prevents the user from exiting fullscreen.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Enable kiosk mode?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetKiosk`.
+
**Allow maximizing**
Enables or disables maximizing of the window by the user.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Allow maximizing?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetMaximizable`.
+
**Allow minimizing**
Enables or disables minimizing of the window by the user.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Allow minimizing?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetMinimizable`.
+
**Allow moving**
Enables or disables moving of the window by the user.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Allow moving?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetMovable`.
+
**Window opacity**
Changes the window opacity.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔢 Number): New opacity
+ A number between 0 (fully transparent) and 1 (fully opaque).
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetOpacity`.
+
**Allow resizing**
Enables or disables resizing of the window by the user.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Allow resizing?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetResizable`.
+
**Window position**
Changes the window position.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔢 Number): X position
+ - Parameter 1 (🔢 Number): Y position
+
+ > Technical note: parameter 2 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::SetWindowPosition`.
+
**Window visibility**
Make the window visible or invisible.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ Yes or No): Show window?
+
+ > Technical note: parameter 1 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AdvancedWindow::Show`.
+
+
## Conditions
**Shadow enabled**
Checks if the window currently has it's shadow enabled.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::HasShadow`.
+
**Window always on top**
Checks if the window is always on top.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsAlwaysOnTop`.
+
**Window closable**
Checks if the window can be closed.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsClosable`.
+
**Window focused**
Checks if the window is focused.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsFocused`.
+
**Window full-screenable**
Checks if the window can be full-screened.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsFullScreenable`.
+
**Kiosk mode**
Checks if the window is currently in kiosk mode.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsKiosk`.
+
**Window maximizable**
Checks if the window can be maximized.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsMaximizable`.
+
**Window maximized**
Checks if the window is maximized.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsMaximized`.
+
**Window minimizable**
Checks if the window can be minimized.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsMinimizable`.
+
**Window minimized**
Checks if the window is minimized.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsMinimized`.
+
**Window movable**
Checks if the window can be moved.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsMovable`.
+
**Window resizable**
Checks if the window can be resized.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsResizable`.
+
**Window visible**
Checks if the window is visible.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsVisible`.
+
**Window enabled**
Checks if the window is enabled.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AdvancedWindow::IsWindowEnabled`.
+
+
## Expressions
| Expression | Description | |
@@ -113,5 +383,10 @@ Checks if the window is enabled.
| `AdvancedWindow::WindowX()` | Returns the current window X position. ||
| `AdvancedWindow::WindowY()` | Returns the current window Y position. ||
+
+
---
-*This page is an auto-generated reference page about the **Advanced window management** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Advanced window management extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Advanced window management** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/advanced/reference.md b/docs/gdevelop5/all-features/advanced/reference.md
index faa78f73a60..b7cd2fc0fe9 100644
--- a/docs/gdevelop5/all-features/advanced/reference.md
+++ b/docs/gdevelop5/all-features/advanced/reference.md
@@ -7,30 +7,57 @@ Advanced control features for functions made with events.
**Copy function parameter to variable**
Copy a function parameter (also called "argument") to a variable. The parameter type must be a variable.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 Function Parameter Name (String)): Parameter name
+ - Parameter 1: 🗄️ Any variable
+
+ > Technical note: this action internal type (in GDevelop JSON) is `CopyArgumentToVariable2`.
+
**Copy variable to function parameter**
Copy a variable to function parameter (also called "argument"). The parameter type must be a variable.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 Function Parameter Name (String)): Parameter name
+ - Parameter 1: 🗄️ Any variable
+
+ > Technical note: this action internal type (in GDevelop JSON) is `CopyVariableToArgument2`.
+
**Set condition return value**
Set the return value of the Condition events function to either true (condition will pass) or false.
+??? quote "See parameters & details"
+
+ - Parameter 0 (❓ True or False): Should the condition be true or false?
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetReturnBoolean`.
+
**Set number return value**
Set the return value of the events function to the specified number (to be used with "Expression" functions).
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔢 Number): The number to be returned
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetReturnNumber`.
+
**Set text return value**
Set the return value of the events function to the specified text (to be used with "String Expression" functions).
-## Conditions
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): The text to be returned
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetReturnString`.
-**Compare function parameter value**
-Compare function parameter (also called "argument") value.
-**Compare function parameter text**
-Compare function parameter (also called "argument") text.
-**Check if a function parameter is set to true (or yes)**
-Check if the specified function parameter (also called "argument") is set to True or Yes. If the argument is a string, an empty string is considered as "false". If it's a number, 0 is considered as "false".
---
-*This page is an auto-generated reference page about the **Event functions** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Event functions extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Event functions** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/anchor-behavior/reference.md b/docs/gdevelop5/all-features/anchor-behavior/reference.md
index f0381cc677e..15d2e033ffa 100644
--- a/docs/gdevelop5/all-features/anchor-behavior/reference.md
+++ b/docs/gdevelop5/all-features/anchor-behavior/reference.md
@@ -8,8 +8,32 @@ Anchor objects to the window's bounds. [Read more explanations about it.](/gdeve
Anchor objects to the window's bounds.
+### Behavior properties
+
+- **Bottom edge** (Choice, one of: "None", "WindowTop", "WindowCenter", "WindowBottom", "Proportional"). Anchor the bottom edge of the object on Y axis. Default value is `None`.
+- **Left edge** (Choice, one of: "None", "WindowLeft", "WindowCenter", "WindowRight", "Proportional"). Anchor the left edge of the object on X axis. Default value is `None`.
+- **Anchor relatively to original window size** (🔘 Boolean). otherwise, objects are anchored according to the window size when the object is created. Default value is `true`.
+- **Right edge** (Choice, one of: "None", "WindowLeft", "WindowCenter", "WindowRight", "Proportional"). Anchor the right edge of the object on X axis. Default value is `None`.
+- **Top edge** (Choice, one of: "None", "WindowTop", "WindowCenter", "WindowBottom", "Proportional"). Anchor the top edge of the object on Y axis. Default value is `None`.
+- **Stretch object when anchoring right or bottom edge (deprecated, it's recommended to leave this unchecked and anchor both sides if you want Sprite to stretch instead.)** (🔘 Boolean). Default value is `false`.
+
+??? quote "See internal technical details"
+
+
+ - **Bottom edge** is stored as `bottomEdgeAnchor` (Choice). Default value is `None`.
+ - **Left edge** is stored as `leftEdgeAnchor` (Choice). Default value is `None`.
+ - **Anchor relatively to original window size** is stored as `relativeToOriginalWindowSize` (Boolean). Default value is `true`.
+ - **Right edge** is stored as `rightEdgeAnchor` (Choice). Default value is `None`.
+ - **Top edge** is stored as `topEdgeAnchor` (Choice). Default value is `None`.
+ - **Stretch object when anchoring right or bottom edge (deprecated, it's recommended to leave this unchecked and anchor both sides if you want Sprite to stretch instead.)** is stored as `useLegacyBottomAndRightAnchors` (Boolean). Default value is `false`.
+
_No expressions for this behavior._
+
+
---
-*This page is an auto-generated reference page about the **Anchor** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Anchor extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Anchor** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/animatable-capability/reference.md b/docs/gdevelop5/all-features/animatable-capability/reference.md
index 183107b06e8..cb40692016f 100644
--- a/docs/gdevelop5/all-features/animatable-capability/reference.md
+++ b/docs/gdevelop5/all-features/animatable-capability/reference.md
@@ -1,53 +1,155 @@
-# Animatable capability Reference
+# Objects with animations Reference
-Animate objects. [Read more explanations about it.](/gdevelop5/objects)
+Actions and conditions for objects having animations (sprite, 3D models...). [Read more explanations about it.](/gdevelop5/objects)
-## Animatable capability
+## Objects with animations
-Animate objects.
+Actions and conditions for objects having animations (sprite, 3D models...)..
### Behavior actions
**Pause the animation**
Pause the animation of the object.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::PauseAnimation`.
+
**Resume the animation**
Resume the animation of the object.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::PlayAnimation`.
+
**Animation elapsed time**
Change the elapsed time from the beginning of the animation (in seconds).
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Elapsed time (in seconds)
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::SetElapsedTime`.
+
**Animation (by number)**
Change the animation played by the object using the animation number (from the animations list).
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Animation index
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::SetIndex`.
+
**Animation (by name)**
Change the animation played by the object using the name of the animation.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Operator
+ - Parameter 3: 🔤 Object Animation Name (String)
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::SetName`.
+
**Animation speed scale**
Change the animation speed scale (1 = the default speed, >1 = faster and <1 = slower).
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Speed scale
+
+ > Technical note: this action internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::SetSpeedScale`.
+
+
### Behavior conditions
**Animation elapsed time**
Compare the elapsed time from the beginning of the animation (in seconds).
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Elapsed time (in seconds)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::ElapsedTime`.
+
**Animation finished**
Check if the animation being played by the Sprite object is finished.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::HasAnimationEnded`.
+
**Animation (by number)**
Compare the animation played by the object using the animation number (from the animations list).
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Animation index
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::Index`.
+
**Animation paused**
Check if the animation of an object is paused.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::IsAnimationPaused`.
+
**Animation (by name)**
Compare the animation played by the object using the name of the animation.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3: 🔤 Object Animation Name (String)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::Name`.
+
**Animation speed scale**
Compare the animation speed scale (1 = the default speed, >1 = faster and <1 = slower).
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Speed scale
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `AnimatableCapability::AnimatableBehavior::SpeedScale`.
+
+
### Behavior expressions
| Expression | Description | |
@@ -58,5 +160,10 @@ Compare the animation speed scale (1 = the default speed, >1 = faster and <1 = s
| `Object.Animation::Name()` | Return the animation played by the object using the name of the animation. ||
| `Object.Animation::SpeedScale()` | Return the animation speed scale (1 = the default speed, >1 = faster and <1 = slower). ||
+
+
---
-*This page is an auto-generated reference page about the **Animatable capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Objects with animations extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Objects with animations** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/annotation_2019-06-20_191229.png b/docs/gdevelop5/all-features/annotation_2019-06-20_191229.png
index 1acbb5f7b70..50267789817 100644
Binary files a/docs/gdevelop5/all-features/annotation_2019-06-20_191229.png and b/docs/gdevelop5/all-features/annotation_2019-06-20_191229.png differ
diff --git a/docs/gdevelop5/all-features/annotation_2019-06-20_191302.png b/docs/gdevelop5/all-features/annotation_2019-06-20_191302.png
index 5ff095a962e..2024b80d6db 100644
Binary files a/docs/gdevelop5/all-features/annotation_2019-06-20_191302.png and b/docs/gdevelop5/all-features/annotation_2019-06-20_191302.png differ
diff --git a/docs/gdevelop5/all-features/annotation_2019-06-29_174027.png b/docs/gdevelop5/all-features/annotation_2019-06-29_174027.png
index c53dbbe8ef8..3c05564c890 100644
Binary files a/docs/gdevelop5/all-features/annotation_2019-06-29_174027.png and b/docs/gdevelop5/all-features/annotation_2019-06-29_174027.png differ
diff --git a/docs/gdevelop5/all-features/annotation_2019-06-29_175454.png b/docs/gdevelop5/all-features/annotation_2019-06-29_175454.png
index fa12defad8e..d956b133e36 100644
Binary files a/docs/gdevelop5/all-features/annotation_2019-06-29_175454.png and b/docs/gdevelop5/all-features/annotation_2019-06-29_175454.png differ
diff --git a/docs/gdevelop5/all-features/annotation_2019-06-29_175540.png b/docs/gdevelop5/all-features/annotation_2019-06-29_175540.png
index 0c89bb99220..3407530b70d 100644
Binary files a/docs/gdevelop5/all-features/annotation_2019-06-29_175540.png and b/docs/gdevelop5/all-features/annotation_2019-06-29_175540.png differ
diff --git a/docs/gdevelop5/all-features/async/reference.md b/docs/gdevelop5/all-features/async/reference.md
index 4067f0e93b1..c85e62762dd 100644
--- a/docs/gdevelop5/all-features/async/reference.md
+++ b/docs/gdevelop5/all-features/async/reference.md
@@ -7,7 +7,21 @@ Functions that defer the execution of the events after it.
**End asynchronous function**
Mark an asynchronous function as finished. This will allow the actions and subevents following it to be run.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BuiltinAsync::ResolveAsyncEventsFunction`.
+
+
+
+
---
-*This page is an auto-generated reference page about the **Asynchronous functions** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Asynchronous functions extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Asynchronous functions** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/audio/audio-resource-preload-options.png b/docs/gdevelop5/all-features/audio/audio-resource-preload-options.png
index 2007184aff9..edff623633a 100644
Binary files a/docs/gdevelop5/all-features/audio/audio-resource-preload-options.png and b/docs/gdevelop5/all-features/audio/audio-resource-preload-options.png differ
diff --git a/docs/gdevelop5/all-features/audio/index.md b/docs/gdevelop5/all-features/audio/index.md
index 5833eeb9c99..38816455b3a 100644
--- a/docs/gdevelop5/all-features/audio/index.md
+++ b/docs/gdevelop5/all-features/audio/index.md
@@ -66,16 +66,36 @@ When a new scene starts, by default, sounds and music are stopped. If you want t
## Using channels
-When using the "Play a sound" or "Play a music file" action, audio files are played immediately. On completion, they are removed from memory. Looping is an exception. When you set the action to loop the audio file, it will be played forever (its' an "endless loop"). You must use the action to stop all sounds or music to stop them.
+When using the "Play a sound" or "Play a music file" action, audio files are played immediately. On completion, they are removed from memory. Looping is an exception. When you set the action to loop the audio file, it will be played forever (it's an "endless loop"). You must use the action to stop all sounds or music to stop them.
If you want more control over sounds, use the action "**Play a sound on a channel**" or "**Play a music file on a channel.**" The action is used in the same way, except that you have to enter a channel number. This channel number can then be reused in other actions or conditions. A "channel number" can be used to check to see if a sound is being played on a channel, or it can be used to modify some properties of the music being played. For example, you could use a "channel number" to update the music volume dynamically according to the presence of enemies around the player.
+Channel numbers are arbitrary integers you choose — you can use any number you like. If you play a new sound or music on a channel that is already in use, the previous audio on that channel is stopped and replaced.
+
## Volume
Sounds and music are by default played with a volume of 100%, which is the maximum. When starting a new sound/music, you can enter a different value (between 0 and 100).
You can also use the action "Game global volume" to change the entire game's audio volume. A value of 0 means that no sounds and or music can be heard. This action is convenient when allowing the player to mute or change the game's volume. For instance, you might have a settings screen in your game that accesses the game's volume control. Mobile games usually have a button to mute the sounds of the game too.
+### Fading volume
+
+You can smoothly fade the volume of a sound or music on a channel from one level to another using the "**Fade the volume**" actions. Provide the starting volume, target volume, and duration in seconds. This is useful for fading in background music at the start of a scene, or fading out a sound before stopping it.
+
+## Playback rate (pitch)
+
+You can change the playback speed of a sound or music on a channel using the "**Set the playback speed**" actions (sometimes called pitch). A value of `1` is normal speed. Values below `1` slow the audio down (and lower the pitch), and values above `1` speed it up (and raise the pitch). The valid range is `0.5` to `4.0`.
+
+This is useful for effects like a slowed-down time feeling, or varying the pitch of repeated sound effects to make them sound less repetitive.
+
+## Seeking (playback position)
+
+You can jump to a specific position within a sound or music on a channel using the "**Set the playback position**" actions, with the position given in seconds. You can also read the current playback position using the corresponding expressions. This is useful for synchronising music to game events or resuming audio from a saved position.
+
+## Unloading audio
+
+You can explicitly unload a sound or music file from memory using the "**Unload a sound**" / "**Unload a music**" actions. This also stops any currently playing instance of that file. Use "**Unload all audio**" to stop and unload everything at once. Unloading audio you no longer need can free up memory, which is particularly useful on mobile devices.
+
## Pre-loading: improve the latency and loading times
The first time music or sound is played, there can be a lag while the audio file is being prepared if you do not preload the audio. This is because the device must:
@@ -107,6 +127,10 @@ The sound will be stopped when:
* There is **an error during the loading** (in which case it will be considered as playing for a few milliseconds, then will be deemed to be stopped as it was unable to load).
* Or you used **the action** to stop a sound or music on the channel.
+## Spatial sound
+
+For games where audio should feel positioned in a 2D or 3D space, the **Spatial Sound** extension provides actions to set the position of a sound on a channel and the position of the listener. Sounds played as *music* do not support spatialization — use *sounds on channels* instead. Volume naturally attenuates with distance: at double the reference distance, the volume is halved.
+
## Finding audio or making your own sounds
You can use the in-built sound effect creator tool called Jfxr for making sound effects: [learn how to use Jfxr here](/gdevelop5/all-features/audio/using-jfxr).
diff --git a/docs/gdevelop5/all-features/audio/pasted/20230303-230225.png b/docs/gdevelop5/all-features/audio/pasted/20230303-230225.png
index 2d0223b6aea..ad06ad3d4f5 100644
Binary files a/docs/gdevelop5/all-features/audio/pasted/20230303-230225.png and b/docs/gdevelop5/all-features/audio/pasted/20230303-230225.png differ
diff --git a/docs/gdevelop5/all-features/audio/reference.md b/docs/gdevelop5/all-features/audio/reference.md
index 3e99c5327bb..8ed13fa3287 100644
--- a/docs/gdevelop5/all-features/audio/reference.md
+++ b/docs/gdevelop5/all-features/audio/reference.md
@@ -7,129 +7,490 @@ GDevelop provides several conditions and actions to play audio files. They can b
**Fade the volume of a music played on a channel.**
Fade the volume of a music played on a channel to the specified volume within the specified duration.
-**Fade the volume of a sound played on a channel.**
-Fade the volume of a sound played on a channel to the specified volume within the specified duration.
+??? quote "See parameters & details"
-**Game global volume**
-This action modifies the global volume of the game.
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2 (🔢 Number): Final volume (0-100)
+ - Parameter 3 (🔢 Number): Fading time in seconds
-**Pitch of the music on a channel**
-This action modifies the pitch of the music on the specified channel.
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
-**Pitch of the sound of a channel**
-This action modifies the pitch (speed) of the sound on a channel.
+ > Technical note: this action internal type (in GDevelop JSON) is `FadeMusicVolume`.
-**Playing offset of the music on a channel**
-This action modifies the playing offset of the music on the specified channel
+**Fade the volume of a sound played on a channel.**
+Fade the volume of a sound played on a channel to the specified volume within the specified duration.
-**Playing offset of the sound on a channel**
-This action modifies the playing offset of the sound on a channel
+??? quote "See parameters & details"
-**Volume of the music on a channel**
-This action modifies the volume of the music on the specified channel.
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2 (🔢 Number): Final volume (0-100)
+ - Parameter 3 (🔢 Number): Fading time in seconds
-**Volume of the sound on a channel**
-This action modifies the volume of the sound on the specified channel.
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `FadeSoundVolume`.
**Pause the music of a channel**
Pause the music on the specified channel.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `PauseMusicChannel`.
+
**Pause the sound of a channel**
Pause the sound played on the specified channel.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `PauseSoundChannel`.
+
**Play a music file**
Play a music file.
+??? quote "See parameters & details"
+
+ - Parameter 1 (musicfile): Audio file (or audio resource name)
+ - Parameter 2 (❓ Yes or No): Repeat the sound
+ - Parameter 3 (🔢 Number): Volume
+ From 0 to 100, 100 by default.
+ - Parameter 4 (🔢 Number): Pitch (speed)
+ 1 by default.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `PlayMusic`.
+
**Play a music file on a channel**
Play a music file on a specific channel,
so you'll be able to interact with it later.
+??? quote "See parameters & details"
+
+ - Parameter 1 (musicfile): Audio file (or audio resource name)
+ - Parameter 2 (🔢 Number): Channel identifier
+ - Parameter 3 (❓ Yes or No): Repeat the sound
+ - Parameter 4 (🔢 Number): Volume
+ From 0 to 100, 100 by default.
+ - Parameter 5 (🔢 Number): Pitch (speed)
+ 1 by default.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `PlayMusicOnChannel`.
+
**Play a sound**
Play a sound.
+??? quote "See parameters & details"
+
+ - Parameter 1 (soundfile): Audio file (or audio resource name)
+ - Parameter 2 (❓ Yes or No): Repeat the sound
+ - Parameter 3 (🔢 Number): Volume
+ From 0 to 100, 100 by default.
+ - Parameter 4 (🔢 Number): Pitch (speed)
+ 1 by default.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `PlaySound`.
+
**Play a sound on a channel**
Play a sound (small audio file) on a specific channel,
so you'll be able to manipulate it.
+??? quote "See parameters & details"
+
+ - Parameter 1 (soundfile): Audio file (or audio resource name)
+ - Parameter 2 (🔢 Number): Channel identifier
+ - Parameter 3 (❓ Yes or No): Repeat the sound
+ - Parameter 4 (🔢 Number): Volume
+ From 0 to 100, 100 by default.
+ - Parameter 5 (🔢 Number): Pitch (speed)
+ 1 by default.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `PlaySoundOnChannel`.
+
**Preload a music file**
Preload a music file in memory.
+??? quote "See parameters & details"
+
+ - Parameter 1 (musicfile): Audio file (or audio resource name)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `PreloadMusic`.
+
**Preload a sound file**
Preload a sound file in memory.
+??? quote "See parameters & details"
+
+ - Parameter 1 (soundfile): Sound file (or sound resource name)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `PreloadSound`.
+
**Resume playing a music on a channel**
Resume playing a music on a channel that was paused.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `ResumeMusicChannel`.
+
**Resume playing a sound on a channel**
Resume playing a sound on a channel that was paused.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `ResumeSoundChannel`.
+
+**Game global volume**
+This action modifies the global volume of the game.
+
+??? quote "See parameters & details"
+
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔢 Number): Volume (0-100)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetGlobalVolume`.
+
+**Pitch of the music on a channel**
+This action modifies the pitch of the music on the specified channel.
+
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Pitch (1 by default)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetMusicChannelPitch`.
+
+**Playing offset of the music on a channel**
+This action modifies the playing offset of the music on the specified channel
+
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Position (in seconds)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetMusicChannelPlayingOffset`.
+
+**Volume of the music on a channel**
+This action modifies the volume of the music on the specified channel.
+
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Volume (0-100)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetMusicChannelVolume`.
+
+**Pitch of the sound of a channel**
+This action modifies the pitch (speed) of the sound on a channel.
+
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Pitch (1 by default)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetSoundChannelPitch`.
+
+**Playing offset of the sound on a channel**
+This action modifies the playing offset of the sound on a channel
+
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Position (in seconds)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetSoundChannelPlayingOffset`.
+
+**Volume of the sound on a channel**
+This action modifies the volume of the sound on the specified channel.
+
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Volume (0-100)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetSoundChannelVolume`.
+
**Stop the music on a channel**
Stop the music on the specified channel
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `StopMusicChannel`.
+
**Stop the sound of a channel**
Stop the sound on the specified channel.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `StopSoundChannel`.
+
**Unload all audio**
Unload all the audio in memory. This will cause every sound and music of the game to stop.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `UnloadAllAudio`.
+
**Unload a music file**
Unload a music file from memory. Unloading a music file will cause any music playing it to stop.
+??? quote "See parameters & details"
+
+ - Parameter 1 (musicfile): Audio file (or audio resource name)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `UnloadMusic`.
+
**Unload a sound file**
Unload a sound file from memory. Unloading a sound file will cause any sounds playing it to stop.
+??? quote "See parameters & details"
+
+ - Parameter 1 (soundfile): Sound file (or sound resource name)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `UnloadSound`.
+
+
## Conditions
**Global volume**
Test the global sound level. The volume is between 0 and 100.
-**Volume of the music on a channel**
-Test the volume of the music on a specified channel. The volume is between 0 and 100.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Volume to compare to (0-100)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `GlobalVolume`.
**Pitch of the music on a channel**
Test the pitch (speed) of the music on a specified channel.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Pitch to compare to (1 by default)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `MusicChannelPitch`.
+
**Playing offset of the music on a channel**
Test the playing offset of the music on the specified channel.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Position to compare to (in seconds)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `MusicChannelPlayingOffset`.
+
+**Volume of the music on a channel**
+Test the volume of the music on a specified channel. The volume is between 0 and 100.
+
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Volume to compare to (0-100)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `MusicChannelVolume`.
+
**A music file is paused**
Test if the music on the specified channel is paused.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `MusicPaused`.
+
**A music file is being played**
Test if the music on a channel is being played
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `MusicPlaying`.
+
**A music file is stopped**
Test if the music on the specified channel is stopped.
-**Volume of the sound on a channel**
-Test the volume of the sound on the specified channel.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `MusicStopped`.
**Pitch of the sound of a channel**
Test the pitch of the sound on the specified channel. 1 is the default pitch.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Pitch to compare to (1 by default)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `SoundChannelPitch`.
+
**Playing offset of the sound on a channel**
Test the playing offset of the sound on the specified channel.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Position to compare to (in seconds)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `SoundChannelPlayingOffset`.
+
+**Volume of the sound on a channel**
+Test the volume of the sound on the specified channel.
+
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel identifier
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Volume to compare to (0-100)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `SoundChannelVolume`.
+
**A sound is paused**
Test if the sound on the specified channel is paused.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `SoundPaused`.
+
**A sound is being played**
Test if the sound on a channel is being played.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `SoundPlaying`.
+
**A sound is stopped**
Test if the sound on the specified channel is stopped.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Channel
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `SoundStopped`.
+
+
## Expressions
| Expression | Description | |
|-----|-----|-----|
| `GlobalVolume()` | Global volume value ||
-| `MusicChannelPitch()` | Music's pitch ||
-| `MusicChannelPlayingOffset()` | Music playing offset ||
-| `MusicChannelVolume()` | Music volume ||
-| `SoundChannelPitch()` | Sound's pitch ||
-| `SoundChannelPlayingOffset()` | Sound playing offset ||
-| `SoundChannelVolume()` | Sound volume ||
+| `MusicChannelPitch(number)` | Music's pitch ||
+| | _🔢 Number_ | Channel |
+| `MusicChannelPlayingOffset(number)` | Music playing offset ||
+| | _🔢 Number_ | Channel |
+| `MusicChannelVolume(number)` | Music volume ||
+| | _🔢 Number_ | Channel |
+| `SoundChannelPitch(number)` | Sound's pitch ||
+| | _🔢 Number_ | Channel |
+| `SoundChannelPlayingOffset(number)` | Sound playing offset ||
+| | _🔢 Number_ | Channel |
+| `SoundChannelVolume(number)` | Sound volume ||
+| | _🔢 Number_ | Channel |
+
+
---
-*This page is an auto-generated reference page about the **Sounds and music** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Sounds and music extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Sounds and music** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr.png b/docs/gdevelop5/all-features/audio/usingjfxr.png
index 02e017304f0..35d6ebc2830 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr.png and b/docs/gdevelop5/all-features/audio/usingjfxr.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr0.png b/docs/gdevelop5/all-features/audio/usingjfxr0.png
index 28225bb2c2e..510f64afd6e 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr0.png and b/docs/gdevelop5/all-features/audio/usingjfxr0.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr10.png b/docs/gdevelop5/all-features/audio/usingjfxr10.png
index 80ba87b359a..0620eeb6001 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr10.png and b/docs/gdevelop5/all-features/audio/usingjfxr10.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr12.png b/docs/gdevelop5/all-features/audio/usingjfxr12.png
index bad12fd6676..71745aebc26 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr12.png and b/docs/gdevelop5/all-features/audio/usingjfxr12.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr13.png b/docs/gdevelop5/all-features/audio/usingjfxr13.png
index 6f8058a0403..3c559cdf0df 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr13.png and b/docs/gdevelop5/all-features/audio/usingjfxr13.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr2.png b/docs/gdevelop5/all-features/audio/usingjfxr2.png
index d9806c40834..ec2b4b60e53 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr2.png and b/docs/gdevelop5/all-features/audio/usingjfxr2.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr3.png b/docs/gdevelop5/all-features/audio/usingjfxr3.png
index e8c6e94c554..e485ea6eb86 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr3.png and b/docs/gdevelop5/all-features/audio/usingjfxr3.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr4.png b/docs/gdevelop5/all-features/audio/usingjfxr4.png
index 9706f624dc8..bd15944c898 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr4.png and b/docs/gdevelop5/all-features/audio/usingjfxr4.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr5.png b/docs/gdevelop5/all-features/audio/usingjfxr5.png
index beb65bf5334..7cc07a799d0 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr5.png and b/docs/gdevelop5/all-features/audio/usingjfxr5.png differ
diff --git a/docs/gdevelop5/all-features/audio/usingjfxr9.png b/docs/gdevelop5/all-features/audio/usingjfxr9.png
index b5831f22d41..ff1875df3ae 100644
Binary files a/docs/gdevelop5/all-features/audio/usingjfxr9.png and b/docs/gdevelop5/all-features/audio/usingjfxr9.png differ
diff --git a/docs/gdevelop5/all-features/bbtext/reference.md b/docs/gdevelop5/all-features/bbtext/reference.md
index 9ffd64d9557..838a8ed984d 100644
--- a/docs/gdevelop5/all-features/bbtext/reference.md
+++ b/docs/gdevelop5/all-features/bbtext/reference.md
@@ -6,51 +6,175 @@ A BBText is an object displaying on the screen a rich text formatted using BBCod
## BBText
-Displays a rich text label using BBCode markup (allowing to set parts of the text as bold, italic, use different colors and shadows).
+Formatted text allowing to mix styles using BBCode markup.
+
+### Object properties
+
+- **Base alignment** (choice, one of: "left", "center", "right"). Default value is `left`.
+- **Base color** (🎨 Color). Default value is `0;0;0`.
+- **Font** (🗂️ Resource). Default value is `Arial`.
+- **Base size** (🔢 Number). Default value is `20`.
+- **BBCode text** (🔤 Multiline text (String)). Default value is `[b]bold[/b] [i]italic[/i] [size=15]smaller[/size] [font=times]times[/font] font
+[spacing=12]spaced out[/spacing]
+[outline=yellow]outlined[/outline] [shadow=red]DropShadow[/shadow] `.
+- **Vertical alignment** (choice, one of: "top", "center", "bottom"). Default value is `top`.
+- **Visible on start** (🔘 Boolean). Default value is `true`.
+
+??? quote "See internal technical details"
+
+
+ - **Base alignment** is stored as `align` (choice). Default value is `left`.
+ - **Base color** is stored as `color` (color). Default value is `0;0;0`.
+ - **Font** is stored as `fontFamily` (resource). Default value is `Arial`.
+ - **Base size** is stored as `fontSize` (number). Default value is `20`.
+ - **BBCode text** is stored as `text` (multilinestring). Default value is `[b]bold[/b] [i]italic[/i] [size=15]smaller[/size] [font=times]times[/font] font [spacing=12]spaced out[/spacing] [outline=yellow]outlined[/outline] [shadow=red]DropShadow[/shadow] `.
+ - **Vertical alignment** is stored as `verticalTextAlignment` (choice). Default value is `top`.
+ - **Visible on start** is stored as `visible` (boolean). Default value is `true`.
### Object actions
**Alignment**
Change the alignment of the text.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔤 String): Alignment (one of: "left", "right", "center")
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BBText::SetAlignment`.
+
**BBCode text**
Set BBCode text
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔤 String): Text
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BBText::SetBBText`.
+
**Color**
Set base color
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1 (🎨 Color): Color (R;G;B)
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BBText::SetColor`.
+
**Font family**
Set font family
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1 (fontResource): Font family
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BBText::SetFontFamily2`.
+
**Font size**
Set base font size
-**Word wrap**
-Set word wrap
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔢 Number): Font size
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BBText::SetFontSize`.
+
+**Word wrapping**
+De/activate word wrapping.
+
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1 (❓ Yes or No): Activate word wrapping
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BBText::SetWordWrap`.
**Wrapping width**
Change the width, in pixels, after which the text is wrapped on next line.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔢 Number): Wrapping width
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BBText::SetWrappingWidth`.
+
+
### Object conditions
**Alignment**
Check the current text alignment.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔤 String): Alignment (one of: "left", "right", "center")
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BBText::IsAlignment`.
+
**BBCode text**
Compare the value of the BBCode text.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔤 String): Text
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BBText::IsBBText`.
+
**Font family**
Compare the value of font family
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔤 String): Font family
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BBText::IsFontFamily`.
+
**Font size**
Compare the base font size of the text.
-**Word wrap**
-Check if word wrap is enabled.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Font size
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BBText::IsFontSize`.
+
+**Word wrapping**
+Check if word wrapping is enabled.
+
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BBText::IsWordWrap`.
**Wrapping width**
Compare the width, in pixels, after which the text is wrapped on next line.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): BBText
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Wrapping width
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BBText::IsWrappingWidth`.
+
+
### Object expressions
| Expression | Description | |
@@ -61,5 +185,10 @@ Compare the width, in pixels, after which the text is wrapped on next line.
| `Object.GetFontSize()` | Get the base font size ||
| `Object.GetWrappingWidth()` | Get the wrapping width ||
+
+
---
-*This page is an auto-generated reference page about the **BBCode Text Object** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The BBCode Text Object extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **BBCode Text Object** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/bitmap-text/reference.md b/docs/gdevelop5/all-features/bitmap-text/reference.md
index d9aa3d9cf6a..95033c8cdef 100644
--- a/docs/gdevelop5/all-features/bitmap-text/reference.md
+++ b/docs/gdevelop5/all-features/bitmap-text/reference.md
@@ -6,41 +6,140 @@ Displays a text using a "Bitmap Font" (an image representing characters). This i
## Bitmap Text
-Displays a text using a "Bitmap Font" (an image representing characters). This is more performant than a traditional Text object and it allows for complete control on the characters aesthetic.
+Image-based text.
+
+### Object properties
+
+- **Alignment** (choice, one of: "left", "center", "right"). Default value is `left`.
+- **Bitmap Font** (🗂️ Resource).
+- **Text scale** (🔢 Number). Default value is `1`.
+- **Text** (🔤 Multiline text (String)). Default value is `This text use the default bitmap font.
+Use a custom Bitmap Font to create your own texts.`.
+- **Bitmap Atlas** (🗂️ Resource).
+- **Font tint** (🎨 Color). Default value is `255;255;255`.
+- **Vertical alignment** (choice, one of: "top", "center", "bottom"). Default value is `top`.
+
+??? quote "See internal technical details"
+
+
+ - **Alignment** is stored as `align` (choice). Default value is `left`.
+ - **Bitmap Font** is stored as `bitmapFontResourceName` (resource). Default value is ``.
+ - **Text scale** is stored as `scale` (number). Default value is `1`.
+ - **Text** is stored as `text` (multilinestring). Default value is `This text use the default bitmap font. Use a custom Bitmap Font to create your own texts.`.
+ - **Bitmap Atlas** is stored as `textureAtlasResourceName` (resource). Default value is ``.
+ - **Font tint** is stored as `tint` (color). Default value is `255;255;255`.
+ - **Vertical alignment** is stored as `verticalTextAlignment` (choice). Default value is `top`.
### Object actions
**Wrapping width**
Change the width, in pixels, after which the text is wrapped on next line.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔢 Number): Value
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BitmapText::BitmapTextObject::SetWrappingWidth`.
+
**Alignment**
Change the alignment of a Bitmap text object.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1 (🔤 String): Alignment (one of: "left", "center", "right")
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BitmapText::SetAlignment`.
+
**Bitmap files resources**
Change the Bitmap Font and/or the atlas image used by the object.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1 (bitmapFontResource): Bitmap font resource name
+ - Parameter 2 (imageResource): Texture atlas resource name
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BitmapText::SetBitmapFontAndTextureAtlasResourceName2`.
+
**Tint**
Set the tint of the Bitmap Text object.
-**Word wrap**
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1: 🎨 Color
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BitmapText::SetTint`.
+
+**Word wrapping**
De/activate word wrapping.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1 (❓ Yes or No): Activate word wrapping
+
+ > Technical note: this action internal type (in GDevelop JSON) is `BitmapText::SetWordWrap`.
+
+
### Object conditions
**Alignment**
Compare the text alignment.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔤 String): Alignment ("left", "right" or "center")
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BitmapText::BitmapTextObject::Alignment`.
+
**Font name**
Compare the font name (defined in the Bitmap font).
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔤 String): Value to compare
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BitmapText::BitmapTextObject::FontName`.
+
**Font size**
Compare the font size, defined in the Bitmap Font.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Value to compare
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BitmapText::BitmapTextObject::FontSize`.
+
**Wrapping width**
Compare the width, in pixels, after which the text is wrapped on next line.
-**Word wrap**
-Check if word wrap is enabled.
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Value to compare
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BitmapText::BitmapTextObject::WrappingWidth`.
+
+**Word wrapping**
+Check if word wrapping is enabled.
+
+??? quote "See parameters & details"
+
+ - Parameter 0 (👾 Object): Bitmap text
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BitmapText::WordWrap`.
+
### Object expressions
@@ -52,5 +151,10 @@ Check if word wrap is enabled.
| `Object.Text()` | Return the text. ||
| `Object.WrappingWidth()` | Return the width, in pixels, after which the text is wrapped on next line. ||
+
+
---
-*This page is an auto-generated reference page about the **Bitmap Text** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Bitmap Text extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Bitmap Text** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/camera/reference.md b/docs/gdevelop5/all-features/camera/reference.md
index c8fd0e16f88..a19cc394ee5 100644
--- a/docs/gdevelop5/all-features/camera/reference.md
+++ b/docs/gdevelop5/all-features/camera/reference.md
@@ -1,117 +1,449 @@
# Layers and cameras Reference
-Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. [Read more explanations about it.](/gdevelop5/interface/scene-editor/layers-and-cameras)
+Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. The zoom of a layer camera (in 2D) or its position in the 3D space (for 3D games) can be changed.
+
+Each layer can be hidden or shown (but layers do not have opacity). Actions/conditions are available to enable/disable 2D/3D effects on layers. Parameters of each effect can be modified with actions.
+ [Read more explanations about it.](/gdevelop5/interface/scene-editor/layers-and-cameras)
## Actions
**Center the camera on an object**
Center the camera on the specified object.
+??? quote "See parameters & details"
+
+ - Parameter 1: 👾 Object
+ - Parameter 2 (❓ Yes or No): Anticipate the movement of the object (yes by default)
+ - Parameter 3: 🔤 Layer name (String)
+ - Parameter 4 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `CenterCameraOnObject`.
+
**Layer time scale**
Change the time scale applied to the objects of the layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): Scale (1: Default, 2: 2x faster, 0.5: 2x slower...)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `ChangeLayerTimeScale`.
+
**Enforce camera boundaries**
Enforce camera boundaries by moving the camera back inside specified boundaries.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Left bound X Position
+ - Parameter 2 (🔢 Number): Top bound Y Position
+ - Parameter 3 (🔢 Number): Right bound X Position
+ - Parameter 4 (🔢 Number): Bottom bound Y Position
+ - Parameter 5: 🔤 Layer name (String)
+ - Parameter 6 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `ClampCamera`.
+
**Enable layer effect**
Enable an effect on a layer
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2: 🔤 Layer Effect Name (String)
+ - Parameter 3 (❓ Yes or No): Enable
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `EnableLayerEffect`.
+
**Hide a layer**
Hide a layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `HideLayer`.
+
**Angle of a camera of a layer**
Change the angle of rotation of a camera (in degrees).
+??? quote "See parameters & details"
+
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔢 Number): Value
+ - Parameter 3: 🔤 Layer name (String)
+ - Parameter 4 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetCameraAngle`.
+
**Camera center X position**
Change the X position of the center of a camera.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔢 Number): Value
+ - Parameter 3: 🔤 Layer name (String)
+ - Parameter 4 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetCameraCenterX`.
+
**Camera center Y position**
Change the Y position of the center of a camera.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🟰 Operator
+ - Parameter 2 (🔢 Number): Value
+ - Parameter 3: 🔤 Layer name (String)
+ - Parameter 4 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetCameraCenterY`.
+
**Ambient light color**
Set the ambient light color of the lighting layer in format "R;G;B" string.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2: 🎨 Color
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetLayerAmbientLightColor`.
+
**Layer default Z order**
Change the default Z order set to objects when they are created on a layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): New default Z order
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetLayerDefaultZOrder`.
+
**Effect property (enable or disable)**
Enable or disable a property of an effect.
You can find the property names (and change the effect names) in the effects window.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2: 🔤 Layer Effect Name (String)
+ - Parameter 3: 🔤 Layer Effect Property Name (String)
+ - Parameter 4 (❓ Yes or No): Enable this property
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetLayerEffectBooleanParameter`.
+
**Effect property (number)**
Change the value of a property of an effect.
You can find the property names (and change the effect names) in the effects window.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2: 🔤 Layer Effect Name (String)
+ - Parameter 3: 🔤 Layer Effect Property Name (String)
+ - Parameter 4 (🔢 Number): New value
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetLayerEffectParameter`.
+
**Effect property (string)**
Change the value (string) of a property of an effect.
You can find the property names (and change the effect names) in the effects window.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2: 🔤 Layer Effect Name (String)
+ - Parameter 3: 🔤 Layer Effect Property Name (String)
+ - Parameter 4 (🔤 String): New value
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `SetLayerEffectStringParameter`.
+
**Show a layer**
Show a layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `ShowLayer`.
+
**Camera zoom**
Change camera zoom.
+??? quote "See parameters & details"
+
+ - Parameter 1 (🔢 Number): Value (1:Initial zoom, 2:Zoom x2, 0.5:Unzoom x2...)
+ - Parameter 2: 🔤 Layer name (String)
+ - Parameter 3 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `ZoomCamera`.
+
+
## Conditions
**Angle of a camera of a layer**
Compare the angle of rotation of a camera (in degrees).
+??? quote "See parameters & details"
+
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Value to compare
+ - Parameter 3: 🔤 Layer name (String)
+ - Parameter 4 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraAngle`.
+
**Camera bottom border position**
Compare the position of the bottom border of a camera.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): Camera number
+ - Parameter 3: 🟰 Relational operator
+ - Parameter 4 (🔢 Number): Value to compare
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraBorderBottom`.
+
**Camera left border position**
Compare the position of the left border of a camera.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): Camera number
+ - Parameter 3: 🟰 Relational operator
+ - Parameter 4 (🔢 Number): Value to compare
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraBorderLeft`.
+
**Camera right border position**
Compare the position of the right border of a camera.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): Camera number
+ - Parameter 3: 🟰 Relational operator
+ - Parameter 4 (🔢 Number): Value to compare
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraBorderRight`.
+
**Camera top border position**
Compare the position of the top border of a camera.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): Camera number
+ - Parameter 3: 🟰 Relational operator
+ - Parameter 4 (🔢 Number): Value to compare
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraBorderTop`.
+
**Camera center X position**
Compare the X position of the center of a camera.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Value to compare
+ - Parameter 3: 🔤 Layer name (String)
+ - Parameter 4 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraCenterX`.
+
**Camera center Y position**
Compare the Y position of the center of a camera.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Value to compare
+ - Parameter 3: 🔤 Layer name (String)
+ - Parameter 4 (🔢 Number): Camera number
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraCenterY`.
+
**Height of a camera**
Compare the height of a camera of a layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): Camera number
+ - Parameter 3: 🟰 Relational operator
+ - Parameter 4 (🔢 Number): Value to compare
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraHeight`.
+
**Width of a camera**
Compare the width of a camera of a layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): Camera number
+ - Parameter 3: 🟰 Relational operator
+ - Parameter 4 (🔢 Number): Value to compare
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraWidth`.
+
**Camera zoom**
Compare the zoom of a camera of a layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2 (🔢 Number): Camera number
+ - Parameter 3: 🟰 Relational operator
+ - Parameter 4 (🔢 Number): Zoom
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `CameraZoom`.
+
**Layer default Z order**
Compare the default Z order set to objects when they are created on a layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Value to compare
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `LayerDefaultZOrder`.
+
**Layer effect is enabled**
The effect on a layer is enabled
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2: 🔤 Layer Effect Name (String)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `LayerEffectEnabled`.
+
**Layer time scale**
Compare the time scale applied to the objects of the layer.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Time scale (1 by default)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `LayerTimeScale`.
+
**Visibility of a layer**
Test if a layer is set as visible.
+??? quote "See parameters & details"
+
+ - Parameter 1: 🔤 Layer name (String)
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `LayerVisible`.
+
+
## Expressions
| Expression | Description | |
|-----|-----|-----|
-| `CameraAngle()` | Return the angle of rotation of a camera (in degrees). ||
-| `CameraBorderBottom()` | Return the position of the bottom border of a camera. ||
-| `CameraBorderLeft()` | Return the position of the left border of a camera. ||
-| `CameraBorderRight()` | Return the position of the right border of a camera. ||
-| `CameraBorderTop()` | Return the position of the top border of a camera. ||
-| `CameraCenterX()` | Return the X position of the center of a camera. ||
-| `CameraCenterY()` | Return the Y position of the center of a camera. ||
-| `CameraHeight()` | Return the height of a camera of a layer. ||
-| `CameraWidth()` | Return the width of a camera of a layer. ||
-| `CameraZoom()` | Zoom of a camera of a layer ||
-| `LayerDefaultZOrder()` | Default Z Order for a layer ||
-| `LayerTimeScale()` | Returns the time scale of the specified layer. ||
+| `CameraAngle(layer name, number)` | Return the angle of rotation of a camera (in degrees). ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `CameraBorderBottom(layer name, number)` | Return the position of the bottom border of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraBorderLeft(layer name, number)` | Return the position of the left border of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraBorderRight(layer name, number)` | Return the position of the right border of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraBorderTop(layer name, number)` | Return the position of the top border of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraCenterX(layer name, number)` | Return the X position of the center of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `CameraCenterY(layer name, number)` | Return the Y position of the center of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `CameraHeight(layer name, number)` | Return the height of a camera of a layer. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraWidth(layer name, number)` | Return the width of a camera of a layer. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraZoom(layer name, number)` | Zoom of a camera of a layer ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `LayerDefaultZOrder(layer name)` | Default Z Order for a layer ||
+| | _🔤 Layer name (String)_ | Layer |
+| `LayerTimeScale(layer name)` | Returns the time scale of the specified layer. ||
+| | _🔤 Layer name (String)_ | Layer |
+
+
---
-*This page is an auto-generated reference page about the **Layers and cameras** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Layers and cameras extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Layers and cameras** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/collisions/index.md b/docs/gdevelop5/all-features/collisions/index.md
index de0013533eb..810c3746f78 100644
--- a/docs/gdevelop5/all-features/collisions/index.md
+++ b/docs/gdevelop5/all-features/collisions/index.md
@@ -10,9 +10,7 @@ GDevelop provides several different ways to handle collisions. You can detect co
## Make objects solids: use the "Separate objects" action (good for top-down games, RPG...)

-You can use the "**Separate objects**" action to move objects manually. The "Separate objects" action can also move objects with "forces" or set the object's position.
-
-"**Separate objects.**" This action takes two object names as the argument.
+"**Separate objects**" is an action that keeps two types of objects from overlapping. It takes two object names as the argument.
* The first object name is the _object moving_ (the player, enemy, etc.).
* The second object name is an _object (or a group of objects) that are solid_. For example, these objects can be the walls.
@@ -25,7 +23,7 @@ This action will be launched in every frame. In an event without conditions, the
### Detect collisions
-Using "Separate objects" is a good way to ensure that your objects can't move into other solid objects. This action checks collisions between objects. For example, if the game object "player" is touching a wall, this action, when used with the condition called "**Collision,**" will trigger damages to the player.
+Using "Separate objects" is a good way to ensure that your objects can't move into other solid objects. You can pair it with the "**Collision**" condition to both detect a collision and react to it — for example, dealing damage to the player when touching an enemy, then separating them.
**The sequence is important.**
@@ -63,21 +61,21 @@ In a platformer game with the "Platformer character" behavior, collisions with p
**See it in action!** 🎮
Open this example online: [Platformer Example](https://editor.gdevelop.io?project=example://platformer)
-## Game with physics? Use the Physics behavior
+## Game with physics? Use the Physics 2 behavior
-Use [Physics behavior](/gdevelop5/behaviors/physics) in order to achieve realistic physical behavior in your game. Attach "Physics" behavior to your objects. The objects will then behave as though they are alive in the game world. Some examples of real-world behavior include bouncing balls, falling, jumping, etc.
+Use the [Physics 2 behavior](/gdevelop5/behaviors/physics2) to make objects move realistically, simulating gravity, bouncing, and other real-world physical interactions. This is well suited for games like pinball, angry-birds-style projectile games, or anything that relies on natural-feeling collisions and movement.
-Configure game walls or solid objects that should not move with "static" behavior.
+Objects configured as **Static** will not move and act as immovable walls or ground. Objects configured as **Dynamic** are fully simulated and react to gravity, forces, and collisions.
-### Detect collisions with the Physics behavior
+### Detect collisions with the Physics 2 behavior
-When you're using the **Physics** behavior, _do not use_ the **Collision** condition that is in the **Features for all objects** category. _The physics engine will manage all collisions by itself._ The Collision condition won't correctly detect when objects are touching.
+When you're using the **Physics 2** behavior, _do not use_ the **Collision** condition that is in the **Features for all objects** category. _The physics engine will manage all collisions by itself._ The standard Collision condition won't correctly detect when objects are touching.
-Instead, use the Collision condition _inside the_ **Physics** _behavior category_, which properly uses the physics engine to simulate the collisions.
+Instead, use the Collision condition _inside the_ **Physics 2** _behavior category_, which properly uses the physics engine to simulate the collisions.

-Additionally, objects with the **Physics** behavior ignore the object's Collision Masks and instead use the collision information on the **BEHAVIORS** tab of the object itself. This defaults to a box that is the full dimension of the object. In most cases, there will be a need to change these settings from within the **BEHAVIORS** tab.
+Additionally, objects with the **Physics 2** behavior ignore the object's Collision Masks and instead use the collision shape configured on the **BEHAVIORS** tab of the object itself. This defaults to a box matching the full dimensions of the object. The shape can be changed to a circle, edge, or polygon from within the **BEHAVIORS** tab.

!!! tip
diff --git a/docs/gdevelop5/all-features/common-conversions/index.md b/docs/gdevelop5/all-features/common-conversions/index.md
index 54cb2a90ec3..c2e2d8717dc 100644
--- a/docs/gdevelop5/all-features/common-conversions/index.md
+++ b/docs/gdevelop5/all-features/common-conversions/index.md
@@ -26,6 +26,14 @@ To input a string in a numerical expression, you can convert it to number using
To input a number in string expression, you can use the "Number > Text" expression. If the number used is greater than or equal to 1e+21, the expression returns its value in scientific notation.
+If you need to display or store a very large number without scientific notation, use the **Large Number to Text** expression (`LargeNumberToString`). It forces the full decimal representation regardless of the magnitude. For example, `LargeNumberToString(1e21)` returns `"1000000000000000000000"` instead of `"1e+21"`.
+
+## Converting variables to JSON
+
+The **Variable to JSON** expression (`ToJSON`) converts any variable (including structures and arrays) to a JSON-formatted string. This is useful when you want to store a complex variable in a text field, send it over the network, or save it to storage.
+
+Use the **Object variable to JSON** expression (`ObjectVarToJSON`) to do the same for an object variable.
+
## Reference
All actions, conditions and expressions are listed in [conversions reference page](/gdevelop5/all-features/common-conversions/reference/).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/common-conversions/reference.md b/docs/gdevelop5/all-features/common-conversions/reference.md
index f9038371cd7..d1f17113013 100644
--- a/docs/gdevelop5/all-features/common-conversions/reference.md
+++ b/docs/gdevelop5/all-features/common-conversions/reference.md
@@ -1,26 +1,55 @@
# Conversion Reference
-Expressions to convert number, texts and quantities. [Read more explanations about it.](/gdevelop5/all-features/common-conversions)
+Expressions to convert numbers to string, strings to numbers, angles (degrees from/to radians) and a GDevelop variable to/from a JSON string. [Read more explanations about it.](/gdevelop5/all-features/common-conversions)
## Actions
**Convert JSON to object variable**
Parse a JSON object and store it into an object variable
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): JSON string
+ - Parameter 1: 👾 Object
+ - Parameter 2 (🗄️ Object variable): Object variable where store the JSON object
+
+ > Technical note: this action internal type (in GDevelop JSON) is `JSONToObjectVariableStructure`.
+
**Convert JSON to a variable**
Parse a JSON object and store it into a variable
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): JSON string
+ - Parameter 1 (🗄️ Any variable): Variable where to store the JSON object
+
+ > Technical note: this action internal type (in GDevelop JSON) is `JSONToVariableStructure2`.
+
+
## Expressions
| Expression | Description | |
|-----|-----|-----|
-| `LargeNumberToString()` | Convert the result of the expression to text, without using the scientific notation ||
-| `ObjectVarToJSON()` | Convert an object variable to JSON ||
-| `ToDeg()` | Converts the angle, expressed in radians, into degrees ||
-| `ToJSON()` | Convert a variable to JSON ||
-| `ToNumber()` | Convert the text to a number ||
-| `ToRad()` | Converts the angle, expressed in degrees, into radians ||
-| `ToString()` | Convert the result of the expression to text ||
+| `LargeNumberToString(number)` | Convert the result of the expression to text, without using the scientific notation ||
+| | _🔢 Number_ | Expression to be converted to text |
+| `ObjectVarToJSON(object, object variable)` | Convert an object variable to JSON ||
+| | _👾 Object_ | The object with the variable |
+| | _🗄️ Object variable_ | The object variable to be stringified |
+| `ToDeg(number)` | Converts the angle, expressed in radians, into degrees ||
+| | _🔢 Number_ | Angle, in radians |
+| `ToJSON(variable)` | Convert a variable to JSON ||
+| | _🗄️ Any variable_ | The variable to be stringified |
+| `ToNumber(string)` | Convert the text to a number ||
+| | _🔤 String_ | Text to convert to a number |
+| `ToRad(number)` | Converts the angle, expressed in degrees, into radians ||
+| | _🔢 Number_ | Angle, in degrees |
+| `ToString(number)` | Convert the result of the expression to text ||
+| | _🔢 Number_ | Expression to be converted to text |
+
+
---
-*This page is an auto-generated reference page about the **Conversion** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Conversion extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Conversion** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/common-instructions/reference.md b/docs/gdevelop5/all-features/common-instructions/reference.md
index cff211d36b9..43b2e29a5f3 100644
--- a/docs/gdevelop5/all-features/common-instructions/reference.md
+++ b/docs/gdevelop5/all-features/common-instructions/reference.md
@@ -5,24 +5,73 @@ GDevelop comes with a set of events and conditions that allow to express the gam
## Conditions
**And**
-Check if all sub conditions are true
+Checks if all sub-conditions are true. If no sub-condition is specified, it will always be false. This is rarely needed, as events already check all conditions before running actions.
+
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BuiltinCommonInstructions::And`.
**Compare two numbers**
Compare the two numbers.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔢 Number): First expression
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔢 Number): Second expression
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BuiltinCommonInstructions::CompareNumbers`.
+
**Compare two strings**
Compare the two strings.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): First string expression
+ - Parameter 1: 🟰 Relational operator
+ - Parameter 2 (🔤 String): Second string expression
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BuiltinCommonInstructions::CompareStrings`.
+
**Not**
-Return the contrary of the result of the sub conditions
+Returns the opposite of the sub-condition(s) result. This is rarely needed, as most conditions can be inverted or expressed more simply.
+
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BuiltinCommonInstructions::Not`.
**Trigger once while true**
-Run actions only once, for each time the conditions have been met.
+Run the actions once when the previous conditions are true. If they become false and later true again, the actions will run again.
+This condition is always last in the list.
+
+Note: internally, this uses a global trigger state; it's not tracked per object instance. Be careful if you use this in a loop or For Each event (consider using object variables instead if needed).
+
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BuiltinCommonInstructions::Once`.
**Or**
-Check if one of the sub conditions is true
+Checks if at least one sub-condition is true. If no sub-condition is specified, it will always be false. This is rarely used — multiple events and sub-events are usually a better approach.
+
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `BuiltinCommonInstructions::Or`.
+
+
+
---
-*This page is an auto-generated reference page about the **Events and control flow** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Events and control flow extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Events and control flow** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/cursor-is-on-condition.png b/docs/gdevelop5/all-features/cursor-is-on-condition.png
index 8cc72b55ba7..5a1fd09caa1 100644
Binary files a/docs/gdevelop5/all-features/cursor-is-on-condition.png and b/docs/gdevelop5/all-features/cursor-is-on-condition.png differ
diff --git a/docs/gdevelop5/all-features/cursor-is-on-event.png b/docs/gdevelop5/all-features/cursor-is-on-event.png
index 2c6f1a56198..60aa7018235 100644
Binary files a/docs/gdevelop5/all-features/cursor-is-on-event.png and b/docs/gdevelop5/all-features/cursor-is-on-event.png differ
diff --git a/docs/gdevelop5/all-features/debugger-tools/reference.md b/docs/gdevelop5/all-features/debugger-tools/reference.md
index 7192272b5e8..62288e098db 100644
--- a/docs/gdevelop5/all-features/debugger-tools/reference.md
+++ b/docs/gdevelop5/all-features/debugger-tools/reference.md
@@ -1,19 +1,52 @@
# Debugger Tools Reference
-Allow to interact with the editor debugger from the game.
+Allow to interact with the editor debugger from the game (notably: enable 2D debug draw, log a message in the debugger console).
## Actions
**Log a message to the console**
Logs a message to the debugger's console.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Message to log
+ - Parameter 1 (🔤 String): Message type (one of: "info", "warning", "error")
+ - Parameter 2 (🔤 String): Group of messages
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DebuggerTools::ConsoleLog`.
+
**Draw collisions hitboxes and points**
This activates the display of rectangles and information on screen showing the objects bounding boxes (blue), the hitboxes (red) and some points of objects.
+??? quote "See parameters & details"
+
+ - Parameter 1 (❓ Yes or No): Enable debug draw
+ - Parameter 2 (❓ Yes or No): Show collisions for hidden objects
+ - Parameter 3 (❓ Yes or No): Show points names
+ - Parameter 4 (❓ Yes or No): Show custom points
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DebuggerTools::EnableDebugDraw`.
+
**Pause game execution**
This pauses the game, useful for inspecting the game state through the debugger. Note that events will be still executed until the end before the game is paused.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DebuggerTools::Pause`.
+
+
+
+
---
-*This page is an auto-generated reference page about the **Debugger Tools** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Debugger Tools extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Debugger Tools** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/destroy-outside-behavior/reference.md b/docs/gdevelop5/all-features/destroy-outside-behavior/reference.md
index 2ef09ae525a..981c8008dec 100644
--- a/docs/gdevelop5/all-features/destroy-outside-behavior/reference.md
+++ b/docs/gdevelop5/all-features/destroy-outside-behavior/reference.md
@@ -1,25 +1,89 @@
# Destroy Outside Screen Behavior Reference
-This behavior can be used to destroy objects when they go outside of the bounds of the camera. Useful for bullets or other short-lived objects. [Read more explanations about it.](/gdevelop5/behaviors/destroyoutside)
+This behavior can be used to destroy objects when they go outside of the bounds of the 2D camera. Useful for 2D bullets or other short-lived objects. Don't use it for 3D objects in a FPS/TPS game or any game with a camera not being a top view (for 3D objects, prefer comparing the position, for example Z position to see if an object goes outside of the bound of the map). If the object appears outside of the screen, it's not removed unless it goes beyond the unseen object grace distance. [Read more explanations about it.](/gdevelop5/behaviors/destroyoutside)
## Destroy when outside of the screen
-Destroy objects automatically when they go outside of the screen's borders.
+Destroy objects automatically when they go outside of the 2D camera borders.
+
+### Behavior properties
+
+- **Deletion margin** (🔢 Number, Distance). Margin before deleting the object, in pixels. Default value is `200`.
+- **Unseen object grace distance** (🔢 Number, Distance). If the object hasn't been visible yet, don't delete it until it travels this far beyond the screen (in pixels). Useful to avoid objects being deleted before they are visible when they spawn. Default value is `10000`.
+
+??? quote "See internal technical details"
+
+
+ - **Deletion margin** is stored as `extraBorder` (Number). Unit is Pixel. Default value is `200`.
+ - **Unseen object grace distance** is stored as `unseenGraceDistance` (Number). Unit is Pixel. Default value is `10000`.
### Behavior actions
-**Additional border**
-Change the additional border that the object must cross before being deleted.
+**Additional border (extra distance before deletion)**
+Change the extra distance (in pixels) the object must travel beyond the screen before it gets deleted.
+
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Value
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DestroyOutsideBehavior::DestroyOutside::SetExtraBorder`.
+
+**Unseen object grace distance**
+Change the grace distance (in pixels) before deleting the object if it has never been visible on the screen. Useful to avoid objects being deleted before they are visible when they spawn.
+
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Operator
+ - Parameter 3 (🔢 Number): Value
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DestroyOutsideBehavior::DestroyOutside::SetUnseenGraceDistance`.
+
### Behavior conditions
-**Additional border**
-Compare the additional border that the object must cross before being deleted.
+**Additional border (extra distance before deletion)**
+Compare the extra distance (in pixels) the object must travel beyond the screen before it gets deleted.
+
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Value to compare
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DestroyOutsideBehavior::DestroyOutside::ExtraBorder`.
+
+**Unseen object grace distance**
+Compare the grace distance (in pixels) before deleting the object if it has never been visible on the screen. Useful to avoid objects being deleted before they are visible when they spawn.
+
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🟰 Relational operator
+ - Parameter 3 (🔢 Number): Value to compare
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DestroyOutsideBehavior::DestroyOutside::UnseenGraceDistance`.
+
+
+### Behavior expressions
+
+| Expression | Description | |
+|-----|-----|-----|
+| `Object.DestroyOutside::ExtraBorder()` | Return the extra distance (in pixels) the object must travel beyond the screen before it gets deleted. ||
+| `Object.DestroyOutside::UnseenGraceDistance()` | Return the grace distance (in pixels) before deleting the object if it has never been visible on the screen. Useful to avoid objects being deleted before they are visible when they spawn. ||
-_No expressions for this behavior._
---
-*This page is an auto-generated reference page about the **Destroy Outside Screen Behavior** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Destroy Outside Screen Behavior extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Destroy Outside Screen Behavior** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/device-sensors/index.md b/docs/gdevelop5/all-features/device-sensors/index.md
index c3fd6ed6515..bb1998316da 100644
--- a/docs/gdevelop5/all-features/device-sensors/index.md
+++ b/docs/gdevelop5/all-features/device-sensors/index.md
@@ -67,24 +67,28 @@ This action deactivates the orientation sensor so that it stops delivering alpha
**Is Absolute**
-This value indicates that the orientation data is in absolute values. In reference to the Earth's coordinates (value 1) or using an arbitrary frame, is determined by the device (value 0).
+Returns 1 if the orientation data is referenced to the Earth's coordinate frame (compass-based), or 0 if it uses an arbitrary frame determined by the device.
**Alpha Value**
-The "alpha" rotation.
+The "alpha" rotation angle, in degrees (range: 0 to 360).
**Beta Value**
-The "beta" rotation.
+The "beta" rotation angle, in degrees (range: -180 to 180).
**Gamma Value**
-The "gamma" rotation.
+The "gamma" rotation angle, in degrees (range: -90 to 90).
## Motion sensor
In contrast to the orientation sensor which returns absolute values, the motion sensor delivers relative ones. This sensor only returns values while the device is moving. If you hold it still, no matter its orientation, the sensor will return 0. You can access the motion data along an axis via the "x", "y", "z" values and the rotation data around an axis via "alpha", "beta" and "gamma" which are explained in the next section.
+!!! note
+
+ The acceleration values include the effect of gravity (approximately 9.81 m/s² on Earth), so a device lying flat on a table will still show a non-zero Z acceleration.
+
!!! note
The motion sensor rotation values (alpha, beta, gamma) are currently badly supported on mobile devices. It would currently be better to calculate the value from the orientation data
@@ -125,7 +129,7 @@ This value shows the acceleration around the x-axis. If you hold your device in

-This value shows the acceleration around the y-axis. If you hold your device in portrait mode with a hand on each side, you can turn your device around the y-axis and the beta value will increase.
+This value shows the acceleration around the y-axis. If you hold your device in portrait mode with a hand on each side, you can turn your device around the y-axis and the gamma value will increase.
### Conditions
@@ -147,15 +151,15 @@ This condition lets you compare the value of z-acceleration to a number or varia
**Motion Alpha**
-This condition lets you compare the value of alpha to a number or variable. (m/s²)
+This condition lets you compare the value of alpha to a number or variable. (deg/s)
**Motion Beta**
-This condition lets you compare the value of beta to a number or variable. (m/s²)
+This condition lets you compare the value of beta to a number or variable. (deg/s)
**Motion Gamma**
-This condition lets you compare the value of gamma to a number or variable. (m/s²)
+This condition lets you compare the value of gamma to a number or variable. (deg/s)
### Actions
@@ -183,14 +187,14 @@ The "z" acceleration. (m/s²)
**Alpha Value**
-The "alpha" rotation. (m/s²)
+The "alpha" rotation rate. (deg/s)
**Beta Value**
-The "beta" rotation. (m/s²)
+The "beta" rotation rate. (deg/s)
**Gamma Value**
-The "gamma" rotation. (m/s²)
+The "gamma" rotation rate. (deg/s)

diff --git a/docs/gdevelop5/all-features/device-sensors/reference.md b/docs/gdevelop5/all-features/device-sensors/reference.md
index 8acfc77281a..7d96e3daaa1 100644
--- a/docs/gdevelop5/all-features/device-sensors/reference.md
+++ b/docs/gdevelop5/all-features/device-sensors/reference.md
@@ -7,50 +7,151 @@ Allow the game to access the sensors of a mobile device. [Read more explanations
**Activate motion sensor**
Activate the motion sensor. (remember to turn it off again)
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DeviceSensors::ActivateMotionListener`.
+
**Activate orientation sensor**
Activate the orientation sensor. (remember to turn it off again)
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DeviceSensors::ActivateOrientationListener`.
+
**Deactivate motion sensor**
Deactivate the motion sensor.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DeviceSensors::DeactivateMotionListener`.
+
**Deactivate orientation sensor**
Deactivate the orientation sensor.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DeviceSensors::DeactivateOrientationListener`.
+
+
## Conditions
**Compare the value of acceleration on X-axis**
Compare the value of acceleration on the X-axis (m/s²).
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value (m/s²)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::AccelerationX`.
+
**Compare the value of acceleration on Y-axis**
Compare the value of acceleration on the Y-axis (m/s²).
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value (m/s²)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::AccelerationY`.
+
**Compare the value of acceleration on Z-axis**
Compare the value of acceleration on the Z-axis (m/s²).
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value (m/s²)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::AccelerationZ`.
+
**Sensor active**
The condition is true if the device motion sensor is currently active
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::MotionSensorActive`.
+
**Compare the value of orientation alpha**
Compare the value of orientation alpha. (Range: 0 to 360°)
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::OrientationAlpha`.
+
**Compare the value of orientation beta**
Compare the value of orientation beta. (Range: -180 to 180°)
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::OrientationBeta`.
+
**Compare the value of orientation gamma**
Compare the value of orientation gamma. (Range: -90 to 90°)
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::OrientationGamma`.
+
**Sensor active**
The condition is true if the device orientation sensor is currently active
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::OrientationSensorActive`.
+
**Compare the value of rotation alpha**
Compare the value of rotation alpha. (Note: few devices support this sensor)
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value (m/s²)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::RotationAlpha`.
+
**Compare the value of rotation beta**
Compare the value of rotation beta. (Note: few devices support this sensor)
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value (m/s²)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::RotationBeta`.
+
**Compare the value of rotation gamma**
Compare the value of rotation gamma. (Note: few devices support this sensor)
+??? quote "See parameters & details"
+
+ - Parameter 0: 🟰 Relational operator
+ - Parameter 1 (🔢 Number): Value (m/s²)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DeviceSensors::RotationGamma`.
+
+
## Expressions
| Expression | Description | |
@@ -66,5 +167,10 @@ Compare the value of rotation gamma. (Note: few devices support this sensor)
| `DeviceSensors::RotationBeta()` | Get the devices rotation Beta ||
| `DeviceSensors::RotationGamma()` | Get the devices rotation Gamma ||
+
+
---
-*This page is an auto-generated reference page about the **Device sensors** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Device sensors extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Device sensors** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/device-vibration/reference.md b/docs/gdevelop5/all-features/device-vibration/reference.md
index 7626f049973..ccb500eb140 100644
--- a/docs/gdevelop5/all-features/device-vibration/reference.md
+++ b/docs/gdevelop5/all-features/device-vibration/reference.md
@@ -7,13 +7,37 @@ This allows to trigger vibrations on mobile devices. [Read more explanations abo
**Vibrate**
Vibrate (Duration in ms).
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔢 Number): Duration
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DeviceVibration::StartVibration`.
+
**Vibrate by pattern**
Vibrate (Duration in ms). You can add multiple comma-separated values where every second value determines the period of silence between two vibrations. This is a string value so use quotes.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Intervals (for example "500,100,200"
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DeviceVibration::StartVibrationPattern`.
+
**Stop vibration**
Stop the vibration
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DeviceVibration::StopVibration`.
+
+
+
+
---
-*This page is an auto-generated reference page about the **Device vibration** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Device vibration extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Device vibration** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/devicevibrationevents.png b/docs/gdevelop5/all-features/devicevibrationevents.png
index a1fcd77f67a..77a33ea011b 100644
Binary files a/docs/gdevelop5/all-features/devicevibrationevents.png and b/docs/gdevelop5/all-features/devicevibrationevents.png differ
diff --git a/docs/gdevelop5/all-features/dialogue-tree/reference.md b/docs/gdevelop5/all-features/dialogue-tree/reference.md
index 42c8c4fd875..44bd16a4c43 100644
--- a/docs/gdevelop5/all-features/dialogue-tree/reference.md
+++ b/docs/gdevelop5/all-features/dialogue-tree/reference.md
@@ -7,83 +7,248 @@ Handle dialogue trees, made using Yarn Spinner. Useful to make complex dialogues
**Clear dialogue state**
Clear dialogue state. This resets all dialogue state accumulated by the player choices. Useful when the player is starting a new game.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::ClearState`.
+
**Complete clipped text scrolling**
Complete the clipped text scrolling. Use this action whenever you want to skip scrolling.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::CompleteClippedTextScrolling`.
+
**Confirm selected option**
Set the selected option as confirmed, which will validate it and go forward to the next node. Use other actions to select options (see "select next option" and "Select previous option").
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::ConfirmSelectOption`.
+
**Go to the next dialogue line**
Go to the next dialogue line. Use this to advance to the next dialogue line when the player presses a button.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::GoToNextLine`.
+
**Load dialogue tree from a JSON file**
Load a dialogue data object - Yarn JSON format, stored in a JSON file. Use this command to load all the Dialogue data at the beginning of the game.
+??? quote "See parameters & details"
+
+ - Parameter 1 (jsonResource): JSON file that holds the Yarn JSON data
+
+ > Technical note: parameter 0 is an internal parameter handled by GDevelop.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::LoadDialogueFromJsonFile`.
+
**Load dialogue tree from a scene variable**
Load a dialogue data object - Yarn JSON format, stored in a scene variable. Use this command to load all the Dialogue data at the beginning of the game.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🗄️ Scene variable): Scene variable that holds the Yarn JSON data
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::LoadDialogueFromSceneVariable`.
+
**Load dialogue state**
Load dialogue state. Use this to restore dialogue state, if you have stored in a variable before with the "Save state" action.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🗄️ Global variable): Global Variable
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::LoadState`.
+
**Save dialogue state**
Save dialogue state. Use this to store the dialogue state into a variable, which can later be used for saving the game. That way player choices can become part of the game save.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🗄️ Global variable): Global Variable
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::SaveState`.
+
**Scroll clipped text**
Scroll clipped text. Use this with a timer and "get clipped text" when you want to create a typewriter effect. Every time the action runs, a new character appears from the text.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::ScrollClippedText`.
+
**Select next option**
Select next option (add 1 to selected option number). Use this when the dialogue line is of type "options" and the player has pressed a button to change selected option.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::SelectNextOption`.
+
**Select option by number**
Select option by number. Use this when the dialogue line is of type "options" and the player has pressed a button to change selected option.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔢 Number): Option index number
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::SelectOption`.
+
**Select previous option**
Select previous option (subtract 1 from selected option number). Use this when the dialogue line is of type "options" and the player has pressed a button to change selected option.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::SelectPreviousOption`.
+
**Set dialogue state boolean variable**
Set dialogue state boolean variable. Use this to set a variable that the dialogue data is using.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): State variable name
+ - Parameter 1 (❓ True or False): New value
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::SetBooleanVariable`.
+
**Set dialogue state number variable**
Set dialogue state number variable. Use this to set a variable that the dialogue data is using.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): State variable name
+ - Parameter 1 (🔢 Number): New value
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::SetNumberVariable`.
+
**Set dialogue state string variable**
Set dialogue state string variable. Use this to set a variable that the dialogue data is using.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): State variable name
+ - Parameter 1 (🔤 String): New value
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::SetStringVariable`.
+
**Start dialogue from branch**
Start dialogue from branch. Use this to initiate the dialogue from a specified branch.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Dialogue branch
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::StartDialogueFromBranch`.
+
**Stop running dialogue**
Stop the running dialogue. Use this to interrupt dialogue parsing.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this action.
+
+ > Technical note: this action internal type (in GDevelop JSON) is `DialogueTree::StopRunningDialogue`.
+
+
## Conditions
**Compare dialogue state boolean variable**
Compare dialogue state variable. Use this to trigger game events via dialogue variables.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): State variable
+ - Parameter 1 (❓ True or False): Equal to
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::CompareDialogueStateBooleanVariable`.
+
**Compare dialogue state number variable**
Compare dialogue state number variable. Use this to trigger game events via dialogue variables.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): State variable
+ - Parameter 1 (🔢 Number): Equal to
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::CompareDialogueStateNumberVariable`.
+
**Compare dialogue state string variable**
Compare dialogue state string variable. Use this to trigger game events via dialogue variables.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): State variable
+ - Parameter 1 (🔤 String): Equal to
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::CompareDialogueStateStringVariable`.
+
**Current dialogue branch contains a tag**
Check if the current dialogue branch contains a specific tag. Tags are an alternative useful way to <> to drive game logic with the dialogue data.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): tag name
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::CurrentBranchContainsTag`.
+
**Current dialogue branch title**
Check if the current dialogue branch title is equal to a string. Use this to trigger game events when the player has visited a specific dialogue branch.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): title name
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::CurrentBranchTitle`.
+
**Dialogue has branch**
Check if the dialogue has a branch with specified name. Use this to check if a dialogue branch exists in the loaded dialogue data.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Branch name
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::HasBranch`.
+
**Clipped text has completed scrolling**
Check if the clipped text scrolling has completed. Use this to prevent the player from going to the next dialogue line before the typing effect has revealed the entire text.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::HasClippedTextScrollingCompleted`.
+
**Has selected option changed**
Check if a selected option has changed when the current dialogue line type is options. Use this to detect when the player has selected another option, so you can re-draw where the selection arrow is.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::HasSelectedOptionChanged`.
+
**Command is called**
Check if a specific Command is called. If it is a <>, you can even get the parameter with the CommandParameter expression.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): Command String
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::IsCommandCalled`.
+
**Dialogue line type**
Check if the current dialogue line line is one of the three existing types. Use this to set what logic is executed for each type.
The three types are as follows:
@@ -91,33 +256,65 @@ The three types are as follows:
- options: when displaying [[branching/options]] for dialogue choices.
-command: when <> are triggered by the dialogue data.
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): type (one of: "text", "options", "command")
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::IsDialogueLineType`.
+
**Dialogue is running**
Check if the dialogue is running. Use this to for things like locking the player movement while speaking with a non player character.
+??? quote "See parameters & details"
+
+ There are no parameters to set for this condition.
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::IsDialogueRunning`.
+
**Branch title has been visited**
Check if a branch has been visited
+??? quote "See parameters & details"
+
+ - Parameter 0 (🔤 String): branch title
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DialogueTree::WasBranchVisited`.
+
+
## Expressions
| Expression | Description | |
|-----|-----|-----|
-| `DialogueTree::BranchTag()` | Get a tag of the current branch of the running dialogue via its index ||
+| `DialogueTree::BranchTag(number)` | Get a tag of the current branch of the running dialogue via its index ||
+| | _🔢 Number_ | Tag Index Number |
| `DialogueTree::BranchTags()` | Get the tags of the current branch of the running dialogue ||
| `DialogueTree::BranchText()` | Get the full raw text of the current branch ||
| `DialogueTree::BranchTitle()` | Get the title of the current branch of the running dialogue ||
| `DialogueTree::ClippedLineText()` | Get dialogue line text clipped by the typewriter effect. Use the "Scroll clipped text" action to control the typewriter effect. ||
-| `DialogueTree::CommandParameter()` | Get the parameters of a command call - <> ||
+| `DialogueTree::CommandParameter(number)` | Get the parameters of a command call - <> ||
+| | _🔢 Number_ | parameter Index Number _Optional_. |
| `DialogueTree::CommandParametersCount()` | Get the number of parameters in the currently passed command ||
-| `DialogueTree::HorizontalOptionsList()` | Get the text of all available options from an options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -> ||
+| `DialogueTree::HorizontalOptionsList(string)` | Get the text of all available options from an options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -> ||
+| | _🔤 String_ | Options Selection Cursor |
| `DialogueTree::LineText()` | Returns the current dialogue line text ||
-| `DialogueTree::Option()` | Get the text of an option from an options line type, using the option's Number. The numbers start from 0. ||
+| `DialogueTree::Option(number)` | Get the text of an option from an options line type, using the option's Number. The numbers start from 0. ||
+| | _🔢 Number_ | Option Index Number |
| `DialogueTree::OptionsCount()` | Get the number of options in an options line type ||
| `DialogueTree::SelectedOptionIndex()` | Get the number of the currently selected option. Use this to help you render the option selection marker at the right place. ||
-| `DialogueTree::TagParameter()` | Get parameter from a Tag found by the branch contains tag condition ||
-| `DialogueTree::Variable()` | Get the number stored in a dialogue state variable ||
-| `DialogueTree::VariableString()` | Get the string stored in a dialogue state variable ||
-| `DialogueTree::VerticalOptionsList()` | Get the text of all available options from an options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -> ||
+| `DialogueTree::TagParameter(number)` | Get parameter from a Tag found by the branch contains tag condition ||
+| | _🔢 Number_ | parameter Index Number _Optional_. |
+| `DialogueTree::Variable(string)` | Get the number stored in a dialogue state variable ||
+| | _🔤 String_ | Dialogue state variable name |
+| `DialogueTree::VariableString(string)` | Get the string stored in a dialogue state variable ||
+| | _🔤 String_ | Dialogue state variable name |
+| `DialogueTree::VerticalOptionsList(string)` | Get the text of all available options from an options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -> ||
+| | _🔤 String_ | Options Selection Cursor |
| `DialogueTree::VisitedBranchTitles()` | Get a list of all visited branches ||
+
+
---
-*This page is an auto-generated reference page about the **Dialogue Tree** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Dialogue Tree extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Dialogue Tree** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/draggable-behavior/reference.md b/docs/gdevelop5/all-features/draggable-behavior/reference.md
index 164eec5c5b5..77aa3f2a24e 100644
--- a/docs/gdevelop5/all-features/draggable-behavior/reference.md
+++ b/docs/gdevelop5/all-features/draggable-behavior/reference.md
@@ -8,16 +8,45 @@ Allows objects to be moved using the mouse (or touch). Add the behavior to an ob
Move objects by holding a mouse button (or touch).
+### Behavior properties
+
+- **Precise check** (🔘 Boolean). Use the object (custom) collision mask instead of the bounding box, making the behavior more precise at the cost of reduced performance. Default value is `true`.
+
+??? quote "See internal technical details"
+
+
+ - **Precise check** is stored as `checkCollisionMask` (Boolean). Default value is `true`.
+
### Behavior conditions
**Being dragged**
-Check if the object is being dragged.
+Check if the object is being dragged. This means the mouse button or touch is pressed on it. When the mouse button or touch is released, the object is no longer being considered dragged (use the condition "Was just dropped" to check when the dragging is ending).
+
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DraggableBehavior::Dragged`.
**Was just dropped**
-Check if the object was just dropped after being dragged.
+Check if the object was just dropped after being dragged (the mouse button or touch was just released this frame).
+
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `DraggableBehavior::Dropped`.
+
_No expressions for this behavior._
+
+
---
-*This page is an auto-generated reference page about the **Draggable Behavior** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Draggable Behavior extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Draggable Behavior** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/effect-capability/reference.md b/docs/gdevelop5/all-features/effect-capability/reference.md
index d2e494ea13d..cde3003d740 100644
--- a/docs/gdevelop5/all-features/effect-capability/reference.md
+++ b/docs/gdevelop5/all-features/effect-capability/reference.md
@@ -1,37 +1,91 @@
-# Effect capability Reference
+# Objects with effects Reference
-Apply visual effects to objects. [Read more explanations about it.](/gdevelop5/objects)
+Actions/conditions to enable/disable and change parameters of visual effects applied on objects. [Read more explanations about it.](/gdevelop5/objects)
-## Effect capability
+## Objects with effects
-Apply visual effects to objects.
+Actions/conditions to enable/disable and change parameters of visual effects applied on objects.
### Behavior actions
**Enable an object effect**
Enable an effect on the object
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🔤 Object Effect Name (String)
+ - Parameter 3 (❓ Yes or No): Enable?
+
+ > Technical note: this action internal type (in GDevelop JSON) is `EffectCapability::EffectBehavior::EnableEffect`.
+
**Effect property (enable or disable)**
Enable or disable a property of an effect.
You can find the property names (and change the effect names) in the effects window.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🔤 Object Effect Name (String)
+ - Parameter 3: 🔤 Object Effect Property Name (String)
+ - Parameter 4 (❓ Yes or No): Enable this property
+
+ > Technical note: this action internal type (in GDevelop JSON) is `EffectCapability::EffectBehavior::SetEffectBooleanParameter`.
+
**Effect property (number)**
Change the value of a property of an effect.
You can find the property names (and change the effect names) in the effects window.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🔤 Object Effect Name (String)
+ - Parameter 3: 🔤 Object Effect Property Name (String)
+ - Parameter 4 (🔢 Number): New value
+
+ > Technical note: this action internal type (in GDevelop JSON) is `EffectCapability::EffectBehavior::SetEffectDoubleParameter`.
+
**Effect property (string)**
Change the value (string) of a property of an effect.
You can find the property names (and change the effect names) in the effects window.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🔤 Object Effect Name (String)
+ - Parameter 3: 🔤 Object Effect Property Name (String)
+ - Parameter 4 (🔤 String): New value
+
+ > Technical note: this action internal type (in GDevelop JSON) is `EffectCapability::EffectBehavior::SetEffectStringParameter`.
+
+
### Behavior conditions
**Effect is enabled**
Check if the effect on an object is enabled.
+??? quote "See parameters & details"
+
+ - Parameter 0: 👾 Object
+ - Parameter 1: 🧩 Behavior
+ - Parameter 2: 🔤 Object Effect Name (String)
+
+ > Technical note: this condition internal type (in GDevelop JSON) is `EffectCapability::EffectBehavior::IsEffectEnabled`.
+
+
_No expressions for this behavior._
+
+
---
-*This page is an auto-generated reference page about the **Effect capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Objects with effects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Objects with effects** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/effects/reference.md b/docs/gdevelop5/all-features/effects/reference.md
index 019fbf972ae..61ff3517524 100644
--- a/docs/gdevelop5/all-features/effects/reference.md
+++ b/docs/gdevelop5/all-features/effects/reference.md
@@ -4,5 +4,491 @@ Lots of different effects to be used in your game. [Read more explanations about
+### Effect "Adjustment"
+
+Adjust gamma, contrast, saturation, brightness, alpha or color-channel shift.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Alpha (between 0 and 1, 0 is transparent)**. Default value is `1`. For events, write: `"alpha"`.
+- **Blue (between 0 and 5)**. Default value is `1`. For events, write: `"blue"`.
+- **Brightness (between 0 and 5)**. Default value is `1`. For events, write: `"brightness"`.
+- **Contrast (between 0 and 5)**. Default value is `1`. For events, write: `"contrast"`.
+- **Gamma (between 0 and 5)**. Default value is `1`. For events, write: `"gamma"`.
+- **Green (between 0 and 5)**. Default value is `1`. For events, write: `"green"`.
+- **Red (between 0 and 5)**. Default value is `1`. For events, write: `"red"`.
+- **Saturation (between 0 and 5)**. Default value is `1`. For events, write: `"saturation"`.
+
+### Effect "Advanced bloom"
+
+Applies a bloom effect.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Bloom Scale (between 0 and 2)**. Default value is `0.7`. For events, write: `"bloomScale"`.
+- **Blur (between 0 and 20)**. Default value is `4`. For events, write: `"blur"`.
+- **Brightness (between 0 and 2)**. Default value is `0.7`. For events, write: `"brightness"`.
+- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`.
+- **Quality (between 0 and 20)**. Default value is `7`. For events, write: `"quality"`.
+- **Threshold (between 0 and 1)**. Default value is `0.5`. For events, write: `"threshold"`.
+
+### Effect "ASCII"
+
+Render the image with ASCII characters only.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Size (between 2 and 20)**. Default value is `8`. For events, write: `"size"`.
+
+### Effect "Beveled edges"
+
+Add beveled edges around the rendered image.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Distance (between 10 and 20)**. Default value is `15`. For events, write: `"distance"`.
+- **Light alpha (between 0 and 1)**. Default value is `1`. For events, write: `"lightAlpha"`.
+- **Light color (color of the outline)**. Default value is `255;255;255`. For events, write: `"lightColor"`.
+- **Rotation (between 0 and 360)**. Default value is `1`. For events, write: `"rotation"`.
+- **Shadow alpha (between 0 and 1)**. Default value is `1`. For events, write: `"shadowAlpha"`.
+- **Shadow color (color of the outline)**. Default value is `0;0;0`. For events, write: `"shadowColor"`.
+- **Outer strength (between 0 and 5)**. Default value is `2`. For events, write: `"thickness"`.
+
+### Effect "Black and White"
+
+Alter the colors to make the image black and white
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Opacity (between 0 and 1)**. Default value is `1`. For events, write: `"opacity"`.
+
+### Effect "Blending mode"
+
+Alter the rendered image with the specified blend mode.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Mode (0: Normal, 1: Add, 2: Multiply, 3: Screen)**. Default value is `0`. For events, write: `"blendmode"`.
+- **Opacity (between 0 and 1)**. Default value is `1`. For events, write: `"opacity"`.
+
+### Effect "Blur (Gaussian, slow - prefer to use Kawase blur)"
+
+Blur the rendered image. This is slow, so prefer to use Kawase blur in most cases.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Blur intensity**. Default value is `8`. For events, write: `"blur"`.
+- **Kernel size (one of these values: 5, 7, 9, 11, 13, 15)**. Default value is `5`. For events, write: `"kernelSize"`.
+- **Number of render passes. An high value will cause lags/poor performance.**. Default value is `1`. For events, write: `"quality"`.
+- **Resolution**. Default value is `2`. For events, write: `"resolution"`.
+
+### Effect "Brightness"
+
+Make the image brighter.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Brightness (between 0 and 1)**. Default value is `0.8`. For events, write: `"brightness"`.
+
+### Effect "Bulge Pinch"
+
+Bulges or pinches the image in a circle.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Center X (between 0 and 1, 0.5 is image middle)**. Default value is `0`. For events, write: `"centerX"`.
+- **Center Y (between 0 and 1, 0.5 is image middle)**. Default value is `0`. For events, write: `"centerY"`.
+- **Radius**. Default value is `100`. For events, write: `"radius"`.
+- **strength (between -1 and 1)**: -1 is strong pinch, 0 is no effect, 1 is strong bulge. Default value is `1`. For events, write: `"strength"`.
+
+### Effect "CRT"
+
+Apply an effect resembling old CRT monitors.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Noise Frequency**: Number of updates per second (0: no updates). Default value is `60`. For events, write: `"animationFrequency"`.
+- **Interlaced Lines Speed**: 0: Pause, 0.5: Half speed, 1: Normal speed, 2: Double speed, etc.... Default value is `1`. For events, write: `"animationSpeed"`.
+- **Curvature (between 0 and 10)**. Default value is `1`. For events, write: `"curvature"`.
+- **Line contrast (between 0 and 1)**. Default value is `0.25`. For events, write: `"lineContrast"`.
+- **Line width (between 0 and 5)**. Default value is `1`. For events, write: `"lineWidth"`.
+- **Noise (between 0 and 1)**. Default value is `0.3`. For events, write: `"noise"`.
+- **Noise size (between 0 and 10)**. Default value is `1`. For events, write: `"noiseSize"`.
+- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`.
+- **Show vertical lines**. Default value is `false`. For events, write: `"verticalLine"`.
+- **Vignetting (between 0 and 1)**. Default value is `0.3`. For events, write: `"vignetting"`.
+- **Vignetting alpha (between 0 and 1)**. Default value is `1`. For events, write: `"vignettingAlpha"`.
+- **Vignetting blur (between 0 and 1)**. Default value is `0.3`. For events, write: `"vignettingBlur"`.
+
+### Effect "Color Map"
+
+Change the color rendered on screen.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Color map texture for the effect**: You can change colors of pixels by modifying a reference color image, containing each colors, called the *Color Map Texture*. To get started, **download** [a default color map texture here](https://wiki.gdevelop.io/gdevelop5/interface/scene-editor/layer-effects).. For events, write: `"colorMapTexture"`.
+- **Mix**: Mix value of the effect on the layer (in percent). Default value is `100`. For events, write: `"mix"`.
+- **Disable anti-aliasing ("nearest" pixel rounding)**. Default value is `false`. For events, write: `"nearest"`.
+
+### Effect "Color Replace"
+
+Effect replacing a color (or similar) by another.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Epsilon (between 0 and 1)**: Tolerance/sensitivity of the floating-point comparison between colors (lower = more exact, higher = more inclusive). Default value is `0.4`. For events, write: `"epsilon"`.
+- **New Color**: The new color. Default value is `255;255;255`. For events, write: `"newColor"`.
+- **Original Color**: The color that will be changed. Default value is `252;3;65`. For events, write: `"originalColor"`.
+
+### Effect "Displacement"
+
+Uses the pixel values from the specified texture (called the displacement map) to perform a displacement of an object.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Displacement map texture**: Displacement map texture for the effect. To get started, **download** [a default displacement map texture here](https://wiki.gdevelop.io/gdevelop5/interface/scene-editor/layer-effects).. For events, write: `"displacementMapTexture"`.
+- **Scale on X axis**. Default value is `20`. For events, write: `"scaleX"`.
+- **Scale on Y axis**. Default value is `20`. For events, write: `"scaleY"`.
+
+### Effect "Dot"
+
+Applies a dotscreen effect making objects appear to be made out of black and white halftone dots like an old printer.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Angle (between 0 and 5)**: The radius of the effect. Default value is `5`. For events, write: `"angle"`.
+- **Scale (between 0.3 and 1)**: The scale of the effect. Default value is `1`. For events, write: `"scale"`.
+
+### Effect "Drop shadow"
+
+Add a shadow around the rendered image.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Alpha (between 0 and 1)**. Default value is `1`. For events, write: `"alpha"`.
+- **Blur (between 0 and 20)**. Default value is `2`. For events, write: `"blur"`.
+- **Color of the shadow**. Default value is `255;255;255`. For events, write: `"color"`.
+- **Distance (between 0 and 50)**. Default value is `1`. For events, write: `"distance"`.
+- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`.
+- **Quality (between 1 and 20)**. Default value is `3`. For events, write: `"quality"`.
+- **Rotation (between 0 and 360)**. Default value is `0`. For events, write: `"rotation"`.
+- **Shadow only (shows only the shadow when enabled)**. Default value is `false`. For events, write: `"shadowOnly"`.
+
+### Effect "Glitch"
+
+Applies a glitch effect to an object.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Animation Frequency**: Number of updates per second (0: no updates). Default value is `60`. For events, write: `"animationFrequency"`.
+- **Average**: Divide the bands roughly based on equal amounts. Default value is `false`. For events, write: `"average"`.
+- **Blue X offset (between -50 and 50)**. Default value is `10`. For events, write: `"blueX"`.
+- **Blue Y offset (between -50 and 50)**. Default value is `-4`. For events, write: `"blueY"`.
+- **Direction (between -180 and 180)**: The angle in degree of the offset of slices. Default value is `0`. For events, write: `"direction"`.
+- **Fill Mode (between 0 and 4)**: The fill mode of the space after the offset.(0: TRANSPARENT, 1: ORIGINAL, 2: LOOP, 3: CLAMP, 4: MIRROR). Default value is `0`. For events, write: `"fillMode"`.
+- **Green X offset (between -50 and 50)**. Default value is `10`. For events, write: `"greenX"`.
+- **Green Y offset (between -50 and 50)**. Default value is `-4`. For events, write: `"greenY"`.
+- **Min Size**: Minimum size of individual slice. Default value is `8`. For events, write: `"minSize"`.
+- **Offset (between -400 and 400)**: The maximum offset amount of slices. Default value is `100`. For events, write: `"offset"`.
+- **Red X offset (between -50 and 50)**. Default value is `2`. For events, write: `"redX"`.
+- **Red Y offset (between -50 and 50)**. Default value is `2`. For events, write: `"redY"`.
+- **Sample Size**: The resolution of the displacement image. Default value is `512`. For events, write: `"sampleSize"`.
+- **Slices (between 2 and infinite)**: The maximum number of slices. Default value is `5`. For events, write: `"slices"`.
+
+### Effect "Glow"
+
+Add a glow effect around the rendered image.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Color (color of the outline)**. Default value is `255;255;255`. For events, write: `"color"`.
+- **Distance (between 10 and 20)**. Default value is `15`. For events, write: `"distance"`.
+- **Inner strength (between 0 and 20)**. Default value is `1`. For events, write: `"innerStrength"`.
+- **Outer strength (between 0 and 20)**. Default value is `2`. For events, write: `"outerStrength"`.
+
+### Effect "Godray"
+
+Apply and animate atmospheric light rays.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Angle (between -60 and 60)**. Default value is `30`. For events, write: `"angle"`.
+- **Animation Speed**: 0: Pause, 0.5: Half speed, 1: Normal speed, 2: Double speed, etc.... Default value is `1`. For events, write: `"animationSpeed"`.
+- **Gain (between 0 and 1)**. Default value is `0.6`. For events, write: `"gain"`.
+- **Lacunarity (between 0 and 5)**. Default value is `2.75`. For events, write: `"lacunarity"`.
+- **Light (between 0 and 60)**. Default value is `30`. For events, write: `"light"`.
+- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`.
+- **Parallel (parallel rays)**. Default value is `true`. For events, write: `"parallel"`.
+- **Center X (between 100 and 1000)**. Default value is `100`. For events, write: `"x"`.
+- **Center Y (between -1000 and 100)**. Default value is `100`. For events, write: `"y"`.
+
+### Effect "HSL Adjustment"
+
+Adjust hue, saturation and lightness.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Alpha (between 0 and 1, 0 is transparent)**. Default value is `1`. For events, write: `"alpha"`.
+- **Colorize from the grayscale image**. Default value is `false`. For events, write: `"colorize"`.
+- **Hue in degrees (between -180 and 180)**. Default value is `0`. For events, write: `"hue"`.
+- **Lightness (between -1 and 1)**. Default value is `0`. For events, write: `"lightness"`.
+- **Saturation (between -1 and 1)**. Default value is `0`. For events, write: `"saturation"`.
+
+### Effect "Blur (Kawase, fast)"
+
+Blur the rendered image, with much better performance than Gaussian blur.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Blur (between 0 and 20)**. Default value is `0.5`. For events, write: `"blur"`.
+- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`.
+- **Pixelize X (between 0 and 10)**. Default value is `1`. For events, write: `"pixelizeX"`.
+- **Pixelize Y (between 0 and 10)**. Default value is `1`. For events, write: `"pixelizeY"`.
+- **Quality (between 1 and 20)**. Default value is `3`. For events, write: `"quality"`.
+
+### Effect "Light Night"
+
+Alter the colors to simulate night.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Opacity (between 0 and 1)**. Default value is `1`. For events, write: `"opacity"`.
+
+### Effect "Motion Blur"
+
+Blur the rendered image to give a feeling of speed.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Kernel size (odd number between 3 and 25)**: Quality of the blur.. Default value is `5`. For events, write: `"kernelSize"`.
+- **Offset**. Default value is `0`. For events, write: `"offset"`.
+- **Velocity on X axis**. Default value is `0`. For events, write: `"velocityX"`.
+- **Velocity on Y axis**. Default value is `0`. For events, write: `"velocityY"`.
+
+### Effect "Dark Night"
+
+Alter the colors to simulate a dark night.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Intensity (between 0 and 1)**. Default value is `0.5`. For events, write: `"intensity"`.
+- **Opacity (between 0 and 1)**. Default value is `0.5`. For events, write: `"opacity"`.
+
+### Effect "Noise"
+
+Add some noise on the rendered image.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Noise intensity (between 0 and 1)**. Default value is `0.5`. For events, write: `"noise"`.
+
+### Effect "Old Film"
+
+Add a Old film effect around the rendered image.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Animation Frequency**: Number of updates per second (0: no updates). Default value is `60`. For events, write: `"animationFrequency"`.
+- **Noise (between 0 and 1)**: Opacity/intensity of the noise effect. Default value is `0.3`. For events, write: `"noise"`.
+- **Noise Size (between 0 and 10)**: The size of the noise particles. Default value is `1`. For events, write: `"noiseSize"`.
+- **Scratch (between -1 and 1)**: How often scratches appear. Default value is `0.5`. For events, write: `"scratch"`.
+- **Scratch Density (between 0 and 1)**: The density of the number of scratches. Default value is `0.3`. For events, write: `"scratchDensity"`.
+- **Scratch Width (between 1 and 20)**: The width of the scratches. Default value is `1.0`. For events, write: `"scratchWidth"`.
+- **Sepia (between 0 and 1)**: The amount of saturation of sepia effect, a value of 1 is more saturation and closer to 0 is less, and a value of 0 produces no sepia effect. Default value is `0.3`. For events, write: `"sepia"`.
+- **Vignetting (between 0 and 1)**: The radius of the vignette effect. Default value is `0.3`. For events, write: `"vignetting"`.
+- **Vignetting Alpha (between 0 and 1)**. Default value is `1.0`. For events, write: `"vignettingAlpha"`.
+- **Vignetting Blur (between 0 and 1)**. Default value is `0.3`. For events, write: `"vignettingBlur"`.
+
+### Effect "Outline"
+
+Draws an outline around the rendered image.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Color of the outline**. Default value is `255;255;255`. For events, write: `"color"`.
+- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`.
+- **Thickness (between 0 and 20)**. Default value is `2`. For events, write: `"thickness"`.
+
+### Effect "Pixelate"
+
+Applies a pixelate effect, making display objects appear 'blocky'.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Size**: Size of the pixels (10 pixels by default). Default value is `10`. For events, write: `"size"`.
+
+### Effect "RGB split (chromatic aberration)"
+
+Applies a RGB split effect also known as chromatic aberration.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Blue X offset (between -20 and 20)**. Default value is `0`. For events, write: `"blueX"`.
+- **Blue Y offset (between -20 and 20)**. Default value is `10`. For events, write: `"blueY"`.
+- **Green X offset (between -20 and 20)**. Default value is `0`. For events, write: `"greenX"`.
+- **Green Y offset (between -20 and 20)**. Default value is `0`. For events, write: `"greenY"`.
+- **Red X offset (between -20 and 20)**. Default value is `-10`. For events, write: `"redX"`.
+- **Red Y offset (between -20 and 20)**. Default value is `1`. For events, write: `"redY"`.
+
+### Effect "Radial Blur"
+
+Applies a Motion blur to an object.
+
+This effect is for 2D layers only.
+
+Properties of this effect are:
+
+- **Angle (between -180 and 180)**: The angle in degree of the motion for blur effect. Default value is `0`. For events, write: `"angle"`.
+- **Center X (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"centerX"`.
+- **Center Y (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"centerY"`.
+- **Kernel Size (between 3 and 25)**: The kernel size of the blur filter (Odd number). Default value is `5`. For events, write: `"kernelSize"`.
+- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`.
+- **Radius**: The maximum size of the blur radius, -1 is infinite. Default value is `-1`. For events, write: `"radius"`.
+
+### Effect "Reflection"
+
+Applies a reflection effect to simulate the reflection on water with waves.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Alpha ending**: Ending alpha (1 by default). Default value is `1`. For events, write: `"alphaEnding"`.
+- **Alpha start**: Starting alpha (1 by default). Default value is `1`. For events, write: `"alphaStart"`.
+- **Amplitude ending**: Ending amplitude of waves (20 by default). Default value is `20`. For events, write: `"amplitudeEnding"`.
+- **Amplitude start**: Starting amplitude of waves (0 by default). Default value is `0`. For events, write: `"amplitudeStart"`.
+- **Animation Speed**: 0: Pause, 0.5: Half speed, 1: Normal speed, 2: Double speed, etc.... Default value is `1`. For events, write: `"animationSpeed"`.
+- **Vertical position of the reflection point**: Default is 50% (middle). Smaller numbers produce a larger reflection, larger numbers produce a smaller reflection.. Default value is `0.5`. For events, write: `"boundary"`.
+- **Reflect the image on the waves**. Default value is `true`. For events, write: `"mirror"`.
+- **Wave length ending**: Ending wave length (100 by default). Default value is `100`. For events, write: `"waveLengthEnding"`.
+- **Wave length start**: Starting wave length (30 by default). Default value is `30`. For events, write: `"waveLengthStart"`.
+
+### Effect "Sepia"
+
+Alter the colors to sepia.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Opacity (between 0 and 1)**. Default value is `1`. For events, write: `"opacity"`.
+
+### Effect "Shockwave"
+
+Deform the image the way a drop deforms a water surface.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Amplitude**. Default value is `50`. For events, write: `"amplitude"`.
+- **Brightness**. Default value is `1`. For events, write: `"brightness"`.
+- **Center on X axis**. Default value is `0.5`. For events, write: `"centerX"`.
+- **Center on Y axis**: (0,0) is the top-left and (1,1) is the bottom right.. Default value is `0.5`. For events, write: `"centerY"`.
+- **Maximum radius (0 for infinity)**. Default value is `0`. For events, write: `"radius"`.
+- **Spreading speed (in pixels per second)**. Default value is `500`. For events, write: `"speed"`.
+- **Elapsed time**: It can be set back to 0 to play the shockwave animation again.. Default value is `0`. For events, write: `"time"`.
+- **Wavelength**. Default value is `200`. For events, write: `"wavelength"`.
+
+### Effect "Tilt shift"
+
+Render a tilt-shift-like camera effect.
+
+This effect is for 2D layers or objects only.
+
+Properties of this effect are:
+
+- **Blur (between 0 and 200)**. Default value is `30`. For events, write: `"blur"`.
+- **Gradient blur (between 0 and 2000)**. Default value is `1000`. For events, write: `"gradientBlur"`.
+
+### Effect "Twist"
+
+Applies a twist effect making objects appear twisted in the given direction.
+
+This effect is for 2D layers only.
+
+Properties of this effect are:
+
+- **Angle (between -10 and 10)**: The angle in degree of the twist. Default value is `4`. For events, write: `"angle"`.
+- **Offset X (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"offsetX"`.
+- **Offset Y (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"offsetY"`.
+- **Padding**: Padding for the visual effect area. Default value is `20`. For events, write: `"padding"`.
+- **Radius**: The radius of the twist. Default value is `200`. For events, write: `"radius"`.
+
+### Effect "Zoom blur"
+
+Applies a Zoom blur.
+
+This effect is for 2D layers only.
+
+Properties of this effect are:
+
+- **Center X (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"centerX"`.
+- **Center Y (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"centerY"`.
+- **Inner radius**. Default value is `200`. For events, write: `"innerRadius"`.
+- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`.
+- **strength (between 0 and 5)**. Default value is `0.3`. For events, write: `"strength"`.
+
+
+
---
-*This page is an auto-generated reference page about the **Effects** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
+
+The Effects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager.
+
+*This page is an auto-generated reference page about the **Effects** feature of [GDevelop, the open-source, AI-powered, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features).
\ No newline at end of file
diff --git a/docs/gdevelop5/all-features/export-android.png b/docs/gdevelop5/all-features/export-android.png
index 703e362c488..4c3dc4094f6 100644
Binary files a/docs/gdevelop5/all-features/export-android.png and b/docs/gdevelop5/all-features/export-android.png differ
diff --git a/docs/gdevelop5/all-features/expressions-reference.md b/docs/gdevelop5/all-features/expressions-reference.md
index 0286d93bcbc..b01abc3853b 100644
--- a/docs/gdevelop5/all-features/expressions-reference.md
+++ b/docs/gdevelop5/all-features/expressions-reference.md
@@ -20,18 +20,27 @@ Common features that can be used for all objects in GDevelop. [Read more explana
| Expression | Description | |
|-----|-----|-----|
-| `PickedInstancesCount()` | Return the number of instances picked by the previous conditions (or actions). ||
-| `SceneInstancesCount()` | Return the number of instances of the specified objects living on the scene. ||
+| `PickedInstancesCount(object)` | Return the number of instances picked by the previous conditions (or actions). ||
+| | _👾 Object_ | Object |
+| `SceneInstancesCount(object)` | Return the number of instances of the specified objects living on the scene. ||
+| | _👾 Object_ | Object |
| Expression | Description | |
|-----|-----|-----|
-| `Object.Angle()` | Current angle, in degrees, of the object ||
-| `Object.AngleToObject()` | Compute the angle between two objects (in degrees). If you need the angle to an arbitrary position, use AngleToPosition. ||
-| `Object.AngleToPosition()` | Compute the angle between the object center and a "target" position (in degrees). If you need the angle between two objects, use AngleToObject. ||
-| `Object.ArrayVariableFirstNumber()` | Get the value of the first element of an object array variable, if it is a number variable. ||
-| `Object.ArrayVariableFirstString()` | Get the value of the first element of an object array variable, if it is a text (string) variable. ||
-| `Object.ArrayVariableLastNumber()` | Get the value of the last element of an object array variable, if it is a number variable. ||
-| `Object.ArrayVariableLastString()` | Get the value of the last element of an object array variable, if it is a text (string) variable. ||
+| `Object.Angle()` | Current angle, in degrees, of the object. For 3D objects, this is the angle around the Z axis. ||
+| `Object.AngleToObject(object)` | Compute the angle between two objects (in degrees). If you need the angle to an arbitrary position, use AngleToPosition. ||
+| | _👾 Object_ | Object |
+| `Object.AngleToPosition(number, number)` | Compute the angle between the object center and a "target" position (in degrees). If you need the angle between two objects, use AngleToObject. ||
+| | _🔢 Number_ | Target X position |
+| | _🔢 Number_ | Target Y position |
+| `Object.ArrayVariableFirstNumber(object variable)` | Get the value of the first element of an object array variable, if it is a number variable. ||
+| | _🗄️ Object variable_ | Array variable |
+| `Object.ArrayVariableFirstString(object variable)` | Get the value of the first element of an object array variable, if it is a text (string) variable. ||
+| | _🗄️ Object variable_ | Array variable |
+| `Object.ArrayVariableLastNumber(object variable)` | Get the value of the last element of an object array variable, if it is a number variable. ||
+| | _🗄️ Object variable_ | Array variable |
+| `Object.ArrayVariableLastString(object variable)` | Get the value of the last element of an object array variable, if it is a text (string) variable. ||
+| | _🗄️ Object variable_ | Array variable |
| `Object.BoundingBoxBottom()` | Return the bounding box (the area encapsulating the object) bottom position. ||
| `Object.BoundingBoxCenterX()` | Return the bounding box (the area encapsulating the object) center X position. ||
| `Object.BoundingBoxCenterY()` | Return the bounding box (the area encapsulating the object) center Y position. ||
@@ -40,8 +49,11 @@ Common features that can be used for all objects in GDevelop. [Read more explana
| `Object.BoundingBoxTop()` | Return the bounding box (the area encapsulating the object) top position. ||
| `Object.CenterX()` | Return the X position of the center of rotation. ||
| `Object.CenterY()` | Return the Y position of the center of rotation. ||
-| `Object.Distance()` | Distance between two objects ||
-| `Object.DistanceToPosition()` | Distance between an object and a position ||
+| `Object.Distance(object)` | Distance between two objects ||
+| | _👾 Object_ | Object |
+| `Object.DistanceToPosition(number, number)` | Distance between an object and a position ||
+| | _🔢 Number_ | Target X position |
+| | _🔢 Number_ | Target Y position |
| `Object.ForceAngle()` | Angle of the sum of forces (in degrees) ||
| `Object.ForceLength()` | Length of the sum of forces ||
| `Object.ForceX()` | X coordinate of the sum of forces ||
@@ -49,17 +61,28 @@ Common features that can be used for all objects in GDevelop. [Read more explana
| `Object.Height()` | Height of the object ||
| `Object.Layer()` | Return the name of the layer the object is on ||
| `Object.ObjectName()` | Return the name of the object ||
-| `Object.ObjectTimerElapsedTime()` | Value of an object timer ||
-| `Object.SqDistance()` | Square distance between two objects ||
-| `Object.SqDistanceToPosition()` | Square distance between an object and a position ||
-| `Object.Variable()` | Number value of an object variable ||
-| `Object.VariableChildCount()` | Number of children in an object array or structure variable ||
-| `Object.VariableString()` | Text of an object variable ||
+| `Object.ObjectTimerElapsedTime(string)` | Value of an object timer ||
+| | _🔤 Name (String)_ | Timer's name |
+| `Object.SqDistance(object)` | Square distance between two objects ||
+| | _👾 Object_ | Object |
+| `Object.SqDistanceToPosition(number, number)` | Square distance between an object and a position ||
+| | _🔢 Number_ | Target X position |
+| | _🔢 Number_ | Target Y position |
+| `Object.Variable(object variable)` | Number value of an object variable ||
+| | _🗄️ Object variable_ | Variable |
+| `Object.VariableChildCount(object variable)` | Number of children in an object array or structure variable ||
+| | _🗄️ Object variable_ | Array or structure variable |
+| `Object.VariableString(object variable)` | Text of an object variable ||
+| | _🗄️ Object variable_ | Variable |
| `Object.Width()` | Width of the object ||
| `Object.X()` | X position of the object ||
-| `Object.XFromAngleAndDistance()` | Compute the X position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. ||
+| `Object.XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. ||
+| | _🔢 Number_ | Angle, in degrees |
+| | _🔢 Number_ | Distance |
| `Object.Y()` | Y position of the object ||
-| `Object.YFromAngleAndDistance()` | Compute the Y position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. ||
+| `Object.YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. ||
+| | _🔢 Number_ | Angle, in degrees |
+| | _🔢 Number_ | Distance |
| `Object.ZOrder()` | Z-order of an object ||
---
@@ -68,13 +91,15 @@ Common features that can be used for all objects in GDevelop. [Read more explana
## Sprite
-Animated object which can be used for most elements of a game. [Read more explanations about it.](/gdevelop5/objects/sprite)
+Animated object which can be used for most elements of a 2D game. [Read more explanations about it.](/gdevelop5/objects/sprite)
| Expression | Description | |
|-----|-----|-----|
| `Object.AnimationFrameCount()` | Number of frames in the current animation of the object ||
-| `Object.PointX()` | X position of a point ||
-| `Object.PointY()` | Y position of a point ||
+| `Object.PointX(object point name)` | X position of a point ||
+| | _🔤 Object Point Name (String)_ | Name of the point |
+| `Object.PointY(object point name)` | Y position of a point ||
+| | _🔤 Object Point Name (String)_ | Name of the point |
| `Object.Sprite()` | Current frame of the animation of the object ||
---
@@ -82,17 +107,25 @@ Animated object which can be used for most elements of a game. [Read more explan
## Conversion
-Expressions to convert number, texts and quantities. [Read more explanations about it.](/gdevelop5/all-features/common-conversions)
+Expressions to convert numbers to string, strings to numbers, angles (degrees from/to radians) and a GDevelop variable to/from a JSON string. [Read more explanations about it.](/gdevelop5/all-features/common-conversions)
| Expression | Description | |
|-----|-----|-----|
-| `LargeNumberToString()` | Convert the result of the expression to text, without using the scientific notation ||
-| `ObjectVarToJSON()` | Convert an object variable to JSON ||
-| `ToDeg()` | Converts the angle, expressed in radians, into degrees ||
-| `ToJSON()` | Convert a variable to JSON ||
-| `ToNumber()` | Convert the text to a number ||
-| `ToRad()` | Converts the angle, expressed in degrees, into radians ||
-| `ToString()` | Convert the result of the expression to text ||
+| `LargeNumberToString(number)` | Convert the result of the expression to text, without using the scientific notation ||
+| | _🔢 Number_ | Expression to be converted to text |
+| `ObjectVarToJSON(object, object variable)` | Convert an object variable to JSON ||
+| | _👾 Object_ | The object with the variable |
+| | _🗄️ Object variable_ | The object variable to be stringified |
+| `ToDeg(number)` | Converts the angle, expressed in radians, into degrees ||
+| | _🔢 Number_ | Angle, in radians |
+| `ToJSON(variable)` | Convert a variable to JSON ||
+| | _🗄️ Any variable_ | The variable to be stringified |
+| `ToNumber(string)` | Convert the text to a number ||
+| | _🔤 String_ | Text to convert to a number |
+| `ToRad(number)` | Converts the angle, expressed in degrees, into radians ||
+| | _🔢 Number_ | Angle, in degrees |
+| `ToString(number)` | Convert the result of the expression to text ||
+| | _🔢 Number_ | Expression to be converted to text |
---
@@ -103,48 +136,53 @@ Actions, conditions and expressions to handle variables, from simple variables l
| Expression | Description | |
|-----|-----|-----|
-| `GlobalVariable()` | Number value of a global variable ||
-| `GlobalVariableChildCount()` | Number of children in a global array or structure variable ||
-| `GlobalVariableFirstNumber()` | Value of the first element of a global array variable, if it is a number variable ||
-| `GlobalVariableFirstString()` | Value of the first element of a global array variable, if it is a text (string) variable. ||
-| `GlobalVariableLastNumber()` | Value of the last element of a global array variable, if it is a number variable ||
-| `GlobalVariableLastString()` | Value of the last element of a global array variable, if it is a text (string) variable. ||
-| `GlobalVariableString()` | Text of a global variable ||
-| `SceneVariableFirstNumber()` | Get the value of the first element of a scene array variable, if it is a number. ||
-| `SceneVariableFirstString()` | Get the value of the first element of a scene array variable, if it is a text (string). ||
-| `SceneVariableLastNumber()` | Get the value of the last element of a scene array variable, if it is a number. ||
-| `SceneVariableLastString()` | Get the value of the last element of a scene array variable, if it is a text (string). ||
-| `Variable()` | Number value of a scene variable ||
-| `VariableChildCount()` | Number of children in a scene array or structure variable ||
-| `VariableFirstNumber()` | Get the value of the first element of an array variable, if it is a number. ||
-| `VariableFirstString()` | Get the value of the first element of an array variable, if it is a text (string). ||
-| `VariableLastNumber()` | Get the value of the last element of an array variable, if it is a number. ||
-| `VariableLastString()` | Get the value of the last element of an array variable, if it is a text (string). ||
-| `VariableString()` | Text of a scene variable ||
+| `VariableChildCount(variable)` | Number of children in a scene array or structure variable ||
+| | _🗄️ Any variable_ | Array or structure variable |
+| `VariableFirstNumber(variable)` | Get the value of the first element of an array variable, if it is a number. ||
+| | _🗄️ Any variable_ | Array variable |
+| `VariableFirstString(variable)` | Get the value of the first element of an array variable, if it is a text (string). ||
+| | _🗄️ Any variable_ | Array variable |
+| `VariableLastNumber(variable)` | Get the value of the last element of an array variable, if it is a number. ||
+| | _🗄️ Any variable_ | Array variable |
+| `VariableLastString(variable)` | Get the value of the last element of an array variable, if it is a text (string). ||
+| | _🗄️ Any variable_ | Array variable |
---
## Mouse and touch
-Conditions and actions to handle either the mouse or touches on touchscreen. By default, conditions related to the mouse will also handle the touches - so that it's easier to handle both in your game. You can disable this behavior if you want to handle them separately in different events. [Read more explanations about it.](/gdevelop5/all-features/mouse-touch)
+Conditions, actions and expressions to handle either the mouse or touches on a touchscreen. Notably: cursor position, mouse wheel, mouse buttons, touch positions, started/end touches, etc...
+
+By default, conditions related to the mouse will also handle the touches - so that it's easier to handle both in your game. You can disable this behavior if you want to handle them separately in different events. [Read more explanations about it.](/gdevelop5/all-features/mouse-touch)
| Expression | Description | |
|-----|-----|-----|
-| `CursorX()` | Return the X position of the cursor or of a touch. ||
-| `CursorY()` | Return the Y position of the cursor or of a touch. ||
+| `CursorX(layer name, number)` | Return the X position of the cursor or of a touch. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `CursorY(layer name, number)` | Return the Y position of the cursor or of a touch. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
| `MouseWheelDelta()` | Mouse wheel displacement ||
| `StartedTouchOrMouseCount()` | The number of touches (including the mouse) that have just started on this frame. The touch identifiers can be accessed using StartedTouchOrMouseId(). ||
-| `StartedTouchOrMouseId()` | The identifier of the touch or mouse that has just started on this frame. The number of touches can be accessed using StartedTouchOrMouseCount(). ||
-| `TouchX()` | Return the X position of a specific touch. ||
-| `TouchY()` | Return the Y position of a specific touch. ||
+| `StartedTouchOrMouseId(number)` | The identifier of the touch or mouse that has just started on this frame. The number of touches can be accessed using StartedTouchOrMouseCount(). ||
+| | _🔢 Number_ | Touch index |
+| `TouchX(number, layer name, number)` | Return the X position of a specific touch. ||
+| | _🔢 Number_ | Touch identifier |
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `TouchY(number, layer name, number)` | Return the Y position of a specific touch. ||
+| | _🔢 Number_ | Touch identifier |
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
---
## Keyboard
-Allows your game to respond to keyboard input. Note that this does not work with on-screen keyboard on touch devices: use instead conditions related to touch when making a game for mobile/touchscreen devices. [Read more explanations about it.](/gdevelop5/all-features/keyboard)
+Conditions to check keys pressed on a keyboard. Note that this does not work with on-screen keyboard on touch devices: use instead mouse/touch conditions when making a game for mobile/touchscreen devices or when making a new game from scratch. [Read more explanations about it.](/gdevelop5/all-features/keyboard)
| Expression | Description | |
|-----|-----|-----|
@@ -155,27 +193,30 @@ Allows your game to respond to keyboard input. Note that this does not work with
## Scene
-Actions and conditions to manipulate the scenes during the game.
+Actions/conditions to change the current scene (or pause it and launch another one, or go back to the previous one), check if a scene or the game has just started/resumed, preload assets of a scene, get the current scene name or loading progress, quit the game, set background color, or disable input when focus is lost.
| Expression | Description | |
|-----|-----|-----|
| `CurrentSceneName()` | Name of the current scene ||
-| `SceneLoadingProgress()` | Return The progress of resources loading in background for a scene (between 0 and 1).. ||
+| `SceneLoadingProgress(scene name)` | Return The progress of resources loading in background for a scene (between 0 and 1).. ||
+| | _🔤 Name of a scene (String)_ | Scene name |
---
## Timers and time
-Actions and conditions to run timers, get the current time or modify the time scale (speed at which the game is running - useful for slow motion effects). [Read more explanations about it.](/gdevelop5/all-features/timers-and-time)
+Actions and conditions to start, pause or reset scene timers, modify the time scale (speed at which the game is running - useful for slow motion effects). Also contains an action that wait for a delay before running the next actions and sub-events and expressions to read the time scale, time delta of the last frame or timer elapsed time. [Read more explanations about it.](/gdevelop5/all-features/timers-and-time)
| Expression | Description | |
|-----|-----|-----|
-| `Time()` | Current time ||
+| `Time(string)` | Gives the current time ||
+| | _🔤 String_ | - Hour of the day: "hour"- Minutes: "min"- Seconds: "sec"- Day of month: "mday"- Months since January: "mon"- Year since 1900: "year"- Days since Sunday: "wday"- Days since Jan 1st: "yday"- Timestamp (ms): "timestamp" |
| `TimeDelta()` | Time elapsed since the last frame rendered on screen ||
-| `TimeFromStart()` | Time elapsed since the beginning of the scene ||
+| `TimeFromStart()` | Time elapsed since the beginning of the scene (in seconds). ||
| `TimeScale()` | Returns the time scale of the scene. ||
-| `TimerElapsedTime()` | Value of a scene timer ||
+| `TimerElapsedTime(string)` | Value of a scene timer (in seconds) ||
+| | _🔤 Name (String)_ | Timer's name |
---
@@ -186,79 +227,184 @@ A set of mathematical functions that can be used in expressions.
| Expression | Description | |
|-----|-----|-----|
-| `AngleBetweenPositions()` | Compute the angle between two positions (in degrees). ||
-| `AngleDifference()` | Difference between two angles ||
-| `DistanceBetweenPositions()` | Compute the distance between two positions. ||
+| `AngleBetweenPositions(number, number, number, number)` | Compute the angle between two positions (in degrees). ||
+| | _🔢 Number_ | First point X position |
+| | _🔢 Number_ | First point Y position |
+| | _🔢 Number_ | Second point X position |
+| | _🔢 Number_ | Second point Y position |
+| `AngleDifference(number, number)` | Difference between two angles ||
+| | _🔢 Number_ | First angle, in degrees |
+| | _🔢 Number_ | Second angle, in degrees |
+| `DistanceBetweenPositions(number, number, number, number)` | Compute the distance between two positions. ||
+| | _🔢 Number_ | First point X position |
+| | _🔢 Number_ | First point Y position |
+| | _🔢 Number_ | Second point X position |
+| | _🔢 Number_ | Second point Y position |
| `Pi()` | The number Pi (3.1415...) ||
-| `Random()` | Random integer ||
-| `RandomFloat()` | Random float ||
-| `RandomFloatInRange()` | Random float in range ||
-| `RandomInRange()` | Random integer in range ||
-| `RandomWithStep()` | Random value in steps ||
-| `XFromAngleAndDistance()` | Compute the X position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. ||
-| `YFromAngleAndDistance()` | Compute the Y position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. ||
-| `abs()` | Absolute value ||
-| `acos()` | Arccosine, return an angle (in radian). `ToDeg` allows to convert it to degrees. ||
-| `acosh()` | Hyperbolic arccosine ||
-| `asin()` | Arcsine, return an angle (in radian). `ToDeg` allows to convert it to degrees. ||
-| `asinh()` | Arcsine ||
-| `atan()` | Arctangent, return an angle (in radian). `ToDeg` allows to convert it to degrees. ||
-| `atan2()` | 2 argument arctangent (atan2) ||
-| `atanh()` | Hyperbolic arctangent ||
-| `cbrt()` | Cube root ||
-| `ceil()` | Round number up to an integer ||
-| `ceilTo()` | Round number up to the Nth decimal place ||
-| `clamp()` | Restrict a value to a given range ||
-| `cos()` | Cosine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. ||
-| `cosh()` | Hyperbolic cosine ||
-| `cot()` | Cotangent of a number ||
-| `csc()` | Cosecant of a number ||
-| `exp()` | Exponential of a number ||
-| `floor()` | Round number down to an integer ||
-| `floorTo()` | Round number down to the Nth decimal place ||
-| `lerp()` | Linearly interpolate a to b by x ||
-| `lerpAngle()` | Linearly interpolates between two angles (in degrees) by taking the shortest direction around the circle. ||
-| `log()` | Logarithm ||
-| `log10()` | Base-10 logarithm ||
-| `log2()` | Base 2 Logarithm ||
-| `max()` | Maximum of two numbers ||
-| `min()` | Minimum of two numbers ||
-| `mod()` | x mod y ||
-| `normalize()` | Remap a value between 0 and 1. ||
-| `nthroot()` | Nth root of a number ||
-| `pow()` | Raise a number to power n ||
-| `round()` | Round a number ||
-| `roundTo()` | Round a number to the Nth decimal place ||
-| `sec()` | Secant ||
-| `sign()` | Return the sign of a number (1,-1 or 0) ||
-| `sin()` | Sine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. ||
-| `sinh()` | Hyperbolic sine ||
-| `sqrt()` | Square root of a number ||
-| `tan()` | Tangent of an angle (in radian). If you want to use degrees, use`ToRad`: `tan(ToRad(45))`. ||
-| `tanh()` | Hyperbolic tangent ||
-| `trunc()` | Truncate a number ||
+| `Random(number)` | Random integer ||
+| | _🔢 Number_ | Maximum value |
+| `RandomFloat(number)` | Random float ||
+| | _🔢 Number_ | Maximum value |
+| `RandomFloatInRange(number, number)` | Random float in range ||
+| | _🔢 Number_ | Minimum value |
+| | _🔢 Number_ | Maximum value |
+| `RandomInRange(number, number)` | Random integer in range ||
+| | _🔢 Number_ | Minimum value |
+| | _🔢 Number_ | Maximum value |
+| `RandomWithStep(number, number, number)` | Random value in steps ||
+| | _🔢 Number_ | Minimum value |
+| | _🔢 Number_ | Maximum value |
+| | _🔢 Number_ | Step |
+| `XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. ||
+| | _🔢 Number_ | Angle, in degrees |
+| | _🔢 Number_ | Distance |
+| `YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. ||
+| | _🔢 Number_ | Angle, in degrees |
+| | _🔢 Number_ | Distance |
+| `abs(number)` | Return the non-negative value by removing the sign. The absolute value of -8 is 8. ||
+| | _🔢 Number_ | Expression |
+| `acos(number)` | Arccosine, return an angle (in radian). `ToDeg` allows to convert it to degrees. ||
+| | _🔢 Number_ | Expression |
+| `acosh(number)` | Hyperbolic arccosine ||
+| | _🔢 Number_ | Expression |
+| `asin(number)` | Arcsine, return an angle (in radian). `ToDeg` allows to convert it to degrees. ||
+| | _🔢 Number_ | Expression |
+| `asinh(number)` | Arcsine ||
+| | _🔢 Number_ | Expression |
+| `atan(number)` | Arctangent, return an angle (in radian). `ToDeg` allows to convert it to degrees. ||
+| | _🔢 Number_ | Expression |
+| `atan2(number, number)` | 2 argument arctangent (atan2) ||
+| | _🔢 Number_ | Y |
+| | _🔢 Number_ | X |
+| `atanh(number)` | Hyperbolic arctangent ||
+| | _🔢 Number_ | Expression |
+| `cbrt(number)` | Cube root ||
+| | _🔢 Number_ | Expression |
+| `ceil(number)` | Round number up to an integer ||
+| | _🔢 Number_ | Expression |
+| `ceilTo(number, number)` | Round number up to the Nth decimal place ||
+| | _🔢 Number_ | Expression |
+| | _🔢 Number_ | Expression _Optional_. |
+| `clamp(number, number, number)` | Restrict a value to a given range ||
+| | _🔢 Number_ | Value |
+| | _🔢 Number_ | Min |
+| | _🔢 Number_ | Max |
+| `cos(number)` | Cosine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. ||
+| | _🔢 Number_ | Expression |
+| `cosh(number)` | Hyperbolic cosine ||
+| | _🔢 Number_ | Expression |
+| `cot(number)` | Cotangent of a number ||
+| | _🔢 Number_ | Expression |
+| `csc(number)` | Cosecant of a number ||
+| | _🔢 Number_ | Expression |
+| `exp(number)` | Exponential of a number ||
+| | _🔢 Number_ | Expression |
+| `floor(number)` | Round number down to an integer ||
+| | _🔢 Number_ | Expression |
+| `floorTo(number, number)` | Round number down to the Nth decimal place ||
+| | _🔢 Number_ | Expression |
+| | _🔢 Number_ | Expression _Optional_. |
+| `lerp(number, number, number)` | Linearly interpolate a to b by x ||
+| | _🔢 Number_ | a (in a+(b-a) * x) |
+| | _🔢 Number_ | b (in a+(b-a) * x) |
+| | _🔢 Number_ | x (in a+(b-a) * x) |
+| `lerpAngle(number, number, number)` | Linearly interpolates between two angles (in degrees) by taking the shortest direction around the circle. ||
+| | _🔢 Number_ | Starting angle, in degrees |
+| | _🔢 Number_ | Destination angle, in degrees |
+| | _🔢 Number_ | Interpolation value between 0 and 1. |
+| `log(number)` | Logarithm ||
+| | _🔢 Number_ | Expression |
+| `log10(number)` | Base-10 logarithm ||
+| | _🔢 Number_ | Expression |
+| `log2(number)` | Base 2 Logarithm ||
+| | _🔢 Number_ | Expression |
+| `max(number, number)` | Maximum of two numbers ||
+| | _🔢 Number_ | First expression |
+| | _🔢 Number_ | Second expression |
+| `min(number, number)` | Minimum of two numbers ||
+| | _🔢 Number_ | First expression |
+| | _🔢 Number_ | Second expression |
+| `mod(number, number)` | Compute "x mod y". GDevelop does NOT support the % operator. Use this mod(x, y) function instead. ||
+| | _🔢 Number_ | x (as in x mod y) |
+| | _🔢 Number_ | y (as in x mod y) |
+| `normalize(number, number, number)` | Remap a value between 0 and 1. ||
+| | _🔢 Number_ | Value |
+| | _🔢 Number_ | Min |
+| | _🔢 Number_ | Max |
+| `nthroot(number, number)` | Nth root of a number ||
+| | _🔢 Number_ | Number |
+| | _🔢 Number_ | N |
+| `pow(number, number)` | Raise a number to power n ||
+| | _🔢 Number_ | Number |
+| | _🔢 Number_ | The exponent (n in "x to the power n") |
+| `round(number)` | Round a number ||
+| | _🔢 Number_ | Expression |
+| `roundTo(number, number)` | Round a number to the Nth decimal place ||
+| | _🔢 Number_ | Number to Round |
+| | _🔢 Number_ | Decimal Places _Optional_. |
+| `sec(number)` | Secant ||
+| | _🔢 Number_ | Expression |
+| `sign(number)` | Return the sign of a number (1,-1 or 0) ||
+| | _🔢 Number_ | Expression |
+| `sin(number)` | Sine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. ||
+| | _🔢 Number_ | Expression |
+| `sinh(number)` | Hyperbolic sine ||
+| | _🔢 Number_ | Expression |
+| `sqrt(number)` | Square root of a number ||
+| | _🔢 Number_ | Expression |
+| `tan(number)` | Tangent of an angle (in radian). If you want to use degrees, use`ToRad`: `tan(ToRad(45))`. ||
+| | _🔢 Number_ | Expression |
+| `tanh(number)` | Hyperbolic tangent ||
+| | _🔢 Number_ | Expression |
+| `trunc(number)` | Truncate a number ||
+| | _🔢 Number_ | Expression |
---
## Layers and cameras
-Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. [Read more explanations about it.](/gdevelop5/interface/scene-editor/layers-and-cameras)
+Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. The zoom of a layer camera (in 2D) or its position in the 3D space (for 3D games) can be changed.
+
+Each layer can be hidden or shown (but layers do not have opacity). Actions/conditions are available to enable/disable 2D/3D effects on layers. Parameters of each effect can be modified with actions.
+ [Read more explanations about it.](/gdevelop5/interface/scene-editor/layers-and-cameras)
| Expression | Description | |
|-----|-----|-----|
-| `CameraAngle()` | Return the angle of rotation of a camera (in degrees). ||
-| `CameraBorderBottom()` | Return the position of the bottom border of a camera. ||
-| `CameraBorderLeft()` | Return the position of the left border of a camera. ||
-| `CameraBorderRight()` | Return the position of the right border of a camera. ||
-| `CameraBorderTop()` | Return the position of the top border of a camera. ||
-| `CameraCenterX()` | Return the X position of the center of a camera. ||
-| `CameraCenterY()` | Return the Y position of the center of a camera. ||
-| `CameraHeight()` | Return the height of a camera of a layer. ||
-| `CameraWidth()` | Return the width of a camera of a layer. ||
-| `CameraZoom()` | Zoom of a camera of a layer ||
-| `LayerDefaultZOrder()` | Default Z Order for a layer ||
-| `LayerTimeScale()` | Returns the time scale of the specified layer. ||
+| `CameraAngle(layer name, number)` | Return the angle of rotation of a camera (in degrees). ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `CameraBorderBottom(layer name, number)` | Return the position of the bottom border of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraBorderLeft(layer name, number)` | Return the position of the left border of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraBorderRight(layer name, number)` | Return the position of the right border of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraBorderTop(layer name, number)` | Return the position of the top border of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraCenterX(layer name, number)` | Return the X position of the center of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `CameraCenterY(layer name, number)` | Return the Y position of the center of a camera. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `CameraHeight(layer name, number)` | Return the height of a camera of a layer. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraWidth(layer name, number)` | Return the width of a camera of a layer. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number _Optional_. |
+| `CameraZoom(layer name, number)` | Zoom of a camera of a layer ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `LayerDefaultZOrder(layer name)` | Default Z Order for a layer ||
+| | _🔤 Layer name (String)_ | Layer |
+| `LayerTimeScale(layer name)` | Returns the time scale of the specified layer. ||
+| | _🔤 Layer name (String)_ | Layer |
---
@@ -270,19 +416,26 @@ GDevelop provides several conditions and actions to play audio files. They can b
| Expression | Description | |
|-----|-----|-----|
| `GlobalVolume()` | Global volume value ||
-| `MusicChannelPitch()` | Music's pitch ||
-| `MusicChannelPlayingOffset()` | Music playing offset ||
-| `MusicChannelVolume()` | Music volume ||
-| `SoundChannelPitch()` | Sound's pitch ||
-| `SoundChannelPlayingOffset()` | Sound playing offset ||
-| `SoundChannelVolume()` | Sound volume ||
+| `MusicChannelPitch(number)` | Music's pitch ||
+| | _🔢 Number_ | Channel |
+| `MusicChannelPlayingOffset(number)` | Music playing offset ||
+| | _🔢 Number_ | Channel |
+| `MusicChannelVolume(number)` | Music volume ||
+| | _🔢 Number_ | Channel |
+| `SoundChannelPitch(number)` | Sound's pitch ||
+| | _🔢 Number_ | Channel |
+| `SoundChannelPlayingOffset(number)` | Sound playing offset ||
+| | _🔢 Number_ | Channel |
+| `SoundChannelVolume(number)` | Sound volume ||
+| | _🔢 Number_ | Channel |
---
## Game window and resolution
-Provides actions and conditions to manipulate the game window. Depending on the platform on which the game is running, not all of these features can be applied. [Read more explanations about it.](/gdevelop5/all-features/window)
+Actions and conditions to manipulate the game window or change how the game is resized according to the screen size. Depending on the platform on which the game is running, not all of these features can be applied.
+Also contains expressions to read the screen size. [Read more explanations about it.](/gdevelop5/all-features/window)
| Expression | Description | |
|-----|-----|-----|
@@ -297,30 +450,59 @@ Provides actions and conditions to manipulate the game window. Depending on the
## Text manipulation
-Provides expressions to manipulate strings (also called texts).
+Provides expressions to manipulate strings (also called texts): new line, upper/lowercase, substring, find, replace, etc...
| Expression | Description | |
|-----|-----|-----|
-| `FromCodePoint()` | Get character from code point ||
+| `FromCodePoint(number)` | Get character from code point ||
+| | _🔢 Number_ | Code point |
| `NewLine()` | Insert a new line ||
-| `StrAt()` | Get a character from a text ||
-| `StrFind()` | Search in a text (return the position of the result or -1 if not found) ||
-| `StrFindFrom()` | Search in a text, starting from a position (return the position of the result or -1 if not found) ||
-| `StrFindLast()` | Search the last occurrence in a string (return the position of the result, from the beginning of the string, or -1 if not found) ||
-| `StrFindLastFrom()` | Search in a text the last occurrence, starting from a position (return the position of the result, from the beginning of the string, or -1 if not found) ||
-| `StrLength()` | Length of a text ||
-| `StrRepeat()` | Repeat a text ||
-| `SubStr()` | Get a portion of a text ||
-| `ToLowerCase()` | Lowercase a text ||
-| `ToUpperCase()` | Uppercase a text ||
+| `StrAt(string, number)` | Get a character from a text ||
+| | _🔤 String_ | Text |
+| | _🔢 Number_ | Position of the character (the first letter is at position 0) |
+| `StrFind(string, string)` | Search in a text (return the position of the result or -1 if not found) ||
+| | _🔤 String_ | Text |
+| | _🔤 String_ | Text to search for |
+| `StrFindFrom(string, string, number)` | Search in a text, starting from a position (return the position of the result or -1 if not found) ||
+| | _🔤 String_ | Text |
+| | _🔤 String_ | Text to search for |
+| | _🔢 Number_ | Position of the first character in the string to be considered in the search |
+| `StrFindLast(string, string)` | Search the last occurrence in a string (return the position of the result, from the beginning of the string, or -1 if not found) ||
+| | _🔤 String_ | Text |
+| | _🔤 String_ | Text to search for |
+| `StrFindLastFrom(string, string, number)` | Search in a text the last occurrence, starting from a position (return the position of the result, from the beginning of the string, or -1 if not found) ||
+| | _🔤 String_ | Text |
+| | _🔤 String_ | Text to search for |
+| | _🔢 Number_ | Position of the last character in the string to be considered in the search |
+| `StrLength(string)` | Length of a text ||
+| | _🔤 String_ | Text |
+| `StrRepeat(string, number)` | Repeat a text ||
+| | _🔤 String_ | Text to repeat |
+| | _🔢 Number_ | Repetition count |
+| `StrReplaceAll(string, string, string)` | Replace all occurrences of a text by another. ||
+| | _🔤 String_ | Text in which the replacement(s) must be done |
+| | _🔤 String_ | Text to find inside the first text |
+| | _🔤 String_ | Replacement to put instead of the text to find |
+| `StrReplaceOne(string, string, string)` | Replace the first occurrence of a text by another. ||
+| | _🔤 String_ | Text in which the replacement must be done |
+| | _🔤 String_ | Text to find inside the first text |
+| | _🔤 String_ | Replacement to put instead of the text to find |
+| `SubStr(string, number, number)` | Get a portion of a text ||
+| | _🔤 String_ | Text |
+| | _🔢 Number_ | Start position of the portion (the first letter is at position 0) |
+| | _🔢 Number_ | Length of the portion |
+| `ToLowerCase(string)` | Lowercase a text ||
+| | _🔤 String_ | Text |
+| `ToUpperCase(string)` | Uppercase a text ||
+| | _🔤 String_ | Text |
---
-## Animatable capability
+## Objects with animations
-Animate objects. [Read more explanations about it.](/gdevelop5/objects)
+Actions and conditions for objects having animations (sprite, 3D models...).. [Read more explanations about it.](/gdevelop5/objects)
| Expression | Description | |
|-----|-----|-----|
@@ -334,9 +516,9 @@ Animate objects. [Read more explanations about it.](/gdevelop5/objects)
-## Effect capability
+## Objects with effects
-Apply visual effects to objects. [Read more explanations about it.](/gdevelop5/objects)
+Actions/conditions to enable/disable and change parameters of visual effects applied on objects. [Read more explanations about it.](/gdevelop5/objects)
_No expressions for this behavior._
@@ -345,9 +527,9 @@ _No expressions for this behavior._
-## Flippable capability
+## Flippable objects
-Flip objects. [Read more explanations about it.](/gdevelop5/objects)
+Actions/conditions for objects which can be flipped horizontally or vertically. [Read more explanations about it.](/gdevelop5/objects)
_No expressions for this behavior._
@@ -356,9 +538,9 @@ _No expressions for this behavior._
-## Resizable capability
+## Resizable objects
-Change the object dimensions. [Read more explanations about it.](/gdevelop5/objects)
+Change or compare the size (width/height) of an object which can be resized (i.e: most objects). [Read more explanations about it.](/gdevelop5/objects)
_No expressions for this behavior._
@@ -367,9 +549,9 @@ _No expressions for this behavior._
-## Scalable capability
+## Scalable objects
-Change the object scale. [Read more explanations about it.](/gdevelop5/objects)
+Actions/conditions/expression to change or check the scale of an object (default: 1). [Read more explanations about it.](/gdevelop5/objects)
| Expression | Description | |
|-----|-----|-----|
@@ -381,9 +563,9 @@ Change the object scale. [Read more explanations about it.](/gdevelop5/objects)
-## Opacity capability
+## Objects with opacity
-Change the object opacity. [Read more explanations about it.](/gdevelop5/objects)
+Action/condition/expression to change or check the opacity of an object (0-255). [Read more explanations about it.](/gdevelop5/objects)
| Expression | Description | |
|-----|-----|-----|
@@ -393,9 +575,9 @@ Change the object opacity. [Read more explanations about it.](/gdevelop5/objects
-## Text capability
+## Objects containing a text
-Access objects text. [Read more explanations about it.](/gdevelop5/objects)
+Allows an object to contain a text, usually shown on screen, that can be modified. [Read more explanations about it.](/gdevelop5/objects)
| Expression | Description | |
|-----|-----|-----|
@@ -436,10 +618,12 @@ Jump and run on platforms. [Read more explanations about it.](/gdevelop5/behavio
## Destroy when outside of the screen (from extension Destroy Outside Screen Behavior)
-Destroy objects automatically when they go outside of the screen's borders. [Read more explanations about it.](/gdevelop5/behaviors/destroyoutside)
-
-_No expressions for this behavior._
+Destroy objects automatically when they go outside of the 2D camera borders. [Read more explanations about it.](/gdevelop5/behaviors/destroyoutside)
+| Expression | Description | |
+|-----|-----|-----|
+| `Object.DestroyOutside::ExtraBorder()` | Return the extra distance (in pixels) the object must travel beyond the screen before it gets deleted. ||
+| `Object.DestroyOutside::UnseenGraceDistance()` | Return the grace distance (in pixels) before deleting the object if it has never been visible on the screen. Useful to avoid objects being deleted before they are visible when they spawn. ||
---
@@ -498,6 +682,7 @@ Displays a text on the screen. [Read more explanations about it.](/gdevelop5/obj
| Expression | Description | |
|-----|-----|-----|
| `Object.FontSize()` | Return the font size of a text object. ||
+| `Object.LineHeight()` | Return the line height of a text object. ||
| `Object.OutlineThickness()` | Return the outline thickness of the text. ||
| `Object.Padding()` | Padding ||
| `Object.ShadowAngle()` | Return the shadow angle of the text. ||
@@ -509,9 +694,9 @@ Displays a text on the screen. [Read more explanations about it.](/gdevelop5/obj
-## Particles emitter (from extension Particle system)
+## 2D particles emitter (from extension Particle system)
-Displays a large number of small particles to create visual effects. [Read more explanations about it.](/gdevelop5/objects/particles_emitter)
+2D effects like smoke, fire or sparks. [Read more explanations about it.](/gdevelop5/objects/particles_emitter)
| Expression | Description | |
|-----|-----|-----|
@@ -574,7 +759,7 @@ _No expressions for this behavior._
## Shape painter
-Allows you to draw simple shapes on the screen using the events. [Read more explanations about it.](/gdevelop5/objects/shape_painter)
+Draw basic 2D shapes using events. [Read more explanations about it.](/gdevelop5/objects/shape_painter)
| Expression | Description | |
|-----|-----|-----|
@@ -588,10 +773,18 @@ Allows you to draw simple shapes on the screen using the events. [Read more expl
| `Object.OutlineColorRed()` | Outline color red component ||
| `Object.OutlineOpacity()` | Outline opacity ||
| `Object.OutlineSize()` | Outline size ||
-| `Object.ToDrawingX()` | X drawing coordinate of a point from the scene ||
-| `Object.ToDrawingY()` | Y drawing coordinate of a point from the scene ||
-| `Object.ToSceneX()` | X scene coordinate of a point from the drawing ||
-| `Object.ToSceneY()` | Y scene coordinate of a point from the drawing ||
+| `Object.ToDrawingX(number, number)` | X drawing coordinate of a point from the scene ||
+| | _🔢 Number_ | X scene position |
+| | _🔢 Number_ | Y scene position |
+| `Object.ToDrawingY(number, number)` | Y drawing coordinate of a point from the scene ||
+| | _🔢 Number_ | X scene position |
+| | _🔢 Number_ | Y scene position |
+| `Object.ToSceneX(number, number)` | X scene coordinate of a point from the drawing ||
+| | _🔢 Number_ | X drawing position |
+| | _🔢 Number_ | Y drawing position |
+| `Object.ToSceneY(number, number)` | Y scene coordinate of a point from the drawing ||
+| | _🔢 Number_ | X drawing position |
+| | _🔢 Number_ | Y drawing position |
---
@@ -610,12 +803,16 @@ Invisible object used to get the text entered with the keyboard. [Read more expl
## Inventories
-Provides actions and conditions to add an inventory to your game, with items in memory. [Read more explanations about it.](/gdevelop5/all-features/inventory)
+Actions and conditions to store named inventories in memory, with items (indexed by their name), a count for each of them, a maximum count and an equipped state. Can be loaded/saved from/to a GDevelop variable. [Read more explanations about it.](/gdevelop5/all-features/inventory)
| Expression | Description | |
|-----|-----|-----|
-| `Inventory::Count()` | Get the number of an item in the inventory ||
-| `Inventory::Maximum()` | Get the maximum of an item in the inventory, or 0 if it is unlimited ||
+| `Inventory::Count(string, string)` | Get the number of an item in the inventory ||
+| | _🔤 String_ | Inventory name |
+| | _🔤 String_ | Item name |
+| `Inventory::Maximum(string, string)` | Get the maximum of an item in the inventory, or 0 if it is unlimited ||
+| | _🔤 String_ | Inventory name |
+| | _🔤 String_ | Item name |
---
@@ -635,8 +832,10 @@ Move objects to a target while avoiding all objects that are flagged as obstacle
| `Object.Pathfinding::DestinationX()` | Destination X position ||
| `Object.Pathfinding::DestinationY()` | Destination Y position ||
| `Object.Pathfinding::ExtraBorder()` | Extra border applied the object on the path ||
-| `Object.Pathfinding::GetNodeX()` | Get next waypoint X position ||
-| `Object.Pathfinding::GetNodeY()` | Get next waypoint Y position ||
+| `Object.Pathfinding::GetNodeX(number)` | Get next waypoint X position ||
+| | _🔢 Number_ | Node index (start at 0!) |
+| `Object.Pathfinding::GetNodeY(number)` | Get next waypoint Y position ||
+| | _🔢 Number_ | Node index (start at 0!) |
| `Object.Pathfinding::GridOffsetX()` | Return X offset of the virtual grid. ||
| `Object.Pathfinding::GridOffsetY()` | Return Y offset of the virtual grid. ||
| `Object.Pathfinding::LastNodeX()` | Last waypoint X position ||
@@ -681,16 +880,28 @@ Make objects move as if they are subject to the laws of physics. If you're creat
## 3D
-Support for 3D in GDevelop.
+Support for 3D in GDevelop: this provides 3D objects and the common features for all 3D objects.
| Expression | Description | |
|-----|-----|-----|
-| `Scene3D::CameraFarPlane()` | Return the camera far plane distance. ||
-| `Scene3D::CameraFov()` | Return the camera field of view. ||
-| `Scene3D::CameraNearPlane()` | Return the camera near plane distance. ||
-| `Scene3D::CameraRotationX()` | Return the camera rotation on X axis. ||
-| `Scene3D::CameraRotationY()` | Return the camera rotation on Y axis. ||
-| `Scene3D::CameraZ()` | Return the camera position on Z axis. ||
+| `Scene3D::CameraFarPlane(layer name, number)` | Return the camera far plane distance. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `Scene3D::CameraFov(layer name, number)` | Return the camera field of view. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `Scene3D::CameraNearPlane(layer name, number)` | Return the camera near plane distance. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `Scene3D::CameraRotationX(layer name, number)` | Return the camera rotation on X axis. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `Scene3D::CameraRotationY(layer name, number)` | Return the camera rotation on Y axis. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
+| `Scene3D::CameraZ(layer name, number)` | Return the camera position on Z axis. ||
+| | _🔤 Layer name (String)_ | Layer _Optional_. |
+| | _🔢 Number_ | Camera number (default : 0) _Optional_. |
## 3D Box (from extension 3D)
@@ -701,14 +912,14 @@ _No expressions for this object._
## 3D Model (from extension 3D)
-An animated 3D model.
+An animated 3D model, useful for most elements of a 3D game.
_No expressions for this object._
## 3D capability (from extension 3D)
-Move the object in 3D space.
+Common features for all 3D objects: position in 3D space (including the Z axis, in addition to X and Y), size (including depth, in addition to width and height), rotation (on X and Y axis, in addition to the Z axis), scale (including Z axis, in addition to X and Y), flipping (on Z axis, in addition to horizontal (Y)/vertical (X) flipping).
| Expression | Description | |
|-----|-----|-----|
@@ -738,7 +949,7 @@ Provides advanced features related to the game window positioning and interactio
## BBText (from extension BBCode Text Object)
-Displays a rich text label using BBCode markup (allowing to set parts of the text as bold, italic, use different colors and shadows). [Read more explanations about it.](/gdevelop5/objects/bbtext)
+Formatted text allowing to mix styles using BBCode markup. [Read more explanations about it.](/gdevelop5/objects/bbtext)
| Expression | Description | |
|-----|-----|-----|
@@ -754,7 +965,7 @@ Displays a rich text label using BBCode markup (allowing to set parts of the tex
## Bitmap Text
-Displays a text using a "Bitmap Font" (an image representing characters). This is more performant than a traditional Text object and it allows for complete control on the characters aesthetic. [Read more explanations about it.](/gdevelop5/objects/bitmap_text)
+Image-based text. [Read more explanations about it.](/gdevelop5/objects/bitmap_text)
| Expression | Description | |
|-----|-----|-----|
@@ -793,22 +1004,30 @@ Handle dialogue trees, made using Yarn Spinner. Useful to make complex dialogues
| Expression | Description | |
|-----|-----|-----|
-| `DialogueTree::BranchTag()` | Get a tag of the current branch of the running dialogue via its index ||
+| `DialogueTree::BranchTag(number)` | Get a tag of the current branch of the running dialogue via its index ||
+| | _🔢 Number_ | Tag Index Number |
| `DialogueTree::BranchTags()` | Get the tags of the current branch of the running dialogue ||
| `DialogueTree::BranchText()` | Get the full raw text of the current branch ||
| `DialogueTree::BranchTitle()` | Get the title of the current branch of the running dialogue ||
| `DialogueTree::ClippedLineText()` | Get dialogue line text clipped by the typewriter effect. Use the "Scroll clipped text" action to control the typewriter effect. ||
-| `DialogueTree::CommandParameter()` | Get the parameters of a command call - <> ||
+| `DialogueTree::CommandParameter(number)` | Get the parameters of a command call - <> ||
+| | _🔢 Number_ | parameter Index Number _Optional_. |
| `DialogueTree::CommandParametersCount()` | Get the number of parameters in the currently passed command ||
-| `DialogueTree::HorizontalOptionsList()` | Get the text of all available options from an options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -> ||
+| `DialogueTree::HorizontalOptionsList(string)` | Get the text of all available options from an options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -> ||
+| | _🔤 String_ | Options Selection Cursor |
| `DialogueTree::LineText()` | Returns the current dialogue line text ||
-| `DialogueTree::Option()` | Get the text of an option from an options line type, using the option's Number. The numbers start from 0. ||
+| `DialogueTree::Option(number)` | Get the text of an option from an options line type, using the option's Number. The numbers start from 0. ||
+| | _🔢 Number_ | Option Index Number |
| `DialogueTree::OptionsCount()` | Get the number of options in an options line type ||
| `DialogueTree::SelectedOptionIndex()` | Get the number of the currently selected option. Use this to help you render the option selection marker at the right place. ||
-| `DialogueTree::TagParameter()` | Get parameter from a Tag found by the branch contains tag condition ||
-| `DialogueTree::Variable()` | Get the number stored in a dialogue state variable ||
-| `DialogueTree::VariableString()` | Get the string stored in a dialogue state variable ||
-| `DialogueTree::VerticalOptionsList()` | Get the text of all available options from an options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -> ||
+| `DialogueTree::TagParameter(number)` | Get parameter from a Tag found by the branch contains tag condition ||
+| | _🔢 Number_ | parameter Index Number _Optional_. |
+| `DialogueTree::Variable(string)` | Get the number stored in a dialogue state variable ||
+| | _🔤 String_ | Dialogue state variable name |
+| `DialogueTree::VariableString(string)` | Get the string stored in a dialogue state variable ||
+| | _🔤 String_ | Dialogue state variable name |
+| `DialogueTree::VerticalOptionsList(string)` | Get the text of all available options from an options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -> ||
+| | _🔤 String_ | Options Selection Cursor |
| `DialogueTree::VisitedBranchTitles()` | Get a list of all visited branches ||
---
@@ -828,17 +1047,20 @@ Allow your game to send scores and interact with the Facebook Instant Games plat
## File system
-Access the filesystem of the operating system. [Read more explanations about it.](/gdevelop5/all-features/filesystem)
+Access the filesystem of the operating system - only works on native, desktop games exported to Windows, Linux or macOS. [Read more explanations about it.](/gdevelop5/all-features/filesystem)
| Expression | Description | |
|-----|-----|-----|
| `FileSystem::DesktopPath()` | Get the path to the desktop folder. ||
-| `FileSystem::DirectoryName()` | Returns the portion of the path that represents the directories, without the ending file name. ||
+| `FileSystem::DirectoryName(string)` | Returns the portion of the path that represents the directories, without the ending file name. ||
+| | _🔤 String_ | File or folder path |
| `FileSystem::DocumentsPath()` | Get the path to the documents folder. ||
| `FileSystem::ExecutableFolderPath()` | Get the path to this game executable folder. ||
| `FileSystem::ExecutablePath()` | Get the path to this game executable file. ||
-| `FileSystem::ExtensionName()` | Returns the extension of the file designated by the given path, including the extension period. For example: ".txt". ||
-| `FileSystem::FileName()` | Returns the name of the file with its extension, if any. ||
+| `FileSystem::ExtensionName(string)` | Returns the extension of the file designated by the given path, including the extension period. For example: ".txt". ||
+| | _🔤 String_ | File path |
+| `FileSystem::FileName(string)` | Returns the name of the file with its extension, if any. ||
+| | _🔤 String_ | File path |
| `FileSystem::PathDelimiter()` | Get the operating system path delimiter. ||
| `FileSystem::PicturesPath()` | Get the path to the pictures folder. ||
| `FileSystem::TempPath()` | Get the path to temp folder. ||
@@ -855,13 +1077,16 @@ Use Google Firebase services (database, functions, storage...) in your game. [Re
| Expression | Description | |
|-----|-----|-----|
| `Firebase::GetAccountCreationTime()` | Return the accounts creation time. ||
-| `Firebase::GetAuthToken()` | Get the user authentication token. The token is the proof of authentication. ||
+| `Firebase::GetAuthToken(string)` | Get the user authentication token. The token is the proof of authentication. ||
+| | _🔤 String_ | Setting Name |
| `Firebase::GetLastLoginTime()` | Return the user last login time. ||
| `Firebase::GetPhoneNumber()` | Return the user phone number. ||
| `Firebase::GetPhotoURL()` | Gets an URL to the user profile picture. ||
| `Firebase::GetRefreshToken()` | Return the user refresh token. For advanced usage only. ||
-| `Firebase::GetRemoteConfigNumber()` | Get a setting from Firebase Remote Config as Number. ||
-| `Firebase::GetRemoteConfigString()` | Get a setting from Firebase Remote Config as a string. ||
+| `Firebase::GetRemoteConfigNumber(string)` | Get a setting from Firebase Remote Config as Number. ||
+| | _🔤 String_ | Setting Name |
+| `Firebase::GetRemoteConfigString(string)` | Get a setting from Firebase Remote Config as a string. ||
+| | _🔤 String_ | Setting Name |
| `Firebase::GetTenantID()` | Return the user tenant ID. For advanced usage only. ||
| `Firebase::GetUserDisplayName()` | Return the user display name. ||
| `Firebase::GetUserEmail()` | Return the user email address. ||
@@ -873,12 +1098,14 @@ Use Google Firebase services (database, functions, storage...) in your game. [Re
## Leaderboards
-Allow your game to send scores to your leaderboards. [Read more explanations about it.](/gdevelop5/all-features/leaderboards)
+Allow your game to send scores to your leaderboards (anonymously or from the logged-in player) or display existing leaderboards to the player. [Read more explanations about it.](/gdevelop5/all-features/leaderboards)
| Expression | Description | |
|-----|-----|-----|
-| `Leaderboards::FormatPlayerName()` | Formats a name so that it can be submitted to a leaderboard. ||
-| `Leaderboards::LastSaveError()` | Get the error of the last save attempt. ||
+| `Leaderboards::FormatPlayerName(string)` | Formats a name so that it can be submitted to a leaderboard. ||
+| | _🔤 String_ | Raw player name |
+| `Leaderboards::LastSaveError(leaderboard identifier)` | Get the error of the last save attempt. ||
+| | _🔤 Leaderboard Identifier (String)_ | Leaderboard If no leaderboard is specified, will return the value related to the last leaderboard save action. _Optional_. |
---
@@ -886,14 +1113,14 @@ Allow your game to send scores to your leaderboards. [Read more explanations abo
## Light (from extension Lights)
-Displays a light on the scene, with a customizable radius and color. Add then the Light Obstacle behavior to the objects that must act as obstacle to the lights.
+Displays a 2D light on the scene, with a customizable radius and color. Then add the Light Obstacle behavior to the objects that must act as obstacle to the lights.
_No expressions for this object._
## Light Obstacle Behavior (from extension Lights)
-Flag objects as being obstacles to light. The light emitted by light objects will be stopped by the object.
+Flag objects as being obstacles to 2D lights. The light emitted by light objects will be stopped by the object. This does not work on 3D objects and 3D games.
_No expressions for this behavior._
@@ -903,22 +1130,31 @@ _No expressions for this behavior._
## Multiplayer
-Allow players to connect to lobbies and play together. [Read more explanations about it.](/gdevelop5/all-features/multiplayer)
+This allows players to join online lobbies and synchronize gameplay across devices without needing to manage servers or networking.
+
+Use the "Open game lobbies" action to let players join a game, and use conditions like "Lobby game has just started" to begin gameplay. Add the "Multiplayer object" behavior to game objects that should be synchronized, and assign or change their ownership using player numbers. Variables and game state (like scenes, scores, or timers) are automatically synced by the host, with options to change ownership or disable sync when needed. Common multiplayer logic —like handling joins/leaves, collisions, and host migration— is supported out-of-the-box for up to 8 players per game. [Read more explanations about it.](/gdevelop5/all-features/multiplayer)
| Expression | Description | |
|-----|-----|-----|
+| `Multiplayer::CurrentLobbyID()` | Returns current lobby ID. ||
| `Multiplayer::CurrentPlayerNumber()` | Return the current player number in the lobby (1, 2, ...). ||
| `Multiplayer::CurrentPlayerPing()` | Get the ping of the current player in the lobby. ||
| `Multiplayer::CurrentPlayerUsername()` | Get the username of the current player in the lobby. ||
| `Multiplayer::LastJoinedPlayerNumber()` | Returns the player number of the player that has just joined the lobby. ||
| `Multiplayer::LastLeftPlayerNumber()` | Returns the player number of the player that has just left the lobby. ||
-| `Multiplayer::MessageData()` | Returns the data received when the specified message was received from another player. ||
-| `Multiplayer::MessageSender()` | Returns the player number of the sender of the specified message. ||
+| `Multiplayer::MessageData(string)` | Returns the data received when the specified message was received from another player. ||
+| | _🔤 String_ | Message name |
+| `Multiplayer::MessageSender(string)` | Returns the player number of the sender of the specified message. ||
+| | _🔤 String_ | Message name |
| `Multiplayer::ObjectsSynchronizationRate()` | Return objects synchronization rate (between 1 and 60, default is 30 times per second). ||
-| `Multiplayer::PlayerPing()` | Get the ping of the player in the lobby. ||
-| `Multiplayer::PlayerUsername()` | Get the username of the player in the lobby. ||
-| `Multiplayer::PlayerVariableOwnership()` | Return the player owning the variable. ||
+| `Multiplayer::PlayerPing(number)` | Get the ping of the player in the lobby. ||
+| | _🔢 Number_ | The position of the player in the lobby (1, 2, ...) |
+| `Multiplayer::PlayerUsername(number)` | Get the username of the player in the lobby. ||
+| | _🔢 Number_ | The position of the player in the lobby (1, 2, ...) |
+| `Multiplayer::PlayerVariableOwnership(variable)` | Return the player owning the variable. ||
+| | _🗄️ Any variable_ | Variable Only root variables can change ownership. Arrays and structures children are synchronized with their parent. |
| `Multiplayer::PlayersInLobbyCount()` | Return the number of players in the lobby. ||
+| `Multiplayer::QuickJoinFailureReason()` | Returns the reason why the Quick join action failed. It can either be 'FULL' if all lobbies were occupied, 'NOT_ENOUGH_PLAYERS' if the lobby's configuration requires more than 1 player to start the game and no other players were available. It can also take the value 'UNKNOWN'. ||
## Multiplayer object (from extension Multiplayer)
@@ -937,8 +1173,10 @@ Allow game instances to communicate remotely using messages sent via WebRTC (P2P
| Expression | Description | |
|-----|-----|-----|
-| `P2P::GetEventData()` | Returns the data received when the specified event was last triggered ||
-| `P2P::GetEventSender()` | Returns the id of the peer that triggered the event ||
+| `P2P::GetEventData(string)` | Returns the data received when the specified event was last triggered ||
+| | _🔤 String_ | Event name |
+| `P2P::GetEventSender(string)` | Returns the id of the peer that triggered the event ||
+| | _🔤 String_ | Event name |
| `P2P::GetID()` | Gets the client ID of the current game instance ||
| `P2P::GetLastConnectedPeer()` | Gets the ID of the newly connected peer. ||
| `P2P::GetLastDisconnectedPeer()` | Gets the ID of the latest peer that has disconnected. ||
@@ -948,34 +1186,48 @@ Allow game instances to communicate remotely using messages sent via WebRTC (P2P
-## Physics Engine 2.0
+## 2D Physics Engine
-Simulate realistic object physics with gravity, forces, joints, etc. [Read more explanations about it.](/gdevelop5/behaviors/physics2)
+Simulate realistic 2D physics for the object including gravity, forces, collisions, and joints. [Read more explanations about it.](/gdevelop5/behaviors/physics2)
| Expression | Description | |
|-----|-----|-----|
| `Object.Physics2::AngularDamping()` | Get the angular damping of an object. ||
| `Object.Physics2::AngularVelocity()` | Get the angular velocity of an object. ||
| `Object.Physics2::Density()` | Get the density of an object. ||
-| `Object.Physics2::DistanceJointDampingRatio()` | Distance joint damping ratio ||
-| `Object.Physics2::DistanceJointFrequency()` | Distance joint frequency ||
-| `Object.Physics2::DistanceJointLength()` | Distance joint length ||
+| `Object.Physics2::DistanceJointDampingRatio(number)` | Distance joint damping ratio ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::DistanceJointFrequency(number)` | Distance joint frequency ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::DistanceJointLength(number)` | Distance joint length ||
+| | _🔢 Number_ | Joint ID |
| `Object.Physics2::Friction()` | Get the friction of an object. ||
-| `Object.Physics2::FrictionJointMaxForce()` | Friction joint maximum force ||
-| `Object.Physics2::FrictionJointMaxTorque()` | Friction joint maximum torque ||
-| `Object.Physics2::GearJointFirstJoint()` | Gear joint first joint ||
-| `Object.Physics2::GearJointRatio()` | Gear joint ratio ||
-| `Object.Physics2::GearJointSecondJoint()` | Gear joint second joint ||
+| `Object.Physics2::FrictionJointMaxForce(number)` | Friction joint maximum force ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::FrictionJointMaxTorque(number)` | Friction joint maximum torque ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::GearJointFirstJoint(number)` | Gear joint first joint ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::GearJointRatio(number)` | Gear joint ratio ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::GearJointSecondJoint(number)` | Gear joint second joint ||
+| | _🔢 Number_ | Joint ID |
| `Object.Physics2::GravityScale()` | Get the gravity scale of an object. ||
| `Object.Physics2::GravityX()` | World gravity on X axis ||
| `Object.Physics2::GravityY()` | World gravity on Y axis ||
| `Object.Physics2::Inertia()` | Return the rotational inertia of the object (in kilograms · meters²) ||
-| `Object.Physics2::JointFirstAnchorX()` | Joint first anchor X ||
-| `Object.Physics2::JointFirstAnchorY()` | Joint first anchor Y ||
-| `Object.Physics2::JointReactionForce()` | Joint reaction force ||
-| `Object.Physics2::JointReactionTorque()` | Joint reaction torque ||
-| `Object.Physics2::JointSecondAnchorX()` | Joint second anchor X ||
-| `Object.Physics2::JointSecondAnchorY()` | Joint second anchor Y ||
+| `Object.Physics2::JointFirstAnchorX(number)` | Joint first anchor X ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::JointFirstAnchorY(number)` | Joint first anchor Y ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::JointReactionForce(number)` | Joint reaction force ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::JointReactionTorque(number)` | Joint reaction torque ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::JointSecondAnchorX(number)` | Joint second anchor X ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::JointSecondAnchorY(number)` | Joint second anchor Y ||
+| | _🔢 Number_ | Joint ID |
| `Object.Physics2::LinearDamping()` | Get the linear damping of an object. ||
| `Object.Physics2::LinearVelocity()` | Get the linear velocity of an object. ||
| `Object.Physics2::LinearVelocityAngle()` | Get the linear velocity angle of an object. ||
@@ -984,71 +1236,118 @@ Simulate realistic object physics with gravity, forces, joints, etc. [Read more
| `Object.Physics2::Mass()` | Return the mass of the object (in kilograms) ||
| `Object.Physics2::MassCenterX()` | Mass center X ||
| `Object.Physics2::MassCenterY()` | Mass center Y ||
-| `Object.Physics2::MotorJointAngularOffset()` | Motor joint angular offset ||
-| `Object.Physics2::MotorJointCorrectionFactor()` | Motor joint correction factor ||
-| `Object.Physics2::MotorJointMaxForce()` | Motor joint maximum force ||
-| `Object.Physics2::MotorJointMaxTorque()` | Motor joint maximum torque ||
-| `Object.Physics2::MotorJointOffsetX()` | Motor joint offset X ||
-| `Object.Physics2::MotorJointOffsetY()` | Motor joint offset Y ||
-| `Object.Physics2::MouseJointDampingRatio()` | Mouse joint damping ratio ||
-| `Object.Physics2::MouseJointFrequency()` | Mouse joint frequency ||
-| `Object.Physics2::MouseJointMaxForce()` | Mouse joint maximum force ||
-| `Object.Physics2::MouseJointTargetX()` | Mouse joint target X ||
-| `Object.Physics2::MouseJointTargetY()` | Mouse joint target Y ||
-| `Object.Physics2::PrismaticJointAxisAngle()` | Prismatic joint axis angle ||
-| `Object.Physics2::PrismaticJointMaxMotorForce()` | Prismatic joint maximum motor force ||
-| `Object.Physics2::PrismaticJointMaxTranslation()` | Prismatic joint maximum translation ||
-| `Object.Physics2::PrismaticJointMinTranslation()` | Prismatic joint minimum translation ||
-| `Object.Physics2::PrismaticJointMotorForce()` | Prismatic joint motor force ||
-| `Object.Physics2::PrismaticJointMotorSpeed()` | Prismatic joint motor speed ||
-| `Object.Physics2::PrismaticJointReferenceAngle()` | Prismatic joint reference angle ||
-| `Object.Physics2::PrismaticJointSpeed()` | Prismatic joint speed ||
-| `Object.Physics2::PrismaticJointTranslation()` | Prismatic joint current translation ||
-| `Object.Physics2::PulleyJointFirstGroundAnchorX()` | Pulley joint first ground anchor X ||
-| `Object.Physics2::PulleyJointFirstGroundAnchorY()` | Pulley joint first ground anchor Y ||
-| `Object.Physics2::PulleyJointFirstLength()` | Pulley joint first length ||
-| `Object.Physics2::PulleyJointRatio()` | Pulley joint ratio ||
-| `Object.Physics2::PulleyJointSecondGroundAnchorX()` | Pulley joint second ground anchor X ||
-| `Object.Physics2::PulleyJointSecondGroundAnchorY()` | Pulley joint second ground anchor Y ||
-| `Object.Physics2::PulleyJointSecondLength()` | Pulley joint second length ||
+| `Object.Physics2::MotorJointAngularOffset(number)` | Motor joint angular offset ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MotorJointCorrectionFactor(number)` | Motor joint correction factor ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MotorJointMaxForce(number)` | Motor joint maximum force ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MotorJointMaxTorque(number)` | Motor joint maximum torque ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MotorJointOffsetX(number)` | Motor joint offset X ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MotorJointOffsetY(number)` | Motor joint offset Y ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MouseJointDampingRatio(number)` | Mouse joint damping ratio ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MouseJointFrequency(number)` | Mouse joint frequency ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MouseJointMaxForce(number)` | Mouse joint maximum force ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MouseJointTargetX(number)` | Mouse joint target X ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::MouseJointTargetY(number)` | Mouse joint target Y ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointAxisAngle(number)` | Prismatic joint axis angle ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointMaxMotorForce(number)` | Prismatic joint maximum motor force ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointMaxTranslation(number)` | Prismatic joint maximum translation ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointMinTranslation(number)` | Prismatic joint minimum translation ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointMotorForce(number)` | Prismatic joint motor force ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointMotorSpeed(number)` | Prismatic joint motor speed ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointReferenceAngle(number)` | Prismatic joint reference angle ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointSpeed(number)` | Prismatic joint speed ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PrismaticJointTranslation(number)` | Prismatic joint current translation ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PulleyJointFirstGroundAnchorX(number)` | Pulley joint first ground anchor X ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PulleyJointFirstGroundAnchorY(number)` | Pulley joint first ground anchor Y ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PulleyJointFirstLength(number)` | Pulley joint first length ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PulleyJointRatio(number)` | Pulley joint ratio ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PulleyJointSecondGroundAnchorX(number)` | Pulley joint second ground anchor X ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PulleyJointSecondGroundAnchorY(number)` | Pulley joint second ground anchor Y ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::PulleyJointSecondLength(number)` | Pulley joint second length ||
+| | _🔢 Number_ | Joint ID |
| `Object.Physics2::Restitution()` | Get the restitution of an object. ||
-| `Object.Physics2::RevoluteJointAngle()` | Revolute joint current angle ||
-| `Object.Physics2::RevoluteJointMaxAngle()` | Revolute joint maximum angle ||
-| `Object.Physics2::RevoluteJointMaxMotorTorque()` | Revolute joint maximum motor torque ||
-| `Object.Physics2::RevoluteJointMinAngle()` | Revolute joint minimum angle ||
-| `Object.Physics2::RevoluteJointMotorSpeed()` | Revolute joint motor speed ||
-| `Object.Physics2::RevoluteJointMotorTorque()` | Revolute joint motor torque ||
-| `Object.Physics2::RevoluteJointReferenceAngle()` | Revolute joint reference angle ||
-| `Object.Physics2::RevoluteJointSpeed()` | Revolute joint angular speed ||
-| `Object.Physics2::RopeJointMaxLength()` | Rope joint maximum length ||
+| `Object.Physics2::RevoluteJointAngle(number)` | Revolute joint current angle ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::RevoluteJointMaxAngle(number)` | Revolute joint maximum angle ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::RevoluteJointMaxMotorTorque(number)` | Revolute joint maximum motor torque ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::RevoluteJointMinAngle(number)` | Revolute joint minimum angle ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::RevoluteJointMotorSpeed(number)` | Revolute joint motor speed ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::RevoluteJointMotorTorque(number)` | Revolute joint motor torque ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::RevoluteJointReferenceAngle(number)` | Revolute joint reference angle ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::RevoluteJointSpeed(number)` | Revolute joint angular speed ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::RopeJointMaxLength(number)` | Rope joint maximum length ||
+| | _🔢 Number_ | Joint ID |
| `Object.Physics2::TimeScale()` | World time scale ||
-| `Object.Physics2::WeldJointDampingRatio()` | Weld joint damping ratio ||
-| `Object.Physics2::WeldJointFrequency()` | Weld joint frequency ||
-| `Object.Physics2::WeldJointReferenceAngle()` | Weld joint reference angle ||
-| `Object.Physics2::WheelJointAxisAngle()` | Wheel joint axis angle ||
-| `Object.Physics2::WheelJointDampingRatio()` | Wheel joint damping ratio ||
-| `Object.Physics2::WheelJointFrequency()` | Wheel joint frequency ||
-| `Object.Physics2::WheelJointMaxMotorTorque()` | Wheel joint maximum motor torque ||
-| `Object.Physics2::WheelJointMotorSpeed()` | Wheel joint motor speed ||
-| `Object.Physics2::WheelJointMotorTorque()` | Wheel joint motor torque ||
-| `Object.Physics2::WheelJointSpeed()` | Wheel joint speed ||
-| `Object.Physics2::WheelJointTranslation()` | Wheel joint current translation ||
+| `Object.Physics2::WeldJointDampingRatio(number)` | Weld joint damping ratio ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WeldJointFrequency(number)` | Weld joint frequency ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WeldJointReferenceAngle(number)` | Weld joint reference angle ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WheelJointAxisAngle(number)` | Wheel joint axis angle ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WheelJointDampingRatio(number)` | Wheel joint damping ratio ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WheelJointFrequency(number)` | Wheel joint frequency ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WheelJointMaxMotorTorque(number)` | Wheel joint maximum motor torque ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WheelJointMotorSpeed(number)` | Wheel joint motor speed ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WheelJointMotorTorque(number)` | Wheel joint motor torque ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WheelJointSpeed(number)` | Wheel joint speed ||
+| | _🔢 Number_ | Joint ID |
+| `Object.Physics2::WheelJointTranslation(number)` | Wheel joint current translation ||
+| | _🔢 Number_ | Joint ID |
| `Object.Physics2::WorldScale()` | Return the world scale. ||
---
-## 3D physics engine (from extension 3D Physics Engine)
+## 3D physics engine
-Simulate realistic object physics with gravity, forces, etc. [Read more explanations about it.](/gdevelop5/behaviors/physics3d)
+Simulate realistic 3D physics for this object including gravity, forces, collisions, etc. [Read more explanations about it.](/gdevelop5/behaviors/physics3d)
| Expression | Description | |
|-----|-----|-----|
| `Object.Physics3D::AngularDamping()` | Return the object angular damping. How much angular speed is lost across the time.. ||
-| `Object.Physics3D::AngularVelocityX()` | Return the object angular velocity on X.. ||
-| `Object.Physics3D::AngularVelocityY()` | Return the object angular velocity on Y.. ||
-| `Object.Physics3D::AngularVelocityZ()` | Return the object angular velocity on Z.. ||
+| `Object.Physics3D::AngularVelocityX()` | Return the object angular velocity around X. ||
+| `Object.Physics3D::AngularVelocityY()` | Return the object angular velocity around Y. ||
+| `Object.Physics3D::AngularVelocityZ()` | Return the object angular velocity around Z. ||
| `Object.Physics3D::Density()` | Return the object density. The body's density and volume determine its mass.. ||
| `Object.Physics3D::Friction()` | Return the object friction. How much energy is lost from the movement of one object over another. The combined friction from two bodies is calculated as 'sqrt(bodyA.friction * bodyB.friction)'.. ||
| `Object.Physics3D::GravityScale()` | Return the object gravity scale. The gravity applied to an object is the world gravity multiplied by the object gravity scale.. ||
@@ -1059,37 +1358,58 @@ Simulate realistic object physics with gravity, forces, etc. [Read more explanat
| `Object.Physics3D::InertiaAroundY()` | Return the inertia around Y axis of the object (in kilograms · meters²) when for its default rotation is (0°; 0°; 0°) ||
| `Object.Physics3D::InertiaAroundZ()` | Return the inertia around Z axis of the object (in kilograms · meters²) when for its default rotation is (0°; 0°; 0°) ||
| `Object.Physics3D::LinearDamping()` | Return the object linear damping. How much movement speed is lost across the time.. ||
-| `Object.Physics3D::LinearVelocityLength()` | Return the object linear velocity length.. ||
-| `Object.Physics3D::LinearVelocityX()` | Return the object linear velocity on X.. ||
-| `Object.Physics3D::LinearVelocityY()` | Return the object linear velocity on Y.. ||
-| `Object.Physics3D::LinearVelocityZ()` | Return the object linear velocity on Z.. ||
+| `Object.Physics3D::LinearVelocityLength()` | Return the object linear velocity length. ||
+| `Object.Physics3D::LinearVelocityX()` | Return the object linear velocity on X. ||
+| `Object.Physics3D::LinearVelocityY()` | Return the object linear velocity on Y. ||
+| `Object.Physics3D::LinearVelocityZ()` | Return the object linear velocity on Z. ||
| `Object.Physics3D::Mass()` | Return the mass of the object (in kilograms) ||
| `Object.Physics3D::MassCenterX()` | Mass center X ||
| `Object.Physics3D::MassCenterY()` | Mass center Y ||
+| `Object.Physics3D::MassCenterZ()` | Mass center Z ||
| `Object.Physics3D::Restitution()` | Return the object restitution. Energy conservation on collision. The combined restitution from two bodies is calculated as 'max(bodyA.restitution, bodyB.restitution)'.. ||
+| `Object.Physics3D::ShapeOffsetX()` | Return the object shape offset on X.. ||
+| `Object.Physics3D::ShapeOffsetY()` | Return the object shape offset on Y.. ||
+| `Object.Physics3D::ShapeOffsetZ()` | Return the object shape offset on Z.. ||
| `Object.Physics3D::WorldScale()` | Return the world scale. ||
-## 3D physics character (from extension 3D Physics Engine)
+## 3D physics car (from extension 3D physics engine)
+
+Simulate a realistic car using the 3D physics engine. This is mostly useful for the car controlled by the player (it's usually too complex for other cars in a game).
+
+This behavior is usually used with one or more "mapper" behavior to let the player move it. [Read more explanations about it.](/gdevelop5/behaviors/physics3d)
+
+| Expression | Description | |
+|-----|-----|-----|
+| `Object.PhysicsCar3D::CurrentGear()` | Return the current gear (-1 = reverse, 0 = neutral, 1 = 1st gear). ||
+| `Object.PhysicsCar3D::EngineInertia()` | Return the engine inertia (kg·m²). It slows down car acceleration. ||
+| `Object.PhysicsCar3D::EngineSpeed()` | Return the current engine speed (RPM). ||
+| `Object.PhysicsCar3D::EngineSpeedMax()` | Return the engine max speed (RPM). ||
+| `Object.PhysicsCar3D::EngineTorqueMax()` | Return the engine max torque (N·m). It allows cars to climb steep slopes and push heavy obstacles. ||
+| `Object.PhysicsCar3D::SteerAngle()` | Return the current steer angle (in degree). The value is negative when cars turn left. ||
+
+## 3D physics character (from extension 3D physics engine)
+
+Allow an object to jump and run on platforms that have the 3D physics behavior(and which are generally set to "Static" as type, unless the platform is animated/moved in events).
-Jump and run on platforms. [Read more explanations about it.](/gdevelop5/behaviors/physics3d)
+This behavior is usually used with one or more "mapper" behavior to let the player move it. [Read more explanations about it.](/gdevelop5/behaviors/physics3d)
| Expression | Description | |
|-----|-----|-----|
-| `Object.PhysicsCharacter3D::CurrentFallSpeed()` | Return Compare the current falling speed of the object. Its value is always positive.. ||
+| `Object.PhysicsCharacter3D::CurrentFallSpeed()` | Return the current falling speed of the object. Its value is always positive.. ||
| `Object.PhysicsCharacter3D::CurrentForwardSpeed()` | Return the current forward speed of the object. The object moves backward with negative values and forward with positive ones. ||
-| `Object.PhysicsCharacter3D::CurrentJumpSpeed()` | Return Compare the current jump speed of the object. Its value is always positive.. ||
+| `Object.PhysicsCharacter3D::CurrentJumpSpeed()` | Return the current jump speed of the object. Its value is always positive.. ||
| `Object.PhysicsCharacter3D::CurrentSidewaysSpeed()` | Return the current sideways speed of the object. The object moves to the left with negative values and to the right with positive ones. ||
-| `Object.PhysicsCharacter3D::FallingSpeedMax()` | Return the maximum falling speed of an object.. ||
-| `Object.PhysicsCharacter3D::ForwardAcceleration()` | Return the forward acceleration of an object.. ||
+| `Object.PhysicsCharacter3D::FallingSpeedMax()` | Return the maximum falling speed of an object. ||
+| `Object.PhysicsCharacter3D::ForwardAcceleration()` | Return the forward acceleration of an object. ||
| `Object.PhysicsCharacter3D::ForwardAngle()` | Return the angle used by the character to go forward. ||
-| `Object.PhysicsCharacter3D::ForwardDeceleration()` | Return the forward deceleration of an object.. ||
-| `Object.PhysicsCharacter3D::ForwardSpeedMax()` | Return the forward max speed of the object.. ||
-| `Object.PhysicsCharacter3D::Gravity()` | Return the gravity applied on an object.. ||
-| `Object.PhysicsCharacter3D::JumpSpeed()` | Return the jump speed of an object. Its value is always positive.. ||
-| `Object.PhysicsCharacter3D::JumpSustainTime()` | Return the jump sustain time of an object. This is the time during which keeping the jump button held allow the initial jump speed to be maintained.. ||
-| `Object.PhysicsCharacter3D::SidewaysAcceleration()` | Return the sideways acceleration of an object.. ||
-| `Object.PhysicsCharacter3D::SidewaysDeceleration()` | Return the sideways deceleration of an object.. ||
-| `Object.PhysicsCharacter3D::SidewaysSpeedMax()` | Return the sideways max speed of the object.. ||
+| `Object.PhysicsCharacter3D::ForwardDeceleration()` | Return the forward deceleration of an object. ||
+| `Object.PhysicsCharacter3D::ForwardSpeedMax()` | Return the forward max speed of the object. ||
+| `Object.PhysicsCharacter3D::Gravity()` | Return the gravity applied on an object. ||
+| `Object.PhysicsCharacter3D::JumpSpeed()` | Return the jump speed of an object. Its value is always positive. ||
+| `Object.PhysicsCharacter3D::JumpSustainTime()` | Return the jump sustain time of an object. This is the time during which keeping the jump button held allow the initial jump speed to be maintained. ||
+| `Object.PhysicsCharacter3D::SidewaysAcceleration()` | Return the sideways acceleration of an object. ||
+| `Object.PhysicsCharacter3D::SidewaysDeceleration()` | Return the sideways deceleration of an object. ||
+| `Object.PhysicsCharacter3D::SidewaysSpeedMax()` | Return the sideways max speed of the object. ||
---
@@ -1106,6 +1426,25 @@ Allow your game to authenticate players. [Read more explanations about it.](/gde
---
+## Save State (experimental)
+
+Allows to save and load the full state of a game, usually on the device storage. A Save State, by default, contains the full state of the game (objects, variables, sounds, music, effects etc.). Using the "Save Configuration" behavior, you can customize which objects should not be saved in a Save State. You can also use the "Change the save configuration of a variable" action to change the save configuration of a variable. Finally, both objects, variables and scene/game data can be given a profile name: in this case, when saving or loading with one or more profile names specified, only the object/variables/data belonging to one of the specified profiles will be saved or loaded. [Read more explanations about it.](/gdevelop5/all-features/save-state)
+
+| Expression | Description | |
+|-----|-----|-----|
+| `SaveState::TimeSinceLastLoad()` | Return Time since the last load, in seconds. Returns -1 if no load happened, and a positive number otherwise.. ||
+| `SaveState::TimeSinceLastSave()` | Return Time since the last save, in seconds. Returns -1 if no save happened, and a positive number otherwise.. ||
+
+## Save state configuration (from extension Save State (experimental))
+
+Allow the customize how the object is persisted in a save state. [Read more explanations about it.](/gdevelop5/all-features/save-state)
+
+_No expressions for this behavior._
+
+
+---
+
+
## Spine (experimental)
@@ -1114,8 +1453,31 @@ Display and smoothly animate a 2D object with skeletal animations made with Spin
| Expression | Description | |
|-----|-----|-----|
| `Object.Animation()` | Return the duration of the smooth transition between 2 animations (in second). ||
-| `Object.PointAttachmentX()` | Return x position of spine point attachment. ||
-| `Object.PointAttachmentY()` | Return y position of spine point attachment. ||
+| `Object.PointAttachmentRotationLocal(string, string)` | Return local rotation of spine point attachment. ||
+| | _🔤 String_ | Attachment name |
+| | _🔤 String_ | Slot name (use "" if names are the same) |
+| `Object.PointAttachmentRotationWorld(string, string)` | Return world rotation of spine point attachment. ||
+| | _🔤 String_ | Attachment name |
+| | _🔤 String_ | Slot name (use "" if names are the same) |
+| `Object.PointAttachmentScaleXLocal(string, string)` | Return local x position of spine point attachment scale. ||
+| | _🔤 String_ | Attachment name |
+| | _🔤 String_ | Slot name (use "" if names are the same) |
+| `Object.PointAttachmentScaleXWorld(string, string)` | Return world x position of spine point attachment scale. ||
+| | _🔤 String_ | Attachment name |
+| | _🔤 String_ | Slot name (use "" if names are the same) |
+| `Object.PointAttachmentScaleYLocal(string, string)` | Return local y position of spine point attachment scale. ||
+| | _🔤 String_ | Attachment name |
+| | _🔤 String_ | Slot name (use "" if names are the same) |
+| `Object.PointAttachmentScaleYWorld(string, string)` | Return world y position of spine point attachment scale. ||
+| | _🔤 String_ | Attachment name |
+| | _🔤 String_ | Slot name (use "" if names are the same) |
+| `Object.PointAttachmentX(string, string)` | Return x position of spine point attachment. ||
+| | _🔤 String_ | Attachment name |
+| | _🔤 String_ | Slot name (use "" if names are the same) |
+| `Object.PointAttachmentY(string, string)` | Return y position of spine point attachment. ||
+| | _🔤 String_ | Attachment name |
+| | _🔤 String_ | Slot name (use "" if names are the same) |
+| `Object.getSkin()` | Return the skin of the object. ||
---
@@ -1126,34 +1488,51 @@ Adds integrations for Steam's Steamworks game development SDK.
| Expression | Description | |
|-----|-----|-----|
-| `Steamworks::ActionVectorX()` | The action vector of a Steam Input analog joystick on the X-axis, from 1 (all right) to -1 (all left). ||
-| `Steamworks::ActionVectorY()` | The action vector of a Steam Input analog joystick on the Y-axis, from 1 (all up) to -1 (all down). ||
+| `Steamworks::ActionVectorX(number, string)` | The action vector of a Steam Input analog joystick on the X-axis, from 1 (all right) to -1 (all left). ||
+| | _🔢 Number_ | Controller number |
+| | _🔤 Name (String)_ | ActionName |
+| `Steamworks::ActionVectorY(number, string)` | The action vector of a Steam Input analog joystick on the Y-axis, from 1 (all up) to -1 (all down). ||
+| | _🔢 Number_ | Controller number |
+| | _🔤 Name (String)_ | ActionName |
| `Steamworks::AppBuildID()` | Gets the ID of the current app build. ||
| `Steamworks::AppID()` | Obtains the game's Steam app ID, as declared in the games properties. ||
| `Steamworks::BetaName()` | Gets the name of the beta the player enrolled to in the Steam game properties. ||
| `Steamworks::ControllerCount()` | The amount of connected Steam Input controllers. ||
| `Steamworks::CountryCode()` | The player's country represented as its two-letter code. ||
-| `Steamworks::CurrentLobbyAttribute()` | Obtains the value of one of the current lobby's attributes. ||
+| `Steamworks::CurrentLobbyAttribute(string)` | Obtains the value of one of the current lobby's attributes. ||
+| | _🔤 Name (String)_ | The attribute to read |
| `Steamworks::CurrentLobbyID()` | The ID of the current lobby, useful for letting other players join it. ||
| `Steamworks::CurrentLobbyMemberCount()` | Obtains the current lobby's member count. ||
| `Steamworks::CurrentLobbyMemberLimit()` | Obtains the current lobby's maximum member limit. ||
| `Steamworks::CurrentLobbyOwner()` | Obtains the Steam ID of the user that owns the current lobby. ||
| `Steamworks::GameLanguage()` | Gets the language the user set in the Steam game properties. ||
-| `Steamworks::InstalledApplicationPath()` | Gets the path to an installed Steam application. ||
+| `Steamworks::InstalledApplicationPath(string)` | Gets the path to an installed Steam application. ||
+| | _🔤 Name (String)_ | The Steam App ID of the application |
| `Steamworks::Level()` | Obtains the player's Steam level ||
-| `Steamworks::LobbyAttribute()` | Obtains the value of one of a lobby's attributes. ||
-| `Steamworks::LobbyMemberCount()` | Obtains a lobby's member count. ||
-| `Steamworks::LobbyMemberLimit()` | Obtains a lobby's maximum member limit. ||
-| `Steamworks::LobbyOwner()` | Obtains the Steam ID of the user that owns a lobby. ||
+| `Steamworks::LobbyAttribute(string, string)` | Obtains the value of one of a lobby's attributes. ||
+| | _🔤 String_ | The ID of the lobby |
+| | _🔤 Name (String)_ | The attribute to read |
+| `Steamworks::LobbyMemberCount(string)` | Obtains a lobby's member count. ||
+| | _🔤 String_ | The ID of the lobby |
+| `Steamworks::LobbyMemberLimit(string)` | Obtains a lobby's maximum member limit. ||
+| | _🔤 String_ | The ID of the lobby |
+| `Steamworks::LobbyOwner(string)` | Obtains the Steam ID of the user that owns a lobby. ||
+| | _🔤 String_ | The ID of the lobby |
| `Steamworks::Name()` | The player's registered name on Steam. ||
-| `Steamworks::ReadCloudFile()` | Reads a file from Steam Cloud and returns its contents. ||
+| `Steamworks::ReadCloudFile(string)` | Reads a file from Steam Cloud and returns its contents. ||
+| | _🔤 Name (String)_ | Name of file to read |
| `Steamworks::ServerTime()` | Obtains the real current time from the Steam servers, which cannot be faked by changing the system time. ||
| `Steamworks::SteamID()` | The player's unique Steam ID number. Note that it is too big a number to load correctly as a traditional number ("floating point number"), and must be used as a string. ||
-| `Steamworks::WorkshopItemDownloadProgress()` | The amount of data that has been downloaded by Steam for a currrently downloading item so far. ||
-| `Steamworks::WorkshopItemDownloadTotal()` | The amount of data that needs to be downloaded in total by Steam for a currrently downloading item. ||
-| `Steamworks::WorkshopItemInstallationTimestamp()` | The timestamp of the last time the contents file of an installed workshop item was updated. ||
-| `Steamworks::WorkshopItemLocation()` | The file path to the contents file of an installed workshop item. ||
-| `Steamworks::WorkshopItemSize()` | The size on disk taken by the contents file of an installed workshop item. ||
+| `Steamworks::WorkshopItemDownloadProgress(string)` | The amount of data that has been downloaded by Steam for a currrently downloading item so far. ||
+| | _🔤 Name (String)_ | Workshop Item ID |
+| `Steamworks::WorkshopItemDownloadTotal(string)` | The amount of data that needs to be downloaded in total by Steam for a currrently downloading item. ||
+| | _🔤 Name (String)_ | Workshop Item ID |
+| `Steamworks::WorkshopItemInstallationTimestamp(string)` | The timestamp of the last time the contents file of an installed workshop item was updated. ||
+| | _🔤 Name (String)_ | Workshop Item ID |
+| `Steamworks::WorkshopItemLocation(string)` | The file path to the contents file of an installed workshop item. ||
+| | _🔤 Name (String)_ | Workshop Item ID |
+| `Steamworks::WorkshopItemSize(string)` | The size on disk taken by the contents file of an installed workshop item. ||
+| | _🔤 Name (String)_ | Workshop Item ID |
---
@@ -1186,24 +1565,36 @@ _No expressions for this object._
## Tile map
-Displays a tiled-based map. [Read more explanations about it.](/gdevelop5/objects/tilemap)
+Grid-based map built from reusable tiles. [Read more explanations about it.](/gdevelop5/objects/tilemap)
| Expression | Description | |
|-----|-----|-----|
| `Object.GridColumnCount()` | Return the grid column count in the tile map. ||
| `Object.GridRowCount()` | Return the grid row count in the tile map. ||
-| `Object.GridX()` | Get the grid column coordinates in the tile map corresponding to the scene coordinates. ||
-| `Object.GridY()` | Get the grid row coordinates in the tile map corresponding to the scene coordinates. ||
-| `Object.TileCenterX()` | Get the scene X position of the center of the tile. ||
-| `Object.TileCenterY()` | Get the scene Y position of the center of the tile. ||
-| `Object.TileIdAtGrid()` | Return the id of the tile at the grid coordinates. ||
-| `Object.TileIdAtPosition()` | Return the id of the tile at the scene coordinates. ||
+| `Object.GridX(number, number)` | Get the grid column coordinates in the tile map corresponding to the scene coordinates. ||
+| | _🔢 Number_ | Position X |
+| | _🔢 Number_ | Position Y |
+| `Object.GridY(number, number)` | Get the grid row coordinates in the tile map corresponding to the scene coordinates. ||
+| | _🔢 Number_ | Position X |
+| | _🔢 Number_ | Position Y |
+| `Object.TileCenterX(number, number)` | Get the scene X position of the center of the tile. ||
+| | _🔢 Number_ | Grid X |
+| | _🔢 Number_ | Grid Y |
+| `Object.TileCenterY(number, number)` | Get the scene Y position of the center of the tile. ||
+| | _🔢 Number_ | Grid X |
+| | _🔢 Number_ | Grid Y |
+| `Object.TileIdAtGrid(number, number)` | Return the id of the tile at the grid coordinates. ||
+| | _🔢 Number_ | Grid X |
+| | _🔢 Number_ | Grid Y |
+| `Object.TileIdAtPosition(number, number)` | Return the id of the tile at the scene coordinates. ||
+| | _🔢 Number_ | Position X |
+| | _🔢 Number_ | Position Y |
| `Object.TilesetColumnCount()` | Get the number of columns in the tileset. ||
| `Object.TilesetRowCount()` | Get the number of rows in the tileset. ||
## External Tilemap (Tiled/LDtk) (from extension Tile map)
-Displays a tiled-based map, made with the Tiled editor (https://www.mapeditor.org/) or the LDtk editor (https://ldtk.io/). [Read more explanations about it.](/gdevelop5/objects/tilemap)
+Tilemap imported from external editors like LDtk or Tiled. [Read more explanations about it.](/gdevelop5/objects/tilemap)
| Expression | Description | |
|-----|-----|-----|
@@ -1217,13 +1608,19 @@ Displays a tiled-based map, made with the Tiled editor (https://www.mapeditor.or
## Tweening
-Animate object properties over time. This allows smooth transitions, animations or movement of objects to specified positions. [Read more explanations about it.](/gdevelop5/behaviors/tween)
+Smoothly animate object properties over time — such as position, rotation scale, opacity, and more — as well as variables. Ideal for creating fluid transitions and UI animations. While you can use tweens to move objects, other behaviors (like platform, physics, ellipse movement...) or forces are often better suited for dynamic movement. Tween is best used for animating UI elements, static objects that need to move from one point to another, or other values like variables. [Read more explanations about it.](/gdevelop5/behaviors/tween)
| Expression | Description | |
|-----|-----|-----|
-| `Tween::Ease()` | Tween between 2 values according to an easing function. ||
-| `Tween::Progress()` | Return the progress of a tween (between 0.0 and 1.0). ||
-| `Tween::Value()` | Return the value of a tween. It is always 0 for tweens with several values. ||
+| `Tween::Ease(string, number, number, number)` | Tween between 2 values according to an easing function. ||
+| | _🔤 String_ | Easing |
+| | _🔢 Number_ | From value |
+| | _🔢 Number_ | To value |
+| | _🔢 Number_ | Weighting From 0 to 1. |
+| `Tween::Progress(string)` | Return the progress of a tween (between 0.0 and 1.0). ||
+| | _🔤 Name (String)_ | Tween Identifier |
+| `Tween::Value(string)` | Return the value of a tween. It is always 0 for tweens with several values. ||
+| | _🔤 Name (String)_ | Tween Identifier |
## Tween (from extension Tweening)
@@ -1231,8 +1628,10 @@ Smoothly animate position, angle, scale and other properties of objects. [Read m
| Expression | Description | |
|-----|-----|-----|
-| `Object.Tween::Progress()` | Return the progress of a tween (between 0.0 and 1.0). ||
-| `Object.Tween::Value()` | Return the value of a tween. It is always 0 for tweens with several values. ||
+| `Object.Tween::Progress(string)` | Return the progress of a tween (between 0.0 and 1.0). ||
+| | _🔤 Name (String)_ | Tween Identifier |
+| `Object.Tween::Value(string)` | Return the value of a tween. It is always 0 for tweens with several values. ||
+| | _🔤 Name (String)_ | Tween Identifier |
---
diff --git a/docs/gdevelop5/all-features/expressions/index.md b/docs/gdevelop5/all-features/expressions/index.md
deleted file mode 100644
index 5c251623305..00000000000
--- a/docs/gdevelop5/all-features/expressions/index.md
+++ /dev/null
@@ -1,175 +0,0 @@
----
-title: Expressions
----
-# Expressions
-
-When adding a condition or an action to an [event](/gdevelop5/events), some fields have the following icons alongside them:
-
-
-
-
-
-These icons indicate that the field accepts an _expression_. An expression is a formula, like in mathematics, that can be composed of:
-
-- [Numbers](/gdevelop5/all-features/expressions#numbers)
-- [Text](/gdevelop5/all-features/expressions#text)
-- [Functions](/gdevelop5/all-features/expressions#functions)
-- Mathematical operators (+, -, *, /)
-
-!!! tip
-
- For a complete list of the function expressions that GDevelop provides out of the box, refer to [expressions reference](/gdevelop5/all-features/expressions-reference).
-
-
-
-
-
-## Numbers
-
-When the following icon appears alongside a field, the field accepts a _numeric_ expression:
-
-
-
-The following values are examples of numeric expressions, composed of a single number:
-
-- `0`
-- `-10`
-- `25.5`
-
-You can also use mathematical operators to add, subtract, multiply, and divide numbers:
-
-- `2+2`
-- `3-1`
-- `10*10`
-- `99/3`
-
-This is the complete list of operators:
-
-- `+` (add)
-- `-` (subtract)
-- `*` (multiply)
-- `/` (divide)
-
-Finally, functions can be used - see the next sections.
-
-## Text
-
-When the following icon appears alongside a field, the field accepts a _text_ expression:
-
-
-
-The following values are examples of text expressions, composed of a single text:
-
-- `"Hello world"`
-- `"This is a text expression"`
-- `"GDevelop is cool!"`
-
-All texts must be wrapped in double quotes. Without the double quotes, GDevelop assumes the value is a function or a variable.
-
-You can use the `+` operator to concatenate two or more strings of text. For example, `"Hello" + "World"` becomes `"HelloWorld"`. The other operators are not valid when working with text (it does not make sense to subtract, multiply or divide a text by another).
-
-## Variables (or properties)
-
-In an expression, you can write the name of a variable (a scene variable, a global variable). For example, if a variable called Score was added to the scene, you can simply write: `2 * Score` to compute the score value multiplied by two.
-
-You can also access to the value of a variable of an object by writing the object name followed by a dot and the name of the variable. For example: `Player.Ammo` or `Player.CoinEarned`.
-
-Finally, when you're editing a behavior or a custom object inside [an extension](/gdevelop5/extensions/create), you can also access the properties of this behavior or object by writing their name, like variables.
-
-!!! note
-
- You can also use the functions `Variable()` (for variables containing a number) and `VariableString()` (for variables containing a string) to access the value stored inside a scene variable. There are also functions to access global variables (`GlobalVariable()`) and object variables (`Object.Variable()`).
-
- These functions are more verbose and more cumbersome to use. Most of the time, you can just write the name of the variable you want to use.
-
-## Functions
-
-Often, it's necessary to calculate complex values using data coming from the game. For example, you might want to compute something like a score according to the X and Y coordinates of the player.
-
-This is where _functions_ are useful.
-
-You can use functions to dynamically calculate values while the game is running. For example, the `X` and `Y` functions calculate the coordinates of an [object](/gdevelop5/objects):
-
-```
-ObjectName.X()
-ObjectName.Y()
-```
-
-Using a function is often referred to as *calling* a function.
-
-!!! tip
-
- If you're familiar with formulas in spreadsheets, functions in programming languages, or functions in mathematics, functions in GDevelop are the same thing.
-
-### Syntax
-
-There are three types of functions:
-
-- Functions without objects. For example: `cos(3.14)`.
-- Functions with objects. For example: `Player.X()`.
-- Functions with objects and behaviors. For example: `Player.Animation::Index()`.
-
-#### Functions without objects
-
-Some functions exist independently of objects and [behaviors](/gdevelop5/behaviors). You don't need any object or behavior to call these functions.
-
-These are some examples of functions without objects:
-
-- `CurrentSceneName()` - Get the name of the current scene.
-- `FileSystem::DesktopPath()` - Get the path of the "Desktop" directory.
-- `ToNumber()` - Convert a string into a number.
-
-!!! note
-
- The `::` syntax is used to group functions related to a same feature or extension. For example, all of the file system functions are prefixed with `FileSystem::`. This helps keep related functions organized. The `::` syntax does not change the behavior of the function.
-
-#### Functions with objects
-
-Some functions are called on objects. This means the function affects or retrieves data about a specific object.
-
-These are some examples of functions that are used with objects. The placeholder `