From 9963516b8deb09d3c20006bff963ac1fd04011d0 Mon Sep 17 00:00:00 2001 From: 2xJi Date: Fri, 1 May 2026 00:16:23 -0400 Subject: [PATCH] feat: add rct server config --- config/rctmod-server.toml | 172 ++++++++++++++++++++++++++++++++++++++ index.toml | 8 +- pack.toml | 2 +- 3 files changed, 179 insertions(+), 3 deletions(-) create mode 100644 config/rctmod-server.toml diff --git a/config/rctmod-server.toml b/config/rctmod-server.toml new file mode 100644 index 0000000..5b3d8c3 --- /dev/null +++ b/config/rctmod-server.toml @@ -0,0 +1,172 @@ +[Spawning] + #━━━━━━━━━━ + #A global factor that determines if a spawn attempt for a trainer is made. + # Default: 0.85 + # Range: 0.0 ~ 1.0 + globalSpawnChance = 0.85 + #━━━━━━━━━━ + #The chance for a trainer to spawn will shrink towards this value based of how many + #trainers are already spawned in for a player. For example if a player has 0 trainers + #spawned for them the chance will be as configured by globalSpawnChance, if a player + #has barely filled up their spawn cap (maxTrainersPerPlayer), i.e. only one more free + #spot is left, the chance for the last trainer will be as configured by globalSpawnChanceMinimum. + #Set to any value equal to or above globalSpawnChance to disable (e.g. 1.0). + # Default: 0.1 + # Range: 0.0 ~ 1.0 + globalSpawnChanceMinimum = 0.1 + #━━━━━━━━━━ + #The interval in ticks at which a spawn attempt is made per player. + # Default: 180 + # Range: 1 ~ 2147483646 + spawnIntervalTicks = 180 + #━━━━━━━━━━ + #The spawn interval ticks will grow towards this value based of how many trainers are already + #spawned in for a player. For example if a player has 0 trainers spawned for them the spawn + #interval ticks will be as configured by spawnIntervalTicks, if a player has barely filled up their + #spawn cap (maxTrainersPerPlayer), i.e. only one more free spot is left, the spawn interval for the + #last trainer will be as configured by spawnIntervalTicksMaximum. Set to any value equal to or below + #spawnIntervalTicks to disable (e.g. 0). + # Default: 2400 + # Range: 0 ~ 2147483646 + spawnIntervalTicksMaximum = 2400 + #━━━━━━━━━━ + #(Non persistent) trainers will despawn if they have no line of sight to any player for the configured amount of ticks. + #Set to a negative value to disable this feature (trainers may only despawn if they chunk becomes unloaded in that case). + despawnTicksIfUnseen = 6000 + #━━━━━━━━━━ + #The max horizontal distance a trainer can spawn from players. + # Default: 70 + # Range: 1 ~ 2147483646 + maxHorizontalDistanceToPlayers = 70 + #━━━━━━━━━━ + #The min horizontal distance a trainer can spawn from players. + # Default: 25 + # Range: 1 ~ 2147483646 + minHorizontalDistanceToPlayers = 25 + #━━━━━━━━━━ + #The max vertical distance a trainer can spawn from players. + # Default: 30 + # Range: 1 ~ 2147483646 + maxVerticalDistanceToPlayers = 20 + #━━━━━━━━━━ + #By default, this mod prevents the spawning of a trainer if another entity with the same identity + #already exists anywhere in the world (in any dimension). However, if this is set to a positive value, + #the mod will check for the existence of a trainer with the same identity within the specified radius instead. + uniqueTrainerRadius = 500 + #━━━━━━━━━━ + #Spawn cap of trainers per player. + # Default: 12 + # Range: 0 ~ 2147483646 + maxTrainersPerPlayer = 12 + #━━━━━━━━━━ + #Total trainer spawn cap. This value may be increased for servers with higher expected + #player numbers (> 4), for example (|players| + 1)*maxTrainersPerPlayer. + # Default: 60 + # Range: 0 ~ 2147483646 + maxTrainersTotal = 60 + #━━━━━━━━━━ + #The maximum level difference between the strongest pokemon in the team of a + #player (at or below that players level cap) and the strongest pokemon in the + #team of a trainer to allow that trainer to spawn for the player. + # + #This value will scale linearly with a players level relative to 100 but will + #not go below 4 (unless explicitely set to a lower value). An exception to this + #are key trainers, who may always spawn with a level difference up to the + #configured value. + # + #For example with player Level = 20 and maxLevelDiff = 25: + #result = max(4, (20/100) * 25) = max(4, 5) = 5 + # + #The spawn weight decreases with a higher level difference. + # Default: 25 + # Range: 0 ~ 100 + maxLevelDiff = 25 + #━━━━━━━━━━ + #If enabled trainers will only spawn naturally around players that have a trainer card + #in their inventory (does not affect trainer spawners). + spawningRequiresTrainerCard = true + #━━━━━━━━━━ + #If enabled a single trainer association npc may spawn naturally nearby players that carry a trainer + #card and have either not started a series or completed their current series. One may also spawn nearby + #any player in proximity to a village (at least 3 occupied beds and a village center). These can + #spawn everywhere but will respect the 'dimensionBlacklist' and 'dimensionWhitelist' settings. + spawnTrainerAssociation = true + #━━━━━━━━━━ + #A comma separated list of dimensions (e.g. ["multiworld:spawn", "minecraft:the_end"]). + #In these dimensions trainers will never spawn. + dimensionBlacklist = [] + #━━━━━━━━━━ + #A comma separated list of dimensions (e.g. ["multiworld:spawn" , "minecraft:the_end"]). + #Trainers may only spawn in these dimensions (unless the list is empty). + dimensionWhitelist = [] + #━━━━━━━━━━ + #A comma separated list of biome tags (e.g. ["is_overworld", "is_forest"]). + #A biome may not have any of the given tags attached to it, for a trainer to spawn in that biome. + #Trainers may also have additional tags defined by a data pack. + biomeTagBlacklist = [] + #━━━━━━━━━━ + #A comma separated list of biome tags (e.g. ["is_overworld", "is_forest"]). + #A biome must have atleast one of the given tags attached to it, for a trainer to spawn in that + #biome (unless the list is empty). Trainers may also have additional tags defined by a data pack. + biomeTagWhitelist = [] + +[Trainers] + #━━━━━━━━━━ + #Determines if trainers may force players into a battle if they look at each other for + #a certain amount if time. + forceBattleOnSight = true + #━━━━━━━━━━ + #Max distance in blocks at which trainers may start a battle on sight. + # Default: 8.0 + # Range: 0.0 ~ 32.0 + forceBattleMaxDistance = 8.0 + #━━━━━━━━━━ + #Number of ticks a trainer and player need to stare at each other to initiate a battle. + #Setting this to a very large number effectively disables this features but trainers + #will behave slightly different. + # Default: 60 + # Range: 0 ~ 2147483646 + forceBattleLookTicks = 60 + #━━━━━━━━━━ + #Maximum level difference between the strongest pokemon of a trainer and a player to + #allow the trainer to force a battle. + # Default: 16 + # Range: 0 ~ 2147483646 + forceBattleMaxLevelDiff = 16 + +[Players] + #━━━━━━━━━━ + #Initial level cap of players. Pokemon will not gain any experience if at or + #above the level cap. This value will be capped to not go below the level cap + #for the first trainer of a series (you may use 'relativeLevelCap' for that). + # Default: 15 + # Range: 1 ~ 2147483646 + initialLevelCap = 20 + #━━━━━━━━━━ + #The level cap of a player is based of the strongest pokemon from the party of their next + #required trainer in a series. The relativeLevelCap is added to the resulting value. For + #instance if the next trainer for a player has a Pikachu at level 50, that players level + #cap will be 50 + relativeLevelCap (can be negative). + relativeLevelCap = 8 + #━━━━━━━━━━ + #The initial series players are placed in when entering a world for the first time. Apart from any series id + #this value may also be set to one of the special series ids "empty" (i.e. no series) or "freeroam". + #Note that when setting the initial series to "freeroam" it is usually a good idea to also disable + #'freeroamRequiresCompletedSeries'. + initialSeries = "empty" + #━━━━━━━━━━ + #The freeroam series will grant a level cap of 100 and allows players to pause the progression of their + #current series. If this option is enabled, players must have completed any other series first to gain + #access to the trade at the trainer association. + freeroamRequiresCompletedSeries = true + #━━━━━━━━━━ + #If enabled the level cap of a players will not prevent their pokemon from gaining experience and leveling up. + allowOverLeveling = false + +[Debug] + #━━━━━━━━━━ + #If enabled additional information are printed to the log whenever a trainer spawns or despawns. + logSpawning = false + #━━━━━━━━━━ + #If enabled additional information are printed to the log whenever a trainer repel rod is registered or unregistered. + logRepelRods = false diff --git a/index.toml b/index.toml index a5b96eb..5da7987 100644 --- a/index.toml +++ b/index.toml @@ -1,8 +1,12 @@ hash-format = "sha256" [[files]] -file = "config/cobblemon/main.json" -hash = "46513d954241bf38f9b769b384f5d97805494b359f52a50622bf4af795467904" +file = ".github/workflows/publish-pack.yml" +hash = "14bbbe27b8b7f7747fcbdb093989d788da53aa2a946d63e366a3eb6abfea3fe0" + +[[files]] +file = "config/rctmod-server.toml" +hash = "41158f951b91446f5656c945d67b057819f2e73c0b3efde6b80c85e1f0708237" [[files]] file = "mods/accessories.pw.toml" diff --git a/pack.toml b/pack.toml index 9ef0240..ddf7c92 100644 --- a/pack.toml +++ b/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "824de5e96a000501b000ad2fd0be28a1b7031dd03af5cc83033ccefc1196e505" +hash = "916d39f0e64f1da458505a7500995ed32df31e1b299377aa4b9d6b776d436e7a" [versions] fabric = "0.19.2"