ID claiming

gwlegion

Well-Known Member
Joined
Feb 2, 2019
Messages
102
Likes
125
Points
145
#1
this post will conatain the list of every range claimed (reserved post)

- 0 - 4k (0 - 4999) Reserved PAYLOAD
- 5 K ( 5000 - 5999 )
- 6 K ( 6000 - 6999 )
- 7 K ( 7000 - 7999 ) EXUND
 
Last edited:
Likes: Seth_Seth

gwlegion

Well-Known Member
Joined
Feb 2, 2019
Messages
102
Likes
125
Points
145
#2
A big problem with mincraft modding community was the id collisions ...
I've spend many hours resolving this kind of conflicts ... making mods works togethers.

I think we can do a lot better for terra tech with some easy rules, and a central point for claiming ID ranges.

my proposal :

- i don't think payload need a million blocks ... 5K must be a good number ( dev's advice required)
- I don't think a modder need a million IDs ... so :
- 1K ID for each modder, renewable if necessary.
- Each range will be claimed one after another, avoiding gap, so anyone can easely find a range to claim
- Anyone could claim a range ... and need to before post his/her first mod.
- Claiming request is done by making a post in this thread
- The claimed ID list must be pinned for anyone can fint it
- If possible, every "official" modders can midify this list ... so if one disapear, the list could be updated

This is just a first reflection
 
Last edited:
Likes: Seth_Seth

Lost Ninja

Well-Known Member
Joined
Jul 17, 2015
Messages
1,213
Likes
867
Points
520
Age
44
Location
Yorkshire Dales under a rock.
#3
TBH This is something that needs to addressed at the development level. The current Minecraft system of <modname>.<block name> (eg mincraft.stone), would be better than adding arbitrary ranges of values, but would probably have to be added by the devs.

Two issues I can see with a user generated list of IDs. 1)If for some reason you're making a complex mod, have reserved 100 IDs but suddenly need 105, but you can't have the next five without getting an agreement from some dude outside your time zone who only logs into the forums/discord once a month. Yes you could grab another set of reserved IDs, but if your mod gets much bigger you can end up with reserved IDs all over the joint. Not good from a mod owner/writer perspective, nor good for players who just want their mods to work. 2)It actually needs people to use the list. And there will be people who don't, allocating their IDs where-ever they like, meaning other mod authors needs to shuffle their IDs round and once again users struggle with compatibility.

IMO If we/you (I'm not a mod dev) cannot get the devs to change how blocks are registered we need the mod loader TTMM(?) to load blocks in a sensible manner, record a list of which blocks were assigned which IDs and save this in a user editable config (for troubleshooting/server config). Rather than expecting mod devs to work out how many IDs they want/need, then list them here (or check that the IDs they need are free) have them register a block (with a name), have TTMM bind that block name to an ID and save the pairing for future use. If a mod is removed unless you manually tell TTMM to remove the pairing it will remain so if you re-add the mod at a later date the same pairing is available. The actual ID at that point won't matter. You could even distribute the "Master List" with TTMM so that the vast majority of mods would work together at least in terms of what mod uses which blocks.

If the total number of blocks is a Integer (32bits)*, total number of blocks is ~4 billion (4,294,967,295). Not sure why I'd limit Payload to 5k blocks... Give them the 1st 100k or so (we want more blocks...) plenty left for everyone else. Even if the Int is signed thats 2 billion or so. Even if the total ammount of blocks is only 65,535 I don't think limiting Payload to 5k is sensible... but that's me.

*It's more than a byte (0-255), it might be a short in which case it's 0-65,535.
I'm not a real programmer (I dabble), I don't know if it's common practice to use smaller values to save space but most of the numbers I have seen in memory as the game runs, or in the saves appear to be signed or unsigned INTs (eg FF FF FF FF)
 
Likes: Seth_Seth

gwlegion

Well-Known Member
Joined
Feb 2, 2019
Messages
102
Likes
125
Points
145
#4
1) that's why a modders range is 1k...
you can see when you're running out and ask for more. and that's why i want this post maintained by some people.... not only me

2)yes... that need every modder use this list. obviosly, not all will do. but if a modder don't do, this will be his responsability.

the reason i only give 5k for payload, is beacause i want id numbers little as possible...
and actually, with 5 corp, they don't have 1k blocks... i think 5k is big enought.
but i can be wrong, and that's why i'm asking for dev to tell me.
and if this system go to production, payload will be able to extand they range on will

