Initial Agrarian Unreal project

This commit is contained in:
2026-05-11 00:26:02 -07:00
commit 15f5cfc0f8
863 changed files with 12516 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
[*.{cpp,h}]
# Naming convention rules (note: currently need to be ordered from more to less specific)
cpp_naming_rule.aactor_prefixed.symbols = aactor_class
cpp_naming_rule.aactor_prefixed.style = aactor_style
cpp_naming_rule.swidget_prefixed.symbols = swidget_class
cpp_naming_rule.swidget_prefixed.style = swidget_style
cpp_naming_rule.uobject_prefixed.symbols = uobject_class
cpp_naming_rule.uobject_prefixed.style = uobject_style
cpp_naming_rule.booleans_prefixed.symbols = boolean_vars
cpp_naming_rule.booleans_prefixed.style = boolean_style
cpp_naming_rule.structs_prefixed.symbols = structs
cpp_naming_rule.structs_prefixed.style = unreal_engine_structs
cpp_naming_rule.enums_prefixed.symbols = enums
cpp_naming_rule.enums_prefixed.style = unreal_engine_enums
cpp_naming_rule.templates_prefixed.symbols = templates
cpp_naming_rule.templates_prefixed.style = unreal_engine_templates
cpp_naming_rule.general_names.symbols = all_symbols
cpp_naming_rule.general_names.style = unreal_engine_default
# Naming convention symbols
cpp_naming_symbols.aactor_class.applicable_kinds = class
cpp_naming_symbols.aactor_class.applicable_type = AActor
cpp_naming_symbols.swidget_class.applicable_kinds = class
cpp_naming_symbols.swidget_class.applicable_type = SWidget
cpp_naming_symbols.uobject_class.applicable_kinds = class
cpp_naming_symbols.uobject_class.applicable_type = UObject
cpp_naming_symbols.boolean_vars.applicable_kinds = local,parameter,field
cpp_naming_symbols.boolean_vars.applicable_type = bool
cpp_naming_symbols.enums.applicable_kinds = enum
cpp_naming_symbols.templates.applicable_kinds = template_class
cpp_naming_symbols.structs.applicable_kinds = struct
cpp_naming_symbols.all_symbols.applicable_kinds = *
# Naming convention styles
cpp_naming_style.unreal_engine_default.capitalization = pascal_case
cpp_naming_style.unreal_engine_default.required_prefix =
cpp_naming_style.unreal_engine_default.required_suffix =
cpp_naming_style.unreal_engine_default.word_separator =
cpp_naming_style.unreal_engine_enums.capitalization = pascal_case
cpp_naming_style.unreal_engine_enums.required_prefix = E
cpp_naming_style.unreal_engine_enums.required_suffix =
cpp_naming_style.unreal_engine_enums.word_separator =
cpp_naming_style.unreal_engine_templates.capitalization = pascal_case
cpp_naming_style.unreal_engine_templates.required_prefix = T
cpp_naming_style.unreal_engine_templates.required_suffix =
cpp_naming_style.unreal_engine_templates.word_separator =
cpp_naming_style.unreal_engine_structs.capitalization = pascal_case
cpp_naming_style.unreal_engine_structs.required_prefix = F
cpp_naming_style.unreal_engine_structs.required_suffix =
cpp_naming_style.unreal_engine_structs.word_separator =
cpp_naming_style.uobject_style.capitalization = pascal_case
cpp_naming_style.uobject_style.required_prefix = U
cpp_naming_style.uobject_style.required_suffix =
cpp_naming_style.uobject_style.word_separator =
cpp_naming_style.aactor_style.capitalization = pascal_case
cpp_naming_style.aactor_style.required_prefix = A
cpp_naming_style.aactor_style.required_suffix =
cpp_naming_style.aactor_style.word_separator =
cpp_naming_style.swidget_style.capitalization = pascal_case
cpp_naming_style.swidget_style.required_prefix = S
cpp_naming_style.swidget_style.required_suffix =
cpp_naming_style.swidget_style.word_separator =
cpp_naming_style.boolean_style.capitalization = pascal_case
cpp_naming_style.boolean_style.required_prefix = b
cpp_naming_style.boolean_style.required_suffix =
cpp_naming_style.boolean_style.word_separator =
+22
View File
@@ -0,0 +1,22 @@
# Unreal binary assets should use Git LFS when this project is put in Git.
*.uasset filter=lfs diff=lfs merge=lfs -text
*.umap filter=lfs diff=lfs merge=lfs -text
*.ubulk filter=lfs diff=lfs merge=lfs -text
*.uexp filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
# Text files
*.cpp text eol=lf
*.h text eol=lf
*.cs text eol=lf
*.ini text eol=lf
*.uproject text eol=lf
*.md text eol=lf
+31
View File
@@ -0,0 +1,31 @@
# Unreal generated folders
Binaries/
DerivedDataCache/
Intermediate/
Saved/
.vs/
.vscode/
# Build outputs
Build/
*.sln
*.sln.DotSettings.user
*.VC.db
*.opensdf
*.sdf
*.suo
*.user
*.userosscache
*.sln.docstates
# Logs and local artifacts
*.log
*.tmp
*.cache
# OS files
.DS_Store
Thumbs.db
Desktop.ini
# Keep source, config, content, docs, and project files tracked.
+19
View File
@@ -0,0 +1,19 @@
{
"version": "1.0",
"components": [
"Component.Unreal.Debugger",
"Component.Unreal.Ide",
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL",
"Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.VC.Llvm.Clang",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NativeGame"
]
}
File diff suppressed because it is too large Load Diff
+44
View File
@@ -0,0 +1,44 @@
# Agrarian Foundation Status
## Completed Foundation Work
- [x] Master vision preserved in project root.
- [x] Comprehensive development roadmap preserved in project root.
- [x] Phase 1 C++ survival foundation started.
- [x] Replicated survival component added.
- [x] Replicated inventory component added.
- [x] Interaction interface added.
- [x] Resource node actor added.
- [x] Campfire actor added.
- [x] Primitive shelter actor added.
- [x] World time/weather game state added.
- [x] Primitive crafting component added.
- [x] Save game data structures added.
- [x] Persistence subsystem scaffold added.
- [x] Character now owns survival, inventory, and crafting components.
- [x] Character has server-authoritative interaction path.
- [x] Git ignore and Git LFS attribute prep files added.
## Next Unreal Editor Tasks
- [ ] Compile project from Visual Studio.
- [ ] Fix any C++ compiler/UHT errors.
- [ ] Create `IA_Interact` input action.
- [ ] Bind `IA_Interact` to `E` and a gamepad button.
- [ ] Assign `IA_Interact` to the character Blueprint's `InteractAction`.
- [ ] Create Blueprint child `BP_AGR_Resource_Wood` from `AgrarianResourceNode`.
- [ ] Create Blueprint child `BP_AGR_Campfire` from `AgrarianCampfire`.
- [ ] Create Blueprint child `BP_AGR_PrimitiveShelter` from `AgrarianShelterActor`.
- [ ] Assign placeholder meshes to MVP actors.
- [ ] Place resource nodes and campfire in the test map.
- [ ] Add simple HUD/debug display for survival and inventory.
- [ ] Test gather -> inventory -> campfire loop.
## Next C++ Foundation Tasks
- [ ] Add building placement component.
- [ ] Add simple crafting recipe defaults or data asset pipeline.
- [ ] Add item definition data asset class.
- [ ] Add save/load capture for placed actors.
- [ ] Add admin/dev console commands.
- [ ] Add wildlife base actor.
+620
View File
@@ -0,0 +1,620 @@
# AGRARIAN
## Master Vision, Narrative, Roadmap & Business Strategy
## What Is Agrarian?
Agrarian is a persistent generational civilization simulator set on a continuously evolving Earth-scale world where players rebuild humanity through survival, stewardship, family, labor, trade, governance, and technological progress.
Players begin with almost nothing.
A fire. A crude shelter. A winter approaching. A world larger than they understand.
From those beginnings, generations of players slowly shape civilization itself.
Some will remain wanderers. Some will build homesteads. Some will create villages. Some will found nations. Some will destroy them.
Over centuries of in-game history, the world evolves continuously through player actions, environmental systems, economics, migration, politics, war, agriculture, infrastructure, and inherited knowledge.
Nothing wipes. Nothing resets. History persists.
Agrarian is not designed as a traditional MMO.
It is designed as a living civilization project.
## The Core Philosophy
Agrarian is built around several foundational ideas:
### Civilization Is Built, Not Spawned
Every road, field, bridge, town, and city exists because someone survived long enough to build it.
### Legacy Matters More Than Levels
Characters die. Civilizations endure.
### The Frontier Always Exists Somewhere
New players are never locked out of meaningful beginnings because the world constantly evolves through migration, collapse, expansion, and rediscovery.
### Knowledge Is Humanity's True Progression System
Survival knowledge, logistics, farming, engineering, diplomacy, leadership, and teaching matter more than simple stat inflation.
### History Is Never Erased
The world remembers what players build.
Ruins remain. Empires leave scars. Ancient roads still connect cities generations later.
### The World Is The Expansion
There are no wipes, no sequels, and no fragmented expansion packs. Development continuously expands and evolves the same persistent world.
## The Emotional Core
Agrarian is ultimately about one question:
> What survives after you are gone?
The emotional center of the game is not power fantasy.
It is:
- stewardship
- mortality
- inheritance
- civilization
- continuity
- humanity's relationship with land, labor, and time
## World Narrative
Human civilization once reached extraordinary heights before collapse fractured the world into isolated survivors and scattered communities.
The old world was not entirely destroyed. Its remnants still exist:
- crumbling infrastructure
- abandoned machinery
- forgotten knowledge
- overgrown ruins
- fragmented records
- distant myths
Most players begin knowing almost nothing about the world beyond survival.
For many generations, humanity's focus is simple:
- survive winter
- cultivate food
- protect family
- establish shelter
- preserve knowledge
Only much later do larger questions begin to emerge:
- What came before?
- How large is the world?
- What exists beyond the horizon?
- What lies across oceans?
- What are the lights in the sky?
In the earliest eras of Agrarian, space is not a destination.
It is mythology.
A child standing in a field at night may look upward and wonder what exists beyond Earth, but the reality of reaching it feels impossibly distant.
That distance matters.
Humanity must first relearn how to survive before it can dream of reaching the stars again.
## Long-Term Civilization Arc
The world evolves through eras shaped entirely by player activity.
### Survival Era
Small groups struggle to survive harsh environments.
### Agrarian Era
Farming, domestication, trade, and settlements emerge.
### Civic Era
Governments, economies, law, infrastructure, and organized societies develop.
### Industrial Era
Mechanization, large-scale production, transportation, and global trade reshape civilization.
### Automation Era
Advanced infrastructure, robotics, AI-assisted labor, and highly complex economies emerge.
### Orbital Era
Only after centuries of development do the first serious attempts to reach beyond Earth become possible.
Even then:
- space travel is dangerous
- expensive
- rare
- difficult to maintain
- politically significant
The stars remain a distant frontier for a very long time.
## Space Expansion Philosophy
Space is not an expansion pack.
It is the next frontier of human civilization.
The first players who eventually leave Earth should feel like:
- early explorers
- settlers
- navigators
- astronauts
- pioneers crossing into the unknown
Interplanetary travel should require:
- massive infrastructure
- industrial capability
- advanced physics
- fuel logistics
- navigation
- ship maintenance
- life support
- coordinated civilizations
Earth always remains emotionally central.
Players may travel beyond Earth eventually, but:
- ancestral homes remain
- old civilizations remain
- inherited land remains
- history remains
The story of humanity never abandons Earth. It expands outward from it.
## Gameplay Structure
### Survival
- gathering
- hunting
- shelter
- fire
- weather survival
- primitive crafting
### Homesteading
- farming
- irrigation
- domestication
- preservation
- permanent structures
- land stewardship
### Civilization
- trade
- infrastructure
- governance
- law
- migration
- taxation
- diplomacy
- warfare
### Technological Progression
- engineering
- industrialization
- automation
- robotics
- advanced logistics
### Long-Term Exploration
- advanced science
- orbital technology
- interplanetary infrastructure
- deep frontier expansion
## Character & Generational Systems
Every player begins as an individual human being with randomized capabilities:
- strength
- endurance
- resilience
- intelligence
- craftsmanship
- charisma
- perception
- adaptability
As characters age:
- physical abilities decline
- knowledge increases
- efficiency improves
- teaching becomes more valuable
When players die:
- descendants inherit knowledge
- families inherit infrastructure
- civilizations inherit history
If no lineage survives, the player begins again as a new individual somewhere on the frontier.
Death is permanent. Civilization persists.
## Economy
Agrarian Coin (AGR) functions as the world's primary currency and economic backbone.
The economy is entirely player-driven:
- labor
- trade
- production
- transportation
- land value
- infrastructure
- scarcity
- specialization
Players may:
- own land
- establish businesses
- rent property
- hire labor
- collect taxes
- build industries
- trade internationally
AGR integrates directly into the game's persistent economy.
AGR also retains the real-world community purpose that started the project: use by homesteaders, farmers markets, agriculture, forestry, fishing, tradespeople, and local barter-minded commerce.
## Monetization Philosophy
Agrarian rejects:
- pay-to-win mechanics
- battle passes
- loot boxes
- seasonal wipes
- fragmented DLC ecosystems
The model is:
- one-time purchase
- modest monthly subscription
- continuous world evolution
Players support:
- persistent servers
- long-term development
- world expansion
- infrastructure growth
The game grows continuously rather than resetting every few years.
## Development Roadmap
### PHASE 1 - Foundational Survival MVP
Goal: Prove the survival gameplay loop.
Team Size: 2 developers.
Deliverable: Small playable multiplayer prototype.
Features:
- single biome
- weather
- hunger/thirst
- injury
- primitive crafting
- wildlife
- gathering
- shelter building
- inventory
- stat system
- basic multiplayer
### PHASE 2 - Persistent Homesteading
Goal: Transition from temporary survival into persistent settlement.
Features:
- farming
- domestication
- land claiming
- storage
- food preservation
- persistent structures
- simple economy
Deliverable: Players can establish permanent homesteads.
### PHASE 3 - Social Civilization Systems
Goal: Create meaningful player societies.
Features:
- trade
- reputation
- barter
- contracts
- local governance
- theft/crime systems
- alliances
- migration systems
Deliverable: Emergent player communities form organically.
### PHASE 4 - Generational Gameplay
Goal: Introduce inheritance and mortality.
Features:
- aging
- relationships
- children
- lineage
- inheritance
- apprenticeships
- family systems
- permanent death
Deliverable: The game evolves into a true generational simulator.
### PHASE 5 - Governments & Civilization
Goal: Enable civilization-scale gameplay.
Features:
- cities
- citizenship
- taxation
- diplomacy
- military systems
- war
- law systems
- territorial control
Deliverable: Player-created civilizations emerge.
### PHASE 6 - Dynamic Civilization Cycles
Goal: Preserve long-term world sustainability.
Features:
- soil exhaustion
- climate variation
- disease
- infrastructure decay
- resource depletion
- societal instability
- frontier emergence
- migration waves
Deliverable: The world remains permanently dynamic for future generations of players.
### PHASE 7 - Earth-Scale Expansion
Goal: Expand toward a planetary persistent simulation.
Features:
- large-scale terrain integration
- biome diversity
- global logistics
- regional climates
- continental economies
- massive server scaling
### PHASE 8 - Industrial & Automation Era
Goal: Advance civilization technologically.
Features:
- industrial systems
- power generation
- automation
- robotics
- advanced transportation
- large-scale infrastructure
### PHASE 9 - Orbital Foundations
Goal: Introduce the first steps toward space.
Features:
- astronomy
- observatories
- advanced physics
- launch infrastructure
- orbital engineering
- rare spaceflight capability
Deliverable: Humanity begins looking beyond Earth again.
### PHASE 10 - Interplanetary Frontier
Goal: Open the next frontier.
Features:
- interplanetary travel
- colony logistics
- spacecraft maintenance
- orbital economies
- planetary settlement systems
Deliverable: Civilization expands beyond Earth while remaining part of the same continuous historical world.
## BUSINESS ROADMAP
### Stage 1 - Foundation & Prototype
Objective: Build credibility and proof of concept.
Priorities:
- Unreal Engine prototype
- networking foundation
- visual identity
- technical feasibility
- devlogs
- early website
- Discord community
Revenue: None initially.
Funding: Self-funded.
Goal: Create a compelling playable prototype and establish public identity.
### Stage 2 - Early Community Building
Objective: Build visibility before launch.
Priorities:
- YouTube development logs
- TikTok short-form clips
- Reddit engagement
- survival/simulation community outreach
- developer transparency
- Steam page launch
- wishlist campaign
Goal Metrics:
- 25k-100k Steam wishlists
- active Discord
- core community advocates
### Stage 3 - Closed Alpha
Objective: Validate systems with real players.
Distribution:
- Direct launcher or Steam playtest
Priorities:
- server stability
- survival gameplay
- persistence testing
- community moderation
- patch cadence
Revenue:
- Optional founder packs only if necessary
- Avoid aggressive monetization
### Stage 4 - Early Access Launch
Platforms:
- Primary: Valve Corporation via Steam
- Secondary later: Epic Games
Avoid console launch initially.
Revenue Model:
- one-time purchase
- optional modest subscription once persistence/server costs justify it
Goal: Build sustainable recurring revenue without compromising philosophy.
### Stage 5 - Infrastructure Expansion
Objective: Scale server infrastructure carefully.
Priorities:
- regional servers
- persistence optimization
- anti-cheat
- world partitioning
- account systems
- moderation tools
Team Growth:
- networking engineer
- backend engineer
- technical artist
- community manager
Avoid explosive scaling too early.
### Stage 6 - Long-Term Studio Evolution
Objective: Transition from indie prototype team into sustainable long-term studio.
Philosophy:
Remain focused on:
- continuity
- transparency
- player trust
- sustainable growth
- long-term world stewardship
Do not pivot into:
- hyper-monetization
- rapid sequel cycles
- trend-chasing live-service mechanics
The strength of Agrarian is its consistency of vision.
## Marketing Position
Agrarian should feel less like:
> a game releasing this year
and more like:
> the beginning of a long-term digital civilization.
## Core Marketing Lines
- The World Is The Expansion.
- History Is Never Erased.
- Civilization Is Player Created.
- Legacy Matters More Than Levels.
- Every Empire Began With Someone Surviving Their First Winter.
- What Survives After You Are Gone?
+84
View File
@@ -0,0 +1,84 @@
# Agrarian MVP Implementation Notes
This first implementation creates the C++ foundation for the Phase 1 survival MVP. It is intentionally small and system-oriented: the goal is to make the first playable loop possible without creating throwaway prototype logic that will have to be replaced later.
## Added C++ Systems
- `AgrarianTypes`
- Shared item, survival, and weather data types.
- `AgrarianInteractable`
- Interface for anything the player can use/gather/activate.
- `AgrarianSurvivalComponent`
- Replicated health, stamina, hunger, thirst, body temperature, and injury state.
- Server-authoritative decay and survival damage.
- Basic ambient temperature exposure from `AgrarianGameState`.
- `AgrarianInventoryComponent`
- Replicated inventory item stacks.
- Server-authoritative add/remove helpers.
- `AgrarianGameState`
- Replicated world time, weather state, and ambient temperature.
- `AgrarianResourceNode`
- Interactable gatherable actor that grants inventory items and depletes.
- `AgrarianCampfire`
- Interactable fire actor using wood as fuel.
- Applies warmth to nearby characters.
- `AgrarianShelterActor`
- Primitive replicated shelter actor with a protection volume placeholder.
- `AgrarianGameCharacter`
- Now owns survival and inventory components.
- Has a server-authoritative interaction trace flow.
- `AgrarianGameGameMode`
- Now uses `AgrarianGameState`.
## What This Enables Immediately
With simple Blueprint children and placeholder meshes, the project can now support:
- A player with replicated survival stats.
- A player inventory.
- Gathering resource nodes into inventory.
- Lighting/feeding a campfire with gathered wood.
- Warmth from the campfire affecting body temperature.
- Replicated day/night/weather state.
- Primitive shelter placement as a world actor once a placement UI is added.
## Required Editor Setup
These C++ classes need Blueprint/content setup inside Unreal:
- Create or update a player Blueprint derived from `AgrarianGameCharacter`.
- Assign the existing movement/look/jump input actions as before.
- Create an `IA_Interact` input action.
- Add `IA_Interact` to the active input mapping context, suggested key `E` / gamepad face button.
- Assign `IA_Interact` to the character's `InteractAction` property.
- Create Blueprint children:
- `BP_AGR_Resource_Wood` from `AgrarianResourceNode`
- `BP_AGR_Campfire` from `AgrarianCampfire`
- `BP_AGR_PrimitiveShelter` from `AgrarianShelterActor`
- Assign placeholder meshes to each Blueprint.
- Place several resource nodes and at least one campfire in the test map.
- Confirm the active GameMode derives from `AgrarianGameGameMode`.
## First Playable Test
The first playable test should verify:
- Start the map as one player.
- Look at a resource node and press interact.
- Wood appears in the player's inventory component.
- Interact with the campfire.
- One wood is removed and the campfire lights.
- Standing near the lit campfire raises/maintains body temperature.
- Hunger and thirst decay over time.
- Server authority is respected in multiplayer.
## Known Limits
- No visual HUD has been added yet.
- No crafting UI has been added yet.
- No building placement flow has been added yet.
- No save/load persistence has been added yet.
- No wildlife has been added yet.
- No packaged build was compiled in this environment.
These are the next MVP tasks, not blockers for this foundation.
+38
View File
@@ -0,0 +1,38 @@
{
"FileVersion": 3,
"EngineAssociation": "5.7",
"Category": "",
"Description": "",
"Modules": [
{
"Name": "AgrarianGame",
"Type": "Runtime",
"LoadingPhase": "Default"
}
],
"Plugins": [
{
"Name": "ModelingToolsEditorMode",
"Enabled": true
},
{
"Name": "StateTree",
"Enabled": true
},
{
"Name": "GameplayStateTree",
"Enabled": true
},
{
"Name": "VisualStudioTools",
"Enabled": true,
"SupportedTargetPlatforms": [
"Win64"
]
}
],
"TargetPlatforms": [],
"AdditionalRootDirectories": [],
"AdditionalPluginDirectories": [],
"EpicSampleNameHash": ""
}
+9
View File
@@ -0,0 +1,9 @@
[UnrealEd.SimpleMap]
SimpleMapName=/Game/ThirdPersonCPP/Maps/ThirdPersonExampleMap
[EditoronlyBP]
bAllowClassAndBlueprintPinMatching=true
bReplaceBlueprintWithClass= true
bDontLoadBlueprintOutsideEditor= true
bBlueprintIsNotBlueprintType= true
@@ -0,0 +1,2 @@
[ContentBrowser]
ContentBrowserTab1.SelectedPaths=/Game/ThirdPersonCPP
+258
View File
@@ -0,0 +1,258 @@
[/Script/EngineSettings.GameMapsSettings]
GameDefaultMap=/Game/ThirdPerson/Lvl_ThirdPerson.Lvl_ThirdPerson
EditorStartupMap=/Game/ThirdPerson/Lvl_ThirdPerson.Lvl_ThirdPerson
GlobalDefaultGameMode=/Game/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.BP_ThirdPersonGameMode_C
[/Script/Engine.RendererSettings]
r.Mobile.ShadingPath=1
r.Mobile.AntiAliasing=2
r.Mobile.FloatPrecisionMode=0
r.Mobile.AllowDitheredLODTransition=False
r.Mobile.VirtualTextures=False
r.DiscardUnusedQuality=False
r.AllowOcclusionQueries=True
r.MinScreenRadiusForLights=0.030000
r.MinScreenRadiusForDepthPrepass=0.030000
r.PrecomputedVisibilityWarning=False
r.TextureStreaming=True
Compat.UseDXT5NormalMaps=False
r.VirtualTextures=True
r.VirtualTexturedLightmaps=False
r.VT.TileSize=128
r.VT.TileBorderSize=4
r.VT.AnisotropicFiltering=False
r.VT.EnableAutoImport=False
bEnableVirtualTextureOpacityMask=True
r.MeshPaintVirtualTexture.Support=True
r.MeshPaintVirtualTexture.TileSize=32
r.MeshPaintVirtualTexture.TileBorderSize=2
r.MeshPaintVirtualTexture.UseCompression=True
r.StaticMesh.DefaultMeshPaintTextureSupport=True
r.MeshPaintVirtualTexture.DefaultTexelsPerVertex=4
r.MeshPaintVirtualTexture.MaxTextureSize=4096
r.vt.rvt.EnableBaseColor=True
r.vt.rvt.EnableBaseColorRoughness=True
r.vt.rvt.EnableBaseColorSpecular=True
r.vt.rvt.EnableMask4=True
r.vt.rvt.EnableWorldHeight=True
r.vt.rvt.EnableDisplacement=True
r.vt.rvt.HighQualityPerPixelHeight=True
WorkingColorSpaceChoice=sRGB
RedChromaticityCoordinate=(X=0.640000,Y=0.330000)
GreenChromaticityCoordinate=(X=0.300000,Y=0.600000)
BlueChromaticityCoordinate=(X=0.150000,Y=0.060000)
WhiteChromaticityCoordinate=(X=0.312700,Y=0.329000)
r.LegacyLuminanceFactors=False
r.ClearCoatNormal=False
r.DynamicGlobalIlluminationMethod=1
r.ReflectionMethod=1
r.ReflectionCaptureResolution=128
r.ReflectionEnvironmentLightmapMixBasedOnRoughness=True
r.Lumen.HardwareRayTracing=True
r.Lumen.HardwareRayTracing.LightingMode=0
r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject=False
r.Lumen.TraceMeshSDFs=0
r.Lumen.ScreenTracingSource=0
r.Lumen.Reflections.HardwareRayTracing.Translucent.Refraction.EnableForProject=True
r.MegaLights.EnableForProject=False
r.RayTracing.Shadows=False
r.Shadow.Virtual.Enable=1
r.RayTracing=True
r.RayTracing.RayTracingProxies.ProjectEnabled=True
r.RayTracing.UseTextureLod=False
r.PathTracing=True
r.GenerateMeshDistanceFields=True
r.DistanceFields.DefaultVoxelDensity=0.200000
r.Nanite.ProjectEnabled=True
r.AllowStaticLighting=False
r.NormalMapsForStaticLighting=False
r.ForwardShading=False
r.VertexFoggingForOpaque=True
r.SeparateTranslucency=True
r.TranslucentSortPolicy=0
TranslucentSortAxis=(X=0.000000,Y=-1.000000,Z=0.000000)
r.LocalFogVolume.ApplyOnTranslucent=False
xr.VRS.FoveationLevel=0
xr.VRS.DynamicFoveation=False
r.CustomDepth=1
r.CustomDepthTemporalAAJitter=True
r.PostProcessing.PropagateAlpha=False
r.Deferred.SupportPrimitiveAlphaHoldout=False
r.DefaultFeature.Bloom=True
r.DefaultFeature.AmbientOcclusion=True
r.DefaultFeature.AmbientOcclusionStaticFraction=True
r.DefaultFeature.AutoExposure=False
r.DefaultFeature.AutoExposure.Method=0
r.DefaultFeature.AutoExposure.Bias=1.000000
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
r.DefaultFeature.LocalExposure.HighlightContrastScale=0.800000
r.DefaultFeature.LocalExposure.ShadowContrastScale=0.800000
r.DefaultFeature.MotionBlur=False
r.DefaultFeature.LensFlare=False
r.TemporalAA.Upsampling=True
r.AntiAliasingMethod=0
r.MSAACount=4
r.DefaultFeature.LightUnits=1
r.DefaultBackBufferPixelFormat=4
r.ScreenPercentage.Default=100.000000
r.ScreenPercentage.Default.Desktop.Mode=1
r.ScreenPercentage.Default.Mobile.Mode=0
r.ScreenPercentage.Default.VR.Mode=0
r.ScreenPercentage.Default.PathTracer.Mode=0
r.Shadow.UnbuiltPreviewInGame=True
r.StencilForLODDither=False
r.EarlyZPass=3
r.EarlyZPassOnlyMaterialMasking=False
r.Shadow.CSMCaching=False
r.DBuffer=True
r.ClearSceneMethod=1
r.VelocityOutputPass=0
r.Velocity.EnableVertexDeformation=2
r.SelectiveBasePassOutputs=False
bDefaultParticleCutouts=False
fx.GPUSimulationTextureSizeX=1024
fx.GPUSimulationTextureSizeY=1024
r.AllowGlobalClipPlane=False
r.GBufferFormat=1
r.MorphTarget.Mode=True
r.MorphTarget.MaxBlendWeight=5.000000
r.SupportSkyAtmosphere=True
r.SupportSkyAtmosphereAffectsHeightFog=True
r.SupportExpFogMatchesVolumetricFog=False
r.SupportLocalFogVolumes=True
r.SupportCloudShadowOnForwardLitTranslucent=False
r.ClusteredDeferredShading.EnableForProject=True
r.LightFunctionAtlas.Format=0
r.VolumetricFog.LightFunction=True
r.Deferred.UsesLightFunctionAtlas=True
r.SingleLayerWater.UsesLightFunctionAtlas=False
r.Translucent.UsesLightFunctionAtlas=False
r.Translucent.UsesIESProfiles=False
r.Translucent.UsesRectLights=False
r.Translucent.UsesShadowedLocalLights=False
r.GPUCrashDebugging=False
vr.InstancedStereo=False
r.MobileHDR=True
vr.MobileMultiView=False
r.Mobile.UseHWsRGBEncoding=False
vr.RoundRobinOcclusion=False
r.MeshStreaming=False
r.HeterogeneousVolumes=True
r.HeterogeneousVolumes.Shadows=False
r.Translucency.HeterogeneousVolumes=False
r.WireframeCullThreshold=5.000000
r.SupportStationarySkylight=True
r.SupportLowQualityLightmaps=True
r.SupportPointLightWholeSceneShadows=True
r.Shadow.TranslucentPerObject.ProjectEnabled=False
r.Water.SingleLayerWater.SupportCloudShadow=False
r.Substrate=True
r.Substrate.ProjectGBufferFormat=0
r.Substrate.ProjectClosuresPerPixel=4
r.Substrate.ProjectClosuresPerPixelOverride=0
r.Substrate.BytesPerPixel=80
r.Substrate.OpaqueMaterialRoughRefraction=False
r.Refraction.Blur=True
r.Substrate.Debug.AdvancedVisualizationShaders=False
r.Substrate.EnableLayerSupport=False
r.Material.RoughDiffuse=False
r.Material.EnergyConservation=False
r.Material.DefaultAutoMaterialUsage=True
r.OIT.SortedPixels=False
r.HairStrands.LODMode=True
r.SkinCache.CompileShaders=True
r.VRS.Support=True
r.SkinCache.SkipCompilingGPUSkinVF=False
r.SkinCache.DefaultBehavior=1
r.SkinCache.SceneMemoryLimitInMB=128.000000
r.Mobile.EnableStaticAndCSMShadowReceivers=True
r.Mobile.EnableMovableLightCSMShaderCulling=True
r.Mobile.Forward.EnableLocalLights=1
r.Mobile.Forward.EnableClusteredReflections=False
r.Mobile.AllowDistanceFieldShadows=True
r.Mobile.EnableMovableSpotlightsShadow=False
r.GPUSkin.Support16BitBoneIndex=False
r.GPUSkin.Limit2BoneInfluences=False
r.SupportDepthOnlyIndexBuffers=False
r.SupportReversedIndexBuffers=False
r.Mobile.AmbientOcclusion=False
r.Mobile.ScreenSpaceReflections=False
r.Mobile.DBuffer=False
r.Mobile.PropagateAlpha=False
r.GPUSkin.UnlimitedBoneInfluences=False
r.GPUSkin.AlwaysUseDeformerForUnlimitedBoneInfluences=False
r.GPUSkin.UnlimitedBoneInfluencesThreshold=8
DefaultBoneInfluenceLimit=(Default=0,PerPlatform=())
MaxSkinBones=(Default=65536,PerPlatform=(("Mobile", 256)))
r.Nanite.Foliage=False
bStreamSkeletalMeshLODs=(Default=False,PerPlatform=())
bDiscardSkeletalMeshOptionalLODs=(Default=False,PerPlatform=())
VisualizeCalibrationColorMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationColor.PPM_DefaultCalibrationColor
VisualizeCalibrationCustomMaterialPath=None
VisualizeCalibrationGrayscaleMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationGrayscale.PPM_DefaultCalibrationGrayscale
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
-D3D12TargetedShaderFormats=PCD3D_SM5
+D3D12TargetedShaderFormats=PCD3D_SM6
-D3D11TargetedShaderFormats=PCD3D_SM5
+D3D11TargetedShaderFormats=PCD3D_SM5
Compiler=Default
AudioSampleRate=48000
AudioCallbackBufferFrameSize=1024
AudioNumBuffersToEnqueue=1
AudioMaxChannels=0
AudioNumSourceWorkers=4
SpatializationPlugin=
SourceDataOverridePlugin=
ReverbPlugin=
OcclusionPlugin=
CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0)
CacheSizeKB=65536
MaxChunkSizeOverrideKB=0
bResampleForDevice=False
MaxSampleRate=48000.000000
HighSampleRate=32000.000000
MedSampleRate=24000.000000
LowSampleRate=12000.000000
MinSampleRate=8000.000000
CompressionQualityModifier=1.000000
AutoStreamingThreshold=0.000000
SoundCueCookQualityIndex=-1
[/Script/LinuxTargetPlatform.LinuxTargetSettings]
-TargetedRHIs=SF_VULKAN_SM5
+TargetedRHIs=SF_VULKAN_SM6
[/Script/MacTargetPlatform.MacTargetSettings]
-TargetedRHIs=SF_METAL_SM5
+TargetedRHIs=SF_METAL_SM6
[/Script/HardwareTargeting.HardwareTargetingSettings]
TargetedHardwareClass=Desktop
AppliedTargetedHardwareClass=Desktop
DefaultGraphicsPerformance=Scalable
AppliedDefaultGraphicsPerformance=Scalable
[/Script/Engine.Engine]
+ActiveGameNameRedirects=(OldGameName="TP_ThirdPerson",NewGameName="/Script/AgrarianGame")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPerson",NewGameName="/Script/AgrarianGame")
+ActiveClassRedirects=(OldClassName="TP_ThirdPersonPlayerController",NewClassName="AgrarianGamePlayerController")
+ActiveClassRedirects=(OldClassName="TP_ThirdPersonGameMode",NewClassName="AgrarianGameGameMode")
+ActiveClassRedirects=(OldClassName="TP_ThirdPersonCharacter",NewClassName="AgrarianGameCharacter")
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
bEnablePlugin=True
bAllowNetworkConnection=True
SecurityToken=75E5BDE441E4F070BBFBCE9EBE7BB8D9
bIncludeInShipping=False
bAllowExternalStartInShipping=False
bCompileAFSProject=False
bUseCompression=False
bLogFiles=False
bReportStats=False
ConnectionType=USBOnly
bUseManualIPAddress=False
ManualIPAddress=
+3
View File
@@ -0,0 +1,3 @@
[/Script/EngineSettings.GeneralProjectSettings]
ProjectID=1C37CF214211E5FA6177D497FE103AC4
ProjectName=Third Person Game Template
+86
View File
@@ -0,0 +1,86 @@
[/Script/Engine.InputSettings]
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
bAltEnterTogglesFullscreen=True
bF11TogglesFullscreen=True
bUseMouseForTouch=False
bEnableMouseSmoothing=True
bEnableFOVScaling=True
bCaptureMouseOnLaunch=True
bEnableLegacyInputScales=True
bEnableMotionControls=True
bFilterInputByPlatformUser=False
bShouldFlushPressedKeysOnViewportFocusLost=True
bAlwaysShowTouchInterface=False
bShowConsoleOnFourFingerTap=True
bEnableGestureRecognizer=False
bUseAutocorrect=False
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
DefaultViewportMouseLockMode=LockOnCapture
FOVScale=0.011110
DoubleClickTime=0.200000
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
DefaultTouchInterface=None
-ConsoleKeys=Tilde
+ConsoleKeys=Tilde

Some files were not shown because too many files have changed in this diff Show More