ShieldGolf, the disc golf mod for Valheim: throw a round shield like a golf disc, with real disc flight, tilt, wind, skips and baskets.
Only the thrower needs the mod. The server needs nothing, and players without the mod still see the shield fly and land as an ordinary dropped item. Shields not in the class list behave exactly like vanilla.
This guide lists every control, formula, stat and modifier, with the shipped default numbers. Mod version 1.13.7, game 1.0.20 (shown as l-1.0.20 on Linux). This page ships in the mod's zip as guide.html, matching that version; the latest is at shieldgolf.planetdg.com. Want the real thing? Find a disc golf course near you on Planet DiscGolf.
You need Valheim 1.0.20 and a mod manager: Gale, r2modman or Thunderstore Mod Manager. Without one, see the manual install in the advanced part.
z3n-ShieldGolf-1.13.7.zip as a local mod into the Valheim profile you play with (Gale: the profile's mod list; r2modman: Settings → Import local mod).
z3n-DiscGolf from the profile.ShieldGolf 1.13.7: 10 shields in 4 classes. A warning under it means the game is not the version the throws were measured on (1.0.20; Linux shows it as l-1.0.20).In game, equip a round shield and click Secondary attack: the shield is held out flat beside you. That is throw mode, and the mod works. Everyone you play with should run the same version (playing together).
A modded game can't earn Steam achievements: BepInEx itself marks the session as modded. ShieldGolf adds nothing to that by default (details).
Equip a round shield with nothing in your right hand, enter throw mode, set your tilt, wind up and let go. Walk to where it landed, pick it up and throw again from there, until it stays in the basket.
| Input | What it does |
|---|---|
| Secondary attack click (middle mouse unless you rebound it) | Enters throw mode, in backhand. Each further click switches forehand ↔ backhand; with a buckler or the Wood shield it steps backhand → putt → forehand. Until you press it, all buttons are vanilla: right click blocks and parries as usual. With a listed shield alone this button never kicks. |
| Secondary attack hold ½ s | Leaves throw mode (back to vanilla blocking). |
| Right mouse hold (in throw mode) | Freezes the camera so the mouse tilts the shield instead. |
| Mouse left / right, while right is held | Tilt (roll). Left dips the left edge (hyzer, curves left); right dips the right edge (anhyzer, curves right). 1° per degree of mouse movement, max ±45°. |
| Mouse up / down, while right is held | Nose angle. Up raises the nose (climbs, stalls sooner); down lowers it (flies low and fast). 0.5° per degree of mouse, max ±10°. |
| Right mouse quick tap | Resets tilt and nose to flat: a press under 0.25 s with under 1.5° of mouse movement. |
| Left mouse hold, release | Wind up, then throw. The longer the hold (up to 1.2 s), the harder the throw. At full power the bow's draw sound plays and the shield jolts: let go right then for a clean throw. Hold on and you overpower it: it trembles and turns over (sweet spot). In putt mode look at the chains: about half a second reaches 5 m, a full hold 15–20 m. |
| Equip a weapon, or unequip the shield | Throw mode turns off too. Tilt and nose reset. |
| Opening a menu, chat or inventory mid wind-up | Cancels the throw (it never fires into a menu). |
The longer you hold Left mouse, the harder the throw: a tap barely leaves your hand, 0.6 s is about half power, 1.2 s is full power. Half a wind-up throws about half as far.
A full throw has a sweet spot right after it reaches full power. At 1.2 s the bow's draw sound plays and the shield in your hand jolts forward: that is full power.
Hold on past the window and you overpower it. The shield trembles in your hand, and like a real disc thrown harder than it is built for, it turns over:
Compensating, as in real disc golf: throw something more overstable. Two things in the mod make a shield more overstable, and both hold an overpowered throw on its line:
If you know you rip your throws, a fairway or a driver in a well-kept, upgraded shield keeps the line; a worn, low-quality mid turns over the most.
With a buckler or the Wood shield in hand, clicks of secondary attack in throw mode step backhand → putt → forehand.
Hold needed to reach the chains (1.3 m high) when you look at them:
| Distance | Blocking 0 | Blocking 100 |
|---|---|---|
| 3 m | 0.30 s | 0.24 s |
| 5 m | 0.47 s | 0.38 s |
| 10 m | 0.80 s | 0.66 s |
| 15 m | 1.07 s | 0.89 s |
| 20 m | out of reach | 1.10 s |
From the simulator: putter, flat ground, release 1.5 m, still air. Holding longer than the table sends it over the chains. Not yet checked in game.
The baskets stand higher than real ones: basket 5's funnel rises from 0.6 m at the pole to 1.6 m at its edge, with a log rim on top. A push putt leaves your hand at about waist height, so from right beside the basket it can't climb over the rim and hits it from the side.
A tap-in solves that: the shield leaves from above your head and drops in from above, the way a tall player reaches up and drops a disc into the chains.
How to tap in
What the mod does
Distance rings (debug). Set [debug] distance_rings = true, and while throw mode is on, three rings lie on the ground around the point under your crosshair:
Aim at the funnel or the chains, not at the pole below the funnel: the lob would then aim under the basket and most likely hit the funnel or rim on the way down.
[visual] follow_camera = false turns it off.A course is a row of holes: a tee to throw from and a basket to finish in. Both are built from ordinary pieces, so a course stays in the world for everyone, and players without the mod see it too.
Five designs, from wood only to iron. The wood funnel is the default and needs no iron.
Schematic renders of exactly what the command places (each piece as its collider box, from the same layout code), with a Flametal shield for scale; the game's own models look rougher and nicer.
With the hammer (the usual way):
With a command: /discbasket in chat (or discbasket in the F5 console) builds one 4 m ahead of you, facing you.
It takes the same materials from your inventory (and says what is missing); no cheats needed. In a world with the No build cost modifier it costs nothing, as the hammer does there.
| Command | Does |
|---|---|
| /discbasket | Design 5 (the wood funnel; [basket] design), 4 m ahead. |
| /discbasket 3 | Design 3, 4 m ahead. |
| /discbasket 2 8 | Design 2, 8 m ahead (3–20 m). |
| /discbasket remove | Takes down the whole nearest basket (within 8 m) and refunds its pieces. |
| /discbasket help | The usage. |
| # | Design | Built from |
|---|---|---|
| 5 | Wood funnel (default) | Design 1 with no iron in it: the same log pole, thatch funnel and log rims, a crown of wood beams and twelve 2 m wood poles as chains (0.4 m thick, the closest two 0.43 m apart centre to centre). Wood and core wood only. |
| 1 | Iron funnel and chains | A 4 m log pole and four Thatch Roof Inner Corner 26° pieces: a square funnel 4 m across, from 0.6 m at the pole up to 1.6 m at the edge, which slides a landed shield to the pole. On top: a crown of iron beams (a cross plus a 1.7 m ring) and twelve iron poles hanging as "chains", 1.75–3.75 m up. Two squares of core-wood logs, one on the funnel's rim and one at the crown, 1.9 m apart: you can climb in over the lower one to fetch shields (1.7.1; rebuild an older basket to get it). |
| 2 | Iron tray | A flat iron tray 4 m across at 0.8 m (2×2 iron floors), an iron-beam rim (3.4 m clear inside), a 2 m iron pole and a crossed iron crown. No chains. |
| 3 | Gallows | Two 4 m log posts and a log crossbeam at the back. Four iron poles hang from it as a curtain (1.65–3.65 m up), and an iron tray with a rim hangs from the curtain at 1.7 m. Hit the curtain and drop into the tray. |
| 4 | Backboard | The thatch funnel on a short pole, with a wooden wall 4 m wide and 2 m tall on its far edge between two 4 m posts, and logs on top and along the sides. Bank it off the wall. The most forgiving one. |
[basket] free = true is the cheat: baskets cost nothing and refund nothing. It only works with devcommands in a world you host, and the free pieces carry the game's cheated mark, as nocost pieces do (see achievements).remove rather than piece by piece: the iron crown and chains hold each other up and can be left floating.A tee is any flat spot you agree to throw from. There is no tee piece: build one from what you have.
As a guide to distances (full throws on flat ground, still air, table): a fresh character throws a driver about 70 m and a putter about 47 m; at Blocking 100 a driver goes about 125 m. So for a mixed group:
| Par | Tee to basket |
|---|---|
| 3 | up to about 70 m |
| 4 | about 70–140 m |
| 5 | longer, or a dogleg around trees or a hill |
Trees, rocks, water and slopes make a hole interesting: a shield glances off trunks and rocks, floats where it lands in water, and rolls downhill on its edge.
Turn on [debug] distance_rings while building to see 3.5, 10 and 20 m rings around the point you look at.
The game keeps no score yet: count your own throws and write them down (on paper, in chat, or on a sign at the last hole).
Each shield flies like a real golf disc of its class, steered by a physical flight model. What changes a throw: the class, your shield's condition, your skill, the wind, and what it lands on.
Each listed shield belongs to a class with the four numbers printed on real golf discs: speed, glide, turn, fade. Defaults are modelled on an Aviar, Buzzz, Teebird and Wraith.
| Class | Shields | Speed | Glide | Turn | Fade | Character |
|---|---|---|---|---|---|---|
| Putter | Bronze Buckler, Iron Buckler, Carapace Buckler, Deep North gold buckler | 2 | 3 | 0 | 1 | Flies straight, forgiving, short. |
| Mid | Wood Shield, Banded Shield | 5 | 4 | −1 | 1 | Slight turn, gentle fade. |
| Fairway | Silver Shield | 7 | 5 | 0 | 2 | Holds its line, fades at the end. |
| Driver | Black Metal Shield, Flametal Shield, Deep North gold round shield | 11 | 5 | −1 | 3 | Longest; needs a full, skilled throw, otherwise it fades early. S-curve when thrown well. |
Throwing uses and trains the vanilla Blocking skill.
The game's own wind pushes your throws; full wind is a moderate breeze, and storms come near it.
| Class | Full, Blocking 100 | Full, Blocking 0 | Half power |
|---|---|---|---|
| Putter | 66 m | 47 m | 33 m |
| Mid | 78 m | 53 m | 35 m |
| Fairway | 90 m | 59 m | 38 m |
| Driver | 126 m | 70 m | 40 m |
Carry to the first ground contact, flat ground, still air, best loft; checked in game within 2%. Details in measured carries.
The formulas, the flight model, the config and the test tools: for the curious and for checking the mod. Nothing here is needed to play.
The mod is one file, ShieldGolf.dll, loaded by BepInEx from the game folder. Steam's game folder is:
C:\Program Files (x86)\Steam\steamapps\common\Valheim~/.steam/steam/steamapps/common/Valheim (or ~/.local/share/Steam/steamapps/common/Valheim)BepInExPack_Valheim folder into the game folder, next to valheim.exe / valheim.x86_64: the BepInEx and doorstop_libs folders, winhttp.dll, doorstop_config.ini, start_game_bepinex.sh and start_server_bepinex.sh.
BepInExPack_Valheim folder itself in there.z3n-ShieldGolf-1.13.7.zip and copy ShieldGolf.dll to <game folder>/BepInEx/plugins/ShieldGolf/ (create the folder; any name works, BepInEx loads every DLL under plugins). Updating later is replacing that one file.winhttp.dll in the game folder makes it load BepInEx.
BepInEx/config/BepInEx.cfg, [Logging.Console] Enabled = false)../start_game_bepinex.sh %command%.
chmod +x ~/.steam/steam/steamapps/common/Valheim/start_game_bepinex.sh (adjust the path if your library is elsewhere).WINEDLLOVERRIDES="winhttp=n,b" %command% instead of the script.<game folder>/BepInEx/LogOutput.log contains ShieldGolf 1.13.7: 10 shields in 4 classes, and the config file BepInEx/config/z3n.shieldgolf.cfg exists.A manual install lives in the game folder. r2modman, Gale and Thunderstore Mod Manager keep their own profiles and ignore it, so a game started from a manager loads the manager's mods only: use one route or the other.
To uninstall the manual way, delete BepInEx/plugins/ShieldGolf/. To remove BepInEx entirely, delete the files from step 1 and clear the launch option.
A modded game session can't earn Steam achievements (BepInEx sets the game's modded state, which the game counts like a cheat for as long as it runs). Play golf in a separate profile if that matters to you, or use the game's official bypass command.
Beyond that, the mod marks nothing and flags nobody by default: baskets are paid for, and shields are crafted or found. Two things are cheats, and they only work where the game runs its own cheat commands (devcommands in a world you host):
discshields: its shields carry the game's cheated-item mark, like spawn's items. Carrying one blocks achievements until it is dropped or put in a chest.[basket] free: its pieces carry the mark, like nocost pieces.Neither sets the character's own permanent cheat flag (the one confirmcheats warns about), and neither touches the world.
Easy to miss: in a modded session the game skips its confirmcheats warning, because it already counts the session as cheated. So devcommands and then any of its own cheat commands (god, tod, raiseskill, spawn…) would flag that character permanently, at once and without a message.
ShieldGolf puts the warning back ([safety] confirm_cheats, on by default): a cheat command is refused with the game's own message until you run confirmcheats, as in an unmodded game. Still, use dev commands on a throwaway character.
A tap is power 0.05; a 0.6 s hold is about 0.53; 1.2 s or longer is 1.0.
| Full throw at Blocking 17, overpowered (+20°) | Clean | Overpowered |
|---|---|---|
| Mid (turn −1, fade 1): understable | 0.6 m left | 10.4 m right |
| Driver (turn −1, fade 3): strong fade | 10.6 m left | 1.8 m right |
From the simulator, still air, loft 8°, neutral shield. The driver moves as far, but from a hard fade to nearly straight: it fades back out of the anhyzer.
skill is your Blocking level / 100. Every disc leaves the hand at the same arm speed; what differs is how well each disc uses it (speed rating). The exponent 0.6 makes carry grow roughly in proportion to power, so half a wind-up throws about half as far.
| Power | Blocking 0 | Blocking 50 | Blocking 100 |
|---|---|---|---|
| Tap (0.05) | 4.2 m/s | 4.8 m/s | 5.3 m/s |
| Half (0.5) | 16.9 m/s | 19.0 m/s | 21.1 m/s |
| Full (1.0) | 25.6 m/s | 28.8 m/s | 32.0 m/s |
Valheim's camera looks down at your character, so a level aim already throws 10° upward. 6–10° of loft carries furthest (driver 6°, mid and fairway 8°, putter 10°). The horizontal direction is where you look, plus the release error from skill.
The tilt you set, plus the skill error, clamped to ±45°. It is the disc's starting roll: positive = right edge down. During flight the tilt keeps changing (turn and fade) up to a hard limit of ±80°.
nose_down_deg), because that flies furthest.The shield leaves from your left hand on a backhand and your right hand on a forehand (1.4 m above your feet if the hand can't be found), 0.3 m ahead along the throw line. It ignores your own body for the first 0.3 s.
Throwing uses and trains the vanilla Blocking skill. It changes four things:
| Effect | Formula | Blocking 0 | Blocking 100 |
|---|---|---|---|
| Arm speed | × (0.8 + 0.2·skill) | 80% | 100% |
| Spin | × (0.84 + 0.16·skill) | 84% (≈ 970 rpm on a full throw) | 100% (≈ 1450 rpm) |
| Tilt error | uniform ±4° × (1 − skill) | ±4° | none |
| Aim error (yaw) | uniform ±2° × (1 − skill) | ±2° | none |
Why spin matters: the disc's turn and fade come from its pitching moment divided by its spin (precession). Less spin means the same moment rolls the disc faster, so a low-skill throw turns harder early and fades harder late.
Combined with the slower arm, a fresh character throws about two thirds as far.
The spin numbers come from real throwers (Koch et al. 2024: novices about 770 rpm at 20.5 m/s, advanced players about 1120 rpm at 25.5 m/s).
One block's worth of experience per 20 m of carry, and at least half a block for any throw. A 100 m drive is worth 5 blocks.
XP is granted at first ground contact. If another player's game finished the flight (handoff), you still get it when that game reports the landing.
Speed, spin, error, stability and mass are the mod's exact formulas. The carry is only a rough guide: it scales the simulator carries (table) by power and skill, and ignores stability, mass and wind.
| Rating | Effect | Formula |
|---|---|---|
| Speed | Lowers drag (a fast disc keeps its speed) and steepens the pitching-moment slope (drivers fade hard when slow, putters barely). | Cd0 = max(0.02, 0.11 − 0.007·speed) slope = 0.5 × (0.13 + 0.079·speed) per rad |
| Glide | Scales lift. | lift × (0.7 + 0.06·glide) |
| Turn | More negative = more nose-down moment when fast = rolls right (backhand). | Cm += 0.0025·turn |
| Fade | Higher = less nose-down when fast, and the end-of-flight fade comes sooner. | Cm += 0.0015·fade |
| Class | Lift factor | Base drag Cd0 | Moment slope /rad | Moment at 0° |
|---|---|---|---|---|
| Putter | 0.88 | 0.096 | 0.144 | −0.0145 |
| Mid | 0.94 | 0.075 | 0.263 | −0.0170 |
| Fairway | 1.00 | 0.061 | 0.342 | −0.0130 |
| Driver | 1.00 | 0.033 | 0.500 | −0.0155 |
The class table is fixed in the mod (since 1.10.0), the same for every player. A shield in no class stays vanilla.
| Shield | Stability | Flies |
|---|---|---|
| Quality 1, full durability | −0.5 | Understable: turns right, fades little. |
| Quality 2, full | 0 | As the class numbers say. |
| Quality 3 (max for all eight), full | +0.5 | Overstable: holds, then fades hard. |
| Above max quality (if anything ever allows it) | up to +1 | Even more overstable. |
| Quality 3 at half durability | 0 | Beat in back to neutral. |
| Quality 1 at zero durability | −1 (clamped) | Flippy: turns over hard. |
Half a point of stability shifts the moment by 0.0045, about the same as 1.8 points of turn rating, so quality matters as much as the class. Repairing the shield at a workbench restores durability and with it the stability, just as a new disc replaces a beat-in one.
| Event | Durability lost | Config |
|---|---|---|
| Landing on the ground (or in water) | 1 | [wear] per_landing |
| Hitting a tree, rock, building or creature (whether it glances off or stops) | 3 each | [wear] per_hit |
| Shield weight | ≤ 3 | 4 | 5 | 6 | 7 | ≥ 8 |
|---|---|---|---|---|---|---|
| Disc mass | 150 g | 156 g | 162 g | 168 g | 174 g | 180 g |
That is the legal golf-disc range. Lift, drag and wind push on a lighter disc harder (acceleration ∝ 1/mass), so heavy shields drift less in wind and hold their line better.
Spin inertia grows with mass too, so a heavier disc's turn and fade build more slowly. Check a shield's weight in its tooltip.
The flight is physical, based on golf-disc wind-tunnel and CFD measurements (Giljarhus et al. 2022; Kamaruddin et al. 2018; Hummel 2003).
The mod simulates a real disc, 21.1 cm across and 150–180 g, and steers the shield with it. The shield is visual only; its size does not matter in the air.
A spinning disc doesn't pitch up or down when the air pushes on its nose; it rolls instead (gyroscopic precession):
roll_ramp_sec), so the disc doesn't snap over right out of the hand.max_frame_turn_deg), and stay fixed after that, as a spinning disc's do: a long fade then dives instead of curling back toward you.
descent_ease_start_deg, descent_level_deg), so it glides on instead of being braked by its own lift.wind_scale; 6 before 1.5.1), a moderate breeze. Storms are near full intensity.Checked in game (2026-10-19, the game's own wind, every throw within 0.4 m of the simulator's carry; full wind was 6 m/s then):
The first ground contact decides what happens:
| Outcome | When | What happens |
|---|---|---|
| Roll | Tilted ≥ 60° onto the edge the spin drives forward (right edge for a backhand, left for a forehand), ≥ 4 m/s along the ground, coming in at ≤ 35°. | It rolls on its edge, slowing by 1.5 m/s², curving toward its low side at 0.5 rad/s, for up to 6 s or until under 1 m/s. It stops at the first thing that isn't terrain. |
| Skip | Comes in at ≤ 25°, at ≥ 8 m/s. | It bounces on, keeping 60% of its speed along the ground, bouncing up at 35% of the impact speed, and kicking sideways toward its low edge. |
| Stop | Anything else: steep, slow, or on the wrong edge. | Normal game physics (it may still slide or tumble). |
Checked in game (2026-10-19): skips and rolls happen as the rules above say, and the shield really leaves the ground with the speed they set.
Dropping below the water surface counts as the landing. The shield then floats like any dropped item.
A thrown shield is a dropped item. It collides with terrain, solid building pieces, rocks, trees and other items.
It passes through anything on the game's non-solid layer: hanging cloth, banners, fenrir hides and the chains of hanging braziers. To catch discs, build with poles, beams, walls, floors and roofs.
From the mod's simulator: flat ground, still air, best loft, release 1.5 m up, neutral stability. Carry is the distance to the first ground contact.
Checked in game on 2026-10-19: an automatic test run threw 21 cases (every class at full and half power and at Blocking 0 and 100, tilt, nose, forehand, quality, loft).
| Class | Best loft | Full, Blocking 100 | Hang time | Max height | Full, Blocking 0 | Half power | Tap | Max right / landing | From a 30 m hill |
|---|---|---|---|---|---|---|---|---|---|
| Putter | 10° | 66 m | 3.9 s | 5 m | 47 m | 33 m | 3.5 m | 0.7 / −3.9 m | 74 m |
| Mid | 8° | 78 m | 4.2 s | 4 m | 53 m | 35 m | 3.5 m | 2.3 / −1.1 m | 89 m |
| Fairway | 8° | 90 m | 4.8 s | 5 m | 59 m | 38 m | 3.5 m | 1.9 / −5.1 m | 110 m |
| Driver | 6° | 126 m | 5.8 s | 4 m | 70 m | 40 m | 3.4 m | 6.9 / 1.2 m | 153 m |
File: BepInEx/config/z3n.shieldgolf.cfg in your mod manager's profile (Gale, r2modman), or in the game folder for a manual install. It is written on the first start, and every entry carries its own description there.
A z3n.discgolf.cfg beside it is from versions before 1.2.0 and is ignored.
Since 1.10.0 everything that changes a throw or a basket is fixed in the mod. Every game flies its own throws, so a value in the config would let each player tune their own; fixed, everyone throws with the same shields.
/discbasket defaults.| Key | Default |
|---|---|
| putter | ShieldBronzeBuckler,ShieldIronBuckler,ShieldCarapaceBuckler,ShieldGoldBuckler: 2, 3, 0, 1 |
| mid | ShieldWood,ShieldBanded: 5, 4, -1, 1 |
| fairway | ShieldSilver: 7, 5, 0, 2 |
| driver | ShieldBlackmetal,ShieldFlametal,ShieldGold: 11, 5, -1, 3 |
| putt_also | ShieldWood |
| Key | Default | Meaning |
|---|---|---|
| arm_speed | 32 | Launch speed in m/s at full power, Blocking 100. |
| speed_at_zero_skill | 0.8 | Fraction of the arm speed at Blocking 0. |
| lift_scale | 0.55 | Scales the CFD lift curve. |
| drag0 | 0.11 | Zero-lift drag of a speed-0 disc. |
| drag_per_speed | 0.007 | Drag taken off per point of speed rating. |
| drag_aoa | 3.3 | Extra drag per rad² of angle of attack. |
| moment_aoa | 0.5 | Pitching-moment slope (driver), scaled down for slower discs. |
| nose_down_deg | 2 | How far the disc's nose sits below the launch direction. |
| stall_deg | 20 | Stall angle. |
| advance_ratio | 0.5 | Rim speed ÷ flight speed at release: sets the spin. |
| wind_scale | 4.5 | Wind in m/s at the game's full wind intensity. |
| spin_at_zero_skill | 0.84 | Spin fraction at Blocking 0. |
| stability_moment | 0.009 | Moment shift per point of stability. |
| wear_stability | 1 | Stability lost from full durability to none. |
| roll_ramp_sec | 0.4 | Seconds for the roll rate to build up after release. |
| max_frame_turn_deg | 15 | How far the path may bend off the throw line before the disc's tilt stops following it (a long fade then dives instead of curling back). |
| descent_ease_start_deg | 20 | Descent angle where a nose-up disc starts easing level. |
| descent_level_deg | 60 | Descent angle where it is level, so a falling disc glides forward. |
| wind | true | Wind affects throws. |
In the config: tilt_per_mouse_deg, nose_per_mouse_deg, tap_max_sec, tap_max_mouse_deg, exit_hold_sec. Every other row is fixed.
| Key | Default | Meaning |
|---|---|---|
| max_tilt_deg | 45 | Largest tilt you can set. |
| tilt_per_mouse_deg | 1 | Tilt per degree of sideways mouse movement. |
| nose_per_mouse_deg | 0.5 | Nose angle per degree of vertical mouse movement. |
| max_nose_deg | 10 | Largest nose angle. |
| full_windup_sec | 1.2 | Hold time for full power. |
| stamina_cost | 10 | Stamina per throw (and needed to start a wind-up). |
| tap_max_sec | 0.25 | A right-click this short … |
| tap_max_mouse_deg | 1.5 | … with less mouse movement than this resets tilt and nose. |
| loft_offset_deg | 10 | Added to the camera pitch. |
| exit_hold_sec | 0.5 | Holding secondary attack this long leaves throw mode. |
| putt_max_power | 0.35 | Putt mode: the power a full wind-up reaches (chains at 15–20 m). |
| putt_loft_offset_deg | 15 | Putt mode: degrees above the line from your hand to the crosshair. |
| tap_in_range | 3.5 | Putt mode: a putt aimed closer than this (m, on the ground) is a tap-in from overhead. |
| tap_in_release_height | 2.2 | Tap-in: release height above your feet (m). |
| sweet_window_sec | 0.15 | Sweet spot: the clean window after full power at Blocking 0 (s). |
| sweet_window_skill_sec | 0.15 | Sweet spot: what the window grows by at Blocking 100 (s). |
| overhold_deg_per_sec | 15 | Overpowering: anhyzer toward the turn side per second past the window. |
| overhold_max_deg | 20 | Overpowering: the most anhyzer, before stability (×1.5 to ×0.5) and skill (×1 to ×0.5). |
| tap_in_min_loft_deg | 45 | Tap-in: the lob's lowest launch angle. |
| putt_speed_at_zero_skill | 0.9 | Putt mode: launch speed at Blocking 0 as a share of Blocking 100's. |
| putt_spin | 0.4 | Putt mode: spin as a share of a normal throw's (push putt). |
| Key | Default | Meaning |
|---|---|---|
| skill.max_tilt_wobble fixed | 4 | Tilt error (±°) at Blocking 0. |
| skill.max_yaw_wobble fixed | 2 | Aim error (±°) at Blocking 0. |
| skill.metres_per_block fixed | 20 | Carry per block's worth of Blocking XP. |
| wear.per_landing fixed | 1 | Durability per landing. |
| wear.per_hit fixed | 3 | Durability per hit on a tree, rock or building. |
| visual.follow_camera | true | Chase camera. |
| visual.flight_offset_x | 0 | Pitch that lays the flying shield face up (180 flips it). |
| visual.held_offset_x | 180 | Same for the shield in your hand. |
| safety.confirm_cheats | true | Refuse a cheat command with the game's confirmcheats warning until confirmcheats has run (vanilla skips the warning in modded sessions; see Achievements). |
| debug.distance_rings | false | In throw mode, rings on the ground around the point under the crosshair at 3.5 m (tap-in range), 10 m and 20 m. Only on your screen. |
| debug.tuning_log | false | One [shieldgolf] line per throw in the BepInEx log. |
| (command) discshields | — | Not a setting: discshields in the console or /discshields in chat gives one shield per class, marked as cheated items like spawn does. Only with devcommands in a world you host; never flags the character. |
| basket.distance | 4 | Default build distance in m. |
| basket.design | 5 | Design /discbasket builds with no number. |
| basket.free | false | Cheat: baskets cost and refund nothing; needs devcommands in a world you host; the pieces get the cheated mark. |
| basket1 … basket5.* fixed | — | Prefab and height of each part of each design. |
Set tuning_log = true and every throw writes a line like this:
[shieldgolf] class=mid backhand power=1.00 tilt=-12.0 loft=12.3 nose=0.0 quality=3 stability=0.50 mass=168g skill=0.47 wind=0.0 wind_across=0.0 wind_along=0.0 end_tilt=-55 time=3.42 carry=61.8 rest=64.0 lateral=-3.1 durability=97
carry is the distance to first ground contact, rest where the shield stopped, and lateral the sideways offset (+ right).wind is the strongest wind during the flight; wind_across is the mean wind across the throw line (+ blowing to the right) and wind_along along it (+ a tailwind), both in m/s.For checking the mod itself, not for play. With [testrun] run = true, loading the throwaway character and local world named below throws every test case through the real release and compares each flight with the simulator (34 throws, about ten minutes).
BepInEx/config/shieldgolf/testrun.json; the measured numbers in sections 11–12 come from it.run = false afterwards.| Key | Default | Meaning |
|---|---|---|
| run | false | Run the test on the next load of the character and world below. |
| character | z3nlabs | Character name the run requires. |
| world | z3nlabs | World name the run requires (hosted by this game, not a server). |
| repeats | 1 | Throws per case. Without wind gusts or release error every throw is the same, so 1 is enough. |
| only | (empty) | Comma-separated words: only the cases whose name contains one, e.g. glance, roller. |