Wednesday, July 15, 2026 2:54:37 AM
> _server_settings.html.erb
<h2 class="uk-heading-bullet">Server Settings</h2>
<%= f.fields_for ServerSetting.new do |setting_f| %>
  <div class="uk-margin-medium-bottom">
    <h3 class="uk-margin-remove-bottom">Restart Settings <span class="uk-label">NEW</span></h3>
    <p class="uk-margin-remove-top">
      Configure restart intervals for the server.
      <i class="uk-text-small uk-text-muted uk-display-block">
        Note: ESM uses these settings to calculate and display the remaining time until the next restart.
      </i>

      <span class="uk-margin-small-top uk-display-block">
        Currently, this server is expected to restart every {{ setting.server_restart_hour }} hour{{ setting.server_restart_hour === 1 ? '' : 's' }}
        and {{ setting.server_restart_min }} minute{{ setting.server_restart_min === 1 ? '' : 's' }}.
      </span>

    </p>

    <div class="uk-margin">
      <div class="uk-margin-small-top uk-child-width-1-2" uk-grid>
        <div>
          <label class="uk-form-label">Hours</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :server_restart_hour, class: "uk-input uk-form-width-small", placeholder: "95", min: "0", max: "100", ":disabled": "processing", "v-model.number": "setting.server_restart_hour" %>
          </div>
        </div>
        <div>
          <label class="uk-form-label">Minutes</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :server_restart_min, class: "uk-input uk-form-width-small", placeholder: "1", min: "0", ":disabled": "processing", "v-model.number": "setting.server_restart_min" %>
          </div>
        </div>
      </div>
    </div>

    <hr>

    <h3 class="uk-margin-remove-bottom">Gambling Settings</h3>
    <p class="uk-margin-remove-top">
      Control gambling probabilities and payouts
    </p>

    <div class="uk-margin">
      <h4 class="uk-margin-small-bottom">
        Core Settings
      </h4>

      <div class="uk-form-controls">
        <label class="uk-form-label">Win chance (Percentage [0 - 100])</label>
        <div class="uk-form-controls">
          <%= setting_f.number_field :gambling_win_percentage, class: "uk-input uk-form-width-small", placeholder: "35", min: "0", ":disabled": "processing", "v-model.number": "setting.gambling_win_percentage" %>
        </div>
      </div>

      <div class="uk-form-controls uk-margin-top">
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :gambling_locker_limit_enabled, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.gambling_locker_limit_enabled" %>
            Restrict winnings to player's locker capacity <span class="uk-label">NEW</span>
          </label>
        </div>
      </div>
    </div>

    <div class="uk-margin">
      <h4 class="uk-margin-small-bottom">
        Payout Configuration
        <small>
          <%= link_to wiki_gambling_path, class: "uk-align-right" do %>
            <i class="fa-solid fa-info-circle"></i> Detailed Explanation
          <% end %>
        </small>
      </h4>

      <div class="uk-margin-small-top uk-child-width-1-2" uk-grid>
        <div class="uk-padding-remove-left">
          <label class="uk-form-label">Payout Percentage (0 - 100%)</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :gambling_payout_base, class: "uk-input uk-form-width-small", placeholder: "95", min: "0", max: "100", ":disabled": "processing", "v-model.number": "setting.gambling_payout_base" %>
          </div>
        </div>
        <div>
          <label class="uk-form-label">Payout Modifier (≥ 1)</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :gambling_modifier, class: "uk-input uk-form-width-small", placeholder: "1", min: "0", ":disabled": "processing", "v-model.number": "setting.gambling_modifier" %>
          </div>
        </div>
      </div>
    </div>

    <div class="uk-margin">
      <h4 class="uk-margin-small-bottom">
        Randomizer Range
      </h4>

      <div class="uk-margin-small-top uk-child-width-1-3" uk-grid>
        <div>
          <label class="uk-form-label">Minimum</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :gambling_payout_randomizer_min, class: "uk-input uk-form-width-small", placeholder: "0", min: "0", step: :any, ":disabled": "processing", "v-model.number": "setting.gambling_payout_randomizer_min" %>
          </div>
        </div>
        <div>
          <label class="uk-form-label">Middle</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :gambling_payout_randomizer_mid, class: "uk-input uk-form-width-small", placeholder: "0.5", min: "0", step: :any, ":disabled": "processing", "v-model.number": "setting.gambling_payout_randomizer_mid" %>
          </div>
        </div>
        <div>
          <label class="uk-form-label">Maximum</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :gambling_payout_randomizer_max, class: "uk-input uk-form-width-small", placeholder: "1", min: "0", step: :any, ":disabled": "processing", "v-model.number": "setting.gambling_payout_randomizer_max" %>
          </div>
        </div>
      </div>
    </div>
  </div>

  <hr>

  <%# LOGGING %>
  <div class="uk-margin">
    <h3 class="uk-margin-remove-bottom">Logging Settings</h3>
    <p class="uk-margin-remove-top">
      Log information from the following actions to the logging channel
    </p>
    <div class="uk-child-width-1-2" uk-grid>
      <div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_exec, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_exec" %>
            Admin - execute code
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:sqf, only: []) %></small>
          </label>
        </div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_modify_player, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_modify_player" %>
            Admin - modify player attributes
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:player, only: []) %></small>
          </label>
        </div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_gamble, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_gamble" %>
            Gamble poptabs
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:gamble, only: []) %></small>
          </label>
        </div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_reward_player, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_reward_player" %>
            Reward player
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:reward, only: []) %></small>
          </label>
        </div>
      </div>

      <div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_add_player_to_territory, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_add_player_to_territory" %>
            Territory - add player
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:add, only: []) %></small>
          </label>
        </div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_demote_player, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_demote_player" %>
            Territory - demote player
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:demote, only: []) %></small>
          </label>
        </div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_pay_territory, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_pay_territory" %>
            Territory - pay protection money
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:pay, only: []) %></small>
          </label>
        </div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_promote_player, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_promote_player" %>
            Territory - promote player
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:promote, only: []) %></small>
          </label>
        </div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_remove_player_from_territory, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_remove_player_from_territory" %>
            Territory - remove player
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:remove, only: []) %></small>
          </label>
        </div>
        <div class="uk-form-controls">
          <label>
            <%= setting_f.check_box :logging_upgrade_territory, class: "uk-checkbox", ":disabled": "processing", "v-model": "setting.logging_upgrade_territory" %>
            Territory - upgrade
            <br>
            <small class="uk-margin-small-left"><%= command_usage(:upgrade, only: []) %></small>
          </label>
        </div>
      </div>
    </div>
  </div>

  <hr>

  <div class="uk-margin">
    <h3 class="uk-margin-remove-bottom">Territory Settings</h3>
    <p class="uk-margin-remove-top">
      Configure territory payments, taxes, and limitations
    </p>

    <div class="uk-margin">
      <h4 class="uk-margin-remove-bottom">
        Payment Limits
      </h4>

      <div class="uk-form-controls">
        <label class="uk-form-label">Maximum Payments Before Server Join</label>
        <div class="uk-form-controls">
          <%= setting_f.number_field :max_payment_count,
            class: "uk-input uk-form-width-small",
            placeholder: "0",
            min: "0",
            ":disabled": "processing",
            "v-model.number": "setting.max_payment_count"
          %>
          <br>
          <small class="esm-text-subtle">
            Set to 0 for unlimited payments
          </small>
        </div>
      </div>
    </div>

    <div class="uk-margin">
      <h4 class="uk-margin-remove-bottom">
        Territory Taxes
      </h4>

      <div class="uk-child-width-1-2" uk-grid>
        <div>
          <label class="uk-form-label">Territory Payment Tax (0 - 100%)</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :territory_payment_tax, class: "uk-input uk-form-width-small", placeholder: "0", min: "0", max: "100", ":disabled": "processing", "v-model.number": "setting.territory_payment_tax" %>
          </div>
        </div>
        <div>
          <label class="uk-form-label">Territory Upgrade Tax (0 - 100%)</label>
          <div class="uk-form-controls">
            <%= setting_f.number_field :territory_upgrade_tax, class: "uk-input uk-form-width-small", placeholder: "0", min: "0", max: "100", ":disabled": "processing", "v-model.number": "setting.territory_upgrade_tax" %>
          </div>
        </div>
      </div>
    </div>
  </div>
<% end %>
All opinions represented herein are my own
- © 2024 - 2026 itsthedevman
- build 43aa0d7