Release Thread Enables create-unit and change-control for spectators, which can act as puppet-masters over the poor players. Intended as spectator donate-for-unit during the Community AbleGamers Tournament, but I expect it will be usable for other random silliness. Spectators may use the 'toggle puppetmaster' keybind, which is by default alt+ctrl+shift+p. The binding should be configurable if you visit Settings while in a modded game. Please note that this server mod enables cheats, so players will need to enable the Show-Cheats stock mod to play, in addition to selecting Modded Games. - https://github.com/JustinLove/puppetmaster - Release thread: https://forums.uberent.com/threads/rel-server-puppetmaster.62534/ Recommended client mods for puppetmaster: - Sandbox Unit Organizer - Sandbox Unit Menu - Bulk Create Units - Improved Player Control Issues - Players would like to be informed about pastes - Pastes should be attributed to the "Puppetmaster", whoever that is at the time. Other Notes: - Since you have to change control to give a player units, the mod also allows the puppet-master to give unit orders, including self-destruct. (It's up to the puppet-master's discretion to allow donate-for-troll) - Nukes and anti-nukes are preloaded with one missile, and the metal cost is increased proportionally. - As discovered in the video, extra commanders don't change the losing conditions - only original coms count for assassination. - Controlling a player stops army stat updates; the mod clears control flags when the spectator panel opened, but it can be easy to forget you need to re-select a player in order to paste.
If you're not familiar with the mods directory, the settings tab of PAMM has a path you can copy; back up one ("Planetary Annihilation" for me) and put the unpacked zip folder in server_mods. (e.g. server_mods/puppetmaster-master using the default github archive name) Then run/refresh PAMM and it should be available.
Unfortunately this is so integral to how the charity tourney is going to run, it's not practical to keep it under wraps for very long! Amazing mod as always, Wondible - your work never ceases to impress me
Added some baby-teeth to the player restrictions, players should no longer be able to use copy-paste hotkeys. However, I'm doubtful of providing the same level of restriction on player control. The game uses the same api calls during normal play and post-defeat spectator modes. You can't just blanket disable them, so it's left at the current "UI disabled" state.
I can see this being really good for a sort of team game, where one player is a spectator and credits to purchase items are acquired over time (possibly including performance of the live player).
Limited pings to 0.5 second (could still be spammy, but should still be individual for many smaller, slower pastes). Added counter (in the devmode box) of pasted units; resets after two seconds.
I've been trying to use this for some testing of balance and such, and I've not managed to get anything to actually spawn. Checking with the normal cheats, copy/pasting still works, but I've not managed to get anything to paste while using this mod. As you've been talking about restrictions on who can paste, I'm wondering if I've gotten something wrong in there somewhere. Although, I have been trying to do this while being a spectator so I think I have everything right there...
I don't think this offers any advantage for balance testing over the regular cheat mods. Well, maybe the paste counter. Are you running any other mods? Have you tried disabling them? Are you comfortable copying devtools and running the debugger to look for messages?
It probably doesn't offer any advantage over anything else for what I'm wanting to do. I'm mostly trying to as I can't find the other mod with the selection-box thing. Was running other mods, but yes I did try it with as many combinations I could think of that would help. (None, all cheats, PTE, stable) Only posted when I ran out of ideas. Being a software developer I'd hope I was comfortable with that, but I must admit to not knowing how to do that at this time. I'll take a look around and see if I can get it running.
Yeah, that's the one. >.> I got it running, kinda weird to use, but it seems based on Chrome's devtools so it's at least a familiar navigation. Anyway, checking the console logging I'm noticing a lot of 'you are a puppet' this morning. Sadly I doubt this is what was happening to me last night as last night I was still getting the ping, just not the paste. ... Okay, after switching to PTE I've gotten the pings appearing again. And it's still giving the 'you are a puppet' response. ... And despite trying further, I can't manage to get the debugger into where you check whether everyone's spectators. Currently that's where I'm suspecting there's something going wrong, but I can't say for certain. As I need to head to work I'm going to have to leave it here, hopefully you have more luck with trying to find stuff that I have.
Okay, I can think of one way you could get both pings and no-paste. It sounds like it's loading the live_game extensions, but not triggering the exclusion to the general paste-disable. Can you paste me the result of `window.location.href` for the live_game (Live Game) scene ? I thought of another one - if the mod loads twice, for some strange reason. You should be able to see this if "puppetmaster" appears on the console of the live_game scene more than once at start. And actually, I discovered I forgot to check in some changes. I think it would only prevent the paste counter from working, but I pushed an update. I don't know what you mean by "get the debugger into where you check whether everyone's spectators" It's pretty much just the webkit debugger; you can inspect the dom, but often have to type things into console to inspect game state. `model` is the root of most of it, and most values are KO values that have to be called as functions.
What I meant was that I could get a breakpoint into the '.puppet' method, but the calling method was within an area that seemed to be loaded into memory but not tied directly to the 'page'. This meant that while I could see the code that checks to see if someone is a spectator (I think on load of live-game. Not certain, it's my first time looking at this.) I couldn't get a breakpoint on anything within that file, as it would get unloaded from the debugger when the page is refreshed. Once I get home I'll see if I can look into the double loading and such. Can't do much without the code to poke at.
okay, putting window.location.href into console gets me: "coui://ui/main/game/live_game/live_game.html" Which seems to link to an empty file. I'm going to guess that might not surprise you, but... all known info. Only appears once. On further inspection, are users of this required to build it as you have outlined in README.RD? or is it able to function out-of-the-box? I notice that your change only seems to have affected the grunt.js file on git. If want to move this to messages or some other form of communication I would not object, as we are approaching the point I would consider this to be cluttering the thread.
Okay, as expected, no flipped slashes or anything. That's the string I'm checking against. A github archive should work because I check in the modified common.js, there will be a few unnecessary files uploaded to the server, but not many. Using the repo directly will upload a bunch of unnecessary files to the game server, and waiting is no fun. Last change affected modinfo, common, and common_extensions.
Clears control flags when the spectator panel is opened in order to re-enable army stat updates. Don't forget to select a player again when you need to paste something. Main issue left is how to activate the puppetmaster mode. Candidates (so far) - All Spectators (current); leaves extra controls on caster screens. - Additional client mod - A spectator types "I am the puppetmaster" in to public chat. - Additional keybinding