GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - M45-Science/SoftMod: Scenario scripts for our Factorio servers

BranchesTags
Open more actions menu

Latest commit

 

History

1,124 Commits
1,124 Commits

Folders and files

NameName
Last commit message
Last commit date
.vscode
.vscode
 
 
docs
docs
 
 
img-source
img-source
 
 
img
img
 
 
locale
locale
 
 
scripts
scripts
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
.luacheckrc
.luacheckrc
 
 
AGENTS.md
AGENTS.md
 
 
CLAUDE.md
CLAUDE.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
banish.lua
banish.lua
 
 
chatwire.lua
chatwire.lua
 
 
commands.lua
commands.lua
 
 
commands_banish.lua
commands_banish.lua
 
 
commands_stash.lua
commands_stash.lua
 
 
control.lua
control.lua
 
 
event.lua
event.lua
 
 
forcedel.lua
forcedel.lua
 
 
info.lua
info.lua
 
 
log.lua
log.lua
 
 
logo.lua
logo.lua
 
 
onelife.lua
onelife.lua
 
 
online.lua
online.lua
 
 
perms.lua
perms.lua
 
 
preview.jpg
preview.jpg
 
 
quickbar.lua
quickbar.lua
 
 
stash.lua
stash.lua
 
 
storage.lua
storage.lua
 
 
todo.lua
todo.lua
 
 
utility.lua
utility.lua
 
 
version.lua
version.lua
 
 

Repository files navigation

M45-SoftMod

Command Overview

License: MPL 2.0

LUA scripts for M45's Factorio servers. ( softmod / scenario scripts )

Requires Factorio 2.0.27 or newer.
Currently approximately 8700 lines of lua.
This mod keeps all persistent state in a global table named storage. See docs/storage.md for an overview of its layout and docs/in-place-upgrades.md for upgrade guardrails. The system-only ChatWire interface is documented in docs/chatwire-protocol.md. A basic luacheck configuration is provided for optional linting:

luacheck *.lua

Regression tests use mocked Factorio APIs and run under Lua 5.2 from this directory:

lua5.2 tests/regressions.lua

If Lua 5.2 is unavailable locally:

docker run --rm -v "$PWD":/work:ro -w /work nickblah/lua:5.2-alpine lua tests/regressions.lua

These tests cover commands, inventory transfers, permissions, and save migrations; they do not replace in-game testing.

banish.lua
Allows regulars to vote-ban players,

commands.lua
Server, moderator and player commands

control.lua
Main, loads modules

event.lua
Handles game events and ticks

storage.lua
Handles init of storage variables

info.lua
Welcome/info window

log.lua
Action logging

logo.lua
adds a custom logo to spawn

online.lua
menu that shows players online, with some actions:
whisper, report and banish

perms.lua
passive anti-grief. new users permissions are limited,
and players move up with activity

todo.lua
simple to-do list

utility.lua
commonly needed utility functions

onelife.lua
permadeath-onelife mode
PlanetPicker note: SoftMod avoids teleporting players off the empty_void surface or forcing controller changes while PlanetPicker is using it for planet selection / limbo.

quickbar.lua
save/restore quickbar via chatwire. Exchange strings now use the M45-QB2 format. Item names are shortened to two-letter aliases (AA, AB, ...) from a predefined list and qualities use (u, r, e, l) when present (e.g. IP:l for iron-plate).
Quickbar Format

About

Scenario scripts for our Factorio servers

Topics

factorioluascenariosoftmod

Resources

Readme
MPL-2.0 license
Activity
Custom properties

Stars

6 stars

Watchers

1 watching

Forks

7 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.