Nathan Schneider 85e9916e27 Added pending actions list to main dashboard | 2 lat temu | |
---|---|---|
modpol_core | 2 lat temu | |
modpol_minetest | 2 lat temu | |
.gitignore | 3 lat temu | |
GOVERNANCE.md | 2 lat temu | |
LICENSE | 2 lat temu | |
README.md | 2 lat temu | |
depends.txt | 3 lat temu | |
description.txt | 2 lat temu | |
init.lua | 2 lat temu | |
login.lua | 2 lat temu | |
mod.conf | 3 lat temu |
Modular Politics is an extension that enables diverse governance processes on multi-user platforms. It offers a library that enables users to create or adapt their own modules that add specific governance functionalities.
This implementation is a mod for Minetest, a free/open-source voxel game. It is designed to be easily adapted to other multi-user platforms that also employ Lua as an extension language.
Modular Politics seeks to implement a theoretical framework, also called "modular politics," which proposes these design goals:
Additionally, Modular Politics seeks to counteract the tendency for "implicit feudalism," according to which rigid, top-down power structures are the norm in online spaces. To this end, some design patterns include:
It is certainly possible to use Modular Politics to replicate practices of implicit feudalism, such as all-powerful admins, but doing so requires extra work to overcome these defaults.
To use this in Minetest, simply install it in your mods/
or worldmods/
folder. Minetest will load init.lua
.
In the game, open the Modular Politics dashboard with the command /mp
.
For testing purposes, players with the privs
privilege (generally admins) can use the /mp
command, which resets all the orgs and opens a dashboard.
Modular Politics 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
You can also interact with the interpreter by starting it this way:
$ lua[jit]
> dofile("login.lua")
In the interpreter, for a list of global functions and tables, use modpol.menu()
.
By default, a data directory named "data" will be created in this directory. /data
will contain a log file and serialized program data files.
Another storage method may be chosen in modpol.lua
. A StorageRef-based method for Minetest 5.* is included: storage-mod_storage.lua
.
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, our Matrix.org channel, and the Minetest.net forum.
Learn more about the project and how to develop your own modules in the wiki.