BigWalkSprays
Adds sprays like a 2008 tf2 lobby. Everyone with the mod sees each other's graffiti/art/nonsense .Big Walk Sprays
BETA.
We found another perhaps unnecessary social feature that Big Walk lacked. Tagging. Graffiti. Art. Galleries. Personal expression.
Mark the path. Maybe place pngs of some whimsical walker fan art. Recreate some promo art.
Or maybe leave an ancient xbox 360 kid meme on a cliff face. The great thing about vandalizing nature isn't polluting the games, it's showing everyone with the mod installed that you did.
Seriously though, please spray responsibly.
Keys
| Key | Action |
|---|---|
| F3 | Open/close the menu |
| F | Spray the selected image |
| C | Remove your most recent spray (for everyone). Press again to go further back. |
| V | Clear every spray (yours and others') from your own screen only |
All four are configurable. If one clashes with some other keybind you have, just change it in the config.
Install
Install through r2modman (or drop the DLL in BepInEx/plugins/<folder>/). The first time the game runs, the mod creates these next to its DLL:
| Item | What it is |
|---|---|
sprays/ |
Your images go here (subfolders are scanned too) |
spraysounds/ |
Optional sound choices (.ogg .wav .mp3, subfolders scanned too) |
spray.ogg |
Default spray sound (you add this; .wav/.mp3 also work) |
The exact paths are printed in BepInEx/LogOutput.log on startup (look for "Sprays loaded").
Back up your sprays and spraysounds folders. A mod manager may wipe the mod's folder when it updates or reinstalls.
Everyone playing together needs the mod, and the same version. The network format changes between versions, so mixed versions won't understand each other.
How to use
- Press F3 to open the menu.
- Sprays tab: click an image. The menu closes and a bar at the bottom shows what's selected.
- Sounds tab (optional): click a sound to select it. It plays a preview. You'll hear it with every placement.
- Go up to a wall within range and press F.
Your selection stays active, so you can keep pressing F. Press F3 again to change it.
Config
File: BepInEx/config/com.gogogadgetjustice.bigwalk.sprays.cfg (created after the first run).
| Setting | Default | What it does |
|---|---|---|
SprayLifetimeSeconds |
0 |
How long sprays stay up on your screen. 0 = never expire. |
MaxSpraysPerPlayer |
10 |
Max sprays shown per player; the oldest is removed first. 0 = unlimited. |
WorldSize |
1.0 |
Spray height/width in metres. |
MaxRange |
4 |
How far away a wall can be. |
CooldownSeconds |
3 |
Minimum time between your own sprays. |
Volume |
1 |
Spray sound volume (0 to 1). |
MenuKey |
F3 |
Opens the menu. |
SprayKey |
F |
Sprays the selected image. |
DeleteLastKey |
C |
Removes your latest spray. |
DeleteAllKey |
V |
Clears all sprays from your screen. |
SelectedSound |
blank | Remembers your chosen sound. Blank = the default spray.ogg. |
Lifetime and the per-player cap are applied by each player's own client. If you set a 60-second lifetime, you see everyone's sprays vanish after 60 seconds. Friends with different settings see them differently.
Supported image formats
| Format | Notes |
|---|---|
| PNG | Interlaced PNGs are rejected (re-save without interlacing). |
| JPG / JPEG | Decoded by Unity; takes a moment, and the bar shows "Loading..." |
| GIF | First frame only (not animated). |
| BMP | 8, 24 and 32-bit, uncompressed. |
Not supported: WebP, TIFF, SVG.
Transparent PNGs work! The voids around your image will just as invisible in the world. Animated GIFs aren't supported yet. We live in a static, tragic world for now.
Large images should be automatically shrunk (max is about 384 px and 48 KB) before being sent to other players, so very detailed images will look softer for everyone.
Multiplayer
- If they don't have the mod, they'll just see you staring blankly at a wall, which should still bring tha tf2 public lobby nostalgia.
- Sprays are sent over the game's Mirror connection. The host relays them to everyone else. Players without the mod ignore them.
- Images are sent once per session, then referenced by a hash. If a player is missing an image, they request it.
- Sounds are not sent. Only the file name is sent, so others hear it only if they have a file with the same name in their own
spraysoundsfolder. Otherwise they hear their default sound. - The C key removes your spray for everyone. V only affects your own screen.
Known caveats
- Not multiplayer tested. Report anything odd with your
LogOutput.logover in the /r/bigwalkmodding subreddit. - Mid-air sprays. If you're not close enough to a surface, it'll catch on you and float in mid-air at a tilt. C button to wipe it and try again.
- Rendering: sprays are flat transparent quads, not true projected decals. They sit about 1 cm off the surface, so they can look odd on curved walls or tight corners. If the game's shaders are stripped, the log will say "No usable shader found".
- Location isn't verified. You can spray anywhere but they can clip into objects. Layering them may have them argue about which is on top.
- Sprays don't move. They won't ride the trains. They'll stay in that spot.
- Late joiners don't see old sprays. Only sprays placed while they're connected appear.
- Cheater skeeter. You could probably find ways to undermine the communication challenge part of some puzzles.
- Sprays reset every session. They are not saved.
- Key conflicts: There is no check for typing in chat. Be mindful that F/C/V will always trigger if you don't change them.
- No moderation. Anyone with the mod can spray any image they like, and currently the player ID used for C/cap logic is randomized per session and can be faked. Fine for friends, not for public lobbies.
- Sound name clashes: if two sounds in different subfolders share a file name, only one is used.
To do, Maybe
- Show existing sprays to players who join late.
- Make sprays follow moving objects (parent to what they hit).
- Animated GIF support. The world needs spinning party hats.
- A gallery mode so you can view your whole folder as thumbnails instead of just filenames.
- In-game drawing tool. Why import a .png when you can just scrawl a crude drawing of a fish directly onto a rock?
- Option to have the sprayer's lifetime setting apply to everyone.
- Block spraying while a chat box or other UI is focused.
- Rate limits and a way to mute or hide a specific player's sprays.
- WebP support.
- Voice-activated spray. Call the filename into the mic to tag the wall.
- Optimize, optimize, optimize.
Digital Tip Jar
If this helped you express your artistic vision by interrupting a perfectly good philosophical walk in the woods with low-res anime references, consider supporting on Ko-fi. Funds will be used to improve multiplayer testing.
License
CC BY-NC (Attribution-NonCommercial) with a Skiwsgaard non-commercial fishing license addendum.
Reach out if you do something cool with this.
pro-tip: 95% of sprays will be remembered as cringe.
