This content may be freely modified and/or maintained by anyone.

Tyron

Krew, MS sysop, gay robot, horns
It's team racing. Inspired by Snu's Battle+, Fickle's Combi Ring, and a fundamental lack of self-respect. Recommended for large netgames or social butterflies.



Features
- Make new friends and lose your existing friends in cutthroat team showdowns
- Get juiced and take on the world in the questionably-secret BOSSMODE
- Realtime scoring updates for maximum hype
- See your teammates' item pulls and (attempt to) play strategically
- Special celebrations for standout performances
- 199+ incomprehensible in-joke team combinations
- Manually organize teams to settle grudges or stack the odds
- Customizable colors for tournaments, inhouses, accessibility, or the neurotic

V4 HOTFIX: Fixes an oversight that would cause all kinds of messy behavior. Just a real all-around slugfest.

Frequently Asked Questions
Q: Why is the first version of this file V3?
A: Because I've been hosting/testing this on SLIPTIDE DIMENSION for months, made about 800 different revisions """right before release""", and don't like breaking replays.

Q: How can I change team colors? I don't like blue and orange / I have trouble seeing the difference.
A: Server owners can use fr_bluecolor and fr_orangecolor to change default team colors. (I recommend leaving this untouched unless you're running events or inhouses, as blue/orange are accessible for the largest possible playerbase.) Players can use fr_bluecolorlocal and fr_orangecolorlocal to override all other settings and use colors that they find comfortable—you can even put these in a file called "friendmod.cfg" to have them automatically executed when you join games. These cvars accept any color name.

Q: How am I supposed to carry my team? The leader bonus is too small!
A: Yup.

Q: 2-person teams are guaranteed to win if one of them finishes first. I don't like that.
A: Bruh, you're losing to a two-person team. Also, this isn't a question.

Q: Does this work with Battle mode?
A: No, but it shouldn't break, either.

fr_enabled: Toggles all mod functionality.
fr_debug: Violently vomits debug print everywhere.

Meta
fr_teamchance: Chance out of 100 that a game will be played in teams mode. Intended for dedicated servers.
fr_minplayers: Minimum required players for teams mode to trigger. Games with fewer than this amount when they start will be forced to standard racing.

Teamplay
fr_teamattack: Controls whether players on the same team can damage their allies with items. DO NOT TURN THIS OFF UNLESS YOU'RE DOING VERY SPECIFIC EXPERIMENTS, EVEN IF YOU THINK IT WILL MAKE THE GAME MORE FUN. THIS SEVERELY SCREWS WITH TEAMPLAY DYNAMICS AND OVERALL BALANCE, AND SHOULD NEVER BE USED FOR GENERAL PLAY. PLAGUES OF LOCUSTS AND GIGANTIC FRONTRUNNING BLOCKS WILL RESULT.
fr_teamwarning: Controls whether players receive a warning message when damaging teammates. Recommended.
fr_teamreflect: Controls whether players explode and die when damaging teammates. Not recommended.
fr_teamlog: Controls whether team-attack events are displayed in the server's console. Recommended for dedicated servers, to avoid he-said-she-said situations about foul play.

Team Management
fr_bluename: Overrides the blue team name. "Random" disables.
fr_orangename: Overrides the orange team name. "Random" disables.
fr_onesidename: Overrides the name used when only one team has an override set. Also used for the blue team during Bossmode.
fr_changeblue: Takes one argument. Sets the first player whose name contains the value to the blue team.
fr_changeorange: Takes one argument. Sets the first player whose name contains the value to the orange team.
fr_bluecolor: Changes the default blue team color. Recommended only for events or inhouses; blue and orange are used by default for maximal accessibility.
fr_orangecolor: Changes the default orange team color. Recommended only for events or inhouses; blue and orange are used by default for maximal accessibility.
fr_crewbattle: When on, players will be forcibly assigned to a team if that team's name is overridden, and the overridden name is contained in their name. For example, with fr_bluename set to ":D?", players ":D? | TyroneSama", ":D? Laz" and "What :D?" will always be assigned to the blue team. Use this with clan tags or shortcodes to organize group matches painlessly.
fr_crewfill: When on, fr_crewbattle is on, and only one team name is overridden, players that don't match that team will still be assigned to it if not doing so would create unbalanced teams. When off, disables the balanced team requirement: only players matching the overridden team name will be assigned to that team.

Bossmode
(NB: All cvars that control item type take the same values as kartdebugitem.)
fr_bosschance: Chance out of 100 that a team game becomes a Bossmode game, assigning a single player to the orange team and giving them massively overpowered items; they must beat everyone to win.
fr_forceboss: If not "Random", and a player's name contains the value set, that player will always be selected as a boss during Bossmode games.
fr_bossrestock: When a boss that's not currently winning pulls a stackable item, they'll receive this value in bonus items.
fr_bossscalerestock: Controls whether bosses receive half restock value if the item they pulled was singular; by default, this means x1 Jawz becomes x3 Jawz, but x2 Jawz becomes x6 Jawz. Recommended, obviously.
fr_bossspbgone: When a blue player would otherwise pull an SPB, but the boss isn't in 1st, it's replaced with this. Takes the same values as kartdebugitem.
fr_bossshrinkbgone: When any player would otherwise pull Shrink, it's replaced with this.
fr_bossprotectitem: Controls what items a boss receives when they're hit with no item ("pity pull").
fr_bossprotectamount: Controls the amount of items received during pity pulls.
fr_bossprotectfront: Controls whether winning bosses can receive pity pulls.
fr_bossstartitem: Controls what item a boss is given at the start of a race.
fr_bossstartamount: Controls how many items a boss is given at the start of a race.
fr_bosskarma: Controls whether the boss always has karma items.
fr_worldkarma: Controls whether blue team players have karma items when trailing the boss.
fr_worldpower: Controls whether blue team players will have their power items replaced.
fr_worldpoweralways: When on, power item replacement affects all blue team players. When off, power item replacement affects only players leading the boss.
fr_worldreplaceitem: Controls what item replaces blue team power items.
fr_worldreplaceamount: Controls how many items replace blue team power items.
fr_worldjawz: Controls whether blue team players will have their Jawz pulls modified.
fr_worldjawzalways: When on, blue players will always have x2 Jawz replaced with x1 Jawz. When off, blue players will only have their Jawz count modified if they're leading the boss.

FRIENDMOD is compatible with the HOSTMOD anti-specbomb features; a player who spectates mid-race will be counted as last place. Other scripts can check whether FRIENDMOD is enabled with FRIENDMOD_CheckTeams(), and toggle the state of the script with FRIENDMOD_ToggleTeams().
 

Attachments

  • KL_FRIENDMOD_V4-io2.pk3
    854.4 KB · Views: 482
Last edited:
Welcome to releases! Though, I cannot foresee the full scope of this release on my own, so I have to rely on his server's constant tests to know if this fully works as intended.
 
Uploaded a new version that shuts off mod behavior in Battle mode. No need to update if you're not playing Battle in your netgames.
 
Uploaded V4-io. In this version, configs will be loaded from the "luafiles" directory using 1.2's new(ish) I/O support. Also included a quick hotfix to resolve some issues where team assignment freaked out in certain clan scenarios.

This should resolve config-search stalling for players with slow drives, and should help mitigate timeout-on-join issues on servers with incorrectly configured nettimeout.

(AFAIK there is literally no reason not to have this maxed.)

EDIT: Version "-io2" resolves issues where some dedicated servers running vanilla 1.3 would freak out at the new config system. This is because of a base game bug (currently fixed in master).
 
Last edited:
Bugfix for one line in the ShouldSquish hook:

Lua:
elseif (p.FRteam == source.player.FRteam) then
            teamattackmirror(source.player)
            maybeDoInstashield(p)
            if not fr_teamattack.value then return false else return end

simply returning fr_teamattack.value will also overwrite default behaviour when teamattack is on, skipping the vanilla checks for flashing, squishedtimer etc. It also fixes hitfeed to no longer be spammed with multiple squish lines.

anyway thank you for this fun mod and making it reusable.
 
Bugfix for one line in the ShouldSquish hook:

Lua:
elseif (p.FRteam == source.player.FRteam) then
            teamattackmirror(source.player)
            maybeDoInstashield(p)
            if not fr_teamattack.value then return false else return end

simply returning fr_teamattack.value will also overwrite default behaviour when teamattack is on, skipping the vanilla checks for flashing, squishedtimer etc. It also fixes hitfeed to no longer be spammed with multiple squish lines.

anyway thank you for this fun mod and making it reusable.


Should this same logic also be applied to ShouldSpin and ShouldExplode hooks as well?
 
Is there any way to disable the "Free For All!" text and sound during non-team gameplay? I'd love for friendmod to be on in the background and have the teamchance cvar make random matches be teams, but otherwise feel like it's not even there.
 

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Back
Top