雨云服务器搭建异星工厂服务器

莱莱  金牌会员 | 2024-8-21 00:04:04 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 573|帖子 573|积分 1719

雨云服务器搭建异星工厂服务器

概况

想必玩异星工厂的大家都熟悉吧,在客户端开服的往往都需要内网穿透,大概是需要公网ip,有时内网穿透还极其不稳定,要加载很久。
今天我像大家演示在linux服务器上搭建异星工厂服务器教程
准备工作

————————————————
1.一台服务器(带公网大概是NAT服务器 注意:必须是支持udp协议的服务器)
2.异星工厂服务端(在异星工厂官网下载,只要注册即可下载)
3.异星工厂客户端(用于游玩,这个无所谓,今天服务端才是主角)
4.一颗没有被吃掉的脑子(这个重要)
5.一双没有残废的时候(这个没有可以用脚)
介绍

————————————————
异星工厂是一款关于采矿,规划并建立工厂,研发科技,主动生产以及与外星生物战斗的游戏。
你在一场失败的太空移民行动中幸存了下来,却发现自己孤身一人地降落在一个充满危险生物的星球表面。除了脚下的石头和矿藏你空空如也,只能从头开始,用手砍树、挖矿,并一点一点建造你的工厂和流水线,从头开始生产出须要的装备和防御。很快你就能发展出大型的工厂,有着大片的太阳能板,可以举行石油的处置惩罚,还能管理工厂的建立和物流呆板人,和你的生产所需要的别的东西。规划计划高效流水线的同时,你还得掩护好工厂和你自己,那些丧心病狂的虫群会不顾一切地想要摧毁你辛苦建立的流水线。
服务端协议

————————————————
服务端与客户端的毗连采用的是UDP的毗连协议。
UDP是什么?

UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI参考模子中的传输层协议,它是一种无毗连的传输层协议,提供面向事件的简单不可靠信息传送服务。
UDP的正式规范是IETF RFC768。UDP在IP报文的协议号是17。
 

在OSI模子中,UDP在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包举行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完备到达的。UDP用来支持那些需要在盘算机之间传输数据的网络应用。包括网络视频集会系统在内的浩繁的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了许多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍旧不失为一项非常实用和可行的网络传输层协议。
与所熟知的 TCP(传输控制协议)协议一样,UDP 协议直接位于 IP(网际协议)协议
的顶层。根据 OSI(开放系统互连)参考模子,UDP 和 TCP 都属于传输层协议。 UDP 协议
的重要作用是将网络数据流量压缩成数据包的情势。一个典范的数据包就是一个二进制数据
的传输单位。每一个数据包的前 8 个字节用来包罗报头信息,剩余字节则用来包罗具体的传
输数据。
进入正题

服务器这里推荐雨云服务器,价格实惠性能稳定,老厂子可信度巨高。
我们先注册一个雨云账号,通过下方链接注册登录的可以享受一定优惠。
雨云 - 老一代云服务提供商欢迎来到以用户体验为优先的雨云,我们提供稳定高速的国际假造主机,云服务器产品,强大的功能,高服从的客户支持,简洁易用的面板,值得您的信任
https://www.rainyun.com/MTE1NDIz_我们来到主页

 三种服务器都是可以的,我这里选择的云服务器,游戏云重要是我的世界吧,一些以java为环境的游戏服务端推荐使用。

游戏云的服务器上图可知,VPS服务器适合广众游戏,MCSM面板适合以java为环境的服务端文件,比如我的世界,像素工厂。
VPS服务器和云服务器区别就是性能和宽带以及性能方面的区别,固然假如你想也可以买游戏云服务器搭建网站也是可以的,资本可能会高(富二代,以及高性能需求除外)。
 ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​上图为云服务器,性能好,性价比高,稳定,适合建站,小型游戏大概中大型游戏还是可以的,重要用来建站,宽带可能不高(有些服务器除外)。

上图为独立机,宽带高,配置高,硬盘大,适合搭建云盘,大概文件管理器之类的应用,假如说是国内机还是可以考虑的。
————————————————————
综上所述,VPS服务器及MCSM面板是最适合用来搭建游戏服务器的,这两者相比VPS更胜一筹(在不消java环境的情况下)。
——————————
系统方面

系统方面这里建议Ubuntu18及以上,真的有坑,由于系统的不同,所以说有些环境也不同,Ubuntu及以上是最适合搭建异星工厂的服务器的(都是教训)。
服务端文件下载

注册异星工厂官网账号(有账号的可以跳过)

我们进入异星工厂官网:异星工厂官网直达
我们要先注册账号,账号好解决

在箭头位置注册

填写完成后,点击log in即可

 我们点击下面链接:
Download | Factorio
进入页面后

 点击这个无头企鹅,下载即可,下载速率可能较慢耐烦等候。
文件传到服务器

文件下载好后,毗连服务器,将文件传输到服务器里
我这里直接重新在win10里解压打包了一遍,换成了zip格式的解压包。
目的是方便服务器操作。
我这里把服务端文件上传到了/home/ubuntu文件夹。

然后我们解压
  1. 安装unzip
  2. apt install unzip
  3. unzip factorio.zip
  4. #也可以使用tar,适合不修改文件后缀的小伙伴使用。
  5. tar -zvxf factorio.tar.xz
复制代码

这样即可

 可以看到已经有了
我进入
  1. cd factorio
复制代码

然后给与实行文件权限
  1. chmod 777 bin/x64/factorio
复制代码

 然后到配置文件的文件夹:/home/ubuntu/factorio/data
 

修改这个文件夹名字,修改为server-settings.json(配置文件修改放在末了了)
此步调可以通过下令实现
  1. cd data
  2. mv server-settings.example.json server-settings.json
复制代码
这样即可,回到factorio文件夹
  1. cd .. # 回到上级目录
复制代码
启动服务器和配置

我们先创建一个存档
  1. ./bin/x64/factorio --create ./saves/存档名字(建议使用英文).zip
复制代码
然后稍等片刻

 这样即可
然后我们运行
  1. bin/x64/factorio --config config/config.ini --port 34197 --start-server saves/2024.8.15.9.36.zip --server-settings data/server-settings.json
  2. # --start-server saves/你的存档名.zip
  3. # --port 34197 启动的端口
  4. # --server-settings data/server-settings.json配置文件路径
