Useful book (customizable scripts and more)


Store and use any script in Lua/Candran/Teal/MoonScript or create custom commands/events. Admins can share access to an executable code to players and to rcon. It's more practical than "Lua Compiler" mod. This mod is designed to be safe, simple and fast. Anyone can translate the mod on Crowdin. https://crowdin.com/project/factorio-mods-localization

Utilities
a month ago
1.1 - 2.0
561
Cheats

i Ability to pre-set scripts for the game

2 years ago
(updated 2 years ago)

Please add an ability to pre-set public/admin scripts for the game:

1) via export/import encoded string - import multiple (add, not replace) / export all scripts

2) add to the Startup settings tab a new text field with the encoded string of scripts - load it on a NEW game start only.
3) add button to clear all scripts and replace them with default (current 4 admin scripts)

2 years ago

main idea - to make it easy to pre-install commonly used scripts by some local gamers for all new games for LAN/Internet network

2 years ago
(updated 2 years ago)

1) Hm, it's possible... (should the mod check similarity of scripts? hm... I'll probably compress the text)
2) Welp, it seems easy, if the 1st section will be completed.
3) ~easy

At such rate, interface should be improved in order to more easily manage scripts...

2 years ago
(updated 2 years ago)

1) just add a copy of scripts on import - all from the bundle string. Users can remove them 1-by-1 and re-export all them again as a string if needed.

2) I really like this idea. I first saw this in a mod that sets the initial configuration (per a player) on the player's belt cells (at bottom center). Very helpful if you do not want to play with import-export of strings in an every new game.

2 years ago
(updated 2 years ago)

Hm, perhaps, I'll create a test version since it can be implemented differently. I should avoid loadstring etc because of security issues.

2 years ago

а в чем там проблема с безопасностью?

2 years ago
(updated 2 years ago)

loadstring и подобные функции в lua выполняет текст как код. Практически полный/любой доступ к игре может получить игрок, если сможет подсунуть код админам/моду и они, скорее всего, не заметят этого.

2 years ago
(updated 2 years ago)

я скорее думала что ты применишь encode_string (https://lua-api.factorio.com/latest/LuaGameScript.html)
чтото типа конвертнуть все скрипты в json { name: 'xxx', description: 'xxx', public: true, content:'xxx'}, потом в единую строку через функцию
и обратно чтение такое же.

я и не думала, что ты сразу хочешь выполнить скрипт (autostart?). Пусть админ загрузит строку или автозагрузит зашифрованную строку из startup настроек - он, админ, сможет же просмотреть скрипт, прежде чем он его запустит.

2 years ago
(updated 2 years ago)

Ах, ну хоть не начал ещё. Factorio весьма хорошо справляется с json, вспомнил после твоего сообщения.
У меня нет планов добавлять авто-скрипт, хотя в плане в реализации с событиями не так уж и плохая идея. (для этого есть другой мод)
Итак, экспорт: table->json
Импорт: json->table

2 years ago
(updated 2 years ago)

Enjoy the new update. (About the 3rd section, I decided to use a command instead)

2 years ago
(updated 2 years ago)

Though, maybe, I should export json data in another player setting. However, it may lead too big pile of trash data for the game.

2 years ago

нифига не понял как пользоваться:
запустил команду экспорт без параметров - появился файл json (не зашифрован)
запустил команду импорта без параметров - пишет про импорт всех скриптов, но в окошке ничего не менялось - закрыл окно, еще раз импорт, открыл - ничего не поменялось

попробовал импорт команду с 123 параметром - ошибка в консоли. Ок, думаю надо скопировать контент файла и вставить в консоль после команды
пробую снова /Ubook-import <json_content> - пишет "Max. length", и ничего не меняется...
пробую /Ubook-import "<json_content>" - с кавычками - тоже самое - max length, ничего не сработало

2 years ago
(updated 2 years ago)

Можете скинуть фото сообщения?

/Ubook-import {"public":{},"admin":[{"description":["scripts-description.reveal-gen-map"],"title":["scripts-titles.reveal-gen-map"],"code":"local player = ...\nplayer.force.chart_all()"},{"description":["scripts-description.kill-all-enemies"],"title":["scripts-titles.kill-all-enemies"],"code":"local player = ...\n    local entities = player.surface.find_entities_filtered({force=\"enemy\"})\n    for i=1, #entities do\n      entities[i].destroy()\n    end"}]}

Это должно сработать.
(Хм, я кажется ошибку сделал в одном из скриптов, исправил в новой версии)

2 years ago
(updated 2 years ago)

~

2 years ago
(updated 2 years ago)

А, есть ограничение на текст в командах

2 years ago

Через несколько часов переделаю, улучшу.

2 years ago

works. Just add commands and an export button info to the mod's brief here (the first tab). Closed

2 years ago
(updated 2 years ago)

... но я бы делала уже GUI кнопки на reset/import (потом)

2 years ago
(updated 2 years ago)

Just add commands ...

Does it worth it to open the import interface? I'll recheck stuff

2 years ago

I added and fixed /Ubook-import command.

2 years ago

я имела в виду, что все ок, но добавь описание на первую закладку тут - Information - какие команды есть для внутриигровой консоли, и что есть кнопки импорта (старые скриншоты заменить новыми)

2 years ago

Как только определюсь и не будет лень все это делать.

New response