구덩이의 질주자
Strider of the Pit
Spectre | N |
---|---|
Area | 심연 지하 |
Tags | abyssal, allows_additional_projectiles, demon, lightning_affinity, MonsterStab_onhit_audio, not_dex, not_int, pit_faction, ranged, very_fast_movement |
Packs |
생명력
300%
+40%
저항




Damage
250%
정확도
100%
치명타 명중 Chance
5%
치명타 피해 보너스
+30%
Attack Distance
6 ~ 14
공격 속도
1.5 Second
Damage Spread
±20%
경험치
250%
Model Size
180%
Type
CorpseStriderAbyss
Metadata
CorpseStriderAbyss
The following values do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses.
레벨
22
생명력
915
148
176
Damage
103
주문 피해
103
정확도
340
공격 속도
1.5
경험치
1,990
Minion Life
3,021
Minion Damage
148
Minion Armour
233
The following values are skill base values and do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses, monster base damage(ex: The Maven 150% multiplier), monster rarity bonuses (ex: unique 70% more, unique attack 33% less).
MeleeAtAnimationSpeed
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 83–124
치명타 명중 확률: 5%
공격 속도: 1.5 초
action attack or cast time uses animation length [1]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]

EAAAbyssCorpseStrideSlams
재사용 대기시간: 20 초
action attack or cast time uses animation length [1]
attack maximum action distance + [55]
GSAbyssCorpseStriderLighting
Triggerable, Spell, Damage
시전 속도: 1 초
action attack or cast time uses animation length [1]
is area damage [1]
GTAbyssCorpseStriderLighting
재사용 대기시간: 20 초
action attack or cast time uses animation length [1]
spell maximum action distance +% [-45]
Object Type
Object Type Codes
-- src\Data\Spectres.lua minions["Metadata/Monsters/LeagueAbyss/Pit/CorpseStrider/CorpseStriderAbyss"] = { name = "Strider of the Pit", life = 3, fireResist = 0, coldResist = 0, lightningResist = 0, chaosResist = 0, damage = 2.5, damageSpread = 0.2, attackTime = 1.5, attackRange = 14, accuracy = 1, skillList = { "MeleeAtAnimationSpeed", "GAAbyssCorpseStrideSlams", "GSAbyssCorpseStriderLighting", "EAAAbyssCorpseStrideSlams", "GTAbyssCorpseStriderLighting", }, modList = { }, } -- src\Data\Skills\spectre.lua skills["MeleeAtAnimationSpeed"] = { name = "Basic Attack", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.MirageArcherCanUse] = true, [SkillType.Projectile] = true, [SkillType.MeleeSingleTarget] = true, [SkillType.Melee] = true, [SkillType.ProjectilesFromUser] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, melee = true, projectile = true, }, baseMods = { }, qualityStats = { }, stats = { "skill_can_fire_arrows", "skill_can_fire_wand_projectiles", "action_attack_or_cast_time_uses_animation_length", "projectile_uses_contact_position", "use_scaled_contact_offset", }, levels = { [1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GAAbyssCorpseStrideSlams"] = { name = "GAAbyssCorpseStrideSlams", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, area = true, }, baseMods = { }, qualityStats = { }, stats = { "active_skill_base_physical_damage_%_to_convert_to_lightning", "attack_maximum_action_distance_+", "is_area_damage", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {60, 55, baseMultiplier = 0.8, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GSAbyssCorpseStriderLighting"] = { name = "GSAbyssCorpseStriderLighting", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Spell] = true, [SkillType.Damage] = true, }, statDescriptionScope = "geometry_spell", castTime = 1, baseFlags = { spell = true, area = true, }, baseMods = { }, qualityStats = { }, stats = { "spell_minimum_base_fire_damage", "spell_maximum_base_fire_damage", "is_area_damage", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {0.5, 1.5, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["EAAAbyssCorpseStrideSlams"] = { name = "EAAAbyssCorpseStrideSlams", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { "attack_maximum_action_distance_+", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {55, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GTAbyssCorpseStriderLighting"] = { name = "GTAbyssCorpseStriderLighting", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { "spell_maximum_action_distance_+%", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {-45, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, }
ignore actor scale from stats [1]
Family | MonsterIgnoreActorScaleFromStats |
---|---|
Domains | Monster (3) |
GenerationType | 고유 (3) |
Req. level | 1 |
Stats |
구덩이의 질주자
Strider of the Pit
Spectre | N |
---|---|
Area | 심연 지하 |
Tags | abyssal, allows_additional_projectiles, demon, lightning_affinity, MonsterStab_onhit_audio, not_dex, not_int, pit_faction, ranged, very_fast_movement |
Packs |
생명력
300%
+40%
저항




Damage
250%
정확도
100%
치명타 명중 Chance
5%
치명타 피해 보너스
+30%
Attack Distance
6 ~ 14
공격 속도
1.5 Second
Damage Spread
±20%
경험치
250%
Model Size
180%
Type
CorpseStriderAbyss
Metadata
CorpseStriderAbyssDepths
The following values do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses.
레벨
22
생명력
915
148
176
Damage
103
주문 피해
103
정확도
340
공격 속도
1.5
경험치
1,990
Minion Life
3,021
Minion Damage
148
Minion Armour
233
The following values are skill base values and do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses, monster base damage(ex: The Maven 150% multiplier), monster rarity bonuses (ex: unique 70% more, unique attack 33% less).
MeleeAtAnimationSpeed
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 83–124
치명타 명중 확률: 5%
공격 속도: 1.5 초
action attack or cast time uses animation length [1]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]

EAAAbyssCorpseStrideSlams
재사용 대기시간: 20 초
action attack or cast time uses animation length [1]
attack maximum action distance + [55]
GSAbyssCorpseStriderLighting
Triggerable, Spell, Damage
시전 속도: 1 초
action attack or cast time uses animation length [1]
is area damage [1]
GTAbyssCorpseStriderLighting
재사용 대기시간: 20 초
action attack or cast time uses animation length [1]
spell maximum action distance +% [-45]
Object Type
Object Type Codes
-- src\Data\Spectres.lua minions["Metadata/Monsters/LeagueAbyss/Pit/CorpseStrider/CorpseStriderAbyssDepths"] = { name = "Strider of the Pit", life = 3, fireResist = 0, coldResist = 0, lightningResist = 0, chaosResist = 0, damage = 2.5, damageSpread = 0.2, attackTime = 1.5, attackRange = 14, accuracy = 1, skillList = { "MeleeAtAnimationSpeed", "GAAbyssCorpseStrideSlams", "GSAbyssCorpseStriderLighting", "EAAAbyssCorpseStrideSlams", "GTAbyssCorpseStriderLighting", }, modList = { }, } -- src\Data\Skills\spectre.lua skills["MeleeAtAnimationSpeed"] = { name = "Basic Attack", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.MirageArcherCanUse] = true, [SkillType.Projectile] = true, [SkillType.MeleeSingleTarget] = true, [SkillType.Melee] = true, [SkillType.ProjectilesFromUser] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, melee = true, projectile = true, }, baseMods = { }, qualityStats = { }, stats = { "skill_can_fire_arrows", "skill_can_fire_wand_projectiles", "action_attack_or_cast_time_uses_animation_length", "projectile_uses_contact_position", "use_scaled_contact_offset", }, levels = { [1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GAAbyssCorpseStrideSlams"] = { name = "GAAbyssCorpseStrideSlams", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, area = true, }, baseMods = { }, qualityStats = { }, stats = { "active_skill_base_physical_damage_%_to_convert_to_lightning", "attack_maximum_action_distance_+", "is_area_damage", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {60, 55, baseMultiplier = 0.8, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GSAbyssCorpseStriderLighting"] = { name = "GSAbyssCorpseStriderLighting", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Spell] = true, [SkillType.Damage] = true, }, statDescriptionScope = "geometry_spell", castTime = 1, baseFlags = { spell = true, area = true, }, baseMods = { }, qualityStats = { }, stats = { "spell_minimum_base_fire_damage", "spell_maximum_base_fire_damage", "is_area_damage", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {0.5, 1.5, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["EAAAbyssCorpseStrideSlams"] = { name = "EAAAbyssCorpseStrideSlams", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { "attack_maximum_action_distance_+", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {55, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GTAbyssCorpseStriderLighting"] = { name = "GTAbyssCorpseStriderLighting", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { "spell_maximum_action_distance_+%", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {-45, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, }
ignore actor scale from stats [1]
Family | MonsterIgnoreActorScaleFromStats |
---|---|
Domains | Monster (3) |
GenerationType | 고유 (3) |
Req. level | 1 |
Stats |
구덩이의 질주자




ignore actor scale from stats [1]
Strider of the Pit
Spectre | N |
---|---|
Tags | abyssal, allows_additional_projectiles, demon, lightning_affinity, MonsterStab_onhit_audio, not_dex, not_int, pit_faction, ranged, very_fast_movement |
Packs |
생명력
300%
+40%
저항




Damage
250%
정확도
100%
치명타 명중 Chance
5%
치명타 피해 보너스
+30%
Attack Distance
6 ~ 14
공격 속도
1.5 Second
Damage Spread
±20%
경험치
250%
Model Size
180%
Type
CorpseStriderAbyss
Metadata
CorpseStriderAbyssNoEmerge
The following values do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses.
레벨
68
생명력
23,271
3,378
708
Damage
583
주문 피해
583
정확도
2,464
공격 속도
1.5
경험치
71,585
Minion Life
20,790
Minion Damage
2,422
Minion Armour
5,309
The following values are skill base values and do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses, monster base damage(ex: The Maven 150% multiplier), monster rarity bonuses (ex: unique 70% more, unique attack 33% less).
MeleeAtAnimationSpeed
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 466–699
치명타 명중 확률: 5%
공격 속도: 1.5 초
action attack or cast time uses animation length [1]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]

EAAAbyssCorpseStrideSlams
재사용 대기시간: 20 초
action attack or cast time uses animation length [1]
attack maximum action distance + [55]
GSAbyssCorpseStriderLighting
Triggerable, Spell, Damage
시전 속도: 1 초
action attack or cast time uses animation length [1]
is area damage [1]
GTAbyssCorpseStriderLighting
재사용 대기시간: 20 초
action attack or cast time uses animation length [1]
spell maximum action distance +% [-45]
Object Type
Object Type Codes
-- src\Data\Spectres.lua minions["Metadata/Monsters/LeagueAbyss/Pit/CorpseStrider/CorpseStriderAbyssNoEmerge"] = { name = "Strider of the Pit", life = 3, fireResist = 0, coldResist = 0, lightningResist = 0, chaosResist = 0, damage = 2.5, damageSpread = 0.2, attackTime = 1.5, attackRange = 14, accuracy = 1, skillList = { "MeleeAtAnimationSpeed", "GAAbyssCorpseStrideSlams", "GSAbyssCorpseStriderLighting", "EAAAbyssCorpseStrideSlams", "GTAbyssCorpseStriderLighting", }, modList = { }, } -- src\Data\Skills\spectre.lua skills["MeleeAtAnimationSpeed"] = { name = "Basic Attack", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Attack] = true, [SkillType.RangedAttack] = true, [SkillType.MirageArcherCanUse] = true, [SkillType.Projectile] = true, [SkillType.MeleeSingleTarget] = true, [SkillType.Melee] = true, [SkillType.ProjectilesFromUser] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, melee = true, projectile = true, }, baseMods = { }, qualityStats = { }, stats = { "skill_can_fire_arrows", "skill_can_fire_wand_projectiles", "action_attack_or_cast_time_uses_animation_length", "projectile_uses_contact_position", "use_scaled_contact_offset", }, levels = { [1] = {levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GAAbyssCorpseStrideSlams"] = { name = "GAAbyssCorpseStrideSlams", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Attack] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, area = true, }, baseMods = { }, qualityStats = { }, stats = { "active_skill_base_physical_damage_%_to_convert_to_lightning", "attack_maximum_action_distance_+", "is_area_damage", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {60, 55, baseMultiplier = 0.8, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GSAbyssCorpseStriderLighting"] = { name = "GSAbyssCorpseStriderLighting", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Spell] = true, [SkillType.Damage] = true, }, statDescriptionScope = "geometry_spell", castTime = 1, baseFlags = { spell = true, area = true, }, baseMods = { }, qualityStats = { }, stats = { "spell_minimum_base_fire_damage", "spell_maximum_base_fire_damage", "is_area_damage", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {0.5, 1.5, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["EAAAbyssCorpseStrideSlams"] = { name = "EAAAbyssCorpseStrideSlams", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { "attack_maximum_action_distance_+", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {55, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GTAbyssCorpseStriderLighting"] = { name = "GTAbyssCorpseStriderLighting", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { "spell_maximum_action_distance_+%", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {-45, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, }
ignore actor scale from stats [1]
Family | MonsterIgnoreActorScaleFromStats |
---|---|
Domains | Monster (3) |
GenerationType | 고유 (3) |
Req. level | 1 |
Stats |
구덩이의 질주자


ignore actor scale from stats [1]
Strider of the Pit
Spectre | N |
---|---|
Tags | abyssal, demon, lightning_affinity, not_dex, pit_faction, slow_movement |
생명력
1000%
Energy Shield From Life
15%
+50%
저항




Damage
1000%
정확도
100%
치명타 명중 Chance
5%
치명타 피해 보너스
+30%
Attack Distance
5 ~ 10
공격 속도
1.5 Second
Damage Spread
±20%
경험치
1000%
Model Size
216%
Type
Cocoons2AbyssBoss
Metadata
Cocoons2AbyssBoss
The following values do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses.
레벨
68
생명력
65,935
3,620
708
11,636
Damage
2,331
주문 피해
2,331
정확도
2,464
공격 속도
1.5
경험치
286,340
Minion Life
58,905
Minion Energy Shield
10,395
Minion Damage
9,688
Minion Armour
6,033
The following values are skill base values and do not include map affix bonuses, monster buff bonuses, altar bonuses, atlas skill bonuses, monster base damage(ex: The Maven 150% multiplier), monster rarity bonuses (ex: unique 70% more, unique attack 33% less).
GTAbyssCocoonBossTendrils
Triggerable
action attack or cast time uses animation length [1]
spell maximum action distance +% [-45]
Object Type
Object Type Codes
-- src\Data\Spectres.lua minions["Metadata/Monsters/LeagueAbyss/Pit/Cocoons2AbyssBoss"] = { name = "Strider of the Pit", life = 10, energyShield = 0.15, fireResist = 0, coldResist = 0, lightningResist = 0, chaosResist = 0, damage = 10, damageSpread = 0.2, attackTime = 1.5, attackRange = 10, accuracy = 1, skillList = { "GSAbyssCocoonBossTendrilImpact", "TBAbyssCocoonBossTendrils", "GTAbyssCocoonBossTendrils", }, modList = { }, } -- src\Data\Skills\spectre.lua skills["GSAbyssCocoonBossTendrilImpact"] = { name = "GSAbyssCocoonBossTendrilImpact", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, [SkillType.Spell] = true, [SkillType.Damage] = true, }, statDescriptionScope = "geometry_spell", castTime = 1, baseFlags = { spell = true, area = true, }, baseMods = { }, qualityStats = { }, stats = { "spell_minimum_base_lightning_damage", "spell_maximum_base_lightning_damage", "generic_skill_trigger_id", "active_skill_base_physical_damage_%_to_convert_to_lightning", "is_area_damage", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {0.5, 1.5, 1, 80, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["TBAbyssCocoonBossTendrils"] = { name = "TBAbyssCocoonBossTendrils", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Spell] = true, [SkillType.Triggerable] = true, [SkillType.Attack] = true, [SkillType.Damage] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { attack = true, spell = true, }, baseMods = { }, qualityStats = { }, stats = { "spell_minimum_base_lightning_damage", "spell_maximum_base_lightning_damage", "generic_skill_trigger_skills_with_id", "active_skill_base_physical_damage_%_to_convert_to_lightning", "base_skill_can_be_avoided_by_dodge_roll", }, levels = { [1] = {0.5, 1.5, 1, 100, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3}, cost = { }, }, }, } -- src\Data\Skills\spectre.lua skills["GTAbyssCocoonBossTendrils"] = { name = "GTAbyssCocoonBossTendrils", hidden = true, color = , baseEffectiveness = 0, incrementalEffectiveness = 0, skillTypes = { [SkillType.Triggerable] = true, }, statDescriptionScope = "skill_stat_descriptions", castTime = 1, baseFlags = { }, baseMods = { }, qualityStats = { }, stats = { "spell_maximum_action_distance_+%", "action_attack_or_cast_time_uses_animation_length", }, levels = { [1] = {-45, levelRequirement = 1, statInterpolation = {}, cost = { }, }, }, }
ignore actor scale from stats [1]
Family | MonsterIgnoreActorScaleFromStats |
---|---|
Domains | Monster (3) |
GenerationType | 고유 (3) |
Req. level | 1 |
Stats |
Edit
Wikis Content is available under CC BY-NC-SA 3.0 unless otherwise noted.
Wikis Content is available under CC BY-NC-SA 3.0 unless otherwise noted.