<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://g1r-mp.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Map_editor</id>
	<title>Map editor - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://g1r-mp.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Map_editor"/>
	<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Map_editor&amp;action=history"/>
	<updated>2026-09-29T23:09:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://g1r-mp.com/wiki/index.php?title=Map_editor&amp;diff=975&amp;oldid=prev</id>
		<title>QCherry: Release 0.1.4 BUILD133 / Protocol 36 and document authenticated event origin</title>
		<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Map_editor&amp;diff=975&amp;oldid=prev"/>
		<updated>2026-09-21T20:40:41Z</updated>

		<summary type="html">&lt;p&gt;Release 0.1.4 BUILD133 / Protocol 36 and document authenticated event origin&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:40, 21 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Map editor =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Map editor =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Since &lt;/del&gt;0.1.4 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(in development; not included in public 0.1.3)&lt;/del&gt;.&#039;&#039;&#039; Use &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;matching &lt;/del&gt;0.1.4 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;server resources and a current development &lt;/del&gt;client&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. For the September 20 development packages, use BUILD124 &lt;/del&gt;or later and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;updated &lt;/del&gt;map_editor/map_scene &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;scripts for &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;object&lt;/del&gt;-cap removal&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; &lt;/del&gt;the held-key freecam fix &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is &lt;/del&gt;included&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. This documentation is not a public updater announcement&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Available since &lt;/ins&gt;0.1.4.&#039;&#039;&#039; Use &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the complete &lt;/ins&gt;0.1.4 client &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(BUILD133 &lt;/ins&gt;or later&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;) with the matching Protocol 36 server &lt;/ins&gt;and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;current &lt;/ins&gt;map_editor/map_scene &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;resources. Both resources are included in &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Windows and Linux server packages but are not auto-started. Object&lt;/ins&gt;-cap removal &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and &lt;/ins&gt;the held-key freecam fix &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;are &lt;/ins&gt;included.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Lua editor places existing game meshes in MainMap. It provides a searchable model browser, local placement preview, numeric transforms, scene list, duplicate, undo/redo, save/load and export. No separate reference Map Editor mod is needed.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Lua editor places existing game meshes in MainMap. It provides a searchable model browser, local placement preview, numeric transforms, scene list, duplicate, undo/redo, save/load and export. No separate reference Map Editor mod is needed.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>QCherry</name></author>
	</entry>
	<entry>
		<id>https://g1r-mp.com/wiki/index.php?title=Map_editor&amp;diff=942&amp;oldid=prev</id>
		<title>QCherry: 0.1.4 BUILD124: remove fixed world-object count and request caps; document remaining data/transport bounds</title>
		<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Map_editor&amp;diff=942&amp;oldid=prev"/>
		<updated>2026-09-20T18:37:32Z</updated>

		<summary type="html">&lt;p&gt;0.1.4 BUILD124: remove fixed world-object count and request caps; document remaining data/transport bounds&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:37, 20 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Map editor =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Map editor =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Since 0.1.4 (in development; not included in public 0.1.3).&#039;&#039;&#039; Use matching 0.1.4 server resources and a current development client. For the September 20 development packages, use &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;BUILD123 &lt;/del&gt;or later for the held-key freecam fix. This documentation is not a public updater announcement.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Since 0.1.4 (in development; not included in public 0.1.3).&#039;&#039;&#039; Use matching 0.1.4 server resources and a current development client. For the September 20 development packages, use &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;BUILD124 &lt;/ins&gt;or later &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and updated map_editor/map_scene scripts &lt;/ins&gt;for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the object-cap removal; &lt;/ins&gt;the held-key freecam fix &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is included&lt;/ins&gt;. This documentation is not a public updater announcement.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Lua editor places existing game meshes in MainMap. It provides a searchable model browser, local placement preview, numeric transforms, scene list, duplicate, undo/redo, save/load and export. No separate reference Map Editor mod is needed.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Lua editor places existing game meshes in MainMap. It provides a searchable model browser, local placement preview, numeric transforms, scene list, duplicate, undo/redo, save/load and export. No separate reference Map Editor mod is needed.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l83&quot;&gt;Line 83:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 83:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Limits and troubleshooting ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Limits and troubleshooting ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;At most 500 document objects; &lt;/del&gt;the native client &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;has a combined 512-instance limit across all owning resources&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;including previews&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;deployed scenes&lt;/del&gt;. Undo history holds 200 commands.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;No fixed object-count cap in &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;editor, legacy import, &lt;/ins&gt;native client &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;or map_scene loader since the BUILD124 revision of 0.1.4. Actual capacity depends on mesh complexity, RAM/VRAM&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CPU and the remaining document&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;transport limits&lt;/ins&gt;. Undo history &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;still &lt;/ins&gt;holds 200 commands&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* The shared JSON codec accepts up to 1 MiB and 65536 table entries per document (nested fields count), while editor transfers remain bounded to 1000000 bytes. Split larger projects into separate scene resources when needed; removing the count cap does not make one file unlimited. Test representative maps in-game before deployment&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Position: +/-100000 metres; rotation: +/-36000 degrees; each scale axis: 0.01-100. Editor upload/download JSON is limited to 1000000 bytes. See [[World objects]] and [[Resource data storage]] for engine limits.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Position: +/-100000 metres; rotation: +/-36000 degrees; each scale axis: 0.01-100. Editor upload/download JSON is limited to 1000000 bytes. See [[World objects]] and [[Resource data storage]] for engine limits.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* One user holds a named-map lock until their editor session closes/expires. This prevents simultaneous conflicting saves, not a collaborative editing session.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* One user holds a named-map lock until their editor session closes/expires. This prevents simultaneous conflicting saves, not a collaborative editing session.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>QCherry</name></author>
	</entry>
	<entry>
		<id>https://g1r-mp.com/wiki/index.php?title=Map_editor&amp;diff=923&amp;oldid=prev</id>
		<title>QCherry: Document Map Editor, saved maps, static scene deployment and Lua APIs since 0.1.4</title>
		<link rel="alternate" type="text/html" href="https://g1r-mp.com/wiki/index.php?title=Map_editor&amp;diff=923&amp;oldid=prev"/>
		<updated>2026-09-20T18:19:24Z</updated>

		<summary type="html">&lt;p&gt;Document Map Editor, saved maps, static scene deployment and Lua APIs since 0.1.4&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Map editor =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Since 0.1.4 (in development; not included in public 0.1.3).&amp;#039;&amp;#039;&amp;#039; Use matching 0.1.4 server resources and a current development client. For the September 20 development packages, use BUILD123 or later for the held-key freecam fix. This documentation is not a public updater announcement.&lt;br /&gt;
