<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Plexpt</id>
	<title>Official Factorio Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Plexpt"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Plexpt"/>
	<updated>2026-04-24T19:07:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Types/RotatedAnimation&amp;diff=188806</id>
		<title>Types/RotatedAnimation</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Types/RotatedAnimation&amp;diff=188806"/>
		<updated>2022-03-26T18:12:43Z</updated>

		<summary type="html">&lt;p&gt;Plexpt: /* line_length */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mandatory properties ==&lt;br /&gt;
&lt;br /&gt;
=== direction_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
The sequential animation instance is loaded equal to the entities direction within the direction_count setting.&lt;br /&gt;
&lt;br /&gt;
Direction count to [[Types/Direction]] (animation sequence number):&lt;br /&gt;
*&#039;&#039;&#039;1&#039;&#039;&#039; - &#039;&#039;&#039;North&#039;&#039;&#039; (1)&lt;br /&gt;
*&#039;&#039;&#039;2&#039;&#039;&#039; - &#039;&#039;&#039;North&#039;&#039;&#039; (1), South (2)&lt;br /&gt;
*&#039;&#039;&#039;4&#039;&#039;&#039; - &#039;&#039;&#039;North&#039;&#039;&#039; (1), &#039;&#039;&#039;East&#039;&#039;&#039; (2), &#039;&#039;&#039;South&#039;&#039;&#039; (3), &#039;&#039;&#039;West&#039;&#039;&#039; (4)&lt;br /&gt;
*&#039;&#039;&#039;8&#039;&#039;&#039; - &#039;&#039;&#039;North&#039;&#039;&#039; (1), &#039;&#039;&#039;Northeast&#039;&#039;&#039; (2), &#039;&#039;&#039;East&#039;&#039;&#039; (3), &#039;&#039;&#039;Southeast&#039;&#039;&#039; (4), &#039;&#039;&#039;South&#039;&#039;&#039; (5), &#039;&#039;&#039;Southwest&#039;&#039;&#039; (6), &#039;&#039;&#039;West&#039;&#039;&#039; (7), &#039;&#039;&#039;Northwest&#039;&#039;&#039; (8)&lt;br /&gt;
&lt;br /&gt;
== Optional properties ==&lt;br /&gt;
&lt;br /&gt;
=== layers ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/RotatedAnimation]]&lt;br /&gt;
&lt;br /&gt;
If this property is present, all RotatedAnimation definitions have to be placed as entries in the array, and they will all be loaded from there. Each item (RotatedAnimation definition) in the array may also have the &amp;lt;code&amp;gt;layers&amp;lt;/code&amp;gt; property.&lt;br /&gt;
&lt;br /&gt;
If this property is present, all other properties are ignored and the mandatory properties do not have to be defined.&lt;br /&gt;
&lt;br /&gt;
Layers may not be an empty table.&lt;br /&gt;
&lt;br /&gt;
=== hr_version ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RotatedAnimation]]&lt;br /&gt;
&lt;br /&gt;
If this property exists and high resolution sprites are turned on, its contents are used to load the RotatedAnimation.&lt;br /&gt;
&lt;br /&gt;
=== filename ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/FileName]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;stripes&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;filenames&amp;lt;/code&amp;gt; is not specified.&lt;br /&gt;
&lt;br /&gt;
=== filenames ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[types/table]] of [[Types/FileName]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Only loaded if &amp;lt;code&amp;gt;stripes&amp;lt;/code&amp;gt; is not present.&lt;br /&gt;
&lt;br /&gt;
=== slice ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;filenames&amp;lt;/code&amp;gt; is present.&lt;br /&gt;
&lt;br /&gt;
=== lines_per_file ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;filenames&amp;lt;/code&amp;gt; is present.&lt;br /&gt;
&lt;br /&gt;
=== priority ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpritePriority]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;medium&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== flags ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteFlags]]&lt;br /&gt;
&lt;br /&gt;
=== size ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]] or [[Types/table]] of [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
The width and height of the one frame. If this is an array, the first member of the array is the width and the second is the height. Otherwise the size is both width and height.&lt;br /&gt;
&lt;br /&gt;
Width and height may only be in the range of 0-8192.&lt;br /&gt;
&lt;br /&gt;
=== width ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; is not given. Width of one frame in pixels, from 0-8192.&lt;br /&gt;
&lt;br /&gt;
=== height ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Mandatory if &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; is not given. Height of one frame in pixels, from 0-8192.&lt;br /&gt;
&lt;br /&gt;
=== x ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Horizontal position of the animation in the source file in pixels.&lt;br /&gt;
&lt;br /&gt;
=== y ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Vertical position of the animation in the source file in pixels.&lt;br /&gt;
&lt;br /&gt;
=== position ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table]] of [[Types/SpriteSizeType]]&lt;br /&gt;
&lt;br /&gt;
Loaded only when &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; are both 0. The first member of the array is x and the second is y. &lt;br /&gt;
&lt;br /&gt;
=== shift ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/vector]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: {0, 0}&lt;br /&gt;
&lt;br /&gt;
=== scale ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/double]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Values different than 1 specify the scale of the animation on default zoom.&lt;br /&gt;
Scale 2 means that the picture will be 2 times bigger on screen (and more pixelated).&lt;br /&gt;
&lt;br /&gt;
=== draw_as_shadow ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Only one of &amp;lt;code&amp;gt;draw_as_shadow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt; can be true. &amp;lt;code&amp;gt;draw_as_shadow&amp;lt;/code&amp;gt; takes precedence over &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== draw_as_glow ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Only one of &amp;lt;code&amp;gt;draw_as_shadow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt; can be true. &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; takes precedence over &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Draws first as a normal sprite, and again as a light layer.&amp;lt;sup&amp;gt;[https://forums.factorio.com/91682]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== draw_as_light ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Only one of &amp;lt;code&amp;gt;draw_as_shadow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;draw_as_glow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;draw_as_light&amp;lt;/code&amp;gt; can be true.&lt;br /&gt;
&lt;br /&gt;
=== mipmap_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Only loaded if this is an icon (has flag &amp;quot;group=icon&amp;quot; or &amp;quot;group=gui&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== apply_runtime_tint ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
=== tint ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/Color]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: {r=1, g=1, b=1, a=1} (white)&lt;br /&gt;
&lt;br /&gt;
=== blend_mode ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/BlendMode]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;normal&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== load_in_minimal_mode ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Minimal mode is entered when mod loading fails. You are in it when you see the gray box after (part of) the loading screen that tells you a mod error ([https://cdn.discordapp.com/attachments/340530709712076801/532315796626472972/unknown.png Example]). If you are a modder, you can just ignore this property.&lt;br /&gt;
&lt;br /&gt;
=== premul_alpha ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: true&lt;br /&gt;
&lt;br /&gt;
Whether alpha should be premultiplied.&lt;br /&gt;
&lt;br /&gt;
=== generate_sdf ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
Unused.&lt;br /&gt;
&lt;br /&gt;
=== run_mode ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/string]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: &amp;quot;forward&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Possible values are:&lt;br /&gt;
*forward&lt;br /&gt;
*backward&lt;br /&gt;
*forward-then-backward&lt;br /&gt;
&lt;br /&gt;
=== frame_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Can&#039;t be 0.&lt;br /&gt;
&lt;br /&gt;
=== line_length ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
Once the specified number of pictures is loaded, other pictures are loaded on other line.&lt;br /&gt;
This is to allow having longer animations in matrix, to avoid pictures with too big width.&lt;br /&gt;
The game engine limits the width of any input picture to 8048px, so it is compatible with most graphics cards.&lt;br /&gt;
&lt;br /&gt;
=== animation_speed ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/float]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Modifier of the animation playing speed, the default is 1, which means one animation frame per tick (60 fps).&lt;br /&gt;
The speed of playing can often vary depending on the usage (output of steam engine for example). Has to be greater than 0.&lt;br /&gt;
&lt;br /&gt;
=== max_advance ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/float]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: MAX_FLOAT&lt;br /&gt;
&lt;br /&gt;
=== repeat_count ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Can&#039;t be 0.&lt;br /&gt;
&lt;br /&gt;
=== dice ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
=== dice_x ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
=== dice_y ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint8]]&lt;br /&gt;
&lt;br /&gt;
=== frame_sequence ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/AnimationFrameSequence]]&lt;br /&gt;
&lt;br /&gt;
=== still_frame ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/uint32]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
=== axially_symmetrical ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
If true, &amp;lt;code&amp;gt;direction_count&amp;lt;/code&amp;gt; must be greater than 1.&lt;br /&gt;
&lt;br /&gt;
=== counterclockwise ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: false&lt;br /&gt;
&lt;br /&gt;
=== middle_orientation ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/RealOrientation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0.5&lt;br /&gt;
&lt;br /&gt;
=== orientation_range ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/float]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 1&lt;br /&gt;
&lt;br /&gt;
Automatically clamped to be between 0 and 1.&lt;br /&gt;
&lt;br /&gt;
=== apply_projection ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/bool]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: true&lt;br /&gt;
&lt;br /&gt;
=== stripes ===&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [[Types/table|table]] (array) of [[Types/Stripe|Stripe]]&lt;br /&gt;
&lt;br /&gt;
{{Prototype property type usage|{{FULLPAGENAME}}}}&lt;/div&gt;</summary>
		<author><name>Plexpt</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Modding/zh&amp;diff=188805</id>
		<title>Modding/zh</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Modding/zh&amp;diff=188805"/>
		<updated>2022-03-26T17:24:55Z</updated>

		<summary type="html">&lt;p&gt;Plexpt: /* 注意 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
本页面将会带领您了解如何下载和安装mod，并且为方便您创建一个mod时所需而提供了一个和mod开发相关的概述。有关更详细的mod开发说明，您可以查看[[Tutorial:Modding_tutorial| mod开发教程]].如果您正在查找mod开发所需的相关API，请前往[http://lua-api.factorio.com/latest/ 官方 Factorio Lua API 文档]（注意，该文档为英文）查看。如果您希望知道在哪里安装zip格式的mod，请查看[[Application_directory|应用程序目录]]。&lt;br /&gt;
&lt;br /&gt;
== Mod 下载 &amp;amp; 安装 ==&lt;br /&gt;
&lt;br /&gt;
您可以在以下链接下载MOD:&lt;br /&gt;
&lt;br /&gt;
* [https://mods.factorio.com/ Mod门户站 (网页版)]&lt;br /&gt;
* Mod门户站 (游戏内)&lt;br /&gt;
* [https://forums.factorio.com/viewforum.php?f=14&amp;amp;sid=68de6ef9ee46dcd7566653335917752b 论坛Mod板块]&lt;br /&gt;
&lt;br /&gt;
=== Mod门户站 (网页版) ===&lt;br /&gt;
&lt;br /&gt;
Factorio的开发者创建论坛版块 [https://mods.factorio.com/ mod门户站 (网页版)] 使玩家可以分享各自制作的mod。 注意，从论坛下载的mod是zip格式，为了安装mod你需要将zip文件复制到 [[Application_directory#User_Data_directory|user data directory]] 并且不需要解压缩它。 你可以在游戏主菜单查看mod列表中是否存在该mod来检查你是否正确安装该mod。&lt;br /&gt;
&lt;br /&gt;
=== Mod门户站 (游戏内) ===&lt;br /&gt;
&lt;br /&gt;
在网页 [https://mods.factorio.com/ mod门户站 (网页版)] 上的mod你可以在游戏内主菜单的mod下载页面查看。 游戏内置的mod下载与网页下载的不同主要在于它可以自动的下载与安装，并且可以随时启用和停用mod（网页版下载的也可以随时启用和停用！）。&lt;br /&gt;
&lt;br /&gt;
=== 论坛Mod板块 ===&lt;br /&gt;
&lt;br /&gt;
某些mod制作者将他们的mod上传到官方论坛子板块[https://forums.factorio.com/viewforum.php?f=14&amp;amp;sid=68de6ef9ee46dcd7566653335917752b 论坛Mod板块]来展示而没有提交至mod门户站，或者&lt;br /&gt;
想在更新发布之前获取交流反馈。这类mod被作为附件上传。有时，你从论坛下载的mod同样使用了zip格式，你仅仅需要将它复制到[[Application_directory#User_Data_directory|user data directory]]就表示安装完成了，不需要解压缩。你可以在游戏主菜单查看mod列表中是否存在该mod来检查你是否正确安装该mod。&lt;br /&gt;
&lt;br /&gt;
=== Mod依赖 ===&lt;br /&gt;
&lt;br /&gt;
大多数的mod使用了factorio的base mod（包含全部官方内容的mod）。然而有些mod也可能会必须依赖于其他mod或者在其他可选依赖的mod安装之后可以提供额外功能。&lt;br /&gt;
&lt;br /&gt;
==== 必须依赖 ====&lt;br /&gt;
&lt;br /&gt;
当你安装一个mod时，它必须依赖于某个另外的mod才能工作，这种mod就被叫做必须依赖。&lt;br /&gt;
&lt;br /&gt;
==== 可选依赖 ====&lt;br /&gt;
&lt;br /&gt;
当一个mod建议你安装另一个mod并且在不安装被建议的mod也能工作时，这种mod即为可选依赖。&lt;br /&gt;
&lt;br /&gt;
==== 不兼容 ====&lt;br /&gt;
&lt;br /&gt;
依赖关系也可以用来声明一个 mod 与其他 mod 不兼容，从而阻止它们一起加载。&lt;br /&gt;
&lt;br /&gt;
== 开始开发一款Mod ==&lt;br /&gt;
: &#039;&#039;另请参见: [[Tutorial:Modding]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== API 文档 ===&lt;br /&gt;
&lt;br /&gt;
* [[Prototype definitions|原型文档]] — 可以在游戏中添加哪些原型，以及它们的属性&lt;br /&gt;
* [http://lua-api.Factorio.com/latest 最新的API文档] — 监听事件，改变玩家周围的世界&lt;br /&gt;
* [https://github.com/wube/factorio-data Factorio 在GitHub上的数据存储库] — 跟踪在版本之间异星工厂的Lua原型定义的变化。&lt;br /&gt;
* [[Data.raw]] — 列出所有内置原型的名称和类型&lt;br /&gt;
&lt;br /&gt;
=== Lua 脚本 ===&lt;br /&gt;
&lt;br /&gt;
你需要使用 Lua(版本: 5.2.1) 编程语言来制作 Factorio 的任意Mod。 游戏的Mod系统将会把你的代码在游戏启动和数据构建阶段注入游戏。 你可以使用任意文本编辑器来编辑你的Mod。 已知为 Lua 提供代码提示以及高亮的编辑器有 [https://notepad-plus-plus.org Notepad++] 和 [http://www.sublimetext.com Sublime Text]&lt;br /&gt;
&lt;br /&gt;
有用的 Lua 资源:&lt;br /&gt;
&lt;br /&gt;
* [http://lua-users.org/wiki/TutorialDirectory Lua 教程]&lt;br /&gt;
* [https://www.lua.org/manual/5.2/ Lua 参考手册]&lt;br /&gt;
* [https://repl.it/languages/lua Lua REPL] : 一个 Lua 在线运行环境，本质上是一个沙盒&lt;br /&gt;
&lt;br /&gt;
=== Mod的基本结构 ===&lt;br /&gt;
&lt;br /&gt;
Factorio 的Mod是一个Zip格式的文件，里面包含了 Factorio 在加载Mod时会查找的几个重要文件。下面列出了这些文件，必需得文件显示为红色字体&lt;br /&gt;
&lt;br /&gt;
* ExampleMod_0.0.1.zip&lt;br /&gt;
** &amp;lt;span style=&amp;quot;color:#FF5555&amp;quot;&amp;gt;info.json&amp;lt;/span&amp;gt;&lt;br /&gt;
** control.lua&lt;br /&gt;
** data.lua&lt;br /&gt;
** data-updates.lua&lt;br /&gt;
** data-final-fixes.lua&lt;br /&gt;
&lt;br /&gt;
=== 授权信息 ===&lt;br /&gt;
&lt;br /&gt;
随着&#039;&#039;&#039;v0.11&#039;&#039;&#039;版本的到来所有mod需要有一个许可类型。 如果一个MOD没有指定许可类型，将使用默认的 [http://creativecommons.org/licenses/by-nc/4.0 Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)]。然而，可以有目的地使Mod使用[https://choosealicense.com/licenses/unlicense/ unlicensed] 协议，使代码可以被公共域修改及分发。Factorio Mod最受欢迎的分发许可证为 [https://choosealicense.com/licenses/mit/ MIT license] 和 [https://choosealicense.com/licenses/gpl-3.0/ GPLv3] license.&lt;br /&gt;
&lt;br /&gt;
其他有用的法律链接包括:&lt;br /&gt;
&lt;br /&gt;
* [http://www.factorioforums.com/forum/viewtopic.php?f=6&amp;amp;t=6202&amp;amp;p=48971#p48968 关于允许使用base-mod内容的论坛帖子]&lt;br /&gt;
* [http://www.factorio.com/terms-of-service Factorio服务条款]&lt;br /&gt;
* [https://choosealicense.com/licenses/ 选择许可类型]&lt;br /&gt;
&lt;br /&gt;
== 另请参见 ==&lt;br /&gt;
* [[:Category:Technical]] — 与API无关的格式文档&lt;/div&gt;</summary>
		<author><name>Plexpt</name></author>
	</entry>
</feed>