Last Epoch Save Editor

Upload *YOUR* gamehacking tools/helpers here
Post Reply
User avatar
Ash06
Noobzor
Noobzor
Posts: 5
Joined: Wed Oct 09, 2019 2:34 pm
Reputation: 4

Last Epoch Save Editor

Post by Ash06 »

Hello, I looked for a save editor, not having found any, so i am going to share with you a code that I wrote at the release of the game.
Why now, because I'm amazed that the editor left the files as is.

Image
prefix id 6 is crit multiplier not all attribute ^^

How to:
File password is Ash
Need local save (i don't use cloud save, so i don't include it)
Item prefix1, item prefix2, item prefix3 : it's like implicit in POE (max = 255).
Prefix/Suffix value : max value 255 = 100%
Tier : value shoud be (tier want - 1) * 16
Some Shards don't works with this math, like Str, Vitality, Intel
If the value of tier is not good, item should have tier id = 0 --> "Void Penetration"

Changes v1.1
- Fix Materials/Shards/Gold Save
- Add some items name and icons.
- Remove Textbox Type, Add ComboBox Type
- Remove Textbox Name, Add ComboBox Name
- If you modify an Item in your Inventory you can see the changes (Need to implement same think for all containers)

DB Status
- 50 Helms Name and 43/50 Icons
- 52 BodyArmor Name and 42/52 Icons
- 7 belts Name and Icons
- 10 Boots Name and Icons
- 9 Gloves Name and Icons
- 12 OneHandAxe Name and 3/12 Icons
- 11 Daggers Name and Icons
- 11 OneHandBlunt Name and 4/12 Icons
- 10 Scepters Name and Icons
- 10 OneHandSword Name and Icons
- 11 Wands Name and 2/11 Icons
- 10 Amulets Name and Icons
- 10 Rings Name and Icons

Todo List
Load / Save :
- Activate solo challenge Checkbox (Need a function CreateBank)
- LevelUp Your 5 Selected Skills
- Add all Blessings (Need all blessings Id)
- Add all Runes (Need all runes Id)

Items :
- Get all items Id, Name, Icon, NbImplicits
- Get all runes Id, Name
- Get all idoles Id, Name, Icon
- Get all Blessings Id, Name

