Dobrze. Widzę, że trzeba wyjaśnić kilka spraw.
Lakonicznie odpowiadając na Pana pytanie, Skript sam w sobie nie jest obciążający dla serwera. To źle i niewydajnie napisane skrypty są powodem obciążenia serwera. A teraz pora na dłuższą odpowiedź.
1. Wiele osób piszących w Skript w nonszalancki sposób:
wykorzystuje zapis zmiennych globalnych,
tworzy ogromne pętle działające na wielu danych,
wykonuje kosztowne w zasobach serwera operacje w sposób synchroniczny, podczas gdy często istnieje możliwość wykorzystania takich dodatków jak skript-reflect (czy też SkQuery) do asynchronicznego wykonania kodu.
System zmiennych globalnych w Skript jest bardzo niewydajnie napisany, co zresztą wielokrotnie przyznawali twórcy pluginu. Niewydajność wynika z tego, że Skript każdą zmienną (globalną) zapisuje do pamięci RAM (rzecz normalna), ale również na dysku. Innymi słowy, za każdym razem gdy skrypt wykonuje efekt 'set {zmienna::globalna} to <coś>', zmiana ta jest zapisywana na dysku. W przypadku zapisu setek (a czasem tysięcy) zmiennych w jednym momencie, taka operacja staje się niezwykle kosztowna.
Trzeba również pamiętać o tym, że Skript "lubi" często przeorganizowywać plik ze zmiennymi globalnymi (variables.csv), co jest kolejnym powodem niskiej wydajności tego systemu.
W ramach ciekawostki powiem, że na pewno do niedawna (a może i do teraz, kto wie) poniższy kod był w stanie zatrzymać pracę serwera (wywalić go).
command /test:
trigger:
loop 10000 times:
set {testVariable::%loop-number%} to loop-number
W przypadku używania zmiennych lokalnych takiego ryzyka nie ma, gdyż są one zapisywane jedynie w pamięci RAM.
Dodam, że miłą alternatywą dla zmiennych globalnych może się okazać dodatek skript-yaml. Ogromną przewagą tego pluginu jest fakt, iż to skrypter decyduje kiedy dane mają być zapisane na dysku, nie Skript (czyli właściwie każdorazowo gdy zapisujemy zmienną globalną). Do momentu zapisu na dysku dane są przechowywane w pamięci RAM, a więc pod tym kątem są tak samo wydajne jak zmienne lokalne.
Wniosek? Generalnie kierujemy się zasadą: zmiennych globalnych należy używać tylko wtedy gdy nie jesteśmy w stanie rozwiązać danego problemu przy pomocy zmiennych lokalnych.
2. Część (skripterów?) przecenia możliwości Skripta i myśli, że jest on w stanie w 100% zastąpić pluginy. Wtedy zaczyna się tworzenie w nim wielkich projektów - od anticheatów, poprzez całe tryby, kończąc na skryptach obsługujących dosłownie wszystko.
Skript został stworzony w celu dodawania mało skomplikowanych mechanizmów i rzeczy na serwer gdy tworzenie osobnego pluginu jest zwyczajnie nieopłacalne. Plugin ten nie jest i nigdy nie będzie dobry do tworzenia ogromnych projektów.
Oczywiście, istnieją wielkie dzieła napisane wydajnie w Skript, jednakże jest to nie więcej niż promil podjętych prób tworzenia ich. Dlatego też odradzam takiego postępowania dopóki nie jest się absolutnie pewnym tego co się robi.
3. Na koniec jeszcze jedno. Zła reputacja Skripta bierze się w dużej mierze z ignorancji rzeszy jego użytkowników, którzy myślą, że to akurat ich skrypty są dobre. Nie, nie są. Wystarczy spojrzeć na to, że połowa (jak nie więcej) skrypterów nie potrafi posługiwać się dokumentacją, więc nie ma mowy o pisaniu dobrego (to znaczy, wydajnego i schludnego) kodu.
Myślę, że powiedziałem o wszystkich ważniejszych rzeczach. Gdyby jeszcze zrodziły się jakieś pytania, śmiało je można zadawać. Z miłą chęcią odpowiem.
Pozdrawiam.