No Description

MisterE123 f19796f82d *Reorganized code so that further expansion is possible in a very organized manner. 3 years ago
DOCS f19796f82d *Reorganized code so that further expansion is possible in a very organized manner. 3 years ago
modpol f19796f82d *Reorganized code so that further expansion is possible in a very organized manner. 3 years ago
modpol_minetest f19796f82d *Reorganized code so that further expansion is possible in a very organized manner. 3 years ago
storage f19796f82d *Reorganized code so that further expansion is possible in a very organized manner. 3 years ago
util f19796f82d *Reorganized code so that further expansion is possible in a very organized manner. 3 years ago
.gitignore c927b4d9fc Major refactoring (big thanks to OldCoder) enabling CLI and local storage and cleaner modpol/MT split 3 years ago
LICENSE.md e581b6a84f Update LICENSE to .md 3 years ago
README.md c927b4d9fc Major refactoring (big thanks to OldCoder) enabling CLI and local storage and cleaner modpol/MT split 3 years ago
depends.txt b80f025093 Removed "default" from Minetest dependency list, thanks to @gbrrudmin 3 years ago
description.txt 49b157e082 Upload New File 3 years ago
init.lua f19796f82d *Reorganized code so that further expansion is possible in a very organized manner. 3 years ago
mod.conf c927b4d9fc Major refactoring (big thanks to OldCoder) enabling CLI and local storage and cleaner modpol/MT split 3 years ago
modpol.lua f19796f82d *Reorganized code so that further expansion is possible in a very organized manner. 3 years ago

README.md

modpol: Modular Politics Prototype for Minetest

This is a mod for Minetest that enables diverse governance mechanisms. It seeks to implement the Modular Politics proposal. Ideally, in the future, it will be possible to use this framework to simulate governance in a number of platform contexts.

This mod produces an API that can serve as a dependency for other mods that add specific governance functionalities.

Currently modpol requires a Unix-style system. But it is intended to become more fully platform independent. Here, only the init.lua (and the optional storage-mod_storage.lua) files are Minetest-specific.

For background information and project roadmap, see the wiki.

Command line

To interact with the interpreter on Unix systems in CLI mode, install lua or luajit and execute the following command in this directory:

$ lua
> dofile("modpol.lua")

Minetest

To use this in Minetest, simply install it as a Minetest mod. Minetest will load init.lua. See the source code for information about chat commands which can then be used.

Most of these commands will later be buried under other commands that do more privilege checking. These are mainly for testing purposes.

  • /addorg [orgname] - Create a new org
  • /listorgs - Lists the orgs (and their members) currently in existence
  • /listplayers - Lists all the players currently in the game
  • /joinorg [orgname] - Adds the user to the specified org
  • /pollself [question] - Asks the player a yes/no/abstain question

Storage

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.

Authorship

Initiated by Nathan Schneider of the Media Enterprise Design Lab at the University of Colorado Boulder, as part of the Metagovernance Project. Based on the paper "Modular Politics: Toward a Governance Layer for Online Communities."

We'd love to have more contributors, particularly from the Minetest community! Please join the conversation in the Issues or the Minetest.net forum.

Thanks to contributors: Robert Kiraly OldCoder

Licenses