we can save a million for payload if we want... but the first modded block will begin a 1M...
too big to be really comprehensive
 
Likes: Seth_Seth

Lost Ninja

Well-Known Member
Joined
Jul 17, 2015
Messages
1,213
Likes
867
Points
520
Age
44
Location
Yorkshire Dales under a rock.
#6
The current blocks ID system is values of a C# Enum which indexes are positive int32 so we have 2B (4B if it's strictly unsigned) so changing the ID to a string is not possible without a rewrite from the devs
Knew that hence why I suggested it would need the devs to do it. ;)

And I for one would far rather I lobby for that than spend time looking at a list that not every modder even uses.
 
Likes: Seth_Seth

HeX

TerraTech Modder Manager
Joined
Jul 4, 2018
Messages
233
Likes
288
Points
475
#7
Also changing the way blocks are registered and having those IDs assigned by TTMM would greatly change how the SP Cheats mod would have to work since you need to know the ID of a block (which can be modded) to spawn it in. Also the fact that TTMM would need to detect what IDs are in use and change them for the modded blocks when injecting would cause much more lag and increase the already long load time with mods. I, personally, want to try to make an NEI inspired block menu/list but that would be hard and I'm not sure @WhitePaw2002 is up for helping me with something that long. In all honesty, we just need to pick some number range in the millions and have all modded blocks stick in that range to limit them and provide Payload with a lot of space to work with for placeholders of developing blocks or more blocks being implemented since we know that there is still much to come.
 
Likes: Seth_Seth

Mindl3ss

Mindless Dominion Fleet Admiral
Joined
Nov 5, 2015
Messages
562
Likes
702
Points
500
#8
Hey Legion, Can you update your list. I have claimed the 3 million range. should be out of the way enough to claim that large of an amount. Astra's Smoak Stack is currently in that range as well. I will certainly open up my range to other One-off blocks or Blocks that fit some of my themes (Mech parts, Large scale building parts, Smoak Stacks, etc.), but not for block collections or packages. you really diserve your own range for large projects. So if you have just one or two custom blocks to your name, i will sponsor you. contact me here or on Discord so i can add your entry to my Range list. Also any blocks i sponsor will be available on the Mindl3ss M0dding Bl0x Libr4ry Mod (Coming Soon) so they can be aqquired and updated right from the Mod Manager.
 
Likes: Seth_Seth

gwlegion

Well-Known Member
Joined
Feb 2, 2019
Messages
102
Likes
125
Points
145
#9
For now, it's just an idea ... not a full list of all ID range claimed ...

But as a community if we want things work good, we must work together and if we continue claiming ID without organisation, we will be in the mincraft position ... having many mods incompatible with each other beacause of bad id ...

If we organise the way i propose it or another, any modder could have a place to work without colliding another one.

I think my method could be good ... but the decision is not mine
 
Likes: Seth_Seth

Lost Ninja

Well-Known Member
Joined
Jul 17, 2015
Messages
1,213
Likes
867
Points
520
Age
44
Location
Yorkshire Dales under a rock.
#11
Nothing wrong with the idea, and clearly some think it would work.

I have played with mods in two games (at least) in the past that had this same issue. Early Minecraft & Total Annihilation, both used limited ranges of IDs that were clearly originally designed to fit the developer's needs and not the needs of the modding community. Both games had at some point at least one list of "taken" IDs created by their communities.

