IslandzVW / halcyon

InWorldz Halcyon 3d virtual reality world simulator
BSD 3-Clause "New" or "Revised" License
21 stars 26 forks source link

Added reasonable values for the missing [Economy] section for #439 startup exception #444

Closed appurist closed 6 years ago

appurist commented 6 years ago

Doesn't actually fix the null reference exception, that would require another code change, but the default Halcyon.sample.ini file should not ship with the missing section anyway.

kf6kjg commented 6 years ago

I recommend adding a little more commentary, a la issue #70. Other than that, this has been long on my todo list - good to see it happen!

Vinhold commented 6 years ago

These were the basic settings used before when I started my world including comments: [Economy] ; These economy values get used in the BetaGridLikeMoneyModule. - This module is for demonstration only - ; In grid mode, use this currency XMLRPC server. Leave blank for normal functionality CurrencyServer = ""

; In grid mode, this is the land XMLRPC server. Leave blank for normal functionality
; This points to only the path for LandTool.php which is hard coded in the viewer. 
; To use a different page, it has to have a URL rewrite in IIS set up. This is combined with the 
; [GridInfo] Economy path entry. 6/10/2016
LandServer = ""

; 45000 is the highest value that the sim could possibly report because of protocol constraints
ObjectCapacity = 30000

; Money Unit fee to upload textures, animations etc
PriceUpload = 0

; Money Unit fee to create groups
PriceGroupCreate = 0

; This is the account Money goes to for fees.  Remember, economy requires that money circulates somewhere... even if it's an upload fee. blank = not used.
EconomyBaseAccount = 

; This is the type of user that will pay fees.
; Set this to 2 for users, estate managers and Estate Owners
; Set this to 1 for Users and Estate Managers
; Set this to 0 for Users only.
; -1 disables
UserLevelPaysFees = 0

; Amount to give to user as a stipend
UserStipend = 0

; When a user gets low on money units and logs off, then logs back on, issue a new stipend if they have less money units then this
; amount. Be aware that the account money isn't stored anywhere so users will get a stipend if you restart the simulator
IssueStipendWhenClientIsBelowAmount = 0

; If this is true, the simulator will remember account balances until the simulator is shutdown or restarted.
KeepMoneyAcrossLogins = true

; We don't really know what the rest of these values do.  These get sent to the client
; These taken from Agni at a Public Telehub.  Change at your own risk.
;ObjectCount = 0
;PriceEnergyUnit = 100
;PriceObjectClaim = 10
;PricePublicObjectDecay = 4
;PricePublicObjectDelete = 4
;PriceParcelClaim = 1
;PriceParcelClaimFactor = 1

;PriceRentLight = 5
;TeleportMinPrice = 2
;TeleportPriceExponent = 2
;EnergyEfficiency = 1
;PriceObjectRent = 1
;PriceObjectScaleFactor = 10
;PriceParcelRent = 1

NOTE: Entries that I do use in here are: ObjectCapacity = 30000 PriceUpload = 0 PriceGroupCreate = 0 EconomyBaseAccount = (These were dealt with in an earlier update dealing with price for upload, group creation and the bank account UUID for EconomyBaseAccount.)

The rest I have not had an occasion yet to see what they do. Specifically: UserLevelPaysFees = 0 UserStipend = 0 IssueStipendWhenClientIsBelowAmount = 0

The two parts that are unknown can simply be not shown for fiddling with. If there is no solid documentation on what they do, then they can just be hidden for now.

appurist commented 6 years ago

I've added some entries for this section in PR #444 but I see now that my commit was also missing EconomyBaseAccount which should be added.

I could be wrong, but I think most of the others in Vin's comment above (like the UserLevel, Stipend, etc) are old options copied from OpenSim but not used in Halcyon. I think some of the comments are very specific to OpenSim concepts that don't apply here, and I don't think we should be attempting to document any other options in the sample INI file unless they are confirmed to still apply and work correctly in Halcyon. I think the ObjectCapacity option should not be used from INI file, and may be ignored in some parts of the code in favor of the expected region.xml file option.

My immediate goal for this issue is only to fix the null reference exception in this report, not to complete the documentation for all options. However if there are any glaring exceptions (like the EconomyBaseAccount above), we should add those as well, as soon as possible. So for now in this PR, I've removed ObjectCapacity from the sample file and added EconomyBaseAccount.

Vinhold commented 6 years ago

Works for me. As long as the options for the prices and bank account UUID are in, I am good to go. That is what the website uses with the features in the simulator. Max prims is actually set with the region settings. So I have no idea why it was in the [Economy] section.

appurist commented 6 years ago

I've added the EconomyBaseAccount entry, but I don't think there's any others that are safe to add without further investigation. That may be necessary for #70 but I don't think it's necessary for this one. Ready to go?

Vinhold commented 6 years ago

Works for me. One advance at at time as it can be verified. :)