In-game mod settings UI for Farthest Frontier, built to match the game’s look and feel. Every mod that has configurable settings (MelonPreferences) shows up automatically in the sidebar. No more digging through config files.
How to use
- Launch the game and press F8 (hotkey can be rebound after).
- Pick a mod, change what you want, and close the window (F8).
- Changes are applied right away. No need to restart.
Features
- First-run auto-open
- Live editing
- Per-entry Default
- Reset All to Defaults, Enable All, Apply All Suggested
- Section headers
- Search
- Resizable, draggable window
- Hotkey rebinding
- Accessibility options
- Hide disabled tabs
For mod authors: API
FFModSettingsManager exposes a simple API so your mod can enhance how settings appear. This is optional and does not require a hard dependency. Call these from OnInitializeMelon().
Hard dependency (FFModSettingsManager.dll referenced)
// Suggested value (adds a ‘Suggest’ button) FFModSettingsManager.FFModSettingsManagerAPI.RegisterRecommended( ‘MyCategory’, ‘MyEntry’, 42, ‘Recommended for most players’); // Valid range (replaces text input with a slider) FFModSettingsManager.FFModSettingsManagerAPI.RegisterRange(‘MyCategory’, ‘MyIntEntry’, 0f, 77f); // Dependent setting (grayed out while MyEnableToggle is false) FFModSettingsManager.FFModSettingsManagerAPI.RegisterDependency( ‘MyCategory’, ‘MySubSetting’, ‘MyCategory’, ‘MyEnableToggle’); // Tab-level visibility (whole tab hides when MyEnableToggle is false) FFModSettingsManager.FFModSettingsManagerAPI.RegisterTabVisibilityDependency( ‘MySubCategory’, ‘MyCategory’, ‘MyEnableToggle’); // Section divider above a named entry (works with search filtering) FFModSettingsManager.FFModSettingsManagerAPI.RegisterSectionHeader( ‘MyCategory’, ‘MyFirstEntryInSection’, ‘Section Title’); // Thin separator line (no label) above a named entry, more subtle than a section header FFModSettingsManager.FFModSettingsManagerAPI.RegisterSeparator( ‘MyCategory’, ‘MyFirstEntryInSection’); // Tab description (shown above entries) FFModSettingsManager.FFModSettingsManagerAPI.RegisterCategoryDescription( ‘MyCategory’, ‘Short description of what this mod does.’); // Enable All button in the tab footer (call once per bool entry to include) FFModSettingsManager.FFModSettingsManagerAPI.RegisterEnableAllEntry(‘MyCategory’, ‘MyToggle’); // Live info panel below the entry list (delegate called each frame) FFModSettingsManager.FFModSettingsManagerAPI.RegisterCategoryInfoPanel( ‘MyCategory’, () => $’Current state: {someValue}’); // First-run auto-open FFModSettingsManager.FFModSettingsManagerAPI.RegisterFirstRunCategory(‘MyCategory’);
Soft dependency (safe if FFModSettingsManager is not installed)
var api = System.Type.GetType(‘FFModSettingsManager.FFModSettingsManagerAPI, FFModSettingsManager’); api?.GetMethod(‘RegisterRecommended’) ?.Invoke(null, new object[] { ‘MyCategory’, ‘MyEntry’, 42, ‘Recommended for most players’ }); api?.GetMethod(‘RegisterRange’) ?.Invoke(null, new object[] { ‘MyCategory’, ‘MyIntEntry’, 0f, 77f }); api?.GetMethod(‘RegisterDependency’) ?.Invoke(null, new object[] { ‘MyCategory’, ‘MySubSetting’, ‘MyCategory’, ‘MyEnableToggle’ }); api?.GetMethod(‘RegisterTabVisibilityDependency’) ?.Invoke(null, new object[] { ‘MySubCategory’, ‘MyCategory’, ‘MyEnableToggle’ }); api?.GetMethod(‘RegisterSectionHeader’) ?.Invoke(null, new object[] { ‘MyCategory’, ‘MyFirstEntryInSection’, ‘Section Title’ }); api?.GetMethod(‘RegisterSeparator’) ?.Invoke(null, new object[] { ‘MyCategory’, ‘MyFirstEntryInSection’ }); api?.GetMethod(‘RegisterCategoryDescription’) ?.Invoke(null, new object[] { ‘MyCategory’, ‘Short description of what this mod does.’ }); api?.GetMethod(‘RegisterEnableAllEntry’) ?.Invoke(null, new object[] { ‘MyCategory’, ‘MyToggle’ }); api?.GetMethod(‘RegisterCategoryInfoPanel’) ?.Invoke(null, new object[] { ‘MyCategory’, (System.Func<string>)(() => ‘live summary text’) }); api?.GetMethod(‘RegisterFirstRunCategory’) ?.Invoke(null, new object[] { ‘MyCategory’ });
Comparison with Melon Preference Manager
MelonPreferencesManager is a general-purpose tool for any MelonLoader game. This mod is built specifically for Farthest Frontier and styled to match its theme instead of a generic UI. It adds new features like auto-save, auto-open, reset all, suggest, accessibility settings, etc.