About

Independent Contractors is a script that provides players with a variety of features to enhance their Stormworks Career and Classic Career experience.
These features include:
- Personal Money
- Lending & Debt
- Player-to-player payments
- Admin Commands Enhanced
- Vehicle Recovery
- Vehicle and Spawn Protection
- Island Purchasing & Permissions
- And more!
Link to the addon
Setup
Singleplayer/Multiplayer
- Simply select the addon and start the map.
- You should type "?savegame?" into chat frequently. It will display a message that it is not saving because it is not a dedicated server. However, it IS saving the variables necessary for this addon. Before saving the menu, make sure you use "?savegame". The "?savegame?" command is what saves money, vehicle, and island data.
Dedicated Server
- Your server should subscribe to Independent Contractors on Workshop.
- Add the playlist to the servers missions> playlist. There are many tutorials available online if you don't know how to do it. Search "Add custom playlists Stormworks dedicated server".
- You can change the save game name of your server to match the file name of Independent Contractor. This is necessary for the server's auto-save and save functions to work properly.
Modification
A set of parameters are located at the top of the script. These parameters can be modified to suit your needs. You have the option of adjusting the hospital bill cost, debt interest or starting cash. To improve compatibility, you can add additional island tiles or modified island tiles to the script. You can edit these settings for your personal or server use, but you must not re-upload the script.
Gameplay
You can join a server with $50,000 (configurable and) debt. These funds can be used to purchase vehicles or pay players. The cost of a vehicle is returned to your personal account when it is benched.
You need more money? To get more money, use "?loan ()" You will be charged interest for every 0.025% (configurable) of your current debt. To pay it back, use "?payloan amount)" A maximum loan amount of $200,000 (-configurable) is allowed. You cannot spawn vehicles if you have more than $250,000 (configurable) of debt. A loan cannot earn interest beyond $300,000. (configurable)
The "b" key may be disabled. If you are the owner of the vehicle, you can use "?bench?" to return it. This system was put in place to stop other players from working on your vehicles. I recommend saving your changes after each change or working in singleplayer if you have to work on your vehicle often. If you accidentally change something and spawn it without saving, an administrator may unlock it for your use by using "?unlock". This will allow you again to use the bkey on it. The b key will add money to the shared account and not your personal account. It is important to "?claim (amount,)" it back.
Currently, fuel or coal gantries cannot be purchased from the shared account. To add money to your shared account, use "?deposit ()". I am looking at ways to integrate this into my personal account system.
The money goes into the shared account whenever you sell fuel/coal or complete a mission.
You will not be able to receive the money if the shared account is $0! This is due to the vanilla money system's workaround. Once the money has been transferred to the shared account, you can use "?claim ()" in order to transfer the money to your personal account.
If your vehicle cannot be spawned and the money at the bottom right is not in the positives, enter "?deposit 1" to get it back into the billions. This is again a consequence for vanilla money and is a safeguard against players getting free fuel/coal because $1 billion is in the bank account.
All below are in Real Estate Mode. Unless disabled by the server settings, it is on by default.
How do you make a fortune? You might consider buying an island. First, add the island cost into the shared account using "??eposit (amount?17Y". Next, purchase the island by using "?claimisland". The teleport point for the Island is located wherever you use the command. This island is yours now. There is no way to teleport or spawn/bench vehicles there. You can add these permissions to other players by using "?setteleport",?setspawn, and "setbench". You need someone to manage the island. To add a co-owner, use "?setcoowner". This allows the player to teleport and spawn, as well as bench. They can also take and revoke permissions granted to them by other players. Fear not, co-owners can't change the permissions of the owner and cannot unclaim an island.
You need to get home. To instantly teleport home, use "?teleport island))" or the "?tp island ()" commands. To find out the name of the island's name, type "?access" into your browser. The name will usually be similar to the one on the map. For example, "Camodo" and "CoastguardTT".
Are your island visitors becoming a nuisance to you? To remove permissions, you can use "??setteleport",?setspawn",?setbench and??setcoowner again. You need to find out who has permissions. To find out the names and permissions for all islands you have access, use "?access". To find out who has permissions to an island you co-own or own, use "?islandaccess ()".
Commands
Standard Commands:
?help: Provides a list all commands.
?bank: Displays a popup that shows your current bank, debt, and shared bank.
?deposit (amount) Deposits money from your personal bank account to the shared account
?claim (amount): Claims money from your shared bank account to a personal account
?pay (Player ID) () amount) – Transfers money from your personal account into another player's account.
?loan (amount): Adds money to your personal bank account. Paying a small percentage of interest each day in-game can make it difficult to be careful. A high level of debt can prevent you from spawning new vehicles until it is below the threshold.
?payloan (amount): Pays back money on your loan.
?bench: Despawns and returns the nearest vehicle (to you). This command is only available on islands you own or have bench access.
?recover: Despawns and returns a percentage of the nearest vehicle (, if it is not owned by you). This command can be used anywhere.
?buyfuel (diesel/jetfuel) (amount) – Buys fuel for the vehicle you are currently sitting in. Warning: Sometimes, this command does not work. It is only compatible with vehicles that have a small/medium or large tank. It is not compatible with dynamic tanks.
?savegame Saves the game, and all variables in this script. This can be used in place of "?save".
Island Commands:
?teleport (island name) Teleports you on an island you own or have teleport access.
?tp (island name): Same as above, but with less typing
?access: Displays the islands to which you have teleport/spawn/bench entry.
?islandaccess (island name): Displays who has teleport/spawn/bench acces to the island. You can only view this if you have ownership/co-ownership to the island. To find the name of the island, type "?access" into the search box.
?claimisland: Claims an Island. This will make you the owner and set the teleport point at the location you are standing while you use this command. This command will only work if an island is purchased and is not the starting one.
?unclaimisland: Unclaims the island where you stand. This can only be done by the owner.
?setcoowner () () Island name) – Adds another player to the co-owner. This allows them to teleport/spawn/bench and allows them to grant and revoke access to other players. They cannot modify the permissions of the owner, or unclaim an island.
?setteleport () (Island name) – Allows the player to teleport to the island by activating the toggle.
?setspawn (player ID) ((name) – Allows the specified player to spawn vehicles on the specified island.
?setbench () player ID ((name) – Toggles permission to the player to place vehicles on the island.
Admin Commands:
?addbank () (amount – Adds money into the player's personal account.
?setbank () player ID ((amount) – Sets the money for the player's personal account.
?addsharedbank (amount): Adds money to the shared account.
?adddebt () player ID () amount) – Adds to the player's personal account.
?setdebt ((amount) player ID) – Sets the player's personal debt.
?bring (player id) Teleports the specified players to you
?goto (player id) Teleports to the specified player
?lock Locks the nearest vehicle.
?unlock unlocks the nearest vehicle.
?resetisland Unclaims the Island You Are Standing On, and Rejects All Permissions
Coming Next Update:
?addresearch (amount) Adds the specified number of research points.
?setresearch (amount): Sets research points to the specified quantity.
I hope you enjoy the Guide we share about Stormworks: Build and Rescue – How to Setup Server + Commands; if you think we forget to add or we should add more information, please let us know via commenting below! See you soon!
Stormworks: Build and Rescue: Совет (Как пользоваться командами для сервера)
![]()
Очень и очень многие люди задают вопрос :"Почему после последнего обновления мой друг не может поставить своё транспортное средство ?". Ответ, нужно читать анонс обновления. Но те кто не читает это, бегут писать на форумы что у них ничего не работает. По этому поводу и выпускается это руководство.
Начнём пожалуй с самой начальной команды "?add_auth" , это самая низкая должность на сервере то-есть "Авторизованный (Доверенный) игрок" . Такие игроки способны размещать транспорт и редактировать погоду, но не более.
Эта команда записывается в таком виде:

Вы спросите :"Что это за цифра в конце ?" , это id игрока или порядковый номер , этот номер присуждается игроку после подключения к серверу ,а узнать его можно в списке игроков нажав на кнопку "

После того как вы ввели и подтвердили данную команду (нажав "Enter") должно появится такое сообщение:

Если оно не появилось значит вы сделали что-то не так.
Эта команда может быть выполнена только в том случае когда её отдал сам создатель сервера . Эта команда имеет гораздо большей функционал относительно команды "?add_auth", так как она позволит вам авторизовать игроков (только не на частном сервере, так как это ещё не работает, но, возможно это скоро поправят), кикать игроков и банить игроков. Ещё одно примечание админы не могут забанить, кикнуть или удалить статус админа друг у друга .
Форма заполнения такая-же как и у команды "?add_auth" ,только "auth" заменяется на "admin".
Удаляет авторизацию у игрока с соответствующим id (как узнать id я писал выше).
Удаляет права администратора у игрока с соответствующим id.
Выгоняет с сервера игрока с соответствующим id.
Банит игрока на сервере соответствующим id (не работает на частном сервере, чтобы убрать бан с игрока нужно убрать его id(Steam) в конфиг файле сервера так как ).
Как открыть консоль в stormworks
Reddit and its partners use cookies and similar technologies to provide you with a better experience.
By accepting all cookies, you agree to our use of cookies to deliver and maintain our services and site, improve the quality of Reddit, personalize Reddit content and advertising, and measure the effectiveness of advertising.
By rejecting non-essential cookies, Reddit may still use certain cookies to ensure the proper functionality of our platform.
For more information, please see our Cookie Notice and our Privacy Policy .
Руководство по основам языка swLUA для начинающих
Данное руководство рассчитано на людей которые уже разобрались в логике микропроцессоров и хотят получить комплексные знания о работе LUA скриптов. Также оно может быть полезно тем кто уже умеет писать скрипты, но не понимает некоторых отдельных моментов в работе программы.
Введение
В игре Stormworks одна из самых простых и удобных систем визуального программирования(игроки называют ее логика), но в определенный момент ее может начать не хватать. Когда вам необходимо перебирать сотни чисел, сделать систему сильно зависящую от порядка выполнения операций или вывести изображение на экран, LUA может стать незаменимым инструментом. С его помощью вы можете за 1 тик просчитать баллистическую траекторию, нарисовать на экране нужное вам изображение или записать в память любой объем информации.
Не стоит ожидать, что после этого руководства вы сразу сможете решить любую задачу, программирование это практический навык который вырабатывается с опытом. Если вы приложите достаточно усердия, то обязательно сможете сделать все что захотите, не стоит считать себя глупым если в самом начале обучения у вас будут не получаются простые вещи. Через это нужно просто пройти.
Давайте для начала добавим LUA блок в контролер и откроем нашу среду разработки.
Сверху мы видим 2 вкладки. в Первой мы сейчас находимся а во второй можно найти подсказки от разработчиков.в левом нижнем углу можно проверить синтаксис и частично работоспособность а справа выход. если в коде присутствуют ошибки в строке снизу вам напишут в чем именно проблема.
И вот мы видим стандартный код. Разберем что же он делает.
- серый текст которому предшествуют два дефиса называется комментарий. Он не выполняет никаких функций и сделан только для удобства человека пишущего код.
- функции onDraw() и onTick() это те участки кода которые игра будет запускать каждый игровой тик. Что такое функция и как мы можем писать свои функции мы рассмотрим позже, а пока сойдемся на том, что в onTick() мы пишем всю логику скрипта, а в onDraw() графику.
- value = input.getNumber(1): value это переменная. = это не тоже самое что на уроках математики в школе. Здесь это называется знак присваивания. input означает, что мы получаем значение с композита на входе lua блока, getNumber говорит о том, что канал числовой, а единица это константа говорящая, что читаем мы с канала номер один. В итоге мы получаем значение с первого числового канала композита и записываем его в переменную value.
- output.setNumber(1, value * 10) это функция отправки значения на 1 композитный числовой канал, но как можно заметить, перед отправкой переменной value мы умножаем ее на 10
- w = screen.getWidth() и h = screen.getHeight() передают нам ширину и высоту экрана, и записывают их в переменные w и h.
- screen.setColor(0, 255, 0) устанавливает цвет в формате rgb которым далее будет рисовать функция.
- screen.drawCircleF(w / 2, h / 2, 30) рисует окружность в центре экрана радиусом 30. центр находится путем деления ширины и высоты на 2.
- end сообщает об окончании функции.
Все команды выполняются по порядку.
Выходит, что скрипт получает число умножает на 10 и отдает назад одновременно с этим рисуя зеленый круг в центре экрана.
Формат RGB состоит из 3 чисел каждое из которых отвечает за яркость своего цвета в итоговом. Первое чисто отвечает за красный Red, второе за зелёный Green, третье за синий Blue.
RedGreenBlue – RGB легко запомнить.
Домашнее задание:
Попробуйте самостоятельно изменить этот код так, чтобы значение на выходе делилось на 20, а круг в центре был синим.
Прочитайте вкладку Help и ознакомьтесь с функциями данными нам разработчиками.
Арифметические операции
В введении мы столкнулись с такой арифметической операцией как умножение и естественно это не единственная операция в языке.
Полный список выглядит так:
- + — сложение чисел. все просто 5 + 5 = 10 думаю с этим затруднений не будет.
- – — вычитание чисел. также как и со сложением 10 – 5 = 5.
- * — умножение чисел. и снова все привычно 5 * 5 = 25.
- / — деление. 10 / 2 = 5.
- // — целочисленное деление. это уже непривычно если 5 / 2 = 2,5 то 5 // 2 = 2. эта операция — выполняет деление и отбрасывает дробную часть.
- ^ — возведение в степень. ничего необычного 2^4 = 16.
- % (fmod) — остаток от деления. Выдает число которое остается после деления например 5 % 2 = 1, потому что 5 содержит в себе двойку 2 раза и после вычитания этих двоек остается 1. Ещё пример 25 % 10 = 5.
Все эти операции можно записывать в виде:
x = y / 2
Используя упомянутый ранее знак присваивания.
В какой-то момент перед вами может возникнуть вопрос: “А как найти корень?”
Те, кто разбираются в математике вероятно предложили x^0.5 и они правы, но есть способ лучше который позволяет выполнять, и более сложные вычисления чем просто корень.
В Stormwork LUA нам спустили с небес модуль math.
Когда вы пытаетесь обратится к нему необходимо в начале написать “math.” а далее название функции.
Например, квадратный корень можно посчитать с помощью функции math.sqrt(x).
Полный список функций можно прочитать Здесь [www.cronos.ru] .
Наравне с арифметическими существуют также и побитовые операции, но их я оставляю вам для самостоятельного изучения. Это вообще хорошая практика в первую очередь обращаться за ответами в гугл и задавать вопросы только когда у вас точно не получается найти ответ самостоятельно.
Домашнее задание:
Напишите программу получающую 4 числа (Ваши координаты по X, Ваши координаты по Y, координаты произвольной точке на карте по X, координаты произвольной точке на карте по Y) и возвращающую расстояние между этими точками
Подсказка: Используйте теорему Пифагора для расчета.
Оператор ветвления
Оператор ветвления — это вещь без которой скрипты были бы бессмысленны. Он представлен в единственном экземпляре, но при этом обладает достаточным функционалом.
В общем виде его синтаксис выглядит так:
- if в переводе значит “если” что говорит само за себя.
- условие это выражение результатом которого будет значение true – правда или false – ложь.
Для этого применяются операторы сравнения, например: >, < и ==. Двойное равно отличается от оператора присваивания тем, что это операция сравнения, и не стоит их путать, иначе получите ошибку. - then ставится после условия.
- тело выполняется в случаи если условие верно.
- end сообщает о окончании тела.
Если x больше 0, то ему присваивается значение 0.
Обратите внимание на то, что тело написано с отступом. Это называется табуляция и она позволяет не путаться в условиях когда их становится 3-4 слоя.
Это ещё не все возможности if, существуют также конструкции if-else и if-elseif.
if-else добавляет слово иначе – else и эта конструкция выглядит так:
Если условие выполняется, тогда выполняется тело 1, иначе тело 2.
if-elseif позволяет добавлять больше условий. например:
Если условие 1, тогда выполняется тело 1, а если НЕ выполняется условие 1, но выполняется условие 2, тогда тело 2.
Домашнее задание: Напишите программу которая возвращает число 1, если на входе число больше 0, или 2 в ином случаи.
Операторы сравнения и логические операторы.
В прошлом разделе мы столкнулись с оператором сравнения, поэтому самое время рассмотреть их подробнее. Их можно использовать не только в условии оператора ветвления, но и с знаком присваивания.
x = y > 0 (это выражение запишет в переменную x значение типа bool, true или false.)
После этого переменную можно использовать как самостоятельное условие для оператора if.
Вот так if x then новички часто ошибаются и пишут if x == true then это будет работать, но лучше так не делать. Если вы хотите выполнить условия в случаи, если x – ложно, то достаточно будет написать if not x then. В данном выражении not — это логический оператор, но вернемся к ним чуть-чуть позже и рассмотрим для начала все операторы сравнения:
- < меньше. возвращает истину если в (x < y) x меньше чем y.
- > больше. тоже что и < только наоборот.
- <= меньше или равно. Тоже самое, что и < только оно вернет истину ещё и в случаи когда x = y.
- >= больше или ровно. Тоже, что и <= только наоборот.
- == равно. Вернет истину если x=y.
Далее возникает вопрос: “А как добавить больше чем 1 условие?”. Тут на помощь нам приходят логические операторы. Например, если нам необходимо чтобы x был больше 0 и меньше 5.
В самой задаче есть подсказка в виде предлога “И” на английском, это будет and, поэтому выражение будет иметь вид: x > 0 and x < 5 зная английский вы должны очень быстро запомнить все операторы, вот их полный список:
-
or (ИЛИ): если хоть с одной из сторон оператора true, то на выходе тоже true