Skip to content

Instantly share code, notes, and snippets.

View justinfarrelldev's full-sized avatar

Justin Farrell justinfarrelldev

View GitHub Profile
@justinfarrelldev
justinfarrelldev / call-to-power-multiplayer-hosting-instructions.md
Created April 17, 2025 20:04
How to Host a Multiplayer Session via IPX on Civilization: Call to Power and Call to Power II

This is a guide for how to host a multiplayer game on Civilization: Call to Power or Call to Power II using ZeroTier One and IPX Wrapper.

Prerequisites

You must follow the guide for players first (which is located below), otherwise you will not be able to see the other players in your lobby. It is a prerequisite for this guide, however you won't be able to join with a network ID yet, since we will need to create one in this guide.

The prerequisite guide is available here: https://gist.github.com/justinfarrelldev/81ea406e08bae1c8b9430a98fbaa47ca.

Steps

First, you must set up a ZeroTier network. This is the network that the players will join.

@justinfarrelldev
justinfarrelldev / call-to-power-multiplayer-instructions.md
Last active April 18, 2025 16:10
How to Set Up Multiplayer via IPX on Civilization: Call to Power and Call to Power II

This is a guide for how to set up Call to Power multiplayer (with Civilization: Call to Power or Call to Power II) by using ZeroTier One, IPX Wrapper and (optionally) mods. It focuses on Windows, specifically.

This guide will focus on joining an existing ZeroTier One session. For information on how to set up a ZeroTier One session for others to play on (IE, to host matches), please see this Gist: https://gist.github.com/justinfarrelldev/6f4a2d4e1ab971278ccb520d2376c41a

There is also a video version of this guide here: https://www.youtube.com/watch?v=WuDarvkafzo

Multiplayer?? How???

This method works by turning IPX packets into UDP ones via IPX Wrapper. Once these packets are converted, they can be used for LAN games again - then, we can share our connection using ZeroTier One with other computers over the internet.

A Couple of Quick Notes

@justinfarrelldev
justinfarrelldev / gmailAutoarchive.js
Last active July 23, 2020 09:48 — forked from anonymous/gmailAutoarchive.js
Made the need for a label obsolete
function GmailAutoarchive() {
// No need for a label
var delayDays = 21; // three weeks
var maxDate = new Date();
maxDate.setDate(maxDate.getDate()-delayDays); // what was the date at that time?
var threads = GmailApp.search("in:inbox" + " older_than:" + delayDays.toString() + "d");
for (var i = 0; i < threads.length; i++) {
if (threads[i].getLastMessageDate()<maxDate)