diff --git a/af-ZA/images/banner.png b/af-ZA/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/af-ZA/images/banner.png differ
diff --git a/af-ZA/images/cat-sprite.png b/af-ZA/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/af-ZA/images/cat-sprite.png differ
diff --git a/af-ZA/images/cat-walk-through-platform.png b/af-ZA/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/af-ZA/images/cat-walk-through-platform.png differ
diff --git a/af-ZA/images/cats-finished.png b/af-ZA/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/af-ZA/images/cats-finished.png differ
diff --git a/af-ZA/images/door-sprite.png b/af-ZA/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/af-ZA/images/door-sprite.png differ
diff --git a/af-ZA/images/draw-a-line.png b/af-ZA/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/af-ZA/images/draw-a-line.png differ
diff --git a/af-ZA/images/falling-cats.png b/af-ZA/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/af-ZA/images/falling-cats.png differ
diff --git a/af-ZA/images/flailing-at-edge.png b/af-ZA/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/af-ZA/images/flailing-at-edge.png differ
diff --git a/af-ZA/images/flower-random.png b/af-ZA/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/af-ZA/images/flower-random.png differ
diff --git a/af-ZA/images/pen-sprite.png b/af-ZA/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/af-ZA/images/pen-sprite.png differ
diff --git a/af-ZA/meta.yml b/af-ZA/meta.yml
new file mode 100644
index 0000000..ea88a99
--- /dev/null
+++ b/af-ZA/meta.yml
@@ -0,0 +1,26 @@
+---
+title: CATS!
+hero_image: images/banner.png
+description: Create a game in which you guide cats to safety and stop them from falling into holes
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introduction
+ -
+ title: Draw lines
+ -
+ title: Clone cats
+ -
+ title: Make the cats move
+ -
+ title: Stick to the lines
+ -
+ title: Get to safety
+ -
+ title: "Challenge: more obstacles"
+ challenge: true
+ -
+ title: What next?
diff --git a/af-ZA/resources/cats-resources.sb3 b/af-ZA/resources/cats-resources.sb3
new file mode 100644
index 0000000..d952bff
Binary files /dev/null and b/af-ZA/resources/cats-resources.sb3 differ
diff --git a/af-ZA/solutions/cats-solution.sb3 b/af-ZA/solutions/cats-solution.sb3
new file mode 100644
index 0000000..a2dc7c8
Binary files /dev/null and b/af-ZA/solutions/cats-solution.sb3 differ
diff --git a/af-ZA/step_1.md b/af-ZA/step_1.md
new file mode 100644
index 0000000..75244c0
--- /dev/null
+++ b/af-ZA/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+This is the **Scratch 3** version of the project. There is also a [Scratch 2 version of the project](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introduction
+
+In this project, you will create a game in which you need to guide cats to safety and not let any of them fall through the gaps!
+
+### What you will make
+
+\--- no-print \---
+
+Click and drag with the mouse to draw a line with the pencil. Your goal is to stop the cats from falling into holes by creating a safe path to the exit.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: What you will learn
+
++ How to use a `forever`{:class="block3control"} loop to constantly generate moving cats
++ How to use a `repeat until`{:class="block3control"} loop to ensure your cats follow a line
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: What you will need
+
+### Hardware
+
++ A computer capable of running Scratch 3
+
+### Software
+
++ Scratch 3 (either [online](http://rpf.io/scratchon){:target="_blank"} or [offline](http://rpf.io/scratchoff){:target="_blank"})
+
+### Downloads
+
++ [Offline starter project](http://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Additional notes for educators
+
+\--- no-print \---
+
+If you need to print this project, please use the [printer-friendly version](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](http://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/af-ZA/step_2.md b/af-ZA/step_2.md
new file mode 100644
index 0000000..bd3358c
--- /dev/null
+++ b/af-ZA/step_2.md
@@ -0,0 +1,140 @@
+## Draw lines
+
+\--- task \---
+
+Open the 'CATS!' Scratch starter project.
+
+**Online:** open the starter project at [rpf.io/cats-on](http://rpf.io/cats-on){:target="_blank"}.
+
+If you have a Scratch account you can make a copy by clicking **Remix**.
+
+**Offline:** open the [starter project](http://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](http://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Add the Pen extension to your project.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Click on the sprite called 'Pen', and add code to set the pen colour to the same blue as the obstacles on the Stage.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+To select a colour, click on the colour square in the `set pen color`{:class="block3extensions"} block to make your mouse cursor turn into a pipette, and then click on the correct colour on the Stage.
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code to make the sprite follow the mouse pointer. Test your program to check that the code works.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add some code to tell the sprite to draw a line on the Stage if the mouse button is pressed down.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the `mouse is down`{:class="block3sensing"}, put the `pen down`{:class="block3extensions"}, and `else`{:class="block3control"}, lift the `pen up`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Test your code. You should be able to click and drag with the mouse to draw a blue line on the Stage.
+
+
+
+\--- /task \---
+
+You probably see that a blue dot always appears in the top right-hand corner of the Stage (it's circled in the image above). This is because, when you click the green flag to start the game, you press the mouse down, and so the pen immediately starts drawing.
+
+\--- task \---
+
+To stop this from happening, add a `pen up`{:class="block3extensions"} block at the start of the script, and a `wait one second`{:class="block3control"} block above the `forever`{:class="block3control"} block.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/af-ZA/step_3.md b/af-ZA/step_3.md
new file mode 100644
index 0000000..d5f8d46
--- /dev/null
+++ b/af-ZA/step_3.md
@@ -0,0 +1,73 @@
+## Clone cats
+
+You want a never-ending stream of cats that the player has to guide along the path to the exit.
+
+\--- task \---
+
+Click on the sprite called 'Cat', and add some code to `hide`{:class="block3looks"} the sprite, and also to `clone`{:class="block3control"} it every three seconds.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+If you run the program now, nothing happens on the Stage. To check that a new Cat sprite clone is created every three seconds, make each clone appear and fall out of the sky.
+
+\--- task \---
+
+Add code to tell the sprite that `when it starts as a clone`{:class="block3control"}, it should `show`{:class="block3looks"} itself and fall until it `touches`{:class="block3sensing"} the blue floor that is drawn on the Stage.
+
+
+
+\--- hints \--- \--- hint \---
+
+`When the sprite starts as a clone`{:class="block3control"}, `show`{:class="block3looks"} the sprite. `Repeatedly`{:class="block3control"} `Change`{:class="block3motion"} the sprite's `y` coordinate by `-2`, until the sprite `touches`{:class="block3sensing"} the blue Stage.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+When you click the green flag, you should see a new cat fall from the top of the Stage every three seconds. Every cat should land in a big pile of overlapping cats on the blue floor at the bottom.
+
+
\ No newline at end of file
diff --git a/af-ZA/step_4.md b/af-ZA/step_4.md
new file mode 100644
index 0000000..8c10235
--- /dev/null
+++ b/af-ZA/step_4.md
@@ -0,0 +1,115 @@
+## Make the cats move
+
+Once a cat reaches the floor, it should step slowly to the right.
+
+\--- task \---
+
+Add code to the `when I start as a clone`{:class="block3control"} section to make the cat sprite `move ten steps`{:class="block3motion"}, and switch between the sprite's two costumes every 0.1 seconds to make the cat look like it's walking.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat sprite should `move 10 steps`{:class="block3motion"}, and `switch costume`{:class="block3looks"} every `0.1 seconds`{:class="block3control"}. This code should repeat `forever`{:class="block3control"}, just like the code to make the cat fall.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats now move along the blue platform at the bottom.
+
+\--- /task \---
+
+If you draw a bridge across the gap so that the cats can get all the way to the right side of the Stage, you can see that they end up getting stuck walking into the right wall.
+
+
+
+\--- task \---
+
+Remove the `forever`{:class="block3control"} loop, and instead add a different loop to make the cats only walk until they reach an edge. When a cat reaches the edge of the Stage, it should disappear.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats disappear when they reach the edge of the Stage.
+
+\--- /task \---
+
+You may notice that, if the cats fall into the hole, they don't disappear but instead get stuck at the bottom. This is because they keep trying to fall downwards.
+
+This is the part of the code that tells the cat to keep falling until it touches blue:
+
+```blocks3
+repeat until
+end
+```
+
+However, in the hole, the cat can never reach blue, so it is stuck forever.
+
+\--- task \---
+
+Add more blocks to this loop so that it repeats until the cat sprite is touching blue `or`{:class="block3operators"} `touching the edge`{:class="block3sensing"}. This way, the sprite stops trying to fall if it reaches the edge of the Stage.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/af-ZA/step_5.md b/af-ZA/step_5.md
new file mode 100644
index 0000000..ff776e8
--- /dev/null
+++ b/af-ZA/step_5.md
@@ -0,0 +1,65 @@
+## Stick to the lines
+
+You might notice that, if you draw a low bridge between the two platforms, or a line that slopes upwards, the cats end up walking through the platform rather than on top of it!
+
+
+
+\--- task \---
+
+In the code for the cat sprite, add another loop before the `next costume`{:class="block3looks"} block. This time, the loop should tell the cat to move upwards by `2` until it is not touching blue.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat should `move up 2`{:class="block3motion"} `repeatedly until`{:class="block3control"} it is `not`{:class="block3operators"} `touching blue`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Click the green flag and try drawing a line that slopes upwards. Check that your cat follows this line.
+
+\--- /task \---
\ No newline at end of file
diff --git a/af-ZA/step_6.md b/af-ZA/step_6.md
new file mode 100644
index 0000000..deb146e
--- /dev/null
+++ b/af-ZA/step_6.md
@@ -0,0 +1,89 @@
+## Get to safety
+
+The object of the game is to guide the cats to safety by creating a path so they can reach the door. Create a score variable to keep track of how many cats reach the door.
+
+\--- task \---
+
+Create a variable called `score`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add code to your cat sprite to add `1` to the `score`{:class="block3variables"} each time a cat reaches the door. Also set `score`{:class="block3variables"} to `0` `when the flag is clicked`{:class="block3events"} at the start of the game.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the cat is `touching the door sprite`{:class="block3sensing"}, then `add 1 to the score`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the new code blocks you need to add to your `when I start as a clone` script:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code so that, when a cat sprite reaches the door, the cat makes a 'meow' sound and then disappears.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/af-ZA/step_7.md b/af-ZA/step_7.md
new file mode 100644
index 0000000..6e609ac
--- /dev/null
+++ b/af-ZA/step_7.md
@@ -0,0 +1,13 @@
+## Challenge: more obstacles
+
+At the moment, the game is rather easy to win. Can you think of ideas to you make your game harder?
+
++ Add more backgrounds with different platform designs.
+
++ Move the location of the door depending on which background is displayed.
+
++ Add more sprites as moving obstacles. Perhaps you could have roaming dogs or rotating spikes the cats need to avoid?
+
++ Only allow the player to use a limited amount of "ink" to draw lines in the game. You can keep track of how much "ink" is used by creating a timer variable that records how long the mouse is held down.
+
++ Create a sprite to show the player how much ink is left.
\ No newline at end of file
diff --git a/af-ZA/step_8.md b/af-ZA/step_8.md
new file mode 100644
index 0000000..2295a72
--- /dev/null
+++ b/af-ZA/step_8.md
@@ -0,0 +1,19 @@
+## What next?
+
+Try the [Flower generator](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects) project, where you will use custom blocks to create flower patterns.
+
+\--- no-print \---
+
+Press `f` to draw a few flowers, or `r` to draw lots of random flowers, or `p` to draw a flower pattern.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/ar-SA/images/banner.png b/ar-SA/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/ar-SA/images/banner.png differ
diff --git a/ar-SA/images/cat-sprite.png b/ar-SA/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/ar-SA/images/cat-sprite.png differ
diff --git a/ar-SA/images/cat-walk-through-platform.png b/ar-SA/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/ar-SA/images/cat-walk-through-platform.png differ
diff --git a/ar-SA/images/cats-finished.png b/ar-SA/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/ar-SA/images/cats-finished.png differ
diff --git a/ar-SA/images/door-sprite.png b/ar-SA/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/ar-SA/images/door-sprite.png differ
diff --git a/ar-SA/images/draw-a-line.png b/ar-SA/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/ar-SA/images/draw-a-line.png differ
diff --git a/ar-SA/images/falling-cats.png b/ar-SA/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/ar-SA/images/falling-cats.png differ
diff --git a/ar-SA/images/flailing-at-edge.png b/ar-SA/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/ar-SA/images/flailing-at-edge.png differ
diff --git a/ar-SA/images/flower-random.png b/ar-SA/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/ar-SA/images/flower-random.png differ
diff --git a/ar-SA/images/pen-sprite.png b/ar-SA/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/ar-SA/images/pen-sprite.png differ
diff --git a/ar-SA/meta.yml b/ar-SA/meta.yml
new file mode 100644
index 0000000..867dc39
--- /dev/null
+++ b/ar-SA/meta.yml
@@ -0,0 +1,30 @@
+---
+title: قطط!
+hero_image: images/banner.png
+description: قم بإنشاء لعبة توجه فيها القطط إلى الأمان وتمنعها من السقوط في الحفر
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: المقدمة
+ -
+ title: رسم الخطوط
+ -
+ title: استنساخ القطط
+ completion:
+ - engaged
+ -
+ title: تحريك القطط
+ -
+ title: الالتزام بالخطوط
+ -
+ title: الوصول إلى بر الأمان
+ completion:
+ - internal
+ -
+ title: 'التحدي: مزيد من العوائق'
+ challenge: true
+ -
+ title: ما التالي؟
diff --git a/ar-SA/resources/cats-resources.sb3 b/ar-SA/resources/cats-resources.sb3
new file mode 100644
index 0000000..4ac2dfa
Binary files /dev/null and b/ar-SA/resources/cats-resources.sb3 differ
diff --git a/ar-SA/solutions/cats-solution.sb3 b/ar-SA/solutions/cats-solution.sb3
new file mode 100644
index 0000000..7178511
Binary files /dev/null and b/ar-SA/solutions/cats-solution.sb3 differ
diff --git a/ar-SA/step_1.md b/ar-SA/step_1.md
new file mode 100644
index 0000000..081dac1
--- /dev/null
+++ b/ar-SA/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+هذا هو إصدار ** Scratch 3 ** من المشروع. هناك أيضًا [ إصدار Scratch 2 للمشروع](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## المقدمة
+
+في هذا المشروع، ستقوم بإنشاء لعبة تحتاج فيها إلى توجيه القطط إلى بر الأمان وعدم السماح لأي منها بالوقوع في الحفر!
+
+### ما الذي ستصنعه
+
+\--- no-print \---
+
+انقر واسحب بالماوس لرسم خط بالقلم الرصاص. هدفك هو منع القطط من السقوط في الحفر عن طريق إنشاء مسار آمن للخروج.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: ما الذي ستتعلمه
+
++ كيفية استخدام حلقة { `كرّر باستمرار`{: class = "block3control"} لتوليد قطط متحركة باستمرار
++ كيفية استخدام حلقة `كرّر حتى`{: class = "block3control"} لضمان أن القطط التي أنشأتها تتبع خطاً
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: ما ستحتاج إليه
+
+### الأجهزة
+
++ جهاز كمبيوتر يدعم تشغيل برنامج Scratch 3
+
+### البرامج
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### للتحميل
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: ملاحظات إضافية للمعلمين
+
+\--- no-print \---
+
+إذا كنت بحاجة إلى طباعة هذا المشروع، فيُرجى استخدام [النسخة المخصصة للطباعة](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/ar-SA/step_2.md b/ar-SA/step_2.md
new file mode 100644
index 0000000..26ca442
--- /dev/null
+++ b/ar-SA/step_2.md
@@ -0,0 +1,140 @@
+## رسم الخطوط
+
+\--- task \---
+
+افتح مشروع سكراتش المبدئي "القطط!".
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+اذا كنت تملك حساب على منصة سكراتش (Scratch) فيمكنك عمل نسخة بالنقر على **Remix**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+أضف ملحق القلم لمشروعك.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+انقر على الكائن المسمى 'القلم'، وأضف تعليمة برمجية لتعيين لون القلم إلى نفس اللون الأزرق كالعقبات على المنصة.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+لتحديد لون، انقر فوق مربع اللون في كتلة `تعيين لون القلم`{: class = "block3extensions"} لتحويل مؤشر الماوس إلى انبوب، ثم انقر فوق اللون الصحيح في المنصة.
+
+\--- /task \---
+
+\--- task \---
+
+قم بإضافة المزيد من التعليمات البرمجية لجعل الكائن بتبع مؤشر الماوس. اختبر برنامجك للتحقق من عمل البرنامج.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+أضف بعض التعليمات البرمجية لجعل الكائنات ترسم خط على المنصة إذا تم الضغط على زر الماوس.
+
+
+
+\--- hints \--- \--- hint \---
+
+`إذا`{:class="block3control"} كان `زر الفأرة مضغوط`{:class="block3sensing"}, `أنزل القلم`{:class="block3extensions"}, and `وإلا`{:class="block3control"}, `ارفع القلم`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+هنا التعليمات البرمجية التي ستحتاج اليها:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+و هذا ما يجب أن تبدو عليه التعليمات البرمجية الخاصة بك:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+اختبر مشروعك. يجب أن تكون قادرًا على النقر والسحب بالماوس لرسم خط أزرق على المنصة.
+
+
+
+\--- /task \---
+
+ربما ستظهر نقطة رزقاء بشكل دائم في الزاوية العلوية اليمنى من المنصة (النقطة المحاطة بدائرة في الصورة). هذا لأنه عندما تنقر على العلم الأخضر لبدء اللعبة، فإنك قمت بالضغط على زر الماوس، وبالتالي يبدأ القلم في الرسم على الفور.
+
+\--- task \---
+
+لمنع حدوث ذلك، أضف كتلة `ارفع القلم`{:class="block3extensions"} في بداية البرنامج، وكتلة `انتظر 1 ثانية`{:class="block3control"} قبل كتلة `كرّر باستمرار`{:class="block3control"}.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/ar-SA/step_3.md b/ar-SA/step_3.md
new file mode 100644
index 0000000..728de7c
--- /dev/null
+++ b/ar-SA/step_3.md
@@ -0,0 +1,73 @@
+## استنساخ القطط
+
+ستحتاج تدفق لا ينتهي من القطط التي يجب على اللاعب توجيهها على طول المسار إلى المخرج.
+
+\--- task \---
+
+انقر على الكائن المسمى 'Cat'، وأضف بعض التعليمات البرمجية لـ `إخفاء`{:class="block3looks"} الكائن، وأيضاً لـ `نسخها`{:class="block3looks"} كل ثلاث ثوان.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+إذا قمت بتشغيل البرنامج الآن، فلن يحدث شيء على المنصة. للتأكد من إنشاء نسخة من كائن القط كل ثلاث ثوان، اجعل كل كائن يظهر ويسقط من السماء.
+
+\--- task \---
+
+أضف كتلة برمجية لإخبار الكائن أنه `عندما تبدأ نسخة منه`{:class="block3control"}، يجب أن أن `تظهر`{:class="block3looks"} نفسها وتسقط حتى `تلامس`{:class="block3sensing"} الأرضية الزرقاء المرسومة على المنصة.
+
+
+
+\--- hints \--- \--- hint \---
+
+`عندما يبدأ الكائن كنسخة`{:class="block3control"}, `أظهر`{:class="block3looks"} الكائن. `غير`{:class="block3motion"} الموضع `ص` للكائن `بشكل متكرر`{:class="block3control"} بمقدار `-2` حتى `يلامس`{:class="block3sensing"} الكائن المنصة الرزرقاء.
+
+\--- /hint \---
+
+\--- hint \---
+
+هنا التعليمات البرمجية التي ستحتاج اليها:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+و هذا ما يجب أن تبدو عليه التعليمات البرمجية الخاصة بك:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+عندما تنقر على العلم الأخضر، يجب أن ترى قطة جديدة تسقط من أعلى المسرح كل ثلاث ثوانٍ. يجب أن تهبط كل قطة في كومة كبيرة من القطط المتداخلة على الأرضية الزرقاء في الأسفل.
+
+
\ No newline at end of file
diff --git a/ar-SA/step_4.md b/ar-SA/step_4.md
new file mode 100644
index 0000000..35118ba
--- /dev/null
+++ b/ar-SA/step_4.md
@@ -0,0 +1,115 @@
+## تحريك القطط
+
+بمجرد أن تصل القطة إلى الأرض، يجب أن تتحرك ببطء إلى اليمين.
+
+\--- task \---
+
+أضف تعليمات برمجية إلى جزء `عندما أبدأ كنسخة`{:class="block3control"} لتجعل كائن القط `يتحرك عشر خطوات`{:class="block3motion"}، وقم بالتبديل بين مظهري الكائن كل 0.1 ثانية لجعل القط يبدو وكأنه يمشي.
+
+
+
+\--- hints \--- \--- hint \---
+
+يجب على كائن القط أن `يتحرك 10 خطوات`{:class="block3motion"}، و`يبدل المظهر`{:class="block3looks"} كل `0.1 ثانية`{:class="block3control"}. هذه التعليمات يجب أن يتم تكرارها `باستمرار`{:class="block3control"}، تماماً مثل التعليمات التي تجعل القطط تتساقط.
+
+\--- /hint \---
+
+\--- hint \---
+
+هنا التعليمات البرمجية التي ستحتاج اليها:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+و هذا ما يجب أن تبدو عليه التعليمات البرمجية الخاصة بك:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+اضغط على العلم الأخضر وتحقق من أن القطط تتحرك الآن على طول المنصة الزرقاء في الأسفل.
+
+\--- /task \---
+
+إذا قمت برسم جسر عبر الفجوة بحيث تتمكن القطط من الوصول إلى الجانب الأيمن من المنصة، يمكنك أن ترى أنها ستنتهي في النهاية بالسير داخل الجدار الأيمن.
+
+
+
+\--- task \---
+
+احذف حلقة `كرر باستمرار`{:class="block3control"}، وأضف بدلاً منها حلقة تكرار مختلفة تجعل القطط تستمر في المشي حتى تصل إلى أحد الحواف. عندما يصل القط إلى حافة المنصة، يجب أن يختفي.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+اضغط على العلم الأخضر وتحقق من اختفاء القطط عند وصولها إلى حافة المنصة.
+
+\--- /task \---
+
+ستلاحظ أنه إذا سقطت القطط في الحفرة، فإنها لا تختفي بل ستظل عالقة في القاع. وهذا لأنها ستستمر بمحاولة السقوط إلى الأسفل.
+
+هذا هو الجزء من التعليمات البرمجية الذي يطلب من القط الاستمرار في السقوط حتى تلامس اللون الأزرق:
+
+```blocks3
+repeat until
+end
+```
+
+مع ذلك، عند السقوط في الحفرة، لن يتمكن القط من بلوغ المنصة الرزقاء، لذلك سيكون عالقاً إلى الأبد.
+
+\--- task \---
+
+أضف المزيد من الكتل البرمجية إلى هذه الحلقة بحيث يتم تكرارها حتى يلامس كائن القط المنصة الزرقاء `أو`{:class="block3operators"} `يلامس الحافة`{:class="block3sensing"}. بهذه الطريقة، سيتوقف القط عن محاولة السقوط عند الوصول إلى حافة المنصة.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/ar-SA/step_5.md b/ar-SA/step_5.md
new file mode 100644
index 0000000..5dbb39d
--- /dev/null
+++ b/ar-SA/step_5.md
@@ -0,0 +1,65 @@
+## الالتزام بالخطوط
+
+قد تلاحظ أنه عند رسم جسر منخفض بين المنصتين، أو خط منحدر نحو الأعلى، ستقوم القطط بالمشي عبر المنصات الزرقاء بدلاً من المشي فوقها!
+
+
+
+\--- task \---
+
+في التعليمات البرمجية الخاصة بكائن القط، أضف حلقة تكرار جديدة قبل كتلة `المظهر التالي`{:class="block3looks"}. هذه المرة، يجب أن تقوم هذه الحلقة بجعل القط يتحرك إلى الأعلى بمقدار `2` إلى أن لا يكون ملامساً للون الأزرق.
+
+
+
+\--- hints \--- \--- hint \---
+
+يجب على القط أن `يتحرك للأعلى بمقدار 2`{:class="block3motion"} `بشكل متكرر حتى`{:class="block3control"} يصبح `لا`{:class="block3operators"} `ملامساً للأزرق`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+هنا التعليمات البرمجية التي ستحتاج اليها:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+و هذا ما يجب أن تبدو عليه التعليمات البرمجية الخاصة بك:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+انقر على العلم الأخضر وحاول رسم خط ينحدر إلى الأعلى. تحقق من أن القط يتبع هذا الخط.
+
+\--- /task \---
\ No newline at end of file
diff --git a/ar-SA/step_6.md b/ar-SA/step_6.md
new file mode 100644
index 0000000..8c4e92c
--- /dev/null
+++ b/ar-SA/step_6.md
@@ -0,0 +1,89 @@
+## الوصول إلى بر الأمان
+
+الهدف من اللعبة هو توجيه القطط نحو الأمان عن طريق إنشاء مسار حتى يمكنها الوصول إلى الباب. أنشئ متغير نتيجة لتسجيل كم قط استطاع الوصول إلى الباب.
+
+\--- task \---
+
+أنشئ متغيراً يدعى `النتيجة`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+أضف تعليمات برمجية لكائن القط لإضافة `1` إلى `النتيجة`{:class="block3variables"} كل مرة يصل قط إلى الباب. أيضاً اجعل `النتيجة`{:class="block3variables"} تساوي `0` عند `النقر على العلم الأخضر`{:class="block3events"} في بداية اللعبة.
+
+
+
+\--- hints \--- \--- hint \---
+
+`إذا`{:class="block3control"} كان القط `يلامس كائن الباب`{:class="block3sensing"}، عندها `أضف 1 إلى النتيجة`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+فيما يلي كتل التعليمات البرمجية الجديدة التي تحتاج إلى إضافتها إلى جزء `عندما أبدأ كنسخة`:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+و هذا ما يجب أن تبدو عليه التعليمات البرمجية الخاصة بك:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+أضف المزيد من التعليمات البرمجية بحيث عندما يصل كائن القط إلى الباب، يصدر القط صوت مواء 'mewo' ويختفي بعدها.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/ar-SA/step_7.md b/ar-SA/step_7.md
new file mode 100644
index 0000000..cecb5fd
--- /dev/null
+++ b/ar-SA/step_7.md
@@ -0,0 +1,13 @@
+## التحدي: عوائق أخرى
+
+في الوقت الحالي، من السهل جداً الفوز باللعبة. هل بإمكانك إيجاد بعض الأفكار لجعل الفوز باللعبة أصعب؟
+
++ أضف المزيد من الخلفيات مع تصاميم مختلفة للمنصات.
+
++ غير موضع الباب اعتماداً على الخلفية التي يتم إظهارها.
+
++ أضف المزيد من الكائنات كعوائق متحركة. ربما تستطيع إضافة كلاب متجولة أو مسامير يجب على القطط أن تتجنبها؟
+
++ اسمح للاعب باستخدام كمية محددة من "الحبر" لرسم الخطوط في اللعبة. يمكن أن تقوم بتسجيل كمية "الحبر" التي تم استخدامها عن طريق إنشاء متغير يقوم بتسجيل كم من الوقت تم إبقاء زر الماوس مضغوطاً.
+
++ أنشئ كائن ليعرض للاعب كم تبقى لديه من الحبر.
\ No newline at end of file
diff --git a/ar-SA/step_8.md b/ar-SA/step_8.md
new file mode 100644
index 0000000..57ad522
--- /dev/null
+++ b/ar-SA/step_8.md
@@ -0,0 +1,19 @@
+## ما التالي؟
+
+جرب مشروع [مولد الأزهار](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects)، حيث ستقوم باستخدام كتل برمجية خاصة لإنشاء أنماط الزهور.
+
+\--- no-print \---
+
+اضغط حرف `f` لرسم بعض الأزهار، أو حرف `r` لرسم العديد من الأزهار العشوائية، أو حرف `p` لرسم نمط زهرة.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/ca-ES/images/banner.png b/ca-ES/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/ca-ES/images/banner.png differ
diff --git a/ca-ES/images/cat-sprite.png b/ca-ES/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/ca-ES/images/cat-sprite.png differ
diff --git a/ca-ES/images/cat-walk-through-platform.png b/ca-ES/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/ca-ES/images/cat-walk-through-platform.png differ
diff --git a/ca-ES/images/cats-finished.png b/ca-ES/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/ca-ES/images/cats-finished.png differ
diff --git a/ca-ES/images/door-sprite.png b/ca-ES/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/ca-ES/images/door-sprite.png differ
diff --git a/ca-ES/images/draw-a-line.png b/ca-ES/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/ca-ES/images/draw-a-line.png differ
diff --git a/ca-ES/images/falling-cats.png b/ca-ES/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/ca-ES/images/falling-cats.png differ
diff --git a/ca-ES/images/flailing-at-edge.png b/ca-ES/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/ca-ES/images/flailing-at-edge.png differ
diff --git a/ca-ES/images/flower-random.png b/ca-ES/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/ca-ES/images/flower-random.png differ
diff --git a/ca-ES/images/pen-sprite.png b/ca-ES/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/ca-ES/images/pen-sprite.png differ
diff --git a/ca-ES/meta.yml b/ca-ES/meta.yml
new file mode 100644
index 0000000..7ed0c27
--- /dev/null
+++ b/ca-ES/meta.yml
@@ -0,0 +1,30 @@
+---
+title: GATS!
+hero_image: images/banner.png
+description: Crea un joc en el qual has de guiar els gats de forma segura sense que caiguin als forats
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introducció
+ -
+ title: Dibuixa línies
+ -
+ title: Clona gats
+ completion:
+ - engaged
+ -
+ title: Fes moure els gats
+ -
+ title: Adhereix-los a les línies
+ -
+ title: Fes que vagin segurs
+ completion:
+ - internal
+ -
+ title: 'Repte: més obstacles'
+ challenge: true
+ -
+ title: I ara què ve?
diff --git a/ca-ES/resources/cats-resources.sb3 b/ca-ES/resources/cats-resources.sb3
new file mode 100644
index 0000000..3d6b874
Binary files /dev/null and b/ca-ES/resources/cats-resources.sb3 differ
diff --git a/ca-ES/solutions/cats-solution.sb3 b/ca-ES/solutions/cats-solution.sb3
new file mode 100644
index 0000000..66916a4
Binary files /dev/null and b/ca-ES/solutions/cats-solution.sb3 differ
diff --git a/ca-ES/step_1.md b/ca-ES/step_1.md
new file mode 100644
index 0000000..d90a8bb
--- /dev/null
+++ b/ca-ES/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+Es tracta de la versió **Scratch 3** del projecte. També hi ha una [versió de Scratch 2 del projecte](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introducció
+
+En aquest projecte, crearàs un joc en el qual has guiar els gats de forma segura i no deixar que cap d’ells caigui entre els buits!
+
+### Què faràs
+
+\--- no-print \---
+
+Fes clic i arrossega amb el ratolí per dibuixar una línia amb el llapis. El teu objectiu és evitar que els gats caiguin en forats creant un camí segur fins a la sortida.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: Què aprendràs
+
++ Com utilitzar un bucle `per sempre`{:class="block3control"} per generar constantment gats en moviment
++ Com utilitzar un bucle `repeteix fins`{:class="block3control"} per assegurar-te que els teus gats segueixen una línia
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Què necessitaràs
+
+### Maquinari
+
++ Un ordinador capaç d'executar Scratch 3
+
+### Programari
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Descàrregues
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Notes addicionals per a educadors
+
+\--- no-print \---
+
+Si necessites imprimir aquest projecte, si us plau utilitza la [versió per a imprimir](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/ca-ES/step_2.md b/ca-ES/step_2.md
new file mode 100644
index 0000000..c44cc60
--- /dev/null
+++ b/ca-ES/step_2.md
@@ -0,0 +1,140 @@
+## Dibuixa línies
+
+\--- task \---
+
+Obre el projecte inicial "CATS!" d’Scratch.
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+Si tens un compte a Scratch pots fer una còpia fent clic a **Reinventa**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Afegeix l’extensió Llapis al teu projecte.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Fes clic al personatge anomenat "Llapis", i afegeix codi per configurar el color del llapis al mateix blau que el dels obstacles de l'escenari.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+Per seleccionar un color, fes clic al quadrat de color del bloc `fixa el color del llapis a`{:class="block3extensions"} per fer que el cursor del ratolí es converteixi en una pipeta i, a continuació, fes clic al color correcte de l'escenari.
+
+\--- /task \---
+
+\--- task \---
+
+Afegeix més codi per tal que el personatge segueixi el punter del ratolí. Prova el programa per comprovar que el codi funciona.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Afegeix codi per dir-li al personatge que dibuixi una línia a l’Escenari si es manté premut el botó del ratolí.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Si`{:class="block3control"} el `ratolí clicat`{:class="block3sensing"}, `baixa el llapis`{:class="block3extensions"} i `si no`{:class="block3control"}, `puja el llapis`{:class="block3extensions "}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí tens els blocs que necessites:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Així és com s'hauria de veure el teu codi:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Prova el codi nou. Hauries de fer clic i arrossegar amb el ratolí per dibuixar una línia blava a l'Escenari.
+
+
+
+\--- /task \---
+
+Probablement veuràs que sempre apareix un punt blau a la part superior dreta de l'Escenari (està encerclat a la imatge de dalt). Això es deu al fet que, quan fas clic a la bandera verda per iniciar el joc, prems el ratolí cap avall i així el llapis comença a dibuixar immediatament.
+
+\--- task \---
+
+Per evitar que això passi, afegeix un bloc `puja el llapis`:{:class="block3extensions"} al començament del codi i un bloc `espera un segon`{:class="block3control"} per sobre del bloc `per sempre`{:class="block3control"}.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/ca-ES/step_3.md b/ca-ES/step_3.md
new file mode 100644
index 0000000..b392a3a
--- /dev/null
+++ b/ca-ES/step_3.md
@@ -0,0 +1,73 @@
+## Clona gats
+
+Volem un flux de gats que el jugador ha de guiar pel camí fins a la sortida.
+
+\--- task \---
+
+Fes clic al personatge anomenat 'Gat' i afegeix algun codi per `amagar`{:class="block3looks"} i per `clonar`{:class="block3control"} el personatge cada tres segons.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+Si executes el programa ara, no passa res a l’Escenari. Per comprovar que es crea un nou clon del personatge Gat cada tres segons, fes que cada clon aparegui i caigui del cel.
+
+\--- task \---
+
+Afegeix codi per dir-li al personatge que `quan s'inicia com a cloni`{:class = "block3control"} s'hauria de `mostrar`{:class="block3looks"} i caure fins que `toqui`{:class=" block3sensing"} el terra blau que està dibuixat a l'Escenari.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Quan el personatge comença com un clon`{:class="block3control"}, `mostra`{:class="block3looks"} el personatge. `Repetidament`{ class="block3control"} `Canviar`{:class="block3motion"} la coordenada `y` del personatge per `-2`, fins que el personatge `toqui`{:class="block3sensing"} el color blau de l'Escenari.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí tens els blocs que necessites:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Així és com s'hauria de veure el teu codi:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+Quan facis clic a la bandera verda, hauries de veure caure un gat nou des de la part superior de l'Escenari cada tres segons. Cada gat ha d’aterrar en una gran pila de gats amuntegats al terra blau de la part inferior.
+
+
\ No newline at end of file
diff --git a/ca-ES/step_4.md b/ca-ES/step_4.md
new file mode 100644
index 0000000..5ba024f
--- /dev/null
+++ b/ca-ES/step_4.md
@@ -0,0 +1,115 @@
+## Fes moure els gats
+
+Una vegada que un gat arriba al terra, hauria de passar lentament cap a la dreta.
+
+\--- task \---
+
+Afegeix codi a la secció `quan començo com a clon`{:class="block3control"} per fer que el gat es `mogui deu passos`{:class="block3motion"} i canvia entre els dos vestits del personatge cada 0,1 segons fer que el gat sembli que camini.
+
+
+
+\--- hints \--- \--- hint \---
+
+El personatge del gat s'hauria de `moure 10 passos`{:class="block3motion"} i `canviar de vestit`{:class="block3looks"} cada `0,1 segons`{:class="block3control"}. Aquest codi s'hauria de repetir `per sempre`{:class="block3control"}, de la mateixa manera que el codi per fer caure el gat.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí tens els blocs que necessites:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Així és com s'hauria de veure el teu codi:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Prem la bandera verda i comprova que els gats es mouen per la plataforma blava de la part inferior.
+
+\--- /task \---
+
+Si dibuixes un pont que tapi la bretxa perquè els gats puguin anar fins al costat dret de l’Escenari, pots veure que s’acaben enganxant caminant per la paret dreta.
+
+
+
+\--- task \---
+
+Elimina el bucle `per sempre`{:class="block3control"}, i afegeix en el seu lloc un bucle diferent perquè els gats només caminin fins que arribin a la vora. Quan un gat arriba a la vora de l’Escenari, hauria de desaparèixer.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Prem la bandera verda i comprova que els gats desapareixen quan arriben a la vora de l’Escenari.
+
+\--- /task \---
+
+Pots observar que, si els gats cauen al forat, no desapareixen sinó que es queden enganxats a la part inferior. Això és perquè continuen intentant caure cap avall.
+
+Aquesta és la part del codi que indica que el gat continuï caient fins que toqui el blau:
+
+```blocks3
+repeat until
+end
+```
+
+Tot i això, al forat, el gat no pot arribar mai al blau, de manera que queda enganxat per sempre.
+
+\--- task \---
+
+Afegeix més blocs a aquest bucle de manera que es repeteixi fins que el personatge del gat toqui el blau `o`{:class="block3operators"} `toqui la vora`{:class="block3sensing"}. D’aquesta manera, el personatge deixa d’intentar caure si arriba a la vora de l’Escenari.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/ca-ES/step_5.md b/ca-ES/step_5.md
new file mode 100644
index 0000000..e22215b
--- /dev/null
+++ b/ca-ES/step_5.md
@@ -0,0 +1,65 @@
+## Adhereix-los a les línies
+
+És possible que notis que, si dibuixes un pont baix entre les dues plataformes, o bé una línia inclinada cap amunt, els gats acaben caminant a través de la plataforma en lloc de per sobre!
+
+
+
+\--- task \---
+
+En el codi del personatge del gat, afegeix un altre bucle abans del bloc `següent vestit`{:class="block3looks"}. Aquesta vegada, el bucle hauria de dir al gat que es mogui cap amunt per`2` fins que no toqui el blau.
+
+
+
+\--- hints \--- \--- hint \---
+
+El gat hauria de `pujar 2`{:class="block3motion"} `repetidament fins que`{:class="block3control"} `no`{:class="block3operators"} `toqui el color blau`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí tens els blocs que necessites:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Així és com s'hauria de veure el teu codi:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Fes clic a la bandera verda i prova de dibuixar una línia inclinada cap amunt. Comprova que el teu gat segueixi aquesta línia.
+
+\--- /task \---
\ No newline at end of file
diff --git a/ca-ES/step_6.md b/ca-ES/step_6.md
new file mode 100644
index 0000000..889d7a1
--- /dev/null
+++ b/ca-ES/step_6.md
@@ -0,0 +1,89 @@
+## Fes que vagin segurs
+
+L’objectiu del joc és guiar els gats de manera segura creant un camí perquè puguin arribar fins a la porta. Crea una variable de puntuació per fer un seguiment de quants gats arriben fins la porta.
+
+\--- task \---
+
+Crea una variable anomenada `puntuació`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Afegeix codi al teu personatge de gat per afegir `1` a la `puntuació`{:class="block3variables"} cada vegada que un gat arribi a la porta. També assigna a `puntuació`{:class="block3variables"} el valor `0` `quan es faci clic a la bandera`{:class="block3events"} al començament del joc.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Si`{:class="block3control"} el gat està `tocant a la porta`{:class="block3sensing"}, aleshores `afegir 1 a la puntuació`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquests són els nou blocs de codi que necessites afegir al que ja tens `quan començo com a clon`:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Així és com s'hauria de veure el teu codi:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Afegeix més codi per tal que, quan un personatge de gat arriba a la porta, aquest faci el so 'mèu' i després desaparegui.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/ca-ES/step_7.md b/ca-ES/step_7.md
new file mode 100644
index 0000000..1a3c60f
--- /dev/null
+++ b/ca-ES/step_7.md
@@ -0,0 +1,13 @@
+## Repte: més obstacles
+
+De moment, el joc és bastant fàcil de guanyar. Pots pensar en idees que facin el joc més difícil?
+
++ Afegeix més fons amb dissenys de plataformes diferents.
+
++ Desplaça la ubicació de la porta segons quin fons es mostri.
+
++ Afegeix més objectes com obstacles en moviment. Potser podries tenir gossos voltant o punxes rotatives que els gats hagin d'evitar?
+
++ Permet al jugador que utilitzi només una quantitat limitada de "tinta" per dibuixar línies en el joc. Pots fer un seguiment de la quantitat de "tinta" que s'utilitza creant una variable temporitzador que enregistri quant de temps es manté el ratolí pressionat.
+
++ Crea un personatge que mostri al jugador la quantitat de tinta que queda.
\ No newline at end of file
diff --git a/ca-ES/step_8.md b/ca-ES/step_8.md
new file mode 100644
index 0000000..57e81db
--- /dev/null
+++ b/ca-ES/step_8.md
@@ -0,0 +1,19 @@
+## I ara què ve?
+
+Prova el projecte [Generador de flors](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects), on empraràs blocs personalitzats per crear dissenys de flors.
+
+\--- no-print \---
+
+Prem `f` per dibuixar unes quantes flors, o `r` per dibuixar moltes flors aleatòries, o `p` per dibuixar un disseny de flors.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/cs-CZ/images/banner.png b/cs-CZ/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/cs-CZ/images/banner.png differ
diff --git a/cs-CZ/images/cat-sprite.png b/cs-CZ/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/cs-CZ/images/cat-sprite.png differ
diff --git a/cs-CZ/images/cat-walk-through-platform.png b/cs-CZ/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/cs-CZ/images/cat-walk-through-platform.png differ
diff --git a/cs-CZ/images/cats-finished.png b/cs-CZ/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/cs-CZ/images/cats-finished.png differ
diff --git a/cs-CZ/images/door-sprite.png b/cs-CZ/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/cs-CZ/images/door-sprite.png differ
diff --git a/cs-CZ/images/draw-a-line.png b/cs-CZ/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/cs-CZ/images/draw-a-line.png differ
diff --git a/cs-CZ/images/falling-cats.png b/cs-CZ/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/cs-CZ/images/falling-cats.png differ
diff --git a/cs-CZ/images/flailing-at-edge.png b/cs-CZ/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/cs-CZ/images/flailing-at-edge.png differ
diff --git a/cs-CZ/images/flower-random.png b/cs-CZ/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/cs-CZ/images/flower-random.png differ
diff --git a/cs-CZ/images/pen-sprite.png b/cs-CZ/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/cs-CZ/images/pen-sprite.png differ
diff --git a/cs-CZ/meta.yml b/cs-CZ/meta.yml
new file mode 100644
index 0000000..c1c0ecc
--- /dev/null
+++ b/cs-CZ/meta.yml
@@ -0,0 +1,30 @@
+---
+title: CATS!
+hero_image: images/banner.png
+description: Create a game in which you guide cats to safety and stop them from falling into holes
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introduction
+ -
+ title: Draw lines
+ -
+ title: Clone cats
+ completion:
+ - engaged
+ -
+ title: Make the cats move
+ -
+ title: Stick to the lines
+ -
+ title: Get to safety
+ completion:
+ - internal
+ -
+ title: 'Challenge: more obstacles'
+ challenge: true
+ -
+ title: What next?
diff --git a/cs-CZ/resources/cats-resources.sb3 b/cs-CZ/resources/cats-resources.sb3
new file mode 100644
index 0000000..d952bff
Binary files /dev/null and b/cs-CZ/resources/cats-resources.sb3 differ
diff --git a/cs-CZ/solutions/cats-solution.sb3 b/cs-CZ/solutions/cats-solution.sb3
new file mode 100644
index 0000000..a2dc7c8
Binary files /dev/null and b/cs-CZ/solutions/cats-solution.sb3 differ
diff --git a/cs-CZ/step_1.md b/cs-CZ/step_1.md
new file mode 100644
index 0000000..838986d
--- /dev/null
+++ b/cs-CZ/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+This is the **Scratch 3** version of the project. There is also a [Scratch 2 version of the project](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introduction
+
+In this project, you will create a game in which you need to guide cats to safety and not let any of them fall through the gaps!
+
+### What you will make
+
+\--- no-print \---
+
+Click and drag with the mouse to draw a line with the pencil. Your goal is to stop the cats from falling into holes by creating a safe path to the exit.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: What you will learn
+
++ How to use a `forever`{:class="block3control"} loop to constantly generate moving cats
++ How to use a `repeat until`{:class="block3control"} loop to ensure your cats follow a line
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: What you will need
+
+### Hardware
+
++ A computer capable of running Scratch 3
+
+### Software
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Downloads
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Additional notes for educators
+
+\--- no-print \---
+
+If you need to print this project, please use the [printer-friendly version](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/cs-CZ/step_2.md b/cs-CZ/step_2.md
new file mode 100644
index 0000000..264770c
--- /dev/null
+++ b/cs-CZ/step_2.md
@@ -0,0 +1,140 @@
+## Draw lines
+
+\--- task \---
+
+Open the 'CATS!' Scratch starter project.
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+If you have a Scratch account you can make a copy by clicking **Remix**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Add the Pen extension to your project.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Click on the sprite called 'Pen', and add code to set the pen colour to the same blue as the obstacles on the Stage.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+To select a colour, click on the colour square in the `set pen color`{:class="block3extensions"} block to make your mouse cursor turn into a pipette, and then click on the correct colour on the Stage.
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code to make the sprite follow the mouse pointer. Test your program to check that the code works.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add some code to tell the sprite to draw a line on the Stage if the mouse button is pressed down.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the `mouse is down`{:class="block3sensing"}, put the `pen down`{:class="block3extensions"}, and `else`{:class="block3control"}, lift the `pen up`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Test your code. You should be able to click and drag with the mouse to draw a blue line on the Stage.
+
+
+
+\--- /task \---
+
+You probably see that a blue dot always appears in the top right-hand corner of the Stage (it's circled in the image above). This is because, when you click the green flag to start the game, you press the mouse down, and so the pen immediately starts drawing.
+
+\--- task \---
+
+To stop this from happening, add a `pen up`{:class="block3extensions"} block at the start of the script, and a `wait one second`{:class="block3control"} block above the `forever`{:class="block3control"} block.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/cs-CZ/step_3.md b/cs-CZ/step_3.md
new file mode 100644
index 0000000..d5f8d46
--- /dev/null
+++ b/cs-CZ/step_3.md
@@ -0,0 +1,73 @@
+## Clone cats
+
+You want a never-ending stream of cats that the player has to guide along the path to the exit.
+
+\--- task \---
+
+Click on the sprite called 'Cat', and add some code to `hide`{:class="block3looks"} the sprite, and also to `clone`{:class="block3control"} it every three seconds.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+If you run the program now, nothing happens on the Stage. To check that a new Cat sprite clone is created every three seconds, make each clone appear and fall out of the sky.
+
+\--- task \---
+
+Add code to tell the sprite that `when it starts as a clone`{:class="block3control"}, it should `show`{:class="block3looks"} itself and fall until it `touches`{:class="block3sensing"} the blue floor that is drawn on the Stage.
+
+
+
+\--- hints \--- \--- hint \---
+
+`When the sprite starts as a clone`{:class="block3control"}, `show`{:class="block3looks"} the sprite. `Repeatedly`{:class="block3control"} `Change`{:class="block3motion"} the sprite's `y` coordinate by `-2`, until the sprite `touches`{:class="block3sensing"} the blue Stage.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+When you click the green flag, you should see a new cat fall from the top of the Stage every three seconds. Every cat should land in a big pile of overlapping cats on the blue floor at the bottom.
+
+
\ No newline at end of file
diff --git a/cs-CZ/step_4.md b/cs-CZ/step_4.md
new file mode 100644
index 0000000..8c10235
--- /dev/null
+++ b/cs-CZ/step_4.md
@@ -0,0 +1,115 @@
+## Make the cats move
+
+Once a cat reaches the floor, it should step slowly to the right.
+
+\--- task \---
+
+Add code to the `when I start as a clone`{:class="block3control"} section to make the cat sprite `move ten steps`{:class="block3motion"}, and switch between the sprite's two costumes every 0.1 seconds to make the cat look like it's walking.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat sprite should `move 10 steps`{:class="block3motion"}, and `switch costume`{:class="block3looks"} every `0.1 seconds`{:class="block3control"}. This code should repeat `forever`{:class="block3control"}, just like the code to make the cat fall.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats now move along the blue platform at the bottom.
+
+\--- /task \---
+
+If you draw a bridge across the gap so that the cats can get all the way to the right side of the Stage, you can see that they end up getting stuck walking into the right wall.
+
+
+
+\--- task \---
+
+Remove the `forever`{:class="block3control"} loop, and instead add a different loop to make the cats only walk until they reach an edge. When a cat reaches the edge of the Stage, it should disappear.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats disappear when they reach the edge of the Stage.
+
+\--- /task \---
+
+You may notice that, if the cats fall into the hole, they don't disappear but instead get stuck at the bottom. This is because they keep trying to fall downwards.
+
+This is the part of the code that tells the cat to keep falling until it touches blue:
+
+```blocks3
+repeat until
+end
+```
+
+However, in the hole, the cat can never reach blue, so it is stuck forever.
+
+\--- task \---
+
+Add more blocks to this loop so that it repeats until the cat sprite is touching blue `or`{:class="block3operators"} `touching the edge`{:class="block3sensing"}. This way, the sprite stops trying to fall if it reaches the edge of the Stage.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/cs-CZ/step_5.md b/cs-CZ/step_5.md
new file mode 100644
index 0000000..ff776e8
--- /dev/null
+++ b/cs-CZ/step_5.md
@@ -0,0 +1,65 @@
+## Stick to the lines
+
+You might notice that, if you draw a low bridge between the two platforms, or a line that slopes upwards, the cats end up walking through the platform rather than on top of it!
+
+
+
+\--- task \---
+
+In the code for the cat sprite, add another loop before the `next costume`{:class="block3looks"} block. This time, the loop should tell the cat to move upwards by `2` until it is not touching blue.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat should `move up 2`{:class="block3motion"} `repeatedly until`{:class="block3control"} it is `not`{:class="block3operators"} `touching blue`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Click the green flag and try drawing a line that slopes upwards. Check that your cat follows this line.
+
+\--- /task \---
\ No newline at end of file
diff --git a/cs-CZ/step_6.md b/cs-CZ/step_6.md
new file mode 100644
index 0000000..deb146e
--- /dev/null
+++ b/cs-CZ/step_6.md
@@ -0,0 +1,89 @@
+## Get to safety
+
+The object of the game is to guide the cats to safety by creating a path so they can reach the door. Create a score variable to keep track of how many cats reach the door.
+
+\--- task \---
+
+Create a variable called `score`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add code to your cat sprite to add `1` to the `score`{:class="block3variables"} each time a cat reaches the door. Also set `score`{:class="block3variables"} to `0` `when the flag is clicked`{:class="block3events"} at the start of the game.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the cat is `touching the door sprite`{:class="block3sensing"}, then `add 1 to the score`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the new code blocks you need to add to your `when I start as a clone` script:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code so that, when a cat sprite reaches the door, the cat makes a 'meow' sound and then disappears.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/cs-CZ/step_7.md b/cs-CZ/step_7.md
new file mode 100644
index 0000000..6e609ac
--- /dev/null
+++ b/cs-CZ/step_7.md
@@ -0,0 +1,13 @@
+## Challenge: more obstacles
+
+At the moment, the game is rather easy to win. Can you think of ideas to you make your game harder?
+
++ Add more backgrounds with different platform designs.
+
++ Move the location of the door depending on which background is displayed.
+
++ Add more sprites as moving obstacles. Perhaps you could have roaming dogs or rotating spikes the cats need to avoid?
+
++ Only allow the player to use a limited amount of "ink" to draw lines in the game. You can keep track of how much "ink" is used by creating a timer variable that records how long the mouse is held down.
+
++ Create a sprite to show the player how much ink is left.
\ No newline at end of file
diff --git a/cs-CZ/step_8.md b/cs-CZ/step_8.md
new file mode 100644
index 0000000..2295a72
--- /dev/null
+++ b/cs-CZ/step_8.md
@@ -0,0 +1,19 @@
+## What next?
+
+Try the [Flower generator](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects) project, where you will use custom blocks to create flower patterns.
+
+\--- no-print \---
+
+Press `f` to draw a few flowers, or `r` to draw lots of random flowers, or `p` to draw a flower pattern.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/cy-GB/images/banner.png b/cy-GB/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/cy-GB/images/banner.png differ
diff --git a/cy-GB/images/cat-sprite.png b/cy-GB/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/cy-GB/images/cat-sprite.png differ
diff --git a/cy-GB/images/cat-walk-through-platform.png b/cy-GB/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/cy-GB/images/cat-walk-through-platform.png differ
diff --git a/cy-GB/images/cats-finished.png b/cy-GB/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/cy-GB/images/cats-finished.png differ
diff --git a/cy-GB/images/door-sprite.png b/cy-GB/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/cy-GB/images/door-sprite.png differ
diff --git a/cy-GB/images/draw-a-line.png b/cy-GB/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/cy-GB/images/draw-a-line.png differ
diff --git a/cy-GB/images/falling-cats.png b/cy-GB/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/cy-GB/images/falling-cats.png differ
diff --git a/cy-GB/images/flailing-at-edge.png b/cy-GB/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/cy-GB/images/flailing-at-edge.png differ
diff --git a/cy-GB/images/flower-random.png b/cy-GB/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/cy-GB/images/flower-random.png differ
diff --git a/cy-GB/images/pen-sprite.png b/cy-GB/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/cy-GB/images/pen-sprite.png differ
diff --git a/cy-GB/meta.yml b/cy-GB/meta.yml
new file mode 100644
index 0000000..c1c0ecc
--- /dev/null
+++ b/cy-GB/meta.yml
@@ -0,0 +1,30 @@
+---
+title: CATS!
+hero_image: images/banner.png
+description: Create a game in which you guide cats to safety and stop them from falling into holes
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introduction
+ -
+ title: Draw lines
+ -
+ title: Clone cats
+ completion:
+ - engaged
+ -
+ title: Make the cats move
+ -
+ title: Stick to the lines
+ -
+ title: Get to safety
+ completion:
+ - internal
+ -
+ title: 'Challenge: more obstacles'
+ challenge: true
+ -
+ title: What next?
diff --git a/cy-GB/resources/cats-resources.sb3 b/cy-GB/resources/cats-resources.sb3
new file mode 100644
index 0000000..d952bff
Binary files /dev/null and b/cy-GB/resources/cats-resources.sb3 differ
diff --git a/cy-GB/solutions/cats-solution.sb3 b/cy-GB/solutions/cats-solution.sb3
new file mode 100644
index 0000000..a2dc7c8
Binary files /dev/null and b/cy-GB/solutions/cats-solution.sb3 differ
diff --git a/cy-GB/step_1.md b/cy-GB/step_1.md
new file mode 100644
index 0000000..838986d
--- /dev/null
+++ b/cy-GB/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+This is the **Scratch 3** version of the project. There is also a [Scratch 2 version of the project](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introduction
+
+In this project, you will create a game in which you need to guide cats to safety and not let any of them fall through the gaps!
+
+### What you will make
+
+\--- no-print \---
+
+Click and drag with the mouse to draw a line with the pencil. Your goal is to stop the cats from falling into holes by creating a safe path to the exit.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: What you will learn
+
++ How to use a `forever`{:class="block3control"} loop to constantly generate moving cats
++ How to use a `repeat until`{:class="block3control"} loop to ensure your cats follow a line
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: What you will need
+
+### Hardware
+
++ A computer capable of running Scratch 3
+
+### Software
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Downloads
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Additional notes for educators
+
+\--- no-print \---
+
+If you need to print this project, please use the [printer-friendly version](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/cy-GB/step_2.md b/cy-GB/step_2.md
new file mode 100644
index 0000000..264770c
--- /dev/null
+++ b/cy-GB/step_2.md
@@ -0,0 +1,140 @@
+## Draw lines
+
+\--- task \---
+
+Open the 'CATS!' Scratch starter project.
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+If you have a Scratch account you can make a copy by clicking **Remix**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Add the Pen extension to your project.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Click on the sprite called 'Pen', and add code to set the pen colour to the same blue as the obstacles on the Stage.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+To select a colour, click on the colour square in the `set pen color`{:class="block3extensions"} block to make your mouse cursor turn into a pipette, and then click on the correct colour on the Stage.
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code to make the sprite follow the mouse pointer. Test your program to check that the code works.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add some code to tell the sprite to draw a line on the Stage if the mouse button is pressed down.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the `mouse is down`{:class="block3sensing"}, put the `pen down`{:class="block3extensions"}, and `else`{:class="block3control"}, lift the `pen up`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Test your code. You should be able to click and drag with the mouse to draw a blue line on the Stage.
+
+
+
+\--- /task \---
+
+You probably see that a blue dot always appears in the top right-hand corner of the Stage (it's circled in the image above). This is because, when you click the green flag to start the game, you press the mouse down, and so the pen immediately starts drawing.
+
+\--- task \---
+
+To stop this from happening, add a `pen up`{:class="block3extensions"} block at the start of the script, and a `wait one second`{:class="block3control"} block above the `forever`{:class="block3control"} block.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/cy-GB/step_3.md b/cy-GB/step_3.md
new file mode 100644
index 0000000..d5f8d46
--- /dev/null
+++ b/cy-GB/step_3.md
@@ -0,0 +1,73 @@
+## Clone cats
+
+You want a never-ending stream of cats that the player has to guide along the path to the exit.
+
+\--- task \---
+
+Click on the sprite called 'Cat', and add some code to `hide`{:class="block3looks"} the sprite, and also to `clone`{:class="block3control"} it every three seconds.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+If you run the program now, nothing happens on the Stage. To check that a new Cat sprite clone is created every three seconds, make each clone appear and fall out of the sky.
+
+\--- task \---
+
+Add code to tell the sprite that `when it starts as a clone`{:class="block3control"}, it should `show`{:class="block3looks"} itself and fall until it `touches`{:class="block3sensing"} the blue floor that is drawn on the Stage.
+
+
+
+\--- hints \--- \--- hint \---
+
+`When the sprite starts as a clone`{:class="block3control"}, `show`{:class="block3looks"} the sprite. `Repeatedly`{:class="block3control"} `Change`{:class="block3motion"} the sprite's `y` coordinate by `-2`, until the sprite `touches`{:class="block3sensing"} the blue Stage.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+When you click the green flag, you should see a new cat fall from the top of the Stage every three seconds. Every cat should land in a big pile of overlapping cats on the blue floor at the bottom.
+
+
\ No newline at end of file
diff --git a/cy-GB/step_4.md b/cy-GB/step_4.md
new file mode 100644
index 0000000..8c10235
--- /dev/null
+++ b/cy-GB/step_4.md
@@ -0,0 +1,115 @@
+## Make the cats move
+
+Once a cat reaches the floor, it should step slowly to the right.
+
+\--- task \---
+
+Add code to the `when I start as a clone`{:class="block3control"} section to make the cat sprite `move ten steps`{:class="block3motion"}, and switch between the sprite's two costumes every 0.1 seconds to make the cat look like it's walking.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat sprite should `move 10 steps`{:class="block3motion"}, and `switch costume`{:class="block3looks"} every `0.1 seconds`{:class="block3control"}. This code should repeat `forever`{:class="block3control"}, just like the code to make the cat fall.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats now move along the blue platform at the bottom.
+
+\--- /task \---
+
+If you draw a bridge across the gap so that the cats can get all the way to the right side of the Stage, you can see that they end up getting stuck walking into the right wall.
+
+
+
+\--- task \---
+
+Remove the `forever`{:class="block3control"} loop, and instead add a different loop to make the cats only walk until they reach an edge. When a cat reaches the edge of the Stage, it should disappear.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats disappear when they reach the edge of the Stage.
+
+\--- /task \---
+
+You may notice that, if the cats fall into the hole, they don't disappear but instead get stuck at the bottom. This is because they keep trying to fall downwards.
+
+This is the part of the code that tells the cat to keep falling until it touches blue:
+
+```blocks3
+repeat until
+end
+```
+
+However, in the hole, the cat can never reach blue, so it is stuck forever.
+
+\--- task \---
+
+Add more blocks to this loop so that it repeats until the cat sprite is touching blue `or`{:class="block3operators"} `touching the edge`{:class="block3sensing"}. This way, the sprite stops trying to fall if it reaches the edge of the Stage.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/cy-GB/step_5.md b/cy-GB/step_5.md
new file mode 100644
index 0000000..ff776e8
--- /dev/null
+++ b/cy-GB/step_5.md
@@ -0,0 +1,65 @@
+## Stick to the lines
+
+You might notice that, if you draw a low bridge between the two platforms, or a line that slopes upwards, the cats end up walking through the platform rather than on top of it!
+
+
+
+\--- task \---
+
+In the code for the cat sprite, add another loop before the `next costume`{:class="block3looks"} block. This time, the loop should tell the cat to move upwards by `2` until it is not touching blue.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat should `move up 2`{:class="block3motion"} `repeatedly until`{:class="block3control"} it is `not`{:class="block3operators"} `touching blue`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Click the green flag and try drawing a line that slopes upwards. Check that your cat follows this line.
+
+\--- /task \---
\ No newline at end of file
diff --git a/cy-GB/step_6.md b/cy-GB/step_6.md
new file mode 100644
index 0000000..deb146e
--- /dev/null
+++ b/cy-GB/step_6.md
@@ -0,0 +1,89 @@
+## Get to safety
+
+The object of the game is to guide the cats to safety by creating a path so they can reach the door. Create a score variable to keep track of how many cats reach the door.
+
+\--- task \---
+
+Create a variable called `score`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add code to your cat sprite to add `1` to the `score`{:class="block3variables"} each time a cat reaches the door. Also set `score`{:class="block3variables"} to `0` `when the flag is clicked`{:class="block3events"} at the start of the game.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the cat is `touching the door sprite`{:class="block3sensing"}, then `add 1 to the score`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the new code blocks you need to add to your `when I start as a clone` script:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code so that, when a cat sprite reaches the door, the cat makes a 'meow' sound and then disappears.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/cy-GB/step_7.md b/cy-GB/step_7.md
new file mode 100644
index 0000000..6e609ac
--- /dev/null
+++ b/cy-GB/step_7.md
@@ -0,0 +1,13 @@
+## Challenge: more obstacles
+
+At the moment, the game is rather easy to win. Can you think of ideas to you make your game harder?
+
++ Add more backgrounds with different platform designs.
+
++ Move the location of the door depending on which background is displayed.
+
++ Add more sprites as moving obstacles. Perhaps you could have roaming dogs or rotating spikes the cats need to avoid?
+
++ Only allow the player to use a limited amount of "ink" to draw lines in the game. You can keep track of how much "ink" is used by creating a timer variable that records how long the mouse is held down.
+
++ Create a sprite to show the player how much ink is left.
\ No newline at end of file
diff --git a/cy-GB/step_8.md b/cy-GB/step_8.md
new file mode 100644
index 0000000..2295a72
--- /dev/null
+++ b/cy-GB/step_8.md
@@ -0,0 +1,19 @@
+## What next?
+
+Try the [Flower generator](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects) project, where you will use custom blocks to create flower patterns.
+
+\--- no-print \---
+
+Press `f` to draw a few flowers, or `r` to draw lots of random flowers, or `p` to draw a flower pattern.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/da-DK/images/banner.png b/da-DK/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/da-DK/images/banner.png differ
diff --git a/da-DK/images/cat-sprite.png b/da-DK/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/da-DK/images/cat-sprite.png differ
diff --git a/da-DK/images/cat-walk-through-platform.png b/da-DK/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/da-DK/images/cat-walk-through-platform.png differ
diff --git a/da-DK/images/cats-finished.png b/da-DK/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/da-DK/images/cats-finished.png differ
diff --git a/da-DK/images/door-sprite.png b/da-DK/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/da-DK/images/door-sprite.png differ
diff --git a/da-DK/images/draw-a-line.png b/da-DK/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/da-DK/images/draw-a-line.png differ
diff --git a/da-DK/images/falling-cats.png b/da-DK/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/da-DK/images/falling-cats.png differ
diff --git a/da-DK/images/flailing-at-edge.png b/da-DK/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/da-DK/images/flailing-at-edge.png differ
diff --git a/da-DK/images/flower-random.png b/da-DK/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/da-DK/images/flower-random.png differ
diff --git a/da-DK/images/pen-sprite.png b/da-DK/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/da-DK/images/pen-sprite.png differ
diff --git a/da-DK/meta.yml b/da-DK/meta.yml
new file mode 100644
index 0000000..c1c0ecc
--- /dev/null
+++ b/da-DK/meta.yml
@@ -0,0 +1,30 @@
+---
+title: CATS!
+hero_image: images/banner.png
+description: Create a game in which you guide cats to safety and stop them from falling into holes
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introduction
+ -
+ title: Draw lines
+ -
+ title: Clone cats
+ completion:
+ - engaged
+ -
+ title: Make the cats move
+ -
+ title: Stick to the lines
+ -
+ title: Get to safety
+ completion:
+ - internal
+ -
+ title: 'Challenge: more obstacles'
+ challenge: true
+ -
+ title: What next?
diff --git a/da-DK/resources/cats-resources.sb3 b/da-DK/resources/cats-resources.sb3
new file mode 100644
index 0000000..d952bff
Binary files /dev/null and b/da-DK/resources/cats-resources.sb3 differ
diff --git a/da-DK/solutions/cats-solution.sb3 b/da-DK/solutions/cats-solution.sb3
new file mode 100644
index 0000000..a2dc7c8
Binary files /dev/null and b/da-DK/solutions/cats-solution.sb3 differ
diff --git a/da-DK/step_1.md b/da-DK/step_1.md
new file mode 100644
index 0000000..838986d
--- /dev/null
+++ b/da-DK/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+This is the **Scratch 3** version of the project. There is also a [Scratch 2 version of the project](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introduction
+
+In this project, you will create a game in which you need to guide cats to safety and not let any of them fall through the gaps!
+
+### What you will make
+
+\--- no-print \---
+
+Click and drag with the mouse to draw a line with the pencil. Your goal is to stop the cats from falling into holes by creating a safe path to the exit.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: What you will learn
+
++ How to use a `forever`{:class="block3control"} loop to constantly generate moving cats
++ How to use a `repeat until`{:class="block3control"} loop to ensure your cats follow a line
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: What you will need
+
+### Hardware
+
++ A computer capable of running Scratch 3
+
+### Software
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Downloads
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Additional notes for educators
+
+\--- no-print \---
+
+If you need to print this project, please use the [printer-friendly version](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/da-DK/step_2.md b/da-DK/step_2.md
new file mode 100644
index 0000000..264770c
--- /dev/null
+++ b/da-DK/step_2.md
@@ -0,0 +1,140 @@
+## Draw lines
+
+\--- task \---
+
+Open the 'CATS!' Scratch starter project.
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+If you have a Scratch account you can make a copy by clicking **Remix**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Add the Pen extension to your project.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Click on the sprite called 'Pen', and add code to set the pen colour to the same blue as the obstacles on the Stage.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+To select a colour, click on the colour square in the `set pen color`{:class="block3extensions"} block to make your mouse cursor turn into a pipette, and then click on the correct colour on the Stage.
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code to make the sprite follow the mouse pointer. Test your program to check that the code works.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add some code to tell the sprite to draw a line on the Stage if the mouse button is pressed down.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the `mouse is down`{:class="block3sensing"}, put the `pen down`{:class="block3extensions"}, and `else`{:class="block3control"}, lift the `pen up`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Test your code. You should be able to click and drag with the mouse to draw a blue line on the Stage.
+
+
+
+\--- /task \---
+
+You probably see that a blue dot always appears in the top right-hand corner of the Stage (it's circled in the image above). This is because, when you click the green flag to start the game, you press the mouse down, and so the pen immediately starts drawing.
+
+\--- task \---
+
+To stop this from happening, add a `pen up`{:class="block3extensions"} block at the start of the script, and a `wait one second`{:class="block3control"} block above the `forever`{:class="block3control"} block.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/da-DK/step_3.md b/da-DK/step_3.md
new file mode 100644
index 0000000..d5f8d46
--- /dev/null
+++ b/da-DK/step_3.md
@@ -0,0 +1,73 @@
+## Clone cats
+
+You want a never-ending stream of cats that the player has to guide along the path to the exit.
+
+\--- task \---
+
+Click on the sprite called 'Cat', and add some code to `hide`{:class="block3looks"} the sprite, and also to `clone`{:class="block3control"} it every three seconds.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+If you run the program now, nothing happens on the Stage. To check that a new Cat sprite clone is created every three seconds, make each clone appear and fall out of the sky.
+
+\--- task \---
+
+Add code to tell the sprite that `when it starts as a clone`{:class="block3control"}, it should `show`{:class="block3looks"} itself and fall until it `touches`{:class="block3sensing"} the blue floor that is drawn on the Stage.
+
+
+
+\--- hints \--- \--- hint \---
+
+`When the sprite starts as a clone`{:class="block3control"}, `show`{:class="block3looks"} the sprite. `Repeatedly`{:class="block3control"} `Change`{:class="block3motion"} the sprite's `y` coordinate by `-2`, until the sprite `touches`{:class="block3sensing"} the blue Stage.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+When you click the green flag, you should see a new cat fall from the top of the Stage every three seconds. Every cat should land in a big pile of overlapping cats on the blue floor at the bottom.
+
+
\ No newline at end of file
diff --git a/da-DK/step_4.md b/da-DK/step_4.md
new file mode 100644
index 0000000..8c10235
--- /dev/null
+++ b/da-DK/step_4.md
@@ -0,0 +1,115 @@
+## Make the cats move
+
+Once a cat reaches the floor, it should step slowly to the right.
+
+\--- task \---
+
+Add code to the `when I start as a clone`{:class="block3control"} section to make the cat sprite `move ten steps`{:class="block3motion"}, and switch between the sprite's two costumes every 0.1 seconds to make the cat look like it's walking.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat sprite should `move 10 steps`{:class="block3motion"}, and `switch costume`{:class="block3looks"} every `0.1 seconds`{:class="block3control"}. This code should repeat `forever`{:class="block3control"}, just like the code to make the cat fall.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats now move along the blue platform at the bottom.
+
+\--- /task \---
+
+If you draw a bridge across the gap so that the cats can get all the way to the right side of the Stage, you can see that they end up getting stuck walking into the right wall.
+
+
+
+\--- task \---
+
+Remove the `forever`{:class="block3control"} loop, and instead add a different loop to make the cats only walk until they reach an edge. When a cat reaches the edge of the Stage, it should disappear.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats disappear when they reach the edge of the Stage.
+
+\--- /task \---
+
+You may notice that, if the cats fall into the hole, they don't disappear but instead get stuck at the bottom. This is because they keep trying to fall downwards.
+
+This is the part of the code that tells the cat to keep falling until it touches blue:
+
+```blocks3
+repeat until
+end
+```
+
+However, in the hole, the cat can never reach blue, so it is stuck forever.
+
+\--- task \---
+
+Add more blocks to this loop so that it repeats until the cat sprite is touching blue `or`{:class="block3operators"} `touching the edge`{:class="block3sensing"}. This way, the sprite stops trying to fall if it reaches the edge of the Stage.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/da-DK/step_5.md b/da-DK/step_5.md
new file mode 100644
index 0000000..ff776e8
--- /dev/null
+++ b/da-DK/step_5.md
@@ -0,0 +1,65 @@
+## Stick to the lines
+
+You might notice that, if you draw a low bridge between the two platforms, or a line that slopes upwards, the cats end up walking through the platform rather than on top of it!
+
+
+
+\--- task \---
+
+In the code for the cat sprite, add another loop before the `next costume`{:class="block3looks"} block. This time, the loop should tell the cat to move upwards by `2` until it is not touching blue.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat should `move up 2`{:class="block3motion"} `repeatedly until`{:class="block3control"} it is `not`{:class="block3operators"} `touching blue`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Click the green flag and try drawing a line that slopes upwards. Check that your cat follows this line.
+
+\--- /task \---
\ No newline at end of file
diff --git a/da-DK/step_6.md b/da-DK/step_6.md
new file mode 100644
index 0000000..deb146e
--- /dev/null
+++ b/da-DK/step_6.md
@@ -0,0 +1,89 @@
+## Get to safety
+
+The object of the game is to guide the cats to safety by creating a path so they can reach the door. Create a score variable to keep track of how many cats reach the door.
+
+\--- task \---
+
+Create a variable called `score`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add code to your cat sprite to add `1` to the `score`{:class="block3variables"} each time a cat reaches the door. Also set `score`{:class="block3variables"} to `0` `when the flag is clicked`{:class="block3events"} at the start of the game.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the cat is `touching the door sprite`{:class="block3sensing"}, then `add 1 to the score`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the new code blocks you need to add to your `when I start as a clone` script:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code so that, when a cat sprite reaches the door, the cat makes a 'meow' sound and then disappears.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/da-DK/step_7.md b/da-DK/step_7.md
new file mode 100644
index 0000000..6e609ac
--- /dev/null
+++ b/da-DK/step_7.md
@@ -0,0 +1,13 @@
+## Challenge: more obstacles
+
+At the moment, the game is rather easy to win. Can you think of ideas to you make your game harder?
+
++ Add more backgrounds with different platform designs.
+
++ Move the location of the door depending on which background is displayed.
+
++ Add more sprites as moving obstacles. Perhaps you could have roaming dogs or rotating spikes the cats need to avoid?
+
++ Only allow the player to use a limited amount of "ink" to draw lines in the game. You can keep track of how much "ink" is used by creating a timer variable that records how long the mouse is held down.
+
++ Create a sprite to show the player how much ink is left.
\ No newline at end of file
diff --git a/da-DK/step_8.md b/da-DK/step_8.md
new file mode 100644
index 0000000..2295a72
--- /dev/null
+++ b/da-DK/step_8.md
@@ -0,0 +1,19 @@
+## What next?
+
+Try the [Flower generator](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects) project, where you will use custom blocks to create flower patterns.
+
+\--- no-print \---
+
+Press `f` to draw a few flowers, or `r` to draw lots of random flowers, or `p` to draw a flower pattern.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/de-DE/images/banner.png b/de-DE/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/de-DE/images/banner.png differ
diff --git a/de-DE/images/cat-sprite.png b/de-DE/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/de-DE/images/cat-sprite.png differ
diff --git a/de-DE/images/cat-walk-through-platform.png b/de-DE/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/de-DE/images/cat-walk-through-platform.png differ
diff --git a/de-DE/images/cats-finished.png b/de-DE/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/de-DE/images/cats-finished.png differ
diff --git a/de-DE/images/door-sprite.png b/de-DE/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/de-DE/images/door-sprite.png differ
diff --git a/de-DE/images/draw-a-line.png b/de-DE/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/de-DE/images/draw-a-line.png differ
diff --git a/de-DE/images/falling-cats.png b/de-DE/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/de-DE/images/falling-cats.png differ
diff --git a/de-DE/images/flailing-at-edge.png b/de-DE/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/de-DE/images/flailing-at-edge.png differ
diff --git a/de-DE/images/flower-random.png b/de-DE/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/de-DE/images/flower-random.png differ
diff --git a/de-DE/images/pen-sprite.png b/de-DE/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/de-DE/images/pen-sprite.png differ
diff --git a/de-DE/meta.yml b/de-DE/meta.yml
new file mode 100644
index 0000000..0a62e30
--- /dev/null
+++ b/de-DE/meta.yml
@@ -0,0 +1,30 @@
+---
+title: KATZEN!
+hero_image: images/banner.png
+description: Erstelle ein Spiel, in dem du Katzen in Sicherheit bringst und verhinderst, dass sie in Löcher fallen
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Einleitung
+ -
+ title: Linien zeichnen
+ -
+ title: Katzen klonen
+ completion:
+ - engaged
+ -
+ title: Lass die Katzen sich bewegen
+ -
+ title: Auf der Linie bleiben
+ -
+ title: In Sicherheit bringen
+ completion:
+ - internal
+ -
+ title: 'Herausforderung: Mehr Hindernisse'
+ challenge: true
+ -
+ title: Wie geht es weiter?
diff --git a/de-DE/resources/cats-resources.sb3 b/de-DE/resources/cats-resources.sb3
new file mode 100644
index 0000000..fc2ab65
Binary files /dev/null and b/de-DE/resources/cats-resources.sb3 differ
diff --git a/de-DE/solutions/cats-solution.sb3 b/de-DE/solutions/cats-solution.sb3
new file mode 100644
index 0000000..dca0f4a
Binary files /dev/null and b/de-DE/solutions/cats-solution.sb3 differ
diff --git a/de-DE/step_1.md b/de-DE/step_1.md
new file mode 100644
index 0000000..303d64a
--- /dev/null
+++ b/de-DE/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+Dies ist die **Scratch 3** Version des Projekts. Es gibt auch eine [Scratch 2 Version des Projekts](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Einleitung
+
+In diesem Projekt erstellst du ein Spiel, in dem du Katzen in Sicherheit bringen und keine von ihnen durch die Lücken fallen lassen darfst!
+
+### Was du machen wirst
+
+\--- no-print \---
+
+Klicke und ziehe mit der Maus, um mit dem Stift eine Linie zu zeichnen. Dein Ziel ist es, die Katzen davon abzuhalten, in Löcher zu fallen, indem du einen sicheren Weg zum Ausgang erschaffst.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: Was du lernen wirst
+
++ Wie man eine `wiederhole fortlaufend`{:class="block3control"} Schleife verwendet, um ständig bewegte Katzen zu generieren
++ Wie man eine `wiederhole bis`{:class="block3control"} Schleife verwendet, um sicherzustellen, dass deine Katzen einer Linie folgen
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Was du brauchen wirst
+
+### Hardware
+
++ Ein Computer, auf dem Scratch 3 ausgeführt werden kann
+
+### Software
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Downloads
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Zusätzliche Hinweise für Pädagogen
+
+\--- no-print \---
+
+Falls du dieses Projekt ausdrucken musst, verwende bitte die [druckfreundliche Version](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/de-DE/step_2.md b/de-DE/step_2.md
new file mode 100644
index 0000000..271f2d7
--- /dev/null
+++ b/de-DE/step_2.md
@@ -0,0 +1,140 @@
+## Linien zeichnen
+
+\--- task \---
+
+Öffne das "KATZEN!" Scratch Starter Projekt.
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+Wenn du bereits einen Scratch-Account besitzt, kannst du dir durch klicken auf **Remix** eine Kopie anlegen.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Füge die Malstift Erweiterung zu deinem Projekt hinzu.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Klicke auf die Figur mit dem Namen "Stift" und füge einen Code hinzu, um die Stiftfarbe auf das gleiche Blau wie die Hindernisse auf der Bühne einzustellen.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+Um eine Farbe auszuwählen, klicke auf das Farbquadrat im Block `setze Stiftfarbe auf`{:class="block3extensions"}, damit sich dein Mauszeiger in eine Pipette verwandelt, und klicke dann auf der Bühne auf die richtige Farbe.
+
+\--- /task \---
+
+\--- task \---
+
+Füge weiteren Code hinzu, damit die Figur dem Mauszeiger folgt. Teste dein Programm, um zu überprüfen, ob der Code funktioniert.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Füge einen Code hinzu, um die Figur anzuweisen, eine Linie auf der Bühne zu zeichnen, wenn die Maustaste gedrückt wird.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Falls`{:class="block3control"} die `Maustaste gedrückt`{:class="block3sensing"} ist, `schalte Stift ein`{:class="block3extensions"} und `sonst`{:class="block3control"}, `schalte Stift aus`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Hier sind die Codeblöcke, die du brauchst:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+So sollte dein Code aussehen:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Teste deinen Code. Du solltest in der Lage sein, mit der Maus zu klicken und zu ziehen, um eine blaue Linie auf der Bühne zu zeichnen.
+
+
+
+\--- /task \---
+
+Du siehst wahrscheinlich, dass immer ein blauer Punkt in der oberen rechten Ecke der Bühne erscheint (er ist im Bild oben eingekreist). Das liegt daran, dass du beim Klicken auf die grüne Flagge, um das Spiel zu starten, die Maustaste drückst und der Stift sofort mit dem Zeichnen beginnt.
+
+\--- task \---
+
+Um dies zu verhindern, füge am Anfang des Skripts einen `schalte Stift aus`{:class="block3extensions"}-Block und einen `warte 1 Sekunde`{:class="block3control"}-Block über den `wiederhole fortlaufend`{:class="block3control"} block hinzu.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/de-DE/step_3.md b/de-DE/step_3.md
new file mode 100644
index 0000000..d94144d
--- /dev/null
+++ b/de-DE/step_3.md
@@ -0,0 +1,73 @@
+## Katzen klonen
+
+Du möchtest einen endlosen Strom von Katzen, die der Spieler auf den Weg zum Ausgang führen muss.
+
+\--- task \---
+
+Klicke auf die Figur namens 'Katze' und füge einen Code hinzu, um sie zu `verstecken`{:class="block3looks"} und um sie alle drei Sekunden zu `klonen`{:class="block3control"}.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+Wenn du das Programm jetzt ausführst, passiert auf der Bühne nichts. Um zu überprüfen, ob alle drei Sekunden ein neuer Katzen-Figur-Klon erstellt wird, lasse jeden Klon erscheinen und vom Himmel fallen.
+
+\--- task \---
+
+Füge einen Code hinzu, um der Figur mitzuteilen, dass sie `wenn sie als Klon entsteht`{:class="block3control"}, sich selbst `zeigen`{:class="block3looks"} und fallen soll, bis sie den blauen Boden `berührt`{:class="block3sensing"}, der auf der Bühne gezeichnet wird.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Wenn die Figur als Klon entsteht`{:class="block3control"}, `zeige`{:"block3looks"} die Figur. `Ändere`{:class="block3motion"} die `y`-Koordinate der Figur `wiederholt`{:class="block3control"} um `-2`, bis die Figur die blaue Bühne `berührt`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Hier sind die Codeblöcke die du brauchst:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+So sollte dein Code aussehen:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+Wenn du auf die grüne Flagge klickst, sollte alle drei Sekunden eine neue Katze vom oberen Rand der Bühne fallen. Jede Katze sollte in einem großen Haufen überlappender Katzen auf dem blauen Boden unten landen.
+
+
\ No newline at end of file
diff --git a/de-DE/step_4.md b/de-DE/step_4.md
new file mode 100644
index 0000000..973ec72
--- /dev/null
+++ b/de-DE/step_4.md
@@ -0,0 +1,115 @@
+## Lass die Katzen sich bewegen
+
+Sobald eine Katze den Boden erreicht, sollte sie langsam nach rechts gehen.
+
+\--- task \---
+
+Füge dem `wenn ich als Klon entstehe`{:class="block3control"}-Teil einen Code hinzu, damit die Katzenfigur `zehn Schritte geht`{:class="block3motion"} und alle 0,1 Sekunden zwischen den beiden Kostümen der Figur wechselt damit die Katze so aussieht, als würde sie laufen.
+
+
+
+\--- hints \--- \--- hint \---
+
+Die Katzenfigur sollte `10 Schritte gehen`{:class="block3motion"} und alle `0,1 Sekunden`{:class="block3control"} `das Kostüm wechseln`{:class="block3looks"}. Dieser Code sollte `fortlaufend wiederholt`{:class="block3control"} werden, genau wie der Code, der die Katze fallen lässt.
+
+\--- /hint \---
+
+\--- hint \---
+
+Hier sind die Codeblöcke die du brauchst:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+So sollte dein Code aussehen:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Drücke die grüne Flagge und überprüfe, ob sich die Katzen jetzt entlang der blauen Plattform am unteren Rand bewegen.
+
+\--- /task \---
+
+Wenn du eine Brücke über die Lücke zeichnest, damit die Katzen bis zur rechten Seite der Bühne gelangen können, wirst du sehen, dass sie beim Laufen in die rechte Wand stecken bleiben.
+
+
+
+\--- task \---
+
+Entferne die `fortlaufend`{:class="block3control"}- Schleife und füge stattdessen eine andere Schleife ein, damit die Katzen nur so lange laufen, bis sie eine Kante erreichen. Wenn eine Katze den Bühnenrand erreicht, sollte sie verschwinden.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Drücke die grüne Flagge und überprüfe, ob die Katzen verschwinden, wenn sie den Bühnenrand erreichen.
+
+\--- /task \---
+
+Du hast vielleicht bemerkt, dass die Katzen, wenn sie in das Loch fallen, nicht verschwinden, sondern am Boden stecken bleiben. Dies liegt daran, dass sie immer wieder versuchen, nach unten zu fallen.
+
+Das ist der Teil des Codes, der der Katze sagt, dass sie weiter fallen soll, bis sie blau berührt:
+
+```blocks3
+repeat until
+end
+```
+
+In dem Loch kann die Katze jedoch niemals blau erreichen, so sitzt sie für immer fest.
+
+\--- task \---
+
+Füge dieser Schleife weitere Blöcke hinzu, sodass sie wiederholt wird, bis die Katzenfigur etwas blaues berührt `oder`{:class="block3operators"} sie den `Rand berührt`{:class="block3sensing"}. Auf diese Weise versucht die Figur nicht mehr zu fallen, wenn sie den Rand der Bühne erreicht.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/de-DE/step_5.md b/de-DE/step_5.md
new file mode 100644
index 0000000..3271495
--- /dev/null
+++ b/de-DE/step_5.md
@@ -0,0 +1,65 @@
+## Auf der Linie bleiben
+
+Du wirst vielleicht bemerken, dass wenn du eine niedrige Brücke zwischen den beiden Plattformen zeichnest oder eine Linie, die nach oben läuft, die Katzen eher durch die Plattform laufen als auf ihr!
+
+
+
+\--- task \---
+
+Füge im Code für die Katzenfigur eine weitere Schleife vor dem `nächsten Kostüm`{:class="block3looks"}-Block hinzu. Dieses Mal sollte die Schleife die Katze anweisen, sich um `2` nach oben zu bewegen, bis sie kein blau mehr berührt.
+
+
+
+\--- hints \--- \--- hint \---
+
+Die Katze sollte sich `wiederholt`{:class="block3control"} `um 2 Schritte nach oben`{:class="block3motion"} bewegen `bis`{:class="block3control"} sie `nicht`{:class="block3operators"} `Blau berührt`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Hier sind die Codeblöcke die du brauchst:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+So sollte dein Code aussehen:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Klicke auf die grüne Fahne und versuche eine Linie zu zeichnen, die nach oben ansteigt. Überprüfe, ob deine Katze dieser Linie folgt.
+
+\--- /task \---
\ No newline at end of file
diff --git a/de-DE/step_6.md b/de-DE/step_6.md
new file mode 100644
index 0000000..e579ecd
--- /dev/null
+++ b/de-DE/step_6.md
@@ -0,0 +1,89 @@
+## In Sicherheit bringen
+
+Ziel des Spiels ist es, die Katzen in Sicherheit zu bringen, indem ein Pfad erstellt wird, über den sie die Tür erreichen können. Erstelle eine Punktevariable, um den Überblick zu behalten, wie viele Katzen die Tür erreichen.
+
+\--- task \---
+
+Erstelle eine neue Variable namens `Punktzahl`{:class='block3variable'}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Füge deiner Katzen-Figur einen Code hinzu, um jedesmal `1` zur `Punktzahl`{:class="block3variables"} hinzuzufügen, wenn eine Katze die Tür erreicht. Setze außerdem die `Punktzahl`{:class="block3variables"} beim Start des Spiels auf `0` `wenn die grüne Flagge angeklickt wird`{:class="block3events"}.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Falls`{:class="block3control"} die Katze `die Tür berührt`{:class="block3sensing"}, dann `füge 1 zur Punktzahl hinzu`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Hier sind die neuen Code-Blöcke, die du zu deinem `wenn ich als Klon entstehe`-Skript, hinzu fügen musst:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+So sollte dein Code aussehen:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Füge noch etwas mehr Code hinzu, sodass eine Katze ein "Miau" Klang spielt und verschwindet, wenn sie die Tür erreicht.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/de-DE/step_7.md b/de-DE/step_7.md
new file mode 100644
index 0000000..4e0bf8f
--- /dev/null
+++ b/de-DE/step_7.md
@@ -0,0 +1,13 @@
+## Herausforderung: Mehr Hindernisse
+
+Im Moment ist das Spiel ziemlich einfach zu gewinnen. Kannst du dir Ideen vorstellen, die dein Spiel schwieriger machen?
+
++ Füge weitere Hintergründe mit unterschiedlichen Plattformdesigns hinzu.
+
++ Verschiebe die Position der Tür, je nachdem welcher Hintergrund angezeigt wird.
+
++ Füge mehr Figuren als bewegliche Hindernisse hinzu. Vielleicht kanns du streunende Hunde oder drehende Dornen hinzufügen, die die Katzen umgehen müssen?
+
++ Erlaube dem Spieler nur eine begrenzte Menge "Tinte" zu verwenden, um Linien im Spiel zu zeichnen. Du kannst den Überblick behalten, wie viel "Tinte" verwendet wird, indem du eine Timer-Variable erstellest, die aufzeichnet wie lange die Maus gedrückt wird.
+
++ Erstelle eine Figur, um dem Spieler zu zeigen, wie viel Tinte noch übrig ist.
\ No newline at end of file
diff --git a/de-DE/step_8.md b/de-DE/step_8.md
new file mode 100644
index 0000000..6a2b20e
--- /dev/null
+++ b/de-DE/step_8.md
@@ -0,0 +1,19 @@
+## Was kommt als nächstes?
+
+Probiere das [Blumengenerator](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects)-Projekt aus, wo du benutzerdefinierte Blöcke verwenden wirst, um Blumenmuster zu erstellen.
+
+\--- no-print \---
+
+Drücke `f`, um ein paar Blumen zu zeichnen oder `r`, um viele zufällige Blumen zu zeichnen oder `p`, um ein Blumenmuster zu zeichnen.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/el-GR/images/banner.png b/el-GR/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/el-GR/images/banner.png differ
diff --git a/el-GR/images/cat-sprite.png b/el-GR/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/el-GR/images/cat-sprite.png differ
diff --git a/el-GR/images/cat-walk-through-platform.png b/el-GR/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/el-GR/images/cat-walk-through-platform.png differ
diff --git a/el-GR/images/cats-finished.png b/el-GR/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/el-GR/images/cats-finished.png differ
diff --git a/el-GR/images/door-sprite.png b/el-GR/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/el-GR/images/door-sprite.png differ
diff --git a/el-GR/images/draw-a-line.png b/el-GR/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/el-GR/images/draw-a-line.png differ
diff --git a/el-GR/images/falling-cats.png b/el-GR/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/el-GR/images/falling-cats.png differ
diff --git a/el-GR/images/flailing-at-edge.png b/el-GR/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/el-GR/images/flailing-at-edge.png differ
diff --git a/el-GR/images/flower-random.png b/el-GR/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/el-GR/images/flower-random.png differ
diff --git a/el-GR/images/pen-sprite.png b/el-GR/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/el-GR/images/pen-sprite.png differ
diff --git a/el-GR/meta.yml b/el-GR/meta.yml
new file mode 100644
index 0000000..c3f0bf2
--- /dev/null
+++ b/el-GR/meta.yml
@@ -0,0 +1,30 @@
+---
+title: ΓΑΤΕΣ!
+hero_image: images/banner.png
+description: Δημιούργησε ένα παιχνίδι στο οποίο καθοδηγείς τις γάτες στην ασφάλεια και μην τις αφήνεις να πέσουν σε τρύπες
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Εισαγωγή
+ -
+ title: Ζωγράφισε γραμμές
+ -
+ title: Κλωνοποίησε τις γάτες
+ completion:
+ - engaged
+ -
+ title: Κάνε τις γάτες να κινηθούν
+ -
+ title: Ακολούθησε τις γραμμές
+ -
+ title: Οδήγησέ τες στην ασφάλεια
+ completion:
+ - internal
+ -
+ title: 'Πρόκληση: περισσότερα εμπόδια'
+ challenge: true
+ -
+ title: Τι υπάρχει στη συνέχεια;
diff --git a/el-GR/resources/cats-resources.sb3 b/el-GR/resources/cats-resources.sb3
new file mode 100644
index 0000000..9c63f32
Binary files /dev/null and b/el-GR/resources/cats-resources.sb3 differ
diff --git a/el-GR/solutions/cats-solution.sb3 b/el-GR/solutions/cats-solution.sb3
new file mode 100644
index 0000000..4308021
Binary files /dev/null and b/el-GR/solutions/cats-solution.sb3 differ
diff --git a/el-GR/step_1.md b/el-GR/step_1.md
new file mode 100644
index 0000000..6f499d6
--- /dev/null
+++ b/el-GR/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+Αυτή είναι η έκδοση **Scratch 3** του έργου. Υπάρχει επίσης η [έκδοση Scratch 2 του έργου](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Εισαγωγή
+
+Σε αυτό το έργο, θα δημιουργήσεις ένα παιχνίδι στο οποίο θα πρέπει να καθοδηγείς τις γάτες στην ασφάλεια και να μην αφήσεις καμία από αυτές να πέσει στις τρύπες!
+
+### Τι θα φτιάξεις
+
+\--- no-print \---
+
+Κάνε κλικ και σύρε με το ποντίκι για να σχεδιάσεις μια γραμμή με το μολύβι. Ο στόχος σου είναι να μην αφήνεις τις γάτες να πέφτουν σε τρύπες δημιουργώντας μια ασφαλή διαδρομή προς την έξοδο.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: Τι θα μάθεις
+
++ Πώς να χρησιμοποιήσεις ένα βρόχο `για πάντα`{:class="block3control"} για να δημιουργείς συνεχώς κινούμενες γάτες
++ Πώς να χρησιμοποιήσεις ένα βρόχο `επανέλαβε έως`{:class="block3control"} για να διασφαλίσεις ότι οι γάτες σου ακολουθούν μια γραμμή
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Τι θα χρειαστείς
+
+### Υλικό (Hardware)
+
++ Ένας υπολογιστής ικανός να τρέχει το Scratch 3
+
+### Λογισμικό
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Λήψεις
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Πρόσθετες σημειώσεις για εκπαιδευτικούς
+
+\--- no-print \---
+
+Αν χρειαστεί να εκτυπώσεις αυτό το έργο, παρακαλούμε να χρησιμοποιήσεις την [εκτυπώσιμη](https://projects.raspberrypi.org/en/projects/cats/print) έκδοση. \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/el-GR/step_2.md b/el-GR/step_2.md
new file mode 100644
index 0000000..68f2558
--- /dev/null
+++ b/el-GR/step_2.md
@@ -0,0 +1,140 @@
+## Ζωγράφισε γραμμές
+
+\--- task \---
+
+Άνοιξε το έργο Scratch "ΓΑΤΕΣ!".
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+Αν έχεις λογαριασμό Scratch μπορείς να δημιουργήσεις ένα αντίγραφο κάνοντας κλικ στο **Ανάμειξη**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Πρόσθεσε την επέκταση πένας στο έργο σου.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Κάνε κλικ στο αντικείμενο που ονομάζεται 'Pen' και πρόσθεσε τον κώδικα για να ρυθμίσεις το χρώμα του στυλό στο ίδιο μπλε με τα εμπόδια στη σκηνή.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+Για να επιλέξεις ένα χρώμα, κάνε κλικ στο τετράγωνο χρώματος στο μπλοκ `επέλεξε χρώμα στυλό`{:class="block3extensions"} για να κάνεις τον δείκτη του ποντικιού σου να μοιάζει με σταγονόμετρο, και στη συνέχεια κάνε κλικ στο σωστό χρώμα στη σκηνή.
+
+\--- /task \---
+
+\--- task \---
+
+Πρόσθεσε κάποιο άλλο κωδικό για να κάνεις το αντικείμενο να ακολουθεί τον δείκτη του ποντικιού. Δοκίμασε το πρόγραμμά σου για να ελέγξεις ότι ο κώδικας λειτουργεί.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Πρόσθεσε κώδικα για να πεις στο αντικείμενο να σχεδιάσει μια γραμμή στη σκηνή αν πατηθεί το κουμπί του ποντικιού.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Αν`{:class="block3control"} το `ποντίκι είναι κάτω`{:class="block3sensing"}, τοποθέτησε το `στυλό κάτω`{:class="block3extensions"}, και `αλλιώς`{:class="block3control"}, σήκωσε το `στυλό πάνω`{:class=" block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Εδώ είναι τα μπλοκ κώδικα που χρειάζεσαι:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Έτσι πρέπει να μοιάζει ο κώδικας:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Δοκίμασε τον κώδικά σου. Θα πρέπει να μπορείτε να κάνεις κλικ και να σύρεις με το ποντίκι για να σχεδιάσεις μια μπλε γραμμή στη σκηνή.
+
+
+
+\--- /task \---
+
+Πιθανότατα να δεις ότι μια μπλε κουκκίδα εμφανίζεται πάντα στην πάνω δεξιά γωνία της σκηνής (είναι κυκλωμένη στην εικόνα παραπάνω). Αυτό συμβαίνει επειδή, όταν κάνεις κλικ στην πράσινη σημαία για να ξεκινήσεις το παιχνίδι, πατάς το ποντίκι κάτω και έτσι το στυλό αρχίζει αμέσως να σχεδιάζει.
+
+\--- task \---
+
+Για να μην αφήσεις να συμβεί αυτό, πρόσθεσε ένα μπλοκ `πένα πάνω`{:class="block3extensions"} κατά την έναρξη του σεναρίου, και ένα μπλοκ `περίμενε ένα δευτερόλεπτο`{:class="block3control"} πάνω από το μπλοκ `για πάντα`{:class="block3control"}.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/el-GR/step_3.md b/el-GR/step_3.md
new file mode 100644
index 0000000..77cb58f
--- /dev/null
+++ b/el-GR/step_3.md
@@ -0,0 +1,73 @@
+## Κλωνοποίησε τις γάτες
+
+Θέλεις μία ασταμάτητη ροή από γάτες που ο παίκτης πρέπει να καθοδηγήσει κατά μήκος του μονοπατιού προς την έξοδο.
+
+\--- task \---
+
+Κάνε κλικ στο αντικείμενο που ονομάζεται 'γάτα', και πρόσθεσε λίγο κώδικα για `απόκρυψη`{:class="block3looks"} του αντικειμένου, αλλά και για `κλωνοποίηση`{:class="block3control"} κάθε τρία δευτερόλεπτα.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+Αν εκτελέσεις το πρόγραμμα τώρα, τίποτα δεν συμβαίνει στη σκηνή. Για να ελέγξεις ότι ένας νέος κλώνος αντικειμένου γάτας δημιουργείται κάθε τρία δευτερόλεπτα, κάνε κάθε κλώνο να εμφανίζεται και να πέφτει από τον ουρανό.
+
+\--- task \---
+
+Πρόσθεσε κώδικα για να πεις στο αντικείμενο ότι `όταν αρχίζει ως ένας κλώνος`{:class="block3control"}, θα πρέπει να `εμφανιστεί`{:class="block3looks"} και να πέσει μέχρι να `αγγίξει`{:class="block3sensing"} το μπλε πάτωμα που είναι σχεδιασμένο στη σκηνή.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Όταν το αντικείμενο ξεκινάει ως κλώνος`{:class="block3control"}, `εμφάνισε`{:class="block3looks"} το αντικείμενο. `Επανειλημμένα`{:class="block3control"} `Άλλαξε`{:class="block3motion"} την`y` συντεταγμένη του αντικειμένου κατά `-2`, μέχρι το αντικείμενο να `αγγίξει`{:class="block3sensing"} το μπλε δάπεδο.
+
+\--- /hint \---
+
+\--- hint \---
+
+Εδώ είναι τα μπλοκ κώδικα που χρειάζεσαι:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Έτσι πρέπει να μοιάζει ο κώδικας:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+Όταν κάνεις κλικ στην πράσινη σημαία, θα πρέπει να δεις μια νέα γάτα να πέφτει από την κορυφή της σκηνής κάθε τρία δευτερόλεπτα. Κάθε γάτα θα προσγειωθεί σε ένα μεγάλο σωρό από γάτες στο μπλε δάπεδο στο κάτω μέρος.
+
+
\ No newline at end of file
diff --git a/el-GR/step_4.md b/el-GR/step_4.md
new file mode 100644
index 0000000..08901a9
--- /dev/null
+++ b/el-GR/step_4.md
@@ -0,0 +1,115 @@
+## Κάνε τις γάτες να κινηθούν
+
+Μόλις μια γάτα φτάσει στο πάτωμα, θα πρέπει να περπατήσει αργά προς τα δεξιά.
+
+\--- task \---
+
+Πρόσθεσε τον κώδικα στο τμήμα `κατά την εκκίνηση ως κλώνος`{:class="block3control"} για να κάνεις το αντικείμενο της γάτας `να κινηθεί δέκα βήματα`{:class="block3motion"} και να εναλλάσσεις ανάμεσα στις δύο ενδυμασίες του αντικειμένου κάθε 0,1 δευτερόλεπτα ώστε να κάνει τη γάτα να μοιάζει σαν να περπατάει.
+
+
+
+\--- hints \--- \--- hint \---
+
+Το αντικείμενο της γάτας θα πρέπει να `κινείται 10 βήματα`{:class="block3motion"}, και να `αλλάζει ενδυμασία`{:class="block3looks"} κάθε `0,1 δευτερόλεπτα`{:class="block3control"}. Αυτός ο κώδικας θα πρέπει να επαναλαμβάνεται `για πάντα`{:class="block3control"}, ακριβώς όπως και ο κώδικας που κάνει τη γάτα να πέφτει.
+
+\--- /hint \---
+
+\--- hint \---
+
+Εδώ είναι τα μπλοκ κώδικα που χρειάζεσαι:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Έτσι πρέπει να μοιάζει ο κώδικας:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Πάτησε την πράσινη σημαία και έλεγξε ότι οι γάτες κινούνται τώρα κατά μήκος της μπλε πλατφόρμας στο κάτω μέρος.
+
+\--- /task \---
+
+Εάν σχεδιάσεις μια γέφυρα στο κενό, έτσι ώστε οι γάτες να μπορούν να φτάσουν μέχρι τη δεξιά πλευρά της σκηνής, μπορείς να δεις ότι καταλήγουν να κολλήσουν ενώ περπατάνε προς τον δεξί τοίχο.
+
+
+
+\--- task \---
+
+Αφαίρεσε το βρόχο `για πάντα`{:class="block3control"} και πρόσθεσε ένα διαφορετικό βρόχο για να κάνεις τις γάτες να περπατούν μόνο μέχρι να φτάσουν σε μια άκρη. Όταν μια γάτα φτάσει στην άκρη της σκηνής, θα εξαφανιστεί.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Πάτησε την πράσινη σημαία και έλεγξε ότι οι γάτες εξαφανίζονται όταν φτάσουν στην άκρη της σκηνής.
+
+\--- /task \---
+
+Μπορεί να παρατηρήσεις ότι, αν οι γάτες πέσουν στην τρύπα, δεν εξαφανίζονται αλλά αντίθετα μαζεύονται στο κάτω μέρος. Αυτό συμβαίνει επειδή συνεχίζουν να προσπαθούν να πέσουν προς τα κάτω.
+
+Αυτό είναι το μέρος του κώδικα που λέει στη γάτα να συνεχίζει να πέφτει μέχρι να αγγίξει μπλε:
+
+```blocks3
+repeat until
+end
+```
+
+Ωστόσο, στην τρύπα, η γάτα δεν μπορεί ποτέ να φτάσει σε μπλε χρώμα, οπότε κολλάει για πάντα.
+
+\--- task \---
+
+Πρόσθεσε περισσότερα μπλοκ σε αυτόν τον βρόχο, έτσι ώστε να επαναλαμβάνεται έως ότου αγγίξει το μπλε χρώμα `ή`{:class="block3operators"} `να αγγίξει την άκρη`{:class="block3sensing"}. Με αυτόν τον τρόπο, το αντικείμενο σταματά να προσπαθεί να πέσει αν φτάσει στην άκρη της σκηνής.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/el-GR/step_5.md b/el-GR/step_5.md
new file mode 100644
index 0000000..615444c
--- /dev/null
+++ b/el-GR/step_5.md
@@ -0,0 +1,65 @@
+## Ακολούθησε τις γραμμές
+
+Ίσως παρατηρήσεις ότι, αν σχεδιάσεις μια χαμηλή γέφυρα ανάμεσα στις δύο πλατφόρμες ή μια γραμμή που κλίνει προς τα πάνω, οι γάτες καταλήγουν να βαδίζουν στην πλατφόρμα και όχι πάνω από αυτές!
+
+
+
+\--- task \---
+
+Στον κώδικα για το αντικείμενο γάτας, πρόσθεσε άλλον ένα βρόχο πριν από το μπλοκ `επόμενη ενδυμασία`{:class="block3looks"}. Αυτή τη φορά, ο βρόχος θα πει στη γάτα να κινηθεί προς τα πάνω κατά `2` έως ότου δεν αγγίζει το μπλε.
+
+
+
+\--- hints \--- \--- hint \---
+
+Η γάτα θα πρέπει να `κινηθεί προς τα πάνω κατά 2`{:class="block3motion"} `επανειλημμένα μέχρι`{:class="block3control"} να `μην`{:class="block3operators"} `αγγίζει μπλε`{:class="block3sensing "}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Εδώ είναι τα μπλοκ κώδικα που χρειάζεσαι:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Έτσι πρέπει να μοιάζει ο κώδικας:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Κάνε κλικ στην πράσινη σημαία και δοκίμασε να σχεδιάσεις μια γραμμή που να κλίνει προς τα πάνω. Έλεγξε ότι η γάτα σου ακολουθεί αυτή τη γραμμή.
+
+\--- /task \---
\ No newline at end of file
diff --git a/el-GR/step_6.md b/el-GR/step_6.md
new file mode 100644
index 0000000..8bc1fda
--- /dev/null
+++ b/el-GR/step_6.md
@@ -0,0 +1,89 @@
+## Οδήγησέ τους στην ασφάλεια
+
+Το αντικείμενο του παιχνιδιού είναι να καθοδηγήσεις τις γάτες στην ασφάλεια δημιουργώντας ένα μονοπάτι ώστε να φτάσουν στην πόρτα. Δημιούργησε μια μεταβλητή βαθμολογίας για να παρακολουθείς πόσες γάτες φτάνουν στην πόρτα.
+
+\--- task \---
+
+Δημιούργησε μια μεταβλητή με το όνομα `βαθμολογία`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Πρόσθεσε κώδικα στο αντικείμενο της γάτας σου για να προσθέσεις `1` στη `βαθμολογία`{:class="block3variables"} κάθε φορά που μια γάτα φτάνει στην πόρτα. Επίσης, όρισε τη `βαθμολογία`{:class="block3variables"} στην τιμή `0` `όταν πατηθεί η σημαία`{:class="block3events"} στην αρχή του παιχνιδιού.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Αν`{:class="block3control"} η γάτα `αγγίξει το αντικείμενο της πόρτας`{:class="block3sensing"}, τότε `πρόσθεσε 1 στη βαθμολογία`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Εδώ είναι τα νέα μπλοκ κώδικα που πρέπει να προσθέσεις στο μέρος του προγράμματος `όταν ξεκινώ ως κλώνος`:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Έτσι πρέπει να μοιάζει ο κώδικας:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Πρόσθεσε κι άλλο κώδικα έτσι ώστε, όταν ένα αντικείμενο γάτας φτάσει στην πόρτα, η γάτα κάνει έναν ήχο «νιάου» και στη συνέχεια εξαφανίζεται.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/el-GR/step_7.md b/el-GR/step_7.md
new file mode 100644
index 0000000..1464914
--- /dev/null
+++ b/el-GR/step_7.md
@@ -0,0 +1,13 @@
+## Challenge: περισσότερα εμπόδια
+
+Προς το παρόν, το παιχνίδι είναι αρκετά εύκολο για να κερδίσει κάποιος. Μπορείς να σκεφτείς ιδέες για να κάνεις το παιχνίδι σου πιο δύσκολο;
+
++ Πρόσθεσε περισσότερα φόντα με διαφορετικά σχέδια πλατφόρμας.
+
++ Μετακίνησε τη θέση της πόρτας ανάλογα με το φόντο που εμφανίζεται.
+
++ Πρόσθεσε περισσότερα αντικείμενα ως κινούμενα εμπόδια. Ίσως θα μπορούσες να έχεις περιπλανώμενους σκύλους ή περιστρεφόμενα καρφιά που οι γάτες πρέπει να αποφύγουν;
+
++ Επέτρεψε στον παίκτη να χρησιμοποιεί μόνο μία περιορισμένη ποσότητα "μελανιού" για να ζωγραφίσει γραμμές στο παιχνίδι. Μπορείς να παρακολουθείς πόσο "μελάνι" χρησιμοποιείται με τη δημιουργία μιας μεταβλητής χρονοδιακόπτη που καταγράφει πόσο καιρό κρατείται το ποντίκι κάτω.
+
++ Δημιούργησε ένα αντικείμενο για να δείχνεις στον παίκτη πόσο μελάνι έχει απομείνει.
\ No newline at end of file
diff --git a/el-GR/step_8.md b/el-GR/step_8.md
new file mode 100644
index 0000000..d3ed5d1
--- /dev/null
+++ b/el-GR/step_8.md
@@ -0,0 +1,19 @@
+## Και τώρα;
+
+Δοκίμασε το έργο [γεννήτρια λουλουδιών](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects), όπου θα χρησιμοποιήσεις προσαρμοσμένα μπλοκ για να δημιουργήσεις μοτίβα λουλουδιών.
+
+\--- no-print \---
+
+Πάτησε `f` για να ζωγραφίσεις μερικά λουλούδια ή `r` για να ζωγραφίσεις πολλά τυχαία λουλούδια ή `p` για να ζωγραφίσεις ένα μοτίβο λουλουδιών.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/en-US/images/banner.png b/en-US/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/en-US/images/banner.png differ
diff --git a/en-US/images/cat-sprite.png b/en-US/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/en-US/images/cat-sprite.png differ
diff --git a/en-US/images/cat-walk-through-platform.png b/en-US/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/en-US/images/cat-walk-through-platform.png differ
diff --git a/en-US/images/cats-finished.png b/en-US/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/en-US/images/cats-finished.png differ
diff --git a/en-US/images/door-sprite.png b/en-US/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/en-US/images/door-sprite.png differ
diff --git a/en-US/images/draw-a-line.png b/en-US/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/en-US/images/draw-a-line.png differ
diff --git a/en-US/images/falling-cats.png b/en-US/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/en-US/images/falling-cats.png differ
diff --git a/en-US/images/flailing-at-edge.png b/en-US/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/en-US/images/flailing-at-edge.png differ
diff --git a/en-US/images/flower-random.png b/en-US/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/en-US/images/flower-random.png differ
diff --git a/en-US/images/pen-sprite.png b/en-US/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/en-US/images/pen-sprite.png differ
diff --git a/en-US/meta.yml b/en-US/meta.yml
new file mode 100644
index 0000000..c1c0ecc
--- /dev/null
+++ b/en-US/meta.yml
@@ -0,0 +1,30 @@
+---
+title: CATS!
+hero_image: images/banner.png
+description: Create a game in which you guide cats to safety and stop them from falling into holes
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introduction
+ -
+ title: Draw lines
+ -
+ title: Clone cats
+ completion:
+ - engaged
+ -
+ title: Make the cats move
+ -
+ title: Stick to the lines
+ -
+ title: Get to safety
+ completion:
+ - internal
+ -
+ title: 'Challenge: more obstacles'
+ challenge: true
+ -
+ title: What next?
diff --git a/en-US/resources/cats-resources.sb3 b/en-US/resources/cats-resources.sb3
new file mode 100644
index 0000000..d952bff
Binary files /dev/null and b/en-US/resources/cats-resources.sb3 differ
diff --git a/en-US/solutions/cats-solution.sb3 b/en-US/solutions/cats-solution.sb3
new file mode 100644
index 0000000..a2dc7c8
Binary files /dev/null and b/en-US/solutions/cats-solution.sb3 differ
diff --git a/en-US/step_1.md b/en-US/step_1.md
new file mode 100644
index 0000000..838986d
--- /dev/null
+++ b/en-US/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+This is the **Scratch 3** version of the project. There is also a [Scratch 2 version of the project](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introduction
+
+In this project, you will create a game in which you need to guide cats to safety and not let any of them fall through the gaps!
+
+### What you will make
+
+\--- no-print \---
+
+Click and drag with the mouse to draw a line with the pencil. Your goal is to stop the cats from falling into holes by creating a safe path to the exit.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: What you will learn
+
++ How to use a `forever`{:class="block3control"} loop to constantly generate moving cats
++ How to use a `repeat until`{:class="block3control"} loop to ensure your cats follow a line
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: What you will need
+
+### Hardware
+
++ A computer capable of running Scratch 3
+
+### Software
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Downloads
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Additional notes for educators
+
+\--- no-print \---
+
+If you need to print this project, please use the [printer-friendly version](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/en-US/step_2.md b/en-US/step_2.md
new file mode 100644
index 0000000..264770c
--- /dev/null
+++ b/en-US/step_2.md
@@ -0,0 +1,140 @@
+## Draw lines
+
+\--- task \---
+
+Open the 'CATS!' Scratch starter project.
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+If you have a Scratch account you can make a copy by clicking **Remix**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Add the Pen extension to your project.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Click on the sprite called 'Pen', and add code to set the pen colour to the same blue as the obstacles on the Stage.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+To select a colour, click on the colour square in the `set pen color`{:class="block3extensions"} block to make your mouse cursor turn into a pipette, and then click on the correct colour on the Stage.
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code to make the sprite follow the mouse pointer. Test your program to check that the code works.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add some code to tell the sprite to draw a line on the Stage if the mouse button is pressed down.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the `mouse is down`{:class="block3sensing"}, put the `pen down`{:class="block3extensions"}, and `else`{:class="block3control"}, lift the `pen up`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Test your code. You should be able to click and drag with the mouse to draw a blue line on the Stage.
+
+
+
+\--- /task \---
+
+You probably see that a blue dot always appears in the top right-hand corner of the Stage (it's circled in the image above). This is because, when you click the green flag to start the game, you press the mouse down, and so the pen immediately starts drawing.
+
+\--- task \---
+
+To stop this from happening, add a `pen up`{:class="block3extensions"} block at the start of the script, and a `wait one second`{:class="block3control"} block above the `forever`{:class="block3control"} block.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/en-US/step_3.md b/en-US/step_3.md
new file mode 100644
index 0000000..d5f8d46
--- /dev/null
+++ b/en-US/step_3.md
@@ -0,0 +1,73 @@
+## Clone cats
+
+You want a never-ending stream of cats that the player has to guide along the path to the exit.
+
+\--- task \---
+
+Click on the sprite called 'Cat', and add some code to `hide`{:class="block3looks"} the sprite, and also to `clone`{:class="block3control"} it every three seconds.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+If you run the program now, nothing happens on the Stage. To check that a new Cat sprite clone is created every three seconds, make each clone appear and fall out of the sky.
+
+\--- task \---
+
+Add code to tell the sprite that `when it starts as a clone`{:class="block3control"}, it should `show`{:class="block3looks"} itself and fall until it `touches`{:class="block3sensing"} the blue floor that is drawn on the Stage.
+
+
+
+\--- hints \--- \--- hint \---
+
+`When the sprite starts as a clone`{:class="block3control"}, `show`{:class="block3looks"} the sprite. `Repeatedly`{:class="block3control"} `Change`{:class="block3motion"} the sprite's `y` coordinate by `-2`, until the sprite `touches`{:class="block3sensing"} the blue Stage.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+When you click the green flag, you should see a new cat fall from the top of the Stage every three seconds. Every cat should land in a big pile of overlapping cats on the blue floor at the bottom.
+
+
\ No newline at end of file
diff --git a/en-US/step_4.md b/en-US/step_4.md
new file mode 100644
index 0000000..8c10235
--- /dev/null
+++ b/en-US/step_4.md
@@ -0,0 +1,115 @@
+## Make the cats move
+
+Once a cat reaches the floor, it should step slowly to the right.
+
+\--- task \---
+
+Add code to the `when I start as a clone`{:class="block3control"} section to make the cat sprite `move ten steps`{:class="block3motion"}, and switch between the sprite's two costumes every 0.1 seconds to make the cat look like it's walking.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat sprite should `move 10 steps`{:class="block3motion"}, and `switch costume`{:class="block3looks"} every `0.1 seconds`{:class="block3control"}. This code should repeat `forever`{:class="block3control"}, just like the code to make the cat fall.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats now move along the blue platform at the bottom.
+
+\--- /task \---
+
+If you draw a bridge across the gap so that the cats can get all the way to the right side of the Stage, you can see that they end up getting stuck walking into the right wall.
+
+
+
+\--- task \---
+
+Remove the `forever`{:class="block3control"} loop, and instead add a different loop to make the cats only walk until they reach an edge. When a cat reaches the edge of the Stage, it should disappear.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats disappear when they reach the edge of the Stage.
+
+\--- /task \---
+
+You may notice that, if the cats fall into the hole, they don't disappear but instead get stuck at the bottom. This is because they keep trying to fall downwards.
+
+This is the part of the code that tells the cat to keep falling until it touches blue:
+
+```blocks3
+repeat until
+end
+```
+
+However, in the hole, the cat can never reach blue, so it is stuck forever.
+
+\--- task \---
+
+Add more blocks to this loop so that it repeats until the cat sprite is touching blue `or`{:class="block3operators"} `touching the edge`{:class="block3sensing"}. This way, the sprite stops trying to fall if it reaches the edge of the Stage.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/en-US/step_5.md b/en-US/step_5.md
new file mode 100644
index 0000000..ff776e8
--- /dev/null
+++ b/en-US/step_5.md
@@ -0,0 +1,65 @@
+## Stick to the lines
+
+You might notice that, if you draw a low bridge between the two platforms, or a line that slopes upwards, the cats end up walking through the platform rather than on top of it!
+
+
+
+\--- task \---
+
+In the code for the cat sprite, add another loop before the `next costume`{:class="block3looks"} block. This time, the loop should tell the cat to move upwards by `2` until it is not touching blue.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat should `move up 2`{:class="block3motion"} `repeatedly until`{:class="block3control"} it is `not`{:class="block3operators"} `touching blue`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Click the green flag and try drawing a line that slopes upwards. Check that your cat follows this line.
+
+\--- /task \---
\ No newline at end of file
diff --git a/en-US/step_6.md b/en-US/step_6.md
new file mode 100644
index 0000000..deb146e
--- /dev/null
+++ b/en-US/step_6.md
@@ -0,0 +1,89 @@
+## Get to safety
+
+The object of the game is to guide the cats to safety by creating a path so they can reach the door. Create a score variable to keep track of how many cats reach the door.
+
+\--- task \---
+
+Create a variable called `score`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add code to your cat sprite to add `1` to the `score`{:class="block3variables"} each time a cat reaches the door. Also set `score`{:class="block3variables"} to `0` `when the flag is clicked`{:class="block3events"} at the start of the game.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the cat is `touching the door sprite`{:class="block3sensing"}, then `add 1 to the score`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the new code blocks you need to add to your `when I start as a clone` script:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code so that, when a cat sprite reaches the door, the cat makes a 'meow' sound and then disappears.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/en-US/step_7.md b/en-US/step_7.md
new file mode 100644
index 0000000..6e609ac
--- /dev/null
+++ b/en-US/step_7.md
@@ -0,0 +1,13 @@
+## Challenge: more obstacles
+
+At the moment, the game is rather easy to win. Can you think of ideas to you make your game harder?
+
++ Add more backgrounds with different platform designs.
+
++ Move the location of the door depending on which background is displayed.
+
++ Add more sprites as moving obstacles. Perhaps you could have roaming dogs or rotating spikes the cats need to avoid?
+
++ Only allow the player to use a limited amount of "ink" to draw lines in the game. You can keep track of how much "ink" is used by creating a timer variable that records how long the mouse is held down.
+
++ Create a sprite to show the player how much ink is left.
\ No newline at end of file
diff --git a/en-US/step_8.md b/en-US/step_8.md
new file mode 100644
index 0000000..2295a72
--- /dev/null
+++ b/en-US/step_8.md
@@ -0,0 +1,19 @@
+## What next?
+
+Try the [Flower generator](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects) project, where you will use custom blocks to create flower patterns.
+
+\--- no-print \---
+
+Press `f` to draw a few flowers, or `r` to draw lots of random flowers, or `p` to draw a flower pattern.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/es-ES/images/banner.png b/es-ES/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/es-ES/images/banner.png differ
diff --git a/es-ES/images/cat-sprite.png b/es-ES/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/es-ES/images/cat-sprite.png differ
diff --git a/es-ES/images/cat-walk-through-platform.png b/es-ES/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/es-ES/images/cat-walk-through-platform.png differ
diff --git a/es-ES/images/cats-finished.png b/es-ES/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/es-ES/images/cats-finished.png differ
diff --git a/es-ES/images/door-sprite.png b/es-ES/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/es-ES/images/door-sprite.png differ
diff --git a/es-ES/images/draw-a-line.png b/es-ES/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/es-ES/images/draw-a-line.png differ
diff --git a/es-ES/images/falling-cats.png b/es-ES/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/es-ES/images/falling-cats.png differ
diff --git a/es-ES/images/flailing-at-edge.png b/es-ES/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/es-ES/images/flailing-at-edge.png differ
diff --git a/es-ES/images/flower-random.png b/es-ES/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/es-ES/images/flower-random.png differ
diff --git a/es-ES/images/pen-sprite.png b/es-ES/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/es-ES/images/pen-sprite.png differ
diff --git a/es-ES/meta.yml b/es-ES/meta.yml
new file mode 100644
index 0000000..6d4e78f
--- /dev/null
+++ b/es-ES/meta.yml
@@ -0,0 +1,30 @@
+---
+title: '¡GATOS!'
+hero_image: images/banner.png
+description: Crea un juego en el que guíes a los gatos a un lugar seguro y evites que caigan en los agujeros
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introducción
+ -
+ title: Dibuja líneas
+ -
+ title: Clona gatos
+ completion:
+ - engaged
+ -
+ title: Haz que los gatos se muevan
+ -
+ title: Pegarse a las líneas
+ -
+ title: Llegar a un lugar seguro
+ completion:
+ - internal
+ -
+ title: 'Desafío: Más obstáculos'
+ challenge: true
+ -
+ title: '¿Qué hacer a continuación?'
diff --git a/es-ES/resources/cats-resources.sb3 b/es-ES/resources/cats-resources.sb3
new file mode 100644
index 0000000..3eb2c59
Binary files /dev/null and b/es-ES/resources/cats-resources.sb3 differ
diff --git a/es-ES/solutions/cats-solution.sb3 b/es-ES/solutions/cats-solution.sb3
new file mode 100644
index 0000000..cbbf61b
Binary files /dev/null and b/es-ES/solutions/cats-solution.sb3 differ
diff --git a/es-ES/step_1.md b/es-ES/step_1.md
new file mode 100644
index 0000000..1767eac
--- /dev/null
+++ b/es-ES/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+Esta es una versión de **Scratch 3** del proyecto. También hay una [versión del proyecto en Scratch 2](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introducción
+
+En este proyecto, crearás un juego en el que debes guiar a los gatos a un lugar seguro y ¡no dejar que ninguno de ellos caiga al vacío!
+
+### Lo que harás
+
+\--- no-print \---
+
+Haz clic y arrastra el ratón para dibujar una línea con el lápiz. Tu objetivo es evitar que los gatos caigan en los agujeros creando un camino seguro hacia la salida.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: Lo que vas a aprender
+
++ Cómo usar un bucle `por siempre`{: class = "block3control"} para generar constantemente gatos en movimiento
++ Cómo usar un bucle `repetir hasta`{: class = "block3control"} para asegurar que tus gatos sigan una línea
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## título: Lo que vas a necesitar
+
+### Hardware
+
++ Un ordenador capaz de ejecutar Scratch 3
+
+### Software
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Descargas
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## título: Información adicional para educadores
+
+\--- no-print \---
+
+Si necesitas imprimir este proyecto, usa la [versión para imprimir](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/es-ES/step_2.md b/es-ES/step_2.md
new file mode 100644
index 0000000..7fc3288
--- /dev/null
+++ b/es-ES/step_2.md
@@ -0,0 +1,141 @@
+## Dibuja líneas
+
+\--- task \---
+
+Abre el proyecto de inicio de Scratch '¡GATOS!'.
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+Si tienes una cuenta de Scratch puedes hacer una copia haciendo clic en **Reinventar**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Añade la extensión Lápiz a tu proyecto.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Haz clic en el objeto llamado 'Lápiz' y agrega el código para establecer el color del lápiz en el mismo azul que los obstáculos en el Escenario.
+
+
+
+```blocks3
+al presionar la bandera verde
+fijar el color del lápiz a [#0000ff]
+borrar todo
+fijar tamaño del lápiz a (5)
+```
+
+Para seleccionar un color, haz clic en el cuadrado de color en el bloque `fijar color de lápiz a`{: class = "block3extensions"} para hacer que el cursor del ratón se convierta en una pipeta, y luego haz clic en el color correcto en el Escenario.
+
+\--- /task \---
+
+\--- task \---
+
+Agrega un poco más de código para que el objeto siga al puntero del ratón. Prueba tu programa para verificar que el código funcione.
+
+
+
+```blocks3
+por siempre
+ir a (puntero del ratón v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Agrega algo de código para indicarle al objeto que dibuje una línea en el escenario si se presiona el botón del ratón.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Si`{:class="block3control"} el `ratón está pulsado`{:class="block3sensing"}, pon el `lápiz abajo`{:class="block3extensions"}, y `sino`{:class="block3control"}, levanta el `lápiz hacia arriba`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los bloques de código que necesitas:
+
+```blocks3
+
+
+bajar lápiz
+
+subir lápiz
+
+si <> entonces
+si no
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al presionar bandera verde
+fijar color de lápiz a [#0000ff]
+borrar todo
+fijar tamaño de lápiz a (5)
+por siempre
+ir a (puntero del ratón v)
+si entonces
+bajar lápiz
+si no
+subir lápiz
+end
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Prueba tu código. Deberías poder hacer clic y arrastrar con el ratón para dibujar una línea azul en el escenario.
+
+
+
+\--- /task \---
+
+Probablemente veas que siempre aparece un punto azul en la esquina superior derecha del Escenario (está encerrado en un círculo en la imagen de arriba). Esto se debe a que, cuando haces clic en la bandera verde para iniciar el juego, presionas el ratón y el bolígrafo comienza a dibujar inmediatamente.
+
+\--- task \---
+
+Para evitar que esto suceda, agrega un bloque `subir lápiz`{: class = "block3extensions"} al comienzo del script, y un bloque `esperar (1) segundos`{: class = "block3control"} sobre el bloque `por siempre`{ : clase = "block3control"}.
+
+
+
+```blocks3
+al presionar bandera verde
++ subir lápiz
+fijar color de lápiz a [#0000ff]
+borrar todo
+fijar tamaño de lápiz a (5)
++ esperar (1) segundos
+por siempre
+ir a (puntero del ratón v)
+si entonces
+bajar lápiz
+si no
+subir lápiz
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/es-ES/step_3.md b/es-ES/step_3.md
new file mode 100644
index 0000000..c64babd
--- /dev/null
+++ b/es-ES/step_3.md
@@ -0,0 +1,73 @@
+## Clona gatos
+
+Tu quieres un flujo interminable de gatos que el jugador deba guiar a lo largo del camino hacia la salida.
+
+\--- task \---
+
+Haz clic en el objeto llamado 'Gato' y agrega un código para `esconder`{:class="block3looks"} el objeto, y también para `clonar`{:class="block3control"} cada tres segundos.
+
+
+
+```blocks3
+al presionar bandera verde
+esconder
+por siempre
+ crear clon de (mí mismo v)
+ esperar (3) segundos
+end
+```
+
+\--- /task \---
+
+Si ejecutas el programa ahora, no sucede nada en el Escenario. Para verificar que se crea un nuevo clon del objeto Gato cada tres segundos, haz que cada clon aparezca y caiga del cielo.
+
+\--- task \---
+
+Añade código para decirle al objeto que `cuando se inicie como un clon`{:class = "block3control"}, debe `mostrarse`{:class ="block3looks"} a sí mismo y caer hasta que `toque`{:class =" block3sensing "} el suelo azul que está dibujado en el Escenario.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Cuando el objeto Gato comience como un clon`{:class="block3control"}, `muestra`{:class="block3looks"} el objeto. `Repetidamente`{:class="block3control"} `Cambia`{:class="block3motion"} la coordenada `y` del objeto a `-2`, hasta que el objeto `toque`{:class="block3sensing"} el Escenario azul.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los bloques de código que necesitas:
+
+```blocks3
+repetir hasta que <>
+end
+
+mostrar
+
+
+
+cambia y a (-2)
+
+al comenzar como clon
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al comenzar como clon
+mostrar
+repetir hasta que
+sumar a y (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+Cuando hagas clic en la bandera verde, deberías ver un nuevo gato caer desde la parte superior del escenario cada tres segundos. Cada gato debe aterrizar en una gran pila de gatos superpuestos en el suelo azul de la parte inferior.
+
+
\ No newline at end of file
diff --git a/es-ES/step_4.md b/es-ES/step_4.md
new file mode 100644
index 0000000..f469e24
--- /dev/null
+++ b/es-ES/step_4.md
@@ -0,0 +1,115 @@
+## Haz que los gatos se muevan
+
+Una vez que un gato llega al suelo, debe avanzar lentamente hacia la derecha.
+
+\--- task \---
+
+Agrega código a la sección `al comenzar como clon`{:class="block3control"} para hacer que el objeto Gato se `mueva diez pasos`{:class="block3motion"}, y cambie entre los dos disfraces del objeto cada 0.1 segundos para que parezca que el gato que está caminando.
+
+
+
+\--- hints \--- \--- hint \---
+
+El objeto Gato debe `moverse 10 pasos`{:class="block3motion"}, y `cambiar el disfraz `{:class="block3looks"} cada `0.1 segundos`{:class="block3control"}. Este código debe repetirse `por siempre`{:class="block3control"}, al igual que el código que hace que el gato caiga.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los bloques de código que necesitas:
+
+```blocks3
+mover (10) pasos
+
+esperar (0.1) segundos
+
+siguiente disfraz
+
+por siempre
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al comenzar como clon
+mostrar
++ por siempre
+mover (10) pasos
+repetir hasta que
+cambiar y a (-2)
+end
+siguiente disfraz
+esperar (0.1) segundos
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Presiona la bandera verde y verifica que los gatos ahora se muevan a lo largo de la plataforma azul en la parte inferior.
+
+\--- /task \---
+
+Si dibujas un puente a través del hueco para que los gatos puedan llegar hasta el lado derecho del Escenario, puedes ver que terminan clavados caminando a través de la pared derecha.
+
+
+
+\--- task \---
+
+Elimina el bucle `por siempre`{:class="block3control"} y, en su lugar, añade un bucle diferente para que los gatos sólo caminen hasta que lleguen al borde. Cuando un gato llega al borde del Escenario, debe desaparecer.
+
+
+
+```blocks3
+al comenzar como clon
+mostrar
++ repetir hasta que
+mover (10) pasos
+repetir hasta que
+cambiar y a (-2)
+end
+siguiente disfraz
+esperar (0.1) segundos
+end
++ eliminar este clon
+```
+
+\--- /task \---
+
+\--- task \---
+
+Presiona la bandera verde y verifica que los gatos desaparezcan cuando lleguen al borde del escenario.
+
+\--- /task \---
+
+Date cuenta de que, si los gatos caen en el agujero, no desaparecen, sino que se quedan clavados en la parte inferior. Esto se debe a que siguen tratando de caerse.
+
+Esta es la parte del código que le dice al gato que siga cayendo hasta que toque el color azul:
+
+```blocks3
+repetir hasta que
+end
+```
+
+Sin embargo, en el agujero, el gato nunca puede alcanzar el azul, por lo que está atrapado para siempre.
+
+\--- task \---
+
+Agrega más bloques a este bucle para que se repita hasta que el objeto Gato toque el color azul `o`{:class="block3operators"} `toque el borde`{:class="block3sensing"}. De esta manera, el objeto deja de intentar caerse si llega al borde del Escenario.
+
+
+
+```blocks3
+repetir hasta que < o >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/es-ES/step_5.md b/es-ES/step_5.md
new file mode 100644
index 0000000..4c307ab
--- /dev/null
+++ b/es-ES/step_5.md
@@ -0,0 +1,65 @@
+## Pegarse a las líneas
+
+Te habrás dado cuenta que, si dibujas un puente más bajo entre las dos plataformas, o una línea que se inclina hacia arriba, ¡los gatos terminan caminando a través de la plataforma en lugar de por encima!
+
+
+
+\--- task \---
+
+En el código para el objeto "Gato", añade otro bucle antes del bloque `siguiente disfraz`{:class="block3looks"}. Esta vez, el bucle debería indicarle al gato que se mueva hacia arriba por `2` hasta que no esté tocando el color azul.
+
+
+
+\--- hints \--- \--- hint \---
+
+El gato debería `moverse 2 hacia arriba`{:class="block3motion"} `repetir hasta que`{:class="block3control"} `no`{:class="block3operators"} `toque el color azul`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los bloques de código que necesitas:
+
+```blocks3
+
+
+cambiar y a (2)
+
+repetir hasta que <>
+end
+
+no <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al comenzar como clon
+mostrar
+repetir hasta que
+mover (10) pasos
+repetir hasta que
+cambiar y a (-2)
+end
+repetir hasta que >
+cambiar y a (2)
+end
+siguiente disfraz
+esperar (0.1) segundos
+end
+eliminar este clon
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Haz click en la bandera verde e intenta dibujar una línea que se incline hacia arriba. Comprueba que tu gato sigue esta línea.
+
+\--- /task \---
\ No newline at end of file
diff --git a/es-ES/step_6.md b/es-ES/step_6.md
new file mode 100644
index 0000000..6992437
--- /dev/null
+++ b/es-ES/step_6.md
@@ -0,0 +1,88 @@
+## Llegar a un lugar seguro
+
+El objetivo del juego es guiar a los gatos a un lugar seguro creando un camino para que puedan llegar a la puerta. Crea una variable de puntuación para registrar cuántos gatos llegan a la puerta.
+
+\--- task \---
+
+Crea una nueva variable llamada `puntuación`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Añade código a tu objeto Gato para añadir `1` a la `puntuación`{:class="block3variables"} cada vez que un gato llegue a la puerta. También establece `puntuación`{:class="block3variables"} a `0`` cuando se haga click en la bandera`{:class="block3events"} al inicio de la partida.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Si`{:class="block3control"} el gato está `tocando el objeto Puerta`{:class="block3sensing"}, entonces `suma 1 a la puntuación`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los nuevos bloques de código que necesitas agregar a tu programa de `al comenzar como clon`:
+
+```blocks3
+sumar a [puntuación v] (1)
+
+si <> entonces
+end
+
+
+
+dar a [puntuación v] el valor (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al comenzar como clon
+mostrar
+repetir hasta que
+mover (10) pasos
+repetir hasta que
+cambiar y a (-2)
+end
+repetir hasta que >
+cambiar y a (2)
+end
+siguiente disfraz
+esperar (0.1) segundos
++ si entonces
+cambiar [puntuación v] por (1)
+end
+end
+eliminar este clon
+
+al presionar bandera verde
++ dar a [puntuación v] el valor (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Añade un poco más de código para que, cuando el objeto Gato llegue a la puerta, haga un sonido 'meow', es decir, maulle, y luego desaparezca.
+
+
+
+```blocks3
+iniciar sonido (meow v)
+eliminar este clon
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/es-ES/step_7.md b/es-ES/step_7.md
new file mode 100644
index 0000000..79539c9
--- /dev/null
+++ b/es-ES/step_7.md
@@ -0,0 +1,13 @@
+## Desafío: Más obstáculos
+
+De momento, el juego es demasiado fácil de ganar. ¿Puedes pensar en ideas para hacerlo más difícil?
+
++ Agrega más fondos con diferentes diseños de plataformas.
+
++ Mueve la ubicación de la puerta, dependiendo del fondo que se muestre.
+
++ Agrega más objetos tales como obstáculos móviles. ¿Quizás podrías tener perros merodeando o púas giratorias que los gatos deben evitar?
+
++ Sólo permite que el jugador use una cantidad limitada de "tinta" para dibujar líneas en el juego. Puedes hacer un seguimiento de la cantidad de "tinta" utilizada creando una variable temporizador, que registre cuánto tiempo se mantiene presionado el ratón.
+
++ Crea un objeto para mostrarle al jugador cuánta tinta le queda.
\ No newline at end of file
diff --git a/es-ES/step_8.md b/es-ES/step_8.md
new file mode 100644
index 0000000..fde596c
--- /dev/null
+++ b/es-ES/step_8.md
@@ -0,0 +1,19 @@
+## ¿Qué hacer a continuación?
+
+Prueba el proyecto [generador de flores](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects), donde usarás bloques personalizados para crear tus propios patrones de flores.
+
+\--- no-print \---
+
+Presiona `f` para dibujar algunas flores, o `r` para dibujar un montón de flores aleatorias, o `p` para dibujar un patrón de flores.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/es-LA/images/banner.png b/es-LA/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/es-LA/images/banner.png differ
diff --git a/es-LA/images/cat-sprite.png b/es-LA/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/es-LA/images/cat-sprite.png differ
diff --git a/es-LA/images/cat-walk-through-platform.png b/es-LA/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/es-LA/images/cat-walk-through-platform.png differ
diff --git a/es-LA/images/cats-finished.png b/es-LA/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/es-LA/images/cats-finished.png differ
diff --git a/es-LA/images/door-sprite.png b/es-LA/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/es-LA/images/door-sprite.png differ
diff --git a/es-LA/images/draw-a-line.png b/es-LA/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/es-LA/images/draw-a-line.png differ
diff --git a/es-LA/images/falling-cats.png b/es-LA/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/es-LA/images/falling-cats.png differ
diff --git a/es-LA/images/flailing-at-edge.png b/es-LA/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/es-LA/images/flailing-at-edge.png differ
diff --git a/es-LA/images/flower-random.png b/es-LA/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/es-LA/images/flower-random.png differ
diff --git a/es-LA/images/pen-sprite.png b/es-LA/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/es-LA/images/pen-sprite.png differ
diff --git a/es-LA/meta.yml b/es-LA/meta.yml
new file mode 100644
index 0000000..744efe7
--- /dev/null
+++ b/es-LA/meta.yml
@@ -0,0 +1,30 @@
+---
+title: '¡GATOS!'
+hero_image: images/banner.png
+description: Crea un juego en el que guíes a los gatos a un lugar seguro y evites que caigan en los agujeros
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introducción
+ -
+ title: Dibuja líneas
+ -
+ title: Clona gatos
+ completion:
+ - engaged
+ -
+ title: Haz que los gatos se muevan
+ -
+ title: Pegarse a las líneas
+ -
+ title: Llegar a un lugar seguro
+ completion:
+ - internal
+ -
+ title: 'Desafío: Más obstáculos'
+ challenge: true
+ -
+ title: '¿Qué sigue?'
diff --git a/es-LA/resources/cats-resources.sb3 b/es-LA/resources/cats-resources.sb3
new file mode 100644
index 0000000..57404a6
Binary files /dev/null and b/es-LA/resources/cats-resources.sb3 differ
diff --git a/es-LA/solutions/cats-solution.sb3 b/es-LA/solutions/cats-solution.sb3
new file mode 100644
index 0000000..a6af070
Binary files /dev/null and b/es-LA/solutions/cats-solution.sb3 differ
diff --git a/es-LA/step_1.md b/es-LA/step_1.md
new file mode 100644
index 0000000..14f293b
--- /dev/null
+++ b/es-LA/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+Esta es la versión **Scratch 3** del proyecto. También hay una [versión del proyecto en Scratch 2](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introducción
+
+En este proyecto, crearás un juego en el que debes guiar a los gatos a un lugar seguro y ¡no dejar que ninguno de ellos caiga al vacío!
+
+### Lo que harás
+
+\--- no-print \---
+
+Haz clic y arrastra el ratón para dibujar una línea con el lápiz. Tu objetivo es evitar que los gatos caigan en los agujeros creando un camino seguro hacia la salida.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: Lo que vas a aprender
+
++ Cómo usar un bucle `por siempre`{: class = "block3control"} para generar constantemente gatos en movimiento
++ Cómo usar un bucle `repetir hasta`{: class = "block3control"} para asegurar que tus gatos sigan una línea
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Lo que vas a necesitar
+
+### Equipo
+
++ Una computadora capaz de correr Scratch 3
+
+### Programa
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Descargas
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## título: Notas adicionales para educadores
+
+\--- no-print \---
+
+Si necesitas imprimir este proyecto, usa la [versión para imprimir](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/es-LA/step_2.md b/es-LA/step_2.md
new file mode 100644
index 0000000..32dc21c
--- /dev/null
+++ b/es-LA/step_2.md
@@ -0,0 +1,140 @@
+## Dibuja líneas
+
+\--- task \---
+
+Abre el proyecto de inicio de Scratch '¡GATOS!'.
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+Si tienes una cuenta de Scratch, puedes hacer una copia haciendo clic en ** Remix **.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Añade la extensión Lápiz a tu proyecto.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Haz clic en el objeto llamado 'Lápiz' y agrega el código para establecer el color del lápiz en el mismo azul que los obstáculos en el Escenario.
+
+
+
+```blocks3
+al presionar la bandera
+fijar el color del lápiz a [#0000ff]
+borrar todo
+fijar tamaño del lápiz a (5)
+```
+
+Para seleccionar un color, haz clic en el cuadro de color del bloque `fijar color del lápiz`{:class="block3extensions"} para hacer que el cursor del ratón se convierta en una pipeta, y luego haz clic en el color correcto en el escenario.
+
+\--- /task \---
+
+\--- task \---
+
+Añade un poco más de código para hacer que el objeto siga el puntero del ratón. Prueba tu programa para verificar que el código funcione.
+
+
+
+```blocks3
+por siempre
+ir a (puntero del ratón v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Agrega algo de código para indicarle al objeto que dibuje una línea en el escenario si se presiona el botón del ratón.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Si`{:class="block3control"} el `ratón está pulsado`{:class="block3sensing"}, pon el `lápiz abajo`{:class="block3extensions"}, y `si no`{:class="block3control"}, levanta el `lápiz`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los bloques de código que necesitas:
+
+```blocks3
+
+
+bajar lápiz
+
+subir lápiz
+
+si <> entonces
+si no
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al presionar bandera
+fijar color de lápiz a [#0000ff]
+borrar todo
+fijar tamaño de lápiz a (5)
+por siempre
+ir a (puntero del ratón v)
+si entonces
+bajar lápiz
+si no
+subir lápiz
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Prueba tu código. Deberías poder hacer clic y arrastrar con el ratón para dibujar una línea azul en el escenario.
+
+
+
+\--- /task \---
+
+Probablemente veas que siempre aparece un punto azul en la esquina superior derecha del Escenario (está encerrado en un círculo en la imagen de arriba). Esto se debe a que, cuando haces clic en la bandera verde para iniciar el juego, presionas el ratón y el bolígrafo comienza a dibujar inmediatamente.
+
+\--- task \---
+
+Para evitar que esto suceda, agrega un bloque `subir lápiz`{:class = "block3extensions"} al comienzo del script, y un bloque `esperar un segundo`{: class = "block3control"} sobre el bloque `por siempre`{: clase = "block3control"}.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/es-LA/step_3.md b/es-LA/step_3.md
new file mode 100644
index 0000000..2381a19
--- /dev/null
+++ b/es-LA/step_3.md
@@ -0,0 +1,73 @@
+## Clona gatos
+
+Tu quieres un flujo interminable de gatos que el jugador deba guiar a lo largo del camino hacia la salida.
+
+\--- task \---
+
+Haz clic en el objeto llamado 'Gato' y agrega un código para `esconder`{:class="block3looks"} el objeto, y también para `clonar`{:class="block3control"} cada tres segundos.
+
+
+
+```blocks3
+al presionar bandera
+esconder
+por siempre
+crear clon de (mí mismo v)
+esperar (3) segundos
+end
+```
+
+\--- /task \---
+
+Si ejecutas el programa ahora, no sucede nada en el Escenario. Para verificar que se crea un nuevo clon del objeto Gato cada tres segundos, haz que cada clon aparezca y caiga del cielo.
+
+\--- task \---
+
+Añade código para decirle al objeto que `cuando se inicie como un clon`{:class = "block3control"}, debe `mostrarse`{:class ="block3looks"} a sí mismo y caer hasta que `toque`{:class =" block3sensing "} el suelo azul que está dibujado en el Escenario.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Cuando el objeto Gato comience como un clon`{:class="block3control"}, `muestra`{:class="block3looks"} el objeto. `Repetidamente`{:class="block3control"} `Cambia`{:class="block3motion"} la coordenada `y` del objeto a `-2`, hasta que el objeto `toque`{:class="block3sensing"} el Escenario azul.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los bloques de código que necesitas:
+
+```blocks3
+repetir hasta que <>
+end
+
+mostrar
+
+
+
+cambia y a (-2)
+
+al comenzar como clon
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al comenzar como clon
+mostrar
+repetir hasta que
+sumar a y (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+Cuando hagas clic en la bandera verde, deberías ver un nuevo gato caer desde la parte superior del escenario cada tres segundos. Cada gato debe aterrizar en una gran pila de gatos superpuestos en el suelo azul de la parte inferior.
+
+
\ No newline at end of file
diff --git a/es-LA/step_4.md b/es-LA/step_4.md
new file mode 100644
index 0000000..3059a75
--- /dev/null
+++ b/es-LA/step_4.md
@@ -0,0 +1,115 @@
+## Haz que los gatos se muevan
+
+Una vez que un gato llega al suelo, debe avanzar lentamente hacia la derecha.
+
+\--- task \---
+
+Agrega código a la sección `al comenzar como clon`{:class="block3control"} para hacer que el objeto Gato se `mueva diez pasos`{:class="block3motion"}, y cambie entre los dos disfraces del objeto cada 0.1 segundos para que parezca que el gato que está caminando.
+
+
+
+\--- hints \--- \--- hint \---
+
+El objeto Gato debe `moverse 10 pasos`{:class="block3motion"}, y `cambiar el disfraz `{:class="block3looks"} cada `0.1 segundos`{:class="block3control"}. Este código debe repetirse `por siempre`{:class="block3control"}, al igual que el código que hace que el gato caiga.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los bloques de código que necesitas:
+
+```blocks3
+mover (10) pasos
+
+esperar (0.1) segundos
+
+siguiente disfraz
+
+por siempre
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al comenzar como clon
+mostrar
++ por siempre
+ mover (10) pasos
+ repetir hasta que
+ cambiar y a (-2)
+ end
+ siguiente disfraz
+ esperar (0.1) segundos
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Presiona la bandera verde y verifica que los gatos ahora se muevan a lo largo de la plataforma azul en la parte inferior.
+
+\--- /task \---
+
+Si dibujas un puente a través del hueco para que los gatos puedan llegar hasta el lado derecho del Escenario, puedes ver que terminan clavados caminando a través de la pared derecha.
+
+
+
+\--- task \---
+
+Elimina el bucle `por siempre`{:class="block3control"} y, en su lugar, añade un bucle diferente para que los gatos sólo caminen hasta que lleguen al borde. Cuando un gato llega al borde del Escenario, debe desaparecer.
+
+
+
+```blocks3
+al comenzar como clon
+mostrar
++ repetir hasta que
+mover (10) pasos
+repetir hasta que
+cambiar y a (-2)
+end
+siguiente disfraz
+esperar (0.1) segundos
+end
++ eliminar este clon
+```
+
+\--- /task \---
+
+\--- task \---
+
+Presiona la bandera verde y verifica que los gatos desaparezcan cuando lleguen al borde del escenario.
+
+\--- /task \---
+
+Date cuenta de que si los gatos caen en el agujero, no desaparecen, sino que se atascan en la parte inferior. Esto se debe a que siguen tratando de caerse.
+
+Esta es la parte del código que le dice al gato que siga cayendo hasta que toque el color azul:
+
+```blocks3
+repetir hasta que
+end
+```
+
+Sin embargo, en el agujero, el gato nunca puede alcanzar el azul, por lo que está atascado para siempre.
+
+\--- task \---
+
+Agrega más bloques a este bucle para que se repita hasta que el objeto Gato toque el color azul `o`{:class="block3operators"} `toque el borde`{:class="block3sensing"}. De esta manera, el objeto deja de intentar caerse si llega al borde del Escenario.
+
+
+
+```blocks3
+repetir hasta que < o >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/es-LA/step_5.md b/es-LA/step_5.md
new file mode 100644
index 0000000..1facf7e
--- /dev/null
+++ b/es-LA/step_5.md
@@ -0,0 +1,65 @@
+## Pegarse a las líneas
+
+Te habrás dado cuenta que, si dibujas un puente más bajo entre las dos plataformas, o una línea que se inclina hacia arriba, ¡los gatos terminan caminando a través de la plataforma en lugar de por encima!
+
+
+
+\--- task \---
+
+En el código para el objeto "Gato", añade otro bucle antes del bloque `siguiente disfraz`{:class="block3looks"}. Esta vez, el bucle debería indicarle al gato que se mueva hacia arriba por `2` hasta que no esté tocando el color azul.
+
+
+
+\--- hints \--- \--- hint \---
+
+El gato debería `moverse 2 hacia arriba`{:class="block3motion"} `repetir hasta que`{:class="block3control"} `no`{:class="block3operators"} `toque el color azul`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los bloques de código que necesitas:
+
+```blocks3
+
+
+cambiar y a (2)
+
+repetir hasta que <>
+end
+
+no <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al comenzar como clon
+mostrar
+repetir hasta que
+mover (10) pasos
+repetir hasta que
+cambiar y a (-2)
+end
+repetir hasta que >
+cambiar y a (2)
+end
+siguiente disfraz
+esperar (0.1) segundos
+end
+eliminar este clon
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Haz clic en la bandera verde e intenta dibujar una línea que se incline hacia arriba. Comprueba que tu gato sigue esta línea.
+
+\--- /task \---
\ No newline at end of file
diff --git a/es-LA/step_6.md b/es-LA/step_6.md
new file mode 100644
index 0000000..ee274d5
--- /dev/null
+++ b/es-LA/step_6.md
@@ -0,0 +1,88 @@
+## Llegar a un lugar seguro
+
+El objetivo del juego es guiar a los gatos a un lugar seguro creando un camino para que puedan llegar a la puerta. Crea una variable de puntuación para registrar cuántos gatos llegan a la puerta.
+
+\--- task \---
+
+Crea una nueva variable llamada `puntuación`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Añade código a tu objeto Gato para agregar `1` a la `puntuación`{:class="block3variables"} cada vez que un gato llegue a la puerta. También establece `puntuación`{:class="block3variables"} a `0`` cuando se haga clic en la bandera`{:class="block3events"} al inicio de la partida.
+
+
+
+\--- hints \--- \--- hint \---
+
+`Si`{:class="block3control"} el gato está `tocando el objeto Puerta`{:class="block3sensing"}, entonces `suma 1 a la puntuación`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Aquí están los nuevos bloques de código que necesitas agregar a tu programa de `al comenzar como clon`:
+
+```blocks3
+sumar a [puntuación v] (1)
+
+si <> entonces
+end
+
+
+
+dar a [puntuación v] el valor (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Así es como debería verse tu código:
+
+```blocks3
+al comenzar como clon
+mostrar
+repetir hasta que
+mover (10) pasos
+repetir hasta que
+cambiar y a (-2)
+end
+repetir hasta que >
+cambiar y a (2)
+end
+siguiente disfraz
+esperar (0.1) segundos
++ si entonces
+cambiar [puntuación v] por (1)
+end
+end
+eliminar este clon
+
+al presionar bandera
++ dar a [puntuación v] el valor (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Añade un poco más de código para que, cuando el objeto Gato llegue a la puerta, haga un sonido 'meow', es decir, maulle, y luego desaparezca.
+
+
+
+```blocks3
+iniciar sonido (meow v)
+eliminar este clon
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/es-LA/step_7.md b/es-LA/step_7.md
new file mode 100644
index 0000000..db5c61f
--- /dev/null
+++ b/es-LA/step_7.md
@@ -0,0 +1,13 @@
+## Desafío: Más obstáculos
+
+De momento, el juego es demasiado fácil de ganar. ¿Puedes pensar en ideas para hacerlo más difícil?
+
++ Agrega más fondos con diferentes diseños de plataformas.
+
++ Mueve la ubicación de la puerta, dependiendo del fondo que se muestre.
+
++ Agrega más objetos tales como obstáculos móviles. ¿Quizás podrías tener perros merodeando o púas giratorias que los gatos deben evitar?
+
++ Solo permite que el jugador use una cantidad limitada de "tinta" para dibujar líneas en el juego. Puedes hacer seguimiento a la cantidad de "tinta" utilizada creando una variable temporizador, que registre cuánto tiempo se mantiene presionado el ratón.
+
++ Crea un objeto para mostrarle al jugador cuánta tinta le queda.
\ No newline at end of file
diff --git a/es-LA/step_8.md b/es-LA/step_8.md
new file mode 100644
index 0000000..cbe2f9c
--- /dev/null
+++ b/es-LA/step_8.md
@@ -0,0 +1,19 @@
+## ¿Qué sigue?
+
+Prueba el proyecto [generador de flores](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects), donde usarás bloques personalizados para crear tus propios patrones de flores.
+
+\--- no-print \---
+
+Presiona `f` para dibujar algunas flores, o `r` para dibujar un montón de flores aleatorias, o `p` para dibujar un patrón de flores.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/fi-FI/images/banner.png b/fi-FI/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/fi-FI/images/banner.png differ
diff --git a/fi-FI/images/cat-sprite.png b/fi-FI/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/fi-FI/images/cat-sprite.png differ
diff --git a/fi-FI/images/cat-walk-through-platform.png b/fi-FI/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/fi-FI/images/cat-walk-through-platform.png differ
diff --git a/fi-FI/images/cats-finished.png b/fi-FI/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/fi-FI/images/cats-finished.png differ
diff --git a/fi-FI/images/door-sprite.png b/fi-FI/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/fi-FI/images/door-sprite.png differ
diff --git a/fi-FI/images/draw-a-line.png b/fi-FI/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/fi-FI/images/draw-a-line.png differ
diff --git a/fi-FI/images/falling-cats.png b/fi-FI/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/fi-FI/images/falling-cats.png differ
diff --git a/fi-FI/images/flailing-at-edge.png b/fi-FI/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/fi-FI/images/flailing-at-edge.png differ
diff --git a/fi-FI/images/flower-random.png b/fi-FI/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/fi-FI/images/flower-random.png differ
diff --git a/fi-FI/images/pen-sprite.png b/fi-FI/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/fi-FI/images/pen-sprite.png differ
diff --git a/fi-FI/meta.yml b/fi-FI/meta.yml
new file mode 100644
index 0000000..ea88a99
--- /dev/null
+++ b/fi-FI/meta.yml
@@ -0,0 +1,26 @@
+---
+title: CATS!
+hero_image: images/banner.png
+description: Create a game in which you guide cats to safety and stop them from falling into holes
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introduction
+ -
+ title: Draw lines
+ -
+ title: Clone cats
+ -
+ title: Make the cats move
+ -
+ title: Stick to the lines
+ -
+ title: Get to safety
+ -
+ title: "Challenge: more obstacles"
+ challenge: true
+ -
+ title: What next?
diff --git a/fi-FI/resources/cats-resources.sb3 b/fi-FI/resources/cats-resources.sb3
new file mode 100644
index 0000000..d952bff
Binary files /dev/null and b/fi-FI/resources/cats-resources.sb3 differ
diff --git a/fi-FI/solutions/cats-solution.sb3 b/fi-FI/solutions/cats-solution.sb3
new file mode 100644
index 0000000..a2dc7c8
Binary files /dev/null and b/fi-FI/solutions/cats-solution.sb3 differ
diff --git a/fi-FI/step_1.md b/fi-FI/step_1.md
new file mode 100644
index 0000000..75244c0
--- /dev/null
+++ b/fi-FI/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+This is the **Scratch 3** version of the project. There is also a [Scratch 2 version of the project](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introduction
+
+In this project, you will create a game in which you need to guide cats to safety and not let any of them fall through the gaps!
+
+### What you will make
+
+\--- no-print \---
+
+Click and drag with the mouse to draw a line with the pencil. Your goal is to stop the cats from falling into holes by creating a safe path to the exit.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: What you will learn
+
++ How to use a `forever`{:class="block3control"} loop to constantly generate moving cats
++ How to use a `repeat until`{:class="block3control"} loop to ensure your cats follow a line
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: What you will need
+
+### Hardware
+
++ A computer capable of running Scratch 3
+
+### Software
+
++ Scratch 3 (either [online](http://rpf.io/scratchon){:target="_blank"} or [offline](http://rpf.io/scratchoff){:target="_blank"})
+
+### Downloads
+
++ [Offline starter project](http://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Additional notes for educators
+
+\--- no-print \---
+
+If you need to print this project, please use the [printer-friendly version](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](http://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/fi-FI/step_2.md b/fi-FI/step_2.md
new file mode 100644
index 0000000..bd3358c
--- /dev/null
+++ b/fi-FI/step_2.md
@@ -0,0 +1,140 @@
+## Draw lines
+
+\--- task \---
+
+Open the 'CATS!' Scratch starter project.
+
+**Online:** open the starter project at [rpf.io/cats-on](http://rpf.io/cats-on){:target="_blank"}.
+
+If you have a Scratch account you can make a copy by clicking **Remix**.
+
+**Offline:** open the [starter project](http://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](http://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Add the Pen extension to your project.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Click on the sprite called 'Pen', and add code to set the pen colour to the same blue as the obstacles on the Stage.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+To select a colour, click on the colour square in the `set pen color`{:class="block3extensions"} block to make your mouse cursor turn into a pipette, and then click on the correct colour on the Stage.
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code to make the sprite follow the mouse pointer. Test your program to check that the code works.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add some code to tell the sprite to draw a line on the Stage if the mouse button is pressed down.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the `mouse is down`{:class="block3sensing"}, put the `pen down`{:class="block3extensions"}, and `else`{:class="block3control"}, lift the `pen up`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Test your code. You should be able to click and drag with the mouse to draw a blue line on the Stage.
+
+
+
+\--- /task \---
+
+You probably see that a blue dot always appears in the top right-hand corner of the Stage (it's circled in the image above). This is because, when you click the green flag to start the game, you press the mouse down, and so the pen immediately starts drawing.
+
+\--- task \---
+
+To stop this from happening, add a `pen up`{:class="block3extensions"} block at the start of the script, and a `wait one second`{:class="block3control"} block above the `forever`{:class="block3control"} block.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/fi-FI/step_3.md b/fi-FI/step_3.md
new file mode 100644
index 0000000..d5f8d46
--- /dev/null
+++ b/fi-FI/step_3.md
@@ -0,0 +1,73 @@
+## Clone cats
+
+You want a never-ending stream of cats that the player has to guide along the path to the exit.
+
+\--- task \---
+
+Click on the sprite called 'Cat', and add some code to `hide`{:class="block3looks"} the sprite, and also to `clone`{:class="block3control"} it every three seconds.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+If you run the program now, nothing happens on the Stage. To check that a new Cat sprite clone is created every three seconds, make each clone appear and fall out of the sky.
+
+\--- task \---
+
+Add code to tell the sprite that `when it starts as a clone`{:class="block3control"}, it should `show`{:class="block3looks"} itself and fall until it `touches`{:class="block3sensing"} the blue floor that is drawn on the Stage.
+
+
+
+\--- hints \--- \--- hint \---
+
+`When the sprite starts as a clone`{:class="block3control"}, `show`{:class="block3looks"} the sprite. `Repeatedly`{:class="block3control"} `Change`{:class="block3motion"} the sprite's `y` coordinate by `-2`, until the sprite `touches`{:class="block3sensing"} the blue Stage.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+When you click the green flag, you should see a new cat fall from the top of the Stage every three seconds. Every cat should land in a big pile of overlapping cats on the blue floor at the bottom.
+
+
\ No newline at end of file
diff --git a/fi-FI/step_4.md b/fi-FI/step_4.md
new file mode 100644
index 0000000..8c10235
--- /dev/null
+++ b/fi-FI/step_4.md
@@ -0,0 +1,115 @@
+## Make the cats move
+
+Once a cat reaches the floor, it should step slowly to the right.
+
+\--- task \---
+
+Add code to the `when I start as a clone`{:class="block3control"} section to make the cat sprite `move ten steps`{:class="block3motion"}, and switch between the sprite's two costumes every 0.1 seconds to make the cat look like it's walking.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat sprite should `move 10 steps`{:class="block3motion"}, and `switch costume`{:class="block3looks"} every `0.1 seconds`{:class="block3control"}. This code should repeat `forever`{:class="block3control"}, just like the code to make the cat fall.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats now move along the blue platform at the bottom.
+
+\--- /task \---
+
+If you draw a bridge across the gap so that the cats can get all the way to the right side of the Stage, you can see that they end up getting stuck walking into the right wall.
+
+
+
+\--- task \---
+
+Remove the `forever`{:class="block3control"} loop, and instead add a different loop to make the cats only walk until they reach an edge. When a cat reaches the edge of the Stage, it should disappear.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Press the green flag and check that the cats disappear when they reach the edge of the Stage.
+
+\--- /task \---
+
+You may notice that, if the cats fall into the hole, they don't disappear but instead get stuck at the bottom. This is because they keep trying to fall downwards.
+
+This is the part of the code that tells the cat to keep falling until it touches blue:
+
+```blocks3
+repeat until
+end
+```
+
+However, in the hole, the cat can never reach blue, so it is stuck forever.
+
+\--- task \---
+
+Add more blocks to this loop so that it repeats until the cat sprite is touching blue `or`{:class="block3operators"} `touching the edge`{:class="block3sensing"}. This way, the sprite stops trying to fall if it reaches the edge of the Stage.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/fi-FI/step_5.md b/fi-FI/step_5.md
new file mode 100644
index 0000000..ff776e8
--- /dev/null
+++ b/fi-FI/step_5.md
@@ -0,0 +1,65 @@
+## Stick to the lines
+
+You might notice that, if you draw a low bridge between the two platforms, or a line that slopes upwards, the cats end up walking through the platform rather than on top of it!
+
+
+
+\--- task \---
+
+In the code for the cat sprite, add another loop before the `next costume`{:class="block3looks"} block. This time, the loop should tell the cat to move upwards by `2` until it is not touching blue.
+
+
+
+\--- hints \--- \--- hint \---
+
+The cat should `move up 2`{:class="block3motion"} `repeatedly until`{:class="block3control"} it is `not`{:class="block3operators"} `touching blue`{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the code blocks you need:
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+delete this clone
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Click the green flag and try drawing a line that slopes upwards. Check that your cat follows this line.
+
+\--- /task \---
\ No newline at end of file
diff --git a/fi-FI/step_6.md b/fi-FI/step_6.md
new file mode 100644
index 0000000..deb146e
--- /dev/null
+++ b/fi-FI/step_6.md
@@ -0,0 +1,89 @@
+## Get to safety
+
+The object of the game is to guide the cats to safety by creating a path so they can reach the door. Create a score variable to keep track of how many cats reach the door.
+
+\--- task \---
+
+Create a variable called `score`{:class="block3variables"}.
+
+
+
+[[[generic-scratch3-add-variable]]]
+
+\--- /task \---
+
+\--- task \---
+
+Add code to your cat sprite to add `1` to the `score`{:class="block3variables"} each time a cat reaches the door. Also set `score`{:class="block3variables"} to `0` `when the flag is clicked`{:class="block3events"} at the start of the game.
+
+
+
+\--- hints \--- \--- hint \---
+
+`If`{:class="block3control"} the cat is `touching the door sprite`{:class="block3sensing"}, then `add 1 to the score`{:class="block3variables"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Here are the new code blocks you need to add to your `when I start as a clone` script:
+
+```blocks3
+change [score v] by (1)
+
+if <> then
+end
+
+
+
+set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+This is what your code should look like:
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ repeat until >
+ change y by (2)
+ end
+ next costume
+ wait (0.1) seconds
++ if then
+ change [score v] by (1)
+ end
+end
+delete this clone
+
+when flag clicked
+
++ set [score v] to (0)
+```
+
+\--- /hint \---
+
+\--- /hints \---
+
+\--- /task \---
+
+\--- task \---
+
+Add some more code so that, when a cat sprite reaches the door, the cat makes a 'meow' sound and then disappears.
+
+
+
+```blocks3
+play sound (meow v)
+delete this clone
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/fi-FI/step_7.md b/fi-FI/step_7.md
new file mode 100644
index 0000000..6e609ac
--- /dev/null
+++ b/fi-FI/step_7.md
@@ -0,0 +1,13 @@
+## Challenge: more obstacles
+
+At the moment, the game is rather easy to win. Can you think of ideas to you make your game harder?
+
++ Add more backgrounds with different platform designs.
+
++ Move the location of the door depending on which background is displayed.
+
++ Add more sprites as moving obstacles. Perhaps you could have roaming dogs or rotating spikes the cats need to avoid?
+
++ Only allow the player to use a limited amount of "ink" to draw lines in the game. You can keep track of how much "ink" is used by creating a timer variable that records how long the mouse is held down.
+
++ Create a sprite to show the player how much ink is left.
\ No newline at end of file
diff --git a/fi-FI/step_8.md b/fi-FI/step_8.md
new file mode 100644
index 0000000..2295a72
--- /dev/null
+++ b/fi-FI/step_8.md
@@ -0,0 +1,19 @@
+## What next?
+
+Try the [Flower generator](https://projects.raspberrypi.org/en/projects/flower-generator?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects) project, where you will use custom blocks to create flower patterns.
+
+\--- no-print \---
+
+Press `f` to draw a few flowers, or `r` to draw lots of random flowers, or `p` to draw a flower pattern.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
\ No newline at end of file
diff --git a/fr-FR/images/banner.png b/fr-FR/images/banner.png
new file mode 100644
index 0000000..ec597e9
Binary files /dev/null and b/fr-FR/images/banner.png differ
diff --git a/fr-FR/images/cat-sprite.png b/fr-FR/images/cat-sprite.png
new file mode 100644
index 0000000..ccca81e
Binary files /dev/null and b/fr-FR/images/cat-sprite.png differ
diff --git a/fr-FR/images/cat-walk-through-platform.png b/fr-FR/images/cat-walk-through-platform.png
new file mode 100644
index 0000000..c7052e6
Binary files /dev/null and b/fr-FR/images/cat-walk-through-platform.png differ
diff --git a/fr-FR/images/cats-finished.png b/fr-FR/images/cats-finished.png
new file mode 100644
index 0000000..b0dbad5
Binary files /dev/null and b/fr-FR/images/cats-finished.png differ
diff --git a/fr-FR/images/door-sprite.png b/fr-FR/images/door-sprite.png
new file mode 100644
index 0000000..fc2f1a4
Binary files /dev/null and b/fr-FR/images/door-sprite.png differ
diff --git a/fr-FR/images/draw-a-line.png b/fr-FR/images/draw-a-line.png
new file mode 100644
index 0000000..44d0ec3
Binary files /dev/null and b/fr-FR/images/draw-a-line.png differ
diff --git a/fr-FR/images/falling-cats.png b/fr-FR/images/falling-cats.png
new file mode 100644
index 0000000..5b2e2c9
Binary files /dev/null and b/fr-FR/images/falling-cats.png differ
diff --git a/fr-FR/images/flailing-at-edge.png b/fr-FR/images/flailing-at-edge.png
new file mode 100644
index 0000000..f26f620
Binary files /dev/null and b/fr-FR/images/flailing-at-edge.png differ
diff --git a/fr-FR/images/flower-random.png b/fr-FR/images/flower-random.png
new file mode 100644
index 0000000..ab9cfe6
Binary files /dev/null and b/fr-FR/images/flower-random.png differ
diff --git a/fr-FR/images/pen-sprite.png b/fr-FR/images/pen-sprite.png
new file mode 100644
index 0000000..6d9e486
Binary files /dev/null and b/fr-FR/images/pen-sprite.png differ
diff --git a/fr-FR/meta.yml b/fr-FR/meta.yml
new file mode 100644
index 0000000..1458411
--- /dev/null
+++ b/fr-FR/meta.yml
@@ -0,0 +1,30 @@
+---
+title: CHATS !
+hero_image: images/banner.png
+description: Crée un jeu dans lequel tu guides les chats en sécurité et les empêches de tomber dans des trous
+listed: true
+copyedit: true
+version: 4.0.2
+last_tested: 2018-10-18
+steps:
+ -
+ title: Introduction
+ -
+ title: Tracer des lignes
+ -
+ title: Cloner les chats
+ completion:
+ - engaged
+ -
+ title: Faire bouger les chats
+ -
+ title: Respecter les lignes
+ -
+ title: Mettons-nous à l'abri
+ completion:
+ - internal
+ -
+ title: 'Défi : plus d''obstacles'
+ challenge: true
+ -
+ title: Et ensuite ?
diff --git a/fr-FR/resources/cats-resources.sb3 b/fr-FR/resources/cats-resources.sb3
new file mode 100644
index 0000000..ab9aeb8
Binary files /dev/null and b/fr-FR/resources/cats-resources.sb3 differ
diff --git a/fr-FR/solutions/cats-solution.sb3 b/fr-FR/solutions/cats-solution.sb3
new file mode 100644
index 0000000..a727870
Binary files /dev/null and b/fr-FR/solutions/cats-solution.sb3 differ
diff --git a/fr-FR/step_1.md b/fr-FR/step_1.md
new file mode 100644
index 0000000..bd53a80
--- /dev/null
+++ b/fr-FR/step_1.md
@@ -0,0 +1,66 @@
+\--- no-print \---
+
+Ceci est la version **Scratch 3** du projet. Il existe également une version [Scratch 2 du projet](https://projects.raspberrypi.org/en/projects/cats-scratch2).
+
+\--- /no-print \---
+
+## Introduction
+
+Dans ce projet, tu vas créer un jeu dans lequel tu dois guider les chats en sécurité et ne laisser aucun d'entre eux tomber dans le vide !
+
+### Ce que tu feras
+
+\--- no-print \---
+
+Clique et glisse la souris pour tracer une ligne avec le crayon. Ton but est d'empêcher les chats de tomber dans des trous en créant un chemin sécurisé vers la sortie.
+
+
+
+
+
+\--- /no-print \---
+
+\--- print-only \---
+
+
+
+\--- /print-only \---
+
+## \--- collapse \---
+
+## title: Ce que tu vas apprendre
+
++ Comment utiliser une boucle `répéter indéfiniment`{:class="block3control"} pour générer constamment des chats en mouvement
++ Comment utiliser une boucle `répéter jusqu'à ce que`{:class="block3control"} pour t'assurer que tes chats suivent une ligne
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Ce qu'il te faut
+
+### Matériel informatique
+
++ Un ordinateur capable d'exécuter Scratch 3
+
+### Logiciel
+
++ Scratch 3 (either [online](https://rpf.io/scratchon){:target="_blank"} or [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Téléchargements
+
++ [Offline starter project](https://rpf.io/p/en/cats-go){:target="_blank"}
+
+\--- /collapse \---
+
+## \--- collapse \---
+
+## title: Informations supplémentaires pour les éducateurs
+
+\--- no-print \---
+
+Si vous avez besoin d'imprimer ce projet, merci d'utiliser la [version imprimable](https://projects.raspberrypi.org/en/projects/cats/print). \--- /no-print \---
+
+You can find the [completed project here](https://rpf.io/p/en/cats-get){:target="_blank"}.
+
+\--- /collapse \---
\ No newline at end of file
diff --git a/fr-FR/step_2.md b/fr-FR/step_2.md
new file mode 100644
index 0000000..c3f7388
--- /dev/null
+++ b/fr-FR/step_2.md
@@ -0,0 +1,140 @@
+## Tracer des lignes
+
+\--- task \---
+
+Ouvre le projet de démarrage Scratch « CHATS ! ».
+
+**Online:** open the starter project at [rpf.io/cats-on](https://rpf.io/cats-on){:target="_blank"}.
+
+Si tu as un compte Scratch, tu peux en créer une copie en cliquant sur **Remix**.
+
+**Offline:** open the [starter project](https://rpf.io/p/en/cats-go) in the offline editor. If you need to download and install the Scratch offline editor, you can find it at [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+\--- /task \---
+
+\--- task \---
+
+Ajoute l'extension Stylo à ton projet.
+
+[[[generic-scratch3-add-pen-extension]]]
+
+\--- /task \---
+
+\--- task \---
+
+Clique sur le sprite appelé « Crayon » et ajoute du code pour définir la couleur du crayon sur le même bleu que les obstacles sur la scène.
+
+
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+```
+
+Pour sélectionner une couleur, clique sur le carré de couleur dans le bloc `mettre la couleur du stylo à`{:class="block3extensions"} pour que le curseur de ta souris se transforme en pipette, puis clique sur la bonne couleur sur la scène.
+
+\--- /task \---
+
+\--- task \---
+
+Ajoute un peu plus de code pour que le sprite suive le pointeur de la souris. Teste ton programme pour vérifier que le code fonctionne.
+
+
+
+```blocks3
+forever
+go to (mouse pointer v)
+end
+```
+
+[[[generic-scratch3-saving]]]
+
+\--- /task \---
+
+\--- task \---
+
+Ajoute du code pour dire au sprite de tracer une ligne sur la scène si le bouton de la souris est enfoncé.
+
+
+
+\--- hints \--- \--- hint \---
+
+`si`{:class="block3control"} `souris pressée ?`{:class="block3sensing"}, `crayon en position d'écriture`{:class="block3extensions"}, et `sinon`{:class=" block3control"}, `relever le crayon`{:class="block3extensions"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Voici les blocs dont tu as besoin :
+
+```blocks3
+
+
+pen down
+
+pen up
+
+if <> then
+else
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Voici à quoi ton code devrait ressembler :
+
+```blocks3
+when flag clicked
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
+forever
+go to (mouse pointer v)
++ if then
+pen down
+else
+pen up
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Teste ton code. Tu devrais pouvoir cliquer et faire glisser la souris pour tracer une ligne bleue sur la scène.
+
+
+
+\--- /task \---
+
+Tu vois probablement qu'un point bleu apparaît toujours dans le coin supérieur droit de la scène (il est entouré dans l'image ci-dessus). C'est parce que lorsque tu cliques sur le drapeau vert pour démarrer le jeu, tu appuies sur la souris, et donc le stylo commence immédiatement à dessiner.
+
+\--- task \---
+
+Pour éviter que cela ne se produise, ajoute un bloc `relever le crayon`{:class="block3extensions"} au début du script et un bloc `attendre une seconde`{:class="block3control"} au-dessus du bloc `répéter indéfiniment`{:class="block3control"}.
+
+
+
+```blocks3
+when flag clicked
++ pen up
+set pen color to [#0000ff]
+erase all
+set pen size to (5)
++ wait (1) seconds
+forever
+go to (mouse pointer v)
+if then
+pen down
+else
+pen up
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/fr-FR/step_3.md b/fr-FR/step_3.md
new file mode 100644
index 0000000..e0d85d0
--- /dev/null
+++ b/fr-FR/step_3.md
@@ -0,0 +1,73 @@
+## Cloner les chats
+
+Tu veux un flot incessant de chats que le joueur doit guider le long du chemin vers la sortie.
+
+\--- task \---
+
+Clique sur le sprite appelé « Chat », et ajoute du code pour `cacher`{:class="block3looks"} le sprite, et aussi le `cloner`{:class="block3control"} toutes les trois secondes.
+
+
+
+```blocks3
+when flag clicked
+hide
+forever
+ create clone of (myself v)
+ wait (3) seconds
+end
+```
+
+\--- /task \---
+
+Si tu exécutes le programme maintenant, rien ne se passe sur la scène. Pour vérifier qu'un nouveau clone de sprite Chat est créé toutes les trois secondes, fais en sorte que chaque clone apparaisse et tombe du ciel.
+
+\--- task \---
+
+Ajoute du code pour indiquer au sprite que `lorsqu'il commence comme un clone`{:class="block3control"}, il doit se `montrer`{:class="block3looks"} et tomber jusqu'à ce qu'il `touche`{:class="block3sensing"} le sol bleu dessiné sur la scène.
+
+
+
+\--- hints \--- \--- hint \---
+
+`quand je commence comme un clone`{:class="block3control"}, `montrer`{:class="block3looks"} le sprite. `de manière répétée`{:class="block3control"} `Ajouter`{:class="block3motion"} `-2` à la coordonnée `y` du sprite, jusqu'à ce que le sprite `touche`{:class="block3sensing"} la scène bleue.
+
+\--- /hint \---
+
+\--- hint \---
+
+Voici les blocs dont tu as besoin :
+
+```blocks3
+repeat until <>
+end
+
+show
+
+
+
+change y by (-2)
+
+when I start as a clone
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Voici à quoi ton code devrait ressembler :
+
+```blocks3
+when I start as a clone
+show
+repeat until
+change y by (-2)
+end
+```
+
+\--- /hint \--- \--- /hints \---
+
+\--- /task \---
+
+Lorsque tu cliques sur le drapeau vert, tu devrais voir un nouveau chat tomber du haut de la scène toutes les trois secondes. Chaque chat devrait atterrir dans un gros tas de chats qui se chevauchent sur le sol bleu en bas.
+
+
\ No newline at end of file
diff --git a/fr-FR/step_4.md b/fr-FR/step_4.md
new file mode 100644
index 0000000..976ad9b
--- /dev/null
+++ b/fr-FR/step_4.md
@@ -0,0 +1,115 @@
+## Faire bouger les chats
+
+Une fois qu'un chat atteint le sol, il devrait avancer lentement vers la droite.
+
+\--- task \---
+
+Ajoute du code à la section `quand je commence comme un clone`{:class="block3control"} pour que le sprite chat se `déplace de dix pas`{:class="block3motion"}, et change entre les deux costumes du sprite toutes les 0,1 secondes pour que le chat ait l'air de marcher.
+
+
+
+\--- hints \--- \--- hint \---
+
+Le sprite chat doit se `déplacer de 10 pas`{:class="block3motion"}, et `changer de costume`{:class="block3looks"} toutes les `0,1 secondes`{:class="block3control"}. Ce code devrait répéter le bloc `répéter indéfiniment`{:class="block3control"}, tout comme le code pour faire tomber le chat.
+
+\--- /hint \---
+
+\--- hint \---
+
+Voici les blocs dont tu as besoin :
+
+```blocks3
+move (10) steps
+
+wait (0.1) seconds
+
+next costume
+
+forever
+end
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Voici à quoi ton code devrait ressembler :
+
+```blocks3
+when I start as a clone
+show
++ forever
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
+```
+
+\--- /hint \---
+
+\--- /hints \--- \--- /task \---
+
+\--- task \---
+
+Appuie sur le drapeau vert et vérifie que les chats se déplacent maintenant le long de la plate-forme bleue en bas.
+
+\--- /task \---
+
+Si tu traces un pont à travers le vide pour que les chats puissent se rendre jusqu'au côté droit de la scène, tu peux voir qu'ils finissent par se coincer en marchant dans le mur de droite.
+
+
+
+\--- task \---
+
+Supprime la boucle `répéter indéfiniment`{:class="block3control"} et ajoute une boucle différente pour que les chats ne marchent que jusqu'à ce qu'ils atteignent un bord. Lorsqu'un chat atteint le bord de la scène, il devrait disparaître.
+
+
+
+```blocks3
+when I start as a clone
+show
++ repeat until
+ move (10) steps
+ repeat until
+ change y by (-2)
+ end
+ next costume
+ wait (0.1) seconds
+end
++ delete this clone
+```
+
+\--- /task \---
+
+\--- task \---
+
+Appuie sur le drapeau vert et vérifie que les chats disparaissent lorsqu'ils atteignent le bord de la scène.
+
+\--- /task \---
+
+Tu remarques peut-être que si les chats tombent dans le trou, ils ne disparaissent pas mais restent coincés au fond. C'est parce qu'ils continuent d'essayer de tomber vers le bas.
+
+C'est la partie du code qui dit au chat de continuer à tomber jusqu'à ce qu'il touche le bleu :
+
+```blocks3
+repeat until
+end
+```
+
+Cependant, dans le trou, le chat ne peut jamais atteindre le bleu, il est donc coincé pour toujours.
+
+\--- task \---
+
+Ajoute plus de blocs à cette boucle afin qu'elle se répète jusqu'à ce que le sprite Chat touche le bleu `ou`{:class="block3operators"} `touche le bord`{:class="block3sensing"}. De cette façon, le sprite cesse d'essayer de tomber s'il atteint le bord de la scène.
+
+
+
+```blocks3
+repeat until < or >
+end
+```
+
+\--- /task \---
\ No newline at end of file
diff --git a/fr-FR/step_5.md b/fr-FR/step_5.md
new file mode 100644
index 0000000..a77acd6
--- /dev/null
+++ b/fr-FR/step_5.md
@@ -0,0 +1,65 @@
+## Respecter les lignes
+
+Tu pourras remarquer que, si tu traces un pont plus bas entre les deux plateformes, ou une ligne qui est inclinée vers le haut, les chats finissent par se promener à travers la plate-forme plutôt que par dessus !
+
+
+
+\--- task \---
+
+Dans le code du sprite chat, ajoute une autre boucle avant le bloc `costume suivant`{:class="block3looks"}. Cette fois, la boucle devrait dire au chat de se déplacer vers le haut par `2` jusqu'à ce qu'il ne touche pas le bleu.
+
+
+
+\--- hints \--- \--- hint \---
+
+Le chat devrait `monter de 2`{:class="block3motion"} `de manière répétée jusqu'à ce qu'il`{:class="block3control"} `ne`` touche pas le bleu` {:class="block3operators"}{:class="block3sensing"}.
+
+\--- /hint \---
+
+\--- hint \---
+
+Voici les blocs dont tu as besoin :
+
+```blocks3
+
+
+change y by (2)
+
+repeat until <>
+end
+
+not <>
+```
+
+\--- /hint \---
+
+\--- hint \---
+
+Voici à quoi ton code devrait ressembler :
+
+```blocks3
+when I start as a clone
+show
+repeat until
+ move (10) steps
+ repeat until