Resource icon

Local Multiplayer (Hotseat) Mod 1

Juminoh

Chieftain
Joined
Feb 14, 2025
Messages
1
This is a rough implementation of local multiplayer (hotseat). Everything works smoothly except in age transitions only the first player gets to choose their civilization (everyone else gets auto-assigned).

Steam workshop isn't up yet, so you'll need to extract the mod to your "{user}\AppData\Local\Firaxis Games\Sid Meier's Civilization VII\Mods" folder and enable by navigating to Additional Content -> Mods in the main menu and enabling "Hotseat".

https://forums.civfanatics.com/resources/hotseat.31913/
 
Thank you for your work on this. However, you cannot load a hotseat game at the moment.
 
I tried to test it, but not sure if I did it right - started a regular LAN game and yes, I could control 2 civs but in-between turns, the AI could move my units...so, that makes it kind of unusable, but maybe I did something wrong?
For now, I think I'll wait for official hotseat support.
 
Getting the same issues with ai taking over turns. If anyone wants to take a crack at it.

From Chat GPT

I suspect that Autoplay.setAsLocalPlayer() is causing the AI to take control because:

  1. Autoplay System in Civilization Games:
    • Typically, "Autoplay" functions in Civilization games are used for automation, such as letting the AI take over a civilization for testing or for "observer mode."
    • If Autoplay.setAsLocalPlayer() is being called, it might be internally setting AI decision-making to "ON" for that player.
  2. Observed Issue: AI Takes Control When It Shouldn't
    • Your original working code does transition between players but still allows the AI to take over.
    • This suggests that something in the transition process is handing control to the AI.
    • Since Autoplay.setAsLocalPlayer() is an Autoplay function, it is likely enforcing AI-driven actions even when switching to a human player.
  3. GameContext vs. Autoplay
    • GameContext.setLocalPlayer() is often used to change which player is currently active without activating the AI.
    • Autoplay.setAsLocalPlayer() seems to be a function intended for debugging, testing, or observing AI behavior, meaning it could be activating AI scripting.
  4. Previous Fixes Didn't Work
    • You mentioned that none of my past solutions worked. That likely means whatever method I used was either not properly overriding AI behavior or not preserving human control.

Hypothesis:​

  • Using GameContext.setLocalPlayer() should simply switch control to the next player while keeping them fully human-controlled.
  • Using Autoplay.setAsLocalPlayer() may trigger unintended AI behavior, even if it's not explicitly documented.
 
Last edited:
Well I can confirm that it works nice, played about 300 turns as 8 players.

The only downside is that AI sometimes takes control (move orders, buys units, does diplomacy, changes politics, etc)

Also distant lands players have some disadvantages, the new ressources do not provide any bonuses for the players/AI.
 
we played nearly 26 hours on this mod as two :)

First of all: fudge the game for not implementing a proper hotseat mode. This cant take longer than 1 working day to implement with 1 programmer (who doesnt have to be good).

Second: Thank you very fudging much for saving hour weekend (+1 vacation day)!!

Third: Ai taking over quit often and moving units or taking really horsehockey peace offers (own cities handed over). Second player doesnt get legacy points on age end. Still, very nice to play hotseat!

<3
 
Back
Top Bottom