&lt;br /&gt;
The Lua editor places existing game meshes in MainMap. It provides a searchable model browser, local placement preview, numeric transforms, scene list, duplicate, undo/redo, save/load and export. No separate reference Map Editor mod is needed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Three different workflows:&amp;#039;&amp;#039;&amp;#039; Save/Open keeps an editable project; Export Lua deploys a static scene through [[Map scene deployment|map_scene]]; legacy JSON exchanges layouts with the reference editor. Saving alone does not make objects appear for other players.&lt;br /&gt;
&lt;br /&gt;
== Start the editor ==&lt;br /&gt;
# Install the complete &amp;lt;code&amp;gt;map_editor&amp;lt;/code&amp;gt; resource in the running server&amp;#039;s &amp;lt;code&amp;gt;resources&amp;lt;/code&amp;gt; directory, including its client, server, shared and UI files.&lt;br /&gt;
# In the &amp;#039;&amp;#039;&amp;#039;server console&amp;#039;&amp;#039;&amp;#039;, run &amp;lt;code&amp;gt;refresh&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;start map_editor&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Use a client supporting these 0.1.4 APIs. If scripts were replaced while connected, reconnect to obtain the current client resource files.&lt;br /&gt;
# With the supplied &amp;lt;code&amp;gt;gothic_rp&amp;lt;/code&amp;gt; gamemode running, log in, finish spawning and use &amp;lt;code&amp;gt;/mapeditor&amp;lt;/code&amp;gt;. Your account needs &amp;lt;code&amp;gt;admin.world&amp;lt;/code&amp;gt; permission.&lt;br /&gt;
&lt;br /&gt;
The editor is not autostarted. Its server authorization bridge currently trusts the &amp;lt;code&amp;gt;gothic_rp&amp;lt;/code&amp;gt; resource by name. Other gamemodes need an equivalent server-side permission bridge &amp;#039;&amp;#039;&amp;#039;and&amp;#039;&amp;#039;&amp;#039; an intentional update to the trusted-source check in &amp;lt;code&amp;gt;map_editor/server/storage.lua&amp;lt;/code&amp;gt;; merely sending an open event from another resource is not sufficient. Never authorize editing using client-supplied permission claims.&lt;br /&gt;
&lt;br /&gt;
== Place your first object ==&lt;br /&gt;
# Type a model name or part of its asset path in Models. Use Previous/Next to page through results (40 per page).&lt;br /&gt;
# Click a model to create a local preview. Move the pointer over the central world viewport: the placement ray follows the world surface.&lt;br /&gt;
# Use the wheel to adjust preview height. Click the viewport to place the object and wait for confirmation.&lt;br /&gt;
# Choose &amp;#039;&amp;#039;&amp;#039;Cancel preview&amp;#039;&amp;#039;&amp;#039; or Escape before selecting an existing object. You can select it in the world or in the bottom Scene list.&lt;br /&gt;
# In Inspector, edit position, rotation, scale or name and click &amp;#039;&amp;#039;&amp;#039;Apply transform / name&amp;#039;&amp;#039;&amp;#039;. Position is in metres; rotation is in degrees; scale is a multiplier.&lt;br /&gt;
&lt;br /&gt;
The Scene list supports name/ID search and 30 rows per page. &amp;lt;code&amp;gt;[H]&amp;lt;/code&amp;gt; means hidden, &amp;lt;code&amp;gt;[L]&amp;lt;/code&amp;gt; locked, and &amp;lt;code&amp;gt;[!]&amp;lt;/code&amp;gt; failed to render. Use this list for hidden or non-colliding objects that a world ray cannot select. Hide, Lock and Collision are saved properties. Preview collision is disabled.&lt;br /&gt;
&lt;br /&gt;
== Controls ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Control !! Action&lt;br /&gt;
|-&lt;br /&gt;
| W / E / R outside text inputs || Select Move / Rotate / Scale mode for axis-step editing.&lt;br /&gt;
|-&lt;br /&gt;
| X/Y/Z minus and plus buttons || Apply the current transform mode on that axis. Rotation X/Y/Z corresponds to roll/pitch/yaw; scale steps are 0.1.&lt;br /&gt;
|-&lt;br /&gt;
| Grid / Angle || Position step in metres / rotation step in degrees. Zero disables placement snapping; axis buttons still use a fallback step (0.1 m or 1 degree). Numeric input retains exact values.&lt;br /&gt;
|-&lt;br /&gt;
| Delete; Ctrl+C / Ctrl+V / Ctrl+D || Delete; copy / paste / duplicate.&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl+Z / Ctrl+Y || Undo / redo confirmed create, delete and property/transform changes.&lt;br /&gt;
|-&lt;br /&gt;
| F || Focus the camera on the selected object.&lt;br /&gt;
|-&lt;br /&gt;
| Escape || Cancel preview, or deselect when no preview is active.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Freecam:&amp;#039;&amp;#039;&amp;#039; hold the right mouse button over the world viewport, or click Fly camera. Move the mouse to look around. W/S flies along the full view direction, including up/down pitch; A/D strafes horizontally; Q/E moves vertically; Shift is faster. Release RMB or press Tab/Escape to return to GUI interaction. Speed sets flight speed; the viewport wheel adjusts it when no placement preview is active. W/E/R are transform shortcuts outside fly mode, not during flight. Closing the editor releases its camera and input ownership.&lt;br /&gt;
&lt;br /&gt;
There are no mesh thumbnails or draggable 3D axis gizmos in this implementation: use the live preview, Inspector fields and axis buttons. Selection requests custom-depth rendering, but a visible world outline depends on the game&amp;#039;s post-processing; the selected hierarchy row is also highlighted.&lt;br /&gt;
&lt;br /&gt;
== Save, reopen and export ==&lt;br /&gt;
Use the name field at the top. Names contain 1-48 ASCII letters, digits, underscores or hyphens, &amp;#039;&amp;#039;&amp;#039;without a file extension&amp;#039;&amp;#039;&amp;#039;. Example: &amp;lt;code&amp;gt;untitled&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;old_camp_rocks&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Save / Save As:&amp;#039;&amp;#039;&amp;#039; click once, then click the same action again within six seconds to confirm saving/overwriting. Wait for &amp;lt;code&amp;gt;Saved atomically on server (.storage).&amp;lt;/code&amp;gt; before exporting or leaving. For Save As, first change the name field; it uses the same save mechanism. &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; marks unsaved changes. There is no automatic save on closing or stopping the resource.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Open an existing project:&amp;#039;&amp;#039;&amp;#039; enter its name (for example &amp;lt;code&amp;gt;untitled&amp;lt;/code&amp;gt;) and click &amp;#039;&amp;#039;&amp;#039;Open&amp;#039;&amp;#039;&amp;#039;. If there are unsaved changes, the second click confirms discarding them. Open replaces the editor scene; it does not merge another map into it. A successful load reports the object count and failed render count. You do not need either export file to reopen a saved project.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;New:&amp;#039;&amp;#039;&amp;#039; clears the working scene after confirmation; it does not delete saved files. Save under a new name to avoid overwriting a previous project. Undo/redo history is session-local and resets on load.&lt;br /&gt;
&lt;br /&gt;
The following files live on the &amp;#039;&amp;#039;&amp;#039;server&amp;#039;&amp;#039;&amp;#039;, not in your client&amp;#039;s Downloads directory:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Path relative to the running server !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resources/map_editor/.storage/data-map_untitled.json&amp;lt;/code&amp;gt; || Working project: Save creates it; Open reads it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resources/map_editor/.storage/data-map_untitled.json.bak&amp;lt;/code&amp;gt; || Previous overwritten save, if one existed. One backup generation, not unlimited history.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resources/map_editor/.storage/data-export_untitled.lua&amp;lt;/code&amp;gt; || Export Lua output for map_scene deployment.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resources/map_editor/.storage/data-export_legacy_untitled.json&amp;lt;/code&amp;gt; || Export legacy JSON output; not the ordinary Open format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resources/map_editor/.storage/data-legacy_untitled.json&amp;lt;/code&amp;gt; || Input filename read by Import legacy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Exports use the last acknowledged save for the current name. Save again after editing, wait for the confirmation, then export again. Back up &amp;lt;code&amp;gt;.storage&amp;lt;/code&amp;gt; before replacing server/resource folders. To move an editable project to another server, copy its &amp;lt;code&amp;gt;data-map_NAME.json&amp;lt;/code&amp;gt; into that server&amp;#039;s map_editor storage, then Open &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt;; the target must have a compatible model catalog.&lt;br /&gt;
&lt;br /&gt;
== Make objects visible to players ==&lt;br /&gt;
Follow [[Map scene deployment]]: Export Lua, copy the output as &amp;lt;code&amp;gt;resources/map_scene/map.lua&amp;lt;/code&amp;gt; alongside the supplied loader and manifest, close the editor, then start/restart map_scene. This is the supported static scene workflow with reconstruction for late joiners. The editor&amp;#039;s private live preview is not multiplayer collaborative editing.&lt;br /&gt;
&lt;br /&gt;
== Legacy JSON import ==&lt;br /&gt;
# Copy a compatible legacy JSON layout to &amp;lt;code&amp;gt;resources/map_editor/.storage/data-legacy_NAME.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Enter &amp;lt;code&amp;gt;NAME&amp;lt;/code&amp;gt; in the editor and click &amp;#039;&amp;#039;&amp;#039;Import legacy&amp;#039;&amp;#039;&amp;#039;. Confirm discarding unsaved changes if prompted.&lt;br /&gt;
# Save the converted project, then use ordinary Open for future editing.&lt;br /&gt;
&lt;br /&gt;
Legacy entries contain &amp;lt;code&amp;gt;mesh, x, y, z, yaw, scale&amp;lt;/code&amp;gt;. Coordinates are centimetres and are converted to metres. The working project and Lua export already use metres: &amp;#039;&amp;#039;&amp;#039;do not feed them to the legacy importer&amp;#039;&amp;#039;&amp;#039;. Legacy Lua import is not supported. Export legacy JSON rejects pitch/roll, non-uniform scale, hidden/locked objects or disabled collision instead of silently losing those properties.&lt;br /&gt;
&lt;br /&gt;
== Limits and troubleshooting ==&lt;br /&gt;
* At most 500 document objects; the native client has a combined 512-instance limit across all owning resources, including previews/deployed scenes. Undo history holds 200 commands.&lt;br /&gt;
* Position: +/-100000 metres; rotation: +/-36000 degrees; each scale axis: 0.01-100. Editor upload/download JSON is limited to 1000000 bytes. See [[World objects]] and [[Resource data storage]] for engine limits.&lt;br /&gt;
* One user holds a named-map lock until their editor session closes/expires. This prevents simultaneous conflicting saves, not a collaborative editing session.&lt;br /&gt;
* &amp;lt;code&amp;gt;Start map_editor in the server console first&amp;lt;/code&amp;gt;: check that map_editor is running and the compatible GothicRP bridge is installed.&lt;br /&gt;
* Export refuses: save the current name, confirm with the second click and wait for the save response. Do not change the name between Save and Export.&lt;br /&gt;
* &amp;lt;code&amp;gt;[!]&amp;lt;/code&amp;gt; / failed render: inspect the reported asset failure. The document retains that object&amp;#039;s record so another save does not silently lose it. Unknown catalog entries fail validation before the old scene is cleared.&lt;br /&gt;
* &amp;lt;code&amp;gt;Native state uncertain&amp;lt;/code&amp;gt;: reload the saved map before further editing; blindly retrying a timed-out mutation can create an inconsistent scene.&lt;br /&gt;
* A first load of a large mesh can hitch. The catalog is an index, not a guarantee every mesh/material/collision behaves suitably in gameplay.&lt;br /&gt;
* Restarting the resource or closing/disconnecting removes the preview and unsaved editor state. Save first. For deployed objects, keep map_scene running.&lt;br /&gt;
&lt;br /&gt;
== Lua developers ==&lt;br /&gt;
Use [[WorldObjects.request]] and its two result/reset events for generic resource-owned meshes. [[MapEditor helpers]] documents the four convenience functions inside the editor only. [[Resource data storage]] documents the three new server persistence functions. [[Mouse capture]] includes the new optional exclusive-input mode; [[UpdateCameraPose]] streams the editor&amp;#039;s camera.&lt;br /&gt;
[[Category:Lua API]]&lt;br /&gt;
[[Category:Lua Examples]]&lt;/div&gt;</summary>
		<author><name>QCherry</name></author>
	</entry>
</feed>