Modpol, short for "modular politics," enables diverse governance processes on multi-user platforms. It offers a library with which users can choose, modify, and create modules that add specific governance functionalities.
This implementation is a mod for Minetest, a free/open-source voxel game. It is designed to be adapted to other multi-user platforms that also employ Lua as an extension language.
Learn more at modpol.net.
To use this in Minetest, simply install it in your mods/
or worldmods/
folder. Minetest will load init.lua
.
In the game, open the Modpol dashboard with the command /mp
.
For testing purposes, players with the privs
privilege (generally admins) can use the /mptest
command, which resets all the orgs and opens a dashboard.
Modpol can also be used independently of Minetest as a command-line tool. Currently command-line use of modpol requires a Unix-style system, but it is intended to become more fully platform independent.
The command-line version is in the modpol
subdirectory. To run the program on Unix systems in CLI mode, install lua or luajit and execute the following in this directory:
$ lua[jit] login.lua
Alternatively, to test arbitrary functions in the interpreter outside of the interactive dashboards, load Modpol's library with:
$ lua[jit]
> dofile("modpol_core/modpol.lua")
In the interpreter, for a list of global functions and tables, use modpol.menu()
.
The persistent storage method may be chosen in modpol.lua
. If available, Modpol uses Minetest's built-in StorageRef system for Minetest 5.*. If that is not available, or in CLI mode, data will be stored in a data directory at modpol_core/data/
. This will contain a log file and serialized program data files.
Various guides are available at the GitLab wiki.
Read documentation of functions and modules at docs/doc/index.html
. Documentation was generated using LDoc. To generate basic documentation for every page, download ldoc
and use the following command:
$ cd docs/
$ ldoc ..
This will not generate the same index page and sidebar as the documentation provided; the appropriate structure needs to be added manually.
This project is led by Nathan Schneider of the Media Enterprise Design Lab at the University of Colorado Boulder, as part of the Metagovernance Project.
Contributors include:
We are grateful for initial support for this project from a residency with The Bentway Conservancy. Read about us in The Field Guide to Digital and/as Public Space.
We'd love to welcome more contributors. Please join the conversation in the Issues, the #modpol channel at the Metagovernance Project Slack, and the Minetest.net forum.
Learn more about the project and how to develop your own modules in the wiki.