Minecraft as already discussed adapted and changed the way blocks were named so as to make adding modded blocks much easier (it might not have been the intention of the change but it worked out that way). Total Annihilation never got to that point because the devs vanished (taken over by EA and disbanded? I forget exactly) however one of the ways round the TA limits was to run external programs on the mods that reduced the numbers of IDs (by removing Units/Weapons/Projectiles/etc that weren't being used). TA Conflict Crusher to name one.

And I really don't have an issue with having a master list, I just don't believe that presenting it through a forum is a workable method.
 

Lost Ninja

Well-Known Member
Joined
Jul 17, 2015
Messages
1,213
Likes
867
Points
520
Age
44
Location
Yorkshire Dales under a rock.
#12
Not being a coder I don't know how SPC mod works, I don't know how TTMM works either. (I have looked at the source of SPC to see if I could understand it...) However if TTMM were to ship with a master-list when you launch the game/load the mods the entire list would only be used if you had every single mod active. So I envision it as this:
  1. TTMM Reads in Mods that have been selected for use.
  2. Each item that needs an ID (so blocks for now, more later maybe) is listed (into memory/table).
  3. The Name pairs (<mod>:<block name>) are compared to the "Master List" (which ships with TTMM).
  4. IDs from the "Master-List" are assigned to the modded block... this is what is sent to the game.
    • Blocks that aren't present in the "Master-List" are assigned IDs from any free IDs over 5k/50k (so it doesn't assign ID's with the range that payload traditionally uses), these are recorded to the local copy of the List
    • This means that blocks that aren't part of mods can have IDs, and these blocks won't break saves (see cons) I would suggest that these values are in the 1.5+B range and are really only for local use.
    • Payload 0-1M, Mods 2M to 1.5B, everything over 1.5B is for local blocks. (again cons)
    • Perhaps see if a list could be (g)zipped into the .sav without the game throwing a wobbler, potentially future proofing saves from Master-List changes.
  5. Everything save locally, periodically the master lists used by players (or more likely modders) can be rolled together to update the list.
Pros:
  • A Master List the would be in effect enforced by the mod loader, it could still be listed on a web sited - hell it would be helpful to do so - but the primary restriction on what ID's a modder could use would be community led rather than an opt-in solution as suggested.
  • In theory at any rate a simpler solution for people who just want mods to work. You don't need to find a list on a forum, make sure it's the right version of the list, edit numerous configs just to get that one block that you need to make the perfect dinosaur tech...
  • Better access to mods (really a pro for the previous pro...) means better recognition of the modders AND also will extend the longevity of the game.
Cons:
  • I'm not a programmer, I won't say that this would be an easy thing to add either to TTMM or potentially to mods (that need to read the list outside of TTMM). I suspect that it could be difficult... especially if as it is now there really aren't that many mods... so it's not really needed much. (1-4 above I can envision how hard it would be to do with LUA (the only "language" I know well enough to say anything about) which is to say not that hard. I don't know how much harder/easier C# is to use and (5) would be largely beyond my skills set.)
  • Mods that need the in game list would potentially need to be re-coded (@HeX )
  • Mods that attempt to assign their blocks within ranges already defined in the master-list would need policing by someone. Though the mod author unless they're just a PITA about it wouldn't need to interact with that policing.
  • Blocks that aren't part of mods might have different names so occupy more than one ID yet be physically the same, (this could be the case now anyway, it's not specific to this issue) attempting to roll together a new master list would be difficult.
  • With the massive number of IDs available (anywhere from 2-4B which is a lot even in short form) ;) Reading in a fully populated list would take up significant resources (chug). Though like people who run massive mod packs on MC now if you want to do things like that it's up to you to do so on hardware that is realistic... ;)
More cons than pros on my own idea... :D

@HeX If you had a list of all the block ID's being sent to the game SPC would know which blocks were being used on what IDs. As it is I'm guessing that you allow the user to pick a value and check for a name on that value (not sure how you prevent depreciated blocks for being spawned). If you knew the ID for all of the mod loaded blocks you should be able to store everything in the C# version of a table and then give the user a drop down list of available blocks. If TTMM was making a list of block IDs which it then saved/loaded into the game SPC should be easier to work with not harder. (I think.)

Sorry it went long. I love TTMM and I hope that the modders that make these mods (all of those I've used) continue making mods that I enjoy playing with. Makes the game even better IMO.
 
Last edited:

HeX

TerraTech Modder Manager
Joined
Jul 4, 2018
Messages
233
Likes
288
Points
475
#13
The thing is even if you could do that, snapshots are saved with IDs and their specific data values so the team would also have to change how snapshots are saved if TTMM were to assign IDs based on what's used. It would break a lot of techs that use those modded blocks in significant placements. Snapshots don't save by blocks but rather the IDs that represent the blocks and their rotations etc.
 

Dea Noctis

Kyōko Tomato
Joined
Jul 4, 2019
Messages
5
Likes
13
Points
110
#14
I have claimed 11235813-11236813

Not going to use them all, believe it or not... 0.0
 
Last edited:

Rafs

Collecting the Infinity Terminals
Joined
Apr 4, 2019
Messages
259
Likes
1,322
Points
205
Age
28
#17
910000-911000

On my journey to 1000 blocks! x)