Item Infos :
- Show only the numbers of impicit the Base Item have (Need all Items or exclusions for item we don't know)
- Show only the numbers of Prefix/Suffix the Item have
- Add/Remove Prefix/Suffix
- Remove Textbox PrefixId, Add ComboBox PrefixId (Need all runes Id)
- Remove Textbox PrefixTier, Add ComboBox PrefixTier (NNeed to write a function with exclusions in the Math)
- Do the same think for all Unique Items

Containers (Inventory, idoles, stashs) :
- Move Item (Need to write a function GetContainerFreeSpace)
- Resize Items (implemented in Inventory only)
- Change Icon (implemented in Inventory only)

Materials/Shards :
- Add a SearchBox

Bank :
- Add buttons to show all stashs (Rewrite 2 panels, add 4 buttons)
Attachments
LastEpochSaveEditorV1.1.part3.rar
v1.1
(678.2 KiB) Downloaded 313 times
LastEpochSaveEditorV1.1.part2.rar
v1.1
(5 MiB) Downloaded 289 times
LastEpochSaveEditorV1.1.part1.rar
v1.1
(5 MiB) Downloaded 282 times
LastEpochSaveEditor.part3.rar
v1.0
(671.33 KiB) Downloaded 133 times
LastEpochSaveEditor.part2.rar
v1.0
(5 MiB) Downloaded 129 times
LastEpochSaveEditor.part1.rar
v1.0
(5 MiB) Downloaded 132 times
Last edited by Ash06 on Mon Sep 06, 2021 7:48 pm, edited 1 time in total.

sirraiukoren
Noobzor
Noobzor
Posts: 12
Joined: Fri Dec 11, 2020 8:54 pm
Reputation: 4

Re: Last Epoch Save Editor

Post by sirraiukoren »

This is great! Thanks for sharing the tool.

sirraiukoren
Noobzor
Noobzor
Posts: 12
Joined: Fri Dec 11, 2020 8:54 pm
Reputation: 4

Re: Last Epoch Save Editor

Post by sirraiukoren »

As per your request, I'll add here a few small adjustments I'd like to see.

A dropdown menu of prefix/suffix names in item modification, so I don't have to memorize all the prefix/suffix id numbers.

Check to see if shard numbers are not saving correctly - seems unlikely, since the reported numbers are accurate when the materials tab is opened, but changing the numbers and then saving the bank does not save the new numbers.

Thanks again!

Owna
What is cheating?
What is cheating?
Posts: 2
Joined: Mon Sep 06, 2021 12:11 am
Reputation: 0

Re: Last Epoch Save Editor

Post by Owna »

It would be nice if there was an option to add all runes to your char/acc with x amount?
Also, it would be nice if we could compile a list of the rarer unique like oiran's eye that have super low drop chance so you can add them to your char as well. It would be nice to have options for the tiers in a dropdown menu as well.

User avatar
Ash06
Noobzor
Noobzor
Posts: 5
Joined: Wed Oct 09, 2019 2:34 pm
Reputation: 4

Re: Last Epoch Save Editor

Post by Ash06 »

sirraiukoren wrote:
Sat Sep 04, 2021 8:37 am
As per your request, I'll add here a few small adjustments I'd like to see.

A dropdown menu of prefix/suffix names in item modification, so I don't have to memorize all the prefix/suffix id numbers.

Check to see if shard numbers are not saving correctly - seems unlikely, since the reported numbers are accurate when the materials tab is opened, but changing the numbers and then saving the bank does not save the new numbers.

Thanks again!
I can't remove the textbox and make a dropdown, because i have only 50/250+ Rune Id .
Save should work now
Shards in the app don't have the same order with the game.
Owna wrote:
Mon Sep 06, 2021 1:01 am
It would be nice if there was an option to add all runes to your char/acc with x amount?
Also, it would be nice if we could compile a list of the rarer unique like oiran's eye that have super low drop chance so you can add them to your char as well. It would be nice to have options for the tiers in a dropdown menu as well.
All runes should be easy to do if i know how many runes i have to add.
Last rune know is Vitality Id = 249 so i can check if you don't have the runes in you save and add it, but i don't know if 250 is the max ^^.

At this time, i'm only working on base item.
If you want some unique, get it with the ct table, and modify it with this app.
Unique can have Tier > 7 with my math, but we have to try if we can get this on a rare item ^^.

cobra012
What is cheating?
What is cheating?
Posts: 2
Joined: Thu Sep 16, 2021 6:50 am
Reputation: 0

Re: Last Epoch Save Editor

Post by cobra012 »

what's the pass for archives ?

unomatt05
What is cheating?
What is cheating?
Posts: 1
Joined: Mon Sep 20, 2021 4:08 am
Reputation: 0

Re: Last Epoch Save Editor

Post by unomatt05 »

how can i save my edited save. i cant save it when i open my game nothing change.


ok i already done save my game.. i cant see the save button so i used tab button to find where the save is.. hahaha.. can u plz make it more smaller or make a scroll to see the save button..

Nevermindy
Noobzor
Noobzor
Posts: 10
Joined: Fri Sep 20, 2019 8:57 am
Reputation: 0

Re: Last Epoch Save Editor

Post by Nevermindy »

Tried to change the amount of Runes i have . Saved the changes in editor and nothing changed in game sadly.
Tried multiple times.

What am i doing wrong? Or save option doesn't work ?

User avatar
Ash06
Noobzor
Noobzor
Posts: 5
Joined: Wed Oct 09, 2019 2:34 pm
Reputation: 4

Re: Last Epoch Save Editor

Post by Ash06 »

unomatt05 wrote:
Mon Sep 20, 2021 4:10 am
how can i save my edited save. i cant save it when i open my game nothing change.
ok i already done save my game.. i cant see the save button so i used tab button to find where the save is.. hahaha.. can u plz make it more smaller or make a scroll to see the save button..
Image

or

Image

and you can see all the app.
Nevermindy wrote:
Mon Sep 20, 2021 8:35 am
Tried to change the amount of Runes i have . Saved the changes in editor and nothing changed in game sadly.
Tried multiple times.

What am i doing wrong? Or save option doesn't work ?
I think you try to save your character not you bank.

character contain
Spoiler

Code: Select all

using LastEpochLib.Items;
using Newtonsoft.Json;
using System.Collections.Generic;

namespace LastEpochLib.Characters
{
    public class Character
    {
        [JsonProperty("characterName")]
        public string CharacterName { get; set; }

        [JsonProperty("level")]
        public int Level { get; set; }

        [JsonProperty("slot")]
        public int Slot { get; set; }

        [JsonProperty("currentExp")]
        public int CurrentExp { get; set; }

        [JsonProperty("hardcore")]
        public bool Hardcore { get; set; }

        [JsonProperty("died")]
        public bool Died { get; set; }

        [JsonProperty("deaths")]
        public int Deaths { get; set; }

        [JsonProperty("masochist")]
        public bool Masochist { get; set; }

        [JsonProperty("closedSkillsTooltip")]
        public bool ClosedSkillsTooltip { get; set; }

        [JsonProperty("closedPassivesTooltip")]
        public bool ClosedPassivesTooltip { get; set; }

        [JsonProperty("closedMonolithTooltip")]
        public bool ClosedMonolithTooltip { get; set; }

        [JsonProperty("closedIdolsTooltip")]
        public bool ClosedIdolsTooltip { get; set; }

        [JsonProperty("closedMinSkillLevelTutorial")]
        public bool ClosedMinSkillLevelTutorial { get; set; }

        [JsonProperty("characterClass")]
        public int CharacterClass { get; set; }

        [JsonProperty("savedItems")]
        public List<SavedItem> SavedItems { get; set; }

        [JsonProperty("savedCharacterTree")]
        public SavedCharacterTree SavedCharacterTree { get; set; }

        [JsonProperty("savedSkillTrees")]
        public List<SavedSkillTree> SavedSkillTrees { get; set; }

        [JsonProperty("characterTreeNodeProgression")]
        public List<object> CharacterTreeNodeProgression { get; set; }

        [JsonProperty("unlockedWaypointScenes")]
        public List<string> UnlockedWaypointScenes { get; set; }

        [JsonProperty("abilityBar")]
        public List<string> AbilityBar { get; set; }

        [JsonProperty("moveButtonBehaviour")]
        public int MoveButtonBehaviour { get; set; }

        [JsonProperty("portalUnlocked")]
        public bool PortalUnlocked { get; set; }

        [JsonProperty("reachedTown")]
        public bool ReachedTown { get; set; }

        [JsonProperty("soloChallenge")]
        public bool SoloChallenge { get; set; }

        [JsonProperty("respecs")]
        public int Respecs { get; set; }

        [JsonProperty("uniquesPickedUp")]
        public int UniquesPickedUp { get; set; }

        [JsonProperty("savedQuests")]
        public List<SavedQuest> SavedQuests { get; set; }

        [JsonProperty("savedMonolithQuests")]
        public List<object> SavedMonolithQuests { get; set; }

        [JsonProperty("maxWave")]
        public int MaxWave { get; set; }

        [JsonProperty("competitiveCharacterVersion")]
        public int CompetitiveCharacterVersion { get; set; }

        [JsonProperty("oneTimeEvents")]
        public List<string> OneTimeEvents { get; set; }

        [JsonProperty("focusedQuest")]
        public int FocusedQuest { get; set; }

        [JsonProperty("sceneProgresses")]
        public List<SceneProgress> SceneProgresses { get; set; }

        [JsonProperty("monolithRuns")]
        public List<MonolithRun> MonolithRuns { get; set; }

        [JsonProperty("timelineCompletion")]
        public List<TimelineCompletion> TimelineCompletion { get; set; }

        [JsonProperty("timelineDifficultyCompletion")]
        public List<TimelineDifficultyCompletion> TimelineDifficultyCompletion { get; set; }

        [JsonProperty("timelineDifficultyUnlocks")]
        public List<TimelineDifficultyUnlock> TimelineDifficultyUnlocks { get; set; }

        [JsonProperty("currentMonolithRunTimelineID")]
        public int CurrentMonolithRunTimelineID { get; set; }

        [JsonProperty("currentMonolithRunDifficultyIndex")]
        public int CurrentMonolithRunDifficultyIndex { get; set; }

        [JsonProperty("currentMonolithRunToSetBack")]
        public int CurrentMonolithRunToSetBack { get; set; }

        [JsonProperty("currentMonolithRunToSetBackDifficultyIndex")]
        public int CurrentMonolithRunToSetBackDifficultyIndex { get; set; }

        [JsonProperty("previousMonolithEchoTimelineID")]
        public int PreviousMonolithEchoTimelineID { get; set; }

        [JsonProperty("previousMonolithEchoDifficultyIndex")]
        public int PreviousMonolithEchoDifficultyIndex { get; set; }

        [JsonProperty("monolithEchoesConquered")]
        public int MonolithEchoesConquered { get; set; }

        [JsonProperty("monolithTimelinesConquered")]
        public int MonolithTimelinesConquered { get; set; }

        [JsonProperty("monolithOptions")]
        public List<object> MonolithOptions { get; set; }

        [JsonProperty("activeMonolithMods")]
        public List<object> ActiveMonolithMods { get; set; }

        [JsonProperty("monolithDepth")]
        public int MonolithDepth { get; set; }

        [JsonProperty("hasRerolledMonolithOptions")]
        public bool HasRerolledMonolithOptions { get; set; }

        [JsonProperty("chosenMastery")]
        public int ChosenMastery { get; set; }

        [JsonProperty("clickedUnlockMasteriesButton")]
        public bool ClickedUnlockMasteriesButton { get; set; }

        [JsonProperty("currentArenaRunWaves")]
        public int CurrentArenaRunWaves { get; set; }

        [JsonProperty("blessingsDiscovered")]
        public List<object> BlessingsDiscovered { get; set; }                
    }
}

bank contain
Spoiler

Code: Select all

using Newtonsoft.Json;
using System.Collections.Generic;

namespace LastEpochLib.GlobalData
{
    public class Global
    {
        [JsonProperty("stashList")]
        public List<StashList> StashList { get; set; }               
    }
}

Code: Select all

using LastEpochLib.Items;
using Newtonsoft.Json;
using System.Collections.Generic;

namespace LastEpochLib.GlobalData
{
    public class StashList
    {
        [JsonProperty("stashType")]
        public int StashType { get; set; }

        [JsonProperty("soloChallengeStashName")]
        public string SoloChallengeStashName { get; set; }

        [JsonProperty("savedShards")]
        public List<SavedShard> SavedShards { get; set; }

        [JsonProperty("savedStashItems")]
        public List<SavedStashItem> SavedStashItems { get; set; }

        [JsonProperty("gold")]
        public int Gold { get; set; }

        [JsonProperty("affixesCleanupDone")]
        public bool AffixesCleanupDone { get; set; }

        [JsonProperty("stashTabsCreated")]
        public bool StashTabsCreated { get; set; }

        [JsonProperty("materialsList")]
        public List<MaterialsList> MaterialsList { get; set; }

        [JsonProperty("categories")]
        public List<Category> Categories { get; set; }

        [JsonProperty("tabs")]
        public List<Tab> Tabs { get; set; }
    }
}
So, if you want to save your shards, save your bank ^^

I will update sunday morning, i have to clean the code before, because some antivirus detect "hacking tools".
i've done "all shards" button, so we can get all shards.
I can do the same for blessing but i need a savegame with all blessing to verify if its good.
I'm working for unique and set, but same as blessing, i need a savegame with all unique and set, because id of this items are in the NbAffixes?? TextBox, unique and set it's ItemTypeId ItemBaseId and UniqueOrSetId.
I remove Textbox for Type, Name, Shards Id and Calculated Tier, now we have to select in the list.
If you check in the Character or Bank spoiler, you can see what we can add to this app.

exemple of a set item
Spoiler
Image

Nevermindy
Noobzor
Noobzor
Posts: 10
Joined: Fri Sep 20, 2019 8:57 am
Reputation: 0

Re: Last Epoch Save Editor

Post by Nevermindy »

Ash06 wrote:
Mon Sep 20, 2021 5:39 pm
unomatt05 wrote:
Mon Sep 20, 2021 4:10 am
how can i save my edited save. i cant save it when i open my game nothing change.
ok i already done save my game.. i cant see the save button so i used tab button to find where the save is.. hahaha.. can u plz make it more smaller or make a scroll to see the save button..
Image

or

Image

and you can see all the app.
Nevermindy wrote:
Mon Sep 20, 2021 8:35 am
Tried to change the amount of Runes i have . Saved the changes in editor and nothing changed in game sadly.
Tried multiple times.

What am i doing wrong? Or save option doesn't work ?
I think you try to save your character not you bank.

character contain
Spoiler

Code: Select all

using LastEpochLib.Items;
using Newtonsoft.Json;
using System.Collections.Generic;

namespace LastEpochLib.Characters
{
    public class Character
    {
        [JsonProperty("characterName")]
        public string CharacterName { get; set; }

        [JsonProperty("level")]
        public int Level { get; set; }

        [JsonProperty("slot")]
        public int Slot { get; set; }

        [JsonProperty("currentExp")]
        public int CurrentExp { get; set; }

        [JsonProperty("hardcore")]
        public bool Hardcore { get; set; }

        [JsonProperty("died")]
        public bool Died { get; set; }

        [JsonProperty("deaths")]
        public int Deaths { get; set; }

        [JsonProperty("masochist")]
        public bool Masochist { get; set; }

        [JsonProperty("closedSkillsTooltip")]
        public bool ClosedSkillsTooltip { get; set; }

        [JsonProperty("closedPassivesTooltip")]
        public bool ClosedPassivesTooltip { get; set; }

        [JsonProperty("closedMonolithTooltip")]
        public bool ClosedMonolithTooltip { get; set; }

        [JsonProperty("closedIdolsTooltip")]
        public bool ClosedIdolsTooltip { get; set; }

        [JsonProperty("closedMinSkillLevelTutorial")]
        public bool ClosedMinSkillLevelTutorial { get; set; }

        [JsonProperty("characterClass")]
        public int CharacterClass { get; set; }

        [JsonProperty("savedItems")]
        public List<SavedItem> SavedItems { get; set; }

        [JsonProperty("savedCharacterTree")]
        public SavedCharacterTree SavedCharacterTree { get; set; }

        [JsonProperty("savedSkillTrees")]
        public List<SavedSkillTree> SavedSkillTrees { get; set; }

        [JsonProperty("characterTreeNodeProgression")]
        public List<object> CharacterTreeNodeProgression { get; set; }

        [JsonProperty("unlockedWaypointScenes")]
        public List<string> UnlockedWaypointScenes { get; set; }

        [JsonProperty("abilityBar")]
        public List<string> AbilityBar { get; set; }

        [JsonProperty("moveButtonBehaviour")]
        public int MoveButtonBehaviour { get; set; }

        [JsonProperty("portalUnlocked")]
        public bool PortalUnlocked { get; set; }

        [JsonProperty("reachedTown")]
        public bool ReachedTown { get; set; }

        [JsonProperty("soloChallenge")]
        public bool SoloChallenge { get; set; }

        [JsonProperty("respecs")]
        public int Respecs { get; set; }

        [JsonProperty("uniquesPickedUp")]
        public int UniquesPickedUp { get; set; }

        [JsonProperty("savedQuests")]
        public List<SavedQuest> SavedQuests { get; set; }

        [JsonProperty("savedMonolithQuests")]
        public List<object> SavedMonolithQuests { get; set; }

        [JsonProperty("maxWave")]
        public int MaxWave { get; set; }

        [JsonProperty("competitiveCharacterVersion")]
        public int CompetitiveCharacterVersion { get; set; }

        [JsonProperty("oneTimeEvents")]
        public List<string> OneTimeEvents { get; set; }

        [JsonProperty("focusedQuest")]
        public int FocusedQuest { get; set; }

        [JsonProperty("sceneProgresses")]
        public List<SceneProgress> SceneProgresses { get; set; }

        [JsonProperty("monolithRuns")]
        public List<MonolithRun> MonolithRuns { get; set; }

        [JsonProperty("timelineCompletion")]
        public List<TimelineCompletion> TimelineCompletion { get; set; }

        [JsonProperty("timelineDifficultyCompletion")]
        public List<TimelineDifficultyCompletion> TimelineDifficultyCompletion { get; set; }

        [JsonProperty("timelineDifficultyUnlocks")]
        public List<TimelineDifficultyUnlock> TimelineDifficultyUnlocks { get; set; }

        [JsonProperty("currentMonolithRunTimelineID")]
        public int CurrentMonolithRunTimelineID { get; set; }

        [JsonProperty("currentMonolithRunDifficultyIndex")]
        public int CurrentMonolithRunDifficultyIndex { get; set; }

        [JsonProperty("currentMonolithRunToSetBack")]
        public int CurrentMonolithRunToSetBack { get; set; }

        [JsonProperty("currentMonolithRunToSetBackDifficultyIndex")]
        public int CurrentMonolithRunToSetBackDifficultyIndex { get; set; }

        [JsonProperty("previousMonolithEchoTimelineID")]
        public int PreviousMonolithEchoTimelineID { get; set; }

        [JsonProperty("previousMonolithEchoDifficultyIndex")]
        public int PreviousMonolithEchoDifficultyIndex { get; set; }

        [JsonProperty("monolithEchoesConquered")]
        public int MonolithEchoesConquered { get; set; }

        [JsonProperty("monolithTimelinesConquered")]
        public int MonolithTimelinesConquered { get; set; }

        [JsonProperty("monolithOptions")]
        public List<object> MonolithOptions { get; set; }

        [JsonProperty("activeMonolithMods")]
        public List<object> ActiveMonolithMods { get; set; }

        [JsonProperty("monolithDepth")]
        public int MonolithDepth { get; set; }

        [JsonProperty("hasRerolledMonolithOptions")]
        public bool HasRerolledMonolithOptions { get; set; }

        [JsonProperty("chosenMastery")]
        public int ChosenMastery { get; set; }

        [JsonProperty("clickedUnlockMasteriesButton")]
        public bool ClickedUnlockMasteriesButton { get; set; }

        [JsonProperty("currentArenaRunWaves")]
        public int CurrentArenaRunWaves { get; set; }

        [JsonProperty("blessingsDiscovered")]
        public List<object> BlessingsDiscovered { get; set; }                
    }
}

bank contain
Spoiler

Code: Select all

using Newtonsoft.Json;
using System.Collections.Generic;

namespace LastEpochLib.GlobalData
{
    public class Global
    {
        [JsonProperty("stashList")]
        public List<StashList> StashList { get; set; }               
    }
}

Code: Select all

using LastEpochLib.Items;
using Newtonsoft.Json;
using System.Collections.Generic;

namespace LastEpochLib.GlobalData
{
    public class StashList
    {
        [JsonProperty("stashType")]
        public int StashType { get; set; }

        [JsonProperty("soloChallengeStashName")]
        public string SoloChallengeStashName { get; set; }

        [JsonProperty("savedShards")]
        public List<SavedShard> SavedShards { get; set; }

        [JsonProperty("savedStashItems")]
        public List<SavedStashItem> SavedStashItems { get; set; }

        [JsonProperty("gold")]
        public int Gold { get; set; }

        [JsonProperty("affixesCleanupDone")]
        public bool AffixesCleanupDone { get; set; }

        [JsonProperty("stashTabsCreated")]
        public bool StashTabsCreated { get; set; }

        [JsonProperty("materialsList")]
        public List<MaterialsList> MaterialsList { get; set; }

        [JsonProperty("categories")]
        public List<Category> Categories { get; set; }

        [JsonProperty("tabs")]
        public List<Tab> Tabs { get; set; }
    }
}
So, if you want to save your shards, save your bank ^^

I will update sunday morning, i have to clean the code before, because some antivirus detect "hacking tools".
i've done "all shards" button, so we can get all shards.
I can do the same for blessing but i need a savegame with all blessing to verify if its good.
I'm working for unique and set, but same as blessing, i need a savegame with all unique and set, because id of this items are in the NbAffixes?? TextBox, unique and set it's ItemTypeId ItemBaseId and UniqueOrSetId.
I remove Textbox for Type, Name, Shards Id and Calculated Tier, now we have to select in the list.
If you check in the Character or Bank spoiler, you can see what we can add to this app.

exemple of a set item
Spoiler
Image
Yeah , i was saving the character. My bad.
After saving the bank the amount of runes is changing now. Very cool. Thanks for this tool ! :wub:

Also attaching the stash Save with All Uniques and Set items up to patch 0.8.3 from greengreen props to him for collecting it.
The stash save location should be C:\Users\(USER_NAME)\AppData\LocalLow\Eleventh Hour Games\Last Epoch\Saves
Make sure to backup your own stash!

Hope it would help :)

Archive password is "c123"
Attachments
Greenie's Save File.7z
(35.69 KiB) Not downloaded yet

Post Reply

Who is online

Users browsing this forum: No registered users