CoOp:Anything
Search any game and see how much of it you can play with friends: every co-op mod, its stage, quality and community rating.
Cowboys vs Zombies: a handful of gunslingers hold a saloon against a horde of the dead, two to one - AI on both sides, only head shots count. Godot 4.
Translation pending
GamesGDScript · HTMLGitHub @nathandunnOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Cowboys vs Zombies - a handful of gunslingers hold a saloon against a 2:1 horde of the dead; AI on both sides (Godot 4). Part of the Precog sim suite.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A handful of cowboys hold a saloon against a horde of the dead coming in through the swinging doors - two of them for every one of the living. Played entirely by AI on both sides, built on Brawl Bots. If the dead win, they eat the cowboys; if the cowboys win, they set every last zombie alight. Part of the Precog sim suite.
Live: https://cowboys-vs-zombies.apps.precogsoftwareservices.com
Everything from Brawl Bots: the seven temperaments, the team plans, grades, weapons per side or per man (Colt, shotgun, rifle, lasso, knives, bottles), and the AI as editable rules. Against the dead they give ground and shoot - back off as one closes, lay the sight on the head when they have the time and the nerve, centre of mass when they haven't - and the 3 m no-shooting rule does not apply: you can put a slug in a zombie's face.
At 2:00 the living who are still standing hold out till dawn and win.
Zombies 37, Cowboys 43 over 80 after limbs came off (46% for the dead). About 85% of the dead put down go by the head; ~12 grips, ~12 bites and ~1 point-blank shot a match. Temperament matters: Balanced and Lawman hold the line best (about half), Brawlers about 40%, Sharpshooters and Desperados about a third, and Gunslingers (fanning the hammer: wild body shots) and Cowards (cowering) rarely survive. Wave is the strongest horde plan, Swarm and Surround about level.
Every match starts wide, the whole saloon in shot. Bottom right: pan (arrows, with Wide in the middle to put the whole map back), rotate, tilt and zoom - hold to keep going; Hide view controls tucks them away. Mouse: drag to orbit, right-drag (or shift-drag) to pan, wheel to zoom. Touch: one finger orbits, two pinch and pan. Keys: arrows/WASD pan, Q E rotate, R F tilt,
Team brain (scripts/team_brain.gd): a blackboard of every enemy seen or heard, counting every
shot (rush a man counted empty); a tactical map scoring every spot for cover, sight lines and the
angles that beat the enemy's cover; and a commander running one of seven plans - Adaptive, Dig In,
Rush, Pincer, High Ground, Leapfrog, Bait - with clock sense in the last 25 s.
Each man (scripts/gunman.gd): ten personality traits weight a utility score over the map,
blended with his orders by his discipline. He is always in a mode you can see over his head:
hold, advance, duck, hide, cower, flank, rush, fall back, brawl, hunt - and he walks the map his
legs allow: vaulting low cover and water, dropping off decks, leaping up onto them, climbing
ladders.
The rules (scripts/ai_script.gd) - the exposed AI. Each side can run a script, edited in the
app (Teams / tactics -> Edit AI rules), checked with line-numbered errors (with "did you mean"
for typos), saved in the browser. Type a few letters and it suggests what can go there - a
condition, a number, an action, a trait - with what it means (Tab or tap to take one); the word
under the cursor is explained; Add an example drops in a ready-made rule:
# first rule that holds (and can be done) wins; anything uncovered -> built-in brain
set caution 0.85
aim 1.25
when pinned -> hide for 2
when bleeding and bleed_secs < 15 -> rush nearest for 3
when enemy_reloading and nearest < 8 -> rush reloading
when super and stalemate -> flank
when melee and in_reach -> rush nearest
otherwise -> default
About 35 yes/no conditions (bleeding, pinned, aimed_at, enemy_reloading, high, edge, clinch, outnumbered,
super, melee, in_reach, has_bottle, near_bottle, ...), 14 numbers (hp, bleed_secs, ammo, nearest, time, diff, random, ...),
12 actions (hold, advance, hide, flank, rush nearest|weakest|reloading|high|aiming|melee,
fall back, take high, hunt, flip table, grab bottle, cower, default), set <trait> and aim <multiplier>.
Presets to start from: Careful hands, Wild bunch, High ground first, Ninja ambush, Supers lead
minions swarm, Last stand. Show intents prints which rule each man is following; the results
list how often each rule decided.
Query string = command line: ?living=6&ratio=2.5&horde=Wave&blue=Sharpshooter&speed=2,
?endtest=0 / ?endtest=1 (debug: the other side drops dead four seconds in, to see the ending),
?map=bamboo&redf=lotus&bluef=law&redn=2&redgrade=Super&bluen=5&bluegrade=Minion&intents=1,
?redscript=Ninja ambush, ?lineup=1, ?cam=10. Headless (Godot 4.4+):
godot --headless --path . -- --sim=20 --horde=Surround --living=5 --ratio=2 --blue=Lawman
godot --headless --path . -- --sim=20 --map=temple --redf=dragon --bluef=outlaws --redgrade=Super --redn=3 --bluen=8
godot --headless --path . -- --sim=20 --redscript=my.rules # a rules file
godot --headless --path . -- --league=5 [--pairs=Rush:Dig In] [--part=0/4]
godot --headless --path . -- --presets=5
bash build.sh (Godot 4.7.2 + web templates) exports to dist/, boot-checks the pack and gzips.
Dockerfile + nginx.conf serve it; headers.caddy adds COOP/COEP. Meshes and most sounds are
built in code; the voices are espeak-ng lines baked into sfx/voice/ by tools/make_voices.sh.