Source-checkedQuality of life & UI

Booktorio

by raiguard · for Factorio

Deprecated in favor of the built-in Tips and Tricks interface.

705Downloads
6 yr agoLast updated
GPL-3.0License
1.1Latest game version

About Booktorio

From Factorio Mod Portal

Deprecated in favor of the built-in Tips and Tricks interface.

#INTRODUCTION# Welcome to Booktorio! This is a library mod designed to give a in game wiki to all mods that want one but don't want have to go crazy with the challenging Factorio GUI implementations. If you are an user (not a mod creator/developer) you can read only the section 1, if instead you are a mod developer and you want understand if this mod fit your needs, see the section 2.

#1 - USERS GUIDE# If you are using a mod that use this library mod for provide a wiki to users, just simply install it, from the internal Factorio mod installer, or download it from the mod portal and place it in the mod folder of Factorio. Remember that you need at lease Factorio 0.18.13 o greater.

##This is the list of know compatible mods:##

#2 - MODDERS GUIDE# Ok below I will describe how Booktorio works, let's start from the basic; First, is recommended to add Booktorio in the optional dependencies, for be sure that when the remote calls will be called will already be available. Booktorio is available to be called only in control phase, this is the available calls:

remote.call("Booktorio", "add_thread", new_thread, not_override)

This call is the basic one to add a thread, the variable new_thread is a table defined as the pseudo-prototype thread(which we will see later). If not_override is false, nil or not specified then the basic action is override the old thread added.

remote.call("Booktorio", "override_thread", new_thread)

This call is similar to add_thread, but will override for sure. This wrapper is more like for have more intelligible code.

Also is recommended to use a form like this for call the remote:

if remote.interfaces["Booktorio"] then
	remote.call("Booktorio", "add_thread", new_thread) 
end

Because will avoid some errors in case that the mod is not present. The suggested events where this remotes must be called are in on_init and on_configuration_changed.

Also using

remote.call("Booktorio", "remove_thread", thread_name) 

A thread can be forced to be removed.


Now let's see how to implement the wiki, so we must talk about how Booktorio load implement mod section. For be simple implement a wiki, this mod defined some "pseudo-prototype", like Factorio use in the normal prototype definition is data phases. We have this kind of pseudo-prototype:

  • 2.1 Thread
  • 2.2 Topic
  • 2.3 TopicTitle
  • 2.4 TopicSubtitle
  • 2.5 TopicText
  • 2.6 TopicBlueprint
  • 2.7 TopicImage
  • 2.8 TopicTable
  • 2.9 TopicPlugin

##2.1 Thread## This is the main object (a table) must be given to Booktorio in remotes, have the follow properties:

  • name :: LocalisedString or string (mandatory)
  • localized :: bool (optional)
  • topics :: table of Topic (mandatory)
  • mod :: string (optional)
  • specified_version :: uint8 (optional)

Mandatory values

  • name, the name of this thread(mod section), can be localized.
  • topics, a set of Topic object.

Optional values

  • localized, specify if the property name should not be localized, set this to false if you don't want that the name string will be localized.
  • mod, is the name of the mod associated to this thread (can be different from the mod that call the remote to add this thread), is needed if is wanted that the thread will be removed with the mod if disabled in an existing game. This property is not necessary, if not given the thread will be permanent, and if the mod that contain the localized strings is not given simply will leave an unreadable thread.
  • specified_version, specify the version of this thread (via one unsigned integer), this can be useful for update the thread, if is called the remote interface "add_thread" with an existing thread, not_override = false or nil, but the specified_version is greater with the stored one, will be overrided anyway.

##2.2 Topic## This is a single topic.

  • name :: LocalisedString or string (mandatory)
  • localized :: bool (optional)
  • topic :: table of TopicTitle or TopicText or TopicImage (mandatory)
  • align :: string (optional)

Mandatory values

  • name, the name of this topic, can be localized, also this string is used in the left list for select the topic.
  • topic, is a set of TopicTitle or TopicText or TopicImage, the can be defined all or only some of them in the same topic, only the TopicTitle can be defined one time, and must be positioned as first element of the table, or can be omitted, if the TopicTitle will be defined in positions different from the first will be skipped. Instead, TopicTexts or TopicImages, can be defined in any quantity and order.

Optional values

  • localized, specify if the property name should not be localized, set this to false if you don't want that the name string will be localized.
  • align, change the align of the topic, can have the follows values: "left", "center", "right".

##2.3 TopicTitle## Is the title of the topic, must be the first element of the topic table.

  • type :: string (mandatory)
  • title :: LocalisedString or string (mandatory)
  • localized :: bool (optional)
  • style :: string (optional)

Mandatory values

  • type, is the type of this element, in this case must be "title".
  • title :: is the string of the title, can be localized.

Optional values

  • localized, specify if the property title should not be localized, set this to false if you don't want that the name string will be localized.

Read the full description on Factorio Mod Portal →

Highlights

From source data

Game versions

Built for Factorio 1.1.

Footprint

Rated a light load on a server.

License

Published under GPL-3.0.

Booktorio on Nxeon

From our catalogue
One-click install
Supported on Nxeon Factorio servers. We download it from Factorio Mod Portal, place it, and restart the server.
Server side
Required on the server
Server load
light
Smallest plan we suggest
Factorio — 2 GB (2 GB RAM). This follows our own load rating above, not a benchmark.
Latest build
1.5.4, released 2020-12-31

Recent builds

BuildReleasedGame versionsLoaders
1.5.42020-12-311.1n/a
1.5.32020-12-201.1n/a
1.5.22020-04-130.18n/a

Run Booktorio on a Factorio server

Pick a server or deploy a new one above; it is installed in one click.

What kind of mod it is

From the catalog
Listed on Factorio Mod Portal as “Mods”

Quality of life & UI

Small conveniences, tweaks and interface improvements players notice straight away.

Runs on your server

From source side support

Factorio Mod Portal lists Booktorio as required on the server. Check its Factorio Mod Portal page to see whether players need it too.

Compatibility

Game
Factorio
Runs on
Serverrequired on the server
Game versions
1.1

Verified at the source

  • ✓Factorio Mod PortalOfficial listing, checked 2026-10-09Open ↗
  • ✓Authorraiguard, as published on Factorio Mod Portal
  • ✓LicenseGPL-3.0Free

Booktorio, answered

Generated from the mod’s own source data.

Do my players need to install Booktorio?

Factorio Mod Portal lists Booktorio as required on the server. Check its Factorio Mod Portal page to see whether players need it too.

Is it free?

Yes. Booktorio is free to download from Factorio Mod Portal. Its license is GPL-3.0.

How do I add it to my Nxeon server?

Use “Add to a server” on this page, or open NxLabs from your dashboard. We install it, restart your server and switch it on.

NxLabs

Run Booktorio on a Factorio server.

Deploy in about a minute from $2.99 a month, then add Booktorio in one click.