diff --git a/pl-PL/images/banner.png b/pl-PL/images/banner.png
new file mode 100644
index 0000000..6f7d030
Binary files /dev/null and b/pl-PL/images/banner.png differ
diff --git a/pl-PL/images/snow-costume.png b/pl-PL/images/snow-costume.png
new file mode 100644
index 0000000..6f74a37
Binary files /dev/null and b/pl-PL/images/snow-costume.png differ
diff --git a/pl-PL/images/snow-deer.png b/pl-PL/images/snow-deer.png
new file mode 100644
index 0000000..51c0581
Binary files /dev/null and b/pl-PL/images/snow-deer.png differ
diff --git a/pl-PL/images/snow-final.png b/pl-PL/images/snow-final.png
new file mode 100644
index 0000000..e34356c
Binary files /dev/null and b/pl-PL/images/snow-final.png differ
diff --git a/pl-PL/images/snow-hit.png b/pl-PL/images/snow-hit.png
new file mode 100644
index 0000000..6121504
Binary files /dev/null and b/pl-PL/images/snow-hit.png differ
diff --git a/pl-PL/images/snow-minmax.png b/pl-PL/images/snow-minmax.png
new file mode 100644
index 0000000..5f2960c
Binary files /dev/null and b/pl-PL/images/snow-minmax.png differ
diff --git a/pl-PL/images/snow-mouse.png b/pl-PL/images/snow-mouse.png
new file mode 100644
index 0000000..2412f23
Binary files /dev/null and b/pl-PL/images/snow-mouse.png differ
diff --git a/pl-PL/images/snow-rock.png b/pl-PL/images/snow-rock.png
new file mode 100644
index 0000000..4156118
Binary files /dev/null and b/pl-PL/images/snow-rock.png differ
diff --git a/pl-PL/images/snow-slider.png b/pl-PL/images/snow-slider.png
new file mode 100644
index 0000000..54266bf
Binary files /dev/null and b/pl-PL/images/snow-slider.png differ
diff --git a/pl-PL/images/snow-small.png b/pl-PL/images/snow-small.png
new file mode 100644
index 0000000..bd9e8c3
Binary files /dev/null and b/pl-PL/images/snow-small.png differ
diff --git a/pl-PL/images/snow-test.png b/pl-PL/images/snow-test.png
new file mode 100644
index 0000000..4b6a1fb
Binary files /dev/null and b/pl-PL/images/snow-test.png differ
diff --git a/pl-PL/images/snowball-sprite.png b/pl-PL/images/snowball-sprite.png
new file mode 100644
index 0000000..1c97fd8
Binary files /dev/null and b/pl-PL/images/snowball-sprite.png differ
diff --git a/pl-PL/images/target-sprite.png b/pl-PL/images/target-sprite.png
new file mode 100644
index 0000000..2f844c8
Binary files /dev/null and b/pl-PL/images/target-sprite.png differ
diff --git a/pl-PL/meta.yml b/pl-PL/meta.yml
new file mode 100644
index 0000000..8286ecf
--- /dev/null
+++ b/pl-PL/meta.yml
@@ -0,0 +1,22 @@
+---
+hero_image: images/banner.png
+listed: true
+ingredient: false
+copyedit: false
+title: Bitwa na śnieżki
+description: Stwórz grę, w której będziesz rzucać śnieżkami w cel
+version: 4
+last_tested: 2018-04-11
+steps:
+ - title: Wprowadzenie
+ - title: Lepienie śnieżek
+ - title: Rzucanie śnieżką
+ completion:
+ - engaged
+ - title: Realistyczny ruch
+ - title: Cel
+ completion:
+ - internal
+ - title: 'Wyzwanie: udoskonal swoją grę!'
+ challenge: true
+ - title: Co dalej?
diff --git a/pl-PL/resources/SnowballFightResources.sb3 b/pl-PL/resources/SnowballFightResources.sb3
new file mode 100644
index 0000000..03a586f
Binary files /dev/null and b/pl-PL/resources/SnowballFightResources.sb3 differ
diff --git a/pl-PL/scratch-translatable.txt b/pl-PL/scratch-translatable.txt
new file mode 100644
index 0000000..d7e703b
--- /dev/null
+++ b/pl-PL/scratch-translatable.txt
@@ -0,0 +1,13 @@
+cel śnieżki
+
+normalny
+
+moc
+
+rzucać
+
+śnieżka
+
+Masz mnie!
+
+nowy strzał
diff --git a/pl-PL/solutions/SnowballFight.sb3 b/pl-PL/solutions/SnowballFight.sb3
new file mode 100644
index 0000000..f1cf5b4
Binary files /dev/null and b/pl-PL/solutions/SnowballFight.sb3 differ
diff --git a/pl-PL/step_1.md b/pl-PL/step_1.md
new file mode 100644
index 0000000..1c568d9
--- /dev/null
+++ b/pl-PL/step_1.md
@@ -0,0 +1,73 @@
+--- no-print ---
+
+To jest **Scratch 3** wersja projektu. Istnieje również [wersja tego projektu dla Scratch 2](https://projects.raspberrypi.org/pl-PL/projects/snowball-fight-scratch2).
+
+--- /no-print ---
+
+## Wprowadzenie
+
+W tym projekcie stworzysz grę, w której będziesz rzucać śnieżkami w cel.
+
+### Co stworzysz
+
+--- no-print ---
+
+Użyj kursora myszy, aby ustawić kąt śnieżki i przytrzymaj przycisk myszy, aby wybrać moc kuli śnieżnej.
+
+
+
+
+
+
+--- /no-print ---
+
+--- print-only ---
+
+![skończony projekt](images/snow-final.png)
+
+--- /print-only ---
+
+--- collapse ---
+---
+title: Czego będziesz potrzebować
+---
+
+### Sprzęt
+
++ Komputer, na którym można uruchomić Scratch
+
+### Oprogramowanie
+
++ Scratch 3 ([online](https://rpf.io/scratchon){:target="_blank"} lub [offline](https://rpf.io/scratchoff){:target="_blank"})
+
+### Pliki do pobrania
+
+Projekt początkowy można znaleźć [tutaj](https://rpf.io/p/pl-PL/snowball-fight-go){:target="_blank"}.
+
+--- /collapse ---
+
+--- collapse ---
+---
+title: Czego się nauczysz
+---
+
+- Jak animować ikony
+- Jak reagować na kliknięcia myszą
+- jak korzystać z transmisji
+
+--- /collapse ---
+
+--- collapse ---
+---
+title: Dodatkowe informacje dla nauczycieli
+---
+
+--- no-print ---
+
+Jeśli chcesz wydrukować ten projekt, użyj [wersji do druku](https://projects.raspberrypi.org/pl-PL/projects/snowball-fight/print){:target="_blank"}.
+
+--- /no-print ---
+
+Możesz znaleźć [ukończoną wersję projektu tutaj](https://rpf.io/p/pl-PL/snowball-fight-get){:target="_blank"}.
+
+--- /collapse ---
diff --git a/pl-PL/step_2.md b/pl-PL/step_2.md
new file mode 100644
index 0000000..b720030
--- /dev/null
+++ b/pl-PL/step_2.md
@@ -0,0 +1,112 @@
+## Lepienie śnieżek
+
+Zróbmy śnieżną kulę, którą możesz rzucać po całej scenie.
+
+--- task ---
+
+Otwórz projekt startowy Scratch.
+
+**Online**: otwórz [projekt początkowy](https://rpf.io/snowball-fight-on){:target="_blank"}.
+
+Jeśli masz konto Scratch, możesz wykonać kopię klikając **Remiks**.
+
+**Offline**: otwórz [startowy projekt](https://rpf.io/p/pl-PL/snowball-fight-go){:target="_blank"} w edytorze offline.
+
+Jeśli musisz pobrać i zainstalować edytor Scratcha, znajdziesz go na stronie [rpf.io/scratchoff](https://rpf.io/scratchoff){:target="_blank"}.
+
+W projekcie startowym powinno być widoczne puste tło i ikona "śnieżka".
+
+--- /task ---
+
+--- task ---
+
+Ikona "Śnieżka" zawiera 2 kostiumy, normalny kostium i taki, który pokazuje kierunek, w który skierowana jest śnieżka.
+
+![kostiumy śnieżki](images/snow-costume.png)
+
+--- /task ---
+
+--- task ---
+
+Po pierwsze, pozwólmy graczowi zmienić kąt śnieżki. Dodaj ten kod do ikon ze śnieżkami:
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when flag clicked
+wait (0.5) seconds
+go to x:(-200) y:(-130)
+point in direction (90)
+switch costume to (cel śnieżki v)
+repeat until
+ point towards (wskaźnik myszy v)
+end
+```
+
+--- /task ---
+
+--- task ---
+
+Przetestuj swój projekt, klikając zieloną flagę. Zobacz, że śnieżka podąża za myszą, dopóki nie naciśniesz przycisku myszy.
+
+![ikona Śnieżka celująca śnieżną kulą we wskazane myszką miejsce](images/snow-mouse.png)
+
+--- /task ---
+
+--- task ---
+
+Pozwólmy również graczowi zdecydować o tym, jak potężna powinna być rzucona śnieżka. Utwórz nową zmienną o nazwie `moc`{:class="block3variables"}.
+
+[[[generic-scratch3-add-variable]]]
+
+--- /task ---
+
+--- task ---
+
+Przeciągnij twój nowy wyświetlacz zmiennych na dół sceny, w pobliżu śnieżki. Kliknij prawym przyciskiem myszy na ekranie zmiennej i kliknij przycisk 'suwak'.
+
+![zmienna zmieniona na suwak](images/snow-slider.png)
+
+--- /task ---
+
+--- task ---
+
+Dodaj kod, aby ustawić nową zmienną `moc`{:class="block3variables"} na 0 po kliknięciu flagi.
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when flag clicked
++ set [moc v] to (0)
+```
+
+--- /task ---
+
+--- task ---
+
+Teraz, gdy masz zmienną `moc`{:class="block3variables"}, możesz później zwiększyć moc śnieżki _po_ wybraniu kierunku za pomocą tego kodu:
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+repeat until
+ point towards (wskaźnik myszy v)
+end
++repeat until < not >
+ point towards (wskaźnik myszy v)
+ change [moc v] by (1)
+ wait (0.1) seconds
+end
+```
+
+Ten kod oznacza, że musisz _przytrzymać przycisk myszy_ po wybraniu kierunku, aby wybrać siłę śnieżki.
+
+--- /task ---
+
+--- task ---
+
+Przetestuj swoją śnieżkę, aby zobaczyć, czy możesz wybrać jej kąt i moc.
+
+![zmienna moc na 35 obok celu śnieżki](images/snow-test.png)
+
+--- /task ---
diff --git a/pl-PL/step_3.md b/pl-PL/step_3.md
new file mode 100644
index 0000000..da6a2cb
--- /dev/null
+++ b/pl-PL/step_3.md
@@ -0,0 +1,108 @@
+## Rzucanie śnieżką
+
+--- task ---
+
+Dodaj blok na _końcu_ swojego kodu śnieżki, by `nadać komunikat`{:class="block3control"}, że rzucasz śnieżką:
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when flag clicked
+set [moc v] to (0)
+wait (0.5) seconds
+go to x:(-200) y:(-130)
+point in direction (90)
+switch costume to (cel śnieżki v)
+repeat until
+ point towards (wskaźnik myszy v)
+end
+repeat until < not >
+ point towards (wskaźnik myszy v)
+ change [moc v] by (1)
+ wait (0.1) seconds
+end
++ broadcast (rzucać v) and wait
+```
+
+--- /task ---
+
+--- task ---
+
+Dodaj ten kod do śnieżki, aby poruszać się, aż do krawędzi sceny:
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when I receive [rzucać v]
+switch costume to (śnieżka v)
+repeat until < touching [krawędź v]? >
+ move (moc) steps
+end
+hide
+```
+
+Kod wykorzystuje zmienną `moc`{:class="block3variables"} aby decydować o tym, jak szybko się poruszać.
+
+--- /task ---
+
+--- task ---
+
+Teraz, gdy ukrywasz śnieżkę, gdy dotknie krawędzi, dodaj kod aby `pokazac`{:class="block3looks"} śnieżkę po kliknięciu flagi, _zaraz po tym_ jak śnieżka przełączy się na kostium `cel śnieżki`{:class="block3looks"}.
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when flag clicked
+set [moc v] to (0)
+wait (0.5) seconds
+go to x:(-200) y:(-130)
+point in direction (90)
+switch costume to (cel śnieżki v)
++show
+repeat until
+ point towards (wskaźnik myszy v)
+end
+repeat until < not >
+ point towards (wskaźnik myszy v)
+ change [moc v] by (1)
+ wait (0.1) seconds
+end
+broadcast (rzucać v) and wait
+```
+
+--- /task ---
+
+--- task ---
+
+Przetestuj swoją śnieżkę kilka razy. Czy porusza się pod różnymi kątami i z różnymi prędkościami?
+
+--- /task ---
+
+--- task ---
+
+Jeśli chcesz być w stanie rzucić śnieżką wiele razy, po prostu dodaj `zawsze`{:class="block3control"} wokół twojej śnieżki `kiedy kliknięnto flagę`{:class="block3events"} Kod.
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when flag clicked
++forever
+set [moc v] to (0)
+wait (0.5) seconds
+go to x:(-200) y:(-130)
+point in direction (90)
+switch costume to (cel śnieżki v)
+show
+repeat until
+ point towards (wskaźnik myszy v)
+end
+repeat until < not >
+ point towards (wskaźnik myszy v)
+ change [moc v] by (1)
+ wait (0.1) seconds
+end
+broadcast (rzucać v) and wait
+end
+```
+
+--- /task ---
diff --git a/pl-PL/step_4.md b/pl-PL/step_4.md
new file mode 100644
index 0000000..3c33728
--- /dev/null
+++ b/pl-PL/step_4.md
@@ -0,0 +1,106 @@
+## Realistyczny ruch
+
+Masz teraz śnieżkę, ale sprawmy, aby poruszała się bardziej realistycznie.
+
+--- task ---
+
+Najpierw ustawmy maksymalny poziom mocy, aby śnieżka nie mogła być rzucana zbyt mocno.
+
+W kodzie twojej śnieżnej kuli `kiedy kliknięnto flagę`{:class="block3events"}, musimy zwiększyć moc tylko wtedy, gdy jest mniejsza niż 20. Zmień kod na:
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+repeat until< not >
++ if < (moc) < [20] > then
+ change [moc v] by (1)
+ wait (0.1) seconds
+ end
+end
+```
+
+--- /task ---
+
+--- task ---
+
+Ponownie przetestuj swoją śnieżkę, a zobaczysz, że moc nigdy nie osiągnie wartości powyżej 20.
+
+--- /task ---
+
+--- task ---
+
+Teraz, gdy maksymalna moc twojej śnieżki wynosi 20, możesz ustawić tę wartość jako maksymalną wartość suwaka zmiennej. Kliknij prawym przyciskiem myszy na zmienną mocy i kliknij 'ustaw suwak min. i maks'.
+
+![min maks. zakresu suwaka](images/snow-minmax.png)
+
+
+--- /task ---
+
+--- task ---
+
+Możesz także spowolnić śnieżkę, zmniejszając nieco moc, gdy leci w powietrzu. Dodaj ten blok kodu do śnieżki `kiedy otrzymam [rzucać]`{:class="block3events"}:
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when I receive [rzucać v]
+switch costume to (śnieżka v)
+repeat until < touching [krawędź v]? >
+ move (moc) steps
++ change [moc v] by (-0.25)
+end
+hide
+```
+
+--- /task ---
+
+
+--- task ---
+
+Przetestuj ten nowy kod - czy działa zgodnie z oczekiwaniami? Możesz zauważyć, że moc zmniejsza się, i ostatecznie śnieżka porusza się do tyłu!
+
+Aby to naprawić, możesz dodać blok `jeżeli`{:class="block3control"} do twojego kodu, aby moc była obniżona tylko wtedy, gdy jest powyżej 0:
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when I receive [rzucać v]
+switch costume to (śnieżka v)
+repeat until < touching [krawędź v]? >
+ move (moc) steps
++ if < (moc) > (0) > then
+ change [moc v] by (-0.25)
+ end
+end
+hide
+```
+
+--- /task ---
+
+--- task ---
+
+Już prawie gotowe, ale musisz także dodać trochę grawitacji do śnieżki, aby spadła na ziemię. Możesz dodać grawitację, po prostu przesuwając śnieżkę w dół za pomocą tego kodu:
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when I receive [rzucać v]
+switch costume to (śnieżka v)
+repeat until < touching [krawędź v]? >
++ change y by (-5)
+ move (moc) steps
+ if < (moc) > (0) > then
+ change [moc v] by (-0.25)
+ end
+end
+hide
+```
+
+--- /task ---
+
+--- task ---
+
+Ponownie przetestuj śnieżkę i zauważysz, że śnieżka porusza się o wiele bardziej realistycznie.
+
+--- /task ---
+
diff --git a/pl-PL/step_5.md b/pl-PL/step_5.md
new file mode 100644
index 0000000..6983f59
--- /dev/null
+++ b/pl-PL/step_5.md
@@ -0,0 +1,122 @@
+## Cel
+
+Dodajmy cel dla twoich śnieżek!
+
+--- task ---
+
+Dodaj inną ikonę do projektu.
+
+![ikona celu na scenie](images/snow-deer.png)
+
+[[[generic-scratch3-sprite-from-library]]]
+
+--- /task ---
+
+--- task ---
+
+Dodaj ten kod do nowej ikony/duszka, tak, aby mówił: „Masz mnie!”, kiedy zostanie trafiony:
+
+![ikona/duszek celu](images/target-sprite.png)
+
+```blocks3
+when flag clicked
+forever
+ if < touching [śnieżka v]? > then
+ say [Masz mnie!] for (1) seconds
+ end
+end
+```
+
+--- /task ---
+
+--- task ---
+
+Przetestuj swój nowy kod.
+
+![ikona cel mówiący, masz mnie!](images/snow-hit.png)
+
+--- /task ---
+
+--- task ---
+
+Zróbmy kilka rzeczy, aby gra była trudniejsza. Najpierw poruszajmy reniferami za każdym razem, gdy gracz rzuca śnieżką.
+
+Aby to zrobić, najpierw dodaj `komunikat`{:class="block3control"} na śnieżkę, obok górnej części pętli `zawsze`{:class="block3control"}. Dzięki temu Twój renifer będzie wiedział, że wkrótce zostanie wystrzelony nowy strzał.
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when flag clicked
+forever
+set [moc v] to (0)
++broadcast (nowy strzał v)
+wait (0.5) seconds
+go to x:(-200) y:(-130)
+point in direction (90)
+switch costume to (cel śnieżki v)
+show
+repeat until
+ point towards (wskaźnik myszy v)
+end
+repeat until < not >
+ point towards (wskaźnik myszy v)
+ change [moc v] by (1)
+ wait (0.1) seconds
+end
+broadcast (rzucać v) and wait
+end
+```
+
+Gdy renifer otrzyma tę wiadomość, przenieś ją na nową losową pozycję za pomocą tego kodu:
+
+![ikona celu](images/target-sprite.png)
+
+```blocks3
+when I receive [nowy strzał v]
+set x to (pick random (0) to (200))
+```
+
+--- /task ---
+
+--- task ---
+
+Przetestuj swój projekt, rzucając kilka śnieżek. Czy Twój cel zmienia pozycję za każdym razem?
+
+--- /task ---
+
+--- task ---
+
+Możesz również utrudnić swoją grę dodając kamień przed swoją śnieżką.
+
+![ikona/duszek kamień na scenie](images/snow-rock.png)
+
+--- /task ---
+
+--- task ---
+
+Możesz teraz zmienić swój kod śnieżki, aby zatrzymać się, gdy dotknie krawędzi ekranu _lub_ gdy dotknie skały.
+
+![ikona śnieżki](images/snowball-sprite.png)
+
+```blocks3
+when I receive [rzucać v]
+switch costume to (śnieżka v)
++ repeat until << touching [krawędź v]? > or >
+ change y by (-5)
+ move (moc) steps
+ if <(moc) > [0]> then
+ change [moc v] by (-0.25)
+ end
+end
+hide
+```
+
+--- /task ---
+
+--- task ---
+
+Wreszcie, możesz utrudnić grę, zmniejszając swoją śnieżkę i renifera.
+
+![mała śnieżka i ikona celu](images/snow-small.png)
+
+--- /task ---
diff --git a/pl-PL/step_6.md b/pl-PL/step_6.md
new file mode 100644
index 0000000..5956664
--- /dev/null
+++ b/pl-PL/step_6.md
@@ -0,0 +1,12 @@
+## Wyzwanie: udoskonal swoją grę!
+Teraz, kiedy stworzyłeś podstawową grę, zobacz co możesz zrobić, aby ją ulepszyć. Oto kilka propozycji, ale możesz również korzystać z własnych pomysłów.
+
++ Dodaj zimowe tło do swojego projektu.
++ Zmień liczby w kodzie, aby śnieżka poruszała się szybciej, wyżej lub dalej
++ Zmień grafikę
++ Dodaj muzykę i efekty dźwiękowe
++ Zmień kostiumy ikon/duszków, gdy cel zostanie trafiony
++ Dodaj wynik i najwyższy wynik
++ Renifer mógłby się poruszać, aby ciężej go trafić
++ Możesz dodać płatki śniegu lub ptaki, które zatrzymają śnieżkę
++ Możesz dodać drugiego gracza, aby obaj mogli rzucać śnieżkami w renifery... lub siebie nawzajem!
diff --git a/pl-PL/step_7.md b/pl-PL/step_7.md
new file mode 100644
index 0000000..e0cbce2
--- /dev/null
+++ b/pl-PL/step_7.md
@@ -0,0 +1,15 @@
+## Co dalej?
+
+Wypróbuj te inne projekty, aby rozwinąć swoją znajomość innych języków programowania.
+
+- [O mnie](https://projects.raspberrypi.org/pl-PL/projects/about-me?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects) to świetne wprowadzenie do Pythona.
+- [Wszystkiego najlepszego z okazji urodzin](https://projects.raspberrypi.org/pl-PL/projects/happy-birthday?utm_source=pathway&utm_medium=whatnext&utm_campaign=projects) wprowadza HTML i CSS.
+
+***
+
+Ten projekt został przetłumaczony przez wolontariuszy:
+
+Damian Al-Meerabi
+Ewa Ramlo
+
+Dzięki wolontariuszom możemy dać ludziom na całym świecie szansę nauki w ich własnym języku. Możesz pomóc nam dotrzeć do większej liczby osób, zgłaszając się na ochotnika do tłumaczenia - więcej informacji na stronie [rpf.io/translate](https://rpf.io/translate).