<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.erb.pw/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Meatlotion</id>
	<title>Wikierbia2 - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.erb.pw/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Meatlotion"/>
	<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Special:Contributions/Meatlotion"/>
	<updated>2026-11-14T21:14:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=138</id>
		<title>Moebius²</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=138"/>
		<updated>2026-06-07T20:38:49Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Moebius-screenshot2.png|Moebius² Screenshot]]&lt;br /&gt;
&lt;br /&gt;
= Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² is the modern realisation of an ANSI Editor, with true colour support; for MacOS, Linux and Windows. The&lt;br /&gt;
major feature that differentiates it from [https://github.com/blocktronics/pablodraw PabloDraw] is the &#039;half-block&#039;&lt;br /&gt;
brush which allows editing in a style closer to Photoshop than a text editor, although you can still use the&lt;br /&gt;
function and cursor keys to draw with, and you should find that most of the text editing features from PabloDraw&lt;br /&gt;
are carried over to this editor. The editor is still a work in progress, but anyone who wants to try using it is&lt;br /&gt;
also encouraged to [https://github.com/christiansacks/moebius/issues log feature requests and bugs] on the&lt;br /&gt;
project&#039;s GitHub page.&lt;br /&gt;
&lt;br /&gt;
== Download packages ==&lt;br /&gt;
&lt;br /&gt;
Packaged binaries are available through Github [https://github.com/christiansacks/moebius/releases Releases] or&lt;br /&gt;
from the direct links below:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.dmg MacOS]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.Setup.exe Windows Installer]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.exe Windows Portable]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.AppImage Linux AppImage]&lt;br /&gt;
&lt;br /&gt;
== Installation &amp;amp; building ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
npm start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moebius² packages can be built easily with [https://github.com/electron-userland/electron-builder&lt;br /&gt;
electron-builder]. Note that a build for MacOS must be made on MacOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npm run-script build-mac&lt;br /&gt;
npm run-script build-win&lt;br /&gt;
npm run-script build-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Moebius² Server ==&lt;br /&gt;
&lt;br /&gt;
Moebius² features collaboration by multiple users on the same canvas through a server instance. Users connect to a&lt;br /&gt;
server which allows them to draw and chat. The server will also create hourly backups.&lt;br /&gt;
&lt;br /&gt;
To start a server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
node ./server.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will start a server with default settings. In this case a password will not be set and any value entered in&lt;br /&gt;
the Moebius² client will be accepted by the server. The server runs by default on port 8000. Moebius² clients can&lt;br /&gt;
modify the port by entering the server as &amp;lt;code&amp;gt;hostname:port&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following parameters can be set:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--file=filename.ans&amp;lt;/code&amp;gt; || Load an initial ANSI file after the server starts&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--pass=password&amp;lt;/code&amp;gt; || Set a server password which clients need to provide to log on&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--server_port=8000&amp;lt;/code&amp;gt; || Set the server port (default: 8000)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--web_port=80&amp;lt;/code&amp;gt; || Run the webserver for external viewing (default port: 80).&lt;br /&gt;
Enables live preview of the canvas and SAUCE information in a browser at&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://hostname.tld:web_port&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--path=pathname&amp;lt;/code&amp;gt; || Set a path for this server; users and web viewers connect to&lt;br /&gt;
&amp;lt;code&amp;gt;hostname.tld/path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--quiet=true/false&amp;lt;/code&amp;gt; || Suppress console output after the server has started&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--discord=url&amp;lt;/code&amp;gt; || Mirror server joins and chat activity via a&lt;br /&gt;
[https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks Discord Webhook]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Running the server with Docker ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;d rather not install Node.js on your host, a Docker image is provided.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039; [https://docs.docker.com/engine/install/ Docker Engine] with the Compose plugin (included in&lt;br /&gt;
Docker Desktop).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Create a data directory&#039;&#039;&#039; alongside the repo — this is where your &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;&lt;br /&gt;
file lives and persists across container restarts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure&#039;&#039;&#039; by creating a &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file (all values are optional — defaults are shown):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOEBIUS_PASS=yourpassword       # leave blank for open access&lt;br /&gt;
MOEBIUS_FILENAME=server.mob     # file to serve (created automatically if missing)&lt;br /&gt;
MOEBIUS_PORT=8000               # WebSocket port&lt;br /&gt;
MOEBIUS_COLUMNS=80              # canvas width  (new files only)&lt;br /&gt;
MOEBIUS_ROWS=25                 # canvas height (new files only)&lt;br /&gt;
DATA_DIR=./data                 # path to your data directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Build and start:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d --build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first run builds the image; subsequent starts are instant. To follow logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose logs -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Connect from Moebius²&#039;&#039;&#039; via &#039;&#039;&#039;Network → Connect to Server&#039;&#039;&#039; and enter &amp;lt;code&amp;gt;yourhost:8000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To stop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
* Uses modified Google&#039;s Material Icons — https://material.io/icons/&lt;br /&gt;
* Contains ANSI art by Alpha King (Blocktronics), Filth (Blocktronics) and burps (FUEL)&lt;br /&gt;
* Included fonts:&lt;br /&gt;
** Topaz originally appeared in Amiga Workbench, courtesy of Commodore Int.&lt;br /&gt;
** P0t-NOoDLE appears courtesy of Leo &#039;Nudel&#039; Davidson&lt;br /&gt;
** mO&#039;sOul appears courtesy of Desoto/Mo&#039;Soul&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Copyright 2022 Andy Herbert and 2026 Christian Sacks&lt;br /&gt;
&lt;br /&gt;
Licensed under the [https://github.com/christiansacks/moebius/blob/master/LICENSE.txt Apache License, version 2.0].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Moebius homepage: https://blocktronics.github.io/moebius/&lt;br /&gt;
* SAUCE specification: http://www.acid.org/info/sauce/sauce.htm&lt;br /&gt;
* How-to&#039;s&lt;br /&gt;
** [[Moebius²_Animations|Moebius² Animations]]&lt;br /&gt;
** [[Moebius²_TheDraw_Fonts|Moebius² TheDraw Fonts]]&lt;br /&gt;
** [[Moebius²_Layers|Moebius² Layers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]][[Category:ANSI Art]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Category:Layers&amp;diff=137</id>
		<title>Category:Layers</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Category:Layers&amp;diff=137"/>
		<updated>2026-06-07T20:37:35Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_Layers&amp;diff=136</id>
		<title>Moebius² Layers</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_Layers&amp;diff=136"/>
		<updated>2026-06-07T20:37:27Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;= Working with Layers in Moebius² =  Moebius² supports a multi-layer workflow similar to image editors like Photoshop. Layers let you work on different parts of an image independently, combine them with blend modes and opacity, and non-destructively experiment without permanently altering what&amp;#039;s underneath.  Every document starts with a single layer called &amp;#039;&amp;#039;&amp;#039;Background&amp;#039;&amp;#039;&amp;#039;. Layers are only preserved in the native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; format — saving as &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Working with Layers in Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² supports a multi-layer workflow similar to image editors like Photoshop. Layers let you work on different parts of an image independently, combine them with blend modes and opacity, and non-destructively experiment without permanently altering what&#039;s underneath.&lt;br /&gt;
&lt;br /&gt;
Every document starts with a single layer called &#039;&#039;&#039;Background&#039;&#039;&#039;. Layers are only preserved in the native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; format — saving as &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;.xbin&amp;lt;/code&amp;gt; automatically&lt;br /&gt;
flattens all layers to the composited result.&lt;br /&gt;
&lt;br /&gt;
== The Layers Panel ==&lt;br /&gt;
&lt;br /&gt;
The Layers Panel lives on the right side of the window, below the preview area. If it&#039;s not visible, show it with &#039;&#039;&#039;View → Show Layers Panel&#039;&#039;&#039; (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;L&amp;lt;/kbd&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Drag the resize handle at the top edge of the panel to make it taller or shorter.&lt;br /&gt;
&lt;br /&gt;
=== Reading the Layer List ===&lt;br /&gt;
&lt;br /&gt;
Layers are displayed top-to-bottom in the list, matching their visual stacking order — the topmost layer in the list paints over everything below it. The &#039;&#039;&#039;active layer&#039;&#039;&#039; (the one you&#039;re currently drawing on) is highlighted.&lt;br /&gt;
&lt;br /&gt;
Each row in the list shows three controls:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Control !! Symbol !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| Visibility toggle || ● (lit) / ● (dim) || Click to show or hide the layer. Hidden layers are excluded from the composited view and from all exports.&lt;br /&gt;
|-&lt;br /&gt;
| Lock toggle || ■ (locked) / □ (unlocked) || Click to lock or unlock. A locked layer cannot be drawn on or edited, but remains visible.&lt;br /&gt;
|-&lt;br /&gt;
| Name || — || The layer&#039;s name. Double-click to rename inline. Press &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt; to confirm or &amp;lt;kbd&amp;gt;Escape&amp;lt;/kbd&amp;gt; to cancel. You can also rename via the right-click context menu, or press &amp;lt;kbd&amp;gt;F2&amp;lt;/kbd&amp;gt; when the layer item is focused.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Toolbar Buttons ===&lt;br /&gt;
&lt;br /&gt;
The row of buttons in the panel header acts on the active layer:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! Label !! Action !! Shortcut&lt;br /&gt;
|-&lt;br /&gt;
| + || Add Layer || Add a new blank transparent layer above the active layer ||&lt;br /&gt;
&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;N&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ▲ || Move Layer Up || Move the active layer one position higher in the stack || &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Page Up&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ▼ || Move Layer Down || Move the active layer one position lower in the stack || &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Page Down&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ⊕ || Merge Down || Bake the active layer into the one directly below it ||&lt;br /&gt;
&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;D&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ⊞ || Flatten All Layers || Composite all layers into a single Background layer ||&lt;br /&gt;
&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;F&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| × || Delete Layer || Delete the active layer (disabled when only one layer exists) || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Layer Controls ===&lt;br /&gt;
&lt;br /&gt;
Below the toolbar, two controls apply to the active layer:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Blend Mode&#039;&#039;&#039; — a dropdown controlling how this layer&#039;s cells are blended with the layers below. See [[#Blend Modes|Blend Modes]] below.&lt;br /&gt;
* &#039;&#039;&#039;Opacity&#039;&#039;&#039; — a slider and number field (0–100%). At 100% the layer is fully opaque; lower values blend it with the layers beneath. See [[#Opacity and Blending|Opacity and Blending]] below.&lt;br /&gt;
&lt;br /&gt;
== The Layer Menu ==&lt;br /&gt;
&lt;br /&gt;
All layer operations are also available from the &#039;&#039;&#039;Layer&#039;&#039;&#039; menu in the menu bar, with the same keyboard shortcuts as listed above. The menu additionally includes &#039;&#039;&#039;Duplicate Layer&#039;&#039;&#039; (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;J&amp;lt;/kbd&amp;gt;), which creates an exact copy of the active layer immediately above it.&lt;br /&gt;
&lt;br /&gt;
== Right-Click Context Menu ==&lt;br /&gt;
&lt;br /&gt;
Right-clicking any layer in the list opens a context menu with: Rename, Duplicate, Move Up, Move Down, Merge Down, and Delete. This is handy when you want to act on a layer that is not currently the active one.&lt;br /&gt;
&lt;br /&gt;
== Reordering by Drag ==&lt;br /&gt;
&lt;br /&gt;
Click and drag any layer row up or down in the list to reorder it. A drop indicator line shows where it will land.  Release to confirm. The active layer follows the move.&lt;br /&gt;
&lt;br /&gt;
== How Transparency Works ==&lt;br /&gt;
&lt;br /&gt;
New layers added with the + button start completely transparent — every cell is empty (null). Empty cells show through to the layer below, so you only need to paint the parts you care about.&lt;br /&gt;
&lt;br /&gt;
The Background layer at the bottom of the stack uses solid black space cells as its floor. Layers above it are composited on top, with empty cells revealing whatever is beneath.&lt;br /&gt;
&lt;br /&gt;
This means you can, for example:&lt;br /&gt;
* Draw a background scene on the Background layer&lt;br /&gt;
* Add a new layer and paint TDF font text on top&lt;br /&gt;
* Adjust the font layer&#039;s opacity or blend mode without touching the background&lt;br /&gt;
&lt;br /&gt;
== Opacity and Blending ==&lt;br /&gt;
&lt;br /&gt;
When a layer has &#039;&#039;&#039;opacity below 100%&#039;&#039;&#039; or a &#039;&#039;&#039;non-Normal blend mode&#039;&#039;&#039;, Moebius² blends its cells with the layers beneath at the character-cell level. The blending works by:&lt;br /&gt;
&lt;br /&gt;
# Converting the foreground and background colours of both cells to RGB values using the document&#039;s palette&lt;br /&gt;
# Applying the blend formula and opacity&lt;br /&gt;
# Mapping the resulting RGB back to the nearest available palette colour&lt;br /&gt;
&lt;br /&gt;
Because ANSI art is constrained to a palette (16 EGA colours, or 256/true colour in extended mode), the result is an approximation. In 256-colour or true-colour mode the approximation is much more accurate since there are far more colours to snap to.&lt;br /&gt;
&lt;br /&gt;
=== Blend Modes ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Mode !! Description !! Typical use&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Normal&#039;&#039;&#039; || The top layer&#039;s cells replace those below (subject to opacity) || Default for all layers; use for standard stacking&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Multiply&#039;&#039;&#039; || Multiplies the colour values of both layers — always produces a darker result || Darkening effects, shadows, overlaying dark detail onto a background&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Screen&#039;&#039;&#039; || The inverse of Multiply — always produces a lighter result || Glows, lighting effects, brightening a base layer&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Overlay&#039;&#039;&#039; || Combines Multiply and Screen: dark areas get darker, light areas get lighter — increases contrast || Adding texture or contrast without a flat colour shift&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Blend modes only have a visible effect when the layer has cells that overlap with content below. A blank layer (all transparent) produces no visible change regardless of blend mode.&lt;br /&gt;
&lt;br /&gt;
== Merging and Flattening ==&lt;br /&gt;
&lt;br /&gt;
=== Merge Down (⊕) ===&lt;br /&gt;
&lt;br /&gt;
Permanently bakes the active layer into the layer directly below it, applying all opacity and blend mode settings as part of the merge. The active layer is removed and the result lives in the lower layer. This is not undoable after switching layers — use it when you are happy with the composited result and want to simplify the stack.&lt;br /&gt;
&lt;br /&gt;
=== Flatten All Layers (⊞) ===&lt;br /&gt;
&lt;br /&gt;
Composites every visible layer into a single new &#039;&#039;&#039;Background&#039;&#039;&#039; layer. The result is exactly what the canvas looks like on screen. All layer structure is lost. Use this before saving in a format that does not support layers (&amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt;, etc.), or to simplify a complex stack before continuing work.&lt;br /&gt;
&lt;br /&gt;
== Important Caveats ==&lt;br /&gt;
&lt;br /&gt;
; Switching layers resets undo history&lt;br /&gt;
: Clicking a different layer clears the undo/redo history for the current editing session. Make sure you&#039;re satisfied with your changes on a layer before switching away.&lt;br /&gt;
&lt;br /&gt;
; Non-mob formats flatten on save&lt;br /&gt;
: Saving as &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;.xbin&amp;lt;/code&amp;gt; writes the composited result of all visible layers. The per-layer data is not written to those formats. Only &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; files preserve the full layer stack.&lt;br /&gt;
&lt;br /&gt;
; Locked layers are still visible and composited&lt;br /&gt;
: Locking a layer only prevents editing — it does not hide it or remove it from the composite. To exclude a layer from the output, hide it with the visibility toggle instead.&lt;br /&gt;
&lt;br /&gt;
; The Background layer cannot be moved below another layer&lt;br /&gt;
: There is always at least one layer. The delete button and Move Down button are disabled when they would leave the stack empty or move below the bottom.&lt;br /&gt;
&lt;br /&gt;
== Typical Workflows ==&lt;br /&gt;
&lt;br /&gt;
=== Separating Elements ===&lt;br /&gt;
Draw your background on the Background layer. Add a new layer (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;N&amp;lt;/kbd&amp;gt;) for each distinct element — text, borders, foreground art. This lets you reposition, hide, or restyle each piece independently.&lt;br /&gt;
&lt;br /&gt;
=== Non-Destructive Colour Overlay ===&lt;br /&gt;
Draw a full-colour image on the Background layer. Add a layer above it, fill it with a solid colour at reduced opacity (e.g. 40%) with the Multiply or Screen blend mode to tint the image without altering the original cells.&lt;br /&gt;
&lt;br /&gt;
=== Safe Experimentation ===&lt;br /&gt;
Duplicate the active layer (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;J&amp;lt;/kbd&amp;gt;) before making a risky edit. If the result isn&#039;t what you wanted, delete the duplicate and the original is untouched.&lt;br /&gt;
&lt;br /&gt;
=== TDF Font Overlay ===&lt;br /&gt;
Keep background art on the Background layer. Switch to the font tool, add a new layer, and type your TDF text there. You can adjust opacity to let the background show through the font characters, or use Multiply to blend the font colours with the art below.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]]&lt;br /&gt;
[[Category:Layers]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_TheDraw_Fonts&amp;diff=135</id>
		<title>Moebius² TheDraw Fonts</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_TheDraw_Fonts&amp;diff=135"/>
		<updated>2026-06-07T20:12:46Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: /* Setting Up Your Font Folder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Using TDF Fonts in Moebius² =&lt;br /&gt;
&lt;br /&gt;
TDF (TheDraw Font) is a font format originating from the classic ANSI art editor TheDraw. TDF files contain one or more named fonts, each defining a set of characters rendered as blocks of ANSI art. Moebius² includes a full TDF font tool that lets you click anywhere on the canvas and type text in any loaded TDF font.&lt;br /&gt;
&lt;br /&gt;
== Font Types ==&lt;br /&gt;
&lt;br /&gt;
TDF fonts come in three types, which affects how colours are handled:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Description !! Colour behaviour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Outline&#039;&#039;&#039; || Characters defined by block-drawing characters with no embedded colour || Moebius² uses your current foreground and background colour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Block&#039;&#039;&#039; || Characters made of filled block characters || Moebius² uses your current foreground and background colour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Colour&#039;&#039;&#039; || Characters have colour data embedded in the font itself || Colours are fixed by the font; FG/BG swatches are hidden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your Font Folder ==&lt;br /&gt;
&lt;br /&gt;
Moebius² does not bundle a large TDF font library — you point it at a folder on your machine that contains &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; files. &amp;lt;br /&amp;gt;Roy of Superior Art Creations (roysac) has made available to download the fonts, you can download an individual font or the complete set [https://www.roysac.com/thedrawfonts-tdf.html here]. &#039;&#039;&#039;Many thanks Roy!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Activate the font tool (see [[#Activating the Font Tool|below]]).&lt;br /&gt;
# Click &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; in the TDF Fonts panel, or press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;T&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
# In the font picker, click &#039;&#039;&#039;Browse folder…&#039;&#039;&#039; at the top right.&lt;br /&gt;
# Select the folder that contains your &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; files. This can be a flat folder or one with subfolders — the picker supports folder navigation.&lt;br /&gt;
&lt;br /&gt;
Moebius² remembers the folder between sessions. Subfolders appear at the top of the font list in brackets (e.g. &amp;lt;code&amp;gt;[Blocktronics]&amp;lt;/code&amp;gt;); click one to navigate into it, and click &amp;lt;code&amp;gt;[..]&amp;lt;/code&amp;gt; to go back up.&lt;br /&gt;
&lt;br /&gt;
== Activating the Font Tool ==&lt;br /&gt;
&lt;br /&gt;
Click the &#039;&#039;&#039;TDF Font Text Tool&#039;&#039;&#039; button in the left sidebar (the bottom tool in the tools column). The TDF Fonts panel appears on the right side of the window.&lt;br /&gt;
&lt;br /&gt;
When the font tool is active, all keyboard input is directed to the canvas for font text entry — normal editing shortcuts are suspended until you switch to another tool.&lt;br /&gt;
&lt;br /&gt;
== The TDF Fonts Panel ==&lt;br /&gt;
&lt;br /&gt;
The panel on the right shows:&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;name&#039;&#039;&#039; of the currently selected font (or &amp;quot;No font selected&amp;quot;).&lt;br /&gt;
* A &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; button to open the font picker dialog.&lt;br /&gt;
* &#039;&#039;&#039;FG&#039;&#039;&#039; and &#039;&#039;&#039;BG&#039;&#039;&#039; colour swatches (hidden for colour fonts — see [[#Font Types|Font Types]] above). Click a swatch to change the colour used when stamping text with outline or block fonts.&lt;br /&gt;
&lt;br /&gt;
The panel can be &#039;&#039;&#039;resized&#039;&#039;&#039; by dragging the handle at its top edge. Clicking the &#039;&#039;&#039;TDF Fonts&#039;&#039;&#039; header moves the panel above or below the Layers panel — useful if you want it closer to the top of the right column.&lt;br /&gt;
&lt;br /&gt;
== The Font Picker Dialog ==&lt;br /&gt;
&lt;br /&gt;
Open the picker via &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; or &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;T&amp;lt;/kbd&amp;gt;. The dialog is split into two halves.&lt;br /&gt;
&lt;br /&gt;
=== Left: Font List ===&lt;br /&gt;
&lt;br /&gt;
* All fonts in the current folder are listed alphabetically.&lt;br /&gt;
* Subfolders appear at the top in brackets.&lt;br /&gt;
* Type in the &#039;&#039;&#039;Search fonts…&#039;&#039;&#039; box to filter the list by font name in real time. Searching skips into all fonts in the current folder — subdirectory entries are hidden during a search.&lt;br /&gt;
* &#039;&#039;&#039;Click&#039;&#039;&#039; a font name to select it and update the preview immediately.&lt;br /&gt;
* Use &amp;lt;kbd&amp;gt;↑&amp;lt;/kbd&amp;gt; / &amp;lt;kbd&amp;gt;↓&amp;lt;/kbd&amp;gt; arrow keys to step through the list (works whether focus is in the search box or anywhere in the dialog).&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Escape&amp;lt;/kbd&amp;gt; to close the dialog without changing the font.&lt;br /&gt;
&lt;br /&gt;
=== Right: Preview ===&lt;br /&gt;
&lt;br /&gt;
* Type any text into the input field at the top (default: &amp;quot;Moebius Rulez&amp;quot;) to preview it in the selected font.&lt;br /&gt;
* The preview updates live as you type or change fonts.&lt;br /&gt;
* For outline and block fonts, the preview uses your current foreground and background colours — change them in the palette and the preview refreshes automatically.&lt;br /&gt;
* A &#039;&#039;&#039;watermark&#039;&#039;&#039; in the lower-right corner of the preview shows the font&#039;s filename and its row height (e.g. &amp;lt;code&amp;gt;misfits.tdf  ·  7 rows&amp;lt;/code&amp;gt;). This is useful for judging which fonts will fit your canvas.&lt;br /&gt;
&lt;br /&gt;
Clicking outside the dialog closes it. The dialog can be repositioned by dragging its title bar.&lt;br /&gt;
&lt;br /&gt;
== Typing Text on the Canvas ==&lt;br /&gt;
&lt;br /&gt;
# With the font tool active and a font selected, &#039;&#039;&#039;click anywhere on the canvas&#039;&#039;&#039; to place the text cursor.&lt;br /&gt;
# &#039;&#039;&#039;Type normally&#039;&#039;&#039; — each keystroke stamps the corresponding TDF character onto the canvas at the cursor position.&lt;br /&gt;
# The cursor advances automatically after each character, respecting the font&#039;s spacing.&lt;br /&gt;
# If a character would run off the right edge of the canvas, the cursor wraps to the next line down.&lt;br /&gt;
# Press &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt; to move to the start of the next line manually.&lt;br /&gt;
# Press &amp;lt;kbd&amp;gt;Backspace&amp;lt;/kbd&amp;gt; to remove the last stamped character and return the cursor to its previous position.&lt;br /&gt;
# Click a new position on the canvas at any time to move the cursor there and start a new text run.&lt;br /&gt;
&lt;br /&gt;
Text is stamped directly onto the active layer as normal ANSI blocks — it becomes part of the canvas and can be edited with any other tool afterwards.&lt;br /&gt;
&lt;br /&gt;
=== Notes on backspace ===&lt;br /&gt;
&lt;br /&gt;
Backspace steps back through the characters typed &#039;&#039;since you last clicked on the canvas&#039;&#039;. Clicking to reposition the cursor resets this history. Undo (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Z&amp;lt;/kbd&amp;gt;) also works if you need to go further back.&lt;br /&gt;
&lt;br /&gt;
== Colour Fonts vs Outline/Block Fonts ==&lt;br /&gt;
&lt;br /&gt;
; Colour fonts&lt;br /&gt;
: The colours are baked into the font definition. The FG/BG swatches in the TDF Fonts panel are hidden. What you see in the preview is what gets stamped — you cannot change the colours.&lt;br /&gt;
&lt;br /&gt;
; Outline and block fonts&lt;br /&gt;
: The font characters are drawn using your active foreground and background colours. Change FG or BG in the palette (or via the swatches in the TDF Fonts panel) and the preview updates immediately. The next character you type will use the current colours, so you can mix colours mid-word by changing FG/BG between keystrokes.&lt;br /&gt;
&lt;br /&gt;
== Multiple Fonts in One .TDF File ==&lt;br /&gt;
&lt;br /&gt;
A single &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; file can contain more than one font. Each font inside the file appears as a separate entry in the font list with its own name. The watermark in the preview shows the filename for all of them, so you can tell which file they came from.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
* The row height shown in the preview watermark tells you how many canvas rows the font will consume. A 5-row font on a standard 80×25 canvas gives you five lines of text; a 16-row font only fits once.&lt;br /&gt;
* Colour fonts from classic BBS packs often use the full 16-colour EGA palette. If your document is in 256-colour or true-colour mode, the colours will be preserved.&lt;br /&gt;
* You can layer TDF text on top of existing art — stamp on a higher layer to keep the background intact and use the layer blend modes to integrate the text.&lt;br /&gt;
* Use &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Z&amp;lt;/kbd&amp;gt; generously while laying out text — each character stamp is a discrete undoable action.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]]&lt;br /&gt;
[[Category:TDF Fonts]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_TheDraw_Fonts&amp;diff=134</id>
		<title>Moebius² TheDraw Fonts</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_TheDraw_Fonts&amp;diff=134"/>
		<updated>2026-06-07T20:12:04Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: /* Setting Up Your Font Folder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Using TDF Fonts in Moebius² =&lt;br /&gt;
&lt;br /&gt;
TDF (TheDraw Font) is a font format originating from the classic ANSI art editor TheDraw. TDF files contain one or more named fonts, each defining a set of characters rendered as blocks of ANSI art. Moebius² includes a full TDF font tool that lets you click anywhere on the canvas and type text in any loaded TDF font.&lt;br /&gt;
&lt;br /&gt;
== Font Types ==&lt;br /&gt;
&lt;br /&gt;
TDF fonts come in three types, which affects how colours are handled:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Description !! Colour behaviour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Outline&#039;&#039;&#039; || Characters defined by block-drawing characters with no embedded colour || Moebius² uses your current foreground and background colour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Block&#039;&#039;&#039; || Characters made of filled block characters || Moebius² uses your current foreground and background colour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Colour&#039;&#039;&#039; || Characters have colour data embedded in the font itself || Colours are fixed by the font; FG/BG swatches are hidden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your Font Folder ==&lt;br /&gt;
&lt;br /&gt;
Moebius² does not bundle a large TDF font library — you point it at a folder on your machine that contains &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; files. &amp;lt;br /&amp;gt;Roy of Superior Art Creations (roysac) has made available to download the fonts, you can download an individual font or the complete set [https://www.roysac.com/thedrawfonts-tdf.html here]. Many thanks Roy!&lt;br /&gt;
&lt;br /&gt;
# Activate the font tool (see [[#Activating the Font Tool|below]]).&lt;br /&gt;
# Click &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; in the TDF Fonts panel, or press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;T&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
# In the font picker, click &#039;&#039;&#039;Browse folder…&#039;&#039;&#039; at the top right.&lt;br /&gt;
# Select the folder that contains your &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; files. This can be a flat folder or one with subfolders — the picker supports folder navigation.&lt;br /&gt;
&lt;br /&gt;
Moebius² remembers the folder between sessions. Subfolders appear at the top of the font list in brackets (e.g. &amp;lt;code&amp;gt;[Blocktronics]&amp;lt;/code&amp;gt;); click one to navigate into it, and click &amp;lt;code&amp;gt;[..]&amp;lt;/code&amp;gt; to go back up.&lt;br /&gt;
&lt;br /&gt;
== Activating the Font Tool ==&lt;br /&gt;
&lt;br /&gt;
Click the &#039;&#039;&#039;TDF Font Text Tool&#039;&#039;&#039; button in the left sidebar (the bottom tool in the tools column). The TDF Fonts panel appears on the right side of the window.&lt;br /&gt;
&lt;br /&gt;
When the font tool is active, all keyboard input is directed to the canvas for font text entry — normal editing shortcuts are suspended until you switch to another tool.&lt;br /&gt;
&lt;br /&gt;
== The TDF Fonts Panel ==&lt;br /&gt;
&lt;br /&gt;
The panel on the right shows:&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;name&#039;&#039;&#039; of the currently selected font (or &amp;quot;No font selected&amp;quot;).&lt;br /&gt;
* A &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; button to open the font picker dialog.&lt;br /&gt;
* &#039;&#039;&#039;FG&#039;&#039;&#039; and &#039;&#039;&#039;BG&#039;&#039;&#039; colour swatches (hidden for colour fonts — see [[#Font Types|Font Types]] above). Click a swatch to change the colour used when stamping text with outline or block fonts.&lt;br /&gt;
&lt;br /&gt;
The panel can be &#039;&#039;&#039;resized&#039;&#039;&#039; by dragging the handle at its top edge. Clicking the &#039;&#039;&#039;TDF Fonts&#039;&#039;&#039; header moves the panel above or below the Layers panel — useful if you want it closer to the top of the right column.&lt;br /&gt;
&lt;br /&gt;
== The Font Picker Dialog ==&lt;br /&gt;
&lt;br /&gt;
Open the picker via &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; or &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;T&amp;lt;/kbd&amp;gt;. The dialog is split into two halves.&lt;br /&gt;
&lt;br /&gt;
=== Left: Font List ===&lt;br /&gt;
&lt;br /&gt;
* All fonts in the current folder are listed alphabetically.&lt;br /&gt;
* Subfolders appear at the top in brackets.&lt;br /&gt;
* Type in the &#039;&#039;&#039;Search fonts…&#039;&#039;&#039; box to filter the list by font name in real time. Searching skips into all fonts in the current folder — subdirectory entries are hidden during a search.&lt;br /&gt;
* &#039;&#039;&#039;Click&#039;&#039;&#039; a font name to select it and update the preview immediately.&lt;br /&gt;
* Use &amp;lt;kbd&amp;gt;↑&amp;lt;/kbd&amp;gt; / &amp;lt;kbd&amp;gt;↓&amp;lt;/kbd&amp;gt; arrow keys to step through the list (works whether focus is in the search box or anywhere in the dialog).&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Escape&amp;lt;/kbd&amp;gt; to close the dialog without changing the font.&lt;br /&gt;
&lt;br /&gt;
=== Right: Preview ===&lt;br /&gt;
&lt;br /&gt;
* Type any text into the input field at the top (default: &amp;quot;Moebius Rulez&amp;quot;) to preview it in the selected font.&lt;br /&gt;
* The preview updates live as you type or change fonts.&lt;br /&gt;
* For outline and block fonts, the preview uses your current foreground and background colours — change them in the palette and the preview refreshes automatically.&lt;br /&gt;
* A &#039;&#039;&#039;watermark&#039;&#039;&#039; in the lower-right corner of the preview shows the font&#039;s filename and its row height (e.g. &amp;lt;code&amp;gt;misfits.tdf  ·  7 rows&amp;lt;/code&amp;gt;). This is useful for judging which fonts will fit your canvas.&lt;br /&gt;
&lt;br /&gt;
Clicking outside the dialog closes it. The dialog can be repositioned by dragging its title bar.&lt;br /&gt;
&lt;br /&gt;
== Typing Text on the Canvas ==&lt;br /&gt;
&lt;br /&gt;
# With the font tool active and a font selected, &#039;&#039;&#039;click anywhere on the canvas&#039;&#039;&#039; to place the text cursor.&lt;br /&gt;
# &#039;&#039;&#039;Type normally&#039;&#039;&#039; — each keystroke stamps the corresponding TDF character onto the canvas at the cursor position.&lt;br /&gt;
# The cursor advances automatically after each character, respecting the font&#039;s spacing.&lt;br /&gt;
# If a character would run off the right edge of the canvas, the cursor wraps to the next line down.&lt;br /&gt;
# Press &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt; to move to the start of the next line manually.&lt;br /&gt;
# Press &amp;lt;kbd&amp;gt;Backspace&amp;lt;/kbd&amp;gt; to remove the last stamped character and return the cursor to its previous position.&lt;br /&gt;
# Click a new position on the canvas at any time to move the cursor there and start a new text run.&lt;br /&gt;
&lt;br /&gt;
Text is stamped directly onto the active layer as normal ANSI blocks — it becomes part of the canvas and can be edited with any other tool afterwards.&lt;br /&gt;
&lt;br /&gt;
=== Notes on backspace ===&lt;br /&gt;
&lt;br /&gt;
Backspace steps back through the characters typed &#039;&#039;since you last clicked on the canvas&#039;&#039;. Clicking to reposition the cursor resets this history. Undo (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Z&amp;lt;/kbd&amp;gt;) also works if you need to go further back.&lt;br /&gt;
&lt;br /&gt;
== Colour Fonts vs Outline/Block Fonts ==&lt;br /&gt;
&lt;br /&gt;
; Colour fonts&lt;br /&gt;
: The colours are baked into the font definition. The FG/BG swatches in the TDF Fonts panel are hidden. What you see in the preview is what gets stamped — you cannot change the colours.&lt;br /&gt;
&lt;br /&gt;
; Outline and block fonts&lt;br /&gt;
: The font characters are drawn using your active foreground and background colours. Change FG or BG in the palette (or via the swatches in the TDF Fonts panel) and the preview updates immediately. The next character you type will use the current colours, so you can mix colours mid-word by changing FG/BG between keystrokes.&lt;br /&gt;
&lt;br /&gt;
== Multiple Fonts in One .TDF File ==&lt;br /&gt;
&lt;br /&gt;
A single &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; file can contain more than one font. Each font inside the file appears as a separate entry in the font list with its own name. The watermark in the preview shows the filename for all of them, so you can tell which file they came from.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
* The row height shown in the preview watermark tells you how many canvas rows the font will consume. A 5-row font on a standard 80×25 canvas gives you five lines of text; a 16-row font only fits once.&lt;br /&gt;
* Colour fonts from classic BBS packs often use the full 16-colour EGA palette. If your document is in 256-colour or true-colour mode, the colours will be preserved.&lt;br /&gt;
* You can layer TDF text on top of existing art — stamp on a higher layer to keep the background intact and use the layer blend modes to integrate the text.&lt;br /&gt;
* Use &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Z&amp;lt;/kbd&amp;gt; generously while laying out text — each character stamp is a discrete undoable action.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]]&lt;br /&gt;
[[Category:TDF Fonts]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=133</id>
		<title>Moebius²</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=133"/>
		<updated>2026-06-07T20:07:59Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Moebius-screenshot2.png|Moebius² Screenshot]]&lt;br /&gt;
&lt;br /&gt;
= Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² is the modern realisation of an ANSI Editor, with true colour support; for MacOS, Linux and Windows. The&lt;br /&gt;
major feature that differentiates it from [https://github.com/blocktronics/pablodraw PabloDraw] is the &#039;half-block&#039;&lt;br /&gt;
brush which allows editing in a style closer to Photoshop than a text editor, although you can still use the&lt;br /&gt;
function and cursor keys to draw with, and you should find that most of the text editing features from PabloDraw&lt;br /&gt;
are carried over to this editor. The editor is still a work in progress, but anyone who wants to try using it is&lt;br /&gt;
also encouraged to [https://github.com/christiansacks/moebius/issues log feature requests and bugs] on the&lt;br /&gt;
project&#039;s GitHub page.&lt;br /&gt;
&lt;br /&gt;
== Download packages ==&lt;br /&gt;
&lt;br /&gt;
Packaged binaries are available through Github [https://github.com/christiansacks/moebius/releases Releases] or&lt;br /&gt;
from the direct links below:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.dmg MacOS]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.Setup.exe Windows Installer]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.exe Windows Portable]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.AppImage Linux AppImage]&lt;br /&gt;
&lt;br /&gt;
== Installation &amp;amp; building ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
npm start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moebius² packages can be built easily with [https://github.com/electron-userland/electron-builder&lt;br /&gt;
electron-builder]. Note that a build for MacOS must be made on MacOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npm run-script build-mac&lt;br /&gt;
npm run-script build-win&lt;br /&gt;
npm run-script build-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Moebius² Server ==&lt;br /&gt;
&lt;br /&gt;
Moebius² features collaboration by multiple users on the same canvas through a server instance. Users connect to a&lt;br /&gt;
server which allows them to draw and chat. The server will also create hourly backups.&lt;br /&gt;
&lt;br /&gt;
To start a server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
node ./server.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will start a server with default settings. In this case a password will not be set and any value entered in&lt;br /&gt;
the Moebius² client will be accepted by the server. The server runs by default on port 8000. Moebius² clients can&lt;br /&gt;
modify the port by entering the server as &amp;lt;code&amp;gt;hostname:port&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following parameters can be set:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--file=filename.ans&amp;lt;/code&amp;gt; || Load an initial ANSI file after the server starts&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--pass=password&amp;lt;/code&amp;gt; || Set a server password which clients need to provide to log on&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--server_port=8000&amp;lt;/code&amp;gt; || Set the server port (default: 8000)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--web_port=80&amp;lt;/code&amp;gt; || Run the webserver for external viewing (default port: 80).&lt;br /&gt;
Enables live preview of the canvas and SAUCE information in a browser at&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://hostname.tld:web_port&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--path=pathname&amp;lt;/code&amp;gt; || Set a path for this server; users and web viewers connect to&lt;br /&gt;
&amp;lt;code&amp;gt;hostname.tld/path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--quiet=true/false&amp;lt;/code&amp;gt; || Suppress console output after the server has started&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--discord=url&amp;lt;/code&amp;gt; || Mirror server joins and chat activity via a&lt;br /&gt;
[https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks Discord Webhook]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Running the server with Docker ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;d rather not install Node.js on your host, a Docker image is provided.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039; [https://docs.docker.com/engine/install/ Docker Engine] with the Compose plugin (included in&lt;br /&gt;
Docker Desktop).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Create a data directory&#039;&#039;&#039; alongside the repo — this is where your &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;&lt;br /&gt;
file lives and persists across container restarts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure&#039;&#039;&#039; by creating a &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file (all values are optional — defaults are shown):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOEBIUS_PASS=yourpassword       # leave blank for open access&lt;br /&gt;
MOEBIUS_FILENAME=server.mob     # file to serve (created automatically if missing)&lt;br /&gt;
MOEBIUS_PORT=8000               # WebSocket port&lt;br /&gt;
MOEBIUS_COLUMNS=80              # canvas width  (new files only)&lt;br /&gt;
MOEBIUS_ROWS=25                 # canvas height (new files only)&lt;br /&gt;
DATA_DIR=./data                 # path to your data directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Build and start:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d --build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first run builds the image; subsequent starts are instant. To follow logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose logs -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Connect from Moebius²&#039;&#039;&#039; via &#039;&#039;&#039;Network → Connect to Server&#039;&#039;&#039; and enter &amp;lt;code&amp;gt;yourhost:8000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To stop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
* Uses modified Google&#039;s Material Icons — https://material.io/icons/&lt;br /&gt;
* Contains ANSI art by Alpha King (Blocktronics), Filth (Blocktronics) and burps (FUEL)&lt;br /&gt;
* Included fonts:&lt;br /&gt;
** Topaz originally appeared in Amiga Workbench, courtesy of Commodore Int.&lt;br /&gt;
** P0t-NOoDLE appears courtesy of Leo &#039;Nudel&#039; Davidson&lt;br /&gt;
** mO&#039;sOul appears courtesy of Desoto/Mo&#039;Soul&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Copyright 2022 Andy Herbert and 2026 Christian Sacks&lt;br /&gt;
&lt;br /&gt;
Licensed under the [https://github.com/christiansacks/moebius/blob/master/LICENSE.txt Apache License, version 2.0].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Moebius homepage: https://blocktronics.github.io/moebius/&lt;br /&gt;
* SAUCE specification: http://www.acid.org/info/sauce/sauce.htm&lt;br /&gt;
* How-to&#039;s&lt;br /&gt;
** [[Moebius²_Animations|Moebius² Animations]]&lt;br /&gt;
** [[Moebius²_TheDraw_Fonts|Moebius² TheDraw Fonts]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]][[Category:ANSI Art]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Category:TDF_Fonts&amp;diff=132</id>
		<title>Category:TDF Fonts</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Category:TDF_Fonts&amp;diff=132"/>
		<updated>2026-06-07T20:06:43Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_TheDraw_Fonts&amp;diff=131</id>
		<title>Moebius² TheDraw Fonts</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_TheDraw_Fonts&amp;diff=131"/>
		<updated>2026-06-07T20:06:31Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Using TDF Fonts in Moebius² =&lt;br /&gt;
&lt;br /&gt;
TDF (TheDraw Font) is a font format originating from the classic ANSI art editor TheDraw. TDF files contain one or more named fonts, each defining a set of characters rendered as blocks of ANSI art. Moebius² includes a full TDF font tool that lets you click anywhere on the canvas and type text in any loaded TDF font.&lt;br /&gt;
&lt;br /&gt;
== Font Types ==&lt;br /&gt;
&lt;br /&gt;
TDF fonts come in three types, which affects how colours are handled:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Description !! Colour behaviour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Outline&#039;&#039;&#039; || Characters defined by block-drawing characters with no embedded colour || Moebius² uses your current foreground and background colour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Block&#039;&#039;&#039; || Characters made of filled block characters || Moebius² uses your current foreground and background colour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Colour&#039;&#039;&#039; || Characters have colour data embedded in the font itself || Colours are fixed by the font; FG/BG swatches are hidden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your Font Folder ==&lt;br /&gt;
&lt;br /&gt;
Moebius² does not bundle a large TDF font library — you point it at a folder on your machine that contains &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; files. &amp;lt;br /&amp;gt;Roy of Superior Art Creations (roysac) has made available to download the fonts, you can download an individual font or the complete set [https://www.roysac.com/thedrawfonts-tdf.html here]. Many thanks Roy!&lt;br /&gt;
&lt;br /&gt;
# Activate the font tool (see [[#Activating the Font Tool|below]]).&lt;br /&gt;
# Click &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; in the TDF Fonts panel, or press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;T&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
# In the font picker, click &#039;&#039;&#039;Browse folder…&#039;&#039;&#039; at the top right.&lt;br /&gt;
# Select the folder that contains your &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; files. This can be a flat folder or one with subfolders — the picker supports folder navigation.&lt;br /&gt;
&lt;br /&gt;
Moebius² remembers the folder between sessions. Subfolders appear at the top of the font list in brackets (e.g. &amp;lt;code&amp;gt;[Blocktronics]&amp;lt;/code&amp;gt;); click one to navigate into it, and click &amp;lt;code&amp;gt;[..]&amp;lt;/code&amp;gt; to go back up.&lt;br /&gt;
&lt;br /&gt;
A good source of TDF fonts is the [https://16colo.rs 16colors] archive and various BBS-era font packs.&lt;br /&gt;
&lt;br /&gt;
== Activating the Font Tool ==&lt;br /&gt;
&lt;br /&gt;
Click the &#039;&#039;&#039;TDF Font Text Tool&#039;&#039;&#039; button in the left sidebar (the bottom tool in the tools column). The TDF Fonts panel appears on the right side of the window.&lt;br /&gt;
&lt;br /&gt;
When the font tool is active, all keyboard input is directed to the canvas for font text entry — normal editing shortcuts are suspended until you switch to another tool.&lt;br /&gt;
&lt;br /&gt;
== The TDF Fonts Panel ==&lt;br /&gt;
&lt;br /&gt;
The panel on the right shows:&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;name&#039;&#039;&#039; of the currently selected font (or &amp;quot;No font selected&amp;quot;).&lt;br /&gt;
* A &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; button to open the font picker dialog.&lt;br /&gt;
* &#039;&#039;&#039;FG&#039;&#039;&#039; and &#039;&#039;&#039;BG&#039;&#039;&#039; colour swatches (hidden for colour fonts — see [[#Font Types|Font Types]] above). Click a swatch to change the colour used when stamping text with outline or block fonts.&lt;br /&gt;
&lt;br /&gt;
The panel can be &#039;&#039;&#039;resized&#039;&#039;&#039; by dragging the handle at its top edge. Clicking the &#039;&#039;&#039;TDF Fonts&#039;&#039;&#039; header moves the panel above or below the Layers panel — useful if you want it closer to the top of the right column.&lt;br /&gt;
&lt;br /&gt;
== The Font Picker Dialog ==&lt;br /&gt;
&lt;br /&gt;
Open the picker via &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; or &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;T&amp;lt;/kbd&amp;gt;. The dialog is split into two halves.&lt;br /&gt;
&lt;br /&gt;
=== Left: Font List ===&lt;br /&gt;
&lt;br /&gt;
* All fonts in the current folder are listed alphabetically.&lt;br /&gt;
* Subfolders appear at the top in brackets.&lt;br /&gt;
* Type in the &#039;&#039;&#039;Search fonts…&#039;&#039;&#039; box to filter the list by font name in real time. Searching skips into all fonts in the current folder — subdirectory entries are hidden during a search.&lt;br /&gt;
* &#039;&#039;&#039;Click&#039;&#039;&#039; a font name to select it and update the preview immediately.&lt;br /&gt;
* Use &amp;lt;kbd&amp;gt;↑&amp;lt;/kbd&amp;gt; / &amp;lt;kbd&amp;gt;↓&amp;lt;/kbd&amp;gt; arrow keys to step through the list (works whether focus is in the search box or anywhere in the dialog).&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Escape&amp;lt;/kbd&amp;gt; to close the dialog without changing the font.&lt;br /&gt;
&lt;br /&gt;
=== Right: Preview ===&lt;br /&gt;
&lt;br /&gt;
* Type any text into the input field at the top (default: &amp;quot;Moebius Rulez&amp;quot;) to preview it in the selected font.&lt;br /&gt;
* The preview updates live as you type or change fonts.&lt;br /&gt;
* For outline and block fonts, the preview uses your current foreground and background colours — change them in the palette and the preview refreshes automatically.&lt;br /&gt;
* A &#039;&#039;&#039;watermark&#039;&#039;&#039; in the lower-right corner of the preview shows the font&#039;s filename and its row height (e.g. &amp;lt;code&amp;gt;misfits.tdf  ·  7 rows&amp;lt;/code&amp;gt;). This is useful for judging which fonts will fit your canvas.&lt;br /&gt;
&lt;br /&gt;
Clicking outside the dialog closes it. The dialog can be repositioned by dragging its title bar.&lt;br /&gt;
&lt;br /&gt;
== Typing Text on the Canvas ==&lt;br /&gt;
&lt;br /&gt;
# With the font tool active and a font selected, &#039;&#039;&#039;click anywhere on the canvas&#039;&#039;&#039; to place the text cursor.&lt;br /&gt;
# &#039;&#039;&#039;Type normally&#039;&#039;&#039; — each keystroke stamps the corresponding TDF character onto the canvas at the cursor position.&lt;br /&gt;
# The cursor advances automatically after each character, respecting the font&#039;s spacing.&lt;br /&gt;
# If a character would run off the right edge of the canvas, the cursor wraps to the next line down.&lt;br /&gt;
# Press &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt; to move to the start of the next line manually.&lt;br /&gt;
# Press &amp;lt;kbd&amp;gt;Backspace&amp;lt;/kbd&amp;gt; to remove the last stamped character and return the cursor to its previous position.&lt;br /&gt;
# Click a new position on the canvas at any time to move the cursor there and start a new text run.&lt;br /&gt;
&lt;br /&gt;
Text is stamped directly onto the active layer as normal ANSI blocks — it becomes part of the canvas and can be edited with any other tool afterwards.&lt;br /&gt;
&lt;br /&gt;
=== Notes on backspace ===&lt;br /&gt;
&lt;br /&gt;
Backspace steps back through the characters typed &#039;&#039;since you last clicked on the canvas&#039;&#039;. Clicking to reposition the cursor resets this history. Undo (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Z&amp;lt;/kbd&amp;gt;) also works if you need to go further back.&lt;br /&gt;
&lt;br /&gt;
== Colour Fonts vs Outline/Block Fonts ==&lt;br /&gt;
&lt;br /&gt;
; Colour fonts&lt;br /&gt;
: The colours are baked into the font definition. The FG/BG swatches in the TDF Fonts panel are hidden. What you see in the preview is what gets stamped — you cannot change the colours.&lt;br /&gt;
&lt;br /&gt;
; Outline and block fonts&lt;br /&gt;
: The font characters are drawn using your active foreground and background colours. Change FG or BG in the palette (or via the swatches in the TDF Fonts panel) and the preview updates immediately. The next character you type will use the current colours, so you can mix colours mid-word by changing FG/BG between keystrokes.&lt;br /&gt;
&lt;br /&gt;
== Multiple Fonts in One .TDF File ==&lt;br /&gt;
&lt;br /&gt;
A single &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; file can contain more than one font. Each font inside the file appears as a separate entry in the font list with its own name. The watermark in the preview shows the filename for all of them, so you can tell which file they came from.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
* The row height shown in the preview watermark tells you how many canvas rows the font will consume. A 5-row font on a standard 80×25 canvas gives you five lines of text; a 16-row font only fits once.&lt;br /&gt;
* Colour fonts from classic BBS packs often use the full 16-colour EGA palette. If your document is in 256-colour or true-colour mode, the colours will be preserved.&lt;br /&gt;
* You can layer TDF text on top of existing art — stamp on a higher layer to keep the background intact and use the layer blend modes to integrate the text.&lt;br /&gt;
* Use &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Z&amp;lt;/kbd&amp;gt; generously while laying out text — each character stamp is a discrete undoable action.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]]&lt;br /&gt;
[[Category:TDF Fonts]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_TheDraw_Fonts&amp;diff=130</id>
		<title>Moebius² TheDraw Fonts</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_TheDraw_Fonts&amp;diff=130"/>
		<updated>2026-06-07T20:05:47Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;= Using TDF Fonts in Moebius² =  TDF (TheDraw Font) is a font format originating from the classic ANSI art editor TheDraw. TDF files contain one or more named fonts, each defining a set of characters rendered as blocks of ANSI art. Moebius² includes a full TDF font tool that lets you click anywhere on the canvas and type text in any loaded TDF font.  == Font Types ==  TDF fonts come in three types, which affects how colours are handled:  {| class=&amp;quot;wikitable&amp;quot; ! Type !!...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Using TDF Fonts in Moebius² =&lt;br /&gt;
&lt;br /&gt;
TDF (TheDraw Font) is a font format originating from the classic ANSI art editor TheDraw. TDF files contain one or more named fonts, each defining a set of characters rendered as blocks of ANSI art. Moebius² includes a full TDF font tool that lets you click anywhere on the canvas and type text in any loaded TDF font.&lt;br /&gt;
&lt;br /&gt;
== Font Types ==&lt;br /&gt;
&lt;br /&gt;
TDF fonts come in three types, which affects how colours are handled:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Description !! Colour behaviour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Outline&#039;&#039;&#039; || Characters defined by block-drawing characters with no embedded colour || Moebius² uses your current foreground and background colour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Block&#039;&#039;&#039; || Characters made of filled block characters || Moebius² uses your current foreground and background colour&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Colour&#039;&#039;&#039; || Characters have colour data embedded in the font itself || Colours are fixed by the font; FG/BG swatches are hidden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Setting Up Your Font Folder ==&lt;br /&gt;
&lt;br /&gt;
Moebius² does not bundle a large TDF font library — you point it at a folder on your machine that contains &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; files. &amp;lt;br /&amp;gt;Roy of Superior Art Creations (roysac) has made available to download the fonts, you can download an individual font or the complete set [https://www.roysac.com/thedrawfonts-tdf.html here]. Many thanks Roy!&lt;br /&gt;
&lt;br /&gt;
# Activate the font tool (see [[#Activating the Font Tool|below]]).&lt;br /&gt;
# Click &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; in the TDF Fonts panel, or press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;T&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
# In the font picker, click &#039;&#039;&#039;Browse folder…&#039;&#039;&#039; at the top right.&lt;br /&gt;
# Select the folder that contains your &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; files. This can be a flat folder or one with subfolders — the picker supports folder navigation.&lt;br /&gt;
&lt;br /&gt;
Moebius² remembers the folder between sessions. Subfolders appear at the top of the font list in brackets (e.g. &amp;lt;code&amp;gt;[Blocktronics]&amp;lt;/code&amp;gt;); click one to navigate into it, and click &amp;lt;code&amp;gt;[..]&amp;lt;/code&amp;gt; to go back up.&lt;br /&gt;
&lt;br /&gt;
A good source of TDF fonts is the [https://16colo.rs 16colors] archive and various BBS-era font packs.&lt;br /&gt;
&lt;br /&gt;
== Activating the Font Tool ==&lt;br /&gt;
&lt;br /&gt;
Click the &#039;&#039;&#039;TDF Font Text Tool&#039;&#039;&#039; button in the left sidebar (the bottom tool in the tools column). The TDF Fonts panel appears on the right side of the window.&lt;br /&gt;
&lt;br /&gt;
When the font tool is active, all keyboard input is directed to the canvas for font text entry — normal editing shortcuts are suspended until you switch to another tool.&lt;br /&gt;
&lt;br /&gt;
== The TDF Fonts Panel ==&lt;br /&gt;
&lt;br /&gt;
The panel on the right shows:&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;name&#039;&#039;&#039; of the currently selected font (or &amp;quot;No font selected&amp;quot;).&lt;br /&gt;
* A &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; button to open the font picker dialog.&lt;br /&gt;
* &#039;&#039;&#039;FG&#039;&#039;&#039; and &#039;&#039;&#039;BG&#039;&#039;&#039; colour swatches (hidden for colour fonts — see [[#Font Types|Font Types]] above). Click a swatch to change the colour used when stamping text with outline or block fonts.&lt;br /&gt;
&lt;br /&gt;
The panel can be &#039;&#039;&#039;resized&#039;&#039;&#039; by dragging the handle at its top edge. Clicking the &#039;&#039;&#039;TDF Fonts&#039;&#039;&#039; header moves the panel above or below the Layers panel — useful if you want it closer to the top of the right column.&lt;br /&gt;
&lt;br /&gt;
== The Font Picker Dialog ==&lt;br /&gt;
&lt;br /&gt;
Open the picker via &#039;&#039;&#039;Choose Font…&#039;&#039;&#039; or &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;T&amp;lt;/kbd&amp;gt;. The dialog is split into two halves.&lt;br /&gt;
&lt;br /&gt;
=== Left: Font List ===&lt;br /&gt;
&lt;br /&gt;
* All fonts in the current folder are listed alphabetically.&lt;br /&gt;
* Subfolders appear at the top in brackets.&lt;br /&gt;
* Type in the &#039;&#039;&#039;Search fonts…&#039;&#039;&#039; box to filter the list by font name in real time. Searching skips into all fonts in the current folder — subdirectory entries are hidden during a search.&lt;br /&gt;
* &#039;&#039;&#039;Click&#039;&#039;&#039; a font name to select it and update the preview immediately.&lt;br /&gt;
* Use &amp;lt;kbd&amp;gt;↑&amp;lt;/kbd&amp;gt; / &amp;lt;kbd&amp;gt;↓&amp;lt;/kbd&amp;gt; arrow keys to step through the list (works whether focus is in the search box or anywhere in the dialog).&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Escape&amp;lt;/kbd&amp;gt; to close the dialog without changing the font.&lt;br /&gt;
&lt;br /&gt;
=== Right: Preview ===&lt;br /&gt;
&lt;br /&gt;
* Type any text into the input field at the top (default: &amp;quot;Moebius Rulez&amp;quot;) to preview it in the selected font.&lt;br /&gt;
* The preview updates live as you type or change fonts.&lt;br /&gt;
* For outline and block fonts, the preview uses your current foreground and background colours — change them in the palette and the preview refreshes automatically.&lt;br /&gt;
* A &#039;&#039;&#039;watermark&#039;&#039;&#039; in the lower-right corner of the preview shows the font&#039;s filename and its row height (e.g. &amp;lt;code&amp;gt;misfits.tdf  ·  7 rows&amp;lt;/code&amp;gt;). This is useful for judging which fonts will fit your canvas.&lt;br /&gt;
&lt;br /&gt;
Clicking outside the dialog closes it. The dialog can be repositioned by dragging its title bar.&lt;br /&gt;
&lt;br /&gt;
== Typing Text on the Canvas ==&lt;br /&gt;
&lt;br /&gt;
# With the font tool active and a font selected, &#039;&#039;&#039;click anywhere on the canvas&#039;&#039;&#039; to place the text cursor.&lt;br /&gt;
# &#039;&#039;&#039;Type normally&#039;&#039;&#039; — each keystroke stamps the corresponding TDF character onto the canvas at the cursor position.&lt;br /&gt;
# The cursor advances automatically after each character, respecting the font&#039;s spacing.&lt;br /&gt;
# If a character would run off the right edge of the canvas, the cursor wraps to the next line down.&lt;br /&gt;
# Press &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt; to move to the start of the next line manually.&lt;br /&gt;
# Press &amp;lt;kbd&amp;gt;Backspace&amp;lt;/kbd&amp;gt; to remove the last stamped character and return the cursor to its previous position.&lt;br /&gt;
# Click a new position on the canvas at any time to move the cursor there and start a new text run.&lt;br /&gt;
&lt;br /&gt;
Text is stamped directly onto the active layer as normal ANSI blocks — it becomes part of the canvas and can be edited with any other tool afterwards.&lt;br /&gt;
&lt;br /&gt;
=== Notes on backspace ===&lt;br /&gt;
&lt;br /&gt;
Backspace steps back through the characters typed &#039;&#039;since you last clicked on the canvas&#039;&#039;. Clicking to reposition the cursor resets this history. Undo (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Z&amp;lt;/kbd&amp;gt;) also works if you need to go further back.&lt;br /&gt;
&lt;br /&gt;
== Colour Fonts vs Outline/Block Fonts ==&lt;br /&gt;
&lt;br /&gt;
; Colour fonts&lt;br /&gt;
: The colours are baked into the font definition. The FG/BG swatches in the TDF Fonts panel are hidden. What you see in the preview is what gets stamped — you cannot change the colours.&lt;br /&gt;
&lt;br /&gt;
; Outline and block fonts&lt;br /&gt;
: The font characters are drawn using your active foreground and background colours. Change FG or BG in the palette (or via the swatches in the TDF Fonts panel) and the preview updates immediately. The next character you type will use the current colours, so you can mix colours mid-word by changing FG/BG between keystrokes.&lt;br /&gt;
&lt;br /&gt;
== Multiple Fonts in One .TDF File ==&lt;br /&gt;
&lt;br /&gt;
A single &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; file can contain more than one font. Each font inside the file appears as a separate entry in the font list with its own name. The watermark in the preview shows the filename for all of them, so you can tell which file they came from.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
* The row height shown in the preview watermark tells you how many canvas rows the font will consume. A 5-row font on a standard 80×25 canvas gives you five lines of text; a 16-row font only fits once.&lt;br /&gt;
* Colour fonts from classic BBS packs often use the full 16-colour EGA palette. If your document is in 256-colour or true-colour mode, the colours will be preserved.&lt;br /&gt;
* You can layer TDF text on top of existing art — stamp on a higher layer to keep the background intact and use the layer blend modes to integrate the text.&lt;br /&gt;
* Use &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Z&amp;lt;/kbd&amp;gt; generously while laying out text — each character stamp is a discrete undoable action.&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=129</id>
		<title>Moebius²</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=129"/>
		<updated>2026-06-06T16:00:10Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Moebius-screenshot2.png|Moebius² Screenshot]]&lt;br /&gt;
&lt;br /&gt;
= Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² is the modern realisation of an ANSI Editor, with true colour support; for MacOS, Linux and Windows. The&lt;br /&gt;
major feature that differentiates it from [https://github.com/blocktronics/pablodraw PabloDraw] is the &#039;half-block&#039;&lt;br /&gt;
brush which allows editing in a style closer to Photoshop than a text editor, although you can still use the&lt;br /&gt;
function and cursor keys to draw with, and you should find that most of the text editing features from PabloDraw&lt;br /&gt;
are carried over to this editor. The editor is still a work in progress, but anyone who wants to try using it is&lt;br /&gt;
also encouraged to [https://github.com/christiansacks/moebius/issues log feature requests and bugs] on the&lt;br /&gt;
project&#039;s GitHub page.&lt;br /&gt;
&lt;br /&gt;
== Download packages ==&lt;br /&gt;
&lt;br /&gt;
Packaged binaries are available through Github [https://github.com/christiansacks/moebius/releases Releases] or&lt;br /&gt;
from the direct links below:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.dmg MacOS]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.Setup.exe Windows Installer]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.exe Windows Portable]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.AppImage Linux AppImage]&lt;br /&gt;
&lt;br /&gt;
== Installation &amp;amp; building ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
npm start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moebius² packages can be built easily with [https://github.com/electron-userland/electron-builder&lt;br /&gt;
electron-builder]. Note that a build for MacOS must be made on MacOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npm run-script build-mac&lt;br /&gt;
npm run-script build-win&lt;br /&gt;
npm run-script build-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Moebius² Server ==&lt;br /&gt;
&lt;br /&gt;
Moebius² features collaboration by multiple users on the same canvas through a server instance. Users connect to a&lt;br /&gt;
server which allows them to draw and chat. The server will also create hourly backups.&lt;br /&gt;
&lt;br /&gt;
To start a server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
node ./server.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will start a server with default settings. In this case a password will not be set and any value entered in&lt;br /&gt;
the Moebius² client will be accepted by the server. The server runs by default on port 8000. Moebius² clients can&lt;br /&gt;
modify the port by entering the server as &amp;lt;code&amp;gt;hostname:port&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following parameters can be set:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--file=filename.ans&amp;lt;/code&amp;gt; || Load an initial ANSI file after the server starts&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--pass=password&amp;lt;/code&amp;gt; || Set a server password which clients need to provide to log on&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--server_port=8000&amp;lt;/code&amp;gt; || Set the server port (default: 8000)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--web_port=80&amp;lt;/code&amp;gt; || Run the webserver for external viewing (default port: 80).&lt;br /&gt;
Enables live preview of the canvas and SAUCE information in a browser at&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://hostname.tld:web_port&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--path=pathname&amp;lt;/code&amp;gt; || Set a path for this server; users and web viewers connect to&lt;br /&gt;
&amp;lt;code&amp;gt;hostname.tld/path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--quiet=true/false&amp;lt;/code&amp;gt; || Suppress console output after the server has started&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--discord=url&amp;lt;/code&amp;gt; || Mirror server joins and chat activity via a&lt;br /&gt;
[https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks Discord Webhook]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Running the server with Docker ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;d rather not install Node.js on your host, a Docker image is provided.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039; [https://docs.docker.com/engine/install/ Docker Engine] with the Compose plugin (included in&lt;br /&gt;
Docker Desktop).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Create a data directory&#039;&#039;&#039; alongside the repo — this is where your &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;&lt;br /&gt;
file lives and persists across container restarts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure&#039;&#039;&#039; by creating a &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file (all values are optional — defaults are shown):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOEBIUS_PASS=yourpassword       # leave blank for open access&lt;br /&gt;
MOEBIUS_FILENAME=server.mob     # file to serve (created automatically if missing)&lt;br /&gt;
MOEBIUS_PORT=8000               # WebSocket port&lt;br /&gt;
MOEBIUS_COLUMNS=80              # canvas width  (new files only)&lt;br /&gt;
MOEBIUS_ROWS=25                 # canvas height (new files only)&lt;br /&gt;
DATA_DIR=./data                 # path to your data directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Build and start:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d --build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first run builds the image; subsequent starts are instant. To follow logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose logs -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Connect from Moebius²&#039;&#039;&#039; via &#039;&#039;&#039;Network → Connect to Server&#039;&#039;&#039; and enter &amp;lt;code&amp;gt;yourhost:8000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To stop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
* Uses modified Google&#039;s Material Icons — https://material.io/icons/&lt;br /&gt;
* Contains ANSI art by Alpha King (Blocktronics), Filth (Blocktronics) and burps (FUEL)&lt;br /&gt;
* Included fonts:&lt;br /&gt;
** Topaz originally appeared in Amiga Workbench, courtesy of Commodore Int.&lt;br /&gt;
** P0t-NOoDLE appears courtesy of Leo &#039;Nudel&#039; Davidson&lt;br /&gt;
** mO&#039;sOul appears courtesy of Desoto/Mo&#039;Soul&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Copyright 2022 Andy Herbert and 2026 Christian Sacks&lt;br /&gt;
&lt;br /&gt;
Licensed under the [https://github.com/christiansacks/moebius/blob/master/LICENSE.txt Apache License, version 2.0].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Moebius homepage: https://blocktronics.github.io/moebius/&lt;br /&gt;
* SAUCE specification: http://www.acid.org/info/sauce/sauce.htm&lt;br /&gt;
* How-to&#039;s&lt;br /&gt;
** [[Moebius²_Animations|Moebius² Animations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]][[Category:ANSI Art]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Category:ANSImation&amp;diff=128</id>
		<title>Category:ANSImation</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Category:ANSImation&amp;diff=128"/>
		<updated>2026-06-06T15:49:02Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_Animations&amp;diff=127</id>
		<title>Moebius² Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_Animations&amp;diff=127"/>
		<updated>2026-06-06T15:35:49Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: /* Collaborative Animation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Creating Animations in Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² supports frame-based animations saved in the native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; format, with export to Animated PNG&lt;br /&gt;
(APNG) and ANSImation (&amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;) for sharing.&lt;br /&gt;
&lt;br /&gt;
== Enabling Animation Mode ==          &lt;br /&gt;
&lt;br /&gt;
Animation mode is off by default so that regular single-image editing is unaffected.&lt;br /&gt;
&lt;br /&gt;
To enable it:&lt;br /&gt;
&lt;br /&gt;
* Go to &#039;&#039;&#039;View → Animation Mode&#039;&#039;&#039;, or&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;M&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Animation Panel&#039;&#039;&#039; will appear on the right side of the window (below the Layers panel). Your existing&lt;br /&gt;
canvas automatically becomes Frame 1.&lt;br /&gt;
&lt;br /&gt;
To disable animation mode, use the same menu item or shortcut. Note that disabling it collapses all frames back to&lt;br /&gt;
a single image (the current frame is kept).&lt;br /&gt;
&lt;br /&gt;
== The Animation Panel ==&lt;br /&gt;
&lt;br /&gt;
The Animation Panel contains everything you need to manage frames.&lt;br /&gt;
&lt;br /&gt;
=== Transport Controls ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! Action&lt;br /&gt;
|-&lt;br /&gt;
| ⏮ || Jump to first frame&lt;br /&gt;
|-&lt;br /&gt;
| ◀ || Previous frame&lt;br /&gt;
|-&lt;br /&gt;
| ▶ || Play / Pause (flip-book style)&lt;br /&gt;
|-&lt;br /&gt;
| ▶̃ || Play as ANSImation (streaming, terminal-style)&lt;br /&gt;
|-&lt;br /&gt;
| ▶ || Next frame&lt;br /&gt;
|-&lt;br /&gt;
| ⏭ || Jump to last frame&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Frame X / Y&#039;&#039;&#039; counter shows your current position in the sequence.&lt;br /&gt;
&lt;br /&gt;
=== Frame Settings ===&lt;br /&gt;
&lt;br /&gt;
Each frame has its own settings, editable when that frame is selected:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FPS&#039;&#039;&#039; || Global playback speed in frames per second (1–60). Applies to all frames that don&#039;t have a per-frame&lt;br /&gt;
delay override. Default: 8 fps.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Delay&#039;&#039;&#039; || Per-frame delay in milliseconds. When set to a non-zero value, this overrides the global FPS for&lt;br /&gt;
that specific frame. Useful for pauses or variable-speed effects. Leave at 0 to use the global FPS.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Reveal&#039;&#039;&#039; || The transition effect used when playing this frame as an ANSImation stream. See [[#Reveal&lt;br /&gt;
Effects|Reveal Effects]] below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Scene Break&#039;&#039;&#039; || When checked, this frame starts a new scene — the canvas is fully cleared before this frame&lt;br /&gt;
is drawn during stream playback. Disabled on Frame 1 (always a scene break). See [[#Scenes vs Sub-frames|Scenes vs&lt;br /&gt;
Sub-frames]] below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adding Frames ===&lt;br /&gt;
&lt;br /&gt;
Three buttons add new frames after the currently selected frame:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! What it creates&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Clone&#039;&#039;&#039; || A full copy of the current frame. The clone starts as a sub-frame (no scene break). Use this as&lt;br /&gt;
the starting point for incremental changes — the classic animation workflow.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Sub&#039;&#039;&#039; || A blank frame marked as a sub-frame (no scene break). Use when you want to paint something fresh&lt;br /&gt;
that builds on a running scene.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Scene&#039;&#039;&#039; || A blank frame marked as a scene break. The canvas clears before this frame plays, starting a new&lt;br /&gt;
scene from scratch.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deleting and Reordering ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;✕ Del&#039;&#039;&#039; removes the current frame. The button is disabled when only one frame exists.&lt;br /&gt;
* Frames can be &#039;&#039;&#039;dragged and dropped&#039;&#039;&#039; to reorder them — click and drag any frame card in the strip at the&lt;br /&gt;
bottom of the panel.&lt;br /&gt;
&lt;br /&gt;
=== The Frame Strip ===&lt;br /&gt;
&lt;br /&gt;
The strip at the bottom of the Animation Panel shows a card for every frame:&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;active frame&#039;&#039;&#039; is highlighted.&lt;br /&gt;
* &#039;&#039;&#039;Scene break&#039;&#039;&#039; frames have a distinct border colour.&lt;br /&gt;
* Each card shows the frame number and either its delay (in ms) or its reveal effect name.&lt;br /&gt;
* &#039;&#039;&#039;Click&#039;&#039;&#039; a card to jump to that frame.&lt;br /&gt;
* &#039;&#039;&#039;Drag&#039;&#039;&#039; a card left or right to reorder it.&lt;br /&gt;
* Scroll the strip horizontally with the mouse wheel.&lt;br /&gt;
&lt;br /&gt;
=== Resizing and Docking ===&lt;br /&gt;
&lt;br /&gt;
* Drag the resize handle at the top of the panel to make it taller or shorter.&lt;br /&gt;
* Click the &#039;&#039;&#039;⇅&#039;&#039;&#039; button to move the panel to the &#039;&#039;&#039;bottom&#039;&#039;&#039; of the window (useful on wide monitors). Click&lt;br /&gt;
&#039;&#039;&#039;⇄&#039;&#039;&#039; to move it back to the right panel.&lt;br /&gt;
&lt;br /&gt;
== Scenes vs Sub-frames ==&lt;br /&gt;
&lt;br /&gt;
Understanding scenes and sub-frames is key to getting the most out of ANSImation export.&lt;br /&gt;
&lt;br /&gt;
; Scene break frame&lt;br /&gt;
: The canvas is wiped blank before this frame is drawn during stream playback. Frame 1 is always a scene break.&lt;br /&gt;
Shown with a distinct colour in the frame strip.&lt;br /&gt;
&lt;br /&gt;
; Sub-frame&lt;br /&gt;
: Builds on whatever was already on screen. During stream playback, only the differences (the new cells) are&lt;br /&gt;
written — giving a smooth incremental-draw or overlay effect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typical workflows:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Flip-book animation&#039;&#039;&#039; — each frame is a scene break with its own fully-drawn image. Plays back fast and is&lt;br /&gt;
best exported as APNG.&lt;br /&gt;
* &#039;&#039;&#039;ANSImation / typewriter effect&#039;&#039;&#039; — Frame 1 is a scene, subsequent frames are sub-frames that each reveal a&lt;br /&gt;
little more of the image, simulating the look of a terminal drawing in real time.&lt;br /&gt;
* &#039;&#039;&#039;Mixed&#039;&#039;&#039; — multiple scenes each consisting of several sub-frame steps.&lt;br /&gt;
&lt;br /&gt;
== Playback Modes ==&lt;br /&gt;
&lt;br /&gt;
=== Flip Playback (▶) ===&lt;br /&gt;
&lt;br /&gt;
Cycles through all frames at the configured FPS (or per-frame delay). Each frame is displayed in full. This is your&lt;br /&gt;
standard animation preview and is what APNG export captures.&lt;br /&gt;
&lt;br /&gt;
=== ANSImation Streaming (▶̃) ===&lt;br /&gt;
&lt;br /&gt;
Replays the animation as a raw ANSI byte stream, the way it would look in a classic terminal. The &#039;&#039;&#039;Speed&#039;&#039;&#039;&lt;br /&gt;
dropdown controls how fast the bytes are fed:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Speed !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 2400 baud || Very slow — authentic retro BBS speed&lt;br /&gt;
|-&lt;br /&gt;
| 9600 baud || Slow — still noticeably character-by-character&lt;br /&gt;
|-&lt;br /&gt;
| Slow || Relaxed streaming pace&lt;br /&gt;
|-&lt;br /&gt;
| Medium || Comfortable viewing speed&lt;br /&gt;
|-&lt;br /&gt;
| Fast || Near-instant with visible flow&lt;br /&gt;
|-&lt;br /&gt;
| Max || As fast as the renderer can go&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A progress bar appears at the bottom of the panel during streaming. Clicking ▶̃ again stops playback and restores&lt;br /&gt;
the canvas to the current editing frame.&lt;br /&gt;
&lt;br /&gt;
== Reveal Effects ==&lt;br /&gt;
&lt;br /&gt;
Each frame can have a reveal effect applied during ANSImation stream playback. The effect controls how the frame&#039;s&lt;br /&gt;
content is &#039;&#039;written&#039;&#039; to the screen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Effect !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Inchworm || Default. Draws left-to-right, top-to-bottom, like a terminal cursor.&lt;br /&gt;
|-&lt;br /&gt;
| Instant || The entire frame appears at once with no incremental drawing.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Down || Reveals the frame top-to-bottom in rows.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Up || Reveals the frame bottom-to-top.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Left || Reveals right-to-left by column.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Right || Reveals left-to-right by column.&lt;br /&gt;
|-&lt;br /&gt;
| Diagonal || Reveals along a diagonal sweep.&lt;br /&gt;
|-&lt;br /&gt;
| Starburst || Expands outward from the centre.&lt;br /&gt;
|-&lt;br /&gt;
| Scramble || Reveals cells in a random order.&lt;br /&gt;
|-&lt;br /&gt;
| Checkerboard || Reveals in a checkerboard pattern.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Reveal effects only apply during &#039;&#039;&#039;ANSImation stream playback&#039;&#039;&#039; and ANSImation export. They have no effect during&lt;br /&gt;
flip playback or APNG export.&lt;br /&gt;
&lt;br /&gt;
== Typical Animation Workflow ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Flip-Book ===&lt;br /&gt;
&lt;br /&gt;
# Enable Animation Mode (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;M&amp;lt;/kbd&amp;gt;).&lt;br /&gt;
# Draw your first frame as normal.&lt;br /&gt;
# Click &#039;&#039;&#039;+ Clone&#039;&#039;&#039; to create a copy, then make your changes.&lt;br /&gt;
# Repeat step 3 for each additional frame.&lt;br /&gt;
# Set &#039;&#039;&#039;FPS&#039;&#039;&#039; to taste (8–12 is typical).&lt;br /&gt;
# Press ▶ to preview.&lt;br /&gt;
# Export via &#039;&#039;&#039;File → Export As Animated PNG…&#039;&#039;&#039; (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;A&amp;lt;/kbd&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== ANSImation / Scrolling Reveal ===&lt;br /&gt;
&lt;br /&gt;
# Enable Animation Mode.&lt;br /&gt;
# Draw the final state of your image on Frame 1 — this is your &#039;&#039;starting&#039;&#039; scene.&lt;br /&gt;
# Click &#039;&#039;&#039;+ Sub&#039;&#039;&#039; to add sub-frames. On each sub-frame, draw or paint the next incremental step.&lt;br /&gt;
# For each sub-frame, choose a &#039;&#039;&#039;Reveal&#039;&#039;&#039; effect if desired.&lt;br /&gt;
# Use &#039;&#039;&#039;+ Scene&#039;&#039;&#039; whenever you want to cut to a completely new image.&lt;br /&gt;
# Preview with ▶̃ and adjust &#039;&#039;&#039;Speed&#039;&#039;&#039; and &#039;&#039;&#039;Delay&#039;&#039;&#039; values.&lt;br /&gt;
# Export via &#039;&#039;&#039;File → Export As ANSImation…&#039;&#039;&#039; (saves as &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Export format !! Menu item !! Shortcut !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Animated PNG (APNG) || File → Export As Animated PNG… || &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;A&amp;lt;/kbd&amp;gt; || Works&lt;br /&gt;
in any animation mode. Captures all frames at their configured FPS/delay. Widely supported in browsers and image&lt;br /&gt;
viewers.&lt;br /&gt;
|-&lt;br /&gt;
| ANSImation (&amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;) || File → Export As ANSImation… || — || Only available in animation mode. Exports&lt;br /&gt;
the raw ANSI byte stream with reveal effects applied. For playback in terminal viewers, BBS software, and ANSI&lt;br /&gt;
players.&lt;br /&gt;
|-&lt;br /&gt;
| Static PNG || File → Export As PNG… || &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;E&amp;lt;/kbd&amp;gt; || Exports the current frame&lt;br /&gt;
only as a static image.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; file format always saves all frames, timing, reveal effects, and scene break&lt;br /&gt;
information, so you can continue editing at any time.&lt;br /&gt;
&lt;br /&gt;
== Collaborative Animation ==&lt;br /&gt;
&lt;br /&gt;
When connected to a Moebius² server that has animation mode enabled, frame operations (add, clone, delete, reorder,&lt;br /&gt;
meta changes) are synchronised to all connected users in real time. Each user sees the same frame strip and can&lt;br /&gt;
draw on any frame.&lt;br /&gt;
&lt;br /&gt;
See [[Moebius²#Moebius²_Server|Moebius² Server]] for server setup instructions.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]]&lt;br /&gt;
[[Category:ANSImation]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_Animations&amp;diff=126</id>
		<title>Moebius² Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_Animations&amp;diff=126"/>
		<updated>2026-06-06T15:33:56Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Creating Animations in Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² supports frame-based animations saved in the native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; format, with export to Animated PNG&lt;br /&gt;
(APNG) and ANSImation (&amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;) for sharing.&lt;br /&gt;
&lt;br /&gt;
== Enabling Animation Mode ==          &lt;br /&gt;
&lt;br /&gt;
Animation mode is off by default so that regular single-image editing is unaffected.&lt;br /&gt;
&lt;br /&gt;
To enable it:&lt;br /&gt;
&lt;br /&gt;
* Go to &#039;&#039;&#039;View → Animation Mode&#039;&#039;&#039;, or&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;M&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Animation Panel&#039;&#039;&#039; will appear on the right side of the window (below the Layers panel). Your existing&lt;br /&gt;
canvas automatically becomes Frame 1.&lt;br /&gt;
&lt;br /&gt;
To disable animation mode, use the same menu item or shortcut. Note that disabling it collapses all frames back to&lt;br /&gt;
a single image (the current frame is kept).&lt;br /&gt;
&lt;br /&gt;
== The Animation Panel ==&lt;br /&gt;
&lt;br /&gt;
The Animation Panel contains everything you need to manage frames.&lt;br /&gt;
&lt;br /&gt;
=== Transport Controls ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! Action&lt;br /&gt;
|-&lt;br /&gt;
| ⏮ || Jump to first frame&lt;br /&gt;
|-&lt;br /&gt;
| ◀ || Previous frame&lt;br /&gt;
|-&lt;br /&gt;
| ▶ || Play / Pause (flip-book style)&lt;br /&gt;
|-&lt;br /&gt;
| ▶̃ || Play as ANSImation (streaming, terminal-style)&lt;br /&gt;
|-&lt;br /&gt;
| ▶ || Next frame&lt;br /&gt;
|-&lt;br /&gt;
| ⏭ || Jump to last frame&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Frame X / Y&#039;&#039;&#039; counter shows your current position in the sequence.&lt;br /&gt;
&lt;br /&gt;
=== Frame Settings ===&lt;br /&gt;
&lt;br /&gt;
Each frame has its own settings, editable when that frame is selected:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FPS&#039;&#039;&#039; || Global playback speed in frames per second (1–60). Applies to all frames that don&#039;t have a per-frame&lt;br /&gt;
delay override. Default: 8 fps.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Delay&#039;&#039;&#039; || Per-frame delay in milliseconds. When set to a non-zero value, this overrides the global FPS for&lt;br /&gt;
that specific frame. Useful for pauses or variable-speed effects. Leave at 0 to use the global FPS.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Reveal&#039;&#039;&#039; || The transition effect used when playing this frame as an ANSImation stream. See [[#Reveal&lt;br /&gt;
Effects|Reveal Effects]] below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Scene Break&#039;&#039;&#039; || When checked, this frame starts a new scene — the canvas is fully cleared before this frame&lt;br /&gt;
is drawn during stream playback. Disabled on Frame 1 (always a scene break). See [[#Scenes vs Sub-frames|Scenes vs&lt;br /&gt;
Sub-frames]] below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adding Frames ===&lt;br /&gt;
&lt;br /&gt;
Three buttons add new frames after the currently selected frame:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! What it creates&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Clone&#039;&#039;&#039; || A full copy of the current frame. The clone starts as a sub-frame (no scene break). Use this as&lt;br /&gt;
the starting point for incremental changes — the classic animation workflow.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Sub&#039;&#039;&#039; || A blank frame marked as a sub-frame (no scene break). Use when you want to paint something fresh&lt;br /&gt;
that builds on a running scene.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Scene&#039;&#039;&#039; || A blank frame marked as a scene break. The canvas clears before this frame plays, starting a new&lt;br /&gt;
scene from scratch.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deleting and Reordering ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;✕ Del&#039;&#039;&#039; removes the current frame. The button is disabled when only one frame exists.&lt;br /&gt;
* Frames can be &#039;&#039;&#039;dragged and dropped&#039;&#039;&#039; to reorder them — click and drag any frame card in the strip at the&lt;br /&gt;
bottom of the panel.&lt;br /&gt;
&lt;br /&gt;
=== The Frame Strip ===&lt;br /&gt;
&lt;br /&gt;
The strip at the bottom of the Animation Panel shows a card for every frame:&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;active frame&#039;&#039;&#039; is highlighted.&lt;br /&gt;
* &#039;&#039;&#039;Scene break&#039;&#039;&#039; frames have a distinct border colour.&lt;br /&gt;
* Each card shows the frame number and either its delay (in ms) or its reveal effect name.&lt;br /&gt;
* &#039;&#039;&#039;Click&#039;&#039;&#039; a card to jump to that frame.&lt;br /&gt;
* &#039;&#039;&#039;Drag&#039;&#039;&#039; a card left or right to reorder it.&lt;br /&gt;
* Scroll the strip horizontally with the mouse wheel.&lt;br /&gt;
&lt;br /&gt;
=== Resizing and Docking ===&lt;br /&gt;
&lt;br /&gt;
* Drag the resize handle at the top of the panel to make it taller or shorter.&lt;br /&gt;
* Click the &#039;&#039;&#039;⇅&#039;&#039;&#039; button to move the panel to the &#039;&#039;&#039;bottom&#039;&#039;&#039; of the window (useful on wide monitors). Click&lt;br /&gt;
&#039;&#039;&#039;⇄&#039;&#039;&#039; to move it back to the right panel.&lt;br /&gt;
&lt;br /&gt;
== Scenes vs Sub-frames ==&lt;br /&gt;
&lt;br /&gt;
Understanding scenes and sub-frames is key to getting the most out of ANSImation export.&lt;br /&gt;
&lt;br /&gt;
; Scene break frame&lt;br /&gt;
: The canvas is wiped blank before this frame is drawn during stream playback. Frame 1 is always a scene break.&lt;br /&gt;
Shown with a distinct colour in the frame strip.&lt;br /&gt;
&lt;br /&gt;
; Sub-frame&lt;br /&gt;
: Builds on whatever was already on screen. During stream playback, only the differences (the new cells) are&lt;br /&gt;
written — giving a smooth incremental-draw or overlay effect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typical workflows:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Flip-book animation&#039;&#039;&#039; — each frame is a scene break with its own fully-drawn image. Plays back fast and is&lt;br /&gt;
best exported as APNG.&lt;br /&gt;
* &#039;&#039;&#039;ANSImation / typewriter effect&#039;&#039;&#039; — Frame 1 is a scene, subsequent frames are sub-frames that each reveal a&lt;br /&gt;
little more of the image, simulating the look of a terminal drawing in real time.&lt;br /&gt;
* &#039;&#039;&#039;Mixed&#039;&#039;&#039; — multiple scenes each consisting of several sub-frame steps.&lt;br /&gt;
&lt;br /&gt;
== Playback Modes ==&lt;br /&gt;
&lt;br /&gt;
=== Flip Playback (▶) ===&lt;br /&gt;
&lt;br /&gt;
Cycles through all frames at the configured FPS (or per-frame delay). Each frame is displayed in full. This is your&lt;br /&gt;
standard animation preview and is what APNG export captures.&lt;br /&gt;
&lt;br /&gt;
=== ANSImation Streaming (▶̃) ===&lt;br /&gt;
&lt;br /&gt;
Replays the animation as a raw ANSI byte stream, the way it would look in a classic terminal. The &#039;&#039;&#039;Speed&#039;&#039;&#039;&lt;br /&gt;
dropdown controls how fast the bytes are fed:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Speed !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 2400 baud || Very slow — authentic retro BBS speed&lt;br /&gt;
|-&lt;br /&gt;
| 9600 baud || Slow — still noticeably character-by-character&lt;br /&gt;
|-&lt;br /&gt;
| Slow || Relaxed streaming pace&lt;br /&gt;
|-&lt;br /&gt;
| Medium || Comfortable viewing speed&lt;br /&gt;
|-&lt;br /&gt;
| Fast || Near-instant with visible flow&lt;br /&gt;
|-&lt;br /&gt;
| Max || As fast as the renderer can go&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A progress bar appears at the bottom of the panel during streaming. Clicking ▶̃ again stops playback and restores&lt;br /&gt;
the canvas to the current editing frame.&lt;br /&gt;
&lt;br /&gt;
== Reveal Effects ==&lt;br /&gt;
&lt;br /&gt;
Each frame can have a reveal effect applied during ANSImation stream playback. The effect controls how the frame&#039;s&lt;br /&gt;
content is &#039;&#039;written&#039;&#039; to the screen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Effect !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Inchworm || Default. Draws left-to-right, top-to-bottom, like a terminal cursor.&lt;br /&gt;
|-&lt;br /&gt;
| Instant || The entire frame appears at once with no incremental drawing.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Down || Reveals the frame top-to-bottom in rows.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Up || Reveals the frame bottom-to-top.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Left || Reveals right-to-left by column.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Right || Reveals left-to-right by column.&lt;br /&gt;
|-&lt;br /&gt;
| Diagonal || Reveals along a diagonal sweep.&lt;br /&gt;
|-&lt;br /&gt;
| Starburst || Expands outward from the centre.&lt;br /&gt;
|-&lt;br /&gt;
| Scramble || Reveals cells in a random order.&lt;br /&gt;
|-&lt;br /&gt;
| Checkerboard || Reveals in a checkerboard pattern.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Reveal effects only apply during &#039;&#039;&#039;ANSImation stream playback&#039;&#039;&#039; and ANSImation export. They have no effect during&lt;br /&gt;
flip playback or APNG export.&lt;br /&gt;
&lt;br /&gt;
== Typical Animation Workflow ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Flip-Book ===&lt;br /&gt;
&lt;br /&gt;
# Enable Animation Mode (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;M&amp;lt;/kbd&amp;gt;).&lt;br /&gt;
# Draw your first frame as normal.&lt;br /&gt;
# Click &#039;&#039;&#039;+ Clone&#039;&#039;&#039; to create a copy, then make your changes.&lt;br /&gt;
# Repeat step 3 for each additional frame.&lt;br /&gt;
# Set &#039;&#039;&#039;FPS&#039;&#039;&#039; to taste (8–12 is typical).&lt;br /&gt;
# Press ▶ to preview.&lt;br /&gt;
# Export via &#039;&#039;&#039;File → Export As Animated PNG…&#039;&#039;&#039; (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;A&amp;lt;/kbd&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== ANSImation / Scrolling Reveal ===&lt;br /&gt;
&lt;br /&gt;
# Enable Animation Mode.&lt;br /&gt;
# Draw the final state of your image on Frame 1 — this is your &#039;&#039;starting&#039;&#039; scene.&lt;br /&gt;
# Click &#039;&#039;&#039;+ Sub&#039;&#039;&#039; to add sub-frames. On each sub-frame, draw or paint the next incremental step.&lt;br /&gt;
# For each sub-frame, choose a &#039;&#039;&#039;Reveal&#039;&#039;&#039; effect if desired.&lt;br /&gt;
# Use &#039;&#039;&#039;+ Scene&#039;&#039;&#039; whenever you want to cut to a completely new image.&lt;br /&gt;
# Preview with ▶̃ and adjust &#039;&#039;&#039;Speed&#039;&#039;&#039; and &#039;&#039;&#039;Delay&#039;&#039;&#039; values.&lt;br /&gt;
# Export via &#039;&#039;&#039;File → Export As ANSImation…&#039;&#039;&#039; (saves as &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Export format !! Menu item !! Shortcut !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Animated PNG (APNG) || File → Export As Animated PNG… || &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;A&amp;lt;/kbd&amp;gt; || Works&lt;br /&gt;
in any animation mode. Captures all frames at their configured FPS/delay. Widely supported in browsers and image&lt;br /&gt;
viewers.&lt;br /&gt;
|-&lt;br /&gt;
| ANSImation (&amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;) || File → Export As ANSImation… || — || Only available in animation mode. Exports&lt;br /&gt;
the raw ANSI byte stream with reveal effects applied. For playback in terminal viewers, BBS software, and ANSI&lt;br /&gt;
players.&lt;br /&gt;
|-&lt;br /&gt;
| Static PNG || File → Export As PNG… || &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;E&amp;lt;/kbd&amp;gt; || Exports the current frame&lt;br /&gt;
only as a static image.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; file format always saves all frames, timing, reveal effects, and scene break&lt;br /&gt;
information, so you can continue editing at any time.&lt;br /&gt;
&lt;br /&gt;
== Collaborative Animation ==&lt;br /&gt;
&lt;br /&gt;
When connected to a Moebius² server that has animation mode enabled, frame operations (add, clone, delete, reorder,&lt;br /&gt;
meta changes) are synchronised to all connected users in real time. Each user sees the same frame strip and can&lt;br /&gt;
draw on any frame.&lt;br /&gt;
&lt;br /&gt;
See [[Moebius² Server]] for server setup instructions.&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]]&lt;br /&gt;
[[Category:ANSImation]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_Animations&amp;diff=125</id>
		<title>Moebius² Animations</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2_Animations&amp;diff=125"/>
		<updated>2026-06-06T15:33:22Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;= Creating Animations in Moebius² =  Moebius² supports frame-based animations saved in the native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; format, with export to Animated PNG (APNG) and ANSImation (&amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;) for sharing.  == Enabling Animation Mode ==            Animation mode is off by default so that regular single-image editing is unaffected.  To enable it:  * Go to &amp;#039;&amp;#039;&amp;#039;View → Animation Mode&amp;#039;&amp;#039;&amp;#039;, or * Press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;M&amp;lt;/kbd&amp;gt;  The &amp;#039;&amp;#039;&amp;#039;Animation Panel&amp;#039;&amp;#039;&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Creating Animations in Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² supports frame-based animations saved in the native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; format, with export to Animated PNG&lt;br /&gt;
(APNG) and ANSImation (&amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;) for sharing.&lt;br /&gt;
&lt;br /&gt;
== Enabling Animation Mode ==          &lt;br /&gt;
&lt;br /&gt;
Animation mode is off by default so that regular single-image editing is unaffected.&lt;br /&gt;
&lt;br /&gt;
To enable it:&lt;br /&gt;
&lt;br /&gt;
* Go to &#039;&#039;&#039;View → Animation Mode&#039;&#039;&#039;, or&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;M&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Animation Panel&#039;&#039;&#039; will appear on the right side of the window (below the Layers panel). Your existing&lt;br /&gt;
canvas automatically becomes Frame 1.&lt;br /&gt;
&lt;br /&gt;
To disable animation mode, use the same menu item or shortcut. Note that disabling it collapses all frames back to&lt;br /&gt;
a single image (the current frame is kept).&lt;br /&gt;
&lt;br /&gt;
== The Animation Panel ==&lt;br /&gt;
&lt;br /&gt;
The Animation Panel contains everything you need to manage frames.&lt;br /&gt;
&lt;br /&gt;
=== Transport Controls ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! Action&lt;br /&gt;
|-&lt;br /&gt;
| ⏮ || Jump to first frame&lt;br /&gt;
|-&lt;br /&gt;
| ◀ || Previous frame&lt;br /&gt;
|-&lt;br /&gt;
| ▶ || Play / Pause (flip-book style)&lt;br /&gt;
|-&lt;br /&gt;
| ▶̃ || Play as ANSImation (streaming, terminal-style)&lt;br /&gt;
|-&lt;br /&gt;
| ▶ || Next frame&lt;br /&gt;
|-&lt;br /&gt;
| ⏭ || Jump to last frame&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Frame X / Y&#039;&#039;&#039; counter shows your current position in the sequence.&lt;br /&gt;
&lt;br /&gt;
=== Frame Settings ===&lt;br /&gt;
&lt;br /&gt;
Each frame has its own settings, editable when that frame is selected:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FPS&#039;&#039;&#039; || Global playback speed in frames per second (1–60). Applies to all frames that don&#039;t have a per-frame&lt;br /&gt;
delay override. Default: 8 fps.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Delay&#039;&#039;&#039; || Per-frame delay in milliseconds. When set to a non-zero value, this overrides the global FPS for&lt;br /&gt;
that specific frame. Useful for pauses or variable-speed effects. Leave at 0 to use the global FPS.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Reveal&#039;&#039;&#039; || The transition effect used when playing this frame as an ANSImation stream. See [[#Reveal&lt;br /&gt;
Effects|Reveal Effects]] below.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Scene Break&#039;&#039;&#039; || When checked, this frame starts a new scene — the canvas is fully cleared before this frame&lt;br /&gt;
is drawn during stream playback. Disabled on Frame 1 (always a scene break). See [[#Scenes vs Sub-frames|Scenes vs&lt;br /&gt;
Sub-frames]] below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Adding Frames ===&lt;br /&gt;
&lt;br /&gt;
Three buttons add new frames after the currently selected frame:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Button !! What it creates&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Clone&#039;&#039;&#039; || A full copy of the current frame. The clone starts as a sub-frame (no scene break). Use this as&lt;br /&gt;
the starting point for incremental changes — the classic animation workflow.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Sub&#039;&#039;&#039; || A blank frame marked as a sub-frame (no scene break). Use when you want to paint something fresh&lt;br /&gt;
that builds on a running scene.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;+ Scene&#039;&#039;&#039; || A blank frame marked as a scene break. The canvas clears before this frame plays, starting a new&lt;br /&gt;
scene from scratch.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deleting and Reordering ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;✕ Del&#039;&#039;&#039; removes the current frame. The button is disabled when only one frame exists.&lt;br /&gt;
* Frames can be &#039;&#039;&#039;dragged and dropped&#039;&#039;&#039; to reorder them — click and drag any frame card in the strip at the&lt;br /&gt;
bottom of the panel.&lt;br /&gt;
&lt;br /&gt;
=== The Frame Strip ===&lt;br /&gt;
&lt;br /&gt;
The strip at the bottom of the Animation Panel shows a card for every frame:&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;active frame&#039;&#039;&#039; is highlighted.&lt;br /&gt;
* &#039;&#039;&#039;Scene break&#039;&#039;&#039; frames have a distinct border colour.&lt;br /&gt;
* Each card shows the frame number and either its delay (in ms) or its reveal effect name.&lt;br /&gt;
* &#039;&#039;&#039;Click&#039;&#039;&#039; a card to jump to that frame.&lt;br /&gt;
* &#039;&#039;&#039;Drag&#039;&#039;&#039; a card left or right to reorder it.&lt;br /&gt;
* Scroll the strip horizontally with the mouse wheel.&lt;br /&gt;
&lt;br /&gt;
=== Resizing and Docking ===&lt;br /&gt;
&lt;br /&gt;
* Drag the resize handle at the top of the panel to make it taller or shorter.&lt;br /&gt;
* Click the &#039;&#039;&#039;⇅&#039;&#039;&#039; button to move the panel to the &#039;&#039;&#039;bottom&#039;&#039;&#039; of the window (useful on wide monitors). Click&lt;br /&gt;
&#039;&#039;&#039;⇄&#039;&#039;&#039; to move it back to the right panel.&lt;br /&gt;
&lt;br /&gt;
== Scenes vs Sub-frames ==&lt;br /&gt;
&lt;br /&gt;
Understanding scenes and sub-frames is key to getting the most out of ANSImation export.&lt;br /&gt;
&lt;br /&gt;
; Scene break frame&lt;br /&gt;
: The canvas is wiped blank before this frame is drawn during stream playback. Frame 1 is always a scene break.&lt;br /&gt;
Shown with a distinct colour in the frame strip.&lt;br /&gt;
&lt;br /&gt;
; Sub-frame&lt;br /&gt;
: Builds on whatever was already on screen. During stream playback, only the differences (the new cells) are&lt;br /&gt;
written — giving a smooth incremental-draw or overlay effect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typical workflows:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Flip-book animation&#039;&#039;&#039; — each frame is a scene break with its own fully-drawn image. Plays back fast and is&lt;br /&gt;
best exported as APNG.&lt;br /&gt;
* &#039;&#039;&#039;ANSImation / typewriter effect&#039;&#039;&#039; — Frame 1 is a scene, subsequent frames are sub-frames that each reveal a&lt;br /&gt;
little more of the image, simulating the look of a terminal drawing in real time.&lt;br /&gt;
* &#039;&#039;&#039;Mixed&#039;&#039;&#039; — multiple scenes each consisting of several sub-frame steps.&lt;br /&gt;
&lt;br /&gt;
== Playback Modes ==&lt;br /&gt;
&lt;br /&gt;
=== Flip Playback (▶) ===&lt;br /&gt;
&lt;br /&gt;
Cycles through all frames at the configured FPS (or per-frame delay). Each frame is displayed in full. This is your&lt;br /&gt;
standard animation preview and is what APNG export captures.&lt;br /&gt;
&lt;br /&gt;
=== ANSImation Streaming (▶̃) ===&lt;br /&gt;
&lt;br /&gt;
Replays the animation as a raw ANSI byte stream, the way it would look in a classic terminal. The &#039;&#039;&#039;Speed&#039;&#039;&#039;&lt;br /&gt;
dropdown controls how fast the bytes are fed:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Speed !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 2400 baud || Very slow — authentic retro BBS speed&lt;br /&gt;
|-&lt;br /&gt;
| 9600 baud || Slow — still noticeably character-by-character&lt;br /&gt;
|-&lt;br /&gt;
| Slow || Relaxed streaming pace&lt;br /&gt;
|-&lt;br /&gt;
| Medium || Comfortable viewing speed&lt;br /&gt;
|-&lt;br /&gt;
| Fast || Near-instant with visible flow&lt;br /&gt;
|-&lt;br /&gt;
| Max || As fast as the renderer can go&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A progress bar appears at the bottom of the panel during streaming. Clicking ▶̃ again stops playback and restores&lt;br /&gt;
the canvas to the current editing frame.&lt;br /&gt;
&lt;br /&gt;
== Reveal Effects ==&lt;br /&gt;
&lt;br /&gt;
Each frame can have a reveal effect applied during ANSImation stream playback. The effect controls how the frame&#039;s&lt;br /&gt;
content is &#039;&#039;written&#039;&#039; to the screen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Effect !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Inchworm || Default. Draws left-to-right, top-to-bottom, like a terminal cursor.&lt;br /&gt;
|-&lt;br /&gt;
| Instant || The entire frame appears at once with no incremental drawing.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Down || Reveals the frame top-to-bottom in rows.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Up || Reveals the frame bottom-to-top.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Left || Reveals right-to-left by column.&lt;br /&gt;
|-&lt;br /&gt;
| Wipe Right || Reveals left-to-right by column.&lt;br /&gt;
|-&lt;br /&gt;
| Diagonal || Reveals along a diagonal sweep.&lt;br /&gt;
|-&lt;br /&gt;
| Starburst || Expands outward from the centre.&lt;br /&gt;
|-&lt;br /&gt;
| Scramble || Reveals cells in a random order.&lt;br /&gt;
|-&lt;br /&gt;
| Checkerboard || Reveals in a checkerboard pattern.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Reveal effects only apply during &#039;&#039;&#039;ANSImation stream playback&#039;&#039;&#039; and ANSImation export. They have no effect during&lt;br /&gt;
flip playback or APNG export.&lt;br /&gt;
&lt;br /&gt;
== Typical Animation Workflow ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Flip-Book ===&lt;br /&gt;
&lt;br /&gt;
# Enable Animation Mode (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;M&amp;lt;/kbd&amp;gt;).&lt;br /&gt;
# Draw your first frame as normal.&lt;br /&gt;
# Click &#039;&#039;&#039;+ Clone&#039;&#039;&#039; to create a copy, then make your changes.&lt;br /&gt;
# Repeat step 3 for each additional frame.&lt;br /&gt;
# Set &#039;&#039;&#039;FPS&#039;&#039;&#039; to taste (8–12 is typical).&lt;br /&gt;
# Press ▶ to preview.&lt;br /&gt;
# Export via &#039;&#039;&#039;File → Export As Animated PNG…&#039;&#039;&#039; (&amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;A&amp;lt;/kbd&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== ANSImation / Scrolling Reveal ===&lt;br /&gt;
&lt;br /&gt;
# Enable Animation Mode.&lt;br /&gt;
# Draw the final state of your image on Frame 1 — this is your &#039;&#039;starting&#039;&#039; scene.&lt;br /&gt;
# Click &#039;&#039;&#039;+ Sub&#039;&#039;&#039; to add sub-frames. On each sub-frame, draw or paint the next incremental step.&lt;br /&gt;
# For each sub-frame, choose a &#039;&#039;&#039;Reveal&#039;&#039;&#039; effect if desired.&lt;br /&gt;
# Use &#039;&#039;&#039;+ Scene&#039;&#039;&#039; whenever you want to cut to a completely new image.&lt;br /&gt;
# Preview with ▶̃ and adjust &#039;&#039;&#039;Speed&#039;&#039;&#039; and &#039;&#039;&#039;Delay&#039;&#039;&#039; values.&lt;br /&gt;
# Export via &#039;&#039;&#039;File → Export As ANSImation…&#039;&#039;&#039; (saves as &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Exporting ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Export format !! Menu item !! Shortcut !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Animated PNG (APNG) || File → Export As Animated PNG… || &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;A&amp;lt;/kbd&amp;gt; || Works&lt;br /&gt;
in any animation mode. Captures all frames at their configured FPS/delay. Widely supported in browsers and image&lt;br /&gt;
viewers.&lt;br /&gt;
|-&lt;br /&gt;
| ANSImation (&amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;) || File → Export As ANSImation… || — || Only available in animation mode. Exports&lt;br /&gt;
the raw ANSI byte stream with reveal effects applied. For playback in terminal viewers, BBS software, and ANSI&lt;br /&gt;
players.&lt;br /&gt;
|-&lt;br /&gt;
| Static PNG || File → Export As PNG… || &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;E&amp;lt;/kbd&amp;gt; || Exports the current frame&lt;br /&gt;
only as a static image.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The native &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; file format always saves all frames, timing, reveal effects, and scene break&lt;br /&gt;
information, so you can continue editing at any time.&lt;br /&gt;
&lt;br /&gt;
== Collaborative Animation ==&lt;br /&gt;
&lt;br /&gt;
When connected to a Moebius² server that has animation mode enabled, frame operations (add, clone, delete, reorder,&lt;br /&gt;
meta changes) are synchronised to all connected users in real time. Each user sees the same frame strip and can&lt;br /&gt;
draw on any frame.&lt;br /&gt;
&lt;br /&gt;
See [[Moebius² Server]] for server setup instructions.&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Category:ANSI_Art&amp;diff=124</id>
		<title>Category:ANSI Art</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Category:ANSI_Art&amp;diff=124"/>
		<updated>2026-06-06T15:23:25Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Category:Moebius%C2%B2&amp;diff=123</id>
		<title>Category:Moebius²</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Category:Moebius%C2%B2&amp;diff=123"/>
		<updated>2026-06-06T15:23:12Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=122</id>
		<title>Moebius²</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=122"/>
		<updated>2026-06-06T15:22:53Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Moebius-screenshot2.png|Moebius² Screenshot]]&lt;br /&gt;
&lt;br /&gt;
= Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² is the modern realisation of an ANSI Editor, with true colour support; for MacOS, Linux and Windows. The&lt;br /&gt;
major feature that differentiates it from [https://github.com/blocktronics/pablodraw PabloDraw] is the &#039;half-block&#039;&lt;br /&gt;
brush which allows editing in a style closer to Photoshop than a text editor, although you can still use the&lt;br /&gt;
function and cursor keys to draw with, and you should find that most of the text editing features from PabloDraw&lt;br /&gt;
are carried over to this editor. The editor is still a work in progress, but anyone who wants to try using it is&lt;br /&gt;
also encouraged to [https://github.com/christiansacks/moebius/issues log feature requests and bugs] on the&lt;br /&gt;
project&#039;s GitHub page.&lt;br /&gt;
&lt;br /&gt;
== Download packages ==&lt;br /&gt;
&lt;br /&gt;
Packaged binaries are available through Github [https://github.com/christiansacks/moebius/releases Releases] or&lt;br /&gt;
from the direct links below:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.dmg MacOS]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.Setup.exe Windows Installer]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.exe Windows Portable]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.AppImage Linux AppImage]&lt;br /&gt;
&lt;br /&gt;
== Installation &amp;amp; building ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
npm start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moebius² packages can be built easily with [https://github.com/electron-userland/electron-builder&lt;br /&gt;
electron-builder]. Note that a build for MacOS must be made on MacOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npm run-script build-mac&lt;br /&gt;
npm run-script build-win&lt;br /&gt;
npm run-script build-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Moebius² Server ==&lt;br /&gt;
&lt;br /&gt;
Moebius² features collaboration by multiple users on the same canvas through a server instance. Users connect to a&lt;br /&gt;
server which allows them to draw and chat. The server will also create hourly backups.&lt;br /&gt;
&lt;br /&gt;
To start a server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
node ./server.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will start a server with default settings. In this case a password will not be set and any value entered in&lt;br /&gt;
the Moebius² client will be accepted by the server. The server runs by default on port 8000. Moebius² clients can&lt;br /&gt;
modify the port by entering the server as &amp;lt;code&amp;gt;hostname:port&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following parameters can be set:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--file=filename.ans&amp;lt;/code&amp;gt; || Load an initial ANSI file after the server starts&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--pass=password&amp;lt;/code&amp;gt; || Set a server password which clients need to provide to log on&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--server_port=8000&amp;lt;/code&amp;gt; || Set the server port (default: 8000)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--web_port=80&amp;lt;/code&amp;gt; || Run the webserver for external viewing (default port: 80).&lt;br /&gt;
Enables live preview of the canvas and SAUCE information in a browser at&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://hostname.tld:web_port&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--path=pathname&amp;lt;/code&amp;gt; || Set a path for this server; users and web viewers connect to&lt;br /&gt;
&amp;lt;code&amp;gt;hostname.tld/path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--quiet=true/false&amp;lt;/code&amp;gt; || Suppress console output after the server has started&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--discord=url&amp;lt;/code&amp;gt; || Mirror server joins and chat activity via a&lt;br /&gt;
[https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks Discord Webhook]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Running the server with Docker ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;d rather not install Node.js on your host, a Docker image is provided.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039; [https://docs.docker.com/engine/install/ Docker Engine] with the Compose plugin (included in&lt;br /&gt;
Docker Desktop).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Create a data directory&#039;&#039;&#039; alongside the repo — this is where your &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;&lt;br /&gt;
file lives and persists across container restarts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure&#039;&#039;&#039; by creating a &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file (all values are optional — defaults are shown):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOEBIUS_PASS=yourpassword       # leave blank for open access&lt;br /&gt;
MOEBIUS_FILENAME=server.mob     # file to serve (created automatically if missing)&lt;br /&gt;
MOEBIUS_PORT=8000               # WebSocket port&lt;br /&gt;
MOEBIUS_COLUMNS=80              # canvas width  (new files only)&lt;br /&gt;
MOEBIUS_ROWS=25                 # canvas height (new files only)&lt;br /&gt;
DATA_DIR=./data                 # path to your data directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Build and start:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d --build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first run builds the image; subsequent starts are instant. To follow logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose logs -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Connect from Moebius²&#039;&#039;&#039; via &#039;&#039;&#039;Network → Connect to Server&#039;&#039;&#039; and enter &amp;lt;code&amp;gt;yourhost:8000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To stop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
* Uses modified Google&#039;s Material Icons — https://material.io/icons/&lt;br /&gt;
* Contains ANSI art by Alpha King (Blocktronics), Filth (Blocktronics) and burps (FUEL)&lt;br /&gt;
* Included fonts:&lt;br /&gt;
** Topaz originally appeared in Amiga Workbench, courtesy of Commodore Int.&lt;br /&gt;
** P0t-NOoDLE appears courtesy of Leo &#039;Nudel&#039; Davidson&lt;br /&gt;
** mO&#039;sOul appears courtesy of Desoto/Mo&#039;Soul&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Copyright 2022 Andy Herbert and 2026 Christian Sacks&lt;br /&gt;
&lt;br /&gt;
Licensed under the [https://github.com/christiansacks/moebius/blob/master/LICENSE.txt Apache License, version 2.0].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Moebius homepage: https://blocktronics.github.io/moebius/&lt;br /&gt;
* SAUCE specification: http://www.acid.org/info/sauce/sauce.htm&lt;br /&gt;
&lt;br /&gt;
[[Category:Moebius²]][[Category:ANSI Art]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=121</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=121"/>
		<updated>2026-06-06T15:21:48Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: /* Pages of interest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;strong&amp;gt;Welcome to Wikierbia v2&amp;lt;/strong&amp;gt; ==&lt;br /&gt;
Thanks for visiting “Wikierbia v2”, a place that we aim to share all of our knowledge and information about tqwNet, current BBSes, old and new technology related to them, and everything in between.&lt;br /&gt;
&lt;br /&gt;
Eventually this wiki will cover many topics both related directly to thE qUAntUm wOrmhOlE BBS, the tqwNet and other BBS&#039;, and also generic questions related to BBSing in general, protocols being used such as BINKP and everything else related.&lt;br /&gt;
&lt;br /&gt;
== Pages of interest ==&lt;br /&gt;
[[What is a BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[How can I install SyncTERM for Linux from source?]]&lt;br /&gt;
&lt;br /&gt;
[[How do I set up my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[What software do I need to run my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[I want to join tqwNet, how can I do this?]]&lt;br /&gt;
&lt;br /&gt;
[[User:Meatlotion|About MeaTLoTioN]]&lt;br /&gt;
&lt;br /&gt;
[https://erb.pw/blogs/status/ Service statuses for tqw services]&lt;br /&gt;
&lt;br /&gt;
[[Moebius²]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=120</id>
		<title>Moebius²</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=120"/>
		<updated>2026-06-06T15:06:40Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Moebius-screenshot2.png|Moebius² Screenshot]]&lt;br /&gt;
&lt;br /&gt;
= Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² is the modern realisation of an ANSI Editor, with true colour support; for MacOS, Linux and Windows. The&lt;br /&gt;
major feature that differentiates it from [https://github.com/blocktronics/pablodraw PabloDraw] is the &#039;half-block&#039;&lt;br /&gt;
brush which allows editing in a style closer to Photoshop than a text editor, although you can still use the&lt;br /&gt;
function and cursor keys to draw with, and you should find that most of the text editing features from PabloDraw&lt;br /&gt;
are carried over to this editor. The editor is still a work in progress, but anyone who wants to try using it is&lt;br /&gt;
also encouraged to [https://github.com/christiansacks/moebius/issues log feature requests and bugs] on the&lt;br /&gt;
project&#039;s GitHub page.&lt;br /&gt;
&lt;br /&gt;
== Download packages ==&lt;br /&gt;
&lt;br /&gt;
Packaged binaries are available through Github [https://github.com/christiansacks/moebius/releases Releases] or&lt;br /&gt;
from the direct links below:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.dmg MacOS]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.Setup.exe Windows Installer]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.exe Windows Portable]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.AppImage Linux AppImage]&lt;br /&gt;
&lt;br /&gt;
== Installation &amp;amp; building ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
npm start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moebius² packages can be built easily with [https://github.com/electron-userland/electron-builder&lt;br /&gt;
electron-builder]. Note that a build for MacOS must be made on MacOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npm run-script build-mac&lt;br /&gt;
npm run-script build-win&lt;br /&gt;
npm run-script build-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Moebius² Server ==&lt;br /&gt;
&lt;br /&gt;
Moebius² features collaboration by multiple users on the same canvas through a server instance. Users connect to a&lt;br /&gt;
server which allows them to draw and chat. The server will also create hourly backups.&lt;br /&gt;
&lt;br /&gt;
To start a server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
node ./server.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will start a server with default settings. In this case a password will not be set and any value entered in&lt;br /&gt;
the Moebius² client will be accepted by the server. The server runs by default on port 8000. Moebius² clients can&lt;br /&gt;
modify the port by entering the server as &amp;lt;code&amp;gt;hostname:port&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following parameters can be set:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--file=filename.ans&amp;lt;/code&amp;gt; || Load an initial ANSI file after the server starts&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--pass=password&amp;lt;/code&amp;gt; || Set a server password which clients need to provide to log on&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--server_port=8000&amp;lt;/code&amp;gt; || Set the server port (default: 8000)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--web_port=80&amp;lt;/code&amp;gt; || Run the webserver for external viewing (default port: 80).&lt;br /&gt;
Enables live preview of the canvas and SAUCE information in a browser at&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://hostname.tld:web_port&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--path=pathname&amp;lt;/code&amp;gt; || Set a path for this server; users and web viewers connect to&lt;br /&gt;
&amp;lt;code&amp;gt;hostname.tld/path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--quiet=true/false&amp;lt;/code&amp;gt; || Suppress console output after the server has started&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--discord=url&amp;lt;/code&amp;gt; || Mirror server joins and chat activity via a&lt;br /&gt;
[https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks Discord Webhook]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Running the server with Docker ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;d rather not install Node.js on your host, a Docker image is provided.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039; [https://docs.docker.com/engine/install/ Docker Engine] with the Compose plugin (included in&lt;br /&gt;
Docker Desktop).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Create a data directory&#039;&#039;&#039; alongside the repo — this is where your &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;&lt;br /&gt;
file lives and persists across container restarts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure&#039;&#039;&#039; by creating a &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file (all values are optional — defaults are shown):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOEBIUS_PASS=yourpassword       # leave blank for open access&lt;br /&gt;
MOEBIUS_FILENAME=server.mob     # file to serve (created automatically if missing)&lt;br /&gt;
MOEBIUS_PORT=8000               # WebSocket port&lt;br /&gt;
MOEBIUS_COLUMNS=80              # canvas width  (new files only)&lt;br /&gt;
MOEBIUS_ROWS=25                 # canvas height (new files only)&lt;br /&gt;
DATA_DIR=./data                 # path to your data directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Build and start:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d --build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first run builds the image; subsequent starts are instant. To follow logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose logs -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Connect from Moebius²&#039;&#039;&#039; via &#039;&#039;&#039;Network → Connect to Server&#039;&#039;&#039; and enter &amp;lt;code&amp;gt;yourhost:8000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To stop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
* Uses modified Google&#039;s Material Icons — https://material.io/icons/&lt;br /&gt;
* Contains ANSI art by Alpha King (Blocktronics), Filth (Blocktronics) and burps (FUEL)&lt;br /&gt;
* Included fonts:&lt;br /&gt;
** Topaz originally appeared in Amiga Workbench, courtesy of Commodore Int.&lt;br /&gt;
** P0t-NOoDLE appears courtesy of Leo &#039;Nudel&#039; Davidson&lt;br /&gt;
** mO&#039;sOul appears courtesy of Desoto/Mo&#039;Soul&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Copyright 2022 Andy Herbert and 2026 Christian Sacks&lt;br /&gt;
&lt;br /&gt;
Licensed under the [https://github.com/christiansacks/moebius/blob/master/LICENSE.txt Apache License, version 2.0].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Moebius homepage: https://blocktronics.github.io/moebius/&lt;br /&gt;
* SAUCE specification: http://www.acid.org/info/sauce/sauce.htm&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=File:Moebius-screenshot2.png&amp;diff=119</id>
		<title>File:Moebius-screenshot2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=File:Moebius-screenshot2.png&amp;diff=119"/>
		<updated>2026-06-06T15:03:02Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=118</id>
		<title>Moebius²</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Moebius%C2%B2&amp;diff=118"/>
		<updated>2026-06-06T15:00:20Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot; Moebius² Screenshot  = Moebius² =  Moebius² is the modern realisation of an ANSI Editor, with true colour support; for MacOS, Linux and Windows. The major feature that differentiates it from [https://github.com/blocktronics/pablodraw PabloDraw] is the &amp;#039;half-block&amp;#039; brush which allows editing in a style closer to Photoshop than a text editor, although you can still use the function and cursor keys to draw with, and you should...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[File:Moebius-screenshot2.png|frameless|Moebius² Screenshot]]&lt;br /&gt;
&lt;br /&gt;
= Moebius² =&lt;br /&gt;
&lt;br /&gt;
Moebius² is the modern realisation of an ANSI Editor, with true colour support; for MacOS, Linux and Windows. The&lt;br /&gt;
major feature that differentiates it from [https://github.com/blocktronics/pablodraw PabloDraw] is the &#039;half-block&#039;&lt;br /&gt;
brush which allows editing in a style closer to Photoshop than a text editor, although you can still use the&lt;br /&gt;
function and cursor keys to draw with, and you should find that most of the text editing features from PabloDraw&lt;br /&gt;
are carried over to this editor. The editor is still a work in progress, but anyone who wants to try using it is&lt;br /&gt;
also encouraged to [https://github.com/christiansacks/moebius/issues log feature requests and bugs] on the&lt;br /&gt;
project&#039;s GitHub page.&lt;br /&gt;
&lt;br /&gt;
== Download packages ==&lt;br /&gt;
&lt;br /&gt;
Packaged binaries are available through Github [https://github.com/christiansacks/moebius/releases Releases] or&lt;br /&gt;
from the direct links below:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.dmg MacOS]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.Setup.exe Windows Installer]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.exe Windows Portable]&lt;br /&gt;
* [https://github.com/christiansacks/moebius/releases/latest/download/Moebius.AppImage Linux AppImage]&lt;br /&gt;
&lt;br /&gt;
== Installation &amp;amp; building ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
npm start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moebius² packages can be built easily with [https://github.com/electron-userland/electron-builder&lt;br /&gt;
electron-builder]. Note that a build for MacOS must be made on MacOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
npm run-script build-mac&lt;br /&gt;
npm run-script build-win&lt;br /&gt;
npm run-script build-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Moebius² Server ==&lt;br /&gt;
&lt;br /&gt;
Moebius² features collaboration by multiple users on the same canvas through a server instance. Users connect to a&lt;br /&gt;
server which allows them to draw and chat. The server will also create hourly backups.&lt;br /&gt;
&lt;br /&gt;
To start a server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git@github.com:christiansacks/moebius.git&lt;br /&gt;
npm install&lt;br /&gt;
node ./server.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will start a server with default settings. In this case a password will not be set and any value entered in&lt;br /&gt;
the Moebius² client will be accepted by the server. The server runs by default on port 8000. Moebius² clients can&lt;br /&gt;
modify the port by entering the server as &amp;lt;code&amp;gt;hostname:port&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following parameters can be set:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--file=filename.ans&amp;lt;/code&amp;gt; || Load an initial ANSI file after the server starts&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--pass=password&amp;lt;/code&amp;gt; || Set a server password which clients need to provide to log on&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--server_port=8000&amp;lt;/code&amp;gt; || Set the server port (default: 8000)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--web_port=80&amp;lt;/code&amp;gt; || Run the webserver for external viewing (default port: 80).&lt;br /&gt;
Enables live preview of the canvas and SAUCE information in a browser at&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://hostname.tld:web_port&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--path=pathname&amp;lt;/code&amp;gt; || Set a path for this server; users and web viewers connect to&lt;br /&gt;
&amp;lt;code&amp;gt;hostname.tld/path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--quiet=true/false&amp;lt;/code&amp;gt; || Suppress console output after the server has started&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--discord=url&amp;lt;/code&amp;gt; || Mirror server joins and chat activity via a&lt;br /&gt;
[https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks Discord Webhook]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Running the server with Docker ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;d rather not install Node.js on your host, a Docker image is provided.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prerequisites:&#039;&#039;&#039; [https://docs.docker.com/engine/install/ Docker Engine] with the Compose plugin (included in&lt;br /&gt;
Docker Desktop).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Create a data directory&#039;&#039;&#039; alongside the repo — this is where your &amp;lt;code&amp;gt;.mob&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ans&amp;lt;/code&amp;gt;&lt;br /&gt;
file lives and persists across container restarts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Configure&#039;&#039;&#039; by creating a &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file (all values are optional — defaults are shown):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MOEBIUS_PASS=yourpassword       # leave blank for open access&lt;br /&gt;
MOEBIUS_FILENAME=server.mob     # file to serve (created automatically if missing)&lt;br /&gt;
MOEBIUS_PORT=8000               # WebSocket port&lt;br /&gt;
MOEBIUS_COLUMNS=80              # canvas width  (new files only)&lt;br /&gt;
MOEBIUS_ROWS=25                 # canvas height (new files only)&lt;br /&gt;
DATA_DIR=./data                 # path to your data directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Build and start:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d --build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first run builds the image; subsequent starts are instant. To follow logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose logs -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Connect from Moebius²&#039;&#039;&#039; via &#039;&#039;&#039;Network → Connect to Server&#039;&#039;&#039; and enter &amp;lt;code&amp;gt;yourhost:8000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To stop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
* Uses modified Google&#039;s Material Icons — https://material.io/icons/&lt;br /&gt;
* Contains ANSI art by Alpha King (Blocktronics), Filth (Blocktronics) and burps (FUEL)&lt;br /&gt;
* Included fonts:&lt;br /&gt;
** Topaz originally appeared in Amiga Workbench, courtesy of Commodore Int.&lt;br /&gt;
** P0t-NOoDLE appears courtesy of Leo &#039;Nudel&#039; Davidson&lt;br /&gt;
** mO&#039;sOul appears courtesy of Desoto/Mo&#039;Soul&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Copyright 2022 Andy Herbert and 2026 Christian Sacks&lt;br /&gt;
&lt;br /&gt;
Licensed under the [https://github.com/christiansacks/moebius/blob/master/LICENSE.txt Apache License, version 2.0].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* Moebius homepage: https://blocktronics.github.io/moebius/&lt;br /&gt;
* SAUCE specification: http://www.acid.org/info/sauce/sauce.htm&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=54</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=54"/>
		<updated>2023-02-16T12:05:59Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;strong&amp;gt;Welcome to Wikierbia v2&amp;lt;/strong&amp;gt; ==&lt;br /&gt;
Thanks for visiting “Wikierbia v2”, a place that we aim to share all of our knowledge and information about tqwNet, current BBSes, old and new technology related to them, and everything in between.&lt;br /&gt;
&lt;br /&gt;
Eventually this wiki will cover many topics both related directly to thE qUAntUm wOrmhOlE BBS, the tqwNet and other BBS&#039;, and also generic questions related to BBSing in general, protocols being used such as BINKP and everything else related.&lt;br /&gt;
&lt;br /&gt;
== Pages of interest ==&lt;br /&gt;
[[What is a BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[How can I install SyncTERM for Linux from source?]]&lt;br /&gt;
&lt;br /&gt;
[[How do I set up my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[What software do I need to run my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[I want to join tqwNet, how can I do this?]]&lt;br /&gt;
&lt;br /&gt;
[[User:Meatlotion|About MeaTLoTioN]]&lt;br /&gt;
&lt;br /&gt;
[https://erb.pw/blogs/status/ Service statuses for tqw services]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=TqwNet&amp;diff=53</id>
		<title>TqwNet</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=TqwNet&amp;diff=53"/>
		<updated>2023-02-11T22:46:05Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Meatlotion moved page TqwNet FTN to TqwNet without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{asbox}}&lt;br /&gt;
&lt;br /&gt;
A message network owned and operated by MeaTLoTioN.&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=TqwNet&amp;diff=52</id>
		<title>TqwNet</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=TqwNet&amp;diff=52"/>
		<updated>2023-02-11T22:45:46Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Meatlotion moved page TqwNet to TqwNet FTN without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{asbox}}&lt;br /&gt;
&lt;br /&gt;
A message network owned and operated by MeaTLoTioN.&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=21</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=21"/>
		<updated>2023-02-10T16:58:35Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Protected &amp;quot;Main Page&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;strong&amp;gt;Welcome to Wikierbia v2&amp;lt;/strong&amp;gt; ==&lt;br /&gt;
Thanks for visiting “Wikierbia v2”, a place that we aim to share all of our knowledge and information about tqwNet, current BBSes, old and new technology related to them, and everything in between.&lt;br /&gt;
&lt;br /&gt;
Eventually this wiki will cover many topics both related directly to The Quantum Wormhole BBS, the tqwNet and other BBS&#039;, and also generic questions related to BBSing in general, protocols being used such as BINKP and everything else related.&lt;br /&gt;
&lt;br /&gt;
== Pages of interest ==&lt;br /&gt;
[[What is a BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[How can I install SyncTERM for Linux from source?]]&lt;br /&gt;
&lt;br /&gt;
[[How do I set up my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[What software do I need to run my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[I want to join tqwNet, how can I do this?]]&lt;br /&gt;
&lt;br /&gt;
[[User:Meatlotion|About MeaTLoTioN]]&lt;br /&gt;
&lt;br /&gt;
[https://erb.pw/blogs/status/ Service statuses for tqw services]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=User:Meatlotion&amp;diff=20</id>
		<title>User:Meatlotion</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=User:Meatlotion&amp;diff=20"/>
		<updated>2023-02-10T16:58:07Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Protected &amp;quot;User:Meatlotion&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ML-Nikaido-Akira.png|thumb]]Name: Christian&lt;br /&gt;
&lt;br /&gt;
Handle: MeaTLoTioN&lt;br /&gt;
&lt;br /&gt;
== BBS Information ==&lt;br /&gt;
BBS: thE qUAntUm wOrmhOlE&lt;br /&gt;
&lt;br /&gt;
BBS Address: bbs.erb.pw&lt;br /&gt;
&lt;br /&gt;
BBS Port(s): telnet:23 // ssh:45022&lt;br /&gt;
&lt;br /&gt;
== Internet presence ==&lt;br /&gt;
Website(s): https://erb.pw // https://meatlotion.com &lt;br /&gt;
&lt;br /&gt;
Twitch: https://twitch.tv/the_meatlotion &lt;br /&gt;
&lt;br /&gt;
YouTube: [https://youtube.com/@meatlotion https://youtube.com/@MeaTLoTioN] &lt;br /&gt;
&lt;br /&gt;
Odysee: https://odysee.com/@MeaTLoTioN&lt;br /&gt;
&lt;br /&gt;
== Contact details ==&lt;br /&gt;
Email: ml@erb.pw&lt;br /&gt;
&lt;br /&gt;
Matrix: @meatlotion:erb.pw&lt;br /&gt;
&lt;br /&gt;
Twitter: @meatlotion&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=15</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=15"/>
		<updated>2023-02-10T12:18:01Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;strong&amp;gt;Welcome to Wikierbia v2&amp;lt;/strong&amp;gt; ==&lt;br /&gt;
Thanks for visiting “Wikierbia v2”, a place that we aim to share all of our knowledge and information about tqwNet, current BBSes, old and new technology related to them, and everything in between.&lt;br /&gt;
&lt;br /&gt;
Eventually this wiki will cover many topics both related directly to The Quantum Wormhole BBS, the tqwNet and other BBS&#039;, and also generic questions related to BBSing in general, protocols being used such as BINKP and everything else related.&lt;br /&gt;
&lt;br /&gt;
== Pages of interest ==&lt;br /&gt;
[[What is a BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[How can I install SyncTERM for Linux from source?]]&lt;br /&gt;
&lt;br /&gt;
[[How do I set up my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[What software do I need to run my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[I want to join tqwNet, how can I do this?]]&lt;br /&gt;
&lt;br /&gt;
[[User:Meatlotion|About MeaTLoTioN]]&lt;br /&gt;
&lt;br /&gt;
[https://erb.pw/blogs/status/ Service statuses for tqw services]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=How_can_I_install_SyncTERM_for_Linux_from_source%3F&amp;diff=14</id>
		<title>How can I install SyncTERM for Linux from source?</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=How_can_I_install_SyncTERM_for_Linux_from_source%3F&amp;diff=14"/>
		<updated>2023-02-10T12:17:25Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;SyncTERM is one of the better terminal clients for connecting to a BBS via Telnet or SSH in my opinion, and I have installed it on both my MacBook Pro and my Lenovo Thinkpad T440p running Ubuntu 18.04.1 LTS.  It wasn&amp;#039;t difficult to build it from source and install it, but it did require building, not just installing, and therefore I have posted (below) instructions for anyone interested on how to build and install this application from source.  == Create the script == Cr...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SyncTERM is one of the better terminal clients for connecting to a BBS via Telnet or SSH in my opinion, and I have installed it on both my MacBook Pro and my Lenovo Thinkpad T440p running Ubuntu 18.04.1 LTS.&lt;br /&gt;
&lt;br /&gt;
It wasn&#039;t difficult to build it from source and install it, but it did require building, not just installing, and therefore I have posted (below) instructions for anyone interested on how to build and install this application from source.&lt;br /&gt;
&lt;br /&gt;
== Create the script ==&lt;br /&gt;
Create a new file called &amp;quot;get_SyncTERM.sh&amp;quot; or something else of your choosing into your favourite text editor, eg &amp;quot;nano get_SyncTERM.sh&amp;quot; and copy and paste the following in:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # To Install apps/libraries used to compile&lt;br /&gt;
 echo &amp;quot;Preparing to install relevant libraries...&amp;quot;&lt;br /&gt;
 sudo apt-get install wget libncurses5-dev libncursesw5-dev gcc libsdl1.2-dev build-essential&lt;br /&gt;
 &lt;br /&gt;
 # To Pull source&lt;br /&gt;
 echo &amp;quot;About to download the syncterm application source...&amp;quot;&lt;br /&gt;
 wget &amp;lt;nowiki&amp;gt;http://syncterm.bbsdev.net/syncterm-src.tgz&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # To extract tgz file&lt;br /&gt;
 echo &amp;quot;Extracting the source now...&amp;quot;&lt;br /&gt;
 tar xvzf syncterm-src.tgz&lt;br /&gt;
 &lt;br /&gt;
 # Change directory to&lt;br /&gt;
 echo &amp;quot;Change into the &#039;make&#039; folder&amp;quot;&lt;br /&gt;
 D=$(ls -1hrtd sync*/|tail -1|sed &#039;s/\/$//g&#039;)&lt;br /&gt;
 cd ${D}/src/syncterm&lt;br /&gt;
 &lt;br /&gt;
 # To get full path src&lt;br /&gt;
 echo &amp;quot;Set st_path variable for the SRC_ROOT path...&amp;quot;&lt;br /&gt;
 st_path=$(pwd | sed &#039;s/\/syncterm$//g&#039;)&lt;br /&gt;
 &lt;br /&gt;
 # Time to compile!&lt;br /&gt;
 echo &amp;quot;Make SRC_ROOT with path: $st_path&amp;quot;&lt;br /&gt;
 sudo make SRC_ROOT=$st_path&lt;br /&gt;
 &lt;br /&gt;
 # Install SyncTerm&lt;br /&gt;
 echo &amp;quot;Install SyncTERM...&amp;quot;&lt;br /&gt;
 sudo make install&lt;br /&gt;
 &lt;br /&gt;
 # Find out where Syncterm was installed&lt;br /&gt;
 echo &amp;quot;Find out where SyncTERM installed&amp;quot;&lt;br /&gt;
 which syncterm&lt;br /&gt;
Now save and exit your text editor, you will need to make this script executable. To do this, run the command &amp;quot;chmod +x get_SyncTERM.sh&amp;quot;. Verify that this is now executable by listing the current folder showing attributes, eg &amp;quot;ls -l get_SyncTERM.sh&amp;quot; and you should see the filename now has the attributes &amp;quot;-rwxr-xr-x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now you can run this file by doing &amp;quot;./get_SyncTERM.sh&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Automatic web installer ==&lt;br /&gt;
Alternatively if you feel trusting you can just copy and paste this into your linux cli (ubuntu)&lt;br /&gt;
 curl -s &amp;lt;nowiki&amp;gt;https://erb.pw/get-syncterm.sh|bash&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
After a few moments, you will have built and installed SyncTERM, and the last output from the script will show you where it&#039;s located (but it should be in the path anyway), so you can just run &amp;quot;syncterm&amp;quot; from the CLI.&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=13</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=13"/>
		<updated>2023-02-10T12:08:51Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;strong&amp;gt;Welcome to Wikierbia v2&amp;lt;/strong&amp;gt; ==&lt;br /&gt;
Thanks for visiting “Wikierbia v2”, a place that we aim to share all of our knowledge and information about tqwNet, current BBSes, old and new technology related to them, and everything in between.&lt;br /&gt;
&lt;br /&gt;
Eventually this wiki will cover many topics both related directly to The Quantum Wormhole BBS, the tqwNet and other BBS&#039;, and also generic questions related to BBSing in general, protocols being used such as BINKP and everything else related.&lt;br /&gt;
&lt;br /&gt;
== Pages of interest ==&lt;br /&gt;
[[What is a BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[How do I set up my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[What software do I need to run my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[I want to join tqwNet, how can I do this?]]&lt;br /&gt;
&lt;br /&gt;
[[User:Meatlotion|About MeaTLoTioN]]&lt;br /&gt;
&lt;br /&gt;
[https://erb.pw/blogs/status/ Service statuses for tqw services]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=12</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=12"/>
		<updated>2023-02-10T11:53:24Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;strong&amp;gt;Welcome to Wikierbia v2&amp;lt;/strong&amp;gt; ==&lt;br /&gt;
Thanks for visiting “Wikierbia v2”, a place that we aim to share all of our knowledge and information about tqwNet, current BBSes, old and new technology related to them, and everything in between.&lt;br /&gt;
&lt;br /&gt;
Eventually this wiki will cover many topics both related directly to The Quantum Wormhole BBS, the tqwNet and other BBS&#039;, and also generic questions related to BBSing in general, protocols being used such as BINKP and everything else related.&lt;br /&gt;
&lt;br /&gt;
== Pages of interest ==&lt;br /&gt;
[[What is a BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[How do I set up my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[What software do I need to run my own BBS?]]&lt;br /&gt;
&lt;br /&gt;
[[I want to join tqwNet, how can I do this?]]&lt;br /&gt;
&lt;br /&gt;
[[User:Meatlotion|About MeaTLoTioN]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=User:Meatlotion&amp;diff=11</id>
		<title>User:Meatlotion</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=User:Meatlotion&amp;diff=11"/>
		<updated>2023-02-10T11:47:29Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ML-Nikaido-Akira.png|thumb]]Name: Christian&lt;br /&gt;
&lt;br /&gt;
Handle: MeaTLoTioN&lt;br /&gt;
&lt;br /&gt;
== BBS Information ==&lt;br /&gt;
BBS: thE qUAntUm wOrmhOlE&lt;br /&gt;
&lt;br /&gt;
BBS Address: bbs.erb.pw&lt;br /&gt;
&lt;br /&gt;
BBS Port(s): telnet:23 // ssh:45022&lt;br /&gt;
&lt;br /&gt;
== Internet presence ==&lt;br /&gt;
Website(s): https://erb.pw // https://meatlotion.com &lt;br /&gt;
&lt;br /&gt;
Twitch: https://twitch.tv/the_meatlotion &lt;br /&gt;
&lt;br /&gt;
YouTube: [https://youtube.com/@meatlotion https://youtube.com/@MeaTLoTioN] &lt;br /&gt;
&lt;br /&gt;
Odysee: https://odysee.com/@MeaTLoTioN&lt;br /&gt;
&lt;br /&gt;
== Contact details ==&lt;br /&gt;
Email: ml@erb.pw&lt;br /&gt;
&lt;br /&gt;
Matrix: @meatlotion:erb.pw&lt;br /&gt;
&lt;br /&gt;
Twitter: @meatlotion&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=User:Meatlotion&amp;diff=10</id>
		<title>User:Meatlotion</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=User:Meatlotion&amp;diff=10"/>
		<updated>2023-02-10T11:40:01Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;thumb&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ML-Nikaido-Akira.png|thumb]]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=File:ML-Nikaido-Akira.png&amp;diff=9</id>
		<title>File:ML-Nikaido-Akira.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=File:ML-Nikaido-Akira.png&amp;diff=9"/>
		<updated>2023-02-10T11:37:38Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My profile picture&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Are_there_any_other_networks_I_can_join%3F&amp;diff=8</id>
		<title>Are there any other networks I can join?</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Are_there_any_other_networks_I_can_join%3F&amp;diff=8"/>
		<updated>2023-02-09T19:08:37Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;This is a great question and the answer is a most definite, Yes!  If you want to see a pretty comprehensive list of all of the other networks available, you can [https://erb.pw/y/ftnnetworks get to it here].  Thanks must go to NuSkooler (Bryan Ashby) for compiling this list and allowing it to be shareable so others can add to this list, too. This is the single most useful document for finding out about other networks and what zone&amp;#039;s are used/free in case you wish to crea...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a great question and the answer is a most definite, Yes!&lt;br /&gt;
&lt;br /&gt;
If you want to see a pretty comprehensive list of all of the other networks available, you can [https://erb.pw/y/ftnnetworks get to it here].&lt;br /&gt;
&lt;br /&gt;
Thanks must go to NuSkooler (Bryan Ashby) for compiling this list and allowing it to be shareable so others can add to this list, too. This is the single most useful document for finding out about other networks and what zone&#039;s are used/free in case you wish to create a new network of your own.&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=I_want_to_join_tqwNet,_how_can_I_do_this%3F&amp;diff=7</id>
		<title>I want to join tqwNet, how can I do this?</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=I_want_to_join_tqwNet,_how_can_I_do_this%3F&amp;diff=7"/>
		<updated>2023-02-09T19:07:13Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;Well first let me thank you for your interest!  You can join by [http://www.erb.pw/tqwinfo.zip downloading our infopack here]. It has all the information needed to join our network, and an application form with instructions. You can also do this on The Quantum Wormhole BBS using the online application program at the main menu.  Thanks must go out to Avon @ fsxNet for letting me use his infopack as a template to create ours. Thank you Mr Avon. Very much appreciated. You c...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well first let me thank you for your interest!&lt;br /&gt;
&lt;br /&gt;
You can join by [http://www.erb.pw/tqwinfo.zip downloading our infopack here]. It has all the information needed to join our network, and an application form with instructions. You can also do this on The Quantum Wormhole BBS using the online application program at the main menu.&lt;br /&gt;
&lt;br /&gt;
Thanks must go out to Avon @ fsxNet for letting me use his infopack as a template to create ours. Thank you Mr Avon. Very much appreciated. You can check out fsxNet and Agency BBS via their website [https://www.bbs.nz www.bbs.nz] or by telnet to the BBS at [telnet://agency.bbs.nz agency.bbs.nz]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=How_do_you_edit_ANSI_files%3F&amp;diff=6</id>
		<title>How do you edit ANSI files?</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=How_do_you_edit_ANSI_files%3F&amp;diff=6"/>
		<updated>2023-02-09T19:04:30Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;Drawing an ANSI file is not quite as simple as opening up a file in a normal text editor, there are a few to choose from but the best applications I have found and use often are;  * [http://picoe.ca/products/pablodraw/ PabloDraw] * [https://github.com/blocktronics/moebius Moebius]  Both of these are great for creating ANSI artwork. They both are also great for ASCII artwork, which is slightly different, but just as sweet to look at.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Drawing an ANSI file is not quite as simple as opening up a file in a normal text editor, there are a few to choose from but the best applications I have found and use often are;&lt;br /&gt;
&lt;br /&gt;
* [http://picoe.ca/products/pablodraw/ PabloDraw]&lt;br /&gt;
* [https://github.com/blocktronics/moebius Moebius]&lt;br /&gt;
&lt;br /&gt;
Both of these are great for creating ANSI artwork. They both are also great for ASCII artwork, which is slightly different, but just as sweet to look at.&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=How_do_I_set_up_my_own_BBS%3F&amp;diff=5</id>
		<title>How do I set up my own BBS?</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=How_do_I_set_up_my_own_BBS%3F&amp;diff=5"/>
		<updated>2023-02-09T19:00:34Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;If you are interested in setting up your own BBS, there is a really awesome set of instructional videos kindly created and uploaded by Paul Hayton aka Avon from the Agency BBS in New Zealand. He is using Mystic BBS in the demonstrations. Big shout out to Avon, you rock!  You can get to the videos here: https://www.youtube.com/@MysticGuyBBS&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you are interested in setting up your own BBS, there is a really awesome set of instructional videos kindly created and uploaded by Paul Hayton aka Avon from the Agency BBS in New Zealand. He is using Mystic BBS in the demonstrations. Big shout out to Avon, you rock!&lt;br /&gt;
&lt;br /&gt;
You can get to the videos here: https://www.youtube.com/@MysticGuyBBS&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=What_software_do_I_need_to_run_my_own_BBS%3F&amp;diff=4</id>
		<title>What software do I need to run my own BBS?</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=What_software_do_I_need_to_run_my_own_BBS%3F&amp;diff=4"/>
		<updated>2023-02-09T18:58:46Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;There are quite a few still active BBS Server applications available on the internet for you to download, here’s a few that I know about  * [http://www.mysticbbs.com/ Mystic BBS] – maintained by g00r00, one of the more popular BBS Server softwares in use today. The Quantum Wormhole runs on it * [http://www.synchro.net/ Synchronet BBS] – created by Digitalman (Rob Swindell), still maintained by a group of people, this is another popular BBS Server software * [https:...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are quite a few still active BBS Server applications available on the internet for you to download, here’s a few that I know about&lt;br /&gt;
&lt;br /&gt;
* [http://www.mysticbbs.com/ Mystic BBS] – maintained by g00r00, one of the more popular BBS Server softwares in use today. The Quantum Wormhole runs on it&lt;br /&gt;
* [http://www.synchro.net/ Synchronet BBS] – created by Digitalman (Rob Swindell), still maintained by a group of people, this is another popular BBS Server software&lt;br /&gt;
* [https://magickabbs.com/ Magicka BBS] – maintained by Andrew Pamment and others, a modern approach at BBSes keeping the original look and feel&lt;br /&gt;
* [https://l33t.codes/tag/enigma-bbs/ Enigma 1/2 BBS] – Created entirely in Node.JS by Bryan Ashby, this is another modern approach at BBSes keeping the original look and feel&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=What_is_a_BBS%3F&amp;diff=3</id>
		<title>What is a BBS?</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=What_is_a_BBS%3F&amp;diff=3"/>
		<updated>2023-02-09T18:56:48Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: Created page with &amp;quot;A bulletin board system or BBS (also called Computer Bulletin Board Service, CBBS[1]) is a computer server running software that allows users to connect to the system using a terminal program. Once logged in, the user can perform functions such as uploading and downloading software and data, reading news and bulletins, and exchanging messages with other users through email, public message boards, and sometimes via direct chatting.  Many BBSes also offer online games in w...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A bulletin board system or BBS (also called Computer Bulletin Board Service, CBBS[1]) is a computer server running software that allows users to connect to the system using a terminal program. Once logged in, the user can perform functions such as uploading and downloading software and data, reading news and bulletins, and exchanging messages with other users through email, public message boards, and sometimes via direct chatting.&lt;br /&gt;
&lt;br /&gt;
Many BBSes also offer online games in which users can compete with each other, and BBSes with multiple phone lines often provide chat rooms, allowing users to interact with each other. Bulletin board systems were in many ways a precursor to the modern form of the World Wide Web, social networks, and other aspects of the Internet. Low-cost, high-performance modems drove the use of online services and BBSes through the early 1990s.&lt;br /&gt;
&lt;br /&gt;
Infoworld estimated that there were 60,000 BBSes serving 17 million users in the United States alone in 1994, a collective market much larger than major online services such as CompuServe.&lt;br /&gt;
&lt;br /&gt;
For more information on this, please visit the wikipedia entry for Bulletin Board systems https://en.wikipedia.org/wiki/Bulletin_board_system&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
	<entry>
		<id>https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=2</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.erb.pw/mw/index.php?title=Main_Page&amp;diff=2"/>
		<updated>2023-02-09T18:55:20Z</updated>

		<summary type="html">&lt;p&gt;Meatlotion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to Wikierbia v2&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User&#039;s Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Meatlotion</name></author>
	</entry>
</feed>