复制代码
运行此下令启动服务器

 没有出现输入框就是运行成功了
——————————————————————
配置文件

通例选项  -h, --帮助体现帮助--版本体现版本信息-v, --详细启用详细日记记载-c, --config 路径要使用的配置文件--no-log-rotation不轮换日记文件--mod-directory 路径要使用的 Mod 目次--check-unused-prototype-data为所有未访问的原型值打印告诫。mod 作者注意事项:假如一个条目未使用,并且是一个包罗键/值对“ignore”和值“true”的表,则整个条目将被忽略。--executable-path 路径覆盖主动检测的__PATH__executable。通常不需要,除非在非常奇怪的系统上。 运行选项  -s, --map2scenario 参数映射到方案转换-m, --scenario2map 参数方案到舆图的转换--apply-update 参数立刻应用更新包--创建文件创建新舆图--map-gen-settings 文件用于 --create、--start-server-load-scenario 或 --generate-map-preview 的舆图生成设置。见 data/map-gen-settings.example.json--map-gen-seed 种子用于 --create、--start-server-load-scenario 或 --generate-map-preview 的舆图生成种子。将覆盖映射生成设置中指定的种子--map-gen-seed-max 种子与 --generate-map-preview 一起使用的舆图生成种子,以在从 map-gen-seed 到 map-gen-seed-max 的时间隔断内使用每秒种子生成多个预览。--map-settings 文件用于 --create 或 --start-server-load-scenario 的映射设置。参见 data/base/prototypes/map-settings.lua--预设参数要使用的舆图生成预设的名称。--generate-map-preview 路径生成舆图的预览图像ATH 应命名 PNG 文件或以“/”或“\”结尾以指示目次。--generate-map-preview-random COUNT使用 --generate-map-preview 使用随机种子生成的舆图数量。--map-preview-size 比例尺舆图预览的巨细(以像素为单位)(默认值:1024)--map-preview-scale 比例舆图预览的比例(米/像素)(默认值:1)--map-preview-偏移量 X,Y舆图中心的偏移量,以米为单位(默认值:0,0)--noise-outputs 标签,标签...指示要输出的噪声步调的哪些变量--slope-shading SHADEAMOUNT将高程着色应用于舆图预览--slope-shade-property SHADEPROP要应用坡度着色的属性(默认值:高程)--report-quantity 原型,...生成舆图预览时,陈诉命名实体原型的近似数量--threads 线程计数生成舆图预览时要使用的线程数--disable-migration-window禁用在打开包罗迁移内容的存档时体现的 gui--instrument-mod用于启用仪器模式的模块名称--start-server 文件启动多人游戏服务器--start-server-load-scenario [MOD/]名称启动多人游戏服务器并加载指定的场景。在给定的模组内寻找该场景。假如未给出 mod,则在顶级 scenarios 目次中查找它。--start-server-load-latest启动多人游戏服务器并加载最新的可用存档--until-tick 滴答运行生存,直到给定的舆图刻度--基准文件加载、生存和运行基准测试--benchmark-ticks N基准测试的即时报价数量。默认值为 1000--benchmark-运行 N每运行一次即时报价的数量,舆图将在每次运行后重新加载。默认值为 1--benchmark-详细计时以逗号分隔的更新计时列表,以输出每个价格变动。此处答应使用“all”、“timestamp”以及在debug show-time-usage视图的“Update”部门中看到的所有其他值。空字符串禁用了详细的基准测试。计时以纳秒为单位返回。--基准消毒仅输出最终的基准测试结果--benchmark-忽略-暂停假如游戏在生存时已暂停,则游戏将暂停。默认情况下,当基准测试开始时,游戏是未暂停的。--output-perf-stats 文件应将渲染性能统计信息度量生存到的文件的路径。特别标签 {api}、{hw}、{time} 和 {tag} 将被替换。--dump-data将data.raw作为 JSON 转储到脚本输出文件夹并退出。--dump-icon-sprites将所有图标精灵作为 PNG 文件转储到脚本输出文件夹并退出。--dump-prototype-locale将所有原型名称和形貌(假如它们具有有效值)转储到脚本输出文件夹并退出。--mp-connect 地址启动异星工厂并毗连到地址--password 暗码使用 MP-Connect 时要使用的暗码(假如有)--重假如带有图形的单人游戏(重度模式与观察不同步有关,请参阅去同步#Using_heavy_mode_command)--load-game 文件启动异星工厂并在单人游戏中加载游戏--load-scenario [MOD/]名称启动异星工厂并在单人游戏中加载指定的场景。在给定的模组内寻找该场景。假如未给出 mod,则在顶级 scenarios 目次中查找它。--benchmark-graphics 文件加载、生存并使用图形运行它,以像正常游戏一样举行基准刻度、刻度数--benchmark-frame 文件在不更新游戏的情况下加载、生存和基准测试单帧图形渲染(准备 + 渲染)--force-opengl使用 OpenGL 举行渲染(仅限 Windows)--force-d3d使用 Direct3D 举行渲染(仅限 Windows)--d3d-adapter ID适配器,应用于初始化 Direct3D(仅限 Windows)--d3d-feature-level覆盖功能级别 (11、10.1、10)(仅限 Windows)--dxgi-blit-modelforce Blit 演示模式(仅限 Windows)--audio-driverdefault = sdl = SDL 的 WASAPI 驱动步调 (windows)/SDL 的 PulseAudio 或 ALSA 驱动步调 (linux)/SDL 的 CoreAudio 驱动步调 (mac);allegro = Allegro 的 DirectSound8 驱动步调 (windows)/Allegro 的 PulseAudio、ALSA 或 OSS 驱动步调 (linux)/Allegro 的 OpenAL 驱动步调 (mac);allegro-via-sdl = 带有 SDL WASAPI 驱动步调的 Allegro 混音器 (Windows)/不支持 (linux + mac)--debug-graphics启用图形 API 的调试层。假如使用 DirectX,则需要安装 DirectX SDK 才能正常工作。--全屏布尔值以窗口模式启动游戏(生存到配置)--max-texture-size N游戏可以使用的最大纹理巨细(已生存到配置中)。应为大于 2048 的 2 次方--图形质量参数接受的值: high, normal, low, very-low。“低”和“非常低”已弃用,并已迁移到正常状态。--video-memory-usage 参数接受的值: All, high, medium, low--force-graphics-preset 参数接受的值: very-low, low, mac-with-low-ram, medium-with-low-vram, medium, high, very-high, extreme--gfx-安全模式将某些图形设置重置为适用于大多数配置的值--低 vram未放入 Sprite Atlas 的 Sprite 不会被分配为纹理对象--着色启用/禁用着色器后处置惩罚(生存到配置)--禁用音频禁用音频。重要是为了在开发过程中更快地启动。--window-size 参数所需的窗口分辨率。例如,“1680x1050”。或“最大化”--单线程加载禁止在多个线程中加载精灵。--cache-sprite-atlas 布尔值启用/禁用精灵图集缓存。--nogamepad禁用游戏手柄(控制器)支持 服务器选项  --端口 N要使用的网络端口--绑定地址[ ORT]要绑定到的 IP 地址(以及可选的端口)--rcon-端口 N用于 RCON 的端口--rcon-bind 地址:端口用于 RCON 的 IP 地址和端口--rcon-password 暗码RCON的暗码--server-settings 文件包罗服务器设置的文件的路径。见 data/server-settings.example.json--use-authserver-bans 布尔值确认毗连的玩家未被禁止举行多人游戏,并通知 Factorio.com 有关禁止/取消禁止下令的信息。--use-server-whitelist 布尔值假如应该使用白名单。--server-whitelist 文件包罗服务器白名单的文件的路径。--server-banlist 文件包罗服务器禁止列表的文件的路径。--server-adminlist 文件包罗服务器 adminlist 的文件路径。--console-log 文件将存储服务器日记副本的文件路径--server-id 文件存储或读取服务器 ID 的路径  
多人游戏

  1. --start-server SAVE
复制代码
将启动无头(专用)服务器,没有 GUI。
  1. --mp-connect ADDRESS
复制代码
ADDRESS 是远程主机的 IP:端口。端口是可选的。 例子:
  1. ./factorio --mp-connect 192.168.1.101
  2. ./factorio --mp-connect 192.168.1.101:2345
复制代码
如上所述,可以通过在地址中将端口号放在冒号后来指定端口。
从自界说设置创建舆图

有时,使用存储在 JSON 文件中的舆图和/或舆图生成器设置来创建新游戏会很有效,而不是通过游戏内的舆图设置屏幕。 其中一个原因是,通过直接编辑设置,可以将设置在通常可从 GUI 得到的范围之外。
为此,异星工厂从下令行运行,并且需要一个包罗舆图生成器设置的 JSON 文件和一个包罗舆图设置(假如自界说它们)的 JSON 文件。
自界说生成器设置示例:
  1. {
  2.     "terrain_segmentation": 0.5,
  3.     "water": "2",
  4.     "width": 0,
  5.     "height": 0,
  6.     "starting_area": "normal",
  7.     "peaceful_mode": false,
  8.     "autoplace_controls":
  9.     {
  10.         "coal": {"frequency": 1, "size": 2, "richness": 0.5},
  11.         "copper-ore": {"frequency": "low", "size": "normal", "richness": "high"},
  12.         "crude-oil": {"frequency": "normal", "size": "normal", "richness": "normal"},
  13.         "enemy-base": {"frequency": "normal", "size": "normal", "richness": "normal"},
  14.         "iron-ore": {"frequency": "normal", "size": "normal", "richness": "normal"},
  15.         "stone": {"frequency": "normal", "size": 0, "richness": "normal"},
  16.         "uranium-ore": {"frequency": "normal", "size": "none", "richness": "normal"}
  17.     },
  18.     "cliff_settings":
  19.     {
  20.         "name": "cliff",               
  21.         "cliff_elevation_0": 30,        
  22.         "cliff_elevation_interval": 20,
  23.         "richness": 1                  
  24.     },
  25.     "property_expression_names":
  26.     {
  27.         "elevation": "0_16-elevation",
  28.         "temperature": "35"
  29.     },
  30.    
  31.     "seed": null
  32. }
复制代码
请注意,这与可从 Lua 修改的 MapGenSettings 格式类似。文件中的所有内容都是可选的。
创建自界说生存:
  1. "C:\Program Files\Factorio\bin\x64\Factorio.exe" --create stuff-seed123.zip --map-gen-settings map-gen-settings.json --map-gen-seed 123
复制代码
生成舆图预览:
  1. "C:\Program Files\Factorio\bin\x64\Factorio.exe" --generate-map-preview preview-seed123.png --map-gen-settings map-gen-settings.json --map-gen-seed 123
复制代码
从映射互换字符串创建 JSON 文件

从已知的映射互换字符串创建初始 JSON 文件,而不是从头开始创建它们,这可能很有效。要将舆图互换字符串转换为 JSON,请打开游戏并使用舆图互换字符串运行以下下令:
  1. /c game.write_file('map.txt', game.table_to_json(game.parse_map_exchange_string("<your exchange string here>")))
复制代码
然后打开用户数据目次中的 script_output 文件夹并打开 map.txt - 它看起来像这样:
  1. {"map_settings":{ ...<MAP_SETTINGS> ... },"map_gen_settings":{ ...<MAP_GEN_SETTINGS>... }}
复制代码
复制 { ...<MAP_SETTINGS> ... }部门复制到所需位置的名为“map-settings.json”的新文件中。复制 { ...<MAP_GEN_SETTINGS> ... }部门添加到所需位置的名为“map-gen-settings.json”的新文件中。
——————————————————
使用控制台

可以使用键 () 切换控制台体现。这是位于密钥左侧的密钥,位于上方。GRAVE`1Tab
您可以通过设置菜单→控件→切换谈天(和 Lua 控制台)来自界说键。 当控制台打开时,您会在屏幕底部看到一个闪灼的光标;输入您的消息或下令,然后按返回以发送它(这也将关闭控制台)。 有关消息和下令前缀的文档可在此页面下方找到。
控制台支持富文本标签。这些标签可用于共享蓝图、在谈天中标志舆图位置或向舆图标志和火车站添加图标。按住 Ctrl + Alt 键并单击舆图或地面将主动插入 GPS 标签并将其发布到控制台中。在控制台打开的情况下按住 Shift 键单击大多数内容将在控制台中插入该事物的标签。
当控制台关闭时,只会体现最新的消息/下令,但它们会逐渐消失(打开控制台将立刻重新体现所有近来的消息)。 请注意,默认情况下,所有已实行的下令都对所有效户可见。可以通过设置菜单→界面→谈天消息延长来更改淡出时间。
可以使用 /clear 下令扫除控制台。
使用 和 键滚动浏览控制台历史记载。该键提供关于下令、选项和玩家名称的智能代码完成。↑↓Tab
普通下令

下令例形貌仅限管理员/alerts <启用/禁用/静音/取消静音> <警报>/alerts 禁用turret_fire启用、禁用、静音或取消静音给定的警报范例。可用警报:entity_destroyed、entity_under_attack、not_enough_construction_robots、no_material_for_construction、not_enough_repair包、turret_fire、自界说、no_storage、train_out_of_fuel fluid_mixing。不/清楚/清楚扫除控制台。不/color <color>/颜色 20 255 255更改颜色。可以是预界说的颜色之一,也可以是“# # #”格式的 RGB 值。可选颜色:默认、赤色、绿色、蓝色、橙色、黄色、粉赤色、紫色、白色、黑色、灰色、棕色、青色、酸性。不/enable-research-queue/enable-research-queue启用研究队列。是的/演化/演化打印有关外星进化因子的信息。不/help [下令]/帮助打印可用下令的列表,可选参数可以指定应形貌的下令。不/h [下令]/小时与 /help 类似。不/mute-programmable-speaker <静音/取消静音> <local/everyone>/mute-programmable-speaker 静音当地静音或取消静音由可编程扬声器创建的全局声音。使用“local”仅将当地客户端静音。管理员可以使用“everyone”将服务器上每个人的声音静音。不/perf-avg-frames <数量>/perf-avg-帧 100用于平均性能计数器的刻度/更新数。默认值为 100。建议使用 5-10 值以实现快速收敛,但数字抖动会更快。不/权限/权限打开权限 GUI。是的/permissions <action> <parameters>/permissions add-player DeveloperGroup kovarex可用操作包括 add-player <group> <player>、create-group <name>、delete-group <group>、edit-group <group> <input_action> <true/false>、get-player-group <player>、remove-player <group> <player>、rename-group <group> <new_name> 和 reset是的/重置提示/重置提示重置提示和本领的状态,就像游戏刚刚初次启动一样。不/screenshot [X 分辨率] [Y 分辨率] [缩放]/截图在隐藏 GUI 的情况下截取屏幕截图,以播放器为中心。它生存在用户数据目次的“script-output”子文件夹中。分辨率是可选的,默以为当前窗口巨细。缩放是可选的,默以为 1。不/种子/种子打印起始舆图种子。不/时间/时间打印有关舆图的年龄的信息。不/toggle-action-logging/toggle-action-logging切换记载游戏实行的所有输入操作。此值在游戏重启之间不会保留,只会影响多人游戏会话中的当地游戏。是的/切换重模式/切换重模式用于观察不同步。会减慢游戏速率并使多人游戏无法玩。是的/解锁快捷键/解锁快捷键解锁所有快捷条项,包括蓝图字符串导入、复制和粘贴、解构和升级规划器。不/解锁提示/解锁提示解锁所有提示和本领条目。不/版本/版本打印当前游戏版本。不 多人游戏下令

下令例形貌仅限管理员<留言>您好团队!不以 Title 开头的控制台输入将体现为谈天消息发送给您的团队。/不/管理/管理打开播放器管理 GUI。是的/admins/admins打印游戏管理员列表。不/ban <player> <reason>/ban xTROLLx 向基地投掷手榴弹禁止指定的玩家。是的/禁止/禁止打印被禁止的玩家列表。不/banlist <添加/删除/获取/扫除> <player>/banlist 获取在封禁名单中添加或移除玩家。与 /ban 或 /unban 类似。不/配置/配置打开服务器配置 GUI。是的/config <get/set> <option> <value>/config 设置暗码 hunter2获取或设置各种多人游戏设置。可用的配置包括:afk-auto-kick、allow-commands、allow-debug-settings、autosave-interval、autosave-only-on-server、ignore-player-limit-for-returning-players、max-players、max-upload-speed、only-admins-can-pause、password、require-user-verification、visibility-lan、visibility-public。选项 afk-auto-kick 和 autosave-interval 的单位以分钟为单位。是的/delete-blueprint-library <播放器>/delete-blueprint-library 大家确认从生存文件中删除给定离线播放器的蓝图库存储。输入“大家确认”以删除所有离线播放器的存储。是的/降级 <player>/降级 AzureDiamond将玩家从管理员中移除。是的/ignore <player>/忽略 Cthon98制止谈天体现来自此播放器的消息。管理员消息仍会体现。不/忽略/忽略打印被忽略的玩家的列表。不/kick <player> <reason>/kick xTROLLx 向基地投掷手榴弹踢指定的玩家。是的/mute <player>/mute Cthon98制止玩家在谈天中说任何话。是的/静音/静音所有被静音的玩家(不能在谈天中攀谈)。不/open <player>/打开 AzureDiamond打开其他玩家的物品栏。是的/o <播放器>/o AzureDiamond与 /open 类似。是的/players [在线/o/count/c]/球员打印游戏中的玩家列表。(参数 online/o,它只打印在线的玩家,count/c 只打印 count)不/p [在线/o/计数/c]/p o c与 /players 类似。不/提升<播放器>/推广 AzureDiamond将玩家提升为管理员。是的/purge <播放器>/扫除 Cthon98从谈天记载中扫除此播放器的所有消息。是的/reply <留言>/复兴哦,真的吗?复兴末了一位对你耳语的玩家。不/r <消息>/r哦,真的吗?与 /reply 类似。不/服务器生存/服务器生存在多人游戏中将游戏生存在服务器上。是的/shout <留言>/shout 你好世界!向所有玩家发送消息,包括其他权势。不/s <消息>/s 你好,世界!与 /shout 类似。不/swap-players <player> [player]/swap-players AzureDiamond将您的脚色与给定玩家的脚色互换,大概假如有两个玩家,则互换两个玩家的脚色。是的/解禁 <player>/取消封禁 xTROLLx取消对指定玩家的封禁。是的/unignore <player>/unignore Cthon98答应谈天体现来自此播放器的消息。不/unmute <player>/取消隐藏 Cthon98答应玩家再次在谈天中攀谈。是的/whisper <player> <message>/whisper AzureDiamond,这就是我所看到的向指定的播放器发送消息。不/w <player> <message>/w AzureDiamond,这就是我所看到的与 /whisper 类似。不/whitelist <添加/删除/获取/扫除> [播放器]/whitelist 获取在白名单中添加或删除玩家,只有列入白名单的玩家才能加入游戏。使用“get”打印所有列入白名单的玩家的列表时,不要为“player”输入任何内容。空的白名单将禁用答应任何人加入的白名单功能。不 编写脚本和作弊下令

下令形貌/作弊 <全部>研究所有技能并启用作弊模式。使用“全部”选项还可以为玩家提供一些额外的项目。/command <command>实行 Lua 下令(假如答应)。/c <下令>实行 Lua 下令(假如答应)。/编辑 器切换舆图编辑器。/measured-command <下令>实行 Lua 下令(假如答应)并丈量它所花费的时间。/mc <下令>实行 Lua 下令(假如答应)并丈量它所花费的时间。/silent-command <下令>实行 Lua 下令(假如答应),而不将其打印到控制台。/sc <下令>实行 Lua 下令(假如答应),而不将其打印到控制台。 这是一个非常强大的功能,它也答应作弊,因此,一旦您使用脚本下令,成就将被永久禁用以生存。
根本示例脚本

将其用作盘算器

  1. /c game.player.print(1234*5678)
复制代码
缩放超出正常范围

请注意,缩小得太远可能会导致性能降落。小心。
  1. /c game.player.zoom=0.1
复制代码
挖矿速率更快

  1. /c game.player.force.manual_mining_speed_modifier=1000
复制代码
制作速率更快

  1. /c game.player.force.manual_crafting_speed_modifier=1000
复制代码
解锁和研究所有技能

  1. /c game.player.force.research_all_technologies()
复制代码
使用下一节中的下令撤消此操作。
注意:可以使用舆图编辑器通过单击技能 GUI 上的“开始研究”按钮来研究特定技能。
取消研究所有技能

这不会重置手动应用的奖金
  1. /c for _, tech in pairs(game.player.force.technologies) do
  2.         tech.researched=false
  3. end
复制代码
注意:通过单击技能 GUI 上的“取消研究”按钮,可以使用舆图编辑器对特定技能举行未研究。
重置你的队伍

这将重置您的队伍的所有数据,包括击杀和生产统计数据、技能、奖励和图表状态。
  1. /c game.player.force.reset()
复制代码
始终体现轨道块可视化

永久体现轨道块可视化结果,而不是仅在持有轨道信号时体现。通过将 true 替换为 false 来禁用。
  1. /c game.player.game_view_settings.show_rail_block_visualisation = true
复制代码
将所有列车设置为主动模式

将所有列车设置为主动模式 - 例如,在使用蓝图构建它们之后。
  1. /c for key,ent in pairs (game.player.surface.find_entities_filtered{name="locomotive"}) do
  2.     ent.train.manual_mode = false
  3. end
复制代码
库存操作脚本

作弊模式

答应无限的自由制作。通过将 true 替换为 false 来禁用。
  1. /c game.player.cheat_mode=true
复制代码
加注资源(加注油、铁等)

在游戏中将光标悬停在资源图块上时:
  1. /c game.player.selected.amount=7500
复制代码
大概,您可以使用以下下令重新添补舆图中的所有资源。将 ore.amount 更改为所需值。
  1. /c surface = game.player.surface
  2. for _, ore in pairs(surface.find_entities_filtered({type="resource"})) do
  3.     ore.amount = 10000
  4. end
复制代码
将物品添加到玩家的物品栏

用所需物品的内部名称替换铁板。
  1. /c game.player.insert{name="iron-plate", count=100}
复制代码
例如,这里有一堆神模式能源系统接口:
  1. /c game.player.insert{name="electric-energy-interface"}
复制代码
有几种神模式物品可供选择:


  • infinity-chest
  • infinity-pipe
  • electric-energy-interface
  • heat-interface
用设备和一些构筑工具添加强大的盔甲:
  1. /c        local player = game.player
  2. player.insert{name="power-armor-mk2", count = 1}
  3. local p_armor = player.get_inventory(5)[1].grid
  4.         p_armor.put({name = "fusion-reactor-equipment"})
  5.         p_armor.put({name = "fusion-reactor-equipment"})
  6.         p_armor.put({name = "fusion-reactor-equipment"})
  7.         p_armor.put({name = "exoskeleton-equipment"})
  8.         p_armor.put({name = "exoskeleton-equipment"})
  9.         p_armor.put({name = "exoskeleton-equipment"})
  10.         p_armor.put({name = "exoskeleton-equipment"})
  11.         p_armor.put({name = "energy-shield-mk2-equipment"})
  12.         p_armor.put({name = "energy-shield-mk2-equipment"})
  13.         p_armor.put({name = "personal-roboport-mk2-equipment"})
  14.         p_armor.put({name = "night-vision-equipment"})
  15.         p_armor.put({name = "battery-mk2-equipment"})
  16.         p_armor.put({name = "battery-mk2-equipment"})
  17. player.insert{name="construction-robot", count = 25}
复制代码
增加玩家库存槽位

为您的整个队伍提供 100 个额外的额外库存槽。由 Toolbelt (研究) 使用。
  1. /c game.player.force.character_inventory_slots_bonus=100
复制代码
世界利用脚本

体现玩家四周的舆图

体现玩家四周的舆图,类似于雷达。
  1. /c local radius=150
  2. game.player.force.chart(game.player.surface, {{game.player.position.x-radius, game.player.position.y-radius}, {game.player.position.x+radius, game.player.position.y+radius}})
复制代码
或从起始位置开始
  1. /c local radius=150
  2. game.player.force.chart(game.player.surface, {{x = -radius, y = -radius}, {x = radius, y = radius}})
复制代码
将 150 更改为所需的半径,较高的值需要更长的时间。
隐藏体现的舆图

隐藏所有体现的块,倒置的舆图体现。
  1. /c local surface = game.player.surface
  2. local force = game.player.force
  3. for chunk in surface.get_chunks() do
  4.   force.unchart_chunk({x = chunk.x, y = chunk.y}, surface)
  5. end
复制代码
体现所有生成的舆图

将所有生成的舆图归还给玩家的团队。
  1. /c game.player.force.chart_all()
复制代码
删除区块

假如体现舆图的大部门内容,则会增加生存文件的巨细。以下下令取消当前排队等候生成的所有块的生成,并删除 0,0 左右的 32 个块半径之外的块。请注意,假如这些块上有玩家实体,这将删除玩家实体。
  1. /c local surface = game.player.surface;
  2. game.player.force.cancel_charting(surface);
  3. local chunk_radius = 32;
  4. for chunk in surface.get_chunks() do
  5.   if (chunk.x < -chunk_radius or chunk.x > chunk_radius or chunk.y < -chunk_radius or chunk.y > chunk_radius) then
  6.     surface.delete_chunk(chunk)
  7.   end
  8. end
复制代码
删除未公开的块

此下令将删除播放器未体现的块。可以在下令后用于隐藏体现的舆图,以删除雷达未覆盖的块。
  1. /c local surface = game.player.surface
  2. local force = game.player.force
  3. for chunk in surface.get_chunks() do
  4.   if not force.is_chunk_charted(surface, chunk) then
  5.     surface.delete_chunk(chunk)
  6.   end
  7. end
复制代码
关闭夜间

使永恒的白昼成为可能。
  1. /c game.player.surface.always_day=true
复制代码
更改游戏速率

0.5 为半速,1 为默认,2 为双速,以此类推。最小值为 0.01。这可以用于许多事变,例如当您知道您必须等候很长时间才能完成某些事变时。增加会降低性能,要小心。
  1. /c game.speed=X
复制代码
冻结时间

停止时间的推进。假如将“true”替换为“false”,则解冻它。
  1. /c game.player.surface.freeze_daytime=true
复制代码
去除所有污染

  1. /c game.player.surface.clear_pollution()
复制代码
完全关闭污染

  1. /c for _, surface in pairs(game.surfaces) do
  2.   surface.clear_pollution()
  3. end
  4. game.map_settings.pollution.enabled = false
复制代码
增加大量污染

  1. /c game.player.surface.pollute(game.player.position, 1000000)
复制代码
演讲者在哪里,谁放置了他们

  1. /c local speakers = game.player.surface.find_entities_filtered{force = game.player.force, type="programmable-speaker"}
  2. for key, speaker in pairs(speakers) do
  3.     game.player.print(speaker.last_user.name .. " placed a speaker at " .. speaker.gps_tag)
  4. end
复制代码
禁用你的队伍的友军器力

  1. /c game.player.force.friendly_fire = false
复制代码
添加新的资源补丁

这将创建一个新的 11×11 资源块,以玩家脚色为中心,其中地面不是水。 它创建的斑块是完全方形的,但它随机化了类似于自然生成的量,边缘的矿石较少,中心矿石较多。 默认数字会导致一个含有 2500-3000 矿石的斑块。
假如您想要更大的补丁,请将“当地巨细 = 5”更改为更大的数字。 更大的斑块将拥有成倍增加的矿石。 不建议输入大于 30 的数字。
假如您想要更丰富的补丁,请将“当地密度 = 10”更改为更大的数字。 输入一个非常大的数字应该不会造成任何伤害,但您可能不需要凌驾 100。
要选择生成哪种资源,请将底部附近的“石头”更改为“铁矿石”、“铜矿石”、“煤”或“铀矿石”。
  1. /c local surface=game.player.surface
  2. local ore=nil
  3. local size=5
  4. local density=10
  5. for y=-size, size do
  6.         for x=-size, size do
  7.                 a=(size+1-math.abs(x))*10
  8.                 b=(size+1-math.abs(y))*10
  9.                 if a<b then
  10.                         ore=math.random(a*density-a*(density-8), a*density+a*(density-8))
  11.                 end
  12.                 if b<a then
  13.                         ore=math.random(b*density-b*(density-8), b*density+b*(density-8))
  14.                 end
  15.                 if surface.get_tile(game.player.position.x+x, game.player.position.y+y).collides_with("ground-tile") then
  16.                         surface.create_entity({name="stone", amount=ore, position={game.player.position.x+x, game.player.position.y+y}})
  17.                 end
  18.         end
  19. end
复制代码
为了得到更大的机动性,舆图编辑器还可用于创建/更改/删除资源补丁。
删除播放器四周的资源

从玩家四周 50 x 50 区域的地面上移除所有资源斑块。
  1. /c local surface=game.player.surface
  2. local size=50
  3. local pos=game.player.position
  4. for _, e in pairs(surface.find_entities_filtered{area={{pos.x-size, pos.y-size},{pos.x+size, pos.y+size}}, type="resource"})
  5.         do e.destroy()
  6. end
复制代码
添加新的油斑

这在 3×3 的正方形中创建了 9 个原油斑块。
  1. /c for y=0,2 do
  2.         for x=0,2 do
  3.                 game.player.surface.create_entity({name="crude-oil", amount=100000, position={game.player.position.x+x*7-7, game.player.position.y+y*7-7}})
  4.         end
  5. end
复制代码
或随机无任何碰撞:
  1. /c local position=nil
  2. for i=1,9 do
  3.         position=game.player.surface.find_non_colliding_position("crude-oil", game.player.position, 0, i/2+1.5)
  4.         if position then
  5.                 game.player.surface.create_entity({name="crude-oil", amount=100000, position=position})
  6.         end
  7. end
复制代码
重新生成资源

对于像铁这样的固体资源,会破坏所有资源实体并创建资源实体,就像在原始舆图生成中一样。对于流体资源(如石油),将所有现有资源实体的产量设置为原始量。在整个表面上再生资源。
  1. /c local surface = game.player.surface
  2. for _, e in pairs(surface.find_entities_filtered{type="resource"}) do
  3.   if e.prototype.infinite_resource then
  4.     e.amount = e.initial_amount
  5.   else
  6.     e.destroy()
  7.   end
  8. end
  9. local non_infinites = {}
  10. for resource, prototype in pairs(game.get_filtered_entity_prototypes{{filter="type", type="resource"}}) do
  11.   if not prototype.infinite_resource then
  12.     table.insert(non_infinites, resource)
  13.   end
  14. end
  15. surface.regenerate_entity(non_infinites)
  16. for _, e in pairs(surface.find_entities_filtered{type="mining-drill"}) do
  17.     e.update_connections()
  18. end
复制代码
对实体举行计数

对名称在当地实体中包罗字符串的所有实体举行计数。
  1. /c local entity="belt"
  2. local surface=game.player.surface
  3. local count=0
  4. for key, ent in pairs(surface.find_entities_filtered({force=game.player.force})) do
  5.         if string.find(ent.name,entity) then
  6.                 count=count+1
  7.         end
  8. end
  9. game.player.print(count)
复制代码
关闭悬崖生成

将巨细设置为“无”。仅对使用此下令后生成的块有效。使用 #Remove 所有悬崖来删除现有悬崖。
  1. /c local mgs = game.player.surface.map_gen_settings
  2. mgs.cliff_settings.cliff_elevation_0 = 1024
  3. game.player.surface.map_gen_settings = mgs
复制代码
移除所有悬崖

从世界上移除所有现有的悬崖。使用 #Turn off cliff generation 来关闭新块中的 cliff 生成。
  1. /c for _, v in pairs(game.player.surface.find_entities_filtered{type="cliff"}) do
  2.   v.destroy()
  3. end
复制代码
删除所有装饰品

删除世界上可以找到的装饰品。
  1. /c game.player.surface.destroy_decoratives({})
复制代码
更改舆图生成设置

这答应更改新块的舆图生成设置;它不会改变已经生成的块。已删除的区块会受到设置更改的影响,由于它们是在再次浏览时新生成的。
要更改资源生成设置,请在以下下令中将“iron-ore”替换为应更改的资源,并将“very-high”替换为所需的MapGenSize。将“铁矿石”替换为“仇人基地”以更改仇人基地生成设置。
  1. /c local surface = game.player.surface
  2. local resource = "iron-ore"
  3. local mgs = surface.map_gen_settings
  4. mgs.autoplace_controls[resource].size = "very-high"
  5. mgs.autoplace_controls[resource].frequency = "very-high"
  6. mgs.autoplace_controls[resource].richness = "very-high"
  7. surface.map_gen_settings = mgs
复制代码
要更改水生成设置,请在以下下令中将“very-high”替换为所需的 MapGenSize。
  
  1. /c <strong>local</strong> surface = game.player.surface
  2. <strong>local</strong> mgs = surface.map_gen_settings
  3. mgs.water = "very-high" <em>--[[ size]]</em>
  4. mgs.terrain_segmentation  = "very-high" <em>--[[ frequency]]</em>
  5. surface.map_gen_settings = mgs
复制代码
使结构坚不可摧

这使得一个实体不可能被破坏或杀死,例如被咬人。将鼠标悬停在实体上,然后运行:
  
  1. /c game.player.selected.destructible = <strong>false</strong>
复制代码
毗连联动传送带

假如至少存在两条链接的传送带,并且其中一个具有“实体标签”,另一个链接的传送带具有“实体标签”,则以下下令应链接这两个链接的传送带。inout
  
  1. /c <strong>local</strong> i = game.get_entity_by_tag('in')
  2. <strong>local</strong> o = game.get_entity_by_tag('out')
  3. i.linked_belt_type = 'input'
  4. o.linked_belt_type = 'output'
  5. i.connect_linked_belts(o)
复制代码
仇人/进化脚本

设置进化因子

范围从 0(新游戏)到 1。
  
  1. /c game.forces["enemy"].evolution_factor=X
复制代码
禁用基于时间的演化并增加基于污染的演化

  
  1. /c game.map_settings.enemy_evolution.time_factor=0
  2. /c game.map_settings.enemy_evolution.pollution_factor=game.map_settings.enemy_evolution.pollution_factor*2
复制代码
末了一个下令末尾的“2”将使默认污染因子加倍。您可以替换另一个数字以进一步增加(或淘汰)污染因子。
杀死“敌”军上的所有咬人者

请注意,这只会杀死移动单位,不会杀死刷怪者。
  
  1. /c game.forces["enemy"].kill_all_units()
复制代码
杀死所有仇人

这将杀死所有叮咬者、碱基和蠕虫。任何仇人都会被彻底摧毁。这只会影响生成世界中的仇人,因此舆图中任何仍需要生成的未探索部门仍将有仇人。假如需要,您可以防止比特虫位于新生成的块上。
  
  1. /c <strong>local</strong> surface=game.player.surface
  2. <strong>for</strong> key, entity <strong>in</strong> pairs(surface.find_entities_filtered({force="enemy"})) <strong>do</strong>
  3.         entity.destroy()
  4. <strong>end</strong>
复制代码
杀死附近的所有仇人

这将杀死可配置半径内的所有叮咬者、碱基和蠕虫。默认值为 250 个图块,在全高清模式下约莫是两个缩小的屏幕宽度。销毁后,它体现被销毁的对象数量。
  
  1. /c <strong>local</strong> surface=game.player.surface
  2. <strong>local</strong> pp = game.player.position
  3. <strong>local</strong> cnt = 0
  4. <strong>for</strong> key, entity <strong>in</strong> pairs(surface.find_entities_filtered({force="enemy", radius=250, position=pp })) <strong>do</strong>
  5.         cnt = cnt+1
  6.         entity.destroy()
  7. <strong>end</strong>       
  8. game.player.print(cnt)
复制代码
启用/禁用宁静模式

启用宁静模式可以防止虫子攻击,直到被激怒。用 true 替换 false 以禁用。已经存在的咬虫不受此下令的影响,因此在激活宁静模式后,攻击可能会继续一段时间。
  
  1. /c game.player.surface.peaceful_mode = <strong>true</strong>
复制代码
启用/禁用比特扩展

Biter 扩展答应 Biters 创建新的巢穴,默认情况下它是启用的。用 true 替换 false 以禁用。
  
  1. /c game.map_settings.enemy_expansion.enabled = <strong>true</strong>
复制代码
防止比虫虫落在新生成的块上

在新生成的块上,不会存在任何比特器,但是所有当前的比特器将不受影响。相称于在舆图生成过程中在地形设置下将仇人基地巨细设置为无,但在游戏中期通过更改舆图生成设置来实现。
  
  1. /c <strong>local</strong> surface = game.player.surface
  2. <strong>local</strong> mgs = surface.map_gen_settings
  3. mgs.autoplace_controls["enemy-base"].size = "none"
  4. surface.map_gen_settings = mgs
复制代码
除了下令之外,还可以在舆图编辑器中使用 GUI 来更改游戏中期的舆图生成设置。使用以下下令访问舆图编辑器,转到“表面”选项卡,然后单击“编辑舆图生成设置”。/editor
玩家脚色脚本

直接与播放器有关的下令。
获取玩家位置

打印您当前位置的坐标。
  
  1. /c game.player.print(game.player.position)
复制代码
传送播放器

  将播放器移动到指定位置。假如您通过他们实行上一个下令并将其提供给您来获取他们的坐标,您应该可以或许传送到特定玩家。
  1. /c game.player.teleport({X, Y})
复制代码
要传送到世界的开端,请使用 0,0。
  启用天主模式

  天主模式会移除您的玩家脚色,让您可以或许飞越停滞物而不会受到任何伤害。
  取消您的控件与脚色的关联并销毁它:
  1. /c game.player.character.destroy()
复制代码
要撤消,请生成一个玩家脚色。这将在世界的生成点生成一个新脚色,并将您的控件毗连到它。
  1. /c game.player.create_character()
复制代码
实现长距离覆盖

  启用长距离,使玩家可以或许在更远的距离内构建实体并与之交互。默认覆盖面为 10。
  1. /c local reach = 10000
  2. game.player.force.character_build_distance_bonus = reach
  3. game.player.force.character_reach_distance_bonus = reach
复制代码
寻找玩家遗体

  舆图上的 Pings 玩家遗体。
  1. /c local found_corpses = game.player.surface.find_entities_filtered{type="character-corpse"}
  2. for _,corpse in pairs(found_corpses) do
  3.     local player = game.get_player(corpse.character_corpse_player_index)
  4.     local name = player and player.name or "????"
  5.     game.player.print(name .. " --> " .. corpse.gps_tag)
  6. end
复制代码
跑得更快

  1. /c game.player.character_running_speed_modifier=3
复制代码
研究脚本

  加快研究速率

  1. /c game.player.force.laboratory_speed_modifier=1
复制代码
-0.5为半速,0为正常速率,1为双速,2为三倍速,以此类推。
  研究特定技能

  内部技能名称可以在各自页面的信息框中找到。
  1. /c game.player.force.technologies['electric-energy-distribution-1'].researched=true
  2. /c game.player.force.technologies['steel-processing'].researched=true
复制代码
要研究无限技能的高水平,请设置其级别:
  1. /c game.player.force.technologies['worker-robots-speed-6'].level = 100
  2. /c game.player.force.technologies['mining-productivity-4'].level = 100
复制代码
未经研究的特定技能

  内部技能名称可以在各自页面的信息框中找到。
  1. /c game.player.force.technologies['electric-energy-distribution-1'].researched=false
  2. /c game.player.force.technologies['steel-processing'].researched=false
复制代码
启用特定配方

  内部配方/项目名称可以在各自页面的信息框中找到。
  1. /c game.player.force.recipes["electric-energy-interface"].enabled=true
  2. /c game.player.force.recipes["rocket-silo"].enabled=true
  3. /c game.player.force.recipes.loader.enabled=true
  4. /c game.player.force.recipes["fast-loader"].enabled = true
  5. /c game.player.force.recipes["express-loader"].enabled = true
复制代码
启用所有配方

  1. /c for name, recipe in pairs(game.player.force.recipes) do recipe.enabled = true end
复制代码
将技能结果重置为默认值

  这将把所有配方的启用/解锁状态重置为纯粹基于当前研究的技能的状态,并重置其他技能结果,如采矿速率等。对这些结果和配方解锁的任何手动修改都将被打消。
  1. /c game.player.force.reset_technology_effects()
复制代码
注意:当添加或更改模组后配方不可用时,即使已经研究相识锁它们的技能,也可以用作快速解决方法。
  改装工具

  也可以在 data.raw 上找到原版游戏中大多数事物的内部名称列表。
  访问 mod 的数据

  假如下令的第一个单词是 __mod-name__它将在具有类似名称的 mod 的上下文中运行。例如,此下令打印来自 Even Distribution mod 的数据:
  1. /c __even-distribution__ game.player.print(serpent.dump(global))
复制代码
打印以控制台播放器下方的磁贴

  1. /c game.player.print(game.player.surface.get_tile(game.player.position).name)
复制代码
将所有研究的技能写入文件

  1. /c local list = {}
  2. for _, tech in pairs(game.player.force.technologies) do
  3.         if tech.researched then
  4.     list[#list+1] = tech.name
  5.   end
  6. end
  7. game.write_file("techs.lua", serpent.block(list) .. "\n", true)
复制代码
将所有启用的配方写入文件

  1. /c local list = {}
  2. for _, recipe in pairs(game.player.force.recipes) do
  3.         if recipe.enabled then
  4.     list[#list+1] = recipe.name
  5.   end
  6. end
  7. game.write_file("recipes.lua", serpent.block(list) .. "\n", true)
复制代码
将模块列表写入文件

  将所有当前运动的 mod 及其版本写入用户数据目次中的 script-output/mods.txt 文件。
  1. /c game.write_file("mods.txt", serpent.block(game.active_mods))
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表