For anyone running Kobold Press's Midgard setting and needs a Ley Line generator (as per the rules here ), David M. has worked with me to come up with one. This macro requires Scriptcards. What it looks like: Macro code: !script {{
--#whisper|gm
--#title|Ley Line Presence Roller
--#noMinMaxHighlight|1
--:QUERIES|
--&distanceStr|?{Base Modifier|Very Far (over 200mi)|Far (100-200mi),|Distant (50-100mi)|Close (25-50mi)|Very Close (under 25mi)|Immediate (visible)}
--&geoStr|?{Geographical Features?|None|Geographic area known to be devoid of ley lines (e.g. Western Wastes)|Several miles deep underground|More than 100 ft. underground|Shallow underground (e.g. first few levels of a dungeon)|Hilltop|Small mountain|Deep canyon|Small river|Stream|Towering cliff|Large mountain|Forest heartlands|Large river|Coastline/beach|Lairs: Adult dragon/demons/other creatures of magical power|Glacier’s heart|Volcano (dormant or active)|Lairs: elder dragon/greater demon/other creatures of great magical power|Site of a Ramagi Monolith}
--&featuresStr|?{Nearby Features|None|Negative: consecrated holy/unholy building|Negative: freshly plowed earth|Positive: standing stones|Positive: stone circles|Positive: ancient trees|Positive: crossroads|Positive: bridge (natural or constructed)|Positive: druid grove|Positive: great temple|Positive: elven ruins}
--:LOOKUP MODIFIERS BASED ON QUERIES|
-->LookupDistanceMod|[&distanceStr]
-->LookupGeoMod|[&geoStr]
-->LookupFeaturesMod|[&featuresStr]
--:DISPLAY MODIFIERS|
--+Distance:|[&distanceStr] ([$distMod.Raw])
--+Geography:|[&geoStr] ([$geoMod.Raw])
--+Features Mod:|[&featuresStr] ([$featuresMod.Raw])
--+[hr]|
--:MAKE THE BASE ROLL AND DISPLAY|
--=presenceRoll|1d100 + [$distMod][Distance] + [$geoMod][Geographic] + [$featuresMod][Features]
--+|[c][b]Ley Line Presence Roll[/b] [$presenceRoll][/c]
--:CHECK BASE ROLL AGAINST TABLE|
--?[$presenceRoll] -ge 120|[
--=numTitanic|1
--=numStrong|2d8
--=numWeak|2d20
--&titanicStr|[$numTitanic] [b]Titanic[/b] ley line running through this location
--&strongStr|[$numStrong] [b]Strong[/b] ley line(s)
--&weakStr|[$numWeak] [b]Weak[/b] ley line(s) branching out
--]|
--?[$presenceRoll] -ge 115 -and [$presenceRoll] -lt 120|[
--=numTitanic|1
--=numStrong|1d8
--=numWeak|2d12
--&titanicStr|[$numTitanic] [b]Titanic[/b] nearby ley line
--&strongStr|[$numStrong] [b]Strong[/b] ley line(s)
--&weakStr|[$numWeak] [b]Weak[/b] ley line(s) branching out
--]|
--?[$presenceRoll.Raw] -ge 111 -and [$presenceRoll] -lt 115|[
--=numTitanic|1
--=numStrong|1d8
--=numWeak|2d12
--&titanicStr|[$numTitanic] single ley line
--&strongStr|No [b]Strong[/b] ley line(s)
--&weakStr|No [b]Weak[/b] ley line(s)
--]|
--?[$presenceRoll.Raw] -ge 100 -and [$presenceRoll] -lt 111|[
--=numStrong|1d4
--=numWeak|2d8
--&titanicStr|No [b]Titanic[/b] ley lines
--&strongStr|[$numStrong] [b]Strong[/b] ley line(s)
--&weakStr|[$numWeak] [b]Weak[/b] ley lines
--]|
--?[$presenceRoll.Raw] -ge 90 -and [$presenceRoll] -lt 100|[
--=numStrong|1
--=numWeak|1d10
--&titanicStr|No [b]Titanic[/b] ley lines
--&strongStr|[$numStrong] [b]Strong[/b] ley line(s)
--&weakStr|[$numWeak] [b]Weak[/b] ley line(s)
--]|
--?[$presenceRoll.Raw] -ge 80 -and [$presenceRoll] -lt 90|[
--=numStrong|1
--=numWeak|1d4
--&titanicStr|No [b]Titanic[/b] ley lines
--&strongStr|[$numStrong] [b]Strong[/b] ley line(s)
--&weakStr|[$numWeak] [b]Weak[/b] ley line(s)
--]|
--?[$presenceRoll.Raw] -ge 75 -and [$presenceRoll] -lt 80|[
--=numStrong|1
--&titanicStr|No [b]Titanic[/b] ley lines
--&strongStr|[$numStrong] [b]Strong[/b] ley line(s)
--&weakStr|No [b]Weak[/b] ley line(s)
--]|
--?[$presenceRoll.Raw] -ge 40 -and [$presenceRoll] -lt 74|[
--=numWeak|1d4
--&titanicStr|No [b]Titanic[/b] ley lines
--&strongStr|No [b]Strong[/b] ley line(s)
--&weakStr|[$numWeak] [b]Weak[/b] ley line(s)
--]|
--?[$presenceRoll.Raw] -ge 16 -and [$presenceRoll] -lt 40|[
--=numWeak|1
--&titanicStr|No [b]Titanic[/b] ley lines
--&strongStr|No [b]Strong[/b] ley line(s)
--&weakStr|[$numWeak] single [b]Weak[/b] ley line(s)
--]|
--?[$presenceRoll.Raw] -lt 15|[
--+|No nearby ley lines within a mile
--&titanicStr|No [b]Titanic[/b] ley lines
--&strongStr|No [b]Strong[/b] ley line(s)
--&weakStr|No [b]Weak[/b] ley line(s)
--]|
--:DISPLAY LEY LINE DETAILS|
--+[hr]|
--+[#990000][c]Titanic[/c][/#]|
--+|[&titanicStr]
--?[$numTitanic] -gt 0|[
-->DistToNearest|1
--+— Distance to Nearest:|[&distStr] (roll:[$distRoll])
-->Direction|
--+— Direction:|[&directionStr] (roll:[$directionRoll])
--]|
--+[hr]|
--+[#990000][c]Strong[/c][/#]|
--+|[&strongStr]
--?[$numStrong] -gt 0|[
-->DistToNearest|[$numStrong.Raw]
--+— Distance to Nearest:|[&distStr] (roll:[$distRoll])
-->Direction|
--+— Direction:|[&directionStr] (roll:[$directionRoll])
--]|
--+[hr]|
--+[#990000][c]Weak[/c][/#]|
--+|[&weakStr]
--?[$numWeak] -gt 0|[
-->DistToNearest|[$numWeak.Raw]
--+— Distance to Nearest:|[&distStr] (roll:[$distRoll])
-->Direction|
--+— Direction:|[&directionStr] (roll:[$directionRoll])
--]|
--X|
--:FUNCTIONS|
--:LookupDistanceMod| distance query is param 1
--?"[%1%]" -eq "Very Far (over 200mi)"|=distMod;-40
--?"[%1%]" -eq "Far (100-200mi)"|=distMod;-20
--?"[%1%]" -eq "Distant (50-100mi)"|=distMod;0
--?"[%1%]" -eq "Close (25-50mi)"|=distMod;20
--?"[%1%]" -eq "Very Close (under 25mi)"|=distMod;40
--?"[%1%]" -eq "Immediate (visible)"|=distMod;60
--<|
--:LookupGeoMod| geographical features query is param 1
--?"[%1%]" -eq "None"|=geoMod;0
--?"[%1%]" -eq "Geographic area known to be devoid of ley lines (e.g. Western Wastes)"|=geoMod;-80
--?"[%1%]" -eq "Several miles deep underground"|=geoMod;-60
--?"[%1%]" -eq "More than 100 ft. underground"|=geoMod;-40
--?"[%1%]" -eq "Shallow underground (e.g. first few levels of a dungeon)"|=geoMod;-10
--?"[%1%]" -eq "Hilltop"|=geoMod;5
--?"[%1%]" -eq "Small mountain"|=geoMod;5
--?"[%1%]" -eq "Deep canyon"|=geoMod;5
--?"[%1%]" -eq "Small river"|=geoMod;5
--?"[%1%]" -eq "Stream"|=geoMod;-80
--?"[%1%]" -eq "Towering cliff"|=geoMod;10
--?"[%1%]" -eq "Large mountain"|=geoMod;10
--?"[%1%]" -eq "Forest heartlands"|=geoMod;10
--?"[%1%]" -eq "Large river"|=geoMod;10
--?"[%1%]" -eq "Coastline/beach"|=geoMod;10
--?"[%1%]" -eq "Lairs: Adult dragon/demons/other creatures of magical power"|=geoMod;15
--?"[%1%]" -eq "Glacier’s heart"|=geoMod;15
--?"[%1%]" -eq "Volcano (dormant or active)"|=geoMod;20
--?"[%1%]" -eq "Lairs: elder dragon/greater demon/other creatures of great magical power"|=geoMod;25
--?"[%1%]" -eq "Site of a Ramagi Monolith"|=geoMod;30
--<|
--:LookupFeaturesMod| geographical features query is param 1
--?"[%1%]" -eq "None"|=featuresMod;0
--?"[%1%]" -eq "Negative: consecrated holy/unholy building"|=featuresMod;-10
--?"[%1%]" -eq "Negative: freshly plowed earth"|=featuresMod;-10
--?"[%1%]" -eq "Positive: standing stones"|=featuresMod;5
--?"[%1%]" -eq "Positive: stone circles"|=featuresMod;5
--?"[%1%]" -eq "Positive: ancient trees"|=featuresMod;5
--?"[%1%]" -eq "Positive: crossroads"|=featuresMod;5
--?"[%1%]" -eq "Positive: bridge (natural or constructed)"|=featuresMod;5
--?"[%1%]" -eq "Positive: druid grove"|=featuresMod;5
--?"[%1%]" -eq "Positive: great temple"|=featuresMod;5
--?"[%1%]" -eq "Positive: elven ruins"|=featuresMod;5
--<|
--:DistToNearest| modifier is param 1
--=mod|[%1%] -1
--=distRoll|1d20 + [$mod]
--?[$distRoll] -ge 20|&distStr;Less than 5 ft./at the caster’s location
--?[$distRoll] -ge 18 -and [$distRoll] -le 19|&distStr;[$dist.Raw] ft
--?[$distRoll] -ge 16 -and [$distRoll] -le 17|&distStr;[$dist.Raw] ft
--?[$distRoll] -ge 14 -and [$distRoll] -le 15|&distStr;50+ ft
--?[$distRoll] -ge 12 -and [$distRoll] -le 13|&distStr;100+ ft
--?[$distRoll] -ge 10 -and [$distRoll] -le 11|&distStr;200+ ft
--?[$distRoll] -ge 6 -and [$distRoll] -le 9|&distStr;500+ ft
--?[$distRoll] -ge 3 -and [$distRoll] -le 5|&distStr;800+ ft
--?[$distRoll] -ge 1 -and [$distRoll] -le 2|&distStr;1 mile
--<|
--:Direction|
--=directionRoll|1d8
--?[$directionRoll] -eq 1|&directionStr;North
--?[$directionRoll] -eq 2|&directionStr;Northeast
--?[$directionRoll] -eq 3|&directionStr;East
--?[$directionRoll] -eq 4|&directionStr;Southeast
--?[$directionRoll] -eq 5|&directionStr;South
--?[$directionRoll] -eq 6|&directionStr;Southwest
--?[$directionRoll] -eq 7|&directionStr;West
--?[$directionRoll] -eq 8|&directionStr;Northwest
--]|
--